Upstream version 8.36.169.0 61/24361/1
authorEurogiciel-BOT <eurogiciel.tizen@gmail.com>
Fri, 11 Jul 2014 07:39:51 +0000 (07:39 +0000)
committerEurogiciel-BOT <eurogiciel.tizen@gmail.com>
Fri, 11 Jul 2014 07:39:51 +0000 (07:39 +0000)
Upstream commit-id 7bb7ecc2b075969af868db31aac638e0bc6bbfee

Change-Id: I90ad6cd66cb3c28ee0ab8b6cc6280b05b229c77a
Signed-off-by: Eurogiciel-BOT <eurogiciel.tizen@gmail.com>
1101 files changed:
packaging/crosswalk.spec
packaging/xwalk.service.in
src/chrome/tools/test/reference_build/chrome_linux/D3DCompiler_42.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/First Run [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/libpepflashplayer.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/manifest.json [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/avcodec-52.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/avformat-52.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/avutil-50.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/chrome [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/chrome-wrapper [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/chrome.1 [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/chrome.dll [moved from src/chrome/tools/test/reference_build/chrome_linux/nacl_helper with 63% similarity]
src/chrome/tools/test/reference_build/chrome_linux/chrome.exe [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/chrome_100_percent.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/chrome_dll.pdb [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/chrome_exe.pdb [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/chrome_sandbox [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/crash_service.exe [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/d3dx9_42.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/gears.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/icudt42.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/apt.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app-block.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/desktop.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/eu-strip [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/google-chrome.info [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/installer.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/postinst.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/prerm.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/repo.cron [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpm.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpmrepo.cron [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/symlinks.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/variables.include [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/common/wrapper [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/build.sh [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/changelog.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/control.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/debian.menu [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/expected_deps [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postinst [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postrm [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/debian/prerm [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/build.sh [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/chrome.spec.template [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_i386 [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_x86_64 [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/BRANDING [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_128.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_16.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_22.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_24.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_256.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.xpm [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_48.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_64.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/installer/version.txt [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/lib/libpeerconnection.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libEGL.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/libGLESv2.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdm.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdmadapter.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libffmpegsumo.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libpdf.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libppGoogleNaClPluginChrome.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdm.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdmadapter.so [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/am.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ar.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ar.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/bg.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/bg.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/bn.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/bn.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ca.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ca.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/cs.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/cs.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/da.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/da.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/de.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/de.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/el.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/el.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/es.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/es.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/et.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/et.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/fa.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/fi.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/fi.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/fil.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/fil.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/fr.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/fr.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/gu.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/gu.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/he.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/he.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/hi.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/hi.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/hr.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/hr.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/hu.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/hu.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/id.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/id.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/it.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/it.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ja.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ja.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/kn.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/kn.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ko.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ko.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/lt.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/lt.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/lv.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/lv.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ml.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ml.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/mr.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/mr.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ms.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/nb.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/nb.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/nl.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/nl.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/pl.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/pl.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ro.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ro.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ru.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ru.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/sk.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/sk.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/sl.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/sl.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/sr.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/sr.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/sv.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/sv.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/sw.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/ta.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/ta.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/te.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/te.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/th.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/th.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/tr.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/tr.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/uk.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/uk.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/vi.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/vi.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.dll [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.pak [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/mini_installer.pdb [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/nacl64.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/nacl64.exe [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/nacl_helper_bootstrap [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/nacl_irt_x86_64.nexe [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/product_logo_48.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources.pak
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_64.nexe [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables.json [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/extension/demo/library.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/AuditsPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/CodeMirrorTextEditor.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/DevTools.js [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ElementsPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/HeapSnapshotWorker.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/addIcon.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/applicationCache.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/auditsIcon.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/back.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2_2x.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointBorder.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2_2x.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalBorder.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalCounterBorder.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointCounterBorder.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsActivateButtonGlyph.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsDeactivateButtonGlyph.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/checker.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/clearConsoleButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/closeButtons.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleIcon.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/cookie.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/database.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/databaseTable.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerContinue.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerPause.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepInto.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOut.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOver.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/deleteIcon.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDown.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRight.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDown.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/dockButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/domain.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/elementsIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableOutlineButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableSolidButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorMediumIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorRedDot.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/excludeButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/fileSystem.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/focusButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/forward.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/frame.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/gearButtonGlyph.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeader.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderPressed.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelected.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelectedPressed.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/goArrow.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutLeft.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutRight.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDB.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBIndex.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBObjectStore.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/largerResourcesButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/localStorage.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/namedFlowOverflow.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls_2x.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/networkIcon.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/nodeSearchButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneAddButtons.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrow.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrowActive.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneElementStateButtons.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneFilterButtons.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneGrowHandleLine.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneRefreshButtons.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneSettingsButtons.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/pauseOnExceptionButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/percentButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverArrows.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverBackground.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileGroupIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileSmallIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesSilhouette.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/programCounterBorder.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/radioDot.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordToggledButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionEmpty.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionFit.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionOverset.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/reloadButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceCSSIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIconSmall.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceJSIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIconSmall.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesSizeGraphIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesTimeGraphIcon.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsSilhouette.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchNext.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchPrev.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBlue.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBrightBlue.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallGray.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segment.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentEnd.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHover.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEnd.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEndChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelected.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEnd.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEndChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/sessionStorage.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove_2x.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActive.gif [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActiveSelected.gif [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactive.gif [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactiveSelected.gif [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDimple.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDividerBackground.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackground.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackgroundChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackground.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackgroundChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs2x.png [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtons.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonsChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButton.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelected.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelectedChromium.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerHorizontal.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerVertical.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/successGreenDot.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveHoriz.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveVert.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoriz.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverHoriz.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverVert.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbVert.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarBlue.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGray.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGreen.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarOrange.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarPurple.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarRed.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarYellow.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineCheckmarks.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineDots.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillBlue.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGray.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGreen.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillOrange.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillPurple.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillRed.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillYellow.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillBlue.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGray.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGreen.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillOrange.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillPurple.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillRed.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillYellow.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/toolbarItemSelected.png [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackHoriz.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackVert.png
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleBlack.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleWhite.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/undockButtonGlyph.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputPreviousIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputResultIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningMediumIcon.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningOrangeDot.png [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningsErrors.png [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/LayersPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/NetworkPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ProfilesPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ResourcesPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ScriptFormatterWorker.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/SourcesPanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TempStorageSharedWorker.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TimelinePanel.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/accelerometer.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/auditsPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breadcrumbList.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breakpointsList.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/buildSystemOnly.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/canvasProfiler.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cmdevtools.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/codemirror.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cssNamedFlows.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dataGrid.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools.css [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools.html [changed mode: 0644->0755]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools_extension_api.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/elementsPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filter.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filteredItemSelectionDialog.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/flameChart.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/heapProfiler.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/helpScreen.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/indexedDBViews.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.js [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspectorCommon.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/layersPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/navigatorView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkLogView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/overrides.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/panelEnablerView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profilesPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourceView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourcesPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/revisionHistory.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/screencastView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sidebarPane.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesPanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/spectrum.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/splitView.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/textPrompt.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/timelinePanel.css [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.exe [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.pdb [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.dll [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.pdb [new file with mode: 0644]
src/chrome/tools/test/reference_build/chrome_linux/wow_helper.exe [new file with mode: 0755]
src/chrome/tools/test/reference_build/chrome_linux/xdg-mime [deleted file]
src/chrome/tools/test/reference_build/chrome_linux/xdg-settings [deleted file]
src/third_party/libaddressinput/src/java/android.jar [new file with mode: 0644]
src/third_party/libaddressinput/src/java/build.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/res/layout/address_edittext.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/res/layout/address_layout.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/res/layout/address_spinner.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/res/layout/address_textview.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/res/values/address_strings.xml [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressDataKey.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressField.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblemType.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblems.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressUIComponent.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationNodeData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressWidget.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/CacheData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientCacheManager.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataLoadListener.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataSource.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FieldVerifier.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormController.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormOptions.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormatInterpreter.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsoMap.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsonpRequestBuilder.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/LookupKey.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/NotifyingListener.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionData.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionDataConstants.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/SimpleClientCacheManager.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardAddressVerifier.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardChecks.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/Util.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AddressDataMapLoader.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AsyncTestCase.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/android/util/Log.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressDataTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressFieldTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressProblemsTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AsyncTestCaseTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/CacheDataTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/ClientDataTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FieldVerifierTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormControllerTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormOptionsTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormatInterpreterTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsoMapTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsonpRequestBuilderTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/LookupKeyTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataConstantsTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/UtilTest.java [new file with mode: 0644]
src/third_party/libaddressinput/src/java/testlibs/commons-logging-1.1.1.jar [new file with mode: 0644]
src/third_party/libaddressinput/src/java/testlibs/httpclient-4.1.1.jar [new file with mode: 0644]
src/third_party/libaddressinput/src/java/testlibs/httpcore-4.1.jar [new file with mode: 0644]
src/third_party/libaddressinput/src/java/testlibs/json-20090211.jar [new file with mode: 0644]
src/third_party/libc++/trunk/CMakeLists.txt
src/third_party/libc++/trunk/LICENSE.TXT
src/third_party/libc++/trunk/Makefile
src/third_party/libc++/trunk/cmake/config-ix.cmake
src/third_party/libc++/trunk/include/__config
src/third_party/libc++/trunk/include/__functional_03
src/third_party/libc++/trunk/include/__functional_base
src/third_party/libc++/trunk/include/__functional_base_03
src/third_party/libc++/trunk/include/__locale
src/third_party/libc++/trunk/include/__mutex_base
src/third_party/libc++/trunk/include/__tree
src/third_party/libc++/trunk/include/algorithm
src/third_party/libc++/trunk/include/cmath
src/third_party/libc++/trunk/include/cstddef
src/third_party/libc++/trunk/include/deque
src/third_party/libc++/trunk/include/ext/__hash
src/third_party/libc++/trunk/include/ext/hash_map
src/third_party/libc++/trunk/include/forward_list
src/third_party/libc++/trunk/include/functional
src/third_party/libc++/trunk/include/future
src/third_party/libc++/trunk/include/iomanip
src/third_party/libc++/trunk/include/iterator
src/third_party/libc++/trunk/include/locale
src/third_party/libc++/trunk/include/map
src/third_party/libc++/trunk/include/memory
src/third_party/libc++/trunk/include/ostream
src/third_party/libc++/trunk/include/regex
src/third_party/libc++/trunk/include/set
src/third_party/libc++/trunk/include/shared_mutex
src/third_party/libc++/trunk/include/string
src/third_party/libc++/trunk/include/support/solaris/floatingpoint.h
src/third_party/libc++/trunk/include/support/solaris/wchar.h
src/third_party/libc++/trunk/include/support/solaris/xlocale.h
src/third_party/libc++/trunk/include/support/win32/support.h
src/third_party/libc++/trunk/include/tuple
src/third_party/libc++/trunk/include/type_traits
src/third_party/libc++/trunk/include/typeinfo
src/third_party/libc++/trunk/include/unordered_map
src/third_party/libc++/trunk/include/utility
src/third_party/libc++/trunk/lib/buildit
src/third_party/libc++/trunk/src/condition_variable.cpp
src/third_party/libc++/trunk/src/ios.cpp
src/third_party/libc++/trunk/src/locale.cpp
src/third_party/libc++/trunk/src/memory.cpp
src/third_party/libc++/trunk/src/new.cpp
src/third_party/libc++/trunk/src/shared_mutex.cpp
src/third_party/libc++/trunk/src/stdexcept.cpp
src/third_party/libc++/trunk/src/strstream.cpp
src/third_party/libc++/trunk/src/support/solaris/xlocale.c
src/third_party/libc++/trunk/src/system_error.cpp
src/third_party/libc++/trunk/src/thread.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/max.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/max_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/max_init_list.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/max_init_list_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/min.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/min_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/min_init_list.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/min_init_list_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/minmax_init_list.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.nth.element/nth_element.pass.cpp
src/third_party/libc++/trunk/test/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp
src/third_party/libc++/trunk/test/containers/Copyable.h
src/third_party/libc++/trunk/test/containers/Emplaceable.h
src/third_party/libc++/trunk/test/containers/MoveOnly.h
src/third_party/libc++/trunk/test/containers/NotConstructible.h
src/third_party/libc++/trunk/test/containers/associative/map/map.access/iterator.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/map/map.cons/copy_assign.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/map/map.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multimap/iterator.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multimap/multimap.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multiset/iterator.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multiset/multiset.cons/copy_assign.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/multiset/multiset.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/set/iterator.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/set/set.cons/copy_assign.pass.cpp
src/third_party/libc++/trunk/test/containers/associative/set/set.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/container.adaptors/priority.queue/priqueue.cons/assign_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/container.adaptors/priority.queue/priqueue.cons/ctor_comp_container.pass.cpp
src/third_party/libc++/trunk/test/containers/container.adaptors/priority.queue/priqueue.cons/ctor_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/container.adaptors/priority.queue/priqueue.cons/ctor_iter_iter_comp.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/array/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/deque/deque.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/deque/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/list/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/list/list.cons/default.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/vector.bool/construct_default.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/vector.bool/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/vector/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/vector/vector.cons/construct_default.pass.cpp
src/third_party/libc++/trunk/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp
src/third_party/libc++/trunk/test/containers/stack_allocator.h
src/third_party/libc++/trunk/test/containers/test_compare.h
src/third_party/libc++/trunk/test/containers/test_hash.h
src/third_party/libc++/trunk/test/containers/unord/unord.map/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.map/unorder.map.modifiers/erase_key.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multimap/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multimap/unord.multimap.cnstr/assign_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multimap/unord.multimap.modifiers/erase_key.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multiset/erase_key.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multiset/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multiset/unord.multiset.cnstr/assign_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.set/erase_key.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.set/iterators.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.set/unord.set.cnstr/assign_copy.pass.cpp
src/third_party/libc++/trunk/test/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp
src/third_party/libc++/trunk/test/depr/depr.c.headers/math_h.pass.cpp
src/third_party/libc++/trunk/test/extensions/hash/specializations.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/extensions/hash/specializations.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/extensions/hash_map/const_iterator.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/extensions/nothing_to_do.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/nothing_to_do.pass.cpp with 100% similarity]
src/third_party/libc++/trunk/test/input.output/iostream.format/quoted.manip/quoted.pass.cpp
src/third_party/libc++/trunk/test/iterators/iterator.range/begin-end.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.cons/container.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/post.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op++/pre.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.insert.iter.op_astrk/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/back.insert.iter.ops/back.inserter/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.cons/container.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/post.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op++/pre.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op=/lv_value.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.insert.iter.op_astrk/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/front.insert.iter.ops/front.inserter/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.cons/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/post.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op++/pre.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/lv_value.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op=/rv_value.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/insert.iter.op_astrk/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/insert.iterators/insert.iter.ops/inserter/test.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.make/make_reverse_iterator.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op.star/op_star.pass.cpp
src/third_party/libc++/trunk/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opref/op_arrow.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
src/third_party/libc++/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
src/third_party/libc++/trunk/test/lit.cfg
src/third_party/libc++/trunk/test/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/test_min_max.pass.cpp
src/third_party/libc++/trunk/test/numerics/c.math/cmath.pass.cpp
src/third_party/libc++/trunk/test/numerics/complex.number/complex.transcendentals/atanh.pass.cpp
src/third_party/libc++/trunk/test/re/re.alg/re.alg.match/basic.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.alg/re.alg.search/basic.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.regiter/re.regiter.cnstr/cnstr.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.regiter/re.regiter.incr/post.pass.cpp
src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/array.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/init.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/int.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/vector.fail.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.incr/post.pass.cpp
src/third_party/libc++/trunk/test/re/re.results/types.pass.cpp
src/third_party/libc++/trunk/test/re/re.traits/lookup_classname.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/input_iterator.h
src/third_party/libc++/trunk/test/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
src/third_party/libc++/trunk/test/strings/basic.string/test_traits.h
src/third_party/libc++/trunk/test/support/DefaultOnly.h
src/third_party/libc++/trunk/test/support/allocators.h
src/third_party/libc++/trunk/test/support/min_allocator.h
src/third_party/libc++/trunk/test/support/nasty_containers.hpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/support/private_constructor.hpp
src/third_party/libc++/trunk/test/support/test_allocator.h
src/third_party/libc++/trunk/test/support/test_iterators.h
src/third_party/libc++/trunk/test/testit
src/third_party/libc++/trunk/test/thread/futures/futures.async/async.pass.cpp
src/third_party/libc++/trunk/test/thread/futures/futures.tas/futures.task.members/ctor_func.pass.cpp
src/third_party/libc++/trunk/test/thread/futures/futures.tas/futures.task.members/ctor_func_alloc.pass.cpp
src/third_party/libc++/trunk/test/thread/futures/test_allocator.h
src/third_party/libc++/trunk/test/thread/thread.condition/cv_status.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait.exception.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait_for.exception.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/copy_assign.fail.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/copy_ctor.fail.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/default.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_try_to_lock.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/mutex.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/op_bool.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/owns_lock.pass.cpp
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/nothing_to_do.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/assign.fail.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/assign.fail.cpp with 74% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/copy.fail.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/copy.fail.cpp with 74% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/default.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/default.pass.cpp with 84% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/lock.pass.cpp with 95% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/lock_shared.pass.cpp with 96% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock.pass.cpp with 95% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock_for.pass.cpp with 96% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock_shared.pass.cpp with 96% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock_shared_for.pass.cpp with 97% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock_shared_until.pass.cpp with 97% similarity]
src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp [moved from src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedmutex.requirements/thread.sharedmutex.class/try_lock_until.pass.cpp with 96% similarity]
src/third_party/libc++/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.id/lt.pass.cpp
src/third_party/libc++/trunk/test/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/utilities/function.objects/arithmetic.operations/transparent.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/bitwise.operations/transparent.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/comparisons/transparent.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.memfn/member_data.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.memfn/member_function.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.memfn/member_function_const.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.memfn/member_function_const_volatile.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.memfn/member_function_volatile.pass.cpp
src/third_party/libc++/trunk/test/utilities/function.objects/func.require/invoke.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/utilities/function.objects/logical.operations/transparent.pass.cpp
src/third_party/libc++/trunk/test/utilities/memory/default.allocator/allocator_pointers.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.assign/weak_ptr.pass.cpp
src/third_party/libc++/trunk/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.assign/weak_ptr_Y.pass.cpp
src/third_party/libc++/trunk/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/weak_ptr.pass.cpp
src/third_party/libc++/trunk/test/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.const/weak_ptr_Y.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.unary.prop.query/alignment_of.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp [new file with mode: 0644]
src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp
src/third_party/libc++/trunk/test/utilities/time/clock.h
src/third_party/libc++/trunk/test/utilities/time/rep.h
src/third_party/libc++/trunk/test/utilities/tuple/tuple.tuple/MoveOnly.h
src/third_party/libc++/trunk/test/utilities/tuple/tuple.tuple/alloc_first.h
src/third_party/libc++/trunk/test/utilities/tuple/tuple.tuple/alloc_last.h
src/third_party/libc++/trunk/test/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp
src/third_party/libc++/trunk/test/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp
src/third_party/libc++/trunk/www/cxx1y_status.html
src/third_party/libc++/trunk/www/index.html
src/third_party/libc++abi/trunk/LICENSE.TXT
src/third_party/libc++abi/trunk/include/libunwind.h
src/third_party/libc++abi/trunk/include/mach-o/compact_unwind_encoding.h
src/third_party/libc++abi/trunk/src/Unwind/AddressSpace.hpp
src/third_party/libc++abi/trunk/src/Unwind/DwarfParser.hpp
src/third_party/libc++abi/trunk/src/Unwind/Registers.hpp
src/third_party/libc++abi/trunk/src/Unwind/UnwindCursor.hpp
src/third_party/libc++abi/trunk/src/Unwind/UnwindRegistersRestore.S
src/third_party/libc++abi/trunk/src/Unwind/UnwindRegistersSave.S
src/third_party/libc++abi/trunk/src/Unwind/assembly.h [new file with mode: 0644]
src/third_party/libc++abi/trunk/src/Unwind/config.h
src/third_party/libc++abi/trunk/src/Unwind/libunwind.cpp
src/third_party/libc++abi/trunk/src/cxa_aux_runtime.cpp
src/third_party/libc++abi/trunk/src/cxa_demangle.cpp
src/third_party/libc++abi/trunk/src/cxa_exception.cpp
src/third_party/libc++abi/trunk/src/cxa_exception.hpp
src/third_party/libc++abi/trunk/src/cxa_exception_storage.cpp
src/third_party/libc++abi/trunk/src/cxa_personality.cpp
src/third_party/libc++abi/trunk/src/cxa_vector.cpp
src/third_party/libc++abi/trunk/src/fallback_malloc.ipp
src/third_party/libc++abi/trunk/src/private_typeinfo.cpp
src/third_party/libc++abi/trunk/test/catch_ptr_02.cpp
src/third_party/libc++abi/trunk/test/test_demangle.cpp
src/third_party/opus/src/win32/genversion.bat
src/third_party/pyftpdlib/src/demo/anti_flood_ftpd.py
src/third_party/pyftpdlib/src/demo/basic_ftpd.py
src/third_party/pyftpdlib/src/demo/md5_ftpd.py
src/third_party/pyftpdlib/src/demo/throttled_ftpd.py
src/third_party/pyftpdlib/src/demo/tls_ftpd.py
src/third_party/pyftpdlib/src/demo/unix_daemon.py
src/third_party/pyftpdlib/src/demo/unix_ftpd.py
src/third_party/pyftpdlib/src/demo/winnt_ftpd.py
src/third_party/pyftpdlib/src/pyftpdlib/contrib/authorizers.py
src/third_party/pyftpdlib/src/pyftpdlib/contrib/filesystems.py
src/third_party/pyftpdlib/src/pyftpdlib/contrib/handlers.py
src/third_party/pyftpdlib/src/pyftpdlib/ftpserver.py
src/third_party/pyftpdlib/src/setup.py
src/third_party/pyftpdlib/src/test/bench.py
src/third_party/pyftpdlib/src/test/test_contrib.py
src/third_party/pyftpdlib/src/test/test_ftpd.py
src/xwalk/DEPS.xwalk
src/xwalk/VERSION
src/xwalk/app/android/runtime_client/src/org/xwalk/app/runtime/XWalkRuntimeClient.java
src/xwalk/app/tools/android/gyp/finalize_apk.py
src/xwalk/app/tools/android/make_apk.py
src/xwalk/app/tools/android/make_apk_test.py
src/xwalk/app/tools/android/manifest_json_parser.py
src/xwalk/app/tools/android/test_data/launchScreen/manifest.json
src/xwalk/app/tools/android/test_data/launchScreen/manifest_deprecated_launch_screen.json [new file with mode: 0644]
src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_app_local_path.json [new file with mode: 0644]
src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_launch_path.json [new file with mode: 0644]
src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_permissions.json [new file with mode: 0644]
src/xwalk/app/tools/android/test_data/manifest/invalidchars/manifest_contain_space_name.json
src/xwalk/app/tools/android/test_data/manifest/invalidchars/manifest_parse_error.json
src/xwalk/app/tools/android/test_data/manifest/invalidchars/manifest_with_chinese_name.json
src/xwalk/app/tools/android/test_data/manifest/invalidchars/manifest_with_invalid_name.json
src/xwalk/app/tools/android/test_data/manifest/invalidchars/manifest_with_space_name.json
src/xwalk/app/tools/android/test_data/manifest/manifest.json
src/xwalk/app/tools/android/test_data/manifest/manifest_app_launch_local_path.json
src/xwalk/app/tools/android/test_data/manifest/manifest_deprecated_icon.json [new file with mode: 0644]
src/xwalk/app/tools/android/test_data/manifest/manifest_icon.json
src/xwalk/app/tools/android/test_data/manifest/manifest_no_app_launch_path.json
src/xwalk/app/tools/android/test_data/manifest/manifest_no_name.json
src/xwalk/app/tools/android/test_data/manifest/manifest_no_version.json
src/xwalk/app/tools/android/test_data/manifest/manifest_not_supported_permission.json
src/xwalk/app/tools/android/test_data/manifest/manifest_permissions_field_error.json
src/xwalk/app/tools/android/test_data/manifest/manifest_permissions_format_error.json
src/xwalk/application/browser/application.cc
src/xwalk/application/browser/application.h
src/xwalk/application/browser/application_protocols.cc
src/xwalk/application/browser/application_service.cc
src/xwalk/application/browser/application_service.h
src/xwalk/application/browser/application_service_provider_linux.cc
src/xwalk/application/browser/application_service_provider_linux.h
src/xwalk/application/browser/application_system.cc
src/xwalk/application/browser/application_system.h
src/xwalk/application/browser/application_system_linux.cc
src/xwalk/application/browser/application_tizen.cc
src/xwalk/application/browser/application_tizen.h
src/xwalk/application/browser/linux/installed_application_object.cc [deleted file]
src/xwalk/application/browser/linux/installed_application_object.h [deleted file]
src/xwalk/application/browser/linux/installed_applications_manager.cc [deleted file]
src/xwalk/application/browser/linux/installed_applications_manager.h [deleted file]
src/xwalk/application/browser/linux/running_applications_manager.cc
src/xwalk/application/browser/linux/running_applications_manager.h
src/xwalk/application/common/application_data.cc
src/xwalk/application/common/application_data.h
src/xwalk/application/common/application_file_util.cc
src/xwalk/application/common/application_manifest_constants.cc
src/xwalk/application/common/application_manifest_constants.h
src/xwalk/application/common/application_storage_impl.cc
src/xwalk/application/common/application_storage_impl_unittest.cc
src/xwalk/application/common/id_util.cc
src/xwalk/application/common/id_util.h
src/xwalk/application/common/installer/package_installer.cc
src/xwalk/application/common/installer/package_installer.h
src/xwalk/application/common/installer/package_installer_tizen.cc
src/xwalk/application/common/manifest.cc
src/xwalk/application/common/manifest_handler.cc
src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.cc [new file with mode: 0644]
src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h [new file with mode: 0644]
src/xwalk/application/common/xwalk_application_common.gypi
src/xwalk/application/tools/linux/xwalk_application_tools.gyp
src/xwalk/application/tools/linux/xwalk_launcher_main.cc
src/xwalk/application/tools/linux/xwalk_launcher_tizen.cc
src/xwalk/application/tools/linux/xwalk_launcher_tizen.h
src/xwalk/application/tools/linux/xwalkctl_main.cc
src/xwalk/application/xwalk_application.gypi
src/xwalk/build/common.gypi
src/xwalk/build/system.gyp
src/xwalk/extensions/browser/xwalk_extension_process_host.cc
src/xwalk/extensions/browser/xwalk_extension_process_host.h
src/xwalk/extensions/browser/xwalk_extension_service.cc
src/xwalk/extensions/browser/xwalk_extension_service.h
src/xwalk/extensions/common/xwalk_extension_messages.h
src/xwalk/extensions/common/xwalk_extension_server.cc
src/xwalk/extensions/common/xwalk_extension_server.h
src/xwalk/extensions/extension_process/xwalk_extension_process.cc
src/xwalk/extensions/renderer/xwalk_extension_client.cc
src/xwalk/extensions/renderer/xwalk_extension_client.h
src/xwalk/extensions/test/get_runtime_variable.c
src/xwalk/extensions/xesh/xesh_main.cc
src/xwalk/packaging/crosswalk.spec
src/xwalk/packaging/xwalk.service.in
src/xwalk/runtime/android/core/src/org/xwalk/core/XWalkResourceClient.java
src/xwalk/runtime/android/core/src/org/xwalk/core/XWalkUIClient.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkClient.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContent.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContentVideoViewClient.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContentsClient.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkContentsClientBridge.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkLaunchScreenManager.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkPreferencesInternal.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkResourceClientInternal.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkSettings.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkUIClientInternal.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkWebChromeClient.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkWebContentsDelegate.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/XWalkWebContentsDelegateAdapter.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/XWalkExtensionManager.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/contacts/Contacts.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/device_capabilities/DeviceCapabilities.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/launchscreen/LaunchScreenExtension.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/messaging/Messaging.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/presentation/PresentationExtension.java
src/xwalk/runtime/android/core_internal/src/org/xwalk/core/internal/extension/api/presentation/XWalkPresentationContent.java
src/xwalk/runtime/android/core_internal_shell/AndroidManifest.xml [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/res/drawable/progress.xml [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/res/drawable/resource_icon.png [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/res/layout/testshell_activity.xml [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/res/raw/resource_icon.png [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/res/values/strings.xml [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/shell/XWalkViewInternalShellActivity.java [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/TestContentProvider.java [new file with mode: 0644]
src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestRunnerActivity.java [new file with mode: 0644]
src/xwalk/runtime/android/core_shell/src/org/xwalk/core/xwview/shell/XWalkViewShellActivity.java
src/xwalk/runtime/android/runtime/src/org/xwalk/runtime/XWalkCoreProviderImpl.java
src/xwalk/runtime/android/runtime/src/org/xwalk/runtime/XWalkRuntimeTestHelper.java
src/xwalk/runtime/browser/android/xwalk_web_contents_delegate.cc
src/xwalk/runtime/browser/android/xwalk_web_contents_delegate.h
src/xwalk/runtime/browser/image_util.cc
src/xwalk/runtime/browser/runtime_platform_util_tizen.cc
src/xwalk/runtime/browser/tizen/tizen_locale_listener.h
src/xwalk/runtime/browser/ui/native_app_window.h
src/xwalk/runtime/browser/ui/native_app_window_tizen.cc
src/xwalk/runtime/browser/ui/native_app_window_tizen.h
src/xwalk/runtime/browser/ui/native_app_window_views.h
src/xwalk/runtime/browser/ui/splash_screen.cc [new file with mode: 0644]
src/xwalk/runtime/browser/ui/splash_screen.h [new file with mode: 0644]
src/xwalk/runtime/browser/xwalk_browser_main_parts.cc
src/xwalk/runtime/browser/xwalk_browser_main_parts_android.cc
src/xwalk/runtime/browser/xwalk_runner.cc
src/xwalk/runtime/browser/xwalk_runner.h
src/xwalk/runtime/browser/xwalk_runner_tizen.cc
src/xwalk/runtime/browser/xwalk_runner_tizen.h
src/xwalk/runtime/common/xwalk_content_client.cc
src/xwalk/runtime/common/xwalk_paths.cc
src/xwalk/runtime/common/xwalk_paths.h
src/xwalk/runtime/common/xwalk_switches.cc
src/xwalk/runtime/common/xwalk_switches.h
src/xwalk/runtime/common/xwalk_system_locale.cc [new file with mode: 0644]
src/xwalk/runtime/common/xwalk_system_locale.h [new file with mode: 0644]
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/AddJavascriptInterfaceTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/CanGoBackTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/CanGoForwardTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ClearCacheTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ClearHistoryTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/CookieManagerTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/EvaluateJavascriptTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionBroadcastTest.java [deleted file]
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionEchoTest.java [deleted file]
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GeolocationPermissionTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetAPIVersionTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetCurrentItemTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetItemAtTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetTitleTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetUrlTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/GetXWalkVersionTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/HandleActionUriTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/HasItemAtTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/HistorySizeTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/LoadTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/NavigateTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/OnPageFinishedTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/OnUpdateTitleTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ReloadTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/RendererResponsivenessTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/SaveRestoreStateTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/SetAppCacheEnabledTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/SetDatabaseEnabledTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/SetNetworkAvailableTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ShouldInterceptLoadRequestTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/UserAgentTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/WebNotificationTest.java
src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/XWalkViewTestBase.java
src/xwalk/test/android/core_internal/javatests/AndroidManifest.xml [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionBroadcastInternal.java [moved from src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionBroadcast.java with 83% similarity]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionBroadcastInternalTest.java [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionEchoInternal.java [moved from src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionEcho.java with 88% similarity]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionEchoInternalTest.java [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/LoadTest.java [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/OnTitleUpdatedHelper.java [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/TestHelperBridge.java [new file with mode: 0644]
src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestBase.java [new file with mode: 0644]
src/xwalk/test/android/data/www/manifest_inline_script.json
src/xwalk/test/android/data/www/manifest_self.json
src/xwalk/test/android/data/www/manifest_without_xwalk_hosts.json
src/xwalk/test/android/data/www/manifest_xwalk_hosts.json
src/xwalk/xwalk.gyp
src/xwalk/xwalk_android_tests.gypi

index 139de2d..1c44382 100644 (file)
@@ -16,7 +16,7 @@
 %endif
 
 Name:           crosswalk
-Version:        8.36.161.0
+Version:        8.36.169.0
 Release:        0
 Summary:        Crosswalk is an app runtime based on Chromium
 License:        (BSD-3-Clause and LGPL-2.1+)
@@ -211,13 +211,13 @@ ${GYP_EXTRA_FLAGS} \
 -Duse_system_libexif=1 \
 -Duse_system_libxml=1 \
 -Duse_system_nspr=1 \
+-Dshared_process_mode=1 \
 -Denable_hidpi=1
 
 ninja %{?_smp_mflags} -C src/out/Release xwalk xwalkctl xwalk_launcher xwalk-pkg-helper
 
 %install
 # Binaries.
-install -p -D xwalk %{buildroot}%{_bindir}/xwalk
 install -p -D %{SOURCE2} %{buildroot}%{_dbusservicedir}/org.crosswalkproject.Runtime1.service
 install -p -D xwalk.service %{buildroot}%{_systemduserservicedir}/xwalk.service
 install -p -D src/out/Release/xwalk %{buildroot}%{_libdir}/xwalk/xwalk
@@ -254,7 +254,6 @@ mkdir -p %{_manifestdir_ro}
 %files
 %manifest %{name}.manifest
 %license AUTHORS.chromium LICENSE.chromium LICENSE.xwalk
-%{_bindir}/xwalk
 %{_bindir}/xwalkctl
 %{_bindir}/xwalk-launcher
 %{_bindir}/xwalk-pkg-helper
index e0d9b32..0e2f345 100644 (file)
@@ -4,4 +4,4 @@ Description=Crosswalk
 [Service]
 Type=dbus
 BusName=org.crosswalkproject.Runtime1
-ExecStart=@LIB_INSTALL_DIR@/xwalk/xwalk --run-as-service --external-extensions-path=@LIB_INSTALL_DIR@/tizen-extensions-crosswalk
+ExecStart=@LIB_INSTALL_DIR@/xwalk/xwalk --external-extensions-path=@LIB_INSTALL_DIR@/tizen-extensions-crosswalk
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/D3DCompiler_42.dll b/src/chrome/tools/test/reference_build/chrome_linux/D3DCompiler_42.dll
new file mode 100644 (file)
index 0000000..2a0aa66
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/D3DCompiler_42.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/First Run b/src/chrome/tools/test/reference_build/chrome_linux/First Run
new file mode 100755 (executable)
index 0000000..852ad16
--- /dev/null
@@ -0,0 +1 @@
+krome \r
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/libpepflashplayer.so b/src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/libpepflashplayer.so
deleted file mode 100755 (executable)
index 8ae2571..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/libpepflashplayer.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/manifest.json b/src/chrome/tools/test/reference_build/chrome_linux/PepperFlash/manifest.json
deleted file mode 100644 (file)
index a0e1008..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-    "description": "Pepper Flash Player", 
-    "name": "Flapper", 
-    "version": "12.0.0.41", 
-    "x-flapper-revision": "1236382", 
-    "x-ppapi-arch": "x64", 
-    "x-ppapi-os": "linux", 
-    "x-ppapi-required-interfaces": [
-        "PPB_AudioConfig;1.1|PPB_AudioConfig;1.0", 
-        "PPB_AudioInput(Dev);0.3|PPB_AudioInput(Dev);0.2", 
-        "PPB_Audio;1.0", 
-        "PPB_BrowserFont_Trusted;1.0", 
-        "PPB_Buffer(Dev);0.4", 
-        "PPB_CharSet(Dev);0.4", 
-        "PPB_Core;1.0", 
-        "PPB_Crypto(Dev);0.1", 
-        "PPB_CursorControl(Dev);0.4", 
-        "PPB_FileChooser(Dev);0.6|PPB_FileChooser(Dev);0.5", 
-        "PPB_FileChooserTrusted;0.6|PPB_FileChooserTrusted;0.5", 
-        "PPB_FileRef;1.0", 
-        "PPB_Flash_Clipboard;5.0|PPB_Flash_Clipboard;4.0", 
-        "PPB_Flash_File_FileRef;2", 
-        "PPB_Flash_File_ModuleLocal;3", 
-        "PPB_Flash_FontFile;0.1|PPB_PDF;1", 
-        "PPB_FlashFullscreen;1.0|PPB_FlashFullscreen;0.1", 
-        "PPB_Flash;13.0|PPB_Flash;12.6|PPB_Flash;12.5|PPB_Flash;12.4", 
-        "PPB_Flash_Menu;0.2", 
-        "PPB_Graphics2D;1.0", 
-        "PPB_Graphics3D;1.0", 
-        "PPB_ImageData;1.0", 
-        "PPB_IMEInputEvent(Dev);0.2|PPB_IMEInputEvent(Dev);0.1", 
-        "PPB_InputEvent;1.0", 
-        "PPB_Instance;1.0", 
-        "PPB_Memory(Dev);0.1", 
-        "PPB_NetAddress_Private;1.1|PPB_NetAddress_Private;1.0|PPB_NetAddress_Private;0.1", 
-        "PPB_OpenGLES2ChromiumMapSub;1.0|PPB_OpenGLES2ChromiumMapSub(Dev);1.0|PPB_GLESChromiumTextureMapping(Dev);0.1", 
-        "PPB_OpenGLES2;1.0", 
-        "PPB_TCPSocket_Private;0.4|PPB_TCPSocket_Private;0.3", 
-        "PPB_TextInput(Dev);0.2|PPB_TextInput(Dev);0.1", 
-        "PPB_UDPSocket_Private;0.4|PPB_UDPSocket_Private;0.3", 
-        "PPB_URLLoader;1.0", 
-        "PPB_URLLoaderTrusted;0.3", 
-        "PPB_URLRequestInfo;1.0", 
-        "PPB_URLResponseInfo;1.0", 
-        "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/src/chrome/tools/test/reference_build/chrome_linux/avcodec-52.dll b/src/chrome/tools/test/reference_build/chrome_linux/avcodec-52.dll
new file mode 100755 (executable)
index 0000000..433efbe
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/avcodec-52.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/avformat-52.dll b/src/chrome/tools/test/reference_build/chrome_linux/avformat-52.dll
new file mode 100755 (executable)
index 0000000..fa2e000
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/avformat-52.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/avutil-50.dll b/src/chrome/tools/test/reference_build/chrome_linux/avutil-50.dll
new file mode 100755 (executable)
index 0000000..f01f3f3
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/avutil-50.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome b/src/chrome/tools/test/reference_build/chrome_linux/chrome
deleted file mode 100755 (executable)
index d6d343b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/chrome and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome-wrapper b/src/chrome/tools/test/reference_build/chrome_linux/chrome-wrapper
deleted file mode 100755 (executable)
index 31025de..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Running Chromium via this script makes it possible to set Chromium as the
-# default browser directly out of a compile, without needing to package it.
-
-DESKTOP="chromium-devel"
-TITLE="Chromium"
-
-usage() {
-  echo "$0 [--gdb] [--help] [--man-page] [--] [chrome-options]"
-  echo
-  echo "        --gdb                   Start within gdb"
-  echo "        --help                  This help screen"
-  echo "        --man-page              Open the man page in the tree"
-}
-
-# Check to see if there is a desktop file of the given name.
-exists_desktop_file() {
-    # Build a search list from $XDG_DATA_HOME and $XDG_DATA_DIRS, the latter
-    # of which can itself be a colon-separated list of directories to search.
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/applications" ] || continue
-        [ -r "$dir/applications/$DESKTOP.desktop" ] && return
-    done
-    # Didn't find it in the search path.
-    return 1
-}
-
-# Checks a file to see if it's a 32 or 64-bit.
-check_executable() {
-    out=$(file $(readlink -f $1) 2> /dev/null)
-    echo $out | grep -qs "ELF 32-bit LSB"
-    if [ $? = 0 ]; then
-        echo 32
-        return
-    fi
-    echo $out | grep -qs "ELF 64-bit LSB"
-    if [ $? = 0 ]; then
-        echo 64
-        return
-    fi
-    echo neither
-}
-
-# Generate a desktop file that will run this script.
-generate_desktop_file() {
-    apps="${XDG_DATA_HOME:-$HOME/.local/share}/applications"
-    mkdir -p "$apps"
-    cat > "$apps/$DESKTOP.desktop" << EOF
-[Desktop Entry]
-Version=1.0
-Encoding=UTF-8
-Name=$TITLE
-Exec=$CHROME_WRAPPER %U
-Terminal=false
-Icon=$HERE/product_logo_48.png
-Type=Application
-Categories=Application;Network;WebBrowser;
-MimeType=text/html;text/xml;application/xhtml_xml;
-EOF
-}
-
-# Let the wrapped binary know that it has been run through the wrapper.
-export CHROME_WRAPPER="`readlink -f "$0"`"
-export CHROME_DESKTOP="$DESKTOP.desktop"
-
-HERE="`dirname "$CHROME_WRAPPER"`"
-
-# We include some xdg utilities next to the binary, and we want to prefer them
-# over the system versions when we know the system versions are very old. We
-# detect whether the system xdg utilities are sufficiently new to be likely to
-# work for us by looking for xdg-settings. If we find it, we leave $PATH alone,
-# so that the system xdg utilities (including any distro patches) will be used.
-if ! which xdg-settings &> /dev/null; then
-  # Old xdg utilities. Prepend $HERE to $PATH to use ours instead.
-  export PATH="$HERE:$PATH"
-else
-  # Use system xdg utilities. But first create mimeapps.list if it doesn't
-  # exist; some systems have bugs in xdg-mime that make it fail without it.
-  xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}"
-  mkdir -p "$xdg_app_dir"
-  [ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
-fi
-
-# Always use our ffmpeg and other shared libs.
-export LD_LIBRARY_PATH="$HERE:$HERE/lib:$HERE/lib.target${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
-
-MISSING_LIBS=$(ldd "$HERE/chrome" 2> /dev/null |grep "not found$" | cut -d" " -f 1|sed 's/\t//')
-CHROME_ARCH=$(check_executable "$HERE/chrome")
-uname -m | grep -qs x86_64
-if [ $? = 1 ]; then
-    LIBDIRS="/lib /lib32 /usr/lib /usr/lib32"
-else
-    LIBDIRS="/lib64 /lib /usr/lib64 /usr/lib"
-fi
-
-echo $MISSING_LIBS | grep -qs libbz2.so.1.0
-if [ $? = 0 ]; then
-    for dir in $LIBDIRS
-    do
-        if [ -e "$dir/libbz2.so.1" ]; then
-            LIB_ARCH=$(check_executable "$dir/libbz2.so.1")
-            if [ "$CHROME_ARCH" = "$LIB_ARCH" ]; then
-                ln -snf "$dir/libbz2.so.1" "$HERE/libbz2.so.1.0"
-                break;
-            fi
-        fi
-    done
-fi
-
-for lib in libnspr4.so.0d libnss3.so.1d libnssutil3.so.1d libplc4.so.0d libplds4.so.0d libsmime3.so.1d libssl3.so.1d
-do
-    echo $MISSING_LIBS | grep -qs $lib
-    if [ $? = 0 ]; then
-        reallib=$(echo $lib | sed 's/\.[01]d$//')
-        for dir in $LIBDIRS
-        do
-            if [ -e "$dir/$reallib" ]; then
-                LIB_ARCH=$(check_executable "$dir/$reallib")
-                if [ "$CHROME_ARCH" = "$LIB_ARCH" ]; then
-                    ln -snf "$dir/$reallib" "$HERE/$lib"
-                    break;
-                fi
-            fi
-        done
-    fi
-done
-
-# Custom version string for this release. This can be used to add a downstream
-# vendor string or release channel information.
-export CHROME_VERSION_EXTRA="custom"
-
-exists_desktop_file || generate_desktop_file
-
-CMD_PREFIX=
-ARGS=()
-while [ "$#" -gt 0 ]; do
-    case "$1" in
-    "--")
-        shift
-        break ;;
-    "--gdb")
-        CMD_PREFIX="gdb --args" ;;
-    "--help")
-        usage
-        exit 0 ;;
-    "--man-page")
-        exec man "$HERE/../../chrome/app/resources/manpage.1.in" ;;
-    *)
-        ARGS=( "${ARGS[@]}" "$1" ) ;;
-    esac
-    shift
-done
-set -- "${ARGS[@]}" "$@"
-
-exec $CMD_PREFIX "$HERE/chrome" "$@"
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome.1 b/src/chrome/tools/test/reference_build/chrome_linux/chrome.1
deleted file mode 100644 (file)
index 9989321..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-." This file is processed by chrome.gyp to generate manpages in the
-." build diretory.
-.TH google-chrome 1 "" "" "USER COMMANDS"
-
-.SH NAME
-google-chrome \- the web browser from Google
-
-.SH SYNOPSIS
-.B google-chrome
-[\fIOPTION\fR] [\fIPATH\fR|\fIURL\fR]
-
-.SH DESCRIPTION
-See the Google Chrome help center for help on using the browser.
-.IP
-<http://www.google.com/support/chrome/>
-.PP
-This manpage only describes invocation, environment, and arguments.
-
-.SH OPTIONS
-Google Chrome has hundreds of undocumented command-line flags that are added
-and removed at the whim of the developers.  Here, we document relatively
-stable flags.
-.TP
-\fB\-\-user\-data\-dir\fR=\fIDIR\fR
-Specifies the directory that user data (your "profile") is kept in.
-Defaults to
-.I ~/.config/google-chrome .
-Separate instances of Google Chrome must use separate user data directories;
-repeated invocations of google-chrome will reuse an existing process for
-a given user data directory.
-
-.TP
-\fB\-\-app\fR=\fIURL\fR
-Runs
-.I URL
-in "app mode": with no browser toolbars.
-
-.TP
-\fB\-\-incognito\fR
-Open in incognito mode.
-
-.TP
-\fB\-\-proxy-server\fR=\fIhost:port\fR
-Specify the HTTP/SOCKS4/SOCKS5 proxy server to use for requests.  This
-overrides any environment variables or settings picked via the options dialog.
-An individual proxy server is specified using the format:
-
-  [<proxy-scheme>://]<proxy-host>[:<proxy-port>]
-
-Where <proxy-scheme> is the protocol of the proxy server, and is one of:
-
-  "http", "socks", "socks4", "socks5".
-
-If the <proxy-scheme> is omitted, it defaults to "http". Also note that
-"socks" is equivalent to "socks5".
-
-Examples:
-
-  --proxy-server="foopy:99"
-      Use the HTTP proxy "foopy:99" to load all URLs.
-
-  --proxy-server="socks://foobar:1080"
-      Use the SOCKS v5 proxy "foobar:1080" to load all URLs.
-
-  --proxy-server="socks4://foobar:1080"
-      Use the SOCKS v4 proxy "foobar:1080" to load all URLs.
-
-  --proxy-server="socks5://foobar:66"
-      Use the SOCKS v5 proxy "foobar:66" to load all URLs.
-
-It is also possible to specify a separate proxy server for different URL types,
-by prefixing the proxy server specifier with a URL specifier:
-
-Example:
-
-  --proxy-server="https=proxy1:80;http=socks4://baz:1080"
-      Load https://* URLs using the HTTP proxy "proxy1:80". And load http://*
-      URLs using the SOCKS v4 proxy "baz:1080".
-
-.TP
-\fB\-\-no-proxy-server\fR
-Disables the proxy server.  Overrides any environment variables or
-settings picked via the options dialog.
-
-.TP
-\fB\-\-proxy-auto-detect\fR
-Autodetect proxy configuration.  Overrides any environment variables
-or settings picked via the options dialog.
-
-.TP
-\fB\-\-proxy-pac-url\fR=\fIURL\fR
-Specify proxy autoconfiguration URL.  Overrides any environment variables
-or settings picked via the options dialog.
-
-.TP
-\fB\-\-password-store\fR=<\fIbasic\fR|\fIgnome\fR|\fIkwallet\fR>
-Set the password store to use.  The default is to automatically detect based
-on the desktop environment.  \fIbasic\fR selects the built in, unencrypted
-password store.  \fIgnome\fR selects Gnome keyring.  \fIkwallet\fR selects
-(KDE) KWallet.  (Note that KWallet may not work reliably outside KDE.)
-
-.TP
-\fB\-\-version\fR
-Show version information.
-
-.PP
-As a GTK+ app, Google Chrome also obeys GTK+ command-line flags, such
-as
-.BR \-\-display .
-See the GTK documentation for more:
-.IP
-<http://library.gnome.org/devel/gtk/stable/gtk-running.html>
-<http://library.gnome.org/devel/gtk/stable/gtk-x11.html>
-
-.SH ENVIRONMENT
-Google Chrome obeys the following environment variables:
-
-.TP
-.B all_proxy
-Shorthand for specifying all of
-.B http_proxy, https_proxy, ftp_proxy
-
-.TP
-.B http_proxy, https_proxy, ftp_proxy
-The proxy servers used for HTTP, HTTPS, and FTP.
-.I Note:
-because Gnome/KDE proxy settings may propagate into these variables
-in some terminals, this variable is ignored (in preference for actual
-system proxy settings) when running under Gnome or KDE.  Use the
-command-line flags to set these when you want to force their values.
-
-.TP
-.B auto_proxy
-Specify proxy autoconfiguration.  Defined and empty autodetects; otherwise,
-it should be an autoconfig URL.  But see above note about Gnome/KDE.
-
-.TP
-.B SOCKS_SERVER
-SOCKS proxy server (defaults to SOCKS v4, also set
-.B SOCKS_VERSION=5
-to use SOCKS v5).
-
-.TP
-.B no_proxy
-Comma separated list of hosts or patterns to bypass proxying.
-
-.SH FILES
-.TP
-.I ~/.config/google-chrome
-Default directory for configuration data.
-
-.TP
-.I ~/.cache/google-chrome
-Default directory for cache data.  (Why?  See
-<http://standards.freedesktop.org/basedir-spec/latest/> .)
-
-.SH BUGS
-Bug tracker:
-.IP
-http://code.google.com/p/chromium/issues/list
-.PP
-Be sure to do your search within "All Issues" before reporting bugs,
-and be sure to pick the "Defect on Linux" template when filing a new one.
-
-.SH AUTHOR
-The Chromium team \- <http://www.chromium.org>
similarity index 63%
rename from src/chrome/tools/test/reference_build/chrome_linux/nacl_helper
rename to src/chrome/tools/test/reference_build/chrome_linux/chrome.dll
index a1cb8ba..cf880bb 100755 (executable)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/nacl_helper and b/src/chrome/tools/test/reference_build/chrome_linux/chrome.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome.exe b/src/chrome/tools/test/reference_build/chrome_linux/chrome.exe
new file mode 100755 (executable)
index 0000000..86f6165
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/chrome.exe differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome_100_percent.pak b/src/chrome/tools/test/reference_build/chrome_linux/chrome_100_percent.pak
deleted file mode 100644 (file)
index 5679e8a..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/chrome_100_percent.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome_dll.pdb b/src/chrome/tools/test/reference_build/chrome_linux/chrome_dll.pdb
new file mode 100755 (executable)
index 0000000..9275d9b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/chrome_dll.pdb differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome_exe.pdb b/src/chrome/tools/test/reference_build/chrome_linux/chrome_exe.pdb
new file mode 100755 (executable)
index 0000000..ec8beff
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/chrome_exe.pdb differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/chrome_sandbox b/src/chrome/tools/test/reference_build/chrome_linux/chrome_sandbox
deleted file mode 100755 (executable)
index 9b74f88..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/chrome_sandbox and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/crash_service.exe b/src/chrome/tools/test/reference_build/chrome_linux/crash_service.exe
new file mode 100755 (executable)
index 0000000..82276db
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/crash_service.exe differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/d3dx9_42.dll b/src/chrome/tools/test/reference_build/chrome_linux/d3dx9_42.dll
new file mode 100644 (file)
index 0000000..bf446db
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/d3dx9_42.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/gears.dll b/src/chrome/tools/test/reference_build/chrome_linux/gears.dll
new file mode 100755 (executable)
index 0000000..83bccd5
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/gears.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/icudt42.dll b/src/chrome/tools/test/reference_build/chrome_linux/icudt42.dll
new file mode 100755 (executable)
index 0000000..d61ac0b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/icudt42.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/apt.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/apt.include
deleted file mode 100644 (file)
index 50f1b6d..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-@@include@@variables.include
-
-APT_GET="`which apt-get 2> /dev/null`"
-APT_CONFIG="`which apt-config 2> /dev/null`"
-
-SOURCES_PREAMBLE="### THIS FILE IS AUTOMATICALLY CONFIGURED ###
-# You may comment out this entry, but any other modifications may be lost.\n"
-
-# Parse apt configuration and return requested variable value.
-apt_config_val() {
-  APTVAR="$1"
-  if [ -x "$APT_CONFIG" ]; then
-    "$APT_CONFIG" dump | sed -e "/^$APTVAR /"'!d' -e "s/^$APTVAR \"\(.*\)\".*/\1/"
-  fi
-}
-
-# Install the repository signing key (see also:
-# http://www.google.com/linuxrepositories/aboutkey.html)
-install_key() {
-  APT_KEY="`which apt-key 2> /dev/null`"
-  if [ -x "$APT_KEY" ]; then
-    "$APT_KEY" add - >/dev/null 2>&1 <<KEYDATA
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2.2 (GNU/Linux)
-
-mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
-kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
-fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
-feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
-QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
-b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
-78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
-4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
-HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
-bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
-eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
-HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
-AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
-A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
-rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
-XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
-pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
-K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
-2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
-CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
-KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
-cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
-G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
-5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
-D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
-/FJG
-=Quqp
------END PGP PUBLIC KEY BLOCK-----
-KEYDATA
-  fi
-}
-
-# Set variables for the locations of the apt sources lists.
-find_apt_sources() {
-  APTDIR=$(apt_config_val Dir)
-  APTETC=$(apt_config_val 'Dir::Etc')
-  APT_SOURCES="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourcelist')"
-  APT_SOURCESDIR="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourceparts')"
-}
-
-# Update the Google repository if it's not set correctly.
-# Note: this doesn't necessarily enable the repository, it just makes sure the
-# correct settings are available in the sources list.
-# Returns:
-# 0 - no update necessary
-# 2 - error
-update_bad_sources() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  find_apt_sources
-
-  SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
-  # Don't do anything if the file isn't there, since that probably means the
-  # user disabled it.
-  if [ ! -r "$SOURCELIST" ]; then
-    return 0
-  fi
-
-  # Basic check for active configurations (non-blank, non-comment lines).
-  ACTIVECONFIGS=$(grep -v "^[[:space:]]*\(#.*\)\?$" "$SOURCELIST" 2>/dev/null)
-
-  # Check if the correct repository configuration is in there.
-  REPOMATCH=$(grep "^[[:space:]#]*\b$REPOCONFIG\b" "$SOURCELIST" \
-    2>/dev/null)
-
-  # Check if the correct repository is disabled.
-  MATCH_DISABLED=$(echo "$REPOMATCH" | grep "^[[:space:]]*#" 2>/dev/null)
-
-  # Now figure out if we need to fix things.
-  BADCONFIG=1
-  if [ "$REPOMATCH" ]; then
-    # If it's there and active, that's ideal, so nothing to do.
-    if [ ! "$MATCH_DISABLED" ]; then
-      BADCONFIG=0
-    else
-      # If it's not active, but neither is anything else, that's fine too.
-      if [ ! "$ACTIVECONFIGS" ]; then
-        BADCONFIG=0
-      fi
-    fi
-  fi
-
-  if [ $BADCONFIG -eq 0 ]; then
-    return 0
-  fi
-
-  # At this point, either the correct configuration is completely missing, or
-  # the wrong configuration is active. In that case, just abandon the mess and
-  # recreate the file with the correct configuration. If there were no active
-  # configurations before, create the new configuration disabled.
-  DISABLE=""
-  if [ ! "$ACTIVECONFIGS" ]; then
-    DISABLE="#"
-  fi
-  printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
-  printf "$DISABLE$REPOCONFIG\n" >> "$SOURCELIST"
-  if [ $? -eq 0 ]; then
-    return 0
-  fi
-  return 2
-}
-
-# Add the Google repository to the apt sources.
-# Returns:
-# 0 - sources list was created
-# 2 - error
-create_sources_lists() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  find_apt_sources
-
-  SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
-  if [ -d "$APT_SOURCESDIR" ]; then
-    printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
-    printf "$REPOCONFIG\n" >> "$SOURCELIST"
-    if [ $? -eq 0 ]; then
-      return 0
-    fi
-  fi
-  return 2
-}
-
-# Remove our custom sources list file.
-# Returns:
-# 0 - successfully removed, or not configured
-# !0 - failed to remove
-clean_sources_lists() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  find_apt_sources
-
-  rm -f "$APT_SOURCESDIR/@@PACKAGE@@.list" \
-        "$APT_SOURCESDIR/@@PACKAGE@@-@@CHANNEL@@.list"
-}
-
-# Detect if the repo config was disabled by distro upgrade and enable if
-# necessary.
-handle_distro_upgrade() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  find_apt_sources
-  SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
-  if [ -r "$SOURCELIST" ]; then
-    REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIG[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
-    if [ $? -eq 0 ]; then
-      sed -i -e "s,^[[:space:]]*#[[:space:]]*\($REPOCONFIG\)[[:space:]]*# disabled on upgrade to .*,\1," \
-        "$SOURCELIST"
-      LOGGER=$(which logger 2> /dev/null)
-      if [ "$LOGGER" ]; then
-        "$LOGGER" -t "$0" "Reverted repository modification: $REPOLINE."
-      fi
-    fi
-  fi
-}
-
-DEFAULT_ARCH="@@ARCHITECTURE@@"
-
-get_lib_dir() {
-  if [ "$DEFAULT_ARCH" = "i386" ]; then
-    LIBDIR=lib/i386-linux-gnu
-  elif [ "$DEFAULT_ARCH" = "amd64" ]; then
-    LIBDIR=lib/x86_64-linux-gnu
-  else
-    echo Unknown CPU Architecture: "$DEFAULT_ARCH"
-    exit 1
-  fi
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app-block.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app-block.template
deleted file mode 100644 (file)
index 6c5a7bf..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-    <web-browser>
-      <name>@@MENUNAME@@</name>
-      <executable>@@INSTALLDIR@@/@@PACKAGE@@</executable>
-      <command>@@INSTALLDIR@@/@@PACKAGE@@ %s</command>
-      <icon-name>@@PACKAGE@@</icon-name>
-      <run-in-terminal>false</run-in-terminal>
-      <netscape-remote>true</netscape-remote>
-      <tab-command>@@INSTALLDIR@@/@@PACKAGE@@ %s</tab-command>
-      <win-command>@@INSTALLDIR@@/@@PACKAGE@@ --new-window %s</win-command>
-    </web-browser>
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/default-app.template
deleted file mode 100644 (file)
index d3aeb34..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
-<!-- This file should be put in /usr/share/gnome-control-center/default-apps,
-     or, if that directory does not exist, its web-browser tag patched into
-     /usr/share/gnome-control-center/gnome-default-applications.xml -->
-<default-apps>
-  <web-browsers>
-    <web-browser>
-      <name>@@MENUNAME@@</name>
-      <executable>@@INSTALLDIR@@/@@PACKAGE@@</executable>
-      <command>@@INSTALLDIR@@/@@PACKAGE@@ %s</command>
-      <icon-name>@@PACKAGE@@</icon-name>
-      <run-in-terminal>false</run-in-terminal>
-      <netscape-remote>true</netscape-remote>
-      <tab-command>@@INSTALLDIR@@/@@PACKAGE@@ %s</tab-command>
-      <win-command>@@INSTALLDIR@@/@@PACKAGE@@ --new-window %s</win-command>
-    </web-browser>
-  </web-browsers>
-</default-apps>
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/desktop.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/desktop.template
deleted file mode 100644 (file)
index ec802f2..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=@@MENUNAME@@
-# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
-# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
-GenericName=Web Browser
-GenericName[ar]=متصفح الشبكة
-GenericName[bg]=Уеб браузър
-GenericName[ca]=Navegador web
-GenericName[cs]=WWW prohlížeč
-GenericName[da]=Browser
-GenericName[de]=Web-Browser
-GenericName[el]=Περιηγητής ιστού
-GenericName[en_GB]=Web Browser
-GenericName[es]=Navegador web
-GenericName[et]=Veebibrauser
-GenericName[fi]=WWW-selain
-GenericName[fr]=Navigateur Web
-GenericName[gu]=વેબ બ્રાઉઝર
-GenericName[he]=דפדפן אינטרנט
-GenericName[hi]=वेब ब्राउज़र
-GenericName[hu]=Webböngésző
-GenericName[it]=Browser Web
-GenericName[ja]=ウェブブラウザ
-GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
-GenericName[ko]=웹 브라우저
-GenericName[lt]=Žiniatinklio naršyklė
-GenericName[lv]=Tīmekļa pārlūks
-GenericName[ml]=വെബ് ബ്രൌസര്‍
-GenericName[mr]=वेब ब्राऊजर
-GenericName[nb]=Nettleser
-GenericName[nl]=Webbrowser
-GenericName[pl]=Przeglądarka WWW
-GenericName[pt]=Navegador Web
-GenericName[pt_BR]=Navegador da Internet
-GenericName[ro]=Navigator de Internet
-GenericName[ru]=Веб-браузер
-GenericName[sl]=Spletni brskalnik
-GenericName[sv]=Webbläsare
-GenericName[ta]=இணைய உலாவி
-GenericName[th]=เว็บเบราว์เซอร์
-GenericName[tr]=Web Tarayıcı
-GenericName[uk]=Навігатор Тенет
-GenericName[zh_CN]=网页浏览器
-GenericName[zh_HK]=網頁瀏覽器
-GenericName[zh_TW]=網頁瀏覽器
-# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
-GenericName[bn]=ওয়েব ব্রাউজার
-GenericName[fil]=Web Browser
-GenericName[hr]=Web preglednik
-GenericName[id]=Browser Web
-GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
-GenericName[sk]=WWW prehliadač
-GenericName[sr]=Интернет прегледник
-GenericName[te]=మహాతల అన్వేషి
-GenericName[vi]=Bộ duyệt Web
-# Gnome and KDE 3 uses Comment.
-Comment=Access the Internet
-Comment[ar]=الدخول إلى الإنترنت
-Comment[bg]=Достъп до интернет
-Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
-Comment[ca]=Accedeix a Internet
-Comment[cs]=Přístup k internetu
-Comment[da]=Få adgang til internettet
-Comment[de]=Internetzugriff
-Comment[el]=Πρόσβαση στο Διαδίκτυο
-Comment[en_GB]=Access the Internet
-Comment[es]=Accede a Internet.
-Comment[et]=Pääs Internetti
-Comment[fi]=Käytä internetiä
-Comment[fil]=I-access ang Internet
-Comment[fr]=Accéder à Internet
-Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
-Comment[he]=גישה אל האינטרנט
-Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
-Comment[hr]=Pristup Internetu
-Comment[hu]=Internetelérés
-Comment[id]=Akses Internet
-Comment[it]=Accesso a Internet
-Comment[ja]=インターネットにアクセス
-Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
-Comment[ko]=인터넷 연결
-Comment[lt]=Interneto prieiga
-Comment[lv]=Piekļūt internetam
-Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
-Comment[mr]=इंटरनेटमध्ये प्रवेश करा
-Comment[nb]=Gå til Internett
-Comment[nl]=Verbinding maken met internet
-Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
-Comment[pl]=Skorzystaj z internetu
-Comment[pt]=Aceder à Internet
-Comment[pt_BR]=Acessar a internet
-Comment[ro]=Accesaţi Internetul
-Comment[ru]=Доступ в Интернет
-Comment[sk]=Prístup do siete Internet
-Comment[sl]=Dostop do interneta
-Comment[sr]=Приступите Интернету
-Comment[sv]=Gå ut på Internet
-Comment[ta]=இணையத்தை அணுகுதல்
-Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
-Comment[th]=เข้าถึงอินเทอร์เน็ต
-Comment[tr]=İnternet'e erişin
-Comment[uk]=Доступ до Інтернету
-Comment[vi]=Truy cập Internet
-Comment[zh_CN]=访问互联网
-Comment[zh_HK]=連線到網際網路
-Comment[zh_TW]=連線到網際網路
-Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@ %U
-Terminal=false
-Icon=@@PACKAGE@@
-Type=Application
-Categories=Network;WebBrowser;
-MimeType=text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
-X-Ayatana-Desktop-Shortcuts=NewWindow;NewIncognito
-
-[NewWindow Shortcut Group]
-Name=New Window
-Name[am]=አዲስ መስኮት
-Name[ar]=نافذة جديدة
-Name[bg]=Нов прозорец
-Name[bn]=নতুন উইন্ডো
-Name[ca]=Finestra nova
-Name[cs]=Nové okno
-Name[da]=Nyt vindue
-Name[de]=Neues Fenster
-Name[el]=Νέο Παράθυρο
-Name[en_GB]=New Window
-Name[es]=Nueva ventana
-Name[et]=Uus aken
-Name[fa]=پنجره جدید
-Name[fi]=Uusi ikkuna
-Name[fil]=New Window
-Name[fr]=Nouvelle fenêtre
-Name[gu]=નવી વિંડો
-Name[hi]=नई विंडो
-Name[hr]=Novi prozor
-Name[hu]=Új ablak
-Name[id]=Jendela Baru
-Name[it]=Nuova finestra
-Name[iw]=חלון חדש
-Name[ja]=新規ウインドウ
-Name[kn]=ಹೊಸ ವಿಂಡೊ
-Name[ko]=새 창
-Name[lt]=Naujas langas
-Name[lv]=Jauns logs
-Name[ml]=പുതിയ വിന്‍ഡോ
-Name[mr]=नवीन विंडो
-Name[nl]=Nieuw venster
-Name[no]=Nytt vindu
-Name[pl]=Nowe okno
-Name[pt]=Nova janela
-Name[pt_BR]=Nova janela
-Name[ro]=Fereastră nouă
-Name[ru]=Новое окно
-Name[sk]=Nové okno
-Name[sl]=Novo okno
-Name[sr]=Нови прозор
-Name[sv]=Nytt fönster
-Name[sw]=Dirisha Jipya
-Name[ta]=புதிய சாளரம்
-Name[te]=క్రొత్త విండో
-Name[th]=หน้าต่างใหม่
-Name[tr]=Yeni Pencere
-Name[uk]=Нове вікно
-Name[vi]=Cửa sổ Mới
-Name[zh_CN]=新建窗口
-Name[zh_TW]=開新視窗
-Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@
-TargetEnvironment=Unity
-
-[NewIncognito Shortcut Group]
-Name=New Incognito Window
-Name[ar]=نافذة جديدة للتصفح المتخفي
-Name[bg]=Нов прозорец „инкогнито“
-Name[bn]=নতুন ছদ্মবেশী উইন্ডো
-Name[ca]=Finestra d'incògnit nova
-Name[cs]=Nové anonymní okno
-Name[da]=Nyt inkognitovindue
-Name[de]=Neues Inkognito-Fenster
-Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
-Name[en_GB]=New Incognito window
-Name[es]=Nueva ventana de incógnito
-Name[et]=Uus inkognito aken
-Name[fa]=پنجره جدید حالت ناشناس
-Name[fi]=Uusi incognito-ikkuna
-Name[fil]=Bagong Incognito window
-Name[fr]=Nouvelle fenêtre de navigation privée
-Name[gu]=નવી છુપી વિંડો
-Name[hi]=नई गुप्त विंडो
-Name[hr]=Novi anoniman prozor
-Name[hu]=Új Inkognitóablak
-Name[id]=Jendela Penyamaran baru
-Name[it]=Nuova finestra di navigazione in incognito
-Name[iw]=חלון חדש לגלישה בסתר
-Name[ja]=新しいシークレット ウィンドウ
-Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
-Name[ko]=새 시크릿 창
-Name[lt]=Naujas inkognito langas
-Name[lv]=Jauns inkognito režīma logs
-Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ
-Name[mr]=नवीन गुप्त विंडो
-Name[nl]=Nieuw incognitovenster
-Name[no]=Nytt inkognitovindu
-Name[pl]=Nowe okno incognito
-Name[pt]=Nova janela de navegação anónima
-Name[pt_BR]=Nova janela anônima
-Name[ro]=Fereastră nouă incognito
-Name[ru]=Новое окно в режиме инкогнито
-Name[sk]=Nové okno inkognito
-Name[sl]=Novo okno brez beleženja zgodovine
-Name[sr]=Нови прозор за прегледање без архивирања
-Name[sv]=Nytt inkognitofönster
-Name[ta]=புதிய மறைநிலைச் சாளரம்
-Name[te]=క్రొత్త అజ్ఞాత విండో
-Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
-Name[tr]=Yeni Gizli pencere
-Name[uk]=Нове вікно в режимі анонімного перегляду
-Name[vi]=Cửa sổ ẩn danh mới
-Name[zh_CN]=新建隐身窗口
-Name[zh_TW]=新增無痕式視窗
-Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@ --incognito
-TargetEnvironment=Unity
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/eu-strip b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/eu-strip
deleted file mode 100755 (executable)
index 34f5175..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/eu-strip and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/google-chrome.info b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/google-chrome.info
deleted file mode 100644 (file)
index 414efde..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# This file provides common configuration information for building
-# google-chrome packages for various platforms.
-
-# Base name of the package.
-PACKAGE="google-chrome"
-
-# Filename of the main executable (for generating launcher scripts, etc.)
-PROGNAME=chrome
-
-# Base directory for package installation.
-INSTALLDIR=/opt/google/chrome
-
-# Display string for desktop menu/icon.
-MENUNAME="Google Chrome"
-
-# Brief package description.
-SHORTDESC="The web browser from Google"
-
-# Detailed package description.
-FULLDESC="Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier."
-
-# Package maintainer information.
-# TODO(mmoss) Setup a mailbox for this address
-MAINTNAME="Chrome Linux Team"
-MAINTMAIL="chromium-dev@chromium.org"
-PRODUCTURL="http://chrome.google.com/"
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/installer.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/installer.include
deleted file mode 100644 (file)
index 962fd86..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-# Recursively replace @@include@@ template variables with the referenced file,
-# and write the resulting text to stdout.
-process_template_includes() {
-  INCSTACK+="$1->"
-  # Includes are relative to the file that does the include.
-  INCDIR=$(dirname $1)
-  # Clear IFS so 'read' doesn't trim whitespace
-  local OLDIFS="$IFS"
-  IFS=''
-  while read -r LINE
-  do
-    INCLINE=$(sed -e '/^[[:space:]]*@@include@@/!d' <<<$LINE)
-    if [ -n "$INCLINE" ]; then
-      INCFILE=$(echo $INCLINE | sed -e "s#@@include@@\(.*\)#\1#")
-      # Simple filename match to detect cyclic includes.
-      CYCLE=$(sed -e "\#$INCFILE#"'!d' <<<$INCSTACK)
-      if [ "$CYCLE" ]; then
-        echo "ERROR: Possible cyclic include detected." 1>&2
-        echo "$INCSTACK$INCFILE" 1>&2
-        exit 1
-      fi
-      if [ ! -r "$INCDIR/$INCFILE" ]; then
-        echo "ERROR: Couldn't read include file: $INCDIR/$INCFILE" 1>&2
-        exit 1
-      fi
-      process_template_includes "$INCDIR/$INCFILE"
-    else
-      echo "$LINE"
-    fi
-  done < "$1"
-  IFS="$OLDIFS"
-  INCSTACK=${INCSTACK%"$1->"}
-}
-
-# Replace template variables (@@VARNAME@@) in the given template file. If a
-# second argument is given, save the processed text to that filename, otherwise
-# modify the template file in place.
-process_template() (
-  # Don't worry if some of these substitution variables aren't set.
-  # Note that this function is run in a sub-shell so we don't leak this
-  # setting, since we still want unbound variables to be an error elsewhere.
-  set +u
-
-  local TMPLIN="$1"
-  if [ -z "$2" ]; then
-    local TMPLOUT="$TMPLIN"
-  else
-    local TMPLOUT="$2"
-  fi
-  # Process includes first so included text also gets substitutions.
-  TMPLINCL="$(process_template_includes "$TMPLIN")"
-  sed \
-    -e "s#@@PACKAGE@@#${PACKAGE}#g" \
-    -e "s#@@PACKAGE_FILENAME@@#${PACKAGE_FILENAME}#g" \
-    -e "s#@@PROGNAME@@#${PROGNAME}#g" \
-    -e "s#@@CHANNEL@@#${CHANNEL}#g" \
-    -e "s#@@COMPANY_FULLNAME@@#${COMPANY_FULLNAME}#g" \
-    -e "s#@@VERSION@@#${VERSION}#g" \
-    -e "s#@@PACKAGE_RELEASE@@#${PACKAGE_RELEASE}#g" \
-    -e "s#@@VERSIONFULL@@#${VERSIONFULL}#g" \
-    -e "s#@@INSTALLDIR@@#${INSTALLDIR}#g" \
-    -e "s#@@BUILDDIR@@#${BUILDDIR}#g" \
-    -e "s#@@STAGEDIR@@#${STAGEDIR}#g" \
-    -e "s#@@SCRIPTDIR@@#${SCRIPTDIR}#g" \
-    -e "s#@@MENUNAME@@#${MENUNAME}#g" \
-    -e "s#@@PRODUCTURL@@#${PRODUCTURL}#g" \
-    -e "s#@@PREDEPENDS@@#${PREDEPENDS}#g" \
-    -e "s#@@DEPENDS@@#${DEPENDS}#g" \
-    -e "s#@@PROVIDES@@#${PROVIDES}#g" \
-    -e "s#@@REPLACES@@#${REPLACES}#g" \
-    -e "s#@@CONFLICTS@@#${CONFLICTS}#g" \
-    -e "s#@@ARCHITECTURE@@#${ARCHITECTURE}#g" \
-    -e "s#@@MAINTNAME@@#${MAINTNAME}#g" \
-    -e "s#@@MAINTMAIL@@#${MAINTMAIL}#g" \
-    -e "s#@@REPOCONFIG@@#${REPOCONFIG}#g" \
-    -e "s#@@SHORTDESC@@#${SHORTDESC}#g" \
-    -e "s#@@FULLDESC@@#${FULLDESC}#g" \
-    -e "s#@@DEFAULT_FLAGS@@#${DEFAULT_FLAGS:-}#g" \
-    -e "s#@@SXS_USER_DATA_DIR@@#${SXS_USER_DATA_DIR:-}#g" \
-    -e "s#@@USR_BIN_SYMLINK_NAME@@#${USR_BIN_SYMLINK_NAME:-}#g" \
-    > "$TMPLOUT" <<< "$TMPLINCL"
-)
-
-# Setup the installation directory hierachy in the package staging area.
-prep_staging_common() {
-  install -m 755 -d "${STAGEDIR}/${INSTALLDIR}" \
-    "${STAGEDIR}/usr/bin" \
-    "${STAGEDIR}/usr/share/applications" \
-    "${STAGEDIR}/usr/share/gnome-control-center/default-apps" \
-    "${STAGEDIR}/usr/share/man/man1"
-}
-
-get_version_info() {
-  source "${BUILDDIR}/installer/version.txt"
-  VERSION="${MAJOR}.${MINOR}.${BUILD}.${PATCH}"
-  # TODO(phajdan.jr): Provide a mechanism to pass a different package
-  # release number if needed. The meaning of it is to bump it for
-  # packaging-only changes while the underlying software has the same version.
-  # This corresponds to the Release field in RPM spec files and debian_revision
-  # component of the Version field for DEB control file.
-  # Generally with Chrome's fast release cycle it'd be more hassle to try
-  # to bump this number between releases.
-  PACKAGE_RELEASE="1"
-}
-
-stage_install_common() {
-  echo "Staging common install files in '${STAGEDIR}'..."
-
-  # TODO(mmoss) This assumes we built the static binaries. To support shared
-  # builds, we probably want an install target in scons so it can give us all
-  # the right files. See also:
-  # http://code.google.com/p/chromium/issues/detail?id=4451
-  #
-  # app
-  # We need to add the debug link so gdb knows to look for the symbols.
-  DEBUGFILE="${BUILDDIR}/${PROGNAME}.debug"
-  STRIPPEDFILE="${BUILDDIR}/${PROGNAME}.stripped"
-  "${BUILDDIR}/installer/common/eu-strip" -o "${STRIPPEDFILE}" -f "${DEBUGFILE}" "${BUILDDIR}/${PROGNAME}"
-  install -m 755 "${STRIPPEDFILE}" "${STAGEDIR}/${INSTALLDIR}/${PROGNAME}"
-  rm "${DEBUGFILE}" "${STRIPPEDFILE}"
-
-  # resources
-  install -m 644 "${BUILDDIR}/resources.pak" "${STAGEDIR}/${INSTALLDIR}/"
-  # TODO(mmoss): This has broken a couple times on adding new .pak files. Maybe
-  # we should flag all installer files in FILES.cfg and get them from there, so
-  # there's only one place people need to keep track of such things (and in
-  # only the public repository).
-  if [ -r "${BUILDDIR}/chrome_100_percent.pak" ]; then
-    install -m 644 "${BUILDDIR}/chrome_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/"
-  else
-    install -m 644 "${BUILDDIR}/theme_resources_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/"
-    install -m 644 "${BUILDDIR}/ui_resources_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/"
-  fi
-
-  # sandbox
-  # Rename sandbox binary with hyphen instead of underscore because that's what
-  # the code looks for, but the build targets can't use hyphens (scons bug?)
-  install -m 4755 -s "${BUILDDIR}/${PROGNAME}_sandbox" \
-    "${STAGEDIR}/${INSTALLDIR}/${PROGNAME}-sandbox"
-
-  # l10n paks
-  cp -a "${BUILDDIR}/locales" "${STAGEDIR}/${INSTALLDIR}/"
-  find "${STAGEDIR}/${INSTALLDIR}/locales" -type f -exec chmod 644 '{}' \;
-  find "${STAGEDIR}/${INSTALLDIR}/locales" -type d -exec chmod 755 '{}' \;
-
-  # ffmpeg libs
-  install -m 644 -s "${BUILDDIR}/libffmpegsumo.so" "${STAGEDIR}/${INSTALLDIR}/"
-
-  # Widevine CDM.
-  if [ -f "${BUILDDIR}/libwidevinecdmadapter.so" ]; then
-    install -m 644 -s "${BUILDDIR}/libwidevinecdmadapter.so" "${STAGEDIR}/${INSTALLDIR}/"
-    install -m 644 "${BUILDDIR}/libwidevinecdm.so" "${STAGEDIR}/${INSTALLDIR}/"
-  fi
-
-  # Pepper Flash.
-  PEPPERFLASH_SRCDIR="${BUILDDIR}/PepperFlash"
-  PEPPERFLASH_DESTDIR="${STAGEDIR}/${INSTALLDIR}/PepperFlash"
-  install -m 755 -d "${PEPPERFLASH_DESTDIR}"
-  install -m 644 -s "${PEPPERFLASH_SRCDIR}/libpepflashplayer.so" \
-    "${PEPPERFLASH_DESTDIR}/"
-  install -m 644 "${PEPPERFLASH_SRCDIR}/manifest.json" \
-    "${PEPPERFLASH_DESTDIR}/"
-
-  # pdf plugin
-  if [ -f "${BUILDDIR}/libpdf.so" ]; then
-    install -m 644 -s "${BUILDDIR}/libpdf.so" "${STAGEDIR}/${INSTALLDIR}/"
-  fi
-
-  # peerconnection shared library
-  if [ -f "${BUILDDIR}/lib/libpeerconnection.so" ]; then
-    install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/lib/"
-    install -m 644 -s "${BUILDDIR}/lib/libpeerconnection.so" "${STAGEDIR}/${INSTALLDIR}/lib/"
-  fi
-
-  # nacl pepper plugin
-  if [ -f "${BUILDDIR}/libppGoogleNaClPluginChrome.so" ]; then
-    install -m 644 -s "${BUILDDIR}/libppGoogleNaClPluginChrome.so" "${STAGEDIR}/${INSTALLDIR}/"
-  fi
-
-  # nacl_helper and nacl_helper_bootstrap
-  # Don't use "-s" (strip) because this runs binutils "strip", which
-  # mangles the special ELF program headers of nacl_helper_bootstrap.
-  # Explicitly use eu-strip instead, because it doesn't have that problem.
-  for file in nacl_helper nacl_helper_bootstrap; do
-    buildfile="${BUILDDIR}/${file}"
-    if [ -f "${buildfile}" ]; then
-      strippedfile="${buildfile}.stripped"
-      debugfile="${buildfile}.debug"
-      "${BUILDDIR}/installer/common/eu-strip" -o "${strippedfile}" -f "${debugfile}" "${buildfile}"
-      install -m 755 "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
-    fi
-  done
-  # Don't use "-s" (strip) because this would use the Linux toolchain to
-  # strip the NaCl binary, which has the potential to break it.  It
-  # certainly resets the OSABI and ABIVERSION fields to non-NaCl values,
-  # although the NaCl IRT loader doesn't care about these fields.  In any
-  # case, the IRT binaries are already stripped by NaCl's build process.
-  for filename in ${BUILDDIR}/nacl_irt_*.nexe; do
-    # Re-check the filename in case globbing matched nothing.
-    if [ -f "$filename" ]; then
-      install -m 644 "$filename" "${STAGEDIR}/${INSTALLDIR}/`basename "$filename"`"
-    fi
-  done
-
-  # default apps
-  if [ -d "${BUILDDIR}/default_apps" ]; then
-    cp -a "${BUILDDIR}/default_apps" "${STAGEDIR}/${INSTALLDIR}/"
-    find "${STAGEDIR}/${INSTALLDIR}/default_apps" -type d -exec chmod 755 '{}' \;
-    find "${STAGEDIR}/${INSTALLDIR}/default_apps" -type f -exec chmod 644 '{}' \;
-  fi
-
-  # launcher script and symlink
-  process_template "${BUILDDIR}/installer/common/wrapper" \
-    "${STAGEDIR}/${INSTALLDIR}/${PACKAGE}"
-  chmod 755 "${STAGEDIR}/${INSTALLDIR}/${PACKAGE}"
-  ln -snf "${INSTALLDIR}/${PACKAGE}" \
-    "${STAGEDIR}/usr/bin/${USR_BIN_SYMLINK_NAME}"
-
-  # app icons
-  install -m 644 \
-    "${BUILDDIR}/installer/theme/product_logo_"*.png \
-    "${BUILDDIR}/installer/theme/product_logo_32.xpm" \
-    "${STAGEDIR}/${INSTALLDIR}/"
-
-  # desktop integration
-  install -m 755 "${BUILDDIR}/xdg-mime" "${STAGEDIR}${INSTALLDIR}/"
-  install -m 755 "${BUILDDIR}/xdg-settings" "${STAGEDIR}${INSTALLDIR}/"
-  process_template "${BUILDDIR}/installer/common/desktop.template" \
-    "${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"
-  process_template "${BUILDDIR}/installer/common/default-app-block.template" \
-    "${STAGEDIR}${INSTALLDIR}/default-app-block"
-  chmod 644 "${STAGEDIR}${INSTALLDIR}/default-app-block"
-
-  # documentation
-  install -m 755 "${BUILDDIR}/${PROGNAME}.1" \
-    "${STAGEDIR}/usr/share/man/man1/${PACKAGE}.1"
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/postinst.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/postinst.include
deleted file mode 100644 (file)
index 9d10185..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# Add icons to the system icons
-XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
-if [ ! -x "$XDG_ICON_RESOURCE" ]; then
-  echo "Error: Could not find xdg-icon-resource" >&2
-  exit 1
-fi
-for icon in "@@INSTALLDIR@@/product_logo_"*.png; do
-  size="${icon##*/product_logo_}"
-  "$XDG_ICON_RESOURCE" install --size "${size%.png}" "$icon" "@@PACKAGE@@"
-done
-
-UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
-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.
-insert_after_first_match() {
-  # $1: file to update
-  # $2: regular expression
-  # $3: file to insert
-  sed -i -e "1,/$2/ {
-    /$2/ r $3
-    }" "$1"
-}
-
-# If /usr/share/gnome-control-center/gnome-default-applications.xml exists, it
-# may need to be updated to add ourselves to the default applications list. If
-# we find the file and it does not seem to contain our patch already (the patch
-# is safe to leave even after uninstall), update it.
-GNOME_DFL_APPS=/usr/share/gnome-control-center/gnome-default-applications.xml
-if [ -f "$GNOME_DFL_APPS" ]; then
-# Conditionally insert the contents of the file "default-app-block" after the
-# first "<web-browsers>" line we find in gnome-default-applications.xml
-  fgrep -q "@@MENUNAME@@" "$GNOME_DFL_APPS" || insert_after_first_match \
-    "$GNOME_DFL_APPS" \
-    "^[        ]*<web-browsers>[       ]*$" \
-    "@@INSTALLDIR@@/default-app-block"
-fi
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/prerm.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/prerm.include
deleted file mode 100644 (file)
index 721f525..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# Remove icons from the system icons
-XDG_ICON_RESOURCE="`which xdg-icon-resource 2> /dev/null || true`"
-if [ ! -x "$XDG_ICON_RESOURCE" ]; then
-  echo "Error: Could not find xdg-icon-resource" >&2
-  exit 1
-fi
-for icon in "@@INSTALLDIR@@/product_logo_"*.png; do
-  size="${icon##*/product_logo_}"
-  "$XDG_ICON_RESOURCE" uninstall --size "${size%.png}" "@@PACKAGE@@"
-done
-
-UPDATE_MENUS="`which update-menus 2> /dev/null || true`"
-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/src/chrome/tools/test/reference_build/chrome_linux/installer/common/repo.cron b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/repo.cron
deleted file mode 100755 (executable)
index fbb3e74..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# This script is part of the @@PACKAGE@@ package.
-#
-# It creates the repository configuration file for package updates, and it
-# monitors that config to see if it has been disabled by the overly aggressive
-# distro upgrade process (e.g.  intrepid -> jaunty). When this situation is
-# detected, the respository will be re-enabled. If the respository is disabled
-# for any other reason, this won't re-enable it.
-#
-# This functionality can be controlled by creating the $DEFAULTS_FILE and
-# setting "repo_add_once" and/or "repo_reenable_on_distupgrade" to "true" or
-# "false" as desired. An empty $DEFAULTS_FILE is the same as setting both values
-# to "false".
-
-@@include@@apt.include
-
-## MAIN ##
-DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
-if [ -r "$DEFAULTS_FILE" ]; then
-  . "$DEFAULTS_FILE"
-fi
-
-if [ "$repo_add_once" = "true" ]; then
-  install_key
-  create_sources_lists
-  RES=$?
-  # Sources creation succeeded, so stop trying.
-  if [ $RES -ne 2 ]; then
-    sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' "$DEFAULTS_FILE"
-  fi
-else
-  update_bad_sources
-fi
-
-if [ "$repo_reenable_on_distupgrade" = "true" ]; then
-  handle_distro_upgrade
-fi
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpm.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpm.include
deleted file mode 100644 (file)
index 91b4459..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-@@include@@variables.include
-
-# Install the repository signing key (see also:
-# http://www.google.com/linuxrepositories/aboutkey.html)
-install_rpm_key() {
-  # Check to see if key already exists.
-  rpm -q gpg-pubkey-7fac5991-4615767f > /dev/null 2>&1
-  if [ "$?" -eq "0" ]; then
-    # Key already exists
-    return 0
-  fi
-  # This is to work around a bug in RPM 4.7.0. (see http://crbug.com/22312)
-  rpm -q gpg-pubkey-7fac5991-45f06f46 > /dev/null 2>&1
-  if [ "$?" -eq "0" ]; then
-    # Key already exists
-    return 0
-  fi
-
-  # RPM on Mandriva 2009 is dumb and does not understand "rpm --import -"
-  TMPKEY=$(mktemp /tmp/google.sig.XXXXXX)
-  if [ -n "$TMPKEY" ]; then
-    cat > "$TMPKEY" <<KEYDATA
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2.2 (GNU/Linux)
-
-mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
-kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
-fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
-feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
-QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
-b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
-78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
-4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
-HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
-bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
-eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
-HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
-AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
-A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
-rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
-XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
-pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
-K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
-2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
-CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
-KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
-cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
-G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
-5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
-D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
-/FJG
-=Quqp
------END PGP PUBLIC KEY BLOCK-----
-KEYDATA
-    rpm --import "$TMPKEY"
-    rc=$?
-    rm -f "$TMPKEY"
-    if [ "$rc" -eq "0" ]; then
-      return 0
-    fi
-  fi
-  return 1
-}
-
-determine_rpm_package_manager() {
-  local RELEASE
-  LSB_RELEASE="$(which lsb_release 2> /dev/null)"
-  if [ -x "$LSB_RELEASE" ]; then
-    RELEASE=$(lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-)
-    case $RELEASE in
-    "Fedora")
-      PACKAGEMANAGER=yum
-      ;;
-    "MandrivaLinux")
-      PACKAGEMANAGER=urpmi
-      ;;
-    "SUSE LINUX")
-      PACKAGEMANAGER=yast
-      ;;
-    esac
-  fi
-
-  if [ "$PACKAGEMANAGER" ]; then
-    return
-  fi
-
-  # Fallback methods that are probably unnecessary on modern systems.
-  if [ -f "/etc/lsb-release" ]; then
-    # file missing on Fedora, does not contain DISTRIB_ID on OpenSUSE.
-    eval $(sed -e '/DISTRIB_ID/!d' /etc/lsb-release)
-    case $DISTRIB_ID in
-    MandrivaLinux)
-      PACKAGEMANAGER=urpmi
-      ;;
-    esac
-  fi
-
-  if [ "$PACKAGEMANAGER" ]; then
-    return
-  fi
-
-  if [ -f "/etc/fedora-release" ] || [ -f "/etc/redhat-release" ]; then
-    PACKAGEMANAGER=yum
-  elif [ -f "/etc/SuSE-release" ]; then
-    PACKAGEMANAGER=yast
-  elif [ -f "/etc/mandriva-release" ]; then
-    PACKAGEMANAGER=urpmi
-  fi
-}
-
-DEFAULT_ARCH="@@ARCHITECTURE@@"
-YUM_REPO_FILE="/etc/yum.repos.d/@@PACKAGE@@.repo"
-ZYPPER_REPO_FILE="/etc/zypp/repos.d/@@PACKAGE@@.repo"
-URPMI_REPO_FILE="/etc/urpmi/urpmi.cfg"
-
-install_yum() {
-  install_rpm_key
-
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  if [ -d "/etc/yum.repos.d" ]; then
-cat > "$YUM_REPO_FILE" << REPOCONTENT
-[@@PACKAGE@@]
-name=@@PACKAGE@@
-baseurl=$REPOCONFIG/$DEFAULT_ARCH
-enabled=1
-gpgcheck=1
-REPOCONTENT
-  fi
-}
-
-# This is called by the cron job, rather than in the RPM postinstall.
-# We cannot do this during the install when urpmi is running due to
-# database locking. We also need to enable the repository, and we can
-# only do that while we are online.
-# see: https://qa.mandriva.com/show_bug.cgi?id=31893
-configure_urpmi() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  urpmq --list-media | grep -q -s "^@@PACKAGE@@$"
-  if [ "$?" -eq "0" ]; then
-    # Repository already configured
-    return 0
-  fi
-  urpmi.addmedia --update \
-    "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
-}
-
-install_urpmi() {
-  # urpmi not smart enough to pull media_info/pubkey from the repository?
-  install_rpm_key
-
-  # Defer urpmi.addmedia to configure_urpmi() in the cron job.
-  # See comment there.
-  #
-  # urpmi.addmedia --update \
-  #   "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
-}
-
-install_yast() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  # We defer adding the key to later. See comment in the cron job.
-
-  # Ideally, we would run: zypper addrepo -t YUM -f \
-  # "$REPOCONFIG/$DEFAULT_ARCH" "@@PACKAGE@@"
-  # but that does not work when zypper is running.
-  if [ -d "/etc/zypp/repos.d" ]; then
-cat > "$ZYPPER_REPO_FILE" << REPOCONTENT
-[@@PACKAGE@@]
-name=@@PACKAGE@@
-enabled=1
-autorefresh=1
-baseurl=$REPOCONFIG/$DEFAULT_ARCH
-type=rpm-md
-keeppackages=0
-REPOCONTENT
-  fi
-}
-
-# Check if the automatic repository configuration is done, so we know when to
-# stop trying.
-verify_install() {
-  # It's probably enough to see that the repo configs have been created. If they
-  # aren't configured properly, update_bad_repo should catch that when it's run.
-  case $1 in
-  "yum")
-    [ -f "$YUM_REPO_FILE" ]
-    ;;
-  "yast")
-    [ -f "$ZYPPER_REPO_FILE" ]
-    ;;
-  "urpmi")
-    urpmq --list-url | grep -q -s "\b@@PACKAGE@@\b"
-    ;;
-  esac
-}
-
-# Update the Google repository if it's not set correctly.
-update_bad_repo() {
-  if [ ! "$REPOCONFIG" ]; then
-    return 0
-  fi
-
-  determine_rpm_package_manager
-
-  case $PACKAGEMANAGER in
-  "yum")
-    update_repo_file "$YUM_REPO_FILE"
-    ;;
-  "yast")
-    update_repo_file "$ZYPPER_REPO_FILE"
-    ;;
-  "urpmi")
-    update_urpmi_cfg
-    ;;
-  esac
-}
-
-update_repo_file() {
-  REPO_FILE="$1"
-
-  # Don't do anything if the file isn't there, since that probably means the
-  # user disabled it.
-  if [ ! -r "$REPO_FILE" ]; then
-    return 0
-  fi
-
-  # Check if the correct repository configuration is in there.
-  REPOMATCH=$(grep "^baseurl=$REPOCONFIG/$DEFAULT_ARCH" "$REPO_FILE" \
-    2>/dev/null)
-  # If it's there, nothing to do
-  if [ "$REPOMATCH" ]; then
-    return 0
-  fi
-
-  # Check if it's there but disabled by commenting out (as opposed to using the
-  # 'enabled' setting).
-  MATCH_DISABLED=$(grep "^[[:space:]]*#.*baseurl=$REPOCONFIG/$DEFAULT_ARCH" \
-    "$REPO_FILE" 2>/dev/null)
-  if [ "$MATCH_DISABLED" ]; then
-    # It's OK for it to be disabled, as long as nothing bogus is enabled in its
-    # place.
-    ACTIVECONFIGS=$(grep "^baseurl=.*" "$REPO_FILE" 2>/dev/null)
-    if [ ! "$ACTIVECONFIGS" ]; then
-      return 0
-    fi
-  fi
-
-  # If we get here, the correct repository wasn't found, or something else is
-  # active, so fix it. This assumes there is a 'baseurl' setting, but if not,
-  # then that's just another way of disabling, so we won't try to add it.
-  sed -i -e "s,^baseurl=.*,baseurl=$REPOCONFIG/$DEFAULT_ARCH," "$REPO_FILE"
-}
-
-update_urpmi_cfg() {
-  REPOCFG=$(urpmq --list-url | grep "\b@@PACKAGE@@\b")
-  if [ ! "$REPOCFG" ]; then
-    # Don't do anything if the repo isn't there, since that probably means the
-    # user deleted it.
-    return 0
-  fi
-
-  # See if it's the right repo URL
-  REPOMATCH=$(echo "$REPOCFG" | grep "\b$REPOCONFIG/$DEFAULT_ARCH\b")
-  # If so, nothing to do
-  if [ "$REPOMATCH" ]; then
-    return 0
-  fi
-
-  # Looks like it's the wrong URL, so recreate it.
-  urpmi.removemedia "@@PACKAGE@@" && \
-    urpmi.addmedia --update "@@PACKAGE@@" "$REPOCONFIG/$DEFAULT_ARCH"
-}
-
-# We only remove the repository configuration during a purge. Since RPM has
-# no equivalent to dpkg --purge, the code below is actually never used. We
-# keep it only for reference purposes, should we ever need it.
-#
-#remove_yum() {
-#  rm -f "$YUM_REPO_FILE"
-#}
-#
-#remove_urpmi() {
-#  # Ideally, we would run: urpmi.removemedia "@@PACKAGE@@"
-#  # but that does not work when urpmi is running.
-#  # Sentinel comment text does not work either because urpmi.update removes
-#  # all comments. So we just delete the entry that matches what we originally
-#  # inserted. If such an entry was added manually, that's tough luck.
-#  if [ -f "$URPMI_REPO_FILE" ]; then
-#    sed -i '\_^@@PACKAGE@@ $REPOCONFIG/$DEFAULT_ARCH {$_,/^}$/d' "$URPMI_REPO_FILE"
-#  fi
-#}
-#
-#remove_yast() {
-#  # Ideally, we would run: zypper removerepo "@@PACKAGE@@"
-#  # but that does not work when zypper is running.
-#  rm -f /etc/zypp/repos.d/@@PACKAGE@@.repo
-#}
-
-DEFAULT_ARCH="@@ARCHITECTURE@@"
-
-get_lib_dir() {
-  if [ "$DEFAULT_ARCH" = "i386" ]; then
-    LIBDIR=lib
-  elif [ "$DEFAULT_ARCH" = "x86_64" ]; then
-    LIBDIR=lib64
-  else
-    echo Unknown CPU Architecture: "$DEFAULT_ARCH"
-    exit 1
-  fi
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpmrepo.cron b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/rpmrepo.cron
deleted file mode 100755 (executable)
index 1e6a3a6..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# This script is part of the @@PACKAGE@@ package.
-#
-# It creates the repository configuration file for package updates, since
-# we cannot do this during the @@PACKAGE@@ installation since the repository
-# is locked.
-#
-# This functionality can be controlled by creating the $DEFAULTS_FILE and
-# setting "repo_add_once" to "true" or "false" as desired. An empty
-# $DEFAULTS_FILE is the same as setting the value to "false".
-
-@@include@@rpm.include
-
-## MAIN ##
-DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
-if [ -r "$DEFAULTS_FILE" ]; then
-  . "$DEFAULTS_FILE"
-fi
-
-if [ "$repo_add_once" = "true" ]; then
-  determine_rpm_package_manager
-
-  # The initial install happens in the post-install scripts, but there have been
-  # reports of configuration problems, so just verify that everything looks
-  # good, and if not, try to install again.
-  verify_install $PACKAGEMANAGER
-  if [ $? -ne 0 ]; then
-    install_${PACKAGEMANAGER}
-  fi
-
-  # Now do any extra configuration that couldn't be done by post-install.
-  case $PACKAGEMANAGER in
-  "urpmi")
-    # We need to configure urpmi after the install has finished.
-    # See configure_urpmi() for details.
-    configure_urpmi
-    ;;
-  "yast")
-    # It looks as though yast/zypper has a lock on the RPM DB during
-    # postinstall, so we cannot add the signing key with install_rpm_key().
-    # Instead, we attempt to do this here. If the user attempt to update before
-    # the cron job imports the key, Yast will grab the key from our server and
-    # prompt the user to accept the key.
-    install_rpm_key
-    ;;
-  esac
-
-  if [ $? -eq 0 ]; then
-    # Before we quit auto-configuration, check that everything looks sane, since
-    # part of this happened during package install and we don't have the return
-    # value of that process.
-    verify_install $PACKAGEMANAGER
-    if [ $? -eq 0 ]; then
-      sed -i -e 's/[[:space:]]*repo_add_once=.*/repo_add_once="false"/' \
-        "$DEFAULTS_FILE"
-    fi
-  fi
-else
-  update_bad_repo
-fi
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/symlinks.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/symlinks.include
deleted file mode 100644 (file)
index 7bad92e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-NSS_FILES="libnspr4.so.0d libplds4.so.0d libplc4.so.0d libssl3.so.1d \
-    libnss3.so.1d libsmime3.so.1d libnssutil3.so.1d"
-
-add_nss_symlinks() {
-  get_lib_dir
-  for f in $NSS_FILES
-  do
-    target=$(echo $f | sed 's/\.[01]d$//')
-    if [ -f "/$LIBDIR/$target" ]; then
-      ln -snf "/$LIBDIR/$target" "@@INSTALLDIR@@/$f"
-    elif [ -f "/usr/$LIBDIR/$target" ]; then
-      ln -snf "/usr/$LIBDIR/$target" "@@INSTALLDIR@@/$f"
-    else
-      echo $f not found in "/$LIBDIR/$target" or "/usr/$LIBDIR/$target".
-      exit 1
-    fi
-  done
-}
-
-remove_nss_symlinks() {
-  for f in $NSS_FILES
-  do
-    rm -rf "@@INSTALLDIR@@/$f"
-  done
-}
-
-# Fedora 18 now has libudev.so.1. http://crbug.com/145160
-# Same for Ubuntu 13.04. http://crbug.com/226002
-LIBUDEV_0=libudev.so.0
-LIBUDEV_1=libudev.so.1
-
-add_udev_symlinks() {
-  get_lib_dir
-  if [ -f "/$LIBDIR/$LIBUDEV_0" -o -f "/usr/$LIBDIR/$LIBUDEV_0" -o -f "/lib/$LIBUDEV_0" ]; then
-    return 0
-  fi
-
-  if [ -f "/$LIBDIR/$LIBUDEV_1" ]; then
-    ln -snf "/$LIBDIR/$LIBUDEV_1" "@@INSTALLDIR@@/$LIBUDEV_0"
-  elif [ -f "/usr/$LIBDIR/$LIBUDEV_1" ];
-  then
-    ln -snf "/usr/$LIBDIR/$LIBUDEV_1" "@@INSTALLDIR@@/$LIBUDEV_0"
-  else
-    echo "$LIBUDEV_1" not found in "$LIBDIR" or "/usr/$LIBDIR".
-    exit 1
-  fi
-}
-
-remove_udev_symlinks() {
-  rm -rf "@@INSTALLDIR@@/$LIBUDEV_0"
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/variables.include b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/variables.include
deleted file mode 100644 (file)
index f3a17cd..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# System-wide package configuration.
-DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
-
-# sources.list setting for @@PACKAGE@@ updates.
-REPOCONFIG="@@REPOCONFIG@@"
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/common/wrapper b/src/chrome/tools/test/reference_build/chrome_linux/installer/common/wrapper
deleted file mode 100755 (executable)
index 774a83d..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Let the wrapped binary know that it has been run through the wrapper.
-export CHROME_WRAPPER="`readlink -f "$0"`"
-
-HERE="`dirname "$CHROME_WRAPPER"`"
-
-# We include some xdg utilities next to the binary, and we want to prefer them
-# over the system versions when we know the system versions are very old. We
-# detect whether the system xdg utilities are sufficiently new to be likely to
-# work for us by looking for xdg-settings. If we find it, we leave $PATH alone,
-# so that the system xdg utilities (including any distro patches) will be used.
-if ! which xdg-settings &> /dev/null; then
-  # Old xdg utilities. Prepend $HERE to $PATH to use ours instead.
-  export PATH="$HERE:$PATH"
-else
-  # Use system xdg utilities. But first create mimeapps.list if it doesn't
-  # exist; some systems have bugs in xdg-mime that make it fail without it.
-  xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}"
-  mkdir -p "$xdg_app_dir"
-  [ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
-fi
-
-# Always use our versions of ffmpeg libs.
-# This also makes RPMs find the compatibly-named library symlinks.
-if [[ -n "$LD_LIBRARY_PATH" ]]; then
-  LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
-else
-  LD_LIBRARY_PATH="$HERE:$HERE/lib"
-fi
-export LD_LIBRARY_PATH
-
-export CHROME_VERSION_EXTRA="@@CHANNEL@@"
-
-# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120
-export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
-
-# Automagically migrate user data directory.
-# TODO(phajdan.jr): Remove along with migration code in the browser for M33.
-if [[ -n "@@SXS_USER_DATA_DIR@@" ]]; then
-  if [[ ! -d "@@SXS_USER_DATA_DIR@@" ]]; then
-    "$HERE/@@PROGNAME@@" "--migrate-data-dir-for-sxs=@@SXS_USER_DATA_DIR@@" \
-      --enable-logging=stderr --log-level=0
-  fi
-fi
-
-exec -a "$0" "$HERE/@@PROGNAME@@" @@DEFAULT_FLAGS@@ "$@"
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/build.sh b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/build.sh
deleted file mode 100755 (executable)
index 4db53cb..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# TODO(mmoss) This currently only works with official builds, since non-official
-# builds don't add the "${BUILDDIR}/installer/" files needed for packaging.
-
-set -e
-if [ "$VERBOSE" ]; then
-  set -x
-fi
-set -u
-
-# Create the Debian changelog file needed by dpkg-gencontrol. This just adds a
-# placeholder change, indicating it is the result of an automatic build.
-# TODO(mmoss) Release packages should create something meaningful for a
-# changelog, but simply grabbing the actual 'svn log' is way too verbose. Do we
-# have any type of "significant/visible changes" log that we could use for this?
-gen_changelog() {
-  rm -f "${DEB_CHANGELOG}"
-  process_template "${SCRIPTDIR}/changelog.template" "${DEB_CHANGELOG}"
-  debchange -a --nomultimaint -m --changelog "${DEB_CHANGELOG}" \
-    "Release Notes: ${RELEASENOTES}"
-  GZLOG="${STAGEDIR}/usr/share/doc/${PACKAGE}-${CHANNEL}/changelog.gz"
-  mkdir -p "$(dirname "${GZLOG}")"
-  gzip -9 -c "${DEB_CHANGELOG}" > "${GZLOG}"
-  chmod 644 "${GZLOG}"
-}
-
-# Create the Debian control file needed by dpkg-deb.
-gen_control() {
-  dpkg-gencontrol -v"${VERSIONFULL}" -c"${DEB_CONTROL}" -l"${DEB_CHANGELOG}" \
-  -f"${DEB_FILES}" -p"${PACKAGE}-${CHANNEL}" -P"${STAGEDIR}" \
-  -O > "${STAGEDIR}/DEBIAN/control"
-  rm -f "${DEB_CONTROL}"
-}
-
-# Setup the installation directory hierachy in the package staging area.
-prep_staging_debian() {
-  prep_staging_common
-  install -m 755 -d "${STAGEDIR}/DEBIAN" \
-    "${STAGEDIR}/etc/cron.daily" \
-    "${STAGEDIR}/usr/share/menu" \
-    "${STAGEDIR}/usr/share/doc/${PACKAGE}"
-}
-
-# Put the package contents in the staging area.
-stage_install_debian() {
-  # Always use a different name for /usr/bin symlink depending on channel.
-  # First, to avoid file collisions. Second, to make it possible to
-  # use update-alternatives for /usr/bin/google-chrome.
-  local USR_BIN_SYMLINK_NAME="${PACKAGE}-${CHANNEL}"
-
-  if [ "$CHANNEL" != "stable" ]; then
-    # This would ideally be compiled into the app, but that's a bit too
-    # intrusive of a change for these limited use channels, so we'll just hack
-    # it into the wrapper script. The user can still override since it seems to
-    # work to specify --user-data-dir multiple times on the command line, with
-    # the last occurrence winning.
-    local SXS_USER_DATA_DIR="\${XDG_CONFIG_HOME:-\${HOME}/.config}/${PACKAGE}-${CHANNEL}"
-    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 .
-    if [ "$CHANNEL" = "trunk" ] || [ "$CHANNEL" = "asan" ]; then
-      local PACKAGE="${PACKAGE}-${CHANNEL}"
-    fi
-
-    # Make it possible to distinguish between menu entries
-    # for different channels.
-    local MENUNAME="${MENUNAME} (${CHANNEL})"
-  fi
-  prep_staging_debian
-  stage_install_common
-  echo "Staging Debian install files in '${STAGEDIR}'..."
-  install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/cron"
-  process_template "${BUILDDIR}/installer/common/repo.cron" \
-      "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}"
-  chmod 755 "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}"
-  pushd "${STAGEDIR}/etc/cron.daily/"
-  ln -snf "${INSTALLDIR}/cron/${PACKAGE}" "${PACKAGE}"
-  popd
-  process_template "${BUILDDIR}/installer/debian/debian.menu" \
-    "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu"
-  chmod 644 "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu"
-  process_template "${BUILDDIR}/installer/debian/postinst" \
-    "${STAGEDIR}/DEBIAN/postinst"
-  chmod 755 "${STAGEDIR}/DEBIAN/postinst"
-  process_template "${BUILDDIR}/installer/debian/prerm" \
-    "${STAGEDIR}/DEBIAN/prerm"
-  chmod 755 "${STAGEDIR}/DEBIAN/prerm"
-  process_template "${BUILDDIR}/installer/debian/postrm" \
-    "${STAGEDIR}/DEBIAN/postrm"
-  chmod 755 "${STAGEDIR}/DEBIAN/postrm"
-}
-
-# Actually generate the package file.
-do_package() {
-  echo "Packaging ${ARCHITECTURE}..."
-  PREDEPENDS="$COMMON_PREDEPS"
-  DEPENDS="${COMMON_DEPS}"
-  # Trunk is a special package, mostly for development testing, so don't make
-  # it replace any installed release packages.
-  if [ "$CHANNEL" != "trunk" ] && [ "$CHANNEL" != "asan" ]; then
-    REPLACES="${PACKAGE}"
-    CONFLICTS="${PACKAGE}"
-    PROVIDES="${PACKAGE}, www-browser"
-  fi
-  gen_changelog
-  process_template "${SCRIPTDIR}/control.template" "${DEB_CONTROL}"
-  export DEB_HOST_ARCH="${ARCHITECTURE}"
-  if [ -f "${DEB_CONTROL}" ]; then
-    gen_control
-  fi
-  fakeroot dpkg-deb -Zlzma -b "${STAGEDIR}" .
-}
-
-# Remove temporary files and unwanted packaging output.
-cleanup() {
-  echo "Cleaning..."
-  rm -rf "${STAGEDIR}"
-  rm -rf "${TMPFILEDIR}"
-}
-
-usage() {
-  echo "usage: $(basename $0) [-c channel] [-a target_arch] [-o 'dir'] "
-  echo "                      [-b 'dir']"
-  echo "-c channel the package channel (trunk, asan, unstable, beta, stable)"
-  echo "-a arch    package architecture (ia32 or x64)"
-  echo "-o dir     package output directory [${OUTPUTDIR}]"
-  echo "-b dir     build input directory    [${BUILDDIR}]"
-  echo "-h         this help message"
-}
-
-# Check that the channel name is one of the allowable ones.
-verify_channel() {
-  case $CHANNEL in
-    stable )
-      CHANNEL=stable
-      RELEASENOTES="http://googlechromereleases.blogspot.com/search/label/Stable%20updates"
-      ;;
-    unstable|dev|alpha )
-      CHANNEL=unstable
-      RELEASENOTES="http://googlechromereleases.blogspot.com/search/label/Dev%20updates"
-      ;;
-    testing|beta )
-      CHANNEL=beta
-      RELEASENOTES="http://googlechromereleases.blogspot.com/search/label/Beta%20updates"
-      ;;
-    trunk|asan )
-      # Setting this to empty will prevent it from updating any existing configs
-      # from release packages.
-      REPOCONFIG=""
-      RELEASENOTES="http://googlechromereleases.blogspot.com/"
-      ;;
-    * )
-      echo
-      echo "ERROR: '$CHANNEL' is not a valid channel type."
-      echo
-      exit 1
-      ;;
-  esac
-}
-
-process_opts() {
-  while getopts ":o:b:c:a:h" OPTNAME
-  do
-    case $OPTNAME in
-      o )
-        OUTPUTDIR=$(readlink -f "${OPTARG}")
-        mkdir -p "${OUTPUTDIR}"
-        ;;
-      b )
-        BUILDDIR=$(readlink -f "${OPTARG}")
-        ;;
-      c )
-        CHANNEL="$OPTARG"
-        ;;
-      a )
-        TARGETARCH="$OPTARG"
-        ;;
-      h )
-        usage
-        exit 0
-        ;;
-      \: )
-        echo "'-$OPTARG' needs an argument."
-        usage
-        exit 1
-        ;;
-      * )
-        echo "invalid command-line option: $OPTARG"
-        usage
-        exit 1
-        ;;
-    esac
-  done
-}
-
-#=========
-# MAIN
-#=========
-
-SCRIPTDIR=$(readlink -f "$(dirname "$0")")
-OUTPUTDIR="${PWD}"
-STAGEDIR=$(mktemp -d -t deb.build.XXXXXX) || exit 1
-TMPFILEDIR=$(mktemp -d -t deb.tmp.XXXXXX) || exit 1
-DEB_CHANGELOG="${TMPFILEDIR}/changelog"
-DEB_FILES="${TMPFILEDIR}/files"
-DEB_CONTROL="${TMPFILEDIR}/control"
-CHANNEL="trunk"
-# Default target architecture to same as build host.
-if [ "$(uname -m)" = "x86_64" ]; then
-  TARGETARCH="x64"
-else
-  TARGETARCH="ia32"
-fi
-
-# call cleanup() on exit
-trap cleanup 0
-process_opts "$@"
-if [ ! "$BUILDDIR" ]; then
-  BUILDDIR=$(readlink -f "${SCRIPTDIR}/../../../../../out/Release")
-fi
-
-source ${BUILDDIR}/installer/common/installer.include
-
-get_version_info
-VERSIONFULL="${VERSION}-${PACKAGE_RELEASE}"
-
-if [ "$CHROMIUM_BUILD" = "_google_chrome" ]; then
-  source "${BUILDDIR}/installer/common/google-chrome.info"
-else
-  source "${BUILDDIR}/installer/common/chromium-browser.info"
-fi
-eval $(sed -e "s/^\([^=]\+\)=\(.*\)$/export \1='\2'/" \
-  "${BUILDDIR}/installer/theme/BRANDING")
-
-REPOCONFIG="deb http://dl.google.com/linux/chrome/deb/ stable main"
-verify_channel
-
-# Some Debian packaging tools want these set.
-export DEBFULLNAME="${MAINTNAME}"
-export DEBEMAIL="${MAINTMAIL}"
-
-# We'd like to eliminate more of these deps by relying on the 'lsb' package, but
-# that brings in tons of unnecessary stuff, like an mta and rpm. Until that full
-# 'lsb' package is installed by default on DEB distros, we'll have to stick with
-# the LSB sub-packages, to avoid pulling in all that stuff that's not installed
-# by default.
-
-# Need a dummy debian/control file for dpkg-shlibdeps.
-DUMMY_STAGING_DIR="${TMPFILEDIR}/dummy_staging"
-mkdir "$DUMMY_STAGING_DIR"
-cd "$DUMMY_STAGING_DIR"
-mkdir debian
-touch debian/control
-
-# Generate the dependencies,
-# TODO(mmoss): This is a workaround for a problem where dpkg-shlibdeps was
-# resolving deps using some of our build output shlibs (i.e.
-# out/Release/lib.target/libfreetype.so.6), and was then failing with:
-#   dpkg-shlibdeps: error: no dependency information found for ...
-# It's not clear if we ever want to look in LD_LIBRARY_PATH to resolve deps,
-# but it seems that we don't currently, so this is the most expediant fix.
-SAVE_LDLP=${LD_LIBRARY_PATH:-}
-unset LD_LIBRARY_PATH
-DPKG_SHLIB_DEPS=$(dpkg-shlibdeps -O "$BUILDDIR/chrome" 2> /dev/null | \
-  sed 's/^shlibs:Depends=//')
-if [ -n "$SAVE_LDLP" ]; then
-  LD_LIBRARY_PATH=$SAVE_LDLP
-fi
-
-# Format it nicely and save it for comparison.
-# The grep -v is for a duplicate libc6 dep caused by Lucid glibc silliness.
-echo "$DPKG_SHLIB_DEPS" | sed 's/, /\n/g' | \
-  grep -v '^libc6 (>= 2.3.6-6~)$' > actual
-
-# Compare the expected dependency list to the generate list.
-BAD_DIFF=0
-diff "$SCRIPTDIR/expected_deps" actual || BAD_DIFF=1
-if [ $BAD_DIFF -ne 0 ] && [ -z "${IGNORE_DEPS_CHANGES:-}" ]; then
-  echo
-  echo "ERROR: Shared library dependencies changed!"
-  echo "If this is intentional, please update:"
-  echo "chrome/installer/linux/debian/expected_deps"
-  echo
-  exit $BAD_DIFF
-fi
-rm -rf "$DUMMY_STAGING_DIR"
-
-# Additional dependencies not in the dpkg-shlibdeps output.
-# Pull a more recent version of NSS than required by runtime linking, for
-# security and stability updates in NSS.
-ADDITION_DEPS="ca-certificates, libcurl3, libnss3 (>= 3.14.3), \
-  lsb-base (>=3.2), xdg-utils (>= 1.0.2), wget"
-
-# Fix-up libnspr dependency due to renaming in Ubuntu (the old package still
-# exists, but it was moved to "universe" repository, which isn't installed by
-# default).
-DPKG_SHLIB_DEPS=$(sed \
-    's/\(libnspr4-0d ([^)]*)\), /\1 | libnspr4 (>= 4.9.5-0ubuntu0), /g' \
-    <<< $DPKG_SHLIB_DEPS)
-
-# Fix-up libudev dependency because Ubuntu 13.04 has libudev1 instead of
-# libudev0.
-DPKG_SHLIB_DEPS=$(sed 's/\(libudev0 ([^)]*)\), /\1 | libudev1 (>= 198), /g' \
-                  <<< $DPKG_SHLIB_DEPS)
-
-COMMON_DEPS="${DPKG_SHLIB_DEPS}, ${ADDITION_DEPS}"
-COMMON_PREDEPS="dpkg (>= 1.14.0)"
-
-
-# Make everything happen in the OUTPUTDIR.
-cd "${OUTPUTDIR}"
-
-case "$TARGETARCH" in
-  ia32 )
-    export ARCHITECTURE="i386"
-    stage_install_debian
-    ;;
-  x64 )
-    export ARCHITECTURE="amd64"
-    stage_install_debian
-    ;;
-  * )
-    echo
-    echo "ERROR: Don't know how to build DEBs for '$TARGETARCH'."
-    echo
-    exit 1
-    ;;
-esac
-
-do_package
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/changelog.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/changelog.template
deleted file mode 100644 (file)
index fa2d1dd..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-@@PACKAGE@@-@@CHANNEL@@ (@@VERSIONFULL@@) @@CHANNEL@@; urgency=low
-
-  * Build spec: http://src.chromium.org/viewvc/chrome/releases/@@VERSION@@/
-
- -- @@MAINTNAME@@ <@@MAINTMAIL@@>  Tue, 03 Feb 2009 14:54:35 -0800
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/control.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/control.template
deleted file mode 100644 (file)
index 9b185bb..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Source: @@PACKAGE@@-@@CHANNEL@@
-Section: web
-Priority: optional
-Maintainer: @@MAINTNAME@@ <@@MAINTMAIL@@>
-Build-Depends: dpkg-dev, devscripts, fakeroot, lzma
-Standards-Version: 3.8.0
-
-Package: @@PACKAGE@@-@@CHANNEL@@
-Provides: @@PROVIDES@@
-Replaces: @@REPLACES@@
-Conflicts: @@CONFLICTS@@
-Pre-Depends: @@PREDEPENDS@@
-Depends: @@DEPENDS@@
-Architecture: @@ARCHITECTURE@@
-Description: @@SHORTDESC@@
- @@FULLDESC@@
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/debian.menu b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/debian.menu
deleted file mode 100644 (file)
index 96a99c2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-?package(@@PACKAGE@@):needs="x11" \
-  section="Applications/Network/Web Browsing" \
-  hints="Web browsers" \
-  title="@@MENUNAME@@" \
-  icon="@@INSTALLDIR@@/product_logo_32.xpm" \
-  command="@@INSTALLDIR@@/@@PACKAGE@@"
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/expected_deps b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/expected_deps
deleted file mode 100644 (file)
index ffe7ef2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-gconf-service
-libasound2 (>= 1.0.23)
-libc6 (>= 2.11)
-libcairo2 (>= 1.6.0)
-libcap2 (>= 2.10)
-libcups2 (>= 1.4.0)
-libdbus-1-3 (>= 1.2.14)
-libexpat1 (>= 1.95.8)
-libfontconfig1 (>= 2.8.0)
-libfreetype6 (>= 2.3.9)
-libgcc1 (>= 1:4.1.1)
-libgconf-2-4 (>= 2.31.1)
-libgcrypt11 (>= 1.4.5)
-libgdk-pixbuf2.0-0 (>= 2.22.0)
-libglib2.0-0 (>= 2.26.0)
-libgtk2.0-0 (>= 2.24.0)
-libnspr4 (>= 1.8.0.10)
-libnss3 (>= 3.14.3)
-libpango1.0-0 (>= 1.22.0)
-libstdc++6 (>= 4.6)
-libudev0 (>= 147)
-libx11-6 (>= 2:1.4.99.1)
-libxcomposite1 (>= 1:0.3-1)
-libxcursor1 (>> 1.1.2)
-libxdamage1 (>= 1:1.1)
-libxext6
-libxfixes3 (>= 1:5.0)
-libxi6 (>= 2:1.2.99.4)
-libxrandr2 (>= 2:1.2.99.2)
-libxrender1
-libxss1
-libxtst6
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postinst b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postinst
deleted file mode 100755 (executable)
index da5e6b1..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-@@include@@../common/postinst.include
-
-# Add to the alternatives system
-#
-# On Ubuntu 12.04, we have the following priorities
-# (which can be obtain be installing browsers and running
-# update-alternatives --query x-www-browser):
-#
-# /usr/bin/epiphany-browser  85
-# /usr/bin/firefox           40
-# /usr/bin/konqueror         30
-#
-# While we would expect these values to be keyed off the most popular
-# browser (Firefox), in practice, we treat Epiphany as the lower bound,
-# resulting in the following scheme:
-
-CHANNEL=@@CHANNEL@@
-case $CHANNEL in
-  stable )
-    # Good enough to be the default.
-    PRIORITY=200
-    ;;
-  beta )
-    # Almost good enough to be the default. (Firefox stable should arguably be
-    # higher than this, but since that's below the "Epiphany threshold", we're
-    # not setting our priority below it. Anyone want to poke Firefox to raise
-    # their priority?)
-    PRIORITY=150
-    ;;
-  unstable )
-    # Unstable, give it the "lowest" priority.
-    PRIORITY=120
-    ;;
-  * )
-    PRIORITY=0
-    ;;
-esac
-
-update-alternatives --install /usr/bin/x-www-browser x-www-browser \
-  /usr/bin/@@USR_BIN_SYMLINK_NAME@@ $PRIORITY
-update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser \
-  /usr/bin/@@USR_BIN_SYMLINK_NAME@@ $PRIORITY
-
-update-alternatives --install /usr/bin/google-chrome google-chrome \
-  /usr/bin/@@USR_BIN_SYMLINK_NAME@@ $PRIORITY
-
-@@include@@../common/apt.include
-
-@@include@@../common/symlinks.include
-
-remove_udev_symlinks
-add_udev_symlinks
-
-## MAIN ##
-if [ ! -e "$DEFAULTS_FILE" ]; then
-  echo 'repo_add_once="true"' > "$DEFAULTS_FILE"
-  echo 'repo_reenable_on_distupgrade="true"' >> "$DEFAULTS_FILE"
-fi
-
-# Run the cron job immediately to perform repository configuration.
-nohup sh /etc/cron.daily/@@PACKAGE@@ > /dev/null 2>&1 &
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postrm b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/postrm
deleted file mode 100755 (executable)
index 85b9961..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-action="$1"
-
-# Only do complete clean-up on purge.
-if [ "$action" != "purge" ] ; then
-  exit 0
-fi
-
-@@include@@../common/apt.include
-
-@@include@@../common/symlinks.include
-
-remove_udev_symlinks
-
-# Only remove the defaults file if it is not empty. An empty file was probably
-# put there by the sysadmin to disable automatic repository configuration, as
-# per the instructions on the package download page.
-if [ -s "$DEFAULTS_FILE" ]; then
-  # Make sure the package defaults are removed before the repository config,
-  # otherwise it could result in the repository config being removed, but the
-  # package defaults remain and are set to not recreate the repository config.
-  # In that case, future installs won't recreate it and won't get auto-updated.
-  rm "$DEFAULTS_FILE" || exit 1
-fi
-# Remove any Google repository added by the package.
-clean_sources_lists
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/prerm b/src/chrome/tools/test/reference_build/chrome_linux/installer/debian/prerm
deleted file mode 100755 (executable)
index c2870d2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-action="$1"
-if [ "$2" = "in-favour" ]; then
-  # Treat conflict remove as an upgrade.
-  action="upgrade"
-fi
-# Don't clean-up just for an upgrade.`
-if [ "$action" = "upgrade" ] ; then
-  exit 0
-fi
-
-@@include@@../common/prerm.include
-
-# Remove from the alternatives system
-update-alternatives --remove x-www-browser /usr/bin/@@USR_BIN_SYMLINK_NAME@@
-update-alternatives --remove gnome-www-browser /usr/bin/@@USR_BIN_SYMLINK_NAME@@
-
-update-alternatives --remove google-chrome /usr/bin/@@USR_BIN_SYMLINK_NAME@@
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/build.sh b/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/build.sh
deleted file mode 100755 (executable)
index 52cb1b8..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# TODO(mmoss) This currently only works with official builds, since non-official
-# builds don't add the "${BUILDDIR}/installer/" files needed for packaging.
-
-set -e
-if [ "$VERBOSE" ]; then
-  set -x
-fi
-set -u
-
-gen_spec() {
-  rm -f "${SPEC}"
-  # Trunk packages need to install to a custom path so they don't conflict with
-  # release channel packages.
-  local PACKAGE_FILENAME="${PACKAGE}"
-  if [ "$CHANNEL" = "trunk" ] || [ "$CHANNEL" = "asan" ]; then
-    local INSTALLDIR="${INSTALLDIR}-${CHANNEL}"
-    PACKAGE_FILENAME="${PACKAGE}-${CHANNEL}"
-    local MENUNAME="${MENUNAME} (${CHANNEL})"
-  fi
-  process_template "${SCRIPTDIR}/chrome.spec.template" "${SPEC}"
-}
-
-# Setup the installation directory hierachy in the package staging area.
-prep_staging_rpm() {
-  prep_staging_common
-  install -m 755 -d "${STAGEDIR}/etc/cron.daily"
-}
-
-# Put the package contents in the staging area.
-stage_install_rpm() {
-  # TODO(phajdan.jr): Deduplicate this and debian/build.sh .
-  # For now duplication is going to help us avoid merge conflicts
-  # as changes are frequently merged to older branches related to SxS effort.
-  if [ "$CHANNEL" != "stable" ]; then
-    # This would ideally be compiled into the app, but that's a bit too
-    # intrusive of a change for these limited use channels, so we'll just hack
-    # it into the wrapper script. The user can still override since it seems to
-    # work to specify --user-data-dir multiple times on the command line, with
-    # the last occurrence winning.
-    local SXS_USER_DATA_DIR="\${XDG_CONFIG_HOME:-\${HOME}/.config}/${PACKAGE}-${CHANNEL}"
-    local DEFAULT_FLAGS="--user-data-dir=\"${SXS_USER_DATA_DIR}\""
-
-    # Avoid file collisions between channels.
-    # 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
-    # for different channels.
-    local MENUNAME="${MENUNAME} (${CHANNEL})"
-  fi
-  prep_staging_rpm
-  stage_install_common
-  echo "Staging RPM install files in '${STAGEDIR}'..."
-  process_template "${BUILDDIR}/installer/common/rpmrepo.cron" \
-    "${STAGEDIR}/etc/cron.daily/${PACKAGE}"
-  chmod 755 "${STAGEDIR}/etc/cron.daily/${PACKAGE}"
-}
-
-# Actually generate the package file.
-do_package() {
-  echo "Packaging ${ARCHITECTURE}..."
-  PROVIDES="${PACKAGE}"
-  local REPS="$REPLACES"
-  REPLACES=""
-  for rep in $REPS; do
-    if [ -z "$REPLACES" ]; then
-      REPLACES="$PACKAGE-$rep"
-    else
-      REPLACES="$REPLACES $PACKAGE-$rep"
-    fi
-  done
-
-  # The symbols in libX11.so are not versioned, so when a newer version has new
-  # symbols like _XGetRequest, RPM's find-requires tool does not detect it, and
-  # there is no way to specify a libX11.so version number to prevent
-  # installation on affected distros like OpenSUSE 12.1 and Fedora 16.
-  # Thus there has to be distro-specific conflict here.
-  # TODO(thestig) Remove these in the future when other requirements prevent
-  # installation on affected distros.
-  ADDITIONAL_CONFLICTS="xorg-x11-libX11 < 7.6_1 libX11 < 1.4.99"
-  REPLACES="$REPLACES $ADDITIONAL_CONFLICTS"
-
-  # If we specify a dependecy of foo.so below, we would depend on both the
-  # 32 and 64-bit versions on a 64-bit machine. The current version of RPM
-  # we use is too old and doesn't provide %{_isa}, so we do this manually.
-  if [ "$ARCHITECTURE" = "x86_64" ] ; then
-    local EMPTY_VERSION="()"
-    local PKG_ARCH="(64bit)"
-  elif [ "$ARCHITECTURE" = "i386" ] ; then
-    local EMPTY_VERSION=""
-    local PKG_ARCH=""
-  fi
-
-  # Use find-requires script to make sure the dependencies are complete
-  # (especially libc and libstdc++ versions). Filter out udev to avoid
-  # libudev.so.0 vs. libudev.so.1 mismatches.
-  DETECTED_DEPENDS="$(echo "${BUILDDIR}/chrome" | /usr/lib/rpm/find-requires |
-      grep -v udev)"
-
-  # Compare the expected dependency list to the generated list.
-  BAD_DIFF=0
-  diff "$SCRIPTDIR/expected_deps_$ARCHITECTURE" \
-      <(echo "${DETECTED_DEPENDS}") || BAD_DIFF=1
-  if [ $BAD_DIFF -ne 0 ] && [ -z "${IGNORE_DEPS_CHANGES:-}" ]; then
-    echo
-    echo "ERROR: Shared library dependencies changed!"
-    echo "If this is intentional, please update:"
-    echo "chrome/installer/linux/rpm/expected_deps_i386"
-    echo "chrome/installer/linux/rpm/expected_deps_x86_64"
-    echo
-    exit $BAD_DIFF
-  fi
-
-  # libgdk_pixbuf is added in LSB 3.2 and no longer explicitly required.
-  # libcairo, libpangocairo, libasound are in LSB 4. and no longer explicitly
-  # required.
-  # xdg-utils is still optional in LSB 4.0.
-  # nss (bundled) is optional in LSB 4.0.
-  #
-  # We want to depend on the system SSL certs so wget can upload crash reports
-  # securely, but there's no common capability between the distros. Bugs filed:
-  # https://qa.mandriva.com/show_bug.cgi?id=55714
-  # https://bugzilla.redhat.com/show_bug.cgi?id=538158
-  # https://bugzilla.novell.com/show_bug.cgi?id=556248
-  DEPENDS="lsb >= 4.0, \
-  libcurl.so.4${EMPTY_VERSION}${PKG_ARCH}, \
-  libnss3.so(NSS_3.14.3)${PKG_ARCH}, \
-  wget, \
-  xdg-utils, \
-  zlib, \
-  $(echo "${DETECTED_DEPENDS}" | tr '\n' ',')"
-  gen_spec
-
-  # Create temporary rpmbuild dirs.
-  RPMBUILD_DIR=$(mktemp -d -t rpmbuild.XXXXXX) || exit 1
-  mkdir -p "$RPMBUILD_DIR/BUILD"
-  mkdir -p "$RPMBUILD_DIR/RPMS"
-
-  # '__os_install_post ${nil}' disables a bunch of automatic post-processing
-  # (brp-compress, etc.), which by default appears to only be enabled on 32-bit,
-  # and which doesn't gain us anything since we already explicitly do all the
-  # compression, symbol stripping, etc. that we want.
-  fakeroot rpmbuild -bb --target="$ARCHITECTURE" --rmspec \
-    --define "_topdir $RPMBUILD_DIR" \
-    --define "_binary_payload w9.bzdio" \
-    --define "__os_install_post  %{nil}" \
-    "${SPEC}"
-  PKGNAME="${PACKAGE}-${CHANNEL}-${VERSION}-${PACKAGE_RELEASE}"
-  mv "$RPMBUILD_DIR/RPMS/$ARCHITECTURE/${PKGNAME}.${ARCHITECTURE}.rpm" \
-     "${OUTPUTDIR}"
-  # Make sure the package is world-readable, otherwise it causes problems when
-  # copied to share drive.
-  chmod a+r "${OUTPUTDIR}/${PKGNAME}.$ARCHITECTURE.rpm"
-  rm -rf "$RPMBUILD_DIR"
-}
-
-# Remove temporary files and unwanted packaging output.
-cleanup() {
-  rm -rf "${STAGEDIR}"
-  rm -rf "${TMPFILEDIR}"
-}
-
-usage() {
-  echo "usage: $(basename $0) [-c channel] [-a target_arch] [-o 'dir']"
-  echo "                      [-b 'dir']"
-  echo "-c channel the package channel (trunk, asan, unstable, beta, stable)"
-  echo "-a arch    package architecture (ia32 or x64)"
-  echo "-o dir     package output directory [${OUTPUTDIR}]"
-  echo "-b dir     build input directory    [${BUILDDIR}]"
-  echo "-h         this help message"
-}
-
-# Check that the channel name is one of the allowable ones.
-verify_channel() {
-  case $CHANNEL in
-    stable )
-      CHANNEL=stable
-      REPLACES="unstable beta"
-      ;;
-    unstable|dev|alpha )
-      CHANNEL=unstable
-      REPLACES="stable beta"
-      ;;
-    testing|beta )
-      CHANNEL=beta
-      REPLACES="unstable stable"
-      ;;
-    trunk|asan )
-      # This is a special package, mostly for development testing, so don't make
-      # it replace any installed release packages.
-      REPLACES="dummy"
-      # Setting this to empty will prevent it from updating any existing configs
-      # from release packages.
-      REPOCONFIG=""
-      ;;
-    * )
-      echo
-      echo "ERROR: '$CHANNEL' is not a valid channel type."
-      echo
-      exit 1
-      ;;
-  esac
-}
-
-process_opts() {
-  while getopts ":o:b:c:a:h" OPTNAME
-  do
-    case $OPTNAME in
-      o )
-        OUTPUTDIR=$(readlink -f "${OPTARG}")
-        mkdir -p "${OUTPUTDIR}"
-        ;;
-      b )
-        BUILDDIR=$(readlink -f "${OPTARG}")
-        ;;
-      c )
-        CHANNEL="$OPTARG"
-        verify_channel
-        ;;
-      a )
-        TARGETARCH="$OPTARG"
-        ;;
-      h )
-        usage
-        exit 0
-        ;;
-      \: )
-        echo "'-$OPTARG' needs an argument."
-        usage
-        exit 1
-        ;;
-      * )
-        echo "invalid command-line option: $OPTARG"
-        usage
-        exit 1
-        ;;
-    esac
-  done
-}
-
-#=========
-# MAIN
-#=========
-
-SCRIPTDIR=$(readlink -f "$(dirname "$0")")
-OUTPUTDIR="${PWD}"
-STAGEDIR=$(mktemp -d -t rpm.build.XXXXXX) || exit 1
-TMPFILEDIR=$(mktemp -d -t rpm.tmp.XXXXXX) || exit 1
-CHANNEL="trunk"
-# Default target architecture to same as build host.
-if [ "$(uname -m)" = "x86_64" ]; then
-  TARGETARCH="x64"
-else
-  TARGETARCH="ia32"
-fi
-SPEC="${TMPFILEDIR}/chrome.spec"
-
-# call cleanup() on exit
-trap cleanup 0
-process_opts "$@"
-if [ ! "$BUILDDIR" ]; then
-  BUILDDIR=$(readlink -f "${SCRIPTDIR}/../../../../../out/Release")
-fi
-
-source ${BUILDDIR}/installer/common/installer.include
-
-get_version_info
-
-if [ "$CHROMIUM_BUILD" = "_google_chrome" ]; then
-  source "${BUILDDIR}/installer/common/google-chrome.info"
-else
-  source "${BUILDDIR}/installer/common/chromium-browser.info"
-fi
-eval $(sed -e "s/^\([^=]\+\)=\(.*\)$/export \1='\2'/" \
-  "${BUILDDIR}/installer/theme/BRANDING")
-
-REPOCONFIG="http://dl.google.com/linux/${PACKAGE#google-}/rpm/stable"
-verify_channel
-export USR_BIN_SYMLINK_NAME="${PACKAGE}-${CHANNEL}"
-
-# Make everything happen in the OUTPUTDIR.
-cd "${OUTPUTDIR}"
-
-case "$TARGETARCH" in
-  ia32 )
-    export ARCHITECTURE="i386"
-    stage_install_rpm
-    ;;
-  x64 )
-    export ARCHITECTURE="x86_64"
-    stage_install_rpm
-    ;;
-  * )
-    echo
-    echo "ERROR: Don't know how to build RPMs for '$TARGETARCH'."
-    echo
-    exit 1
-    ;;
-esac
-
-do_package
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/chrome.spec.template b/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/chrome.spec.template
deleted file mode 100644 (file)
index e93f02f..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-#------------------------------------------------------------------------------
-#   chrome.spec
-#------------------------------------------------------------------------------
-
-#------------------------------------------------------------------------------
-#   Prologue information
-#------------------------------------------------------------------------------
-Summary         : @@MENUNAME@@
-License         : Multiple, see @@PRODUCTURL@@
-Name            : @@PACKAGE@@-@@CHANNEL@@
-Version         : @@VERSION@@
-Release         : @@PACKAGE_RELEASE@@
-Group           : Applications/Internet
-Vendor          : @@COMPANY_FULLNAME@@
-Url             : @@PRODUCTURL@@
-Packager        : @@MAINTNAME@@ <@@MAINTMAIL@@>
-
-Provides        : @@PROVIDES@@ = %{version}
-Requires        : @@DEPENDS@@
-Requires(post)  : %{_sbindir}/update-alternatives
-Requires(preun) : %{_sbindir}/update-alternatives
-Autoreqprov     : No
-Conflicts       : @@REPLACES@@
-
-BuildRoot       : %{_tmppath}/%{name}-%{version}-root
-
-# The prefix is pretty important; RPM uses this to figure out
-# how to make a package relocatable
-prefix          : /opt
-
-#------------------------------------------------------------------------------
-#   Description
-#------------------------------------------------------------------------------
-%Description
-@@SHORTDESC@@
-
-@@FULLDESC@@
-
-#------------------------------------------------------------------------------
-#   Build rule - How to make the package
-#------------------------------------------------------------------------------
-%build
-
-#------------------------------------------------------------------------------
-#       Installation rule - how to install it (note that it
-#   gets installed into a temp directory given by $RPM_BUILD_ROOT)
-#------------------------------------------------------------------------------
-%install
-rm -rf "$RPM_BUILD_ROOT"
-
-if [ -z "@@STAGEDIR@@" -o ! -d "@@STAGEDIR@@" ] ; then
-    echo "@@STAGEDIR@@ appears to be incorrectly set - aborting"
-    exit 1
-fi
-
-if [ -z "@@INSTALLDIR@@" -o ! -d "@@STAGEDIR@@/@@INSTALLDIR@@" ] ; then
-    echo "@@INSTALLDIR@@ appears to be incorrectly set - aborting"
-    exit 1
-fi
-
-install -m 755 -d \
-  "$RPM_BUILD_ROOT/etc" \
-  "$RPM_BUILD_ROOT/opt" \
-  "$RPM_BUILD_ROOT/usr"
-# This is hard coded for now
-cp -a "@@STAGEDIR@@/etc/" "$RPM_BUILD_ROOT/"
-cp -a "@@STAGEDIR@@/opt/" "$RPM_BUILD_ROOT/"
-cp -a "@@STAGEDIR@@/usr/" "$RPM_BUILD_ROOT/"
-
-#------------------------------------------------------------------------------
-#   Rule to clean up a build
-#------------------------------------------------------------------------------
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-#------------------------------------------------------------------------------
-#   Files listing.
-#------------------------------------------------------------------------------
-%files
-%defattr(-,root,root)
-#%doc README
-
-# We cheat and just let RPM figure it out for us; everything we install
-# should go under this prefix anyways.
-@@INSTALLDIR@@
-
-# Be explicit about the files we scatter throughout the system we don't
-# accidentally "own" stuff that's not ours (crbug.com/123990).
-/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
-
-#------------------------------------------------------------------------------
-#   Pre install script
-#------------------------------------------------------------------------------
-%pre
-
-exit 0
-
-
-
-
-#------------------------------------------------------------------------------
-#   Post install script
-#------------------------------------------------------------------------------
-%post
-
-@@include@@../common/postinst.include
-
-@@include@@../common/rpm.include
-
-@@include@@../common/symlinks.include
-
-remove_nss_symlinks
-add_nss_symlinks
-
-remove_udev_symlinks
-add_udev_symlinks
-
-DEFAULTS_FILE="/etc/default/@@PACKAGE@@"
-if [ ! -e "$DEFAULTS_FILE" ]; then
-  echo 'repo_add_once="true"' > "$DEFAULTS_FILE"
-fi
-
-. "$DEFAULTS_FILE"
-
-if [ "$repo_add_once" = "true" ]; then
-  determine_rpm_package_manager
-
-  case $PACKAGEMANAGER in
-  "yum")
-    install_yum
-    ;;
-  "urpmi")
-    install_urpmi
-    ;;
-  "yast")
-    install_yast
-    ;;
-  esac
-fi
-
-# Some package managers have locks that prevent everything from being
-# configured at install time, so wait a bit then kick the cron job to do
-# whatever is left. Probably the db will be unlocked by then, but if not, the
-# cron job will keep retrying.
-# Do this with 'at' instead of a backgrounded shell because zypper waits on all
-# sub-shells to finish before it finishes, which is exactly the opposite of
-# what we want here. Also preemptively start atd because for some reason it's
-# not always running, which kind of defeats the purpose of having 'at' as a
-# required LSB command.
-service atd start
-echo "sh /etc/cron.daily/@@PACKAGE@@" | at now + 2 minute > /dev/null 2>&1
-
-CHANNEL=@@CHANNEL@@
-case $CHANNEL in
-  stable )
-    PRIORITY=200
-    ;;
-  beta )
-    PRIORITY=150
-    ;;
-  unstable )
-    PRIORITY=120
-    ;;
-  * )
-    PRIORITY=0
-    ;;
-esac
-
-%{_sbindir}/update-alternatives --install /usr/bin/google-chrome google-chrome \
-  /usr/bin/@@USR_BIN_SYMLINK_NAME@@ $PRIORITY
-
-exit 0
-
-
-#------------------------------------------------------------------------------
-#   Pre uninstallation script
-#------------------------------------------------------------------------------
-%preun
-
-if [ "$1" -eq "0" ]; then
-  mode="uninstall"
-elif [ "$1" -eq "1" ]; then
-  mode="upgrade"
-fi
-
-@@include@@../common/rpm.include
-
-@@include@@../common/symlinks.include
-
-# Only remove menu items and symlinks on uninstall. When upgrading,
-# old_pkg's %preun runs after new_pkg's %post.
-if [ "$mode" = "uninstall" ]; then
-@@include@@../common/prerm.include
-  remove_nss_symlinks
-  remove_udev_symlinks
-
-  %{_sbindir}/update-alternatives --remove google-chrome \
-    /usr/bin/@@USR_BIN_SYMLINK_NAME@@
-fi
-
-# On Debian we only remove when we purge. However, RPM has no equivalent to
-# dpkg --purge, so this is all disabled.
-#
-#determine_rpm_package_manager
-#
-#case $PACKAGEMANAGER in
-#"yum")
-#  remove_yum
-#  ;;
-#"urpmi")
-#  remove_urpmi
-#  ;;
-#"yast")
-#  remove_yast
-#  ;;
-#esac
-
-exit 0
-
-#------------------------------------------------------------------------------
-#   Post uninstallation script
-#------------------------------------------------------------------------------
-%postun
-
-exit 0
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_i386 b/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_i386
deleted file mode 100644 (file)
index 52fd504..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-ld-linux.so.2
-ld-linux.so.2(GLIBC_2.1)
-ld-linux.so.2(GLIBC_2.3)
-libasound.so.2
-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.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)
-libc.so.6(GLIBC_2.7)
-libc.so.6(GLIBC_2.8)
-libc.so.6(GLIBC_2.9)
-libcups.so.2
-libdbus-1.so.3
-libdl.so.2
-libdl.so.2(GLIBC_2.0)
-libdl.so.2(GLIBC_2.1)
-libexpat.so.1
-libfontconfig.so.1
-libfreetype.so.6
-libgcc_s.so.1
-libgcc_s.so.1(GCC_3.4)
-libgcc_s.so.1(GCC_4.0.0)
-libgcc_s.so.1(GLIBC_2.0)
-libgconf-2.so.4
-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
-libm.so.6
-libm.so.6(GLIBC_2.0)
-libm.so.6(GLIBC_2.1)
-libnspr4.so
-libnss3.so
-libnssutil3.so
-libpango-1.0.so.0
-libpangocairo-1.0.so.0
-libplc4.so
-libpthread.so.0
-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
-librt.so.1(GLIBC_2.2)
-libsmime3.so
-libstdc++.so.6
-libstdc++.so.6(GLIBCXX_3.4)
-libstdc++.so.6(GLIBCXX_3.4.10)
-libstdc++.so.6(GLIBCXX_3.4.11)
-libstdc++.so.6(GLIBCXX_3.4.15)
-libstdc++.so.6(GLIBCXX_3.4.5)
-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/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_x86_64 b/src/chrome/tools/test/reference_build/chrome_linux/installer/rpm/expected_deps_x86_64
deleted file mode 100644 (file)
index 1435e39..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-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)
-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)
-libc.so.6(GLIBC_2.6)(64bit)
-libc.so.6(GLIBC_2.7)(64bit)
-libc.so.6(GLIBC_2.8)(64bit)
-libc.so.6(GLIBC_2.9)(64bit)
-libcups.so.2()(64bit)
-libdbus-1.so.3()(64bit)
-libdl.so.2()(64bit)
-libdl.so.2(GLIBC_2.2.5)(64bit)
-libexpat.so.1()(64bit)
-libfontconfig.so.1()(64bit)
-libfreetype.so.6()(64bit)
-libgcc_s.so.1()(64bit)
-libgcc_s.so.1(GCC_3.4)(64bit)
-libgcc_s.so.1(GCC_4.0.0)(64bit)
-libgconf-2.so.4()(64bit)
-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)
-libm.so.6()(64bit)
-libm.so.6(GLIBC_2.2.5)(64bit)
-libnspr4.so()(64bit)
-libnss3.so()(64bit)
-libnssutil3.so()(64bit)
-libpango-1.0.so.0()(64bit)
-libpangocairo-1.0.so.0()(64bit)
-libplc4.so()(64bit)
-libpthread.so.0()(64bit)
-libpthread.so.0(GLIBC_2.2.5)(64bit)
-libpthread.so.0(GLIBC_2.3.2)(64bit)
-libpthread.so.0(GLIBC_2.3.3)(64bit)
-librt.so.1()(64bit)
-librt.so.1(GLIBC_2.2.5)(64bit)
-libsmime3.so()(64bit)
-libstdc++.so.6()(64bit)
-libstdc++.so.6(GLIBCXX_3.4.10)(64bit)
-libstdc++.so.6(GLIBCXX_3.4.11)(64bit)
-libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
-libstdc++.so.6(GLIBCXX_3.4.5)(64bit)
-libstdc++.so.6(GLIBCXX_3.4)(64bit)
-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/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/BRANDING b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/BRANDING
deleted file mode 100644 (file)
index e17a4e4..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-COMPANY_FULLNAME=Google Inc.
-COMPANY_SHORTNAME=Google
-PRODUCT_FULLNAME=Google Chrome
-PRODUCT_SHORTNAME=Chrome
-CEEE_PRODUCT_FULLNAME=Google Toolbar
-COPYRIGHT=Copyright 2012 Google Inc. All rights reserved.
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_128.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_128.png
deleted file mode 100644 (file)
index ec0b2e5..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_128.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_16.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_16.png
deleted file mode 100644 (file)
index 385f75f..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_16.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_22.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_22.png
deleted file mode 100644 (file)
index d9927a3..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_22.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_24.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_24.png
deleted file mode 100644 (file)
index 8d80cb8..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_24.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_256.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_256.png
deleted file mode 100644 (file)
index dc2cf07..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_256.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.png
deleted file mode 100644 (file)
index 564ba76..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.xpm b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_32.xpm
deleted file mode 100644 (file)
index 5a4ee01..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/* XPM */
-static char *product_logo___[] = {
-/* columns rows colors chars-per-pixel */
-"32 32 158 2",
-"   c #725F2C",
-".  c #597230",
-"X  c #98261A",
-"o  c #B5251F",
-"O  c #C0171B",
-"+  c #CA1A1E",
-"@  c #CE1C20",
-"#  c #C72422",
-"$  c #D72124",
-"%  c #DD2226",
-"&  c #DF2428",
-"*  c #E02629",
-"=  c #E12C2D",
-"-  c #E2302F",
-";  c #E33532",
-":  c #E53B36",
-">  c #E53F38",
-",  c #89572D",
-"<  c #A6462B",
-"1  c #E04725",
-"2  c #E24823",
-"3  c #E04929",
-"4  c #E45121",
-"5  c #E7443D",
-"6  c #E8483F",
-"7  c #C53E40",
-"8  c #936552",
-"9  c #C0484B",
-"0  c #E14343",
-"q  c #E94C42",
-"w  c #E15241",
-"e  c #EA5246",
-"r  c #EB5649",
-"t  c #EC5B4D",
-"y  c #E15857",
-"u  c #E15858",
-"i  c #EE6454",
-"p  c #EF6957",
-"a  c #F06B59",
-"s  c #E16063",
-"d  c #E16B6F",
-"f  c #5B983F",
-"g  c #6D833A",
-"h  c #6E9E3B",
-"j  c #6FA834",
-"k  c #358740",
-"l  c #368941",
-"z  c #398D42",
-"x  c #3D9243",
-"c  c #419744",
-"v  c #439A45",
-"b  c #529F40",
-"n  c #45A246",
-"m  c #48A747",
-"M  c #46A946",
-"N  c #49AA46",
-"B  c #4AAE48",
-"V  c #58AC41",
-"C  c #4AB147",
-"Z  c #4BB449",
-"A  c #4DB849",
-"S  c #69A960",
-"D  c #66B666",
-"F  c #6CC369",
-"G  c #76C473",
-"H  c #B9BA1B",
-"J  c #BA9B2C",
-"K  c #94B62B",
-"L  c #B8B427",
-"P  c #EBBC16",
-"I  c #E6B41B",
-"U  c #E9B61E",
-"Y  c #EEBC1B",
-"T  c #D69D28",
-"R  c #D89F28",
-"E  c #DCA426",
-"W  c #DFA825",
-"Q  c #E2AC24",
-"!  c #E5B221",
-"~  c #D7C514",
-"^  c #EDCC0D",
-"/  c #F5CA0D",
-"(  c #F9CD0E",
-")  c #FCD20A",
-"_  c #EDC213",
-"`  c #F3C514",
-"'  c #F6C911",
-"]  c #F8CB10",
-"[  c #F0C018",
-"{  c #F9D734",
-"}  c #FDDA37",
-"|  c #87B673",
-" . c #E1BD5C",
-".. c #81CB7F",
-"X. c #FADB44",
-"o. c #F5D750",
-"O. c #F8DB51",
-"+. c #E9CC64",
-"@. c #1C649F",
-"#. c #1D64A0",
-"$. c #216EAD",
-"%. c #2370AF",
-"&. c #2D74AD",
-"*. c #3774A9",
-"=. c #2A76B6",
-"-. c #2C77B8",
-";. c #2E79BA",
-":. c #327DBE",
-">. c #367FC1",
-",. c #4184BB",
-"<. c #4C8ABE",
-"1. c #3780C2",
-"2. c #3A81C3",
-"3. c #4385C6",
-"4. c #4788C8",
-"5. c #4D8CCA",
-"6. c #518FCB",
-"7. c #5692CD",
-"8. c #5A95CE",
-"9. c #5F98D1",
-"0. c #649CD3",
-"q. c #689ED3",
-"w. c #67A0D5",
-"e. c #6BA2D6",
-"r. c #6EA5D9",
-"t. c #78A7D4",
-"y. c #7CAAD6",
-"u. c #70A6D9",
-"i. c #75AADB",
-"p. c #7BAFDE",
-"a. c #85CE82",
-"s. c #BBE3B9",
-"d. c #D8D585",
-"f. c #8EAFC9",
-"g. c #8CB6DD",
-"h. c #B3CFE7",
-"j. c #C6D3DF",
-"k. c #CCD4DF",
-"l. c #D0D5DD",
-"z. c #E2C8C8",
-"x. c #E2DACA",
-"c. c #E9D2D3",
-"v. c #DBE7DC",
-"b. c #DAE8DB",
-"n. c #EFEAD1",
-"m. c #F2EDD4",
-"M. c #C7D5E0",
-"N. c #CAD6E2",
-"B. c #CDDAE5",
-"V. c #C4D7E8",
-"C. c #CDDEEF",
-"Z. c #D1DCE6",
-"A. c #D8DBE1",
-"S. c #D0DFEB",
-"D. c #D4E1ED",
-"F. c #D8E6F2",
-"G. c #E9F6E8",
-"H. c None",
-/* pixels */
-"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.H.H.H.i p a a a p i t H.H.H.H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.e r t i i i i i i t t r q 6 H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.6 q q r t t t t t t r e q q 6 : H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.: : > 6 q q q e e e e e q 6 5 5 > : ; = H.H.H.H.H.H.",
-"H.H.H.H.H.= ; ; : > 5 5 q 6 q 6 q 6 6 5 : : : ; - = * H.H.H.H.H.",
-"H.H.H.H.H.= = = ; ; ; : > > > 5 > : : : ; ; = = = * & H.H.H.H.H.",
-"H.H.H.H.g % * * = - ; ; ; ; ; ; ; ; ; - - = & & * & * % H.H.H.H.",
-"H.H.H.A Z < $ * * * * = = = 0 u y w 3 3 3 1 1 1 2 2 2 2 4 H.H.H.",
-"H.H.H.A A b # $ % * * * s z.k.N.k.A.x. .I I P P P ` _ / ( H.H.H.",
-"H.H.H.A A A , @ % % % d B.g.i.p.p.p.g.B.+.P ` / / ( ) ) ) H.H.H.",
-"H.H.Z A A A b o + % s B.q.q.r.r.u.e.w.e.B.o.) ) ) ) ) ) ) ) H.H.",
-"H.H.C Z A A A   O + c.i.8.9.0.w.w.0.9.8.y.n.) ) ) ) ) ) ) ( H.H.",
-"H.H.C A A A A N X : V.4.5.7.8.8.8.7.7.7.5.D.{ ) ) ) ) ) ) ( H.H.",
-"H.H.C Z A A A A . 9 h.2.4.4.5.5.6.5.5.4.3.D.X.) ) ) ) ) ) ] H.H.",
-"H.H.B Z A A A A A 8 h.1.2.2.3.2.3.4.2.2.1.V.X.) ) ) ) ) ) ' H.H.",
-"H.H.B Z A A A A A S F.;.>.1.1.1.1.1.>.>.:.B.} ) ) ) ) ) ) ' H.H.",
-"H.H.m B Z A A A A A G.,.=.;.>.;.;.;.;.=.<.m.) ) ) ) ) ) ] ` H.H.",
-"H.H.n B Z A A A A A a.D.=.#.%.#.%.%.%.&.N.O.) ) ) ) ) ) ' [ H.H.",
-"H.H.H.m C Z A A A A A s.M.*.#.#.@.@.*.j.d.) ) ) ) ) ) ] ` H.H.H.",
-"H.H.H.n m C A A A A A A a.v.M.f.f.j.b.| ^ ) ) ) ) ( ] ` Y H.H.H.",
-"H.H.H.v n m C A A A A A A A F G G D n H ) ) ) ) ) ] ' Y ! H.H.H.",
-"H.H.H.H.v m m B A A A A A A A A Z M j / ) ) ) ) ] ` [ ! H.H.H.H.",
-"H.H.H.H.H.v n m B Z A A A A A A Z B ~ ) ) ( ] ] ` ! ! H.H.H.H.H.",
-"H.H.H.H.H.x c n m B B C Z A Z C B K ( ( ] ] ` ` Y ! Q H.H.H.H.H.",
-"H.H.H.H.H.H.z x v m m B B B C B V _ ' ` ` [ ! ! ! E H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.z x v v n m B n L [ [ [ ! ! Q E H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.k z x x v v h ! ! Q Q E E T H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.H.H.H.k l l J R R T T H.H.H.H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.",
-"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H."
-};
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_48.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_48.png
deleted file mode 100644 (file)
index 79bf8a9..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_48.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_64.png b/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_64.png
deleted file mode 100644 (file)
index 95fdae1..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/installer/theme/product_logo_64.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/installer/version.txt b/src/chrome/tools/test/reference_build/chrome_linux/installer/version.txt
deleted file mode 100644 (file)
index 05160fc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-MAJOR=34
-MINOR=0
-BUILD=1800
-PATCH=0
-LASTCHANGE=246310
-OFFICIAL_BUILD=1
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/lib/libpeerconnection.so b/src/chrome/tools/test/reference_build/chrome_linux/lib/libpeerconnection.so
deleted file mode 100755 (executable)
index ec90182..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/lib/libpeerconnection.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libEGL.dll b/src/chrome/tools/test/reference_build/chrome_linux/libEGL.dll
new file mode 100644 (file)
index 0000000..55c74f8
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/libEGL.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libGLESv2.dll b/src/chrome/tools/test/reference_build/chrome_linux/libGLESv2.dll
new file mode 100644 (file)
index 0000000..60ad765
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/libGLESv2.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdm.so b/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdm.so
deleted file mode 100755 (executable)
index a2d1ee6..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdm.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdmadapter.so b/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdmadapter.so
deleted file mode 100755 (executable)
index 3904312..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libclearkeycdmadapter.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libffmpegsumo.so b/src/chrome/tools/test/reference_build/chrome_linux/libffmpegsumo.so
deleted file mode 100755 (executable)
index 0fe8895..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libffmpegsumo.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libpdf.so b/src/chrome/tools/test/reference_build/chrome_linux/libpdf.so
deleted file mode 100755 (executable)
index 94e9e95..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libpdf.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libppGoogleNaClPluginChrome.so b/src/chrome/tools/test/reference_build/chrome_linux/libppGoogleNaClPluginChrome.so
deleted file mode 100755 (executable)
index 543344d..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libppGoogleNaClPluginChrome.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdm.so b/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdm.so
deleted file mode 100644 (file)
index b3687f3..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdm.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdmadapter.so b/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdmadapter.so
deleted file mode 100755 (executable)
index 8d50e2b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/libwidevinecdmadapter.so and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/am.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/am.pak
deleted file mode 100644 (file)
index 6d4aaf9..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/am.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.dll
new file mode 100755 (executable)
index 0000000..2546471
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.pak
deleted file mode 100644 (file)
index 19965c1..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ar.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.dll
new file mode 100755 (executable)
index 0000000..0d641c4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.pak
deleted file mode 100644 (file)
index c498a4d..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/bg.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.dll
new file mode 100755 (executable)
index 0000000..bd05a7a
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.pak
deleted file mode 100644 (file)
index c8df0b6..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/bn.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.dll
new file mode 100755 (executable)
index 0000000..a6f26b8
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.pak
deleted file mode 100644 (file)
index 0abe8ac..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ca.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.dll
new file mode 100755 (executable)
index 0000000..3e72c15
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.pak
deleted file mode 100644 (file)
index 11b899c..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/cs.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/da.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/da.dll
new file mode 100755 (executable)
index 0000000..6ee145d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/da.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/da.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/da.pak
deleted file mode 100644 (file)
index ba10e9a..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/da.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/de.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/de.dll
new file mode 100755 (executable)
index 0000000..fa30441
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/de.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/de.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/de.pak
deleted file mode 100644 (file)
index 80dbdb0..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/de.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/el.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/el.dll
new file mode 100755 (executable)
index 0000000..98a83d2
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/el.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/el.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/el.pak
deleted file mode 100644 (file)
index bf08580..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/el.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.dll
new file mode 100755 (executable)
index 0000000..26b546b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.pak
deleted file mode 100644 (file)
index 2b33a23..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-GB.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.dll
new file mode 100755 (executable)
index 0000000..7efe78b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.pak
deleted file mode 100644 (file)
index fa949a9..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/en-US.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.dll
new file mode 100755 (executable)
index 0000000..cc0254b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.pak
deleted file mode 100644 (file)
index 60a6225..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/es-419.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/es.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/es.dll
new file mode 100755 (executable)
index 0000000..b877b11
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/es.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/es.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/es.pak
deleted file mode 100644 (file)
index 8e2b990..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/es.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/et.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/et.dll
new file mode 100755 (executable)
index 0000000..c442529
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/et.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/et.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/et.pak
deleted file mode 100644 (file)
index be3f58a..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/et.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fa.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/fa.pak
deleted file mode 100644 (file)
index 16c42cb..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/fa.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.dll
new file mode 100755 (executable)
index 0000000..c5ddf09
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.pak
deleted file mode 100644 (file)
index e4db2b2..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/fi.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.dll
new file mode 100755 (executable)
index 0000000..47cd0a9
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.pak
deleted file mode 100644 (file)
index adcef7c..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/fil.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.dll
new file mode 100755 (executable)
index 0000000..9547b0d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.pak
deleted file mode 100644 (file)
index 1467f73..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/fr.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.dll
new file mode 100755 (executable)
index 0000000..e88c5fc
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.pak
deleted file mode 100644 (file)
index adff5d3..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/gu.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/he.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/he.dll
new file mode 100755 (executable)
index 0000000..5c55563
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/he.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/he.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/he.pak
deleted file mode 100644 (file)
index cf54c09..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/he.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.dll
new file mode 100755 (executable)
index 0000000..f3a7442
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.pak
deleted file mode 100644 (file)
index 7751254..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/hi.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.dll
new file mode 100755 (executable)
index 0000000..799859c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.pak
deleted file mode 100644 (file)
index 3eff961..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/hr.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.dll
new file mode 100755 (executable)
index 0000000..f4bea86
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.pak
deleted file mode 100644 (file)
index 54f9bff..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/hu.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/id.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/id.dll
new file mode 100755 (executable)
index 0000000..46f90a4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/id.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/id.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/id.pak
deleted file mode 100644 (file)
index c8cffd8..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/id.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/it.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/it.dll
new file mode 100755 (executable)
index 0000000..03aa118
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/it.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/it.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/it.pak
deleted file mode 100644 (file)
index 0d4c313..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/it.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.dll
new file mode 100755 (executable)
index 0000000..2baae6a
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.pak
deleted file mode 100644 (file)
index c26aeb7..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ja.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.dll
new file mode 100755 (executable)
index 0000000..240982c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.pak
deleted file mode 100644 (file)
index 5f0913f..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/kn.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.dll
new file mode 100755 (executable)
index 0000000..7f8032d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.pak
deleted file mode 100644 (file)
index 8155fbd..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ko.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.dll
new file mode 100755 (executable)
index 0000000..e842a84
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.pak
deleted file mode 100644 (file)
index e042292..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/lt.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.dll
new file mode 100755 (executable)
index 0000000..777d8d5
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.pak
deleted file mode 100644 (file)
index 68362b4..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/lv.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.dll
new file mode 100755 (executable)
index 0000000..f0db4e6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.pak
deleted file mode 100644 (file)
index 9abc4f4..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ml.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.dll
new file mode 100755 (executable)
index 0000000..a5059c2
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.pak
deleted file mode 100644 (file)
index 37cbd44..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/mr.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ms.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ms.pak
deleted file mode 100644 (file)
index 981fa28..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ms.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.dll
new file mode 100755 (executable)
index 0000000..6cfd043
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.pak
deleted file mode 100644 (file)
index 451d4d2..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/nb.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.dll
new file mode 100755 (executable)
index 0000000..ce0544f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.pak
deleted file mode 100644 (file)
index f8433c1..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/nl.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.dll
new file mode 100755 (executable)
index 0000000..678c97e
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.pak
deleted file mode 100644 (file)
index 9878766..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/pl.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.dll
new file mode 100755 (executable)
index 0000000..aae7aa3
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.pak
deleted file mode 100644 (file)
index f3958ef..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-BR.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.dll
new file mode 100755 (executable)
index 0000000..bbfb7e2
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.pak
deleted file mode 100644 (file)
index af520a1..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/pt-PT.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.dll
new file mode 100755 (executable)
index 0000000..2385f69
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.pak
deleted file mode 100644 (file)
index a504ddd..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ro.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.dll
new file mode 100755 (executable)
index 0000000..4d95922
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.pak
deleted file mode 100644 (file)
index 7ed4528..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ru.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.dll
new file mode 100755 (executable)
index 0000000..4fdfd3e
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.pak
deleted file mode 100644 (file)
index 150e7f4..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/sk.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.dll
new file mode 100755 (executable)
index 0000000..a44a10f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.pak
deleted file mode 100644 (file)
index f557074..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/sl.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.dll
new file mode 100755 (executable)
index 0000000..718c9bb
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.pak
deleted file mode 100644 (file)
index 2ef6e1d..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/sr.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.dll
new file mode 100755 (executable)
index 0000000..abfa60b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.pak
deleted file mode 100644 (file)
index 9a2a920..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/sv.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/sw.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/sw.pak
deleted file mode 100644 (file)
index 2b80169..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/sw.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.dll
new file mode 100755 (executable)
index 0000000..cc6581f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.pak
deleted file mode 100644 (file)
index 5ada1df..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/ta.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/te.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/te.dll
new file mode 100755 (executable)
index 0000000..a25685f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/te.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/te.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/te.pak
deleted file mode 100644 (file)
index 9897ef4..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/te.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/th.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/th.dll
new file mode 100755 (executable)
index 0000000..4fed1f6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/th.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/th.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/th.pak
deleted file mode 100644 (file)
index e6121ed..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/th.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.dll
new file mode 100755 (executable)
index 0000000..d301437
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.pak
deleted file mode 100644 (file)
index 0d6e113..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/tr.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.dll
new file mode 100755 (executable)
index 0000000..1daa6ee
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.pak
deleted file mode 100644 (file)
index fd74aab..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/uk.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.dll
new file mode 100755 (executable)
index 0000000..eb7e914
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.pak
deleted file mode 100644 (file)
index 6120e3e..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/vi.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.dll
new file mode 100755 (executable)
index 0000000..59c9568
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.pak
deleted file mode 100644 (file)
index 5ef8ccf..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-CN.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.dll b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.dll
new file mode 100755 (executable)
index 0000000..7fcfee8
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.pak b/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.pak
deleted file mode 100644 (file)
index b35bf0d..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/locales/zh-TW.pak and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/mini_installer.pdb b/src/chrome/tools/test/reference_build/chrome_linux/mini_installer.pdb
new file mode 100755 (executable)
index 0000000..7e9e156
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/mini_installer.pdb differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/nacl64.dll b/src/chrome/tools/test/reference_build/chrome_linux/nacl64.dll
new file mode 100644 (file)
index 0000000..dbbde07
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/nacl64.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/nacl64.exe b/src/chrome/tools/test/reference_build/chrome_linux/nacl64.exe
new file mode 100644 (file)
index 0000000..9f3c8e6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/nacl64.exe differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/nacl_helper_bootstrap b/src/chrome/tools/test/reference_build/chrome_linux/nacl_helper_bootstrap
deleted file mode 100755 (executable)
index c6f8d5a..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/nacl_helper_bootstrap and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/nacl_irt_x86_64.nexe b/src/chrome/tools/test/reference_build/chrome_linux/nacl_irt_x86_64.nexe
deleted file mode 100755 (executable)
index 5bfc7d6..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/nacl_irt_x86_64.nexe and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/product_logo_48.png b/src/chrome/tools/test/reference_build/chrome_linux/product_logo_48.png
deleted file mode 100644 (file)
index 79bf8a9..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/product_logo_48.png and /dev/null differ
index 0bf727e..a2b27e4 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources.pak and b/src/chrome/tools/test/reference_build/chrome_linux/resources.pak differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl.nmf
deleted file mode 100644 (file)
index 4ad380d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "files": {},
-  "program": {
-    "x86-64": {
-      "url": "liblouis_nacl_x86_64.nexe"
-    }
-  }
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_64.nexe b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_64.nexe
deleted file mode 100755 (executable)
index 5e26154..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/liblouis_nacl_x86_64.nexe and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables.json b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables.json
deleted file mode 100644 (file)
index 54e089d..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-[
-  {
-    "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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Es-Es-G0.utb
deleted file mode 100644 (file)
index af9f674..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Ca-g2.ctb
deleted file mode 100644 (file)
index d20e25d..0000000
+++ /dev/null
@@ -1,1790 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Fr-Fr-g2.ctb
deleted file mode 100644 (file)
index f741164..0000000
+++ /dev/null
@@ -1,1794 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Lv-Lv-g1.utb
deleted file mode 100644 (file)
index c962f20..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Nl-Nl-g1.utb
deleted file mode 100644 (file)
index 74db27b..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Pl-Pl-g1.utb
deleted file mode 100644 (file)
index 0095f92..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/Se-Se-g1.utb
deleted file mode 100644 (file)
index 5f9ffe2..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ar-ar-g1.utb
deleted file mode 100644 (file)
index 7c10d27..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/bg.ctb
deleted file mode 100644 (file)
index 714ecf9..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/braille-patterns.cti
deleted file mode 100644 (file)
index eafd6c0..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-chardefs.cti
deleted file mode 100644 (file)
index e70ca53..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-# ----------------------------------------------------------------------------------------------
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ca-g1.ctb
deleted file mode 100644 (file)
index bdea1d2..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# ----------------------------------------------------------------------------------------------
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/chardefs.cti
deleted file mode 100644 (file)
index 33adc20..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/countries.cti
deleted file mode 100644 (file)
index ceba371..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-chardefs.cti
deleted file mode 100644 (file)
index de820db..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-g1.ctb
deleted file mode 100644 (file)
index e64e4e1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/cs-translation.ctb
deleted file mode 100644 (file)
index 87eae42..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/da.ctb
deleted file mode 100644 (file)
index 49baad3..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-accents.cti
deleted file mode 100644 (file)
index d62e1aa..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g0.utb
deleted file mode 100644 (file)
index 0e32e50..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g1.ctb
deleted file mode 100644 (file)
index 04316c1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-ch-g2.ctb
deleted file mode 100644 (file)
index 447056a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-chardefs6.cti
deleted file mode 100644 (file)
index 5d96682..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-accents.cti
deleted file mode 100644 (file)
index 0cb9c11..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-comp8.ctb
deleted file mode 100644 (file)
index afa6107..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g0.utb
deleted file mode 100644 (file)
index ac3d49f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g1.ctb
deleted file mode 100644 (file)
index c3118fb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-de-g2.ctb
deleted file mode 100644 (file)
index 65c06b7..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6.dis
deleted file mode 100644 (file)
index ae573d1..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-eurobrl6u.dis
deleted file mode 100644 (file)
index 0369841..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g0-core.utb
deleted file mode 100644 (file)
index 83643fb..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g1-core.ctb
deleted file mode 100644 (file)
index f9cc50e..0000000
+++ /dev/null
@@ -1,1595 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/de-g2-core.ctb
deleted file mode 100644 (file)
index 26d5c5e..0000000
+++ /dev/null
@@ -1,10247 +0,0 @@
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/devanagari.cti
deleted file mode 100644 (file)
index 41780a6..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6Dots.uti
deleted file mode 100644 (file)
index 00e23f2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits6DotsPlusDot6.uti
deleted file mode 100644 (file)
index 201b97a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/digits8Dots.uti
deleted file mode 100644 (file)
index efda4f6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-GB-g2.ctb
deleted file mode 100644 (file)
index cdf8b0b..0000000
+++ /dev/null
@@ -1,768 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-gb-g1.utb
deleted file mode 100644 (file)
index 295e64a..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-# 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 \99 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 \80 4-15   euro
-always \80 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-comp8.ctb
deleted file mode 100644 (file)
index b060e1c..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.ctb
deleted file mode 100644 (file)
index 6b4590a..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g1.utb
deleted file mode 100644 (file)
index ded1979..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en-us-g2.ctb
deleted file mode 100644 (file)
index 1200175..0000000
+++ /dev/null
@@ -1,1074 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/en_CA.ctb
deleted file mode 100644 (file)
index 7bf8d36..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-chardefs.cti
deleted file mode 100644 (file)
index a1fa45f..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-g1.ctb
deleted file mode 100644 (file)
index 2225bb2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/es-translation.ctb
deleted file mode 100644 (file)
index 5a81062..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/et-g0.utb
deleted file mode 100644 (file)
index 3b39176..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fi-fi-8dot.ctb
deleted file mode 100644 (file)
index ab4fac8..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-2007.ctb
deleted file mode 100644 (file)
index 91d4fe6..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-ca-g1.utb
deleted file mode 100644 (file)
index f378cfa..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/fr-fr-g1.utb
deleted file mode 100644 (file)
index b59963b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/gr-gr-g1.utb
deleted file mode 100644 (file)
index cbc1f32..0000000
+++ /dev/null
@@ -1,590 +0,0 @@
-# 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 \89
-
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi-in-g1.utb
deleted file mode 100644 (file)
index aa45a75..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hi.ctb
deleted file mode 100644 (file)
index 79185b0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hr.ctb
deleted file mode 100644 (file)
index 44fbb54..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-backtranslate-correction.dis
deleted file mode 100644 (file)
index 29ba378..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-chardefs.cti
deleted file mode 100644 (file)
index b394459..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-# 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 \7f 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 \85 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-exceptionwords.cti
deleted file mode 100644 (file)
index 8170e9d..0000000
+++ /dev/null
@@ -1,864 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-comp8.ctb
deleted file mode 100644 (file)
index d05ce0b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/hu-hu-g1.ctb
deleted file mode 100644 (file)
index 4478cd1..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/is.ctb
deleted file mode 100644 (file)
index 6c8ac5e..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp6.utb
deleted file mode 100644 (file)
index 17bcb11..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/it-it-comp8.utb
deleted file mode 100644 (file)
index 17a7c5e..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef6Dots.uti
deleted file mode 100644 (file)
index 3a84dc9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/latinLetterDef8Dots.uti
deleted file mode 100644 (file)
index 0df39ae..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits6Dots.uti
deleted file mode 100644 (file)
index 6598c19..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/loweredDigits8Dots.uti
deleted file mode 100644 (file)
index 9cdc8c0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/lt.ctb
deleted file mode 100644 (file)
index 0d312be..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g0.utb
deleted file mode 100644 (file)
index d33211a..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g1.ctb
deleted file mode 100644 (file)
index 4880f72..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g2.ctb
deleted file mode 100644 (file)
index 150b8ab..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no-g3.ctb
deleted file mode 100644 (file)
index cc20c13..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/no-no.ctb
deleted file mode 100644 (file)
index 38c6ba0..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-comp8.ctb
deleted file mode 100644 (file)
index 78843a0..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g1.utb
deleted file mode 100644 (file)
index e569b91..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/pt-pt-g2.ctb
deleted file mode 100644 (file)
index 5a625ed..0000000
+++ /dev/null
@@ -1,875 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ro.ctb
deleted file mode 100644 (file)
index e93a5e1..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru-g1.utb
deleted file mode 100644 (file)
index 42d6430..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru-ru.dis
deleted file mode 100644 (file)
index 2ba7fd7..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ru.ctb
deleted file mode 100644 (file)
index 85a389c..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/se-se.dis
deleted file mode 100644 (file)
index dd1a4a0..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sk-sk-g1.utb
deleted file mode 100644 (file)
index 2518ba5..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sl-si-g1.utb
deleted file mode 100644 (file)
index 49bc5f4..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-chardefs.cti
deleted file mode 100644 (file)
index 7fd9ddd..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-g1.ctb
deleted file mode 100644 (file)
index 8e0157d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sr-translation.ctb
deleted file mode 100644 (file)
index c3dfd8d..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-#  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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/sv-1996.ctb
deleted file mode 100644 (file)
index aa5e763..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/text_nabcc.dis
deleted file mode 100644 (file)
index 282453d..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/tr.ctb
deleted file mode 100644 (file)
index 5a676d0..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/ukchardefs.cti
deleted file mode 100644 (file)
index 410ae06..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/uni-text.dis
deleted file mode 100644 (file)
index e3727c5..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/vi.ctb
deleted file mode 100644 (file)
index ddd7ccc..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-###############################################################################
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-hk.ctb
deleted file mode 100644 (file)
index 3386faf..0000000
+++ /dev/null
@@ -1,10429 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb b/src/chrome/tools/test/reference_build/chrome_linux/resources/chromeos/chromevox/chromevox/background/braille/tables/zh-tw.ctb
deleted file mode 100644 (file)
index dbfe4aa..0000000
+++ /dev/null
@@ -1,29136 +0,0 @@
-# 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/src/chrome/tools/test/reference_build/chrome_linux/resources/extension/demo/library.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/extension/demo/library.js
deleted file mode 100644 (file)
index 9e89995..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-var demo = {};
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/AuditsPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/AuditsPanel.js
deleted file mode 100644 (file)
index de8e761..0000000
+++ /dev/null
@@ -1,485 +0,0 @@
-WebInspector.AuditsPanel=function()
-{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()
-{return this._auditCategoriesById;},addCategory:function(category)
-{this.categoriesById[category.id]=category;this._launcherView.addCategory(category);},getCategory:function(id)
-{return this.categoriesById[id];},_constructCategories:function()
-{this._auditCategoriesById={};for(var categoryCtorID in WebInspector.AuditCategories){var auditCategory=new WebInspector.AuditCategories[categoryCtorID]();auditCategory._id=categoryCtorID;this.categoriesById[categoryCtorID]=auditCategory;}},auditFinishedCallback:function(mainResourceURL,results)
-{var children=this.auditResultsTreeElement.children;var ordinal=1;for(var i=0;i<children.length;++i){if(children[i].mainResourceURL===mainResourceURL)
-ordinal++;}
-var resultTreeElement=new WebInspector.AuditResultSidebarTreeElement(this,results,mainResourceURL,ordinal);this.auditResultsTreeElement.appendChild(resultTreeElement);resultTreeElement.revealAndSelect();},showResults:function(categoryResults)
-{if(!categoryResults._resultView)
-categoryResults._resultView=new WebInspector.AuditResultView(categoryResults);this.visibleView=categoryResults._resultView;},showLauncherView:function()
-{this.visibleView=this._launcherView;},get visibleView()
-{return this._visibleView;},set visibleView(x)
-{if(this._visibleView===x)
-return;if(this._visibleView)
-this._visibleView.detach();this._visibleView=x;if(x)
-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.AuditCategoryImpl=function(displayName)
-{this._displayName=displayName;this._rules=[];}
-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)
-{this._ensureInitialized();var remainingRulesCount=this._rules.length;progress.setTotalWork(remainingRulesCount);function callbackWrapper(result)
-{ruleResultCallback(result);progress.worked();if(!--remainingRulesCount)
-categoryDoneCallback();}
-for(var i=0;i<this._rules.length;++i)
-this._rules[i].run(requests,callbackWrapper,progress);},_ensureInitialized:function()
-{if(!this._initialized){if("initialize"in this)
-this.initialize();this._initialized=true;}}}
-WebInspector.AuditRule=function(id,displayName)
-{this._id=id;this._displayName=displayName;}
-WebInspector.AuditRule.Severity={Info:"info",Warning:"warning",Severe:"severe"}
-WebInspector.AuditRule.SeverityOrder={"info":3,"warning":2,"severe":1}
-WebInspector.AuditRule.prototype={get id()
-{return this._id;},get displayName()
-{return this._displayName;},set severity(severity)
-{this._severity=severity;},run:function(requests,callback,progress)
-{if(progress.isCanceled())
-return;var result=new WebInspector.AuditRuleResult(this.displayName);result.severity=this._severity;this.doRun(requests,result,callback,progress);},doRun:function(requests,result,callback,progress)
-{throw new Error("doRun() not implemented");}}
-WebInspector.AuditCategoryResult=function(category)
-{this.title=category.displayName;this.ruleResults=[];}
-WebInspector.AuditCategoryResult.prototype={addRuleResult:function(ruleResult)
-{this.ruleResults.push(ruleResult);}}
-WebInspector.AuditRuleResult=function(value,expanded,className)
-{this.value=value;this.className=className;this.expanded=expanded;this.violationCount=0;this._formatters={r:WebInspector.AuditRuleResult.linkifyDisplayName};var standardFormatters=Object.keys(String.standardFormatters);for(var i=0;i<standardFormatters.length;++i)
-this._formatters[standardFormatters[i]]=String.standardFormatters[standardFormatters[i]];}
-WebInspector.AuditRuleResult.linkifyDisplayName=function(url)
-{return WebInspector.linkifyURLAsNode(url,WebInspector.displayNameForURL(url));}
-WebInspector.AuditRuleResult.resourceDomain=function(domain)
-{return domain||WebInspector.UIString("[empty domain]");}
-WebInspector.AuditRuleResult.prototype={addChild:function(value,expanded,className)
-{if(!this.children)
-this.children=[];var entry=new WebInspector.AuditRuleResult(value,expanded,className);this.children.push(entry);return entry;},addURL:function(url)
-{this.addChild(WebInspector.AuditRuleResult.linkifyDisplayName(url));},addURLs:function(urls)
-{for(var i=0;i<urls.length;++i)
-this.addURL(urls[i]);},addSnippet:function(snippet)
-{this.addChild(snippet,false,"source-code");},addFormatted:function(format,vararg)
-{var substitutions=Array.prototype.slice.call(arguments,1);var fragment=document.createDocumentFragment();function append(a,b)
-{if(!(b instanceof Node))
-b=document.createTextNode(b);a.appendChild(b);return a;}
-var formattedResult=String.format(format,substitutions,this._formatters,fragment,append).formattedResult;if(formattedResult instanceof Node)
-formattedResult.normalize();return this.addChild(formattedResult);}}
-WebInspector.AuditsSidebarTreeElement=function(panel)
-{this._panel=panel;this.small=false;WebInspector.SidebarTreeElement.call(this,"audits-sidebar-tree-item",WebInspector.UIString("Audits"),"",null,false);}
-WebInspector.AuditsSidebarTreeElement.prototype={onattach:function()
-{WebInspector.SidebarTreeElement.prototype.onattach.call(this);},onselect:function()
-{this._panel.showLauncherView();},get selectable()
-{return true;},refresh:function()
-{this.refreshTitles();},__proto__:WebInspector.SidebarTreeElement.prototype}
-WebInspector.AuditResultSidebarTreeElement=function(panel,results,mainResourceURL,ordinal)
-{this._panel=panel;this.results=results;this.mainResourceURL=mainResourceURL;WebInspector.SidebarTreeElement.call(this,"audit-result-sidebar-tree-item",String.sprintf("%s (%d)",mainResourceURL,ordinal),"",{},false);}
-WebInspector.AuditResultSidebarTreeElement.prototype={onselect:function()
-{this._panel.showResults(this.results);},get selectable()
-{return true;},__proto__:WebInspector.SidebarTreeElement.prototype}
-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)
-{if(ruleResult&&ruleResult.children)
-categoryResult.addRuleResult(ruleResult);if(this._progress.isCanceled())
-this._progress.done();}
-var results=[];var mainResourceURL=WebInspector.inspectedPageURL;var categoriesDone=0;function categoryDoneCallback()
-{if(++categoriesDone!==categories.length)
-return;this._progress.done();resultCallback(mainResourceURL,results)}
-var requests=WebInspector.networkLog.requests.slice();var compositeProgress=new WebInspector.CompositeProgress(this._progress);var subprogresses=[];for(var i=0;i<categories.length;++i)
-subprogresses.push(compositeProgress.createSubProgress());for(var i=0;i<categories.length;++i){var category=categories[i];var result=new WebInspector.AuditCategoryResult(category);results.push(result);category.run(requests,ruleResultReadyCallback.bind(this,result),categoryDoneCallback.bind(this),subprogresses[i]);}},_auditFinishedCallback:function(launcherCallback,mainResourceURL,results)
-{this._auditsPanel.auditFinishedCallback(mainResourceURL,results);if(!this._progress.isCanceled())
-launcherCallback();},initiateAudit:function(categoryIds,progress,runImmediately,startedCallback,finishedCallback)
-{if(!categoryIds||!categoryIds.length)
-return;this._progress=progress;var categories=[];for(var i=0;i<categoryIds.length;++i)
-categories.push(this._auditsPanel.categoriesById[categoryIds[i]]);function startAuditWhenResourcesReady()
-{startedCallback();this._executeAudit(categories,this._auditFinishedCallback.bind(this,finishedCallback));}
-if(runImmediately)
-startAuditWhenResourcesReady.call(this);else
-this._reloadResources(startAuditWhenResourcesReady.bind(this));WebInspector.userMetrics.AuditsStarted.record();},_reloadResources:function(callback)
-{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()
-{}
-WebInspector.AuditFormatters.Registry={text:function(text)
-{return document.createTextNode(text);},snippet:function(snippetText)
-{var div=document.createElement("div");div.textContent=snippetText;div.className="source-code";return div;},concat:function()
-{var parent=document.createElement("span");for(var arg=0;arg<arguments.length;++arg)
-parent.appendChild(WebInspector.auditFormatters.apply(arguments[arg]));return parent;},url:function(url,displayText,allowExternalNavigation)
-{var a=document.createElement("a");a.href=sanitizeHref(url);a.title=url;a.textContent=displayText||url;if(allowExternalNavigation)
-a.target="_blank";return a;},resourceLink:function(url,line)
-{return WebInspector.linkifyResourceAsNode(url,line,"console-message-url webkit-html-resource-link");}};WebInspector.AuditFormatters.prototype={apply:function(value)
-{var formatter;var type=typeof value;var args;switch(type){case"string":case"boolean":case"number":formatter=WebInspector.AuditFormatters.Registry.text;args=[value.toString()];break;case"object":if(value instanceof Node)
-return value;if(value instanceof Array){formatter=WebInspector.AuditFormatters.Registry.concat;args=value;}else if(value.type&&value.arguments){formatter=WebInspector.AuditFormatters.Registry[value.type];args=value.arguments;}}
-if(!formatter)
-throw"Invalid value or formatter: "+type+JSON.stringify(value);return formatter.apply(null,args);},partiallyApply:function(formatters,thisArgument,value)
-{if(value instanceof Array)
-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.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)
-return;++this._totalResources;this._updateResourceProgress();},_onRequestFinished:function(event)
-{var request=(event.data);if(request.type===WebInspector.resourceTypes.WebSocket)
-return;++this._loadedResources;this._updateResourceProgress();},addCategory:function(category)
-{if(!this._sortedCategories.length)
-this._createLauncherUI();var selectedCategories=this._selectedCategoriesSetting.get();var categoryElement=this._createCategoryElement(category.displayName,category.id);category._checkboxElement=categoryElement.firstChild;if(this._selectAllCheckboxElement.checked||selectedCategories[category.displayName]){category._checkboxElement.checked=true;++this._currentCategoriesCount;}
-function compareCategories(a,b)
-{var aTitle=a.displayName||"";var bTitle=b.displayName||"";return aTitle.localeCompare(bTitle);}
-var insertBefore=insertionIndexForObjectInListSortedByFunction(category,this._sortedCategories,compareCategories);this._categoriesElement.insertBefore(categoryElement,this._categoriesElement.children[insertBefore]);this._sortedCategories.splice(insertBefore,0,category);this._selectedCategoriesUpdated();},_setAuditRunning:function(auditRunning)
-{if(this._auditRunning===auditRunning)
-return;this._auditRunning=auditRunning;this._updateButton();this._toggleUIComponents(this._auditRunning);if(this._auditRunning)
-this._startAudit();else
-this._stopAudit();},_startAudit:function()
-{var catIds=[];for(var category=0;category<this._sortedCategories.length;++category){if(this._sortedCategories[category]._checkboxElement.checked)
-catIds.push(this._sortedCategories[category].id);}
-this._resetResourceCount();this._progressIndicator=new WebInspector.ProgressIndicator();this._buttonContainerElement.appendChild(this._progressIndicator.element);this._displayResourceLoadingProgress=true;function onAuditStarted()
-{this._displayResourceLoadingProgress=false;}
-this._auditController.initiateAudit(catIds,this._progressIndicator,this._auditPresentStateElement.checked,onAuditStarted.bind(this),this._setAuditRunning.bind(this,false));},_stopAudit:function()
-{this._displayResourceLoadingProgress=false;this._progressIndicator.cancel();this._progressIndicator.done();delete this._progressIndicator;},_toggleUIComponents:function(disable)
-{this._selectAllCheckboxElement.disabled=disable;this._categoriesElement.disabled=disable;this._auditPresentStateElement.disabled=disable;this._auditReloadedStateElement.disabled=disable;},_launchButtonClicked:function(event)
-{this._setAuditRunning(!this._auditRunning);},_clearButtonClicked:function()
-{this._auditController.clearResults();},_selectAllClicked:function(checkCategories,userGesture)
-{var childNodes=this._categoriesElement.childNodes;for(var i=0,length=childNodes.length;i<length;++i)
-childNodes[i].firstChild.checked=checkCategories;this._currentCategoriesCount=checkCategories?this._sortedCategories.length:0;this._selectedCategoriesUpdated(userGesture);},_categoryClicked:function(event)
-{this._currentCategoriesCount+=event.target.checked?1:-1;this._selectAllCheckboxElement.checked=this._currentCategoriesCount===this._sortedCategories.length;this._selectedCategoriesUpdated(true);},_createCategoryElement:function(title,id)
-{var labelElement=document.createElement("label");labelElement.id=this._categoryIdPrefix+id;var element=document.createElement("input");element.type="checkbox";if(id!=="")
-element.addEventListener("click",this._boundCategoryClickListener,false);labelElement.appendChild(element);labelElement.appendChild(document.createTextNode(title));labelElement.__displayName=title;return labelElement;},_createLauncherUI:function()
-{this._headerElement=document.createElement("h1");this._headerElement.textContent=WebInspector.UIString("Select audits to run");for(var child=0;child<this._contentElement.children.length;++child)
-this._contentElement.removeChild(this._contentElement.children[child]);this._contentElement.appendChild(this._headerElement);function handleSelectAllClick(event)
-{this._selectAllClicked(event.target.checked,true);}
-var categoryElement=this._createCategoryElement(WebInspector.UIString("Select All"),"");categoryElement.id="audit-launcher-selectall";this._selectAllCheckboxElement=categoryElement.firstChild;this._selectAllCheckboxElement.checked=this._selectedCategoriesSetting.get()[WebInspector.AuditLauncherView.AllCategoriesKey];this._selectAllCheckboxElement.addEventListener("click",handleSelectAllClick.bind(this),false);this._contentElement.appendChild(categoryElement);this._categoriesElement=this._contentElement.createChild("fieldset","audit-categories-container");this._currentCategoriesCount=0;this._contentElement.createChild("div","flexible-space");this._buttonContainerElement=this._contentElement.createChild("div","button-container");var labelElement=this._buttonContainerElement.createChild("label");this._auditPresentStateElement=labelElement.createChild("input");this._auditPresentStateElement.name="audit-mode";this._auditPresentStateElement.type="radio";this._auditPresentStateElement.checked=true;this._auditPresentStateLabelElement=document.createTextNode(WebInspector.UIString("Audit Present State"));labelElement.appendChild(this._auditPresentStateLabelElement);labelElement=this._buttonContainerElement.createChild("label");this._auditReloadedStateElement=labelElement.createChild("input");this._auditReloadedStateElement.name="audit-mode";this._auditReloadedStateElement.type="radio";labelElement.appendChild(document.createTextNode("Reload Page and Audit on Load"));this._launchButton=this._buttonContainerElement.createChild("button");this._launchButton.textContent=WebInspector.UIString("Run");this._launchButton.addEventListener("click",this._launchButtonClicked.bind(this),false);this._clearButton=this._buttonContainerElement.createChild("button");this._clearButton.textContent=WebInspector.UIString("Clear");this._clearButton.addEventListener("click",this._clearButtonClicked.bind(this),false);this._selectAllClicked(this._selectAllCheckboxElement.checked);},_updateResourceProgress:function()
-{if(this._displayResourceLoadingProgress)
-this._progressIndicator.setTitle(WebInspector.UIString("Loading (%d of %d)",this._loadedResources,this._totalResources));},_selectedCategoriesUpdated:function(userGesture)
-{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.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.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.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(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.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)
-continue;var parsedURL=request.url.asParsedURL();if(!parsedURL)
-continue;var domain=parsedURL.host;var domainResources=domainToResourcesMap[domain];if(domainResources===undefined){domainResources=[];domainToResourcesMap[domain]=domainResources;}
-domainResources.push(needFullResources?request:request.url);}
-return domainToResourcesMap;}
-WebInspector.AuditRules.GzipRule=function()
-{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.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){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}
-WebInspector.AuditRules.CombineExternalResourcesRule=function(id,name,type,resourceTypeName,allowedPerDomain)
-{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(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",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",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){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",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){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",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;}}
-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):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=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();}
-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())
-return;if(styleSheet){styleSheet.sourceURL=sourceURL;styleSheets.push(styleSheet);}
-if(continuation)
-continuation(styleSheets);}
-function allStylesCallback(error,styleSheetInfos)
-{if(progress.isCanceled())
-return;if(error||!styleSheetInfos||!styleSheetInfos.length)
-return evalCallback([]);var styleSheets=[];for(var i=0;i<styleSheetInfos.length;++i){var info=styleSheetInfos[i];WebInspector.CSSStyleSheet.createForId(info.styleSheetId,styleSheetCallback.bind(null,styleSheets,info.sourceURL,i==styleSheetInfos.length-1?evalCallback:null));}}
-CSSAgent.getAllStyleSheets(allStylesCallback);},__proto__:WebInspector.AuditRule.prototype}
-WebInspector.AuditRules.CacheControlRule=function(id,name)
-{WebInspector.AuditRule.call(this,id,name);}
-WebInspector.AuditRules.CacheControlRule.MillisPerMonth=1000*60*60*24*30;WebInspector.AuditRules.CacheControlRule.prototype={doRun:function(requests,result,callback,progress)
-{var cacheableAndNonCacheableResources=this._cacheableAndNonCacheableResources(requests);if(cacheableAndNonCacheableResources[0].length)
-this.runChecks(cacheableAndNonCacheableResources[0],result);this.handleNonCacheableResources(cacheableAndNonCacheableResources[1],result);callback(result);},handleNonCacheableResources:function(requests,result)
-{},_cacheableAndNonCacheableResources:function(requests)
-{var processedResources=[[],[]];for(var i=0;i<requests.length;++i){var request=requests[i];if(!this.isCacheableResource(request))
-continue;if(this._isExplicitlyNonCacheable(request))
-processedResources[1].push(request);else
-processedResources[0].push(request);}
-return processedResources;},execCheck:function(messageText,requestCheckFunction,requests,result)
-{var requestCount=requests.length;var urls=[];for(var i=0;i<requestCount;++i){if(requestCheckFunction.call(this,requests[i]))
-urls.push(requests[i].url);}
-if(urls.length){var entry=result.addChild(messageText,true);entry.addURLs(urls);result.violationCount+=urls.length;}},freshnessLifetimeGreaterThan:function(request,timeMs)
-{var dateHeader=this.responseHeader(request,"Date");if(!dateHeader)
-return false;var dateHeaderMs=Date.parse(dateHeader);if(isNaN(dateHeaderMs))
-return false;var freshnessLifetimeMs;var maxAgeMatch=this.responseHeaderMatch(request,"Cache-Control","max-age=(\\d+)");if(maxAgeMatch)
-freshnessLifetimeMs=(maxAgeMatch[1])?1000*maxAgeMatch[1]:0;else{var expiresHeader=this.responseHeader(request,"Expires");if(expiresHeader){var expDate=Date.parse(expiresHeader);if(!isNaN(expDate))
-freshnessLifetimeMs=expDate-dateHeaderMs;}}
-return(isNaN(freshnessLifetimeMs))?false:freshnessLifetimeMs>timeMs;},responseHeader:function(request,header)
-{return request.responseHeaderValue(header);},hasResponseHeader:function(request,header)
-{return request.responseHeaderValue(header)!==undefined;},isCompressible:function(request)
-{return request.type.isTextType();},isPubliclyCacheable:function(request)
-{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")):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",WebInspector.UIString("Leverage browser caching"));}
-WebInspector.AuditRules.BrowserCacheControlRule.prototype={handleNonCacheableResources:function(requests,result)
-{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(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",WebInspector.UIString("Leverage proxy caching"));}
-WebInspector.AuditRules.ProxyCacheControlRule.prototype={runChecks:function(requests,result,callback)
-{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",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(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)
-{if(progress.isCanceled())
-return;const node=WebInspector.domAgent.nodeForId(imageId);var src=node.getAttribute("src");if(!src.asParsedURL()){for(var frameOwnerCandidate=node;frameOwnerCandidate;frameOwnerCandidate=frameOwnerCandidate.parentNode){if(frameOwnerCandidate.baseURL){var completeSrc=WebInspector.ParsedURL.completeURL(frameOwnerCandidate.baseURL,src);break;}}}
-if(completeSrc)
-src=completeSrc;if(computedStyle.getPropertyValue("position")==="absolute"){if(isLastStyle)
-doneCallback();return;}
-if(styles.attributesStyle){var widthFound=!!styles.attributesStyle.getLiveProperty("width");var heightFound=!!styles.attributesStyle.getLiveProperty("height");}
-var inlineStyle=styles.inlineStyle;if(inlineStyle){if(inlineStyle.getPropertyValue("width")!=="")
-widthFound=true;if(inlineStyle.getPropertyValue("height")!=="")
-heightFound=true;}
-for(var i=styles.matchedCSSRules.length-1;i>=0&&!(widthFound&&heightFound);--i){var style=styles.matchedCSSRules[i].style;if(style.getPropertyValue("width")!=="")
-widthFound=true;if(style.getPropertyValue("height")!=="")
-heightFound=true;}
-if(!widthFound||!heightFound){if(src in urlToNoDimensionCount)
-++urlToNoDimensionCount[src];else
-urlToNoDimensionCount[src]=1;}
-if(isLastStyle)
-doneCallback();}
-function getStyles(nodeIds)
-{if(progress.isCanceled())
-return;var targetResult={};function inlineCallback(inlineStyle,attributesStyle)
-{targetResult.inlineStyle=inlineStyle;targetResult.attributesStyle=attributesStyle;}
-function matchedCallback(result)
-{if(result)
-targetResult.matchedCSSRules=result.matchedCSSRules;}
-if(!nodeIds||!nodeIds.length)
-doneCallback();for(var i=0;nodeIds&&i<nodeIds.length;++i){WebInspector.cssModel.getMatchedStylesAsync(nodeIds[i],false,false,matchedCallback);WebInspector.cssModel.getInlineStylesAsync(nodeIds[i],inlineCallback);WebInspector.cssModel.getComputedStyleAsync(nodeIds[i],imageStylesReady.bind(null,nodeIds[i],targetResult,i===nodeIds.length-1));}}
-function onDocumentAvailable(root)
-{if(progress.isCanceled())
-return;WebInspector.domAgent.querySelectorAll(root.id,"img[src]",getStyles);}
-if(progress.isCanceled())
-return;WebInspector.domAgent.requestDocument(onDocumentAvailable);},__proto__:WebInspector.AuditRule.prototype}
-WebInspector.AuditRules.CssInHeadRule=function()
-{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())
-return;if(!evalResult)
-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=WebInspector.UIString("CSS in the document body adversely impacts rendering performance.");callback(result);}
-function externalStylesheetsReceived(root,inlineStyleNodeIds,nodeIds)
-{if(progress.isCanceled())
-return;if(!nodeIds)
-return;var externalStylesheetNodeIds=nodeIds;var result=null;if(inlineStyleNodeIds.length||externalStylesheetNodeIds.length){var urlToViolationsArray={};var externalStylesheetHrefs=[];for(var j=0;j<externalStylesheetNodeIds.length;++j){var linkNode=WebInspector.domAgent.nodeForId(externalStylesheetNodeIds[j]);var completeHref=WebInspector.ParsedURL.completeURL(linkNode.ownerDocument.baseURL,linkNode.getAttribute("href"));externalStylesheetHrefs.push(completeHref||"<empty>");}
-urlToViolationsArray[root.documentURL]=[inlineStyleNodeIds.length,externalStylesheetHrefs];result=urlToViolationsArray;}
-evalCallback(result);}
-function inlineStylesReceived(root,nodeIds)
-{if(progress.isCanceled())
-return;if(!nodeIds)
-return;WebInspector.domAgent.querySelectorAll(root.id,"body link[rel~='stylesheet'][href]",externalStylesheetsReceived.bind(null,root,nodeIds));}
-function onDocumentAvailable(root)
-{if(progress.isCanceled())
-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",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(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())
-return;if(!nodeIds)
-return;var cssBeforeInlineCount=nodeIds.length;var result=null;if(lateStyleIds.length||cssBeforeInlineCount){var lateStyleUrls=[];for(var i=0;i<lateStyleIds.length;++i){var lateStyleNode=WebInspector.domAgent.nodeForId(lateStyleIds[i]);var completeHref=WebInspector.ParsedURL.completeURL(lateStyleNode.ownerDocument.baseURL,lateStyleNode.getAttribute("href"));lateStyleUrls.push(completeHref||"<empty>");}
-result=[lateStyleUrls,cssBeforeInlineCount];}
-evalCallback(result);}
-function lateStylesReceived(root,nodeIds)
-{if(progress.isCanceled())
-return;if(!nodeIds)
-return;WebInspector.domAgent.querySelectorAll(root.id,"head link[rel~='stylesheet'][href] ~ script:not([src])",cssBeforeInlineReceived.bind(null,nodeIds));}
-function onDocumentAvailable(root)
-{if(progress.isCanceled())
-return;WebInspector.domAgent.querySelectorAll(root.id,"head script[src] ~ link[rel~='stylesheet'][href]",lateStylesReceived.bind(null,root));}
-WebInspector.domAgent.requestDocument(onDocumentAvailable);},__proto__:WebInspector.AuditRule.prototype}
-WebInspector.AuditRules.CSSRuleBase=function(id,name)
-{WebInspector.AuditRule.call(this,id,name);}
-WebInspector.AuditRules.CSSRuleBase.prototype={doRun:function(requests,result,callback,progress)
-{CSSAgent.getAllStyleSheets(sheetsCallback.bind(this));function sheetsCallback(error,headers)
-{if(error)
-return callback(null);if(!headers.length)
-return callback(null);for(var i=0;i<headers.length;++i){var header=headers[i];if(header.disabled)
-continue;this._visitStyleSheet(header.styleSheetId,i===headers.length-1?finishedCallback:null,result,progress);}}
-function finishedCallback()
-{callback(result);}},_visitStyleSheet:function(styleSheetId,callback,result,progress)
-{WebInspector.CSSStyleSheet.createForId(styleSheetId,sheetCallback.bind(this));function sheetCallback(styleSheet)
-{if(progress.isCanceled())
-return;if(!styleSheet){if(callback)
-callback();return;}
-this.visitStyleSheet(styleSheet,result);for(var i=0;i<styleSheet.rules.length;++i)
-this._visitRule(styleSheet,styleSheet.rules[i],result);this.didVisitStyleSheet(styleSheet,result);if(callback)
-callback();}},_visitRule:function(styleSheet,rule,result)
-{this.visitRule(styleSheet,rule,result);var allProperties=rule.style.allProperties;for(var i=0;i<allProperties.length;++i)
-this.visitProperty(styleSheet,allProperties[i],result);this.didVisitRule(styleSheet,rule,result);},visitStyleSheet:function(styleSheet,result)
-{},didVisitStyleSheet:function(styleSheet,result)
-{},visitRule:function(styleSheet,rule,result)
-{},didVisitRule:function(styleSheet,rule,result)
-{},visitProperty:function(styleSheet,property,result)
-{},__proto__:WebInspector.AuditRule.prototype}
-WebInspector.AuditRules.VendorPrefixedCSSProperties=function()
-{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()
-{delete this._ruleResult;delete this._mentionedProperties;},visitProperty:function(styleSheet,property,result)
-{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):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)
-{var self=this;function resultCallback(receivedCookies){if(progress.isCanceled())
-return;self.processCookies(receivedCookies,requests,result);callback(result);}
-WebInspector.Cookies.getCookiesAsync(resultCallback);},mapResourceCookies:function(requestsByDomain,allCookies,callback)
-{for(var i=0;i<allCookies.length;++i){for(var requestDomain in requestsByDomain){if(WebInspector.Cookies.cookieDomainMatchesResourceDomain(allCookies[i].domain(),requestDomain))
-this._callbackForResourceCookiePairs(requestsByDomain[requestDomain],allCookies[i],callback);}}},_callbackForResourceCookiePairs:function(requests,cookie,callback)
-{if(!requests)
-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",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)
-{var result=0;for(var i=0;i<cookieArray.length;++i)
-result=Math.max(cookieArray[i].size(),result);return result;},processCookies:function(allCookies,requests,result)
-{function maxSizeSorter(a,b)
-{return b.maxCookieSize-a.maxCookieSize;}
-function avgSizeSorter(a,b)
-{return b.avgCookieSize-a.avgCookieSize;}
-var cookiesPerResourceDomain={};function collectorCallback(request,cookie)
-{var cookies=cookiesPerResourceDomain[request.parsedURL.host];if(!cookies){cookies=[];cookiesPerResourceDomain[request.parsedURL.host]=cookies;}
-cookies.push(cookie);}
-if(!allCookies.length)
-return;var sortedCookieSizes=[];var domainToResourcesMap=WebInspector.AuditRules.getDomainToResourcesMap(requests,null,true);var matchingResourceData={};this.mapResourceCookies(domainToResourcesMap,allCookies,collectorCallback.bind(this));for(var requestDomain in cookiesPerResourceDomain){var cookies=cookiesPerResourceDomain[requestDomain];sortedCookieSizes.push({domain:requestDomain,avgCookieSize:this._average(cookies),maxCookieSize:this._max(cookies)});}
-var avgAllCookiesSize=this._average(allCookies);var hugeCookieDomains=[];sortedCookieSizes.sort(maxSizeSorter);for(var i=0,len=sortedCookieSizes.length;i<len;++i){var maxCookieSize=sortedCookieSizes[i].maxCookieSize;if(maxCookieSize>this._maxBytesThreshold)
-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(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",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(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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/CodeMirrorTextEditor.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/CodeMirrorTextEditor.js
deleted file mode 100644 (file)
index 85eb6ae..0000000
+++ /dev/null
@@ -1,1454 +0,0 @@
-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){}
-if(hasFocus||(options.autofocus&&!mobile))setTimeout(bind(onFocus,this),20);else onBlur(this);operation(this,function(){for(var opt in optionHandlers)
-if(optionHandlers.propertyIsEnumerable(opt))
-optionHandlers[opt](this,options[opt],Init);for(var i=0;i<initHooks.length;++i)initHooks[i](this);})();}
-function makeDisplay(place,docStart){var d={};var input=d.input=elt("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none; font-size: 4px;");if(webkit)input.style.width="1000px";else input.setAttribute("wrap","off");if(ios)input.style.border="1px solid black";input.setAttribute("autocorrect","off");input.setAttribute("autocapitalize","off");input.setAttribute("spellcheck","false");d.inputDiv=elt("div",[input],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");d.scrollbarH=elt("div",[elt("div",null,null,"height: 1px")],"CodeMirror-hscrollbar");d.scrollbarV=elt("div",[elt("div",null,null,"width: 1px")],"CodeMirror-vscrollbar");d.scrollbarFiller=elt("div",null,"CodeMirror-scrollbar-filler");d.gutterFiller=elt("div",null,"CodeMirror-gutter-filler");d.lineDiv=elt("div",null,"CodeMirror-code");d.selectionDiv=elt("div",null,null,"position: relative; z-index: 1");d.cursor=elt("div","\u00a0","CodeMirror-cursor");d.otherCursor=elt("div","\u00a0","CodeMirror-cursor CodeMirror-secondarycursor");d.measure=elt("div",null,"CodeMirror-measure");d.lineSpace=elt("div",[d.measure,d.selectionDiv,d.lineDiv,d.cursor,d.otherCursor],null,"position: relative; outline: none");d.mover=elt("div",[elt("div",[d.lineSpace],"CodeMirror-lines")],null,"position: relative");d.sizer=elt("div",[d.mover],"CodeMirror-sizer");d.heightForcer=elt("div",null,null,"position: absolute; height: "+scrollerCutOff+"px; width: 1px;");d.gutters=elt("div",null,"CodeMirror-gutters");d.lineGutter=null;d.scroller=elt("div",[d.sizer,d.heightForcer,d.gutters],"CodeMirror-scroll");d.scroller.setAttribute("tabIndex","-1");d.wrapper=elt("div",[d.inputDiv,d.scrollbarH,d.scrollbarV,d.scrollbarFiller,d.gutterFiller,d.scroller],"CodeMirror");if(ie_lt8){d.gutters.style.zIndex=-1;d.scroller.style.paddingRight=0;}
-if(place.appendChild)place.appendChild(d.wrapper);else place(d.wrapper);if(ios)input.style.width="0px";if(!webkit)d.scroller.draggable=true;if(khtml){d.inputDiv.style.height="1px";d.inputDiv.style.position="absolute";}
-else if(ie_lt8)d.scrollbarH.style.minWidth=d.scrollbarV.style.minWidth="18px";d.viewOffset=d.lastSizeC=0;d.showingFrom=d.showingTo=docStart;d.lineNumWidth=d.lineNumInnerWidth=d.lineNumChars=null;d.prevInput="";d.alignWidgets=false;d.pollingFast=false;d.poll=new Delayed();d.cachedCharWidth=d.cachedTextHeight=null;d.measureLineCache=[];d.measureLineCachePos=0;d.inaccurateSelection=false;d.maxLine=null;d.maxLineLength=0;d.maxLineChanged=false;d.wheelDX=d.wheelDY=d.wheelStartX=d.wheelStartY=null;return d;}
-function loadMode(cm){cm.doc.mode=CodeMirror.getMode(cm.options,cm.doc.modeOption);cm.doc.iter(function(line){if(line.stateAfter)line.stateAfter=null;if(line.styles)line.styles=null;});cm.doc.frontier=cm.doc.first;startWorker(cm,100);cm.state.modeGen++;if(cm.curOp)regChange(cm);}
-function wrappingChanged(cm){if(cm.options.lineWrapping){cm.display.wrapper.className+=" CodeMirror-wrap";cm.display.sizer.style.minWidth="";}else{cm.display.wrapper.className=cm.display.wrapper.className.replace(" CodeMirror-wrap","");computeMaxLength(cm);}
-estimateLineHeights(cm);regChange(cm);clearCaches(cm);setTimeout(function(){updateScrollbars(cm);},100);}
-function estimateHeight(cm){var th=textHeight(cm.display),wrapping=cm.options.lineWrapping;var perLine=wrapping&&Math.max(5,cm.display.scroller.clientWidth/charWidth(cm.display)-3);return function(line){if(lineIsHidden(cm.doc,line))
-return 0;else if(wrapping)
-return(Math.ceil(line.text.length/perLine)||1)*th;else
-return th;};}
-function estimateLineHeights(cm){var doc=cm.doc,est=estimateHeight(cm);doc.iter(function(line){var estHeight=est(line);if(estHeight!=line.height)updateLineHeight(line,estHeight);});}
-function keyMapChanged(cm){var map=keyMap[cm.options.keyMap],style=map.style;cm.display.wrapper.className=cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g,"")+
-(style?" cm-keymap-"+style:"");cm.state.disableInput=map.disableInput;}
-function themeChanged(cm){cm.display.wrapper.className=cm.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+
-cm.options.theme.replace(/(^|\s)\s*/g," cm-s-");clearCaches(cm);}
-function guttersChanged(cm){updateGutters(cm);regChange(cm);setTimeout(function(){alignHorizontally(cm);},20);}
-function updateGutters(cm){var gutters=cm.display.gutters,specs=cm.options.gutters;removeChildren(gutters);for(var i=0;i<specs.length;++i){var gutterClass=specs[i];var gElt=gutters.appendChild(elt("div",null,"CodeMirror-gutter "+gutterClass));if(gutterClass=="CodeMirror-linenumbers"){cm.display.lineGutter=gElt;gElt.style.width=(cm.display.lineNumWidth||1)+"px";}}
-gutters.style.display=i?"":"none";}
-function lineLength(doc,line){if(line.height==0)return 0;var len=line.text.length,merged,cur=line;while(merged=collapsedSpanAtStart(cur)){var found=merged.find();cur=getLine(doc,found.from.line);len+=found.from.ch-found.to.ch;}
-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(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";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;}
-if(cm.options.fixedGutter)
-display.gutters.style.left=(comp+gutterW)+"px";}
-function maybeUpdateLineNumberWidth(cm){if(!cm.options.lineNumbers)return false;var doc=cm.doc,last=lineNumberFor(cm.options,doc.first+doc.size-1),display=cm.display;if(last.length!=display.lineNumChars){var test=display.measure.appendChild(elt("div",[elt("div",last)],"CodeMirror-linenumber CodeMirror-gutter-elt"));var innerW=test.firstChild.offsetWidth,padding=test.offsetWidth-innerW;display.lineGutter.style.width="";display.lineNumInnerWidth=Math.max(innerW,display.lineGutter.offsetWidth-padding);display.lineNumWidth=display.lineNumInnerWidth+padding;display.lineNumChars=display.lineNumInnerWidth?last.length:-1;display.lineGutter.style.width=display.lineNumWidth+"px";return true;}
-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 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;}
-if(updated){signalLater(cm,"update",cm);if(cm.display.showingFrom!=oldFrom||cm.display.showingTo!=oldTo)
-signalLater(cm,"viewportChange",cm,cm.display.showingFrom,cm.display.showingTo);}
-return updated;}
-function updateDisplayInner(cm,changes,visible,forced){var display=cm.display,doc=cm.doc;if(!display.wrapper.clientWidth){display.showingFrom=display.showingTo=doc.first;display.viewOffset=0;return;}
-if(!forced&&changes.length==0&&visible.from>display.showingFrom&&visible.to<display.showingTo)
-return;if(maybeUpdateLineNumberWidth(cm))
-changes=[{from:doc.first,to:doc.first+doc.size}];var gutterW=display.sizer.style.marginLeft=display.gutters.offsetWidth+"px";display.scrollbarH.style.left=cm.options.fixedGutter?gutterW:"0";var positionsChangedFrom=Infinity;if(cm.options.lineNumbers)
-for(var i=0;i<changes.length;++i)
-if(changes[i].diff&&changes[i].from<positionsChangedFrom){positionsChangedFrom=changes[i].from;}
-var end=doc.first+doc.size;var from=Math.max(visible.from-cm.options.viewportMargin,doc.first);var to=Math.min(end,visible.to+cm.options.viewportMargin);if(display.showingFrom<from&&from-display.showingFrom<20)from=Math.max(doc.first,display.showingFrom);if(display.showingTo>to&&display.showingTo-to<20)to=Math.min(end,display.showingTo);if(sawCollapsedSpans){from=lineNo(visualLine(doc,getLine(doc,from)));while(to<end&&lineIsHidden(doc,getLine(doc,to)))++to;}
-var intact=[{from:Math.max(display.showingFrom,doc.first),to:Math.min(display.showingTo,end)}];if(intact[0].from>=intact[0].to)intact=[];else intact=computeIntact(intact,changes);if(sawCollapsedSpans)
-for(var i=0;i<intact.length;++i){var range=intact[i],merged;while(merged=collapsedSpanAtEnd(getLine(doc,range.to-1))){var newTo=merged.find().from.line;if(newTo>range.from)range.to=newTo;else{intact.splice(i--,1);break;}}}
-var intactLines=0;for(var i=0;i<intact.length;++i){var range=intact[i];if(range.from<from)range.from=from;if(range.to>to)range.to=to;if(range.from>=range.to)intact.splice(i--,1);else intactLines+=range.to-range.from;}
-if(!forced&&intactLines==to-from&&from==display.showingFrom&&to==display.showingTo){updateViewOffset(cm);return;}
-intact.sort(function(a,b){return a.from-b.from;});try{var focused=document.activeElement;}catch(e){}
-if(intactLines<(to-from)*.7)display.lineDiv.style.display="none";patchDisplay(cm,from,to,intact,positionsChangedFrom);display.lineDiv.style.display="";if(focused&&document.activeElement!=focused&&focused.offsetHeight)focused.focus();var different=from!=display.showingFrom||to!=display.showingTo||display.lastSizeC!=display.wrapper.clientHeight;if(different){display.lastSizeC=display.wrapper.clientHeight;startWorker(cm,400);}
-display.showingFrom=from;display.showingTo=to;updateHeightsInViewport(cm);updateViewOffset(cm);return true;}
-function updateHeightsInViewport(cm){var display=cm.display;var prevBottom=display.lineDiv.offsetTop;for(var node=display.lineDiv.firstChild,height;node;node=node.nextSibling)if(node.lineObj){if(ie_lt8){var bot=node.offsetTop+node.offsetHeight;height=bot-prevBottom;prevBottom=bot;}else{var box=getRect(node);height=box.bottom-box.top;}
-var diff=node.lineObj.height-height;if(height<2)height=textHeight(display);if(diff>.001||diff<-.001){updateLineHeight(node.lineObj,height);var widgets=node.lineObj.widgets;if(widgets)for(var i=0;i<widgets.length;++i)
-widgets[i].height=widgets[i].node.offsetHeight;}}}
-function updateViewOffset(cm){var off=cm.display.viewOffset=heightAtLine(cm,getLine(cm.doc,cm.display.showingFrom));cm.display.mover.style.top=off+"px";}
-function computeIntact(intact,changes){for(var i=0,l=changes.length||0;i<l;++i){var change=changes[i],intact2=[],diff=change.diff||0;for(var j=0,l2=intact.length;j<l2;++j){var range=intact[j];if(change.to<=range.from&&change.diff){intact2.push({from:range.from+diff,to:range.to+diff});}else if(change.to<=range.from||change.from>=range.to){intact2.push(range);}else{if(change.from>range.from)
-intact2.push({from:range.from,to:change.from});if(change.to<range.to)
-intact2.push({from:change.to+diff,to:range.to+diff});}}
-intact=intact2;}
-return intact;}
-function getDimensions(cm){var d=cm.display,left={},width={};for(var n=d.gutters.firstChild,i=0;n;n=n.nextSibling,++i){left[cm.options.gutters[i]]=n.offsetLeft;width[cm.options.gutters[i]]=n.offsetWidth;}
-return{fixedPos:compensateForHScroll(d),gutterTotalWidth:d.gutters.offsetWidth,gutterLeft:left,gutterWidth:width,wrapperWidth:d.wrapper.clientWidth};}
-function patchDisplay(cm,from,to,intact,updateNumbersFrom){var dims=getDimensions(cm);var display=cm.display,lineNumbers=cm.options.lineNumbers;if(!intact.length&&(!webkit||!cm.display.currentWheelTarget))
-removeChildren(display.lineDiv);var container=display.lineDiv,cur=container.firstChild;function rm(node){var next=node.nextSibling;if(webkit&&mac&&cm.display.currentWheelTarget==node){node.style.display="none";node.lineObj=null;}else{node.parentNode.removeChild(node);}
-return next;}
-var nextIntact=intact.shift(),lineN=from;cm.doc.iter(from,to,function(line){if(nextIntact&&nextIntact.to==lineN)nextIntact=intact.shift();if(lineIsHidden(cm.doc,line)){if(line.height!=0)updateLineHeight(line,0);if(line.widgets&&cur&&cur.previousSibling)for(var i=0;i<line.widgets.length;++i){var w=line.widgets[i];if(w.showIfHidden){var prev=cur.previousSibling;if(/pre/i.test(prev.nodeName)){var wrap=elt("div",null,null,"position: relative");prev.parentNode.replaceChild(wrap,prev);wrap.appendChild(prev);prev=wrap;}
-var wnode=prev.appendChild(elt("div",[w.node],"CodeMirror-linewidget"));if(!w.handleMouseEvents)wnode.ignoreEvents=true;positionLineWidget(w,wnode,prev,dims);}}}else if(nextIntact&&nextIntact.from<=lineN&&nextIntact.to>lineN){while(cur.lineObj!=line)cur=rm(cur);if(lineNumbers&&updateNumbersFrom<=lineN&&cur.lineNumber)
-setTextContent(cur.lineNumber,lineNumberFor(cm.options,lineN));cur=cur.nextSibling;}else{if(line.widgets)for(var j=0,search=cur,reuse;search&&j<20;++j,search=search.nextSibling)
-if(search.lineObj==line&&/div/i.test(search.nodeName)){reuse=search;break;}
-var lineNode=buildLineElement(cm,line,lineN,dims,reuse);if(lineNode!=reuse){container.insertBefore(lineNode,cur);}else{while(cur!=reuse)cur=rm(cur);cur=cur.nextSibling;}
-lineNode.lineObj=line;}
-++lineN;});while(cur)cur=rm(cur);}
-function buildLineElement(cm,line,lineNo,dims,reuse){var built=buildLineContent(cm,line),lineElement=built.pre;var markers=line.gutterMarkers,display=cm.display,wrap;var bgClass=built.bgClass?built.bgClass+" "+(line.bgClass||""):line.bgClass;if(!cm.options.lineNumbers&&!markers&&!bgClass&&!line.wrapClass&&!line.widgets)
-return lineElement;if(reuse){reuse.alignable=null;var isOk=true,widgetsSeen=0,insertBefore=null;for(var n=reuse.firstChild,next;n;n=next){next=n.nextSibling;if(!/\bCodeMirror-linewidget\b/.test(n.className)){reuse.removeChild(n);}else{for(var i=0;i<line.widgets.length;++i){var widget=line.widgets[i];if(widget.node==n.firstChild){if(!widget.above&&!insertBefore)insertBefore=n;positionLineWidget(widget,n,reuse,dims);++widgetsSeen;break;}}
-if(i==line.widgets.length){isOk=false;break;}}}
-reuse.insertBefore(lineElement,insertBefore);if(isOk&&widgetsSeen==line.widgets.length){wrap=reuse;reuse.className=line.wrapClass||"";}}
-if(!wrap){wrap=elt("div",null,line.wrapClass,"position: relative");wrap.appendChild(lineElement);}
-if(bgClass)
-wrap.insertBefore(elt("div",null,bgClass+" CodeMirror-linebackground"),wrap.firstChild);if(cm.options.lineNumbers||markers){var gutterWrap=wrap.insertBefore(elt("div",null,null,"position: absolute; left: "+
-(cm.options.fixedGutter?dims.fixedPos:-dims.gutterTotalWidth)+"px"),wrap.firstChild);if(cm.options.fixedGutter)(wrap.alignable||(wrap.alignable=[])).push(gutterWrap);if(cm.options.lineNumbers&&(!markers||!markers["CodeMirror-linenumbers"]))
-wrap.lineNumber=gutterWrap.appendChild(elt("div",lineNumberFor(cm.options,lineNo),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+dims.gutterLeft["CodeMirror-linenumbers"]+"px; width: "
-+display.lineNumInnerWidth+"px"));if(markers)
-for(var k=0;k<cm.options.gutters.length;++k){var id=cm.options.gutters[k],found=markers.hasOwnProperty(id)&&markers[id];if(found)
-gutterWrap.appendChild(elt("div",[found],"CodeMirror-gutter-elt","left: "+
-dims.gutterLeft[id]+"px; width: "+dims.gutterWidth[id]+"px"));}}
-if(ie_lt8)wrap.style.zIndex=2;if(line.widgets&&wrap!=reuse)for(var i=0,ws=line.widgets;i<ws.length;++i){var widget=ws[i],node=elt("div",[widget.node],"CodeMirror-linewidget");if(!widget.handleMouseEvents)node.ignoreEvents=true;positionLineWidget(widget,node,wrap,dims);if(widget.above)
-wrap.insertBefore(node,cm.options.lineNumbers&&line.height!=0?gutterWrap:lineElement);else
-wrap.appendChild(node);signalLater(widget,"redraw");}
-return wrap;}
-function positionLineWidget(widget,node,wrap,dims){if(widget.noHScroll){(wrap.alignable||(wrap.alignable=[])).push(node);var width=dims.wrapperWidth;node.style.left=dims.fixedPos+"px";if(!widget.coverGutter){width-=dims.gutterTotalWidth;node.style.paddingLeft=dims.gutterTotalWidth+"px";}
-node.style.width=width+"px";}
-if(widget.coverGutter){node.style.zIndex=5;node.style.position="relative";if(!widget.noHScroll)node.style.marginLeft=-dims.gutterTotalWidth+"px";}}
-function updateSelection(cm){var display=cm.display;var collapsed=posEq(cm.doc.sel.from,cm.doc.sel.to);if(collapsed||cm.options.showCursorWhenSelecting)
-updateSelectionCursor(cm);else
-display.cursor.style.display=display.otherCursor.style.display="none";if(!collapsed)
-updateSelectionRange(cm);else
-display.selectionDiv.style.display="none";if(cm.options.moveInputWithCursor){var headPos=cursorCoords(cm,cm.doc.sel.head,"div");var wrapOff=getRect(display.wrapper),lineOff=getRect(display.lineDiv);display.inputDiv.style.top=Math.max(0,Math.min(display.wrapper.clientHeight-10,headPos.top+lineOff.top-wrapOff.top))+"px";display.inputDiv.style.left=Math.max(0,Math.min(display.wrapper.clientWidth-10,headPos.left+lineOff.left-wrapOff.left))+"px";}}
-function updateSelectionCursor(cm){var display=cm.display,pos=cursorCoords(cm,cm.doc.sel.head,"div");display.cursor.style.left=pos.left+"px";display.cursor.style.top=pos.top+"px";display.cursor.style.height=Math.max(0,pos.bottom-pos.top)*cm.options.cursorHeight+"px";display.cursor.style.display="";if(pos.other){display.otherCursor.style.display="";display.otherCursor.style.left=pos.other.left+"px";display.otherCursor.style.top=pos.other.top+"px";display.otherCursor.style.height=(pos.other.bottom-pos.other.top)*.85+"px";}else{display.otherCursor.style.display="none";}}
-function updateSelectionRange(cm){var display=cm.display,doc=cm.doc,sel=cm.doc.sel;var fragment=document.createDocumentFragment();var clientWidth=display.lineSpace.offsetWidth,pl=paddingLeft(cm.display);function add(left,top,width,bottom){if(top<0)top=0;fragment.appendChild(elt("div",null,"CodeMirror-selected","position: absolute; left: "+left+"px; top: "+top+"px; width: "+(width==null?clientWidth-left:width)+"px; height: "+(bottom-top)+"px"));}
-function drawForLine(line,fromArg,toArg){var lineObj=getLine(doc,line);var lineLen=lineObj.text.length;var start,end;function coords(ch,bias){return charCoords(cm,Pos(line,ch),"div",lineObj,bias);}
-iterateBidiSections(getOrder(lineObj),fromArg||0,toArg==null?lineLen:toArg,function(from,to,dir){var leftPos=coords(from,"left"),rightPos,left,right;if(from==to){rightPos=leftPos;left=right=leftPos.left;}else{rightPos=coords(to-1,"right");if(dir=="rtl"){var tmp=leftPos;leftPos=rightPos;rightPos=tmp;}
-left=leftPos.left;right=rightPos.right;}
-if(fromArg==null&&from==0)left=pl;if(rightPos.top-leftPos.top>3){add(left,leftPos.top,null,leftPos.bottom);left=pl;if(leftPos.bottom<rightPos.top)add(left,leftPos.bottom,null,rightPos.top);}
-if(toArg==null&&to==lineLen)right=clientWidth;if(!start||leftPos.top<start.top||leftPos.top==start.top&&leftPos.left<start.left)
-start=leftPos;if(!end||rightPos.bottom>end.bottom||rightPos.bottom==end.bottom&&rightPos.right>end.right)
-end=rightPos;if(left<pl+1)left=pl;add(left,rightPos.top,right-left,rightPos.bottom);});return{start:start,end:end};}
-if(sel.from.line==sel.to.line){drawForLine(sel.from.line,sel.from.ch,sel.to.ch);}else{var fromLine=getLine(doc,sel.from.line),toLine=getLine(doc,sel.to.line);var singleVLine=visualLine(doc,fromLine)==visualLine(doc,toLine);var leftEnd=drawForLine(sel.from.line,sel.from.ch,singleVLine?fromLine.text.length:null).end;var rightStart=drawForLine(sel.to.line,singleVLine?0:null,sel.to.ch).start;if(singleVLine){if(leftEnd.top<rightStart.top-2){add(leftEnd.right,leftEnd.top,null,leftEnd.bottom);add(pl,rightStart.top,rightStart.left,rightStart.bottom);}else{add(leftEnd.right,leftEnd.top,rightStart.left-leftEnd.right,leftEnd.bottom);}}
-if(leftEnd.bottom<rightStart.top)
-add(pl,leftEnd.bottom,null,rightStart.top);}
-removeChildrenAndAdd(display.selectionDiv,fragment);display.selectionDiv.style.display="";}
-function restartBlink(cm){if(!cm.state.focused)return;var display=cm.display;clearInterval(display.blinker);var on=true;display.cursor.style.visibility=display.otherCursor.style.visibility="";if(cm.options.cursorBlinkRate>0)
-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,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;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.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.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.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);}
-pre.appendChild(fragment);}
-removeChildrenAndAdd(display.measure,pre);var outer=getRect(display.lineDiv);var vranges=[],data=emptyArray(line.text.length),maxBot=pre.offsetHeight;if(ie_lt9&&display.measure.first!=pre)
-removeChildrenAndAdd(display.measure,pre);function measureRect(rect){var top=rect.top-outer.top,bot=rect.bottom-outer.top;if(bot>maxBot)bot=maxBot;if(top<0)top=0;for(var i=vranges.length-2;i>=0;i-=2){var rtop=vranges[i],rbot=vranges[i+1];if(rtop>bot||rbot<top)continue;if(rtop<=top&&rbot>=bot||top<=rtop&&bot>=rbot||Math.min(bot,rbot)-Math.max(top,rtop)>=(bot-top)>>1){vranges[i]=Math.min(top,rtop);vranges[i+1]=Math.max(bot,rbot);break;}}
-if(i<0){i=vranges.length;vranges.push(top,bot);}
-return{left:rect.left-outer.left,right:rect.right-outer.left,top:i,bottom:null};}
-function finishRect(rect){rect.bottom=vranges[rect.top+1];rect.top=vranges[rect.top];}
-for(var i=0,cur;i<measure.length;++i)if(cur=measure[i]){var node=cur,rect=null;if(/\bCodeMirror-widget\b/.test(cur.className)&&cur.getClientRects){if(cur.firstChild.nodeType==1)node=cur.firstChild;var rects=node.getClientRects();if(rects.length>1){rect=data[i]=measureRect(rects[0]);rect.rightSide=measureRect(rects[rects.length-1]);}}
-if(!rect)rect=data[i]=measureRect(getRect(node));if(cur.measureRight)rect.right=getRect(cur.measureRight).left;if(cur.leftSide)rect.leftSide=measureRect(getRect(cur.leftSide));}
-removeChildren(cm.display.measure);for(var i=0,cur;i<data.length;++i)if(cur=data[i]){finishRect(cur);if(cur.leftSide)finishRect(cur.leftSide);if(cur.rightSide)finishRect(cur.rightSide);}
-return data;}
-function crudelyMeasureLine(cm,line){var copy=new Line(line.text.slice(0,100),null);if(line.textClass)copy.textClass=line.textClass;var measure=measureLineInner(cm,copy);var left=measureChar(cm,copy,0,measure,"left");var right=measureChar(cm,copy,99,measure,"right");return{crude:true,top:left.top,left:left.left,bottom:left.bottom,width:(right.right-left.left)/100};}
-function measureLineWidth(cm,line){var hasBadSpan=false;if(line.markedSpans)for(var i=0;i<line.markedSpans;++i){var sp=line.markedSpans[i];if(sp.collapsed&&(sp.to==null||sp.to==line.text.length))hasBadSpan=true;}
-var cached=!hasBadSpan&&findCachedMeasurement(cm,line);if(cached||line.text.length>=cm.options.crudeMeasuringFrom)
-return measureChar(cm,line,line.text.length,cached&&cached.measure,"right").right;var pre=buildLineContent(cm,line,null,true).pre;var end=pre.appendChild(zeroWidthElement(cm.display.measure));removeChildrenAndAdd(cm.display.measure,pre);return getRect(end).right-getRect(cm.display.lineDiv).left;}
-function clearCaches(cm){cm.display.measureLineCache.length=cm.display.measureLineCachePos=0;cm.display.cachedCharWidth=cm.display.cachedTextHeight=null;if(!cm.options.lineWrapping)cm.display.maxLineChanged=true;cm.display.lineNumChars=null;}
-function pageScrollX(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft;}
-function pageScrollY(){return window.pageYOffset||(document.documentElement||document.body).scrollTop;}
-function intoCoordSystem(cm,lineObj,rect,context){if(lineObj.widgets)for(var i=0;i<lineObj.widgets.length;++i)if(lineObj.widgets[i].above){var size=widgetHeight(lineObj.widgets[i]);rect.top+=size;rect.bottom+=size;}
-if(context=="line")return rect;if(!context)context="local";var yOff=heightAtLine(cm,lineObj);if(context=="local")yOff+=paddingTop(cm.display);else yOff-=cm.display.viewOffset;if(context=="page"||context=="window"){var lOff=getRect(cm.display.lineSpace);yOff+=lOff.top+(context=="window"?0:pageScrollY());var xOff=lOff.left+(context=="window"?0:pageScrollX());rect.left+=xOff;rect.right+=xOff;}
-rect.top+=yOff;rect.bottom+=yOff;return rect;}
-function fromCoordSystem(cm,coords,context){if(context=="div")return coords;var left=coords.left,top=coords.top;if(context=="page"){left-=pageScrollX();top-=pageScrollY();}else if(context=="local"||!context){var localBox=getRect(cm.display.sizer);left+=localBox.left;top+=localBox.top;}
-var lineSpaceBox=getRect(cm.display.lineSpace);return{left:left-lineSpaceBox.left,top:top-lineSpaceBox.top};}
-function charCoords(cm,pos,context,lineObj,bias){if(!lineObj)lineObj=getLine(cm.doc,pos.line);return intoCoordSystem(cm,lineObj,measureChar(cm,lineObj,pos.ch,null,bias),context);}
-function cursorCoords(cm,pos,context,lineObj,measurement){lineObj=lineObj||getLine(cm.doc,pos.line);if(!measurement)measurement=measureLine(cm,lineObj);function get(ch,right){var m=measureChar(cm,lineObj,ch,measurement,right?"right":"left");if(right)m.left=m.right;else m.right=m.left;return intoCoordSystem(cm,lineObj,m,context);}
-function getBidi(ch,partPos){var part=order[partPos],right=part.level%2;if(ch==bidiLeft(part)&&partPos&&part.level<order[partPos-1].level){part=order[--partPos];ch=bidiRight(part)-(part.level%2?0:1);right=true;}else if(ch==bidiRight(part)&&partPos<order.length-1&&part.level<order[partPos+1].level){part=order[++partPos];ch=bidiLeft(part)-part.level%2;right=false;}
-if(right&&ch==part.to&&ch>part.from)return get(ch-1);return get(ch,right);}
-var order=getOrder(lineObj),ch=pos.ch;if(!order)return get(ch);var partPos=getBidiPartAt(order,ch);var val=getBidi(ch,partPos);if(bidiOther!=null)val.other=getBidi(ch,bidiOther);return val;}
-function PosWithInfo(line,ch,outside,xRel){var pos=new Pos(line,ch);pos.xRel=xRel;if(outside)pos.outside=true;return pos;}
-function coordsChar(cm,x,y){var doc=cm.doc;y+=cm.display.viewOffset;if(y<0)return PosWithInfo(doc.first,0,true,-1);var lineNo=lineAtHeight(doc,y),last=doc.first+doc.size-1;if(lineNo>last)
-return PosWithInfo(doc.first+doc.size-1,getLine(doc,last).text.length,true,1);if(x<0)x=0;for(;;){var lineObj=getLine(doc,lineNo);var found=coordsCharInner(cm,lineObj,lineNo,x,y);var merged=collapsedSpanAtEnd(lineObj);var mergedPos=merged&&merged.find();if(merged&&(found.ch>mergedPos.from.ch||found.ch==mergedPos.from.ch&&found.xRel>0))
-lineNo=mergedPos.to.line;else
-return found;}}
-function coordsCharInner(cm,lineObj,lineNo,x,y){var innerOff=y-heightAtLine(cm,lineObj);var wrongLine=false,adjust=2*cm.display.wrapper.clientWidth;var measurement=measureLine(cm,lineObj);function getX(ch){var sp=cursorCoords(cm,Pos(lineNo,ch),"line",lineObj,measurement);wrongLine=true;if(innerOff>sp.bottom)return sp.left-adjust;else if(innerOff<sp.top)return sp.left+adjust;else wrongLine=false;return sp.left;}
-var bidi=getOrder(lineObj),dist=lineObj.text.length;var from=lineLeft(lineObj),to=lineRight(lineObj);var fromX=getX(from),fromOutside=wrongLine,toX=getX(to),toOutside=wrongLine;if(x>toX)return PosWithInfo(lineNo,to,toOutside,1);for(;;){if(bidi?to==from||to==moveVisually(lineObj,from,1):to-from<=1){var ch=x<fromX||x-fromX<=toX-x?from:to;var xDiff=x-(ch==from?fromX:toX);while(isExtendingChar.test(lineObj.text.charAt(ch)))++ch;var pos=PosWithInfo(lineNo,ch,ch==from?fromOutside:toOutside,xDiff<0?-1:xDiff?1:0);return pos;}
-var step=Math.ceil(dist/2),middle=from+step;if(bidi){middle=from;for(var i=0;i<step;++i)middle=moveVisually(lineObj,middle,1);}
-var middleX=getX(middle);if(middleX>x){to=middle;toX=middleX;if(toOutside=wrongLine)toX+=1000;dist=step;}
-else{from=middle;fromX=middleX;fromOutside=wrongLine;dist-=step;}}}
-var measureText;function textHeight(display){if(display.cachedTextHeight!=null)return display.cachedTextHeight;if(measureText==null){measureText=elt("pre");for(var i=0;i<49;++i){measureText.appendChild(document.createTextNode("x"));measureText.appendChild(elt("br"));}
-measureText.appendChild(document.createTextNode("x"));}
-removeChildrenAndAdd(display.measure,measureText);var height=measureText.offsetHeight/50;if(height>3)display.cachedTextHeight=height;removeChildren(display.measure);return height||1;}
-function charWidth(display){if(display.cachedCharWidth!=null)return display.cachedCharWidth;var anchor=elt("span","x");var pre=elt("pre",[anchor]);removeChildrenAndAdd(display.measure,pre);var width=anchor.offsetWidth;if(width>2)display.cachedCharWidth=width;return width||10;}
-var nextOpId=0;function startOperation(cm){cm.curOp={changes:[],forceUpdate:false,updateInput:null,userSelChange:null,textChanged:null,selectionChanged:false,cursorActivity:false,updateMaxLine:false,updateScrollPos:false,id:++nextOpId};if(!delayedCallbackDepth++)delayedCallbacks=[];}
-function endOperation(cm){var op=cm.curOp,doc=cm.doc,display=cm.display;cm.curOp=null;if(op.updateMaxLine)computeMaxLength(cm);if(display.maxLineChanged&&!cm.options.lineWrapping&&display.maxLine){var width=measureLineWidth(cm,display.maxLine);display.sizer.style.minWidth=Math.max(0,width+3+scrollerCutOff)+"px";display.maxLineChanged=false;var maxScrollLeft=Math.max(0,display.sizer.offsetLeft+display.sizer.offsetWidth-display.scroller.clientWidth);if(maxScrollLeft<doc.scrollLeft&&!op.updateScrollPos)
-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){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)
-if(unhidden[i].lines.length)signal(unhidden[i],"unhide");var delayed;if(!--delayedCallbackDepth){delayed=delayedCallbacks;delayedCallbacks=null;}
-if(op.textChanged)
-signal(cm,"change",cm,op.textChanged);if(op.cursorActivity)signal(cm,"cursorActivity",cm);if(delayed)for(var i=0;i<delayed.length;++i)delayed[i]();}
-function operation(cm1,f){return function(){var cm=cm1||this,withOp=!cm.curOp;if(withOp)startOperation(cm);try{var result=f.apply(cm,arguments);}
-finally{if(withOp)endOperation(cm);}
-return result;};}
-function docOperation(f){return function(){var withOp=this.cm&&!this.cm.curOp,result;if(withOp)startOperation(this.cm);try{result=f.apply(this,arguments);}
-finally{if(withOp)endOperation(this.cm);}
-return result;};}
-function runInOp(cm,f){var withOp=!cm.curOp,result;if(withOp)startOperation(cm);try{result=f();}
-finally{if(withOp)endOperation(cm);}
-return result;}
-function regChange(cm,from,to,lendiff){if(from==null)from=cm.doc.first;if(to==null)to=cm.doc.first+cm.doc.size;cm.curOp.changes.push({from:from,to:to,diff:lendiff});}
-function slowPoll(cm){if(cm.display.pollingFast)return;cm.display.poll.set(cm.options.pollInterval,function(){readInput(cm);if(cm.state.focused)slowPoll(cm);});}
-function fastPoll(cm){var missed=false;cm.display.pollingFast=true;function p(){var changed=readInput(cm);if(!changed&&!missed){missed=true;cm.display.poll.set(60,p);}
-else{cm.display.pollingFast=false;slowPoll(cm);}}
-cm.display.poll.set(20,p);}
-function readInput(cm){var input=cm.display.input,prevInput=cm.display.prevInput,doc=cm.doc,sel=doc.sel;if(!cm.state.focused||hasSelection(input)||isReadOnly(cm)||cm.state.disableInput)return false;if(cm.state.pasteIncoming&&cm.state.fakedLastChar){input.value=input.value.substring(0,input.value.length-1);cm.state.fakedLastChar=false;}
-var text=input.value;if(text==prevInput&&posEq(sel.from,sel.to))return false;if(ie&&!ie_lt9&&cm.display.inputHasSelection===text){resetInput(cm,true);return false;}
-var withOp=!cm.curOp;if(withOp)startOperation(cm);sel.shift=false;var same=0,l=Math.min(prevInput.length,text.length);while(same<l&&prevInput.charCodeAt(same)==text.charCodeAt(same))++same;var from=sel.from,to=sel.to;if(same<prevInput.length)
-from=Pos(from.line,from.ch-(prevInput.length-same));else if(cm.state.overwrite&&posEq(from,to)&&!cm.state.pasteIncoming)
-to=Pos(to.line,Math.min(getLine(doc,to.line).text.length,to.ch+(text.length-same)));var updateInput=cm.curOp.updateInput;var changeEvent={from:from,to:to,text:splitLines(text.slice(same)),origin:cm.state.pasteIncoming?"paste":"+input"};makeChange(cm.doc,changeEvent,"end");cm.curOp.updateInput=updateInput;signalLater(cm,"inputRead",cm,changeEvent);if(text.length>1000||text.indexOf("\n")>-1)input.value=cm.display.prevInput="";else cm.display.prevInput=text;if(withOp)endOperation(cm);cm.state.pasteIncoming=false;return true;}
-function resetInput(cm,user){var minimal,selected,doc=cm.doc;if(!posEq(doc.sel.from,doc.sel.to)){cm.display.prevInput="";minimal=hasCopyEvent&&(doc.sel.to.line-doc.sel.from.line>100||(selected=cm.getSelection()).length>1000);var content=minimal?"-":selected||cm.getSelection();cm.display.input.value=content;if(cm.state.focused)selectInput(cm.display.input);if(ie&&!ie_lt9)cm.display.inputHasSelection=content;}else if(user){cm.display.prevInput=cm.display.input.value="";if(ie&&!ie_lt9)cm.display.inputHasSelection=null;}
-cm.display.inaccurateSelection=minimal;}
-function focusInput(cm){if(cm.options.readOnly!="nocursor"&&(!mobile||document.activeElement!=cm.display.input))
-cm.display.input.focus();}
-function isReadOnly(cm){return cm.options.readOnly||cm.doc.cantEdit;}
-function registerEventHandlers(cm){var d=cm.display;on(d.scroller,"mousedown",operation(cm,onMouseDown));if(ie)
-on(d.scroller,"dblclick",operation(cm,function(e){if(signalDOMEvent(cm,e))return;var pos=posFromMouse(cm,e);if(!pos||clickInGutter(cm,e)||eventInWidget(cm.display,e))return;e_preventDefault(e);var word=findWordAt(getLine(cm.doc,pos.line).text,pos);extendSelection(cm.doc,word.from,word.to);}));else
-on(d.scroller,"dblclick",function(e){signalDOMEvent(cm,e)||e_preventDefault(e);});on(d.lineSpace,"selectstart",function(e){if(!eventInWidget(d,e))e_preventDefault(e);});if(!captureMiddleClick)on(d.scroller,"contextmenu",function(e){onContextMenu(cm,e);});on(d.scroller,"scroll",function(){if(d.scroller.clientHeight){setScrollTop(cm,d.scroller.scrollTop);setScrollLeft(cm,d.scroller.scrollLeft,true);signal(cm,"scroll",cm);}});on(d.scrollbarV,"scroll",function(){if(d.scroller.clientHeight)setScrollTop(cm,d.scrollbarV.scrollTop);});on(d.scrollbarH,"scroll",function(){if(d.scroller.clientHeight)setScrollLeft(cm,d.scrollbarH.scrollLeft);});on(d.scroller,"mousewheel",function(e){onScrollWheel(cm,e);});on(d.scroller,"DOMMouseScroll",function(e){onScrollWheel(cm,e);});function reFocus(){if(cm.state.focused)setTimeout(bind(focusInput,cm),0);}
-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",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);}}
-on(d.input,"cut",prepareCopy);on(d.input,"copy",prepareCopy);if(khtml)on(d.sizer,"mouseup",function(){if(document.activeElement==d.input)d.input.blur();focusInput(cm);});}
-function eventInWidget(display,e){for(var n=e_target(e);n!=display.wrapper;n=n.parentNode){if(!n||n.ignoreEvents||n.parentNode==display.sizer&&n!=display.mover)return true;}}
-function posFromMouse(cm,e,liberal){var display=cm.display;if(!liberal){var target=e_target(e);if(target==display.scrollbarH||target==display.scrollbarH.firstChild||target==display.scrollbarV||target==display.scrollbarV.firstChild||target==display.scrollbarFiller||target==display.gutterFiller)return null;}
-var x,y,space=getRect(display.lineSpace);try{x=e.clientX;y=e.clientY;}catch(e){return null;}
-return coordsChar(cm,x-space.left,y-space.top);}
-var lastClick,lastDoubleClick;function onMouseDown(e){if(signalDOMEvent(this,e))return;var cm=this,display=cm.display,doc=cm.doc,sel=doc.sel;sel.shift=e.shiftKey;if(eventInWidget(display,e)){if(!webkit){display.scroller.draggable=false;setTimeout(function(){display.scroller.draggable=true;},100);}
-return;}
-if(clickInGutter(cm,e))return;var start=posFromMouse(cm,e);switch(e_button(e)){case 3:if(captureMiddleClick)onContextMenu.call(cm,cm,e);return;case 2:if(webkit)cm.state.lastMiddleDown=+new Date;if(start)extendSelection(cm.doc,start);setTimeout(bind(focusInput,cm),20);e_preventDefault(e);return;}
-if(!start){if(e_target(e)==display.scroller)e_preventDefault(e);return;}
-if(!cm.state.focused)onFocus(cm);var now=+new Date,type="single";if(lastDoubleClick&&lastDoubleClick.time>now-400&&posEq(lastDoubleClick.pos,start)){type="triple";e_preventDefault(e);setTimeout(bind(focusInput,cm),20);selectLine(cm,start.line);}else if(lastClick&&lastClick.time>now-400&&posEq(lastClick.pos,start)){type="double";lastDoubleClick={time:now,pos:start};e_preventDefault(e);var word=findWordAt(getLine(doc,start.line).text,start);extendSelection(cm.doc,word.from,word.to);}else{lastClick={time:now,pos:start};}
-var last=start;if(cm.options.dragDrop&&dragAndDrop&&!isReadOnly(cm)&&!posEq(sel.from,sel.to)&&!posLess(start,sel.from)&&!posLess(sel.to,start)&&type=="single"){var dragEnd=operation(cm,function(e2){if(webkit)display.scroller.draggable=false;cm.state.draggingText=false;off(document,"mouseup",dragEnd);off(display.scroller,"drop",dragEnd);if(Math.abs(e.clientX-e2.clientX)+Math.abs(e.clientY-e2.clientY)<10){e_preventDefault(e2);extendSelection(cm.doc,start);focusInput(cm);}});if(webkit)display.scroller.draggable=true;cm.state.draggingText=dragEnd;if(display.scroller.dragDrop)display.scroller.dragDrop();on(document,"mouseup",dragEnd);on(display.scroller,"drop",dragEnd);return;}
-e_preventDefault(e);if(type=="single")extendSelection(cm.doc,clipPos(doc,start));var startstart=sel.from,startend=sel.to,lastPos=start;function doSelect(cur){if(posEq(lastPos,cur))return;lastPos=cur;if(type=="single"){extendSelection(cm.doc,clipPos(doc,start),cur);return;}
-startstart=clipPos(doc,startstart);startend=clipPos(doc,startend);if(type=="double"){var word=findWordAt(getLine(doc,cur.line).text,cur);if(posLess(cur,startstart))extendSelection(cm.doc,word.from,startend);else extendSelection(cm.doc,startstart,word.to);}else if(type=="triple"){if(posLess(cur,startstart))extendSelection(cm.doc,startend,clipPos(doc,Pos(cur.line,0)));else extendSelection(cm.doc,startstart,clipPos(doc,Pos(cur.line+1,0)));}}
-var editorSize=getRect(display.wrapper);var counter=0;function extend(e){var curCount=++counter;var cur=posFromMouse(cm,e,true);if(!cur)return;if(!posEq(cur,last)){if(!cm.state.focused)onFocus(cm);last=cur;doSelect(cur);var visible=visibleLines(display,doc);if(cur.line>=visible.to||cur.line<visible.from)
-setTimeout(operation(cm,function(){if(counter==curCount)extend(e);}),150);}else{var outside=e.clientY<editorSize.top?-20:e.clientY>editorSize.bottom?20:0;if(outside)setTimeout(operation(cm,function(){if(counter!=curCount)return;display.scroller.scrollTop+=outside;extend(e);}),50);}}
-function done(e){counter=Infinity;e_preventDefault(e);focusInput(cm);off(document,"mousemove",move);off(document,"mouseup",up);}
-var move=operation(cm,function(e){if(!ie&&!e_button(e))done(e);else extend(e);});var up=operation(cm,done);on(document,"mousemove",move);on(document,"mouseup",up);}
-function gutterEvent(cm,e,type,prevent,signalfn){try{var mX=e.clientX,mY=e.clientY;}
-catch(e){return false;}
-if(mX>=Math.floor(getRect(cm.display.gutters).right))return false;if(prevent)e_preventDefault(e);var display=cm.display;var lineBox=getRect(display.lineDiv);if(mY>lineBox.bottom||!hasHandler(cm,type))return e_defaultPrevented(e);mY-=lineBox.top-display.viewOffset;for(var i=0;i<cm.options.gutters.length;++i){var g=display.gutters.childNodes[i];if(g&&getRect(g).right>=mX){var line=lineAtHeight(cm.doc,mY);var gutter=cm.options.gutters[i];signalfn(cm,type,cm,line,gutter,e);return e_defaultPrevented(e);}}}
-function contextMenuInGutter(cm,e){if(!hasHandler(cm,"gutterContextMenu"))return false;return gutterEvent(cm,e,"gutterContextMenu",false,signal);}
-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);}}
-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;}
-e.dataTransfer.setDragImage(img,0,0);if(opera)img.parentNode.removeChild(img);}}
-function setScrollTop(cm,val){if(Math.abs(cm.doc.scrollTop-val)<2)return;cm.doc.scrollTop=val;if(!gecko)updateDisplay(cm,[],val);if(cm.display.scroller.scrollTop!=val)cm.display.scroller.scrollTop=val;if(cm.display.scrollbarV.scrollTop!=val)cm.display.scrollbarV.scrollTop=val;if(gecko)updateDisplay(cm,[]);startWorker(cm,100);}
-function setScrollLeft(cm,val,isScroller){if(isScroller?val==cm.doc.scrollLeft:Math.abs(cm.doc.scrollLeft-val)<2)return;val=Math.min(val,cm.display.scroller.scrollWidth-cm.display.scroller.clientWidth);cm.doc.scrollLeft=val;alignHorizontally(cm);if(cm.display.scroller.scrollLeft!=val)cm.display.scroller.scrollLeft=val;if(cm.display.scrollbarH.scrollLeft!=val)cm.display.scrollbarH.scrollLeft=val;}
-var wheelSamples=0,wheelPixelsPerUnit=null;if(ie)wheelPixelsPerUnit=-.53;else if(gecko)wheelPixelsPerUnit=15;else if(chrome)wheelPixelsPerUnit=-.7;else if(safari)wheelPixelsPerUnit=-1/3;function onScrollWheel(cm,e){var dx=e.wheelDeltaX,dy=e.wheelDeltaY;if(dx==null&&e.detail&&e.axis==e.HORIZONTAL_AXIS)dx=e.detail;if(dy==null&&e.detail&&e.axis==e.VERTICAL_AXIS)dy=e.detail;else if(dy==null)dy=e.wheelDelta;var display=cm.display,scroll=display.scroller;if(!(dx&&scroll.scrollWidth>scroll.clientWidth||dy&&scroll.scrollHeight>scroll.clientHeight))return;if(dy&&mac&&webkit){for(var cur=e.target;cur!=scroll;cur=cur.parentNode){if(cur.lineObj){cm.display.currentWheelTarget=cur;break;}}}
-if(dx&&!gecko&&!opera&&wheelPixelsPerUnit!=null){if(dy)
-setScrollTop(cm,Math.max(0,Math.min(scroll.scrollTop+dy*wheelPixelsPerUnit,scroll.scrollHeight-scroll.clientHeight)));setScrollLeft(cm,Math.max(0,Math.min(scroll.scrollLeft+dx*wheelPixelsPerUnit,scroll.scrollWidth-scroll.clientWidth)));e_preventDefault(e);display.wheelStartX=null;return;}
-if(dy&&wheelPixelsPerUnit!=null){var pixels=dy*wheelPixelsPerUnit;var top=cm.doc.scrollTop,bot=top+display.wrapper.clientHeight;if(pixels<0)top=Math.max(0,top+pixels-50);else bot=Math.min(cm.doc.height,bot+pixels+50);updateDisplay(cm,[],{top:top,bottom:bot});}
-if(wheelSamples<20){if(display.wheelStartX==null){display.wheelStartX=scroll.scrollLeft;display.wheelStartY=scroll.scrollTop;display.wheelDX=dx;display.wheelDY=dy;setTimeout(function(){if(display.wheelStartX==null)return;var movedX=scroll.scrollLeft-display.wheelStartX;var movedY=scroll.scrollTop-display.wheelStartY;var sample=(movedY&&display.wheelDY&&movedY/display.wheelDY)||(movedX&&display.wheelDX&&movedX/display.wheelDX);display.wheelStartX=display.wheelStartY=null;if(!sample)return;wheelPixelsPerUnit=(wheelPixelsPerUnit*wheelSamples+sample)/(wheelSamples+1);++wheelSamples;},200);}else{display.wheelDX+=dx;display.wheelDY+=dy;}}}
-function doHandleBinding(cm,bound,dropShift){if(typeof bound=="string"){bound=commands[bound];if(!bound)return false;}
-if(cm.display.pollingFast&&readInput(cm))cm.display.pollingFast=false;var doc=cm.doc,prevShift=doc.sel.shift,done=false;try{if(isReadOnly(cm))cm.state.suppressEdits=true;if(dropShift)doc.sel.shift=false;done=bound(cm)!=Pass;}finally{doc.sel.shift=prevShift;cm.state.suppressEdits=false;}
-return done;}
-function allKeyMaps(cm){var maps=cm.state.keyMaps.slice(0);if(cm.options.extraKeys)maps.push(cm.options.extraKeys);maps.push(cm.options.keyMap);return maps;}
-var maybeTransition;function handleKeyBinding(cm,e){var startMap=getKeyMap(cm.options.keyMap),next=startMap.auto;clearTimeout(maybeTransition);if(next&&!isModifierKey(e))maybeTransition=setTimeout(function(){if(getKeyMap(cm.options.keyMap)==startMap){cm.options.keyMap=(next.call?next.call(null,cm):next);keyMapChanged(cm);}},50);var name=keyName(e,true),handled=false;if(!name)return false;var keymaps=allKeyMaps(cm);if(e.shiftKey){handled=lookupKey("Shift-"+name,keymaps,function(b){return doHandleBinding(cm,b,true);})||lookupKey(name,keymaps,function(b){if(typeof b=="string"?/^go[A-Z]/.test(b):b.motion)
-return doHandleBinding(cm,b);});}else{handled=lookupKey(name,keymaps,function(b){return doHandleBinding(cm,b);});}
-if(handled){e_preventDefault(e);restartBlink(cm);if(ie_lt9){e.oldKeyCode=e.keyCode;e.keyCode=0;}
-signalLater(cm,"keyHandled",cm,name,e);}
-return handled;}
-function handleCharBinding(cm,e,ch){var handled=lookupKey("'"+ch+"'",allKeyMaps(cm),function(b){return doHandleBinding(cm,b,true);});if(handled){e_preventDefault(e);restartBlink(cm);signalLater(cm,"keyHandled",cm,"'"+ch+"'",e);}
-return handled;}
-var lastStoppedKey=null;function onKeyDown(e){var cm=this;if(!cm.state.focused)onFocus(cm);if(signalDOMEvent(cm,e)||cm.options.onKeyEvent&&cm.options.onKeyEvent(cm,addStop(e)))return;if(ie&&e.keyCode==27)e.returnValue=false;var code=e.keyCode;cm.doc.sel.shift=code==16||e.shiftKey;var handled=handleKeyBinding(cm,e);if(opera){lastStoppedKey=handled?code:null;if(!handled&&code==88&&!hasCopyEvent&&(mac?e.metaKey:e.ctrlKey))
-cm.replaceSelection("");}}
-function onKeyPress(e){var cm=this;if(signalDOMEvent(cm,e)||cm.options.onKeyEvent&&cm.options.onKeyEvent(cm,addStop(e)))return;var keyCode=e.keyCode,charCode=e.charCode;if(opera&&keyCode==lastStoppedKey){lastStoppedKey=null;e_preventDefault(e);return;}
-if(((opera&&(!e.which||e.which<10))||khtml)&&handleKeyBinding(cm,e))return;var ch=String.fromCharCode(charCode==null?keyCode:charCode);if(this.options.electricChars&&this.doc.mode.electricChars&&this.options.smartIndent&&!isReadOnly(this)&&this.doc.mode.electricChars.indexOf(ch)>-1)
-setTimeout(operation(cm,function(){indentLine(cm,cm.doc.sel.to.line,"smart");}),75);if(handleCharBinding(cm,e,ch))return;if(ie&&!ie_lt9)cm.display.inputHasSelection=null;fastPoll(cm);}
-function onFocus(cm){if(cm.options.readOnly=="nocursor")return;if(!cm.state.focused){signal(cm,"focus",cm);cm.state.focused=true;if(cm.display.wrapper.className.search(/\bCodeMirror-focused\b/)==-1)
-cm.display.wrapper.className+=" CodeMirror-focused";if(!cm.curOp){resetInput(cm,true);if(webkit)setTimeout(bind(resetInput,cm,true),0);}}
-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;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);}}
-if(ie&&!ie_lt9)prepareSelectAllHack();if(captureMiddleClick){e_stop(e);var mouseup=function(){off(window,"mouseup",mouseup);setTimeout(rehide,20);};on(window,"mouseup",mouseup);}else{setTimeout(rehide,50);}}
-var changeEnd=CodeMirror.changeEnd=function(change){if(!change.text)return change.to;return Pos(change.from.line+change.text.length-1,lst(change.text).length+(change.text.length==1?change.from.ch:0));};function clipPostChange(doc,change,pos){if(!posLess(change.from,pos))return clipPos(doc,pos);var diff=(change.text.length-1)-(change.to.line-change.from.line);if(pos.line>change.to.line+diff){var preLine=pos.line-diff,lastLine=doc.first+doc.size-1;if(preLine>lastLine)return Pos(lastLine,getLine(doc,lastLine).text.length);return clipToLen(pos,getLine(doc,preLine).text.length);}
-if(pos.line==change.to.line+diff)
-return clipToLen(pos,lst(change.text).length+(change.text.length==1?change.from.ch:0)+
-getLine(doc,change.to.line).text.length-change.to.ch);var inside=pos.line-change.from.line;return clipToLen(pos,change.text[inside].length+(inside?0:change.from.ch));}
-function computeSelAfterChange(doc,change,hint){if(hint&&typeof hint=="object")
-return{anchor:clipPostChange(doc,change,hint.anchor),head:clipPostChange(doc,change,hint.head)};if(hint=="start")return{anchor:change.from,head:change.from};var end=changeEnd(change);if(hint=="around")return{anchor:change.from,head:end};if(hint=="end")return{anchor:end,head:end};var adjustPos=function(pos){if(posLess(pos,change.from))return pos;if(!posLess(change.to,pos))return end;var line=pos.line+change.text.length-(change.to.line-change.from.line)-1,ch=pos.ch;if(pos.line==change.to.line)ch+=end.ch-change.to.ch;return Pos(line,ch);};return{anchor:adjustPos(doc.sel.anchor),head:adjustPos(doc.sel.head)};}
-function filterChange(doc,change,update){var obj={canceled:false,from:change.from,to:change.to,text:change.text,origin:change.origin,cancel:function(){this.canceled=true;}};if(update)obj.update=function(from,to,text,origin){if(from)this.from=clipPos(doc,from);if(to)this.to=clipPos(doc,to);if(text)this.text=text;if(origin!==undefined)this.origin=origin;};signal(doc,"beforeChange",doc,obj);if(doc.cm)signal(doc.cm,"beforeChange",doc.cm,obj);if(obj.canceled)return null;return{from:obj.from,to:obj.to,text:obj.text,origin:obj.origin};}
-function makeChange(doc,change,selUpdate,ignoreReadOnly){if(doc.cm){if(!doc.cm.curOp)return operation(doc.cm,makeChange)(doc,change,selUpdate,ignoreReadOnly);if(doc.cm.state.suppressEdits)return;}
-if(hasHandler(doc,"beforeChange")||doc.cm&&hasHandler(doc.cm,"beforeChange")){change=filterChange(doc,change,true);if(!change)return;}
-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){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);}
-makeChangeSingleDoc(doc,change,null,mergeOldSpans(doc,change));});}}
-function shiftDoc(doc,distance){function shiftPos(pos){return Pos(pos.line+distance,pos.ch);}
-doc.first+=distance;if(doc.cm)regChange(doc.cm,doc.first,doc.first,distance);doc.sel.head=shiftPos(doc.sel.head);doc.sel.anchor=shiftPos(doc.sel.anchor);doc.sel.from=shiftPos(doc.sel.from);doc.sel.to=shiftPos(doc.sel.to);}
-function makeChangeSingleDoc(doc,change,selAfter,spans){if(doc.cm&&!doc.cm.curOp)
-return operation(doc.cm,makeChangeSingleDoc)(doc,change,selAfter,spans);if(change.to.line<doc.first){shiftDoc(doc,change.text.length-1-(change.to.line-change.from.line));return;}
-if(change.from.line>doc.lastLine())return;if(change.from.line<doc.first){var shift=change.text.length-1-(doc.first-change.from.line);shiftDoc(doc,shift);change={from:Pos(doc.first,0),to:Pos(change.to.line+shift,change.to.ch),text:[lst(change.text)],origin:change.origin};}
-var last=doc.lastLine();if(change.to.line>last){change={from:change.from,to:Pos(last,getLine(doc,last).text.length),text:[change.text[0]],origin:change.origin};}
-change.removed=getBetween(doc,change.from,change.to);if(!selAfter)selAfter=computeSelAfterChange(doc,change,null);if(doc.cm)makeChangeSingleDocInEditor(doc.cm,change,spans,selAfter);else updateDoc(doc,change,spans,selAfter);}
-function makeChangeSingleDocInEditor(cm,change,spans,selAfter){var doc=cm.doc,display=cm.display,from=change.from,to=change.to;var recomputeMaxLength=false,checkWidthStart=from.line;if(!cm.options.lineWrapping){checkWidthStart=lineNo(visualLine(doc,getLine(doc,from.line)));doc.iter(checkWidthStart,to.line+1,function(line){if(line==display.maxLine){recomputeMaxLength=true;return true;}});}
-if(!posLess(doc.sel.head,change.from)&&!posLess(change.to,doc.sel.head))
-cm.curOp.cursorActivity=true;updateDoc(doc,change,spans,selAfter,estimateHeight(cm));if(!cm.options.lineWrapping){doc.iter(checkWidthStart,from.line+change.text.length,function(line){var len=lineLength(doc,line);if(len>display.maxLineLength){display.maxLine=line;display.maxLineLength=len;display.maxLineChanged=true;recomputeMaxLength=false;}});if(recomputeMaxLength)cm.curOp.updateMaxLine=true;}
-doc.frontier=Math.min(doc.frontier,from.line);startWorker(cm,400);var lendiff=change.text.length-(to.line-from.line)-1;regChange(cm,from.line,to.line+1,lendiff);if(hasHandler(cm,"change")){var changeObj={from:from,to:to,text:change.text,removed:change.removed,origin:change.origin};if(cm.curOp.textChanged){for(var cur=cm.curOp.textChanged;cur.next;cur=cur.next){}
-cur.next=changeObj;}else cm.curOp.textChanged=changeObj;}}
-function replaceRange(doc,code,from,to,origin){if(!to)to=from;if(posLess(to,from)){var tmp=to;to=from;from=tmp;}
-if(typeof code=="string")code=splitLines(code);makeChange(doc,{from:from,to:to,text:code,origin:origin},null);}
-function Pos(line,ch){if(!(this instanceof Pos))return new Pos(line,ch);this.line=line;this.ch=ch;}
-CodeMirror.Pos=Pos;function posEq(a,b){return a.line==b.line&&a.ch==b.ch;}
-function posLess(a,b){return a.line<b.line||(a.line==b.line&&a.ch<b.ch);}
-function copyPos(x){return Pos(x.line,x.ch);}
-function clipLine(doc,n){return Math.max(doc.first,Math.min(n,doc.first+doc.size-1));}
-function clipPos(doc,pos){if(pos.line<doc.first)return Pos(doc.first,0);var last=doc.first+doc.size-1;if(pos.line>last)return Pos(last,getLine(doc,last).text.length);return clipToLen(pos,getLine(doc,pos.line).text.length);}
-function clipToLen(pos,linelen){var ch=pos.ch;if(ch==null||ch>linelen)return Pos(pos.line,linelen);else if(ch<0)return Pos(pos.line,0);else return pos;}
-function isLine(doc,l){return l>=doc.first&&l<doc.first+doc.size;}
-function extendSelection(doc,pos,other,bias){if(doc.sel.shift||doc.sel.extend){var anchor=doc.sel.anchor;if(other){var posBefore=posLess(pos,anchor);if(posBefore!=posLess(other,anchor)){anchor=pos;pos=other;}else if(posBefore!=posLess(pos,other)){pos=other;}}
-setSelection(doc,anchor,pos,bias);}else{setSelection(doc,pos,other||pos,bias);}
-if(doc.cm)doc.cm.curOp.userSelChange=true;}
-function filterSelectionChange(doc,anchor,head){var obj={anchor:anchor,head:head};signal(doc,"beforeSelectionChange",doc,obj);if(doc.cm)signal(doc.cm,"beforeSelectionChange",doc.cm,obj);obj.anchor=clipPos(doc,obj.anchor);obj.head=clipPos(doc,obj.head);return obj;}
-function setSelection(doc,anchor,head,bias,checkAtomic){if(!checkAtomic&&hasHandler(doc,"beforeSelectionChange")||doc.cm&&hasHandler(doc.cm,"beforeSelectionChange")){var filtered=filterSelectionChange(doc,anchor,head);head=filtered.head;anchor=filtered.anchor;}
-var sel=doc.sel;sel.goalColumn=null;if(bias==null)bias=posLess(head,sel.head)?-1:1;if(checkAtomic||!posEq(anchor,sel.anchor))
-anchor=skipAtomic(doc,anchor,bias,checkAtomic!="push");if(checkAtomic||!posEq(head,sel.head))
-head=skipAtomic(doc,head,bias,checkAtomic!="push");if(posEq(sel.anchor,anchor)&&posEq(sel.head,head))return;sel.anchor=anchor;sel.head=head;var inv=posLess(head,anchor);sel.from=inv?head:anchor;sel.to=inv?anchor:head;if(doc.cm)
-doc.cm.curOp.updateInput=doc.cm.curOp.selectionChanged=doc.cm.curOp.cursorActivity=true;signalLater(doc,"cursorActivity",doc);}
-function reCheckSelection(cm){setSelection(cm.doc,cm.doc.sel.from,cm.doc.sel.to,null,"push");}
-function skipAtomic(doc,pos,bias,mayClear){var flipped=false,curPos=pos;var dir=bias||1;doc.cantEdit=false;search:for(;;){var line=getLine(doc,curPos.line);if(line.markedSpans){for(var i=0;i<line.markedSpans.length;++i){var sp=line.markedSpans[i],m=sp.marker;if((sp.from==null||(m.inclusiveLeft?sp.from<=curPos.ch:sp.from<curPos.ch))&&(sp.to==null||(m.inclusiveRight?sp.to>=curPos.ch:sp.to>curPos.ch))){if(mayClear){signal(m,"beforeCursorEnter");if(m.explicitlyCleared){if(!line.markedSpans)break;else{--i;continue;}}}
-if(!m.atomic)continue;var newPos=m.find()[dir<0?"from":"to"];if(posEq(newPos,curPos)){newPos.ch+=dir;if(newPos.ch<0){if(newPos.line>doc.first)newPos=clipPos(doc,Pos(newPos.line-1));else newPos=null;}else if(newPos.ch>line.text.length){if(newPos.line<doc.first+doc.size-1)newPos=Pos(newPos.line+1,0);else newPos=null;}
-if(!newPos){if(flipped){if(!mayClear)return skipAtomic(doc,pos,bias,true);doc.cantEdit=true;return Pos(doc.first,0);}
-flipped=true;newPos=pos;dir=-dir;}}
-curPos=newPos;continue search;}}}
-return curPos;}}
-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,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);}
-function calculateScrollPos(cm,x1,y1,x2,y2){var display=cm.display,snapMargin=textHeight(cm.display);if(y1<0)y1=0;var screen=display.scroller.clientHeight-scrollerCutOff,screentop=display.scroller.scrollTop,result={};var docBottom=cm.doc.height+paddingVert(display);var atTop=y1<snapMargin,atBottom=y2>docBottom-snapMargin;if(y1<screentop){result.scrollTop=atTop?0:y1;}else if(y2>screentop+screen){var newTop=Math.min(y1,(atBottom?docBottom:y2)-screen);if(newTop!=screentop)result.scrollTop=newTop;}
-var screenw=display.scroller.clientWidth-scrollerCutOff,screenleft=display.scroller.scrollLeft;x1+=display.gutters.offsetWidth;x2+=display.gutters.offsetWidth;var gutterw=display.gutters.offsetWidth;var atLeft=x1<gutterw+10;if(x1<screenleft+gutterw||atLeft){if(atLeft)x1=0;result.scrollLeft=Math.max(0,x1-10-gutterw);}else if(x2>screenw+screenleft-3){result.scrollLeft=x2+10-screenw;}
-return result;}
-function updateScrollPos(cm,left,top){cm.curOp.updateScrollPos={scrollLeft:left==null?cm.doc.scrollLeft:left,scrollTop:top==null?cm.doc.scrollTop:top};}
-function addToScrollPos(cm,left,top){var pos=cm.curOp.updateScrollPos||(cm.curOp.updateScrollPos={scrollLeft:cm.doc.scrollLeft,scrollTop:cm.doc.scrollTop});var scroll=cm.display.scroller;pos.scrollTop=Math.max(0,Math.min(scroll.scrollHeight-scroll.clientHeight,pos.scrollTop+top));pos.scrollLeft=Math.max(0,Math.min(scroll.scrollWidth-scroll.clientWidth,pos.scrollLeft+left));}
-function indentLine(cm,n,how,aggressive){var doc=cm.doc;if(how==null)how="add";if(how=="smart"){if(!cm.doc.mode.indent)how="prev";else var state=getStateBefore(cm,n);}
-var tabSize=cm.options.tabSize;var line=getLine(doc,n),curSpace=countColumn(line.text,null,tabSize);var curSpaceString=line.text.match(/^\s*/)[0],indentation;if(how=="smart"){indentation=cm.doc.mode.indent(state,line.text.slice(curSpaceString.length),line.text);if(indentation==Pass){if(!aggressive)return;how="prev";}}
-if(how=="prev"){if(n>doc.first)indentation=countColumn(getLine(doc,n-1).text,null,tabSize);else indentation=0;}else if(how=="add"){indentation=curSpace+cm.options.indentUnit;}else if(how=="subtract"){indentation=curSpace-cm.options.indentUnit;}else if(typeof how=="number"){indentation=curSpace+how;}
-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");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;}
-if(unit=="char")moveOnce();else if(unit=="column")moveOnce(true);else if(unit=="word"||unit=="group"){var sawType=null,group=unit=="group";for(var first=true;;first=false){if(dir<0&&!moveOnce(!first))break;var cur=lineObj.text.charAt(ch)||"\n";var type=isWordChar(cur)?"w":!group?null:/\s/.test(cur)?null:"p";if(sawType&&sawType!=type){if(dir<0){dir=1;moveOnce();}
-break;}
-if(type)sawType=type;if(dir>0&&!moveOnce(!first))break;}}
-var result=skipAtomic(doc,Pos(line,ch),origDir,true);if(!possible)result.hitSide=true;return result;}
-function findPosV(cm,pos,dir,unit){var doc=cm.doc,x=pos.left,y;if(unit=="page"){var pageSize=Math.min(cm.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);y=pos.top+dir*(pageSize-(dir<0?1.5:.5)*textHeight(cm.display));}else if(unit=="line"){y=dir>0?pos.bottom+3:pos.top-3;}
-for(;;){var target=coordsChar(cm,x,y);if(!target.outside)break;if(dir<0?y<=0:y>=doc.height){target.hitSide=true;break;}
-y+=dir*5;}
-return target;}
-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);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);}
-return{start:stream.start,end:stream.pos,string:stream.current(),className:style||null,type:style||null,state:state};},getTokenTypeAt:function(pos){pos=clipPos(this.doc,pos);var styles=getLineStyles(this,getLine(this.doc,pos.line));var before=0,after=(styles.length-1)/2,ch=pos.ch;if(ch==0)return styles[2];for(;;){var mid=(before+after)>>1;if((mid?styles[mid*2-1]:0)>=ch)after=mid;else if(styles[mid*2+1]<ch)before=mid+1;else return styles[mid*2+2];}},getModeAt:function(pos){var mode=this.doc.mode;if(!mode.innerMode)return mode;return CodeMirror.innerMode(mode,this.getTokenAt(pos).state).mode;},getHelper:function(pos,type){if(!helpers.hasOwnProperty(type))return;var help=helpers[type],mode=this.getModeAt(pos);return mode[type]&&help[mode[type]]||mode.helperType&&help[mode.helperType]||help[mode.name];},getStateAfter:function(line,precise){var doc=this.doc;line=clipLine(doc,line==null?doc.first+doc.size-1:line);return getStateBefore(this,line+1,precise);},cursorCoords:function(start,mode){var pos,sel=this.doc.sel;if(start==null)pos=sel.head;else if(typeof start=="object")pos=clipPos(this.doc,start);else pos=start?sel.from:sel.to;return cursorCoords(this,pos,mode||"page");},charCoords:function(pos,mode){return charCoords(this,clipPos(this.doc,pos),mode||"page");},coordsChar:function(coords,mode){coords=fromCoordSystem(this,coords,mode||"page");return coordsChar(this,coords.left,coords.top);},lineAtHeight:function(height,mode){height=fromCoordSystem(this,{top:height,left:0},mode||"page").top;return lineAtHeight(this.doc,height+this.display.viewOffset);},heightAtLine:function(line,mode){var end=false,last=this.doc.first+this.doc.size-1;if(line<this.doc.first)line=this.doc.first;else if(line>last){line=last;end=true;}
-var lineObj=getLine(this.doc,line);return intoCoordSystem(this,getLine(this.doc,line),{top:0,left:0},mode||"page").top+
-(end?lineObj.height:0);},defaultTextHeight:function(){return textHeight(this.display);},defaultCharWidth:function(){return charWidth(this.display);},setGutterMarker:operation(null,function(line,gutterID,value){return changeLine(this,line,function(line){var markers=line.gutterMarkers||(line.gutterMarkers={});markers[gutterID]=value;if(!value&&isEmpty(markers))line.gutterMarkers=null;return true;});}),clearGutter:operation(null,function(gutterID){var cm=this,doc=cm.doc,i=doc.first;doc.iter(function(line){if(line.gutterMarkers&&line.gutterMarkers[gutterID]){line.gutterMarkers[gutterID]=null;regChange(cm,i,i+1);if(isEmpty(line.gutterMarkers))line.gutterMarkers=null;}
-++i;});}),addLineClass:operation(null,function(handle,where,cls){return changeLine(this,handle,function(line){var prop=where=="text"?"textClass":where=="background"?"bgClass":"wrapClass";if(!line[prop])line[prop]=cls;else if(new RegExp("(?:^|\\s)"+cls+"(?:$|\\s)").test(line[prop]))return false;else line[prop]+=" "+cls;return true;});}),removeLineClass:operation(null,function(handle,where,cls){return changeLine(this,handle,function(line){var prop=where=="text"?"textClass":where=="background"?"bgClass":"wrapClass";var cur=line[prop];if(!cur)return false;else if(cls==null)line[prop]=null;else{var found=cur.match(new RegExp("(?:^|\\s+)"+cls+"(?:$|\\s+)"));if(!found)return false;var end=found.index+found[0].length;line[prop]=cur.slice(0,found.index)+(!found.index||end==cur.length?"":" ")+cur.slice(end)||null;}
-return true;});}),addLineWidget:operation(null,function(handle,node,options){return addLineWidget(this,handle,node,options);}),removeLineWidget:function(widget){widget.clear();},lineInfo:function(line){if(typeof line=="number"){if(!isLine(this.doc,line))return null;var n=line;line=getLine(this.doc,line);if(!line)return null;}else{var n=lineNo(line);if(n==null)return null;}
-return{line:n,handle:line,text:line.text,gutterMarkers:line.gutterMarkers,textClass:line.textClass,bgClass:line.bgClass,wrapClass:line.wrapClass,widgets:line.widgets};},getViewport:function(){return{from:this.display.showingFrom,to:this.display.showingTo};},addWidget:function(pos,node,scroll,vert,horiz){var display=this.display;pos=cursorCoords(this,clipPos(this.doc,pos));var top=pos.bottom,left=pos.left;node.style.position="absolute";display.sizer.appendChild(node);if(vert=="over"){top=pos.top;}else if(vert=="above"||vert=="near"){var vspace=Math.max(display.wrapper.clientHeight,this.doc.height),hspace=Math.max(display.sizer.clientWidth,display.lineSpace.clientWidth);if((vert=='above'||pos.bottom+node.offsetHeight>vspace)&&pos.top>node.offsetHeight)
-top=pos.top-node.offsetHeight;else if(pos.bottom+node.offsetHeight<=vspace)
-top=pos.bottom;if(left+node.offsetWidth>hspace)
-left=hspace-node.offsetWidth;}
-node.style.top=top+"px";node.style.left=node.style.right="";if(horiz=="right"){left=display.sizer.clientWidth-node.offsetWidth;node.style.right="0px";}else{if(horiz=="left")left=0;else if(horiz=="middle")left=(display.sizer.clientWidth-node.offsetWidth)/2;node.style.left=left+"px";}
-if(scroll)
-scrollIntoView(this,left,top,left+node.offsetWidth,top+node.offsetHeight);},triggerOnKeyDown:operation(null,onKeyDown),execCommand:function(cmd){return commands[cmd](this);},findPosH:function(from,amount,unit,visually){var dir=1;if(amount<0){dir=-1;amount=-amount;}
-for(var i=0,cur=clipPos(this.doc,from);i<amount;++i){cur=findPosH(this.doc,cur,dir,unit,visually);if(cur.hitSide)break;}
-return cur;},moveH:operation(null,function(dir,unit){var sel=this.doc.sel,pos;if(sel.shift||sel.extend||posEq(sel.from,sel.to))
-pos=findPosH(this.doc,sel.head,dir,unit,this.options.rtlMoveVisually);else
-pos=dir<0?sel.from:sel.to;extendSelection(this.doc,pos,pos,dir);}),deleteH:operation(null,function(dir,unit){var sel=this.doc.sel;if(!posEq(sel.from,sel.to))replaceRange(this.doc,"",sel.from,sel.to,"+delete");else replaceRange(this.doc,"",sel.from,findPosH(this.doc,sel.head,dir,unit,false),"+delete");this.curOp.userSelChange=true;}),findPosV:function(from,amount,unit,goalColumn){var dir=1,x=goalColumn;if(amount<0){dir=-1;amount=-amount;}
-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(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);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;}
-return nstate;}
-CodeMirror.copyState=copyState;function startState(mode,a1,a2){return mode.startState?mode.startState(a1,a2):true;}
-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","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;}
-for(var i=0;i<maps.length;++i){var done=lookup(maps[i]);if(done)return done!="stop";}}
-function isModifierKey(event){var name=keyNames[event.keyCode];return name=="Ctrl"||name=="Alt"||name=="Shift"||name=="Mod";}
-function keyName(event,noShift){if(opera&&event.keyCode==34&&event["char"])return false;var name=keyNames[event.keyCode];if(name==null||event.altGraphKey)return false;if(event.altKey)name="Alt-"+name;if(flipCtrlCmd?event.metaKey:event.ctrlKey)name="Ctrl-"+name;if(flipCtrlCmd?event.ctrlKey:event.metaKey)name="Cmd-"+name;if(!noShift&&event.shiftKey)name="Shift-"+name;return name;}
-CodeMirror.lookupKey=lookupKey;CodeMirror.isModifierKey=isModifierKey;CodeMirror.keyName=keyName;CodeMirror.fromTextArea=function(textarea,options){if(!options)options={};options.value=textarea.value;if(!options.tabindex&&textarea.tabindex)
-options.tabindex=textarea.tabindex;if(!options.placeholder&&textarea.placeholder)
-options.placeholder=textarea.placeholder;if(options.autofocus==null){var hasFocus=document.body;try{hasFocus=document.activeElement;}catch(e){}
-options.autofocus=hasFocus==textarea||textarea.getAttribute("autofocus")!=null&&hasFocus==document.body;}
-function save(){textarea.value=cm.getValue();}
-if(textarea.form){on(textarea.form,"submit",save);if(!options.leaveSubmitMethodAlone){var form=textarea.form,realSubmit=form.submit;try{var wrappedSubmit=form.submit=function(){save();form.submit=realSubmit;form.submit();form.submit=wrappedSubmit;};}catch(e){}}}
-textarea.style.display="none";var cm=CodeMirror(function(node){textarea.parentNode.insertBefore(node,textarea.nextSibling);},options);cm.save=save;cm.getTextArea=function(){return textarea;};cm.toTextArea=function(){save();textarea.parentNode.removeChild(cm.getWrapperElement());textarea.style.display="";if(textarea.form){off(textarea.form,"submit",save);if(typeof textarea.form.submit=="function")
-textarea.form.submit=realSubmit;}};return cm;};function StringStream(string,tabSize){this.pos=this.start=0;this.string=string;this.tabSize=tabSize||8;this.lastColumnPos=this.lastColumnValue=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)||undefined;},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(){if(this.lastColumnPos<this.start){this.lastColumnValue=countColumn(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start;}
-return this.lastColumnValue;},indentation:function(){return countColumn(this.string,null,this.tabSize);},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;function TextMarker(doc,type){this.lines=[];this.type=type;this.doc=doc;}
-CodeMirror.TextMarker=TextMarker;eventMixin(TextMarker);TextMarker.prototype.clear=function(){if(this.explicitlyCleared)return;var cm=this.doc.cm,withOp=cm&&!cm.curOp;if(withOp)startOperation(cm);if(hasHandler(this,"clear")){var found=this.find();if(found)signalLater(this,"clear",found.from,found.to);}
-var min=null,max=null;for(var i=0;i<this.lines.length;++i){var line=this.lines[i];var span=getMarkedSpanFor(line.markedSpans,this);if(span.to!=null)max=lineNo(line);line.markedSpans=removeMarkedSpan(line.markedSpans,span);if(span.from!=null)
-min=lineNo(line);else if(this.collapsed&&!lineIsHidden(this.doc,line)&&cm)
-updateLineHeight(line,textHeight(cm.display));}
-if(cm&&this.collapsed&&!cm.options.lineWrapping)for(var i=0;i<this.lines.length;++i){var visual=visualLine(cm.doc,this.lines[i]),len=lineLength(cm.doc,visual);if(len>cm.display.maxLineLength){cm.display.maxLine=visual;cm.display.maxLineLength=len;cm.display.maxLineChanged=true;}}
-if(min!=null&&cm)regChange(cm,min,max+1);this.lines.length=0;this.explicitlyCleared=true;if(this.atomic&&this.doc.cantEdit){this.doc.cantEdit=false;if(cm)reCheckSelection(cm);}
-if(withOp)endOperation(cm);};TextMarker.prototype.find=function(){var from,to;for(var i=0;i<this.lines.length;++i){var line=this.lines[i];var span=getMarkedSpanFor(line.markedSpans,this);if(span.from!=null||span.to!=null){var found=lineNo(line);if(span.from!=null)from=Pos(found,span.from);if(span.to!=null)to=Pos(found,span.to);}}
-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(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;}
-if(curLine==to.line){span.to=to.ch;size-=line.text.length-to.ch;}
-if(marker.collapsed){if(curLine==to.line)collapsedAtEnd=collapsedSpanAt(line,to.ch);if(curLine==from.line)collapsedAtStart=collapsedSpanAt(line,from.ch);else updateLineHeight(line,0);}
-addMarkedSpan(line,span);++curLine;});if(marker.collapsed)doc.iter(from.line,to.line+1,function(line){if(lineIsHidden(doc,line))updateLineHeight(line,0);});if(marker.clearOnEnter)on(marker,"beforeCursorEnter",function(){marker.clear();});if(marker.readOnly){sawReadOnlySpans=true;if(doc.history.done.length||doc.history.undone.length)
-doc.clearHistory();}
-if(marker.collapsed){if(collapsedAtStart!=collapsedAtEnd)
-throw new Error("Inserting collapsed marker overlapping an existing one");marker.size=size;marker.atomic=true;}
-if(cm){if(updateMaxLine)cm.curOp.updateMaxLine=true;if(marker.className||marker.title||marker.startStyle||marker.endStyle||marker.collapsed)
-regChange(cm,from.line,to.line+1);if(marker.atomic)reCheckSelection(cm);}
-return marker;}
-function SharedTextMarker(markers,primary){this.markers=markers;this.primary=primary;for(var i=0,me=this;i<markers.length;++i){markers[i].parent=this;on(markers[i],"clear",function(){me.clear();});}}
-CodeMirror.SharedTextMarker=SharedTextMarker;eventMixin(SharedTextMarker);SharedTextMarker.prototype.clear=function(){if(this.explicitlyCleared)return;this.explicitlyCleared=true;for(var i=0;i<this.markers.length;++i)
-this.markers[i].clear();signalLater(this,"clear");};SharedTextMarker.prototype.find=function(){return this.primary.find();};function markTextShared(doc,from,to,options,type){options=copyObj(options);options.shared=false;var markers=[markText(doc,from,to,options,type)],primary=markers[0];var widget=options.replacedWith;linkedDocs(doc,function(doc){if(widget)options.replacedWith=widget.cloneNode(true);markers.push(markText(doc,clipPos(doc,from),clipPos(doc,to),options,type));for(var i=0;i<doc.linked.length;++i)
-if(doc.linked[i].isParent)return;primary=lst(markers);});return new SharedTextMarker(markers,primary);}
-function getMarkedSpanFor(spans,marker){if(spans)for(var i=0;i<spans.length;++i){var span=spans[i];if(span.marker==marker)return span;}}
-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.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;}
-function stretchSpansOverChange(doc,change){var oldFirst=isLine(doc,change.from.line)&&getLine(doc,change.from.line).markedSpans;var oldLast=isLine(doc,change.to.line)&&getLine(doc,change.to.line).markedSpans;if(!oldFirst&&!oldLast)return null;var startCh=change.from.ch,endCh=change.to.ch,isInsert=posEq(change.from,change.to);var first=markedSpansBefore(oldFirst,startCh,isInsert);var last=markedSpansAfter(oldLast,endCh,isInsert);var sameLine=change.text.length==1,offset=lst(change.text).length+(sameLine?startCh:0);if(first){for(var i=0;i<first.length;++i){var span=first[i];if(span.to==null){var found=getMarkedSpanFor(last,span.marker);if(!found)span.to=startCh;else if(sameLine)span.to=found.to==null?null:found.to+offset;}}}
-if(last){for(var i=0;i<last.length;++i){var span=last[i];if(span.to!=null)span.to+=offset;if(span.from==null){var found=getMarkedSpanFor(first,span.marker);if(!found){span.from=offset;if(sameLine)(first||(first=[])).push(span);}}else{span.from+=offset;if(sameLine)(first||(first=[])).push(span);}}}
-if(sameLine&&first){for(var i=0;i<first.length;++i)
-if(first[i].from!=null&&first[i].from==first[i].to&&first[i].marker.type!="bookmark")
-first.splice(i--,1);if(!first.length)first=null;}
-var newMarkers=[first];if(!sameLine){var gap=change.text.length-2,gapMarkers;if(gap>0&&first)
-for(var i=0;i<first.length;++i)
-if(first[i].to==null)
-(gapMarkers||(gapMarkers=[])).push({from:null,to:null,marker:first[i].marker});for(var i=0;i<gap;++i)
-newMarkers.push(gapMarkers);newMarkers.push(last);}
-return newMarkers;}
-function mergeOldSpans(doc,change){var old=getOldSpans(doc,change);var stretched=stretchSpansOverChange(doc,change);if(!old)return stretched;if(!stretched)return old;for(var i=0;i<old.length;++i){var oldCur=old[i],stretchCur=stretched[i];if(oldCur&&stretchCur){spans:for(var j=0;j<stretchCur.length;++j){var span=stretchCur[j];for(var k=0;k<oldCur.length;++k)
-if(oldCur[k].marker==span.marker)continue spans;oldCur.push(span);}}else if(stretchCur){old[i]=stretchCur;}}
-return old;}
-function removeReadOnlyRanges(doc,from,to){var markers=null;doc.iter(from.line,to.line+1,function(line){if(line.markedSpans)for(var i=0;i<line.markedSpans.length;++i){var mark=line.markedSpans[i].marker;if(mark.readOnly&&(!markers||indexOf(markers,mark)==-1))
-(markers||(markers=[])).push(mark);}});if(!markers)return null;var parts=[{from:from,to:to}];for(var i=0;i<markers.length;++i){var mk=markers[i],m=mk.find();for(var j=0;j<parts.length;++j){var p=parts[j];if(posLess(p.to,m.from)||posLess(m.to,p.from))continue;var newParts=[j,1];if(posLess(p.from,m.from)||!mk.inclusiveLeft&&posEq(p.from,m.from))
-newParts.push({from:p.from,to:m.from});if(posLess(m.to,p.to)||!mk.inclusiveRight&&posEq(p.to,m.to))
-newParts.push({from:m.to,to:p.to});parts.splice.apply(parts,newParts);j+=newParts.length-1;}}
-return parts;}
-function collapsedSpanAt(line,ch){var sps=sawCollapsedSpans&&line.markedSpans,found;if(sps)for(var sp,i=0;i<sps.length;++i){sp=sps[i];if(!sp.marker.collapsed)continue;if((sp.from==null||sp.from<ch)&&(sp.to==null||sp.to>ch)&&(!found||found.width<sp.marker.width))
-found=sp.marker;}
-return found;}
-function collapsedSpanAtStart(line){return collapsedSpanAt(line,-1);}
-function collapsedSpanAtEnd(line){return collapsedSpanAt(line,line.text.length+1);}
-function visualLine(doc,line){var merged;while(merged=collapsedSpanAtStart(line))
-line=getLine(doc,merged.find().from.line);return line;}
-function lineIsHidden(doc,line){var sps=sawCollapsedSpans&&line.markedSpans;if(sps)for(var sp,i=0;i<sps.length;++i){sp=sps[i];if(!sp.marker.collapsed)continue;if(sp.from==null)return true;if(sp.marker.replacedWith)continue;if(sp.from==0&&sp.marker.inclusiveLeft&&lineIsHiddenInner(doc,line,sp))
-return true;}}
-function lineIsHiddenInner(doc,line,span){if(span.to==null){var end=span.marker.find().to,endLine=getLine(doc,end.line);return lineIsHiddenInner(doc,endLine,getMarkedSpanFor(endLine.markedSpans,span.marker));}
-if(span.marker.inclusiveRight&&span.to==line.text.length)
-return true;for(var sp,i=0;i<line.markedSpans.length;++i){sp=line.markedSpans[i];if(sp.marker.collapsed&&!sp.marker.replacedWith&&sp.from==span.to&&(sp.marker.inclusiveLeft||span.marker.inclusiveRight)&&lineIsHiddenInner(doc,line,sp))return true;}}
-function detachMarkedSpans(line){var spans=line.markedSpans;if(!spans)return;for(var i=0;i<spans.length;++i)
-spans[i].marker.detachLine(line);line.markedSpans=null;}
-function attachMarkedSpans(line,spans){if(!spans)return;for(var i=0;i<spans.length;++i)
-spans[i].marker.attachLine(line);line.markedSpans=spans;}
-var LineWidget=CodeMirror.LineWidget=function(cm,node,options){if(options)for(var opt in options)if(options.hasOwnProperty(opt))
-this[opt]=options[opt];this.cm=cm;this.node=node;};eventMixin(LineWidget);function widgetOperation(f){return function(){var withOp=!this.cm.curOp;if(withOp)startOperation(this.cm);try{var result=f.apply(this,arguments);}
-finally{if(withOp)endOperation(this.cm);}
-return result;};}
-LineWidget.prototype.clear=widgetOperation(function(){var ws=this.line.widgets,no=lineNo(this.line);if(no==null||!ws)return;for(var i=0;i<ws.length;++i)if(ws[i]==this)ws.splice(i--,1);if(!ws.length)this.line.widgets=null;var aboveVisible=heightAtLine(this.cm,this.line)<this.cm.doc.scrollTop;updateLineHeight(this.line,Math.max(0,this.line.height-widgetHeight(this)));if(aboveVisible)addToScrollPos(this.cm,0,-this.height);regChange(this.cm,no,no+1);});LineWidget.prototype.changed=widgetOperation(function(){var oldH=this.height;this.height=null;var diff=widgetHeight(this)-oldH;if(!diff)return;updateLineHeight(this.line,this.line.height+diff);var no=lineNo(this.line);regChange(this.cm,no,no+1);});function widgetHeight(widget){if(widget.height!=null)return widget.height;if(!widget.node.parentNode||widget.node.parentNode.nodeType!=1)
-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);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,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,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,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];}
-return styleToClassCache[style]||(styleToClassCache[style]="cm-"+style.replace(/ +/g," cm-"));}
-function buildLineContent(cm,realLine,measure,copyWidgets){var merged,line=realLine,empty=true;while(merged=collapsedSpanAtStart(line))
-line=getLine(cm.doc,merged.find().from.line);var builder={pre:elt("pre"),col:0,pos:0,measure:null,measuredSomething:false,cm:cm,copyWidgets:copyWidgets};do{if(line.text)empty=false;builder.measure=line==realLine&&measure;builder.pos=0;builder.addToken=builder.measure?buildTokenMeasure:buildToken;if((ie||webkit)&&cm.getOption("lineWrapping"))
-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||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;}
-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"));}
-var old=builder.measure[builder.pos];var span=builder.measure[builder.pos]=buildToken(builder,ch,style,start&&startStyle,i==text.length-1&&endStyle);if(old)span.leftSide=old.leftSide||old;if(ie&&wrapping&&ch==" "&&i&&!/\s/.test(text.charAt(i-1))&&i<text.length-1&&!/\s/.test(text.charAt(i+1)))
-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,}/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
-builder.measure[builder.pos]=builder.pre.insertBefore(elt,widget);}
-builder.measuredSomething=true;}}
-builder.pos+=size;}
-function insertLineContent(line,builder,styles){var spans=line.markedSpans,allText=line.text,at=0;if(!spans){for(var i=1;i<styles.length;i+=2)
-builder.addToken(builder,allText.slice(at,at=styles[i]),interpretTokenStyle(styles[i+1],builder));return;}
-var len=allText.length,pos=0,i=1,text="",style;var nextChange=0,spanStyle,spanEndStyle,spanStartStyle,title,collapsed;for(;;){if(nextChange==pos){spanStyle=spanEndStyle=spanStartStyle=title="";collapsed=null;nextChange=Infinity;var foundBookmarks=[];for(var j=0;j<spans.length;++j){var sp=spans[j],m=sp.marker;if(sp.from<=pos&&(sp.to==null||sp.to>pos)){if(sp.to!=null&&nextChange>sp.to){nextChange=sp.to;spanEndStyle="";}
-if(m.className)spanStyle+=" "+m.className;if(m.startStyle&&sp.from==pos)spanStartStyle+=" "+m.startStyle;if(m.endStyle&&sp.to==nextChange)spanEndStyle+=" "+m.endStyle;if(m.title&&!title)title=m.title;if(m.collapsed&&(!collapsed||collapsed.marker.size<m.size))
-collapsed=sp;}else if(sp.from>pos&&nextChange>sp.from){nextChange=sp.from;}
-if(m.type=="bookmark"&&sp.from==pos&&m.replacedWith)foundBookmarks.push(m);}
-if(collapsed&&(collapsed.from||0)==pos){buildCollapsedSpan(builder,(collapsed.to==null?len:collapsed.to)-pos,collapsed.marker,collapsed.from==null);if(collapsed.to==null)return collapsed.marker.find();}
-if(!collapsed&&foundBookmarks.length)for(var j=0;j<foundBookmarks.length;++j)
-buildCollapsedSpan(builder,0,foundBookmarks[j]);}
-if(pos>=len)break;var upto=Math.min(len,nextChange);while(true){if(text){var end=pos+text.length;if(!collapsed){var tokenText=end>upto?text.slice(0,upto-pos):text;builder.addToken(builder,tokenText,style?style+spanStyle:spanStyle,spanStartStyle,pos+tokenText.length==nextChange?spanEndStyle:"",title);}
-if(end>=upto){text=text.slice(upto-pos);pos=upto;break;}
-pos=end;spanStartStyle="";}
-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==""&&(!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);}
-signalLater(doc,"change",doc,change);setSelection(doc,selAfter.anchor,selAfter.head,null,true);}
-function LeafChunk(lines){this.lines=lines;this.parent=null;for(var i=0,e=lines.length,height=0;i<e;++i){lines[i].parent=this;height+=lines[i].height;}
-this.height=height;}
-LeafChunk.prototype={chunkSize:function(){return this.lines.length;},removeInner:function(at,n){for(var i=at,e=at+n;i<e;++i){var line=this.lines[i];this.height-=line.height;cleanUpLine(line);signalLater(line,"delete");}
-this.lines.splice(at,n);},collapse:function(lines){lines.splice.apply(lines,[lines.length,0].concat(this.lines));},insertInner:function(at,lines,height){this.height+=height;this.lines=this.lines.slice(0,at).concat(lines).concat(this.lines.slice(at));for(var i=0,e=lines.length;i<e;++i)lines[i].parent=this;},iterN:function(at,n,op){for(var e=at+n;at<e;++at)
-if(op(this.lines[at]))return true;}};function BranchChunk(children){this.children=children;var size=0,height=0;for(var i=0,e=children.length;i<e;++i){var ch=children[i];size+=ch.chunkSize();height+=ch.height;ch.parent=this;}
-this.size=size;this.height=height;this.parent=null;}
-BranchChunk.prototype={chunkSize:function(){return this.size;},removeInner:function(at,n){this.size-=n;for(var i=0;i<this.children.length;++i){var child=this.children[i],sz=child.chunkSize();if(at<sz){var rm=Math.min(n,sz-at),oldHeight=child.height;child.removeInner(at,rm);this.height-=oldHeight-child.height;if(sz==rm){this.children.splice(i--,1);child.parent=null;}
-if((n-=rm)==0)break;at=0;}else at-=sz;}
-if(this.size-n<25){var lines=[];this.collapse(lines);this.children=[new LeafChunk(lines)];this.children[0].parent=this;}},collapse:function(lines){for(var i=0,e=this.children.length;i<e;++i)this.children[i].collapse(lines);},insertInner:function(at,lines,height){this.size+=lines.length;this.height+=height;for(var i=0,e=this.children.length;i<e;++i){var child=this.children[i],sz=child.chunkSize();if(at<=sz){child.insertInner(at,lines,height);if(child.lines&&child.lines.length>50){while(child.lines.length>50){var spilled=child.lines.splice(child.lines.length-25,25);var newleaf=new LeafChunk(spilled);child.height-=newleaf.height;this.children.splice(i+1,0,newleaf);newleaf.parent=this;}
-this.maybeSpill();}
-break;}
-at-=sz;}},maybeSpill:function(){if(this.children.length<=10)return;var me=this;do{var spilled=me.children.splice(me.children.length-5,5);var sibling=new BranchChunk(spilled);if(!me.parent){var copy=new BranchChunk(me.children);copy.parent=me;me.children=[copy,sibling];me=copy;}else{me.size-=sibling.size;me.height-=sibling.height;var myIndex=indexOf(me.parent.children,me);me.parent.children.splice(myIndex+1,0,sibling);}
-sibling.parent=me.parent;}while(me.children.length>10);me.parent.maybeSpill();},iterN:function(at,n,op){for(var i=0,e=this.children.length;i<e;++i){var child=this.children[i],sz=child.chunkSize();if(at<sz){var used=Math.min(n,sz-at);if(child.iterN(at,used,op))return true;if((n-=used)==0)break;at=0;}else at-=sz;}}};var nextDocId=0;var Doc=CodeMirror.Doc=function(text,mode,firstLine){if(!(this instanceof Doc))return new Doc(text,mode,firstLine);if(firstLine==null)firstLine=0;BranchChunk.call(this,[new LeafChunk([new Line("",null)])]);this.first=firstLine;this.scrollTop=this.scrollLeft=0;this.cantEdit=false;this.history=makeHistory();this.cleanGeneration=1;this.frontier=firstLine;var start=Pos(firstLine,0);this.sel={from:start,to:start,head:start,anchor:start,shift:false,extend:false,goalColumn:null};this.id=++nextDocId;this.modeOption=mode;if(typeof text=="string")text=splitLines(text);updateDoc(this,{from:start,to:start,text:text},null,{head:start,anchor:start});};Doc.prototype=createObj(BranchChunk.prototype,{constructor:Doc,iter:function(from,to,op){if(op)this.iterN(from-this.first,to-from,op);else this.iterN(this.first,this.first+this.size,from);},insert:function(at,lines){var height=0;for(var i=0,e=lines.length;i<e;++i)height+=lines[i].height;this.insertInner(at-this.first,lines,height);},remove:function(at,n){this.removeInner(at-this.first,n);},getValue:function(lineSep){var lines=getLines(this,this.first,this.first+this.size);if(lineSep===false)return lines;return lines.join(lineSep||"\n");},setValue:function(code){var top=Pos(this.first,0),last=this.first+this.size-1;makeChange(this,{from:top,to:Pos(last,getLine(this,last).text.length),text:splitLines(code),origin:"setValue"},{head:top,anchor:top},true);},replaceRange:function(code,from,to,origin){from=clipPos(this,from);to=to?clipPos(this,to):from;replaceRange(this,code,from,to,origin);},getRange:function(from,to,lineSep){var lines=getBetween(this,clipPos(this,from),clipPos(this,to));if(lineSep===false)return lines;return lines.join(lineSep||"\n");},getLine:function(line){var l=this.getLineHandle(line);return l&&l.text;},setLine:function(line,text){if(isLine(this,line))
-replaceRange(this,text,Pos(line,0),clipPos(this,Pos(line)));},removeLine:function(line){if(line)replaceRange(this,"",clipPos(this,Pos(line-1)),clipPos(this,Pos(line)));else replaceRange(this,"",Pos(0,0),clipPos(this,Pos(1,0)));},getLineHandle:function(line){if(isLine(this,line))return getLine(this,line);},getLineNumber:function(line){return lineNo(line);},getLineHandleVisualStart:function(line){if(typeof line=="number")line=getLine(this,line);return visualLine(this,line);},lineCount:function(){return this.size;},firstLine:function(){return this.first;},lastLine:function(){return this.first+this.size-1;},clipPos:function(pos){return clipPos(this,pos);},getCursor:function(start){var sel=this.sel,pos;if(start==null||start=="head")pos=sel.head;else if(start=="anchor")pos=sel.anchor;else if(start=="end"||start===false)pos=sel.to;else pos=sel.from;return copyPos(pos);},somethingSelected:function(){return!posEq(this.sel.head,this.sel.anchor);},setCursor:docOperation(function(line,ch,extend){var pos=clipPos(this,typeof line=="number"?Pos(line,ch||0):line);if(extend)extendSelection(this,pos);else setSelection(this,pos,pos);}),setSelection:docOperation(function(anchor,head,bias){setSelection(this,clipPos(this,anchor),clipPos(this,head||anchor),bias);}),extendSelection:docOperation(function(from,to,bias){extendSelection(this,clipPos(this,from),to&&clipPos(this,to),bias);}),getSelection:function(lineSep){return this.getRange(this.sel.from,this.sel.to,lineSep);},replaceSelection:function(code,collapse,origin){makeChange(this,{from:this.sel.from,to:this.sel.to,text:splitLines(code),origin:origin},collapse||"around");},undo:docOperation(function(){makeChangeFromHistory(this,"undo");}),redo:docOperation(function(){makeChangeFromHistory(this,"redo");}),setExtending:function(val){this.sel.extend=val;},historySize:function(){var hist=this.history;return{undo:hist.done.length,redo:hist.undone.length};},clearHistory:function(){this.history=makeHistory(this.history.maxGeneration);},markClean:function(){this.cleanGeneration=this.changeGeneration();},changeGeneration:function(){this.history.lastOp=this.history.lastOrigin=null;return this.history.generation;},isClean:function(gen){return this.history.generation==(gen||this.cleanGeneration);},getHistory:function(){return{done:copyHistoryArray(this.history.done),undone:copyHistoryArray(this.history.undone)};},setHistory:function(histData){var hist=this.history=makeHistory(this.history.maxGeneration);hist.done=histData.done.slice(0);hist.undone=histData.undone.slice(0);},markText:function(from,to,options){return markText(this,clipPos(this,from),clipPos(this,to),options,"range");},setBookmark:function(pos,options){var realOpts={replacedWith:options&&(options.nodeType==null?options.widget:options),insertLeft:options&&options.insertLeft};pos=clipPos(this,pos);return markText(this,pos,pos,realOpts,"bookmark");},findMarksAt:function(pos){pos=clipPos(this,pos);var markers=[],spans=getLine(this,pos.line).markedSpans;if(spans)for(var i=0;i<spans.length;++i){var span=spans[i];if((span.from==null||span.from<=pos.ch)&&(span.to==null||span.to>=pos.ch))
-markers.push(span.marker.parent||span.marker);}
-return markers;},getAllMarks:function(){var markers=[];this.iter(function(line){var sps=line.markedSpans;if(sps)for(var i=0;i<sps.length;++i)
-if(sps[i].from!=null)markers.push(sps[i].marker);});return markers;},posFromIndex:function(off){var ch,lineNo=this.first;this.iter(function(line){var sz=line.text.length+1;if(sz>off){ch=off;return true;}
-off-=sz;++lineNo;});return clipPos(this,Pos(lineNo,ch));},indexFromPos:function(coords){coords=clipPos(this,coords);var index=coords.ch;if(coords.line<this.first||coords.ch<0)return 0;this.iter(this.first,coords.line,function(line){index+=line.text.length+1;});return index;},copy:function(copyHistory){var doc=new Doc(getLines(this,this.first,this.first+this.size),this.modeOption,this.first);doc.scrollTop=this.scrollTop;doc.scrollLeft=this.scrollLeft;doc.sel={from:this.sel.from,to:this.sel.to,head:this.sel.head,anchor:this.sel.anchor,shift:this.sel.shift,extend:false,goalColumn:this.sel.goalColumn};if(copyHistory){doc.history.undoDepth=this.history.undoDepth;doc.setHistory(this.getHistory());}
-return doc;},linkedDoc:function(options){if(!options)options={};var from=this.first,to=this.first+this.size;if(options.from!=null&&options.from>from)from=options.from;if(options.to!=null&&options.to<to)to=options.to;var copy=new Doc(getLines(this,from,to),options.mode||this.modeOption,from);if(options.sharedHist)copy.history=this.history;(this.linked||(this.linked=[])).push({doc:copy,sharedHist:options.sharedHist});copy.linked=[{doc:this,isParent:true,sharedHist:options.sharedHist}];return copy;},unlinkDoc:function(other){if(other instanceof CodeMirror)other=other.doc;if(this.linked)for(var i=0;i<this.linked.length;++i){var link=this.linked[i];if(link.doc!=other)continue;this.linked.splice(i,1);other.unlinkDoc(this);break;}
-if(other.history==this.history){var splitIds=[other.id];linkedDocs(other,function(doc){splitIds.push(doc.id);},true);other.history=makeHistory();other.history.done=copyHistoryArray(this.history.done,splitIds);other.history.undone=copyHistoryArray(this.history.undone,splitIds);}},iterLinkedDocs:function(f){linkedDocs(this,f);},getMode:function(){return this.mode;},getEditor:function(){return this.cm;}});Doc.prototype.eachLine=Doc.prototype.iter;var dontDelegate="iter insert remove copy getEditor".split(" ");for(var prop in Doc.prototype)if(Doc.prototype.hasOwnProperty(prop)&&indexOf(dontDelegate,prop)<0)
-CodeMirror.prototype[prop]=(function(method){return function(){return method.apply(this.doc,arguments);};})(Doc.prototype[prop]);eventMixin(Doc);function linkedDocs(doc,f,sharedHistOnly){function propagate(doc,skip,sharedHist){if(doc.linked)for(var i=0;i<doc.linked.length;++i){var rel=doc.linked[i];if(rel.doc==skip)continue;var shared=sharedHist&&rel.sharedHist;if(sharedHistOnly&&!shared)continue;f(rel.doc,shared);propagate(rel.doc,doc,shared);}}
-propagate(doc,null,true);}
-function attachDoc(cm,doc){if(doc.cm)throw new Error("This document is already in use.");cm.doc=doc;doc.cm=cm;estimateLineHeights(cm);loadMode(cm);if(!cm.options.lineWrapping)computeMaxLength(cm);cm.options.mode=doc.modeOption;regChange(cm);}
-function getLine(chunk,n){n-=chunk.first;while(!chunk.lines){for(var i=0;;++i){var child=chunk.children[i],sz=child.chunkSize();if(n<sz){chunk=child;break;}
-n-=sz;}}
-return chunk.lines[n];}
-function getBetween(doc,start,end){var out=[],n=start.line;doc.iter(start.line,end.line+1,function(line){var text=line.text;if(n==end.line)text=text.slice(0,end.ch);if(n==start.line)text=text.slice(start.ch);out.push(text);++n;});return out;}
-function getLines(doc,from,to){var out=[];doc.iter(from,to,function(line){out.push(line.text);});return out;}
-function updateLineHeight(line,height){var diff=height-line.height;for(var n=line;n;n=n.parent)n.height+=diff;}
-function lineNo(line){if(line.parent==null)return null;var cur=line.parent,no=indexOf(cur.lines,line);for(var chunk=cur.parent;chunk;cur=chunk,chunk=chunk.parent){for(var i=0;;++i){if(chunk.children[i]==cur)break;no+=chunk.children[i].chunkSize();}}
-return no+cur.first;}
-function lineAtHeight(chunk,h){var n=chunk.first;outer:do{for(var i=0,e=chunk.children.length;i<e;++i){var child=chunk.children[i],ch=child.height;if(h<ch){chunk=child;continue outer;}
-h-=ch;n+=child.chunkSize();}
-return n;}while(!chunk.lines);for(var i=0,e=chunk.lines.length;i<e;++i){var line=chunk.lines[i],lh=line.height;if(h<lh)break;h-=lh;}
-return n+i;}
-function heightAtLine(cm,lineObj){lineObj=visualLine(cm.doc,lineObj);var h=0,chunk=lineObj.parent;for(var i=0;i<chunk.lines.length;++i){var line=chunk.lines[i];if(line==lineObj)break;else h+=line.height;}
-for(var p=chunk.parent;p;chunk=p,p=chunk.parent){for(var i=0;i<p.children.length;++i){var cur=p.children[i];if(cur==chunk)break;else h+=cur.height;}}
-return h;}
-function getOrder(line){var order=line.order;if(order==null)order=line.order=bidiOrdering(line.text);return order;}
-function makeHistory(startGen){return{done:[],undone:[],undoDepth:Infinity,lastTime:0,lastOp:null,lastOrigin:null,generation:startGen||1,maxGeneration:startGen||1};}
-function attachLocalSpans(doc,change,from,to){var existing=change["spans_"+doc.id],n=0;doc.iter(Math.max(doc.first,from),Math.min(doc.first+doc.size,to),function(line){if(line.markedSpans)
-(existing||(existing=change["spans_"+doc.id]={}))[n]=line.markedSpans;++n;});}
-function historyChangeFromChange(doc,change){var from={line:change.from.line,ch:change.from.ch};var histChange={from:from,to:changeEnd(change),text:getBetween(doc,change.from,change.to)};attachLocalSpans(doc,histChange,change.from.line,change.to.line+1);linkedDocs(doc,function(doc){attachLocalSpans(doc,histChange,change.from.line,change.to.line+1);},true);return histChange;}
-function addToHistory(doc,change,selAfter,opId){var hist=doc.history;hist.undone.length=0;var time=+new Date,cur=lst(hist.done);if(cur&&(hist.lastOp==opId||hist.lastOrigin==change.origin&&change.origin&&((change.origin.charAt(0)=="+"&&doc.cm&&hist.lastTime>time-doc.cm.options.historyEventDelay)||change.origin.charAt(0)=="*"))){var last=lst(cur.changes);if(posEq(change.from,change.to)&&posEq(change.from,last.to)){last.to=changeEnd(change);}else{cur.changes.push(historyChangeFromChange(doc,change));}
-cur.anchorAfter=selAfter.anchor;cur.headAfter=selAfter.head;}else{cur={changes:[historyChangeFromChange(doc,change)],generation:hist.generation,anchorBefore:doc.sel.anchor,headBefore:doc.sel.head,anchorAfter:selAfter.anchor,headAfter:selAfter.head};hist.done.push(cur);hist.generation=++hist.maxGeneration;while(hist.done.length>hist.undoDepth)
-hist.done.shift();}
-hist.lastTime=time;hist.lastOp=opId;hist.lastOrigin=change.origin;}
-function removeClearedSpans(spans){if(!spans)return null;for(var i=0,out;i<spans.length;++i){if(spans[i].marker.explicitlyCleared){if(!out)out=spans.slice(0,i);}
-else if(out)out.push(spans[i]);}
-return!out?spans:out.length?out:null;}
-function getOldSpans(doc,change){var found=change["spans_"+doc.id];if(!found)return null;for(var i=0,nw=[];i<change.text.length;++i)
-nw.push(removeClearedSpans(found[i]));return nw;}
-function copyHistoryArray(events,newGroup){for(var i=0,copy=[];i<events.length;++i){var event=events[i],changes=event.changes,newChanges=[];copy.push({changes:newChanges,anchorBefore:event.anchorBefore,headBefore:event.headBefore,anchorAfter:event.anchorAfter,headAfter:event.headAfter});for(var j=0;j<changes.length;++j){var change=changes[j],m;newChanges.push({from:change.from,to:change.to,text:change.text});if(newGroup)for(var prop in change)if(m=prop.match(/^spans_(\d+)$/)){if(indexOf(newGroup,Number(m[1]))>-1){lst(newChanges)[prop]=change[prop];delete change[prop];}}}}
-return copy;}
-function rebaseHistSel(pos,from,to,diff){if(to<pos.line){pos.line+=diff;}else if(from<pos.line){pos.line=from;pos.ch=0;}}
-function rebaseHistArray(array,from,to,diff){for(var i=0;i<array.length;++i){var sub=array[i],ok=true;for(var j=0;j<sub.changes.length;++j){var cur=sub.changes[j];if(!sub.copied){cur.from=copyPos(cur.from);cur.to=copyPos(cur.to);}
-if(to<cur.from.line){cur.from.line+=diff;cur.to.line+=diff;}else if(from<=cur.to.line){ok=false;break;}}
-if(!sub.copied){sub.anchorBefore=copyPos(sub.anchorBefore);sub.headBefore=copyPos(sub.headBefore);sub.anchorAfter=copyPos(sub.anchorAfter);sub.readAfter=copyPos(sub.headAfter);sub.copied=true;}
-if(!ok){array.splice(0,i+1);i=0;}else{rebaseHistSel(sub.anchorBefore);rebaseHistSel(sub.headBefore);rebaseHistSel(sub.anchorAfter);rebaseHistSel(sub.headAfter);}}}
-function rebaseHist(hist,change){var from=change.from.line,to=change.to.line,diff=change.text.length-(to-from)-1;rebaseHistArray(hist.done,from,to,diff);rebaseHistArray(hist.undone,from,to,diff);}
-function stopMethod(){e_stop(this);}
-function addStop(event){if(!event.stop)event.stop=stopMethod;return event;}
-function e_preventDefault(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;}
-function e_stopPropagation(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;}
-function e_defaultPrevented(e){return e.defaultPrevented!=null?e.defaultPrevented:e.returnValue==false;}
-function e_stop(e){e_preventDefault(e);e_stopPropagation(e);}
-CodeMirror.e_stop=e_stop;CodeMirror.e_preventDefault=e_preventDefault;CodeMirror.e_stopPropagation=e_stopPropagation;function e_target(e){return e.target||e.srcElement;}
-function e_button(e){var b=e.which;if(b==null){if(e.button&1)b=1;else if(e.button&2)b=3;else if(e.button&4)b=2;}
-if(mac&&e.ctrlKey&&b==1)b=3;return b;}
-function on(emitter,type,f){if(emitter.addEventListener)
-emitter.addEventListener(type,f,false);else if(emitter.attachEvent)
-emitter.attachEvent("on"+type,f);else{var map=emitter._handlers||(emitter._handlers={});var arr=map[type]||(map[type]=[]);arr.push(f);}}
-function off(emitter,type,f){if(emitter.removeEventListener)
-emitter.removeEventListener(type,f,false);else if(emitter.detachEvent)
-emitter.detachEvent("on"+type,f);else{var arr=emitter._handlers&&emitter._handlers[type];if(!arr)return;for(var i=0;i<arr.length;++i)
-if(arr[i]==f){arr.splice(i,1);break;}}}
-function signal(emitter,type){var arr=emitter._handlers&&emitter._handlers[type];if(!arr)return;var args=Array.prototype.slice.call(arguments,2);for(var i=0;i<arr.length;++i)arr[i].apply(null,args);}
-var delayedCallbacks,delayedCallbackDepth=0;function signalLater(emitter,type){var arr=emitter._handlers&&emitter._handlers[type];if(!arr)return;var args=Array.prototype.slice.call(arguments,2);if(!delayedCallbacks){++delayedCallbackDepth;delayedCallbacks=[];setTimeout(fireDelayed,0);}
-function bnd(f){return function(){f.apply(null,args);};};for(var i=0;i<arr.length;++i)
-delayedCallbacks.push(bnd(arr[i]));}
-function signalDOMEvent(cm,e,override){signal(cm,override||e.type,cm,e);return e_defaultPrevented(e)||e.codemirrorIgnore;}
-function fireDelayed(){--delayedCallbackDepth;var delayed=delayedCallbacks;delayedCallbacks=null;for(var i=0;i<delayed.length;++i)delayed[i]();}
-function hasHandler(emitter,type){var arr=emitter._handlers&&emitter._handlers[type];return arr&&arr.length>0;}
-CodeMirror.on=on;CodeMirror.off=off;CodeMirror.signal=signal;function eventMixin(ctor){ctor.prototype.on=function(type,f){on(this,type,f);};ctor.prototype.off=function(type,f){off(this,type,f);};}
-var scrollerCutOff=30;var Pass=CodeMirror.Pass={toString:function(){return"CodeMirror.Pass";}};function Delayed(){this.id=null;}
-Delayed.prototype={set:function(ms,f){clearTimeout(this.id);this.id=setTimeout(f,ms);}};function countColumn(string,end,tabSize,startIndex,startValue){if(end==null){end=string.search(/[^\s\u00a0]/);if(end==-1)end=string.length;}
-for(var i=startIndex||0,n=startValue||0;i<end;++i){if(string.charAt(i)=="\t")n+=tabSize-(n%tabSize);else++n;}
-return n;}
-CodeMirror.countColumn=countColumn;var spaceStrs=[""];function spaceStr(n){while(spaceStrs.length<=n)
-spaceStrs.push(lst(spaceStrs)+" ");return spaceStrs[n];}
-function lst(arr){return arr[arr.length-1];}
-function selectInput(node){if(ios){node.selectionStart=0;node.selectionEnd=node.value.length;}else{try{node.select();}
-catch(_e){}}}
-function indexOf(collection,elt){if(collection.indexOf)return collection.indexOf(elt);for(var i=0,e=collection.length;i<e;++i)
-if(collection[i]==elt)return i;return-1;}
-function createObj(base,props){function Obj(){}
-Obj.prototype=base;var inst=new Obj();if(props)copyObj(props,inst);return inst;}
-function copyObj(obj,target){if(!target)target={};for(var prop in obj)if(obj.hasOwnProperty(prop))target[prop]=obj[prop];return target;}
-function emptyArray(size){for(var a=[],i=0;i<size;++i)a.push(undefined);return a;}
-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\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);}
-function setTextContent(e,str){if(ie_lt9){e.innerHTML="";e.appendChild(document.createTextNode(str));}else e.textContent=str;}
-function getRect(node){return node.getBoundingClientRect();}
-CodeMirror.replaceGetRect=function(f){getRect=f;};var dragAndDrop=function(){if(ie_lt9)return false;var div=elt('div');return"draggable"in div||"dragDrop"in div;}();function spanAffectsWrapping(){return false;}
-if(gecko)
-spanAffectsWrapping=function(str,i){return str.charCodeAt(i-1)==36&&str.charCodeAt(i)==39;};else if(safari&&!/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent))
-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)
-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;}
-if(zwspSupported)return elt("span","\u200b");else return elt("span","\u00a0",null,"display: inline-block; width: 1px; margin-right: -1px");}
-var splitLines="\n\nb".split(/\n/).length!=3?function(string){var pos=0,result=[],l=string.length;while(pos<=l){var nl=string.indexOf("\n",pos);if(nl==-1)nl=string.length;var line=string.slice(pos,string.charAt(nl-1)=="\r"?nl-1:nl);var rt=line.indexOf("\r");if(rt!=-1){result.push(line.slice(0,rt));pos+=rt+1;}else{result.push(line);pos=nl+1;}}
-return result;}:function(string){return string.split(/\r\n?|\n/);};CodeMirror.splitLines=splitLines;var hasSelection=window.getSelection?function(te){try{return te.selectionStart!=te.selectionEnd;}
-catch(e){return false;}}:function(te){try{var range=te.ownerDocument.selection.createRange();}
-catch(e){}
-if(!range||range.parentElement()!=te)return false;return range.compareEndPoints("StartToEnd",range)!=0;};var hasCopyEvent=(function(){var e=elt("div");if("oncopy"in e)return true;e.setAttribute("oncopy","return;");return typeof e.oncopy=='function';})();var keyNames={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};CodeMirror.keyNames=keyNames;(function(){for(var i=0;i<10;i++)keyNames[i+48]=String(i);for(var i=65;i<=90;i++)keyNames[i]=String.fromCharCode(i);for(var i=1;i<=12;i++)keyNames[i+111]=keyNames[i+63235]="F"+i;})();function iterateBidiSections(order,from,to,f){if(!order)return f(from,to,"ltr");var found=false;for(var i=0;i<order.length;++i){var part=order[i];if(part.from<to&&part.to>from||from==to&&part.to==from){f(Math.max(part.from,from),Math.min(part.to,to),part.level==1?"rtl":"ltr");found=true;}}
-if(!found)f(from,to,"ltr");}
-function bidiLeft(part){return part.level%2?part.to:part.from;}
-function bidiRight(part){return part.level%2?part.from:part.to;}
-function lineLeft(line){var order=getOrder(line);return order?bidiLeft(order[0]):0;}
-function lineRight(line){var order=getOrder(line);if(!order)return line.text.length;return bidiRight(lst(order));}
-function lineStart(cm,lineN){var line=getLine(cm.doc,lineN);var visual=visualLine(cm.doc,line);if(visual!=line)lineN=lineNo(visual);var order=getOrder(visual);var ch=!order?0:order[0].level%2?lineRight(visual):lineLeft(visual);return Pos(lineN,ch);}
-function lineEnd(cm,lineN){var merged,line;while(merged=collapsedSpanAtEnd(line=getLine(cm.doc,lineN)))
-lineN=merged.find().to.line;var order=getOrder(line);var ch=!order?line.text.length:order[0].level%2?lineLeft(line):lineRight(line);return Pos(lineN,ch);}
-function compareBidiLevel(order,a,b){var linedir=order[0].level;if(a==linedir)return true;if(b==linedir)return false;return a<b;}
-var bidiOther;function getBidiPartAt(order,pos){for(var i=0,found;i<order.length;++i){var cur=order[i];if(cur.from<pos&&cur.to>pos){bidiOther=null;return i;}
-if(cur.from==pos||cur.to==pos){if(found==null){found=i;}else if(compareBidiLevel(order,cur.level,order[found].level)){bidiOther=found;return i;}else{bidiOther=i;return found;}}}
-bidiOther=null;return found;}
-function moveInLine(line,pos,dir,byUnit){if(!byUnit)return pos+dir;do pos+=dir;while(pos>0&&isExtendingChar.test(line.text.charAt(pos)));return pos;}
-function moveVisually(line,start,dir,byUnit){var bidi=getOrder(line);if(!bidi)return moveLogically(line,start,dir,byUnit);var pos=getBidiPartAt(bidi,start),part=bidi[pos];var target=moveInLine(line,start,part.level%2?-dir:dir,byUnit);for(;;){if(target>part.from&&target<part.to)return target;if(target==part.from||target==part.to){if(getBidiPartAt(bidi,target)==pos)return target;part=bidi[pos+=dir];return(dir>0)==part.level%2?part.to:part.from;}else{part=bidi[pos+=dir];if(!part)return null;if((dir>0)==part.level%2)
-target=moveInLine(line,part.to,-1,byUnit);else
-target=moveInLine(line,part.from,1,byUnit);}}}
-function moveLogically(line,start,dir,byUnit){var target=start+dir;if(byUnit)while(target>0&&isExtendingChar.test(line.text.charAt(target)))target+=dir;return target<0||target>line.text.length?null:target;}
-var bidiOrdering=(function(){var lowTypes="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL";var arabicTypes="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr";function charType(code){if(code<=0xff)return lowTypes.charAt(code);else if(0x590<=code&&code<=0x5f4)return"R";else if(0x600<=code&&code<=0x6ff)return arabicTypes.charAt(code-0x600);else if(0x700<=code&&code<=0x8ac)return"r";else return"L";}
-var bidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;var isNeutral=/[stwN]/,isStrong=/[LRr]/,countsAsLeft=/[Lb1n]/,countsAsNum=/[1n]/;var outerType="L";return function(str){if(!bidiRE.test(str))return false;var len=str.length,types=[];for(var i=0,type;i<len;++i)
-types.push(type=charType(str.charCodeAt(i)));for(var i=0,prev=outerType;i<len;++i){var type=types[i];if(type=="m")types[i]=prev;else prev=type;}
-for(var i=0,cur=outerType;i<len;++i){var type=types[i];if(type=="1"&&cur=="r")types[i]="n";else if(isStrong.test(type)){cur=type;if(type=="r")types[i]="R";}}
-for(var i=1,prev=types[0];i<len-1;++i){var type=types[i];if(type=="+"&&prev=="1"&&types[i+1]=="1")types[i]="1";else if(type==","&&prev==types[i+1]&&(prev=="1"||prev=="n"))types[i]=prev;prev=type;}
-for(var i=0;i<len;++i){var type=types[i];if(type==",")types[i]="N";else if(type=="%"){for(var end=i+1;end<len&&types[end]=="%";++end){}
-var replace=(i&&types[i-1]=="!")||(end<len-1&&types[end]=="1")?"1":"N";for(var j=i;j<end;++j)types[j]=replace;i=end-1;}}
-for(var i=0,cur=outerType;i<len;++i){var type=types[i];if(cur=="L"&&type=="1")types[i]="L";else if(isStrong.test(type))cur=type;}
-for(var i=0;i<len;++i){if(isNeutral.test(types[i])){for(var end=i+1;end<len&&isNeutral.test(types[end]);++end){}
-var before=(i?types[i-1]:outerType)=="L";var after=(end<len-1?types[end]:outerType)=="L";var replace=before||after?"L":"R";for(var j=i;j<end;++j)types[j]=replace;i=end-1;}}
-var order=[],m;for(var i=0;i<len;){if(countsAsLeft.test(types[i])){var start=i;for(++i;i<len&&countsAsLeft.test(types[i]);++i){}
-order.push({from:start,to:i,level:0});}else{var pos=i,at=order.length;for(++i;i<len&&types[i]!="L";++i){}
-for(var j=pos;j<i;){if(countsAsNum.test(types[j])){if(pos<j)order.splice(at,0,{from:pos,to:j,level:1});var nstart=j;for(++j;j<i&&countsAsNum.test(types[j]);++j){}
-order.splice(at,0,{from:nstart,to:j,level:2});pos=j;}else++j;}
-if(pos<i)order.splice(at,0,{from:pos,to:i,level:1});}}
-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.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)||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");}
-else if(ch==":"){return ret("operator",ch);}
-else if(/[;{}\[\]\(\)]/.test(ch)){return ret(null,ch);}
-else if(ch=="u"&&stream.match("rl(")){stream.backUp(1);state.tokenize=tokenParenthesized;return ret("property","variable");}
-else{stream.eatWhile(/[\w\\\-]/);return ret("property","variable");}}
-function tokenString(quote,nonInclusive){return function(stream,state){var escaped=false,ch;while((ch=stream.next())!=null){if(ch==quote&&!escaped)
-break;escaped=!escaped&&ch=="\\";}
-if(!escaped){if(nonInclusive)stream.backUp(1);state.tokenize=tokenBase;}
-return ret("string","string");};}
-function tokenParenthesized(stream,state){stream.next();if(!stream.match(/\s*[\"\']/,false))
-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[state.stack.length-1]="@media{";}
-else{var newContext=allowNested?"block":"rule";state.stack.push(newContext);}}
-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[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","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"});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 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;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;}}}
-var cx={state:null,column:null,marked:null,cc:null};function pass(){for(var i=arguments.length-1;i>=0;i--)cx.cc.push(arguments[i]);}
-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;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,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,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 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";}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();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(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(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=="<"){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;}
-stream.next();}
-return style;};}
-function doctype(depth){return function(stream,state){var ch;while((ch=stream.next())!=null){if(ch=="<"){state.tokenize=doctype(depth+1);return state.tokenize(stream,state);}else if(ch==">"){if(depth==1){state.tokenize=inText;break;}else{state.tokenize=doctype(depth-1);return state.tokenize(stream,state);}}}
-return"meta";};}
-var curState,curStream,setStyle;function pass(){for(var i=arguments.length-1;i>=0;i--)curState.cc.push(arguments[i]);}
-function cont(){pass.apply(null,arguments);return true;}
-function pushContext(tagName,startOfLine){var noIndent=Kludges.doNotIndent.hasOwnProperty(tagName)||(curState.context&&curState.context.noIndent);curState.context={prev:curState.context,tagName:tagName,indent:curState.indented,startOfLine:startOfLine,noIndent:noIndent};}
-function popContext(){if(curState.context)curState.context=curState.context.prev;}
-function element(type){if(type=="openTag"){curState.tagName=tagName;curState.tagStart=curStream.column();return cont(attributes,endtag(curState.startOfLine));}else if(type=="closeTag"){var err=false;if(curState.context){if(curState.context.tagName!=tagName){if(Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())){popContext();}
-err=!curState.context||curState.context.tagName!=tagName;}}else{err=true;}
-if(err)setStyle="error";return cont(endclosetag(err));}
-return cont();}
-function endtag(startOfLine){return function(type){var tagName=curState.tagName;curState.tagName=curState.tagStart=null;if(type=="selfcloseTag"||(type=="endTag"&&Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))){maybePopContext(tagName.toLowerCase());return cont();}
-if(type=="endTag"){maybePopContext(tagName.toLowerCase());pushContext(tagName,startOfLine);return cont();}
-return cont();};}
-function endclosetag(err){return function(type){if(err)setStyle="error";if(type=="endTag"){popContext();return cont();}
-setStyle="error";return cont(arguments.callee);};}
-function maybePopContext(nextTagName){var parentTagName;while(true){if(!curState.context){return;}
-parentTagName=curState.context.tagName.toLowerCase();if(!Kludges.contextGrabbers.hasOwnProperty(parentTagName)||!Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)){return;}
-popContext();}}
-function attributes(type){if(type=="word"){setStyle="attribute";return cont(attribute,attributes);}
-if(type=="endTag"||type=="selfcloseTag")return pass();setStyle="error";return cont(attributes);}
-function attribute(type){if(type=="equals")return cont(attvalue,attributes);if(!Kludges.allowMissing)setStyle="error";else if(type=="word"){setStyle="attribute";return cont(attribute,attributes);}
-return(type=="endTag"||type=="selfcloseTag")?pass():cont();}
-function attvalue(type){if(type=="string")return cont(attvaluemaybe);if(type=="word"&&Kludges.allowUnquoted){setStyle="string";return cont();}
-setStyle="error";return(type=="endTag"||type=="selfCloseTag")?pass():cont();}
-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;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
-return state.tagStart+indentUnit*multilineTagIndentFactor;}
-if(alignCDATA&&/<!\[CDATA\[/.test(textAfter))return 0;if(context&&/^<\//.test(textAfter))
-context=context.prev;while(context&&!context.startOfLine)
-context=context.prev;if(context)return context.indent+indentUnit;else return 0;},electricChars:"/",blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:parserConfig.htmlMode?"html":"xml",helperType:parserConfig.htmlMode?"html":"xml"};});CodeMirror.defineMIME("text/xml","xml");CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html"))
-CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});;CodeMirror.defineMode("htmlmixed",function(config,parserConfig){var htmlMode=CodeMirror.getMode(config,{name:"xml",htmlMode:true});var cssMode=CodeMirror.getMode(config,"css");var scriptTypes=[],scriptTypesConf=parserConfig&&parserConfig.scriptTypes;scriptTypes.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:CodeMirror.getMode(config,"javascript")});if(scriptTypesConf)for(var i=0;i<scriptTypesConf.length;++i){var conf=scriptTypesConf[i];scriptTypes.push({matches:conf.matches,mode:conf.mode&&CodeMirror.getMode(config,conf.mode)});}
-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);}
-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));}
-function css(stream,state){if(stream.match(/^<\/\s*style\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
-return maybeBackup(stream,/<\/\s*style\s*>/,cssMode.token(stream,state.localState));}
-return{startState:function(){var state=htmlMode.startState();return{token:html,localMode:null,localState:null,htmlState:state};},copyState:function(state){if(state.localState)
-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 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;}
-var currentlyHighlighted=null;function doMatchBrackets(cm){cm.operation(function(){if(currentlyHighlighted){currentlyHighlighted();currentlyHighlighted=null;}
-if(!cm.somethingSelected())currentlyHighlighted=matchBrackets(cm,false);});}
-CodeMirror.defineOption("matchBrackets",false,function(cm,val,old){if(old&&old!=CodeMirror.Init)
-cm.off("cursorActivity",doMatchBrackets);if(val){cm.state.matchBrackets=typeof val=="object"?val:{};cm.on("cursorActivity",doMatchBrackets);}});CodeMirror.defineExtension("matchBrackets",function(){matchBrackets(this,true);});CodeMirror.defineExtension("findMatchingBracket",function(pos,strict){return findMatchingBracket(this,pos,strict);});})();;(function(){var DEFAULT_BRACKETS="()[]{}''\"\"";var DEFAULT_EXPLODE_ON_ENTER="[]{}";var SPACE_CHAR_REGEX=/\s/;CodeMirror.defineOption("autoCloseBrackets",false,function(cm,val,old){if(old!=CodeMirror.Init&&old)
-cm.removeKeyMap("autoCloseBrackets");if(!val)return;var pairs=DEFAULT_BRACKETS,explode=DEFAULT_EXPLODE_ON_ENTER;if(typeof val=="string")pairs=val;else if(typeof val=="object"){if(val.pairs!=null)pairs=val.pairs;if(val.explode!=null)explode=val.explode;}
-var map=buildKeymap(pairs);if(explode)map.Enter=buildExplodeHandler(explode);cm.addKeyMap(map);});function charsAround(cm,pos){var str=cm.getRange(CodeMirror.Pos(pos.line,pos.ch-1),CodeMirror.Pos(pos.line,pos.ch+1));return str.length==2?str:null;}
-function buildKeymap(pairs){var map={name:"autoCloseBrackets",Backspace:function(cm){if(cm.somethingSelected())return CodeMirror.Pass;var cur=cm.getCursor(),around=charsAround(cm,cur);if(around&&pairs.indexOf(around)%2==0)
-cm.replaceRange("",CodeMirror.Pos(cur.line,cur.ch-1),CodeMirror.Pos(cur.line,cur.ch+1));else
-return CodeMirror.Pass;}};var closingBrackets="";for(var i=0;i<pairs.length;i+=2)(function(left,right){if(left!=right)closingBrackets+=right;function surround(cm){var selection=cm.getSelection();cm.replaceSelection(left+selection+right);}
-function maybeOverwrite(cm){var cur=cm.getCursor(),ahead=cm.getRange(cur,CodeMirror.Pos(cur.line,cur.ch+1));if(ahead!=right||cm.somethingSelected())return CodeMirror.Pass;else cm.execCommand("goCharRight");}
-map["'"+left+"'"]=function(cm){if(left=="'"&&cm.getTokenAt(cm.getCursor()).type=="comment")
-return CodeMirror.Pass;if(cm.somethingSelected())return surround(cm);if(left==right&&maybeOverwrite(cm)!=CodeMirror.Pass)return;var cur=cm.getCursor(),ahead=CodeMirror.Pos(cur.line,cur.ch+1);var line=cm.getLine(cur.line),nextChar=line.charAt(cur.ch),curChar=cur.ch>0?line.charAt(cur.ch-1):"";if(left==right&&CodeMirror.isWordChar(curChar))
-return CodeMirror.Pass;if(line.length==cur.ch||closingBrackets.indexOf(nextChar)>=0||SPACE_CHAR_REGEX.test(nextChar))
-cm.replaceSelection(left+right,{head:ahead,anchor:ahead});else
-return CodeMirror.Pass;};if(left!=right)map["'"+right+"'"]=maybeOverwrite;})(pairs.charAt(i),pairs.charAt(i+1));return map;}
-function buildExplodeHandler(pairs){return function(cm){var cur=cm.getCursor(),around=charsAround(cm,cur);if(!around||pairs.indexOf(around)%2!=0)return CodeMirror.Pass;cm.operation(function(){var newPos=CodeMirror.Pos(cur.line+1,0);cm.replaceSelection("\n\n",{anchor:newPos,head:newPos},"+input");cm.indentLine(cur.line+1,null,true);cm.indentLine(cur.line+2,null,true);});};}})();;(function(){"use strict";CodeMirror.defineOption("styleSelectedText",false,function(cm,val,old){var prev=old&&old!=CodeMirror.Init;if(val&&!prev){cm.state.markedSelection=[];cm.state.markedSelectionStyle=typeof val=="string"?val:"CodeMirror-selectedtext";reset(cm);cm.on("cursorActivity",onCursorActivity);cm.on("change",onChange);}else if(!val&&prev){cm.off("cursorActivity",onCursorActivity);cm.off("change",onChange);clear(cm);cm.state.markedSelection=cm.state.markedSelectionStyle=null;}});function onCursorActivity(cm){cm.operation(function(){update(cm);});}
-function onChange(cm){if(cm.state.markedSelection.length)
-cm.operation(function(){clear(cm);});}
-var CHUNK_SIZE=8;var Pos=CodeMirror.Pos;function cmp(pos1,pos2){return pos1.line-pos2.line||pos1.ch-pos2.ch;}
-function coverRange(cm,from,to,addAt){if(cmp(from,to)==0)return;var array=cm.state.markedSelection;var cls=cm.state.markedSelectionStyle;for(var line=from.line;;){var start=line==from.line?from:Pos(line,0);var endLine=line+CHUNK_SIZE,atEnd=endLine>=to.line;var end=atEnd?to:Pos(endLine,0);var mark=cm.markText(start,end,{className:cls});if(addAt==null)array.push(mark);else array.splice(addAt++,0,mark);if(atEnd)break;line=endLine;}}
-function clear(cm){var array=cm.state.markedSelection;for(var i=0;i<array.length;++i)array[i].clear();array.length=0;}
-function reset(cm){clear(cm);var from=cm.getCursor("start"),to=cm.getCursor("end");coverRange(cm,from,to);}
-function update(cm){var from=cm.getCursor("start"),to=cm.getCursor("end");if(cmp(from,to)==0)return clear(cm);var array=cm.state.markedSelection;if(!array.length)return coverRange(cm,from,to);var coverStart=array[0].find(),coverEnd=array[array.length-1].find();if(!coverStart||!coverEnd||to.line-from.line<CHUNK_SIZE||cmp(from,coverEnd.to)>=0||cmp(to,coverStart.from)<=0)
-return reset(cm);while(cmp(from,coverStart.from)>0){array.shift().clear();coverStart=array[0].find();}
-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=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||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=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;}
-stream.pos=Math.min(state.basePos,state.overlayPos);if(stream.eol())state.basePos=state.overlayPos=0;if(state.overlayCur==null)return state.baseCur;if(state.baseCur!=null&&combine)return state.baseCur+" "+state.overlayCur;else return state.overlayCur;},indent:base.indent&&function(state,textAfter){return base.indent(state.base,textAfter);},electricChars:base.electricChars,innerMode:function(state){return{state:state.base,mode:base};},blankLine:function(state){if(base.blankLine)base.blankLine(state.base);if(overlay.blankLine)overlay.blankLine(state.overlay);}};};;CodeMirror.defineMode("htmlembedded",function(config,parserConfig){var scriptStartRegex=parserConfig.scriptStartRegex||/^<%/i,scriptEndRegex=parserConfig.scriptEndRegex||/^%>/i;var scriptingMode,htmlMixedMode;function htmlDispatch(stream,state){if(stream.match(scriptStartRegex,false)){state.token=scriptingDispatch;return scriptingMode.token(stream,state.scriptState);}
-else
-return htmlMixedMode.token(stream,state.htmlState);}
-function scriptingDispatch(stream,state){if(stream.match(scriptEndRegex,false)){state.token=htmlDispatch;return htmlMixedMode.token(stream,state.htmlState);}
-else
-return scriptingMode.token(stream,state.scriptState);}
-return{startState:function(){scriptingMode=scriptingMode||CodeMirror.getMode(config,parserConfig.scriptingModeSpec);htmlMixedMode=htmlMixedMode||CodeMirror.getMode(config,"htmlmixed");return{token:parserConfig.startOpen?scriptingDispatch:htmlDispatch,htmlState:CodeMirror.startState(htmlMixedMode),scriptState:CodeMirror.startState(scriptingMode)};},token:function(stream,state){return state.token(stream,state);},indent:function(state,textAfter){if(state.token==htmlDispatch)
-return htmlMixedMode.indent(state.htmlState,textAfter);else if(scriptingMode.indent)
-return scriptingMode.indent(state.scriptState,textAfter);},copyState:function(state){return{token:state.token,htmlState:CodeMirror.copyState(htmlMixedMode,state.htmlState),scriptState:CodeMirror.copyState(scriptingMode,state.scriptState)};},electricChars:"/{}:",innerMode:function(state){if(state.token==scriptingDispatch)return{state:state.scriptState,mode:scriptingMode};else return{state:state.htmlState,mode:htmlMixedMode};}};},"htmlmixed");CodeMirror.defineMIME("application/x-ejs",{name:"htmlembedded",scriptingModeSpec:"javascript"});CodeMirror.defineMIME("application/x-aspx",{name:"htmlembedded",scriptingModeSpec:"text/x-csharp"});CodeMirror.defineMIME("application/x-jsp",{name:"htmlembedded",scriptingModeSpec:"text/x-java"});CodeMirror.defineMIME("application/x-erb",{name:"htmlembedded",scriptingModeSpec:"ruby"});;CodeMirror.defineMode("clike",function(config,parserConfig){var indentUnit=config.indentUnit,statementIndentUnit=parserConfig.statementIndentUnit||indentUnit,dontAlignCalls=parserConfig.dontAlignCalls,keywords=parserConfig.keywords||{},builtin=parserConfig.builtin||{},blockKeywords=parserConfig.blockKeywords||{},atoms=parserConfig.atoms||{},hooks=parserConfig.hooks||{},multiLineStrings=parserConfig.multiLineStrings;var isOperatorChar=/[+\-*&%=<>!?|\/]/;var curPunc;function tokenBase(stream,state){var ch=stream.next();if(hooks[ch]){var result=hooks[ch](stream,state);if(result!==false)return result;}
-if(ch=='"'||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);}
-if(/[\[\]{}\(\),;\:\.]/.test(ch)){curPunc=ch;return null;}
-if(/\d/.test(ch)){stream.eatWhile(/[\w\.]/);return"number";}
-if(ch=="/"){if(stream.eat("*")){state.tokenize=tokenComment;return tokenComment(stream,state);}
-if(stream.eat("/")){stream.skipToEnd();return"comment";}}
-if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return"operator";}
-stream.eatWhile(/[\w\$_]/);var cur=stream.current();if(keywords.propertyIsEnumerable(cur)){if(blockKeywords.propertyIsEnumerable(cur))curPunc="newstatement";return"keyword";}
-if(builtin.propertyIsEnumerable(cur)){if(blockKeywords.propertyIsEnumerable(cur))curPunc="newstatement";return"builtin";}
-if(atoms.propertyIsEnumerable(cur))return"atom";return"variable";}
-function tokenString(quote){return function(stream,state){var escaped=false,next,end=false;while((next=stream.next())!=null){if(next==quote&&!escaped){end=true;break;}
-escaped=!escaped&&next=="\\";}
-if(end||!(escaped||multiLineStrings))
-state.tokenize=null;return"string";};}
-function tokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=null;break;}
-maybeEnd=(ch=="*");}
-return"comment";}
-function Context(indented,column,type,align,prev){this.indented=indented;this.column=column;this.type=type;this.align=align;this.prev=prev;}
-function pushContext(state,col,type){var indent=state.indented;if(state.context&&state.context.type=="statement")
-indent=state.context.indented;return state.context=new Context(indent,col,type,null,state.context);}
-function popContext(state){var t=state.context.type;if(t==")"||t=="]"||t=="}")
-state.indented=state.context.indented;return state.context=state.context.prev;}
-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:"//",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 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";}
-if(stream.match("###")){state.tokenize=longComment;return state.tokenize(stream,state);}
-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";}
-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(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(/['"\/]/);}}
-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 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){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,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 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()!='"'){}
-var style="string";}else if(state.pending&&stream.pos<state.pending.end){stream.pos=state.pending.end;var style=state.pending.style;}else{var style=htmlMode.token(stream,state.curState);}
-state.pending=null;var cur=stream.current(),openPHP=cur.search(/<\?/);if(openPHP!=-1){if(style=="string"&&/\"$/.test(cur)&&!/\?>/.test(cur))state.pending='"';else state.pending={end:stream.pos,style:style};stream.backUp(cur.length-openPHP);}
-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.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;}
-var ch=stream.peek();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){stream.eat(/J/i);return'number';}
-var intLiteral=false;if(stream.match(/^0x[0-9a-f]+/i)){intLiteral=true;}
-if(stream.match(/^0b[01]+/i)){intLiteral=true;}
-if(stream.match(/^0o[0-7]+/i)){intLiteral=true;}
-if(stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)){stream.eat(/J/i);intLiteral=true;}
-if(stream.match(/^0(?![\dx])/i)){intLiteral=true;}
-if(intLiteral){stream.eat(/L/i);return'number';}}
-if(stream.match(stringPrefixes)){state.tokenize=tokenStringFactory(stream.current());return state.tokenize(stream,state);}
-if(stream.match(tripleDelimiters)||stream.match(doubleDelimiters)){return null;}
-if(stream.match(doubleOperators)||stream.match(singleOperators)||stream.match(wordOperators)){return'operator';}
-if(stream.match(singleDelimiters)){return null;}
-if(stream.match(keywords)){return'keyword';}
-if(stream.match(builtins)){return'builtin';}
-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(/['"]/);}}
-if(singleline){if(parserConf.singleLineStringErrors){return ERRORCLASS;}else{state.tokenize=tokenBase;}}
-return OUTCLASS;}
-tokenString.isString=true;return tokenString;}
-function indent(stream,state,type){type=type||'py';var indentUnit=0;if(type==='py'){if(state.scopes[0].type!=='py'){state.scopes[0].offset=stream.indentation();return;}
-for(var i=0;i<state.scopes.length;++i){if(state.scopes[i].type==='py'){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,type){type=type||'py';if(state.scopes.length==1)return;if(state.scopes[0].type==='py'){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{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.lastStyle==='meta'){style='meta';}
-return style;}
-if(current==='@'){return stream.match(identifiers,false)?'meta':ERRORCLASS;}
-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));}
-if(indentInfo==='dedent'){if(dedent(stream,state)){return ERRORCLASS;}}
-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'}],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:"#",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);}
-if(ch==='+'||ch==='='){return'operator';}
-if(ch==='-'){stream.eat('-');stream.eatWhile(/\w/);return'attribute';}
-if(/\d/.test(ch)){stream.eatWhile(/\d/);if(!/\w/.test(stream.peek())){return'number';}}
-stream.eatWhile(/[\w-]/);var cur=stream.current();if(stream.peek()==='='&&/\w+/.test(cur))return'def';return words.hasOwnProperty(cur)?words[cur]:null;}
-function tokenString(quote){return function(stream,state){var next,end=false,escaped=false;while((next=stream.next())!=null){if(next===quote&&!escaped){end=true;break;}
-if(next==='$'&&!escaped&&quote!=='\''){escaped=true;stream.backUp(1);state.tokens.unshift(tokenDollar);break;}
-escaped=!escaped&&next==='\\';}
-if(end||!escaped){state.tokens.shift();}
-return(quote==='`'||quote===')'?'quote':'string');};};var tokenDollar=function(stream,state){if(state.tokens.length>1)stream.eat('$');var ch=stream.next(),hungry=/\w/;if(ch==='{')hungry=/[^}]/;if(ch==='('){state.tokens[0]=tokenString(')');return tokenize(stream,state);}
-if(!/\d/.test(ch)){stream.eatWhile(hungry);stream.eat('}');}
-state.tokens.shift();return'def';};function tokenize(stream,state){return(state.tokens[0]||tokenBase)(stream,state);};return{startState:function(){return{tokens:[]};},token:function(stream,state){if(stream.eatSpace())return null;return tokenize(stream,state);}};});CodeMirror.defineMIME('text/x-sh','shell');;WebInspector.CodeMirrorUtils={createTokenizer:function(mimeType)
-{var mode=CodeMirror.getMode({indentUnit:2},mimeType);var state=CodeMirror.startState(mode);function tokenize(line,callback)
-{var stream=new CodeMirror.StringStream(line);while(!stream.eol()){var style=mode.token(stream,state);var value=stream.current();callback(value,style,stream.start,stream.start+value.length);stream.start=stream.pos;}}
-return tokenize;},convertTokenType:function(tokenType)
-{if(tokenType.startsWith("js-variable")||tokenType.startsWith("js-property")||tokenType==="js-def")
-return"javascript-ident";if(tokenType==="js-string-2")
-return"javascript-regexp";if(tokenType==="js-number"||tokenType==="js-comment"||tokenType==="js-string"||tokenType==="js-keyword")
-return"javascript-"+tokenType.substring("js-".length);if(tokenType==="css-number")
-return"css-number";return null;},overrideModeWithPrefixedTokens:function(modeName,tokenPrefix)
-{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(null,codeMirrorMode.token);return codeMirrorMode;}
-function tokenOverride(superToken,stream,state)
-{var token=superToken(stream,state);return token?tokenPrefix+token:token;}}}
-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)
-{for(var i=0;i<line.length;++i){if(!WebInspector.TextUtils.isSpaceChar(line[i]))
-return i;}
-return line.length;}
-function innerSmartNewlineAndIndent(codeMirror)
-{var cur=codeMirror.getCursor("start");var line=codeMirror.getLine(cur.line);var indent=cur.line>0?countIndent(line):0;if(cur.ch<=indent){codeMirror.replaceSelection("\n"+line.substring(0,cur.ch),"end","+input");codeMirror.setSelection(new CodeMirror.Pos(cur.line+1,cur.ch));}else
-codeMirror.execCommand("newlineAndIndent");}}
-CodeMirror.commands.undoAndReveal=function(codemirror)
-{var scrollInfo=codemirror.getScrollInfo();codemirror.execCommand("undo");var cursor=codemirror.getCursor("start");codemirror._codeMirrorTextEditor._innerRevealLine(cursor.line,scrollInfo);}
-CodeMirror.commands.redoAndReveal=function(codemirror)
-{var scrollInfo=codemirror.getScrollInfo();codemirror.execCommand("redo");var cursor=codemirror.getCursor("start");codemirror._codeMirrorTextEditor._innerRevealLine(cursor.line,scrollInfo);}
-WebInspector.CodeMirrorTextEditor.LongLineModeLineLengthThreshold=2000;WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan=16;WebInspector.CodeMirrorTextEditor.prototype={_enableBracketMatchingIfNeeded:function()
-{this._codeMirror.setOption("autoCloseBrackets",WebInspector.settings.textEditorBracketMatching.get()?{explode:false}:false);},wasShown:function()
-{this._codeMirror.refresh();},_guessIndentationLevel:function()
-{var tabRegex=/^\t+/;var tabLines=0;var indents={};function processLine(lineHandle)
-{var text=lineHandle.text;if(text.length===0||!WebInspector.TextUtils.isSpaceChar(text[0]))
-return;if(tabRegex.test(text)){++tabLines;return;}
-var i=0;while(i<text.length&&WebInspector.TextUtils.isSpaceChar(text[i]))
-++i;if(i%2!==0)
-return;indents[i]=1+(indents[i]||0);}
-this._codeMirror.eachLine(processLine);var onePercentFilterThreshold=this.linesCount/100;if(tabLines&&tabLines>onePercentFilterThreshold)
-return"\t";var minimumIndent=Infinity;for(var i in indents){if(indents[i]<onePercentFilterThreshold)
-continue;var indent=parseInt(i,10);if(minimumIndent>indent)
-minimumIndent=indent;}
-if(minimumIndent===Infinity)
-return WebInspector.TextUtils.Indent.FourSpaces;return new Array(minimumIndent+1).join(" ");},_updateEditorIndentation:function()
-{var extraKeys={};var indent=WebInspector.settings.textEditorIndent.get();if(WebInspector.settings.textEditorAutoDetectIndent.get())
-indent=this._guessIndentationLevel();if(indent===WebInspector.TextUtils.Indent.TabCharacter){this._codeMirror.setOption("indentWithTabs",true);this._codeMirror.setOption("indentUnit",4);}else{this._codeMirror.setOption("indentWithTabs",false);this._codeMirror.setOption("indentUnit",indent.length);extraKeys.Tab=function(codeMirror)
-{if(codeMirror.somethingSelected())
-return CodeMirror.Pass;var pos=codeMirror.getCursor("head");codeMirror.replaceRange(indent.substring(pos.ch%indent.length),codeMirror.getCursor());}}
-this._codeMirror.setOption("extraKeys",extraKeys);this._indentationLevel=indent;},indent:function()
-{return this._indentationLevel;},highlightSearchResults:function(regex,range)
-{function innerHighlightRegex()
-{if(range){this.revealLine(range.startLine);if(range.endColumn>WebInspector.CodeMirrorTextEditor.maxHighlightLength)
-this.setSelection(range);else
-this.setSelection(WebInspector.TextRange.createFromLocation(range.startLine,range.startColumn));}else{this.setSelection(this.selection().collapseToEnd());}
-this._tokenHighlighter.highlightSearchResults(regex,range);}
-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)
-return;WebInspector.CodeMirrorTextEditor._selectionStyleInjected=true;var backgroundColor=WebInspector.getSelectionBackgroundColor();var backgroundColorRule=backgroundColor?".CodeMirror .CodeMirror-selected { background-color: "+backgroundColor+";}":"";var foregroundColor=WebInspector.getSelectionForegroundColor();var foregroundColorRule=foregroundColor?".CodeMirror .CodeMirror-selectedtext:not(.CodeMirror-persist-highlight) { color: "+foregroundColor+"!important;}":"";if(!foregroundColorRule&&!backgroundColorRule)
-return;var style=document.createElement("style");style.textContent=backgroundColorRule+foregroundColorRule;document.head.appendChild(style);},_setupWhitespaceHighlight:function()
-{if(WebInspector.CodeMirrorTextEditor._whitespaceStyleInjected||!WebInspector.settings.showWhitespacesInEditor.get())
-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]))
-this._dictionary.addWord(words[i]);}},_removeTextFromCompletionDictionary:function(text)
-{var words=WebInspector.TextUtils.textToWords(text);for(var i=0;i<words.length;++i){if(this._shouldProcessWordForAutocompletion(words[i]))
-this._dictionary.removeWord(words[i]);}},setCompletionDictionary:function(dictionary)
-{if(!dictionary){delete this._dictionary;return;}
-this._dictionary=dictionary;this._addTextToCompletionDictionary(this.text());},cursorPositionToCoordinates:function(lineNumber,column)
-{if(lineNumber>=this._codeMirror.lineCount()||lineNumber<0||column<0||column>this._codeMirror.getLine(lineNumber).length)
-return null;var metrics=this._codeMirror.cursorCoords(new CodeMirror.Pos(lineNumber,column));return{x:metrics.left,y:metrics.top,height:metrics.bottom-metrics.top};},coordinatesToCursorPosition:function(x,y)
-{var element=document.elementFromPoint(x,y);if(!element||!element.isSelfOrDescendant(this._codeMirror.getWrapperElement()))
-return null;var gutterBox=this._codeMirror.getGutterElement().boxInWindow();if(x>=gutterBox.x&&x<=gutterBox.x+gutterBox.width&&y>=gutterBox.y&&y<=gutterBox.y+gutterBox.height)
-return null;var coords=this._codeMirror.coordsChar({left:x,top:y});return this._toRange(coords,coords);},tokenAtTextPosition:function(lineNumber,column)
-{if(lineNumber<0||lineNumber>=this._codeMirror.lineCount())
-return null;var token=this._codeMirror.getTokenAt(new CodeMirror.Pos(lineNumber,(column||0)+1));if(!token||!token.type)
-return null;var convertedType=WebInspector.CodeMirrorUtils.convertTokenType(token.type);if(!convertedType)
-return null;return{startColumn:token.start,endColumn:token.end-1,type:convertedType};},copyRange:function(textRange)
-{var pos=this._toPos(textRange.normalize());return this._codeMirror.getRange(pos.start,pos.end);},isClean:function()
-{return this._codeMirror.isClean();},markClean:function()
-{this._codeMirror.markClean();},_hasLongLines:function()
-{function lineIterator(lineHandle)
-{if(lineHandle.text.length>WebInspector.CodeMirrorTextEditor.LongLineModeLineLengthThreshold)
-hasLongLines=true;return hasLongLines;}
-var hasLongLines=false;this._codeMirror.eachLine(lineIterator);return hasLongLines;},_whitespaceOverlayMode:function(mimeType)
-{var modeName=CodeMirror.mimeModes[mimeType]?(CodeMirror.mimeModes[mimeType].name||CodeMirror.mimeModes[mimeType]):CodeMirror.mimeModes["text/plain"];modeName+="+whitespaces";if(CodeMirror.modes[modeName])
-return modeName;function modeConstructor(config,parserConfig)
-{function nextToken(stream)
-{if(stream.peek()===" "){var spaces=0;while(spaces<WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan&&stream.peek()===" "){++spaces;stream.next();}
-return"whitespace whitespace-"+spaces;}
-while(!stream.eol()&&stream.peek()!==" ")
-stream.next();return null;}
-var whitespaceMode={token:nextToken};return CodeMirror.overlayMode(CodeMirror.getMode(config,mimeType),whitespaceMode,false);}
-CodeMirror.defineMode(modeName,modeConstructor);return modeName;},_enableLongLinesMode:function()
-{this._codeMirror.setOption("styleSelectedText",false);this._longLinesMode=true;},_disableLongLinesMode:function()
-{this._codeMirror.setOption("styleSelectedText",true);this._longLinesMode=false;},_updateCodeMirrorMode:function()
-{var showWhitespaces=WebInspector.settings.showWhitespacesInEditor.get();this.element.enableStyleClass("show-whitespaces",showWhitespaces);this._codeMirror.setOption("mode",showWhitespaces?this._whitespaceOverlayMode(this._mimeType):this._mimeType);},setMimeType:function(mimeType)
-{this._mimeType=mimeType;if(this._hasLongLines())
-this._enableLongLinesMode();else
-this._disableLongLinesMode();this._updateCodeMirrorMode();},setReadOnly:function(readOnly)
-{this.element.enableStyleClass("CodeMirror-readonly",readOnly)
-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"});},defaultFocusedElement:function()
-{return this.element;},focus:function()
-{this._codeMirror.focus();},_handleElementFocus:function()
-{this._codeMirror.focus();},beginUpdates:function()
-{++this._nestedUpdatesCounter;},endUpdates:function()
-{if(!--this._nestedUpdatesCounter)
-this._codeMirror.refresh();},revealLine:function(lineNumber)
-{this._innerRevealLine(lineNumber,this._codeMirror.getScrollInfo());},_innerRevealLine:function(lineNumber,scrollInfo)
-{var topLine=this._codeMirror.lineAtHeight(scrollInfo.top,"local");var bottomLine=this._codeMirror.lineAtHeight(scrollInfo.top+scrollInfo.clientHeight,"local");var linesPerScreen=bottomLine-topLine+1;if(lineNumber<topLine){var topLineToReveal=Math.max(lineNumber-(linesPerScreen/2)+1,0)|0;this._codeMirror.scrollIntoView(new CodeMirror.Pos(topLineToReveal,0));}else if(lineNumber>bottomLine){var bottomLineToReveal=Math.min(lineNumber+(linesPerScreen/2)-1,this.linesCount-1)|0;this._codeMirror.scrollIntoView(new CodeMirror.Pos(bottomLineToReveal,0));}},_gutterClick:function(instance,lineNumber,gutter,event)
-{this.dispatchEventToListeners(WebInspector.TextEditor.Events.GutterClick,{lineNumber:lineNumber,event:event});},_contextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);var target=event.target.enclosingNodeOrSelfWithClass("CodeMirror-gutter-elt");if(target)
-this._delegate.populateLineGutterContextMenu(contextMenu,parseInt(target.textContent,10)-1);else
-this._delegate.populateTextAreaContextMenu(contextMenu,0);contextMenu.show();},addBreakpoint:function(lineNumber,disabled,conditional)
-{if(lineNumber<0||lineNumber>=this._codeMirror.lineCount())
-return;var className="cm-breakpoint"+(conditional?" cm-breakpoint-conditional":"")+(disabled?" cm-breakpoint-disabled":"");this._codeMirror.addLineClass(lineNumber,"wrap",className);},removeBreakpoint:function(lineNumber)
-{if(lineNumber<0||lineNumber>=this._codeMirror.lineCount())
-return;var wrapClasses=this._codeMirror.getLineHandle(lineNumber).wrapClass;if(!wrapClasses)
-return;var classes=wrapClasses.split(" ");for(var i=0;i<classes.length;++i){if(classes[i].startsWith("cm-breakpoint"))
-this._codeMirror.removeLineClass(lineNumber,"wrap",classes[i]);}},setExecutionLine:function(lineNumber)
-{this._executionLine=this._codeMirror.getLineHandle(lineNumber);this._codeMirror.addLineClass(this._executionLine,"wrap","cm-execution-line");},clearExecutionLine:function()
-{if(this._executionLine)
-this._codeMirror.removeLineClass(this._executionLine,"wrap","cm-execution-line");delete this._executionLine;},addDecoration:function(lineNumber,element)
-{var widget=this._codeMirror.addLineWidget(lineNumber,element);this._elementToWidget.put(element,widget);},removeDecoration:function(lineNumber,element)
-{var widget=this._elementToWidget.remove(element);if(widget)
-this._codeMirror.removeLineWidget(widget);},highlightPosition:function(lineNumber,columnNumber)
-{if(lineNumber<0)
-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.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.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())
-return;var scrollInfo=this._codeMirror.getScrollInfo();var width=parentElement.offsetWidth;var height=parentElement.offsetHeight;this._codeMirror.setSize(width,height);this._updatePaddingBottom(width,height);this._codeMirror.scrollTo(scrollInfo.left,scrollInfo.top);},onResize:function()
-{this._resizeEditor();},editRange:function(range,text)
-{var pos=this._toPos(range);this._codeMirror.replaceRange(text,pos.start,pos.end);var newRange=this._toRange(pos.start,this._codeMirror.posFromIndex(this._codeMirror.indexFromPos(pos.start)+text.length));this._delegate.onTextChanged(range,newRange);if(WebInspector.settings.textEditorAutoDetectIndent.get())
-this._updateEditorIndentation();return newRange;},_wordRangeForCursorPosition:function(lineNumber,column,prefixOnly)
-{var line=this.line(lineNumber);if(column===0||!WebInspector.TextUtils.isWordChar(line.charAt(column-1)))
-return null;var wordStart=column-1;while(wordStart>0&&WebInspector.TextUtils.isWordChar(line.charAt(wordStart-1)))
---wordStart;if(prefixOnly)
-return new WebInspector.TextRange(lineNumber,wordStart,lineNumber,column);var wordEnd=column;while(wordEnd<line.length&&WebInspector.TextUtils.isWordChar(line.charAt(wordEnd)))
-++wordEnd;return new WebInspector.TextRange(lineNumber,wordStart,lineNumber,wordEnd);},_beforeChange:function(codeMirror,changeObject)
-{if(!this._dictionary)
-return;this._updatedLines=this._updatedLines||{};for(var i=changeObject.from.line;i<=changeObject.to.line;++i)
-this._updatedLines[i]=this.line(i);},_change:function(codeMirror,changeObject)
-{var hasOneLine=this._codeMirror.lineCount()===1;if(hasOneLine!==this._hasOneLine)
-this._resizeEditor();this._hasOneLine=hasOneLine;var widgets=this._elementToWidget.values();for(var i=0;i<widgets.length;++i)
-this._codeMirror.removeLineWidget(widgets[i]);this._elementToWidget.clear();if(this._updatedLines){for(var lineNumber in this._updatedLines)
-this._removeTextFromCompletionDictionary(this._updatedLines[lineNumber]);delete this._updatedLines;}
-var linesToUpdate={};var singleCharInput=false;do{var oldRange=this._toRange(changeObject.from,changeObject.to);var newRange=oldRange.clone();var linesAdded=changeObject.text.length;singleCharInput=(changeObject.origin==="+input"&&changeObject.text.length===1&&changeObject.text[0].length===1)||(changeObject.origin==="+delete"&&changeObject.removed.length===1&&changeObject.removed[0].length===1);if(linesAdded===0){newRange.endLine=newRange.startLine;newRange.endColumn=newRange.startColumn;}else if(linesAdded===1){newRange.endLine=newRange.startLine;newRange.endColumn=newRange.startColumn+changeObject.text[0].length;}else{newRange.endLine=newRange.startLine+linesAdded-1;newRange.endColumn=changeObject.text[linesAdded-1].length;}
-if(!this._muteTextChangedEvent)
-this._delegate.onTextChanged(oldRange,newRange);for(var i=newRange.startLine;i<=newRange.endLine;++i){linesToUpdate[i]=true;}
-if(this._dictionary){for(var i=newRange.startLine;i<=newRange.endLine;++i)
-linesToUpdate[i]=this.line(i);}}while(changeObject=changeObject.next);if(this._dictionary){for(var lineNumber in linesToUpdate)
-this._addTextToCompletionDictionary(linesToUpdate[lineNumber]);}
-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));},_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()
-{this._autocompleteController.finishAutocomplete();},scrollToLine:function(lineNumber)
-{var pos=new CodeMirror.Pos(lineNumber,0);var coords=this._codeMirror.charCoords(pos,"local");this._codeMirror.scrollTo(0,coords.top);},firstVisibleLine:function()
-{return this._codeMirror.lineAtHeight(this._codeMirror.getScrollInfo().top,"local");},lastVisibleLine:function()
-{var scrollInfo=this._codeMirror.getScrollInfo();return this._codeMirror.lineAtHeight(scrollInfo.top+scrollInfo.clientHeight,"local");},selection:function()
-{var start=this._codeMirror.getCursor("anchor");var end=this._codeMirror.getCursor("head");return this._toRange(start,end);},lastSelection:function()
-{return this._lastSelection;},setSelection:function(textRange)
-{this._lastSelection=textRange;var pos=this._toPos(textRange);this._codeMirror.setSelection(pos.start,pos.end);},_detectLineSeparator:function(text)
-{this._lineSeparator=text.indexOf("\r\n")>=0?"\r\n":"\n";},setText:function(text)
-{this._muteTextChangedEvent=true;this._codeMirror.setValue(text);this._updateEditorIndentation();if(this._shouldClearHistory){this._codeMirror.clearHistory();this._shouldClearHistory=false;}
-this._detectLineSeparator(text);delete this._muteTextChangedEvent;},text:function()
-{return this._codeMirror.getValue().replace(/\n/g,this._lineSeparator);},range:function()
-{var lineCount=this.linesCount;var lastLine=this._codeMirror.getLine(lineCount-1);return this._toRange(new CodeMirror.Pos(0,0),new CodeMirror.Pos(lineCount-1,lastLine.length));},line:function(lineNumber)
-{return this._codeMirror.getLine(lineNumber);},get linesCount()
-{return this._codeMirror.lineCount();},setAttribute:function(line,name,value)
-{if(line<0||line>=this._codeMirror.lineCount())
-return;var handle=this._codeMirror.getLineHandle(line);if(handle.attributes===undefined)handle.attributes={};handle.attributes[name]=value;},getAttribute:function(line,name)
-{if(line<0||line>=this._codeMirror.lineCount())
-return null;var handle=this._codeMirror.getLineHandle(line);return handle.attributes&&handle.attributes[name]!==undefined?handle.attributes[name]:null;},removeAttribute:function(line,name)
-{if(line<0||line>=this._codeMirror.lineCount())
-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);},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)
-{var oldRegex=this._highlightRegex;this._highlightRegex=regex;this._highlightRange=range;if(this._searchResultMarker){this._searchResultMarker.clear();delete this._searchResultMarker;}
-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),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)
-return;if(selectionStart.ch===selectionEnd.ch)
-return;var selectedText=this._codeMirror.getSelection();if(this._isWord(selectedText,selectionStart.line,selectionStart.ch,selectionEnd.ch)){if(selectionStart)
-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,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";}}
-var match=stream.match(regex,false);if(match){stream.next();var matchLength=match[0].length;if(matchLength===1)
-return"search-highlight search-highlight-full";this._searchMatchLength=matchLength;return"search-highlight search-highlight-start";}
-while(!stream.match(regex,false)&&stream.next()){};},_tokenHighlighter:function(token,selectionStart,stream)
-{var tokenFirstChar=token.charAt(0);if(stream.match(token)&&(stream.eol()||!WebInspector.TextUtils.isWordChar(stream.peek())))
-return stream.column()===selectionStart.ch?"token-highlight column-with-selection":"token-highlight";var eatenChar;do{eatenChar=stream.next();}while(eatenChar&&(WebInspector.TextUtils.isWordChar(eatenChar)||stream.peek()!==tokenFirstChar));},_setHighlighter:function(highlighter,selectionStart)
-{var overlayMode={token:highlighter};this._codeMirror.addOverlay(overlayMode);this._highlightDescriptor={overlay:overlayMode,selectionStart:selectionStart};}}
-WebInspector.CodeMirrorTextEditor.BlockIndentController=function(codeMirror)
-{codeMirror.addKeyMap(this);}
-WebInspector.CodeMirrorTextEditor.BlockIndentController.prototype={name:"blockIndentKeymap",Enter:function(codeMirror)
-{if(codeMirror.somethingSelected())
-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)
-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)
-{function moveLeft(shift,codeMirror)
-{var cursor=codeMirror.getCursor("head");if(cursor.ch!==0||cursor.line===0)
-return CodeMirror.Pass;codeMirror.setExtending(shift);codeMirror.execCommand("goLineUp");codeMirror.execCommand("goLineEnd")
-codeMirror.setExtending(false);}
-function moveRight(shift,codeMirror)
-{var cursor=codeMirror.getCursor("head");var line=codeMirror.getLine(cursor.line);if(cursor.ch!==line.length||cursor.line+1===codeMirror.lineCount())
-return CodeMirror.Pass;codeMirror.setExtending(shift);codeMirror.execCommand("goLineDown");codeMirror.execCommand("goLineStart");codeMirror.setExtending(false);}
-function delWordBack(codeMirror)
-{if(codeMirror.somethingSelected())
-return CodeMirror.Pass;var cursor=codeMirror.getCursor("head");if(cursor.ch===0)
-codeMirror.execCommand("delCharBefore");else
-return CodeMirror.Pass;}
-var modifierKey=WebInspector.isMac()?"Alt":"Ctrl";var leftKey=modifierKey+"-Left";var rightKey=modifierKey+"-Right";var keyMap={};keyMap[leftKey]=moveLeft.bind(this,false);keyMap[rightKey]=moveRight.bind(this,false);keyMap["Shift-"+leftKey]=moveLeft.bind(this,true);keyMap["Shift-"+rightKey]=moveRight.bind(this,true);keyMap[modifierKey+"-Backspace"]=delWordBack.bind(this);codeMirror.addKeyMap(keyMap);}
-WebInspector.CodeMirrorTextEditor.AutocompleteController=function(textEditor,codeMirror)
-{this._textEditor=textEditor;this._codeMirror=codeMirror;this._codeMirror.on("scroll",this._onScroll.bind(this));this._codeMirror.on("cursorActivity",this._onCursorActivity.bind(this));}
-WebInspector.CodeMirrorTextEditor.AutocompleteController.prototype={autocomplete:function()
-{var dictionary=this._textEditor._dictionary;if(!dictionary||this._codeMirror.somethingSelected()){this.finishAutocomplete();return;}
-var cursor=this._codeMirror.getCursor();var substituteRange=this._textEditor._wordRangeForCursorPosition(cursor.line,cursor.ch,false);if(!substituteRange||substituteRange.startColumn===cursor.ch){this.finishAutocomplete();return;}
-var prefixRange=substituteRange.clone();prefixRange.endColumn=cursor.ch;var substituteWord=this._textEditor.copyRange(substituteRange);var hasPrefixInDictionary=dictionary.hasWord(substituteWord);if(hasPrefixInDictionary)
-dictionary.removeWord(substituteWord);var wordsWithPrefix=dictionary.wordsWithPrefix(this._textEditor.copyRange(prefixRange));if(hasPrefixInDictionary)
-dictionary.addWord(substituteWord);function sortSuggestions(a,b)
-{return dictionary.wordCount(b)-dictionary.wordCount(a)||a.length-b.length;}
-wordsWithPrefix.sort(sortSuggestions);if(!this._suggestBox){this._suggestBox=new WebInspector.SuggestBox(this,this._textEditor.element,"generic-suggest",6);this._anchorBox=this._anchorBoxForPosition(cursor.line,cursor.ch);}
-this._suggestBox.updateSuggestions(this._anchorBox,wordsWithPrefix,0,true,this._textEditor.copyRange(prefixRange));this._prefixRange=prefixRange;if(!this._suggestBox.visible())
-this.finishAutocomplete();},finishAutocomplete:function()
-{if(!this._suggestBox)
-return;this._suggestBox.hide();this._suggestBox=null;this._prefixRange=null;this._anchorBox=null;},keyDown:function(e)
-{if(!this._suggestBox)
-return false;if(e.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code){this.finishAutocomplete();return true;}
-if(e.keyCode===WebInspector.KeyboardShortcut.Keys.Tab.code){this._suggestBox.acceptSuggestion();this.finishAutocomplete();return true;}
-return this._suggestBox.keyPressed(e);},applySuggestion:function(suggestion,isIntermediateSuggestion)
-{this._currentSuggestion=suggestion;},acceptSuggestion:function()
-{if(this._prefixRange.endColumn-this._prefixRange.startColumn!==this._currentSuggestion.length){var pos=this._textEditor._toPos(this._prefixRange);this._codeMirror.replaceRange(this._currentSuggestion,pos.start,pos.end,"+autocomplete");}},_onScroll:function()
-{if(!this._suggestBox)
-return;var cursor=this._codeMirror.getCursor();var scrollInfo=this._codeMirror.getScrollInfo();var topmostLineNumber=this._codeMirror.lineAtHeight(scrollInfo.top,"local");var bottomLine=this._codeMirror.lineAtHeight(scrollInfo.top+scrollInfo.clientHeight,"local");if(cursor.line<topmostLineNumber||cursor.line>bottomLine)
-this.finishAutocomplete();else{this._anchorBox=this._anchorBoxForPosition(cursor.line,cursor.ch);this._suggestBox.setPosition(this._anchorBox);}},_onCursorActivity:function()
-{if(!this._suggestBox)
-return;var cursor=this._codeMirror.getCursor();if(cursor.line!==this._prefixRange.startLine||cursor.ch>this._prefixRange.endColumn||cursor.ch<this._prefixRange.startColumn)
-this.finishAutocomplete();},_anchorBoxForPosition:function(line,column)
-{var metrics=this._textEditor.cursorPositionToCoordinates(line,column);return metrics?new AnchorBox(metrics.x,metrics.y,0,metrics.height):null;},}
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/DevTools.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/DevTools.js
new file mode 100644 (file)
index 0000000..6829b99
--- /dev/null
@@ -0,0 +1,44193 @@
+\r
+\r
+\r
+\r
+\r
+Function.prototype.bind = function(thisObject)\r
+{\r
+var func = this;\r
+var args = Array.prototype.slice.call(arguments, 1);\r
+function bound()\r
+{\r
+return func.apply(thisObject, args.concat(Array.prototype.slice.call(arguments, 0)));\r
+}\r
+bound.toString = function() {\r
+return "bound: " + func;\r
+};\r
+return bound;\r
+}\r
+\r
+Node.prototype.rangeOfWord = function(offset, stopCharacters, stayWithinNode, direction)\r
+{\r
+var startNode;\r
+var startOffset = 0;\r
+var endNode;\r
+var endOffset = 0;\r
+\r
+if (!stayWithinNode)\r
+stayWithinNode = this;\r
+\r
+if (!direction || direction === "backward" || direction === "both") {\r
+var node = this;\r
+while (node) {\r
+if (node === stayWithinNode) {\r
+if (!startNode)\r
+startNode = stayWithinNode;\r
+break;\r
+}\r
+\r
+if (node.nodeType === Node.TEXT_NODE) {\r
+var start = (node === this ? (offset - 1) : (node.nodeValue.length - 1));\r
+for (var i = start; i >= 0; --i) {\r
+if (stopCharacters.indexOf(node.nodeValue[i]) !== -1) {\r
+startNode = node;\r
+startOffset = i + 1;\r
+break;\r
+}\r
+}\r
+}\r
+\r
+if (startNode)\r
+break;\r
+\r
+node = node.traversePreviousNode(stayWithinNode);\r
+}\r
+\r
+if (!startNode) {\r
+startNode = stayWithinNode;\r
+startOffset = 0;\r
+}\r
+} else {\r
+startNode = this;\r
+startOffset = offset;\r
+}\r
+\r
+if (!direction || direction === "forward" || direction === "both") {\r
+node = this;\r
+while (node) {\r
+if (node === stayWithinNode) {\r
+if (!endNode)\r
+endNode = stayWithinNode;\r
+break;\r
+}\r
+\r
+if (node.nodeType === Node.TEXT_NODE) {\r
+var start = (node === this ? offset : 0);\r
+for (var i = start; i < node.nodeValue.length; ++i) {\r
+if (stopCharacters.indexOf(node.nodeValue[i]) !== -1) {\r
+endNode = node;\r
+endOffset = i;\r
+break;\r
+}\r
+}\r
+}\r
+\r
+if (endNode)\r
+break;\r
+\r
+node = node.traverseNextNode(stayWithinNode);\r
+}\r
+\r
+if (!endNode) {\r
+endNode = stayWithinNode;\r
+endOffset = stayWithinNode.nodeType === Node.TEXT_NODE ? stayWithinNode.nodeValue.length : stayWithinNode.childNodes.length;\r
+}\r
+} else {\r
+endNode = this;\r
+endOffset = offset;\r
+}\r
+\r
+var result = this.ownerDocument.createRange();\r
+result.setStart(startNode, startOffset);\r
+result.setEnd(endNode, endOffset);\r
+\r
+return result;\r
+}\r
+\r
+Node.prototype.traverseNextTextNode = function(stayWithin)\r
+{\r
+var node = this.traverseNextNode(stayWithin);\r
+if (!node)\r
+return;\r
+\r
+while (node && node.nodeType !== Node.TEXT_NODE)\r
+node = node.traverseNextNode(stayWithin);\r
+\r
+return node;\r
+}\r
+\r
+Node.prototype.rangeBoundaryForOffset = function(offset)\r
+{\r
+var node = this.traverseNextTextNode(this);\r
+while (node && offset > node.nodeValue.length) {\r
+offset -= node.nodeValue.length;\r
+node = node.traverseNextTextNode(this);\r
+}\r
+if (!node)\r
+return { container: this, offset: 0 };\r
+return { container: node, offset: offset };\r
+}\r
+\r
+Element.prototype.removeStyleClass = function(className) \r
+{\r
+\r
+if (this.className === className) {\r
+this.className = "";\r
+return;\r
+}\r
+\r
+var index = this.className.indexOf(className);\r
+if (index === -1)\r
+return;\r
+\r
+this.className = this.className.split(" ").filter(function(s) {\r
+return s && s !== className;\r
+}).join(" ");\r
+}\r
+\r
+Element.prototype.removeMatchingStyleClasses = function(classNameRegex)\r
+{\r
+var regex = new RegExp("(^|\\s+)" + classNameRegex + "($|\\s+)");\r
+if (regex.test(this.className))\r
+this.className = this.className.replace(regex, " ");\r
+}\r
+\r
+Element.prototype.addStyleClass = function(className) \r
+{\r
+if (className && !this.hasStyleClass(className))\r
+this.className += (this.className.length ? " " + className : className);\r
+}\r
+\r
+Element.prototype.hasStyleClass = function(className) \r
+{\r
+if (!className)\r
+return false;\r
+\r
+if (this.className === className)\r
+return true;\r
+\r
+var index = this.className.indexOf(className);\r
+if (index === -1)\r
+return false;\r
+var toTest = " " + this.className + " ";\r
+return toTest.indexOf(" " + className + " ", index) !== -1;\r
+}\r
+\r
+Element.prototype.positionAt = function(x, y)\r
+{\r
+this.style.left = x + "px";\r
+this.style.top = y + "px";\r
+}\r
+\r
+Element.prototype.pruneEmptyTextNodes = function()\r
+{\r
+var sibling = this.firstChild;\r
+while (sibling) {\r
+var nextSibling = sibling.nextSibling;\r
+if (sibling.nodeType === this.TEXT_NODE && sibling.nodeValue === "")\r
+this.removeChild(sibling);\r
+sibling = nextSibling;\r
+}\r
+}\r
+\r
+Element.prototype.isScrolledToBottom = function()\r
+{\r
+return this.scrollTop === this.scrollHeight - this.offsetHeight;\r
+}\r
+\r
+Node.prototype.enclosingNodeOrSelfWithNodeNameInArray = function(nameArray)\r
+{\r
+for (var node = this; node && node !== this.ownerDocument; node = node.parentNode)\r
+for (var i = 0; i < nameArray.length; ++i)\r
+if (node.nodeName.toLowerCase() === nameArray[i].toLowerCase())\r
+return node;\r
+return null;\r
+}\r
+\r
+Node.prototype.enclosingNodeOrSelfWithNodeName = function(nodeName)\r
+{\r
+return this.enclosingNodeOrSelfWithNodeNameInArray([nodeName]);\r
+}\r
+\r
+Node.prototype.enclosingNodeOrSelfWithClass = function(className)\r
+{\r
+for (var node = this; node && node !== this.ownerDocument; node = node.parentNode)\r
+if (node.nodeType === Node.ELEMENT_NODE && node.hasStyleClass(className))\r
+return node;\r
+return null;\r
+}\r
+\r
+Node.prototype.enclosingNodeWithClass = function(className)\r
+{\r
+if (!this.parentNode)\r
+return null;\r
+return this.parentNode.enclosingNodeOrSelfWithClass(className);\r
+}\r
+\r
+Element.prototype.query = function(query) \r
+{\r
+return this.ownerDocument.evaluate(query, this, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\r
+}\r
+\r
+Element.prototype.removeChildren = function()\r
+{\r
+if (this.firstChild)\r
+this.textContent = "";\r
+}\r
+\r
+Element.prototype.isInsertionCaretInside = function()\r
+{\r
+var selection = window.getSelection();\r
+if (!selection.rangeCount || !selection.isCollapsed)\r
+return false;\r
+var selectionRange = selection.getRangeAt(0);\r
+return selectionRange.startContainer === this || selectionRange.startContainer.isDescendant(this);\r
+}\r
+\r
+Element.prototype.createChild = function(elementName, className)\r
+{\r
+var element = document.createElement(elementName);\r
+if (className)\r
+element.className = className;\r
+this.appendChild(element);\r
+return element;\r
+}\r
+\r
+Element.prototype.__defineGetter__("totalOffsetLeft", function()\r
+{\r
+var total = 0;\r
+for (var element = this; element; element = element.offsetParent)\r
+total += element.offsetLeft + (this !== element ? element.clientLeft : 0);\r
+return total;\r
+});\r
+\r
+Element.prototype.__defineGetter__("totalOffsetTop", function()\r
+{\r
+var total = 0;\r
+for (var element = this; element; element = element.offsetParent)\r
+total += element.offsetTop + (this !== element ? element.clientTop : 0);\r
+return total;\r
+});\r
+\r
+Element.prototype.offsetRelativeToWindow = function(targetWindow)\r
+{\r
+var elementOffset = {x: 0, y: 0};\r
+var curElement = this;\r
+var curWindow = this.ownerDocument.defaultView;\r
+while (curWindow && curElement) {\r
+elementOffset.x += curElement.totalOffsetLeft;\r
+elementOffset.y += curElement.totalOffsetTop;\r
+if (curWindow === targetWindow)\r
+break;\r
+\r
+curElement = curWindow.frameElement;\r
+curWindow = curWindow.parent;\r
+}\r
+\r
+return elementOffset;\r
+}\r
+\r
+KeyboardEvent.prototype.__defineGetter__("data", function()\r
+{\r
+\r
+\r
+switch (this.type) {\r
+case "keypress":\r
+if (!this.ctrlKey && !this.metaKey)\r
+return String.fromCharCode(this.charCode);\r
+else\r
+return "";\r
+case "keydown":\r
+case "keyup":\r
+if (!this.ctrlKey && !this.metaKey && !this.altKey)\r
+return String.fromCharCode(this.which);\r
+else\r
+return "";\r
+}\r
+});\r
+\r
+Text.prototype.select = function(start, end)\r
+{\r
+start = start || 0;\r
+end = end || this.textContent.length;\r
+\r
+if (start < 0)\r
+start = end + start;\r
+\r
+var selection = window.getSelection();\r
+selection.removeAllRanges();\r
+var range = document.createRange();\r
+range.setStart(this, start);\r
+range.setEnd(this, end);\r
+selection.addRange(range);\r
+return this;\r
+}\r
+\r
+Element.prototype.__defineGetter__("selectionLeftOffset", function() {\r
+\r
+\r
+var selection = window.getSelection();\r
+if (!selection.containsNode(this, true))\r
+return null;\r
+\r
+var leftOffset = selection.anchorOffset;\r
+var node = selection.anchorNode;\r
+\r
+while (node !== this) {\r
+while (node.previousSibling) {\r
+node = node.previousSibling;\r
+leftOffset += node.textContent.length;\r
+}\r
+node = node.parentNode;\r
+}\r
+\r
+return leftOffset;\r
+});\r
+\r
+Node.prototype.isWhitespace = isNodeWhitespace;\r
+Node.prototype.displayName = nodeDisplayName;\r
+Node.prototype.isAncestor = function(node)\r
+{\r
+return isAncestorNode(this, node);\r
+};\r
+Node.prototype.isDescendant = isDescendantNode;\r
+Node.prototype.traverseNextNode = traverseNextNode;\r
+Node.prototype.traversePreviousNode = traversePreviousNode;\r
+Node.prototype.onlyTextChild = onlyTextChild;\r
+\r
+String.prototype.hasSubstring = function(string, caseInsensitive)\r
+{\r
+if (!caseInsensitive)\r
+return this.indexOf(string) !== -1;\r
+return this.match(new RegExp(string.escapeForRegExp(), "i"));\r
+}\r
+\r
+String.prototype.asParsedURL = function()\r
+{\r
+\r
+\r
+\r
+\r
+\r
+\r
+var match = this.match(/^([^:]+):\/\/([^\/:]*)(?::([\d]+))?(?:(\/[^#]*)(?:#(.*))?)?$/i);\r
+if (!match)\r
+return null;\r
+var result = {};\r
+result.scheme = match[1].toLowerCase();\r
+result.host = match[2];\r
+result.port = match[3];\r
+result.path = match[4] || "/";\r
+result.fragment = match[5];\r
+return result;\r
+}\r
+\r
+String.prototype.escapeCharacters = function(chars)\r
+{\r
+var foundChar = false;\r
+for (var i = 0; i < chars.length; ++i) {\r
+if (this.indexOf(chars.charAt(i)) !== -1) {\r
+foundChar = true;\r
+break;\r
+}\r
+}\r
+\r
+if (!foundChar)\r
+return this;\r
+\r
+var result = "";\r
+for (var i = 0; i < this.length; ++i) {\r
+if (chars.indexOf(this.charAt(i)) !== -1)\r
+result += "\\";\r
+result += this.charAt(i);\r
+}\r
+\r
+return result;\r
+}\r
+\r
+String.prototype.escapeForRegExp = function()\r
+{\r
+return this.escapeCharacters("^[]{}()\\.$*+?|");\r
+}\r
+\r
+String.prototype.escapeHTML = function()\r
+{\r
+return this.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");\r
+}\r
+\r
+String.prototype.collapseWhitespace = function()\r
+{\r
+return this.replace(/[\s\xA0]+/g, " ");\r
+}\r
+\r
+String.prototype.trimURL = function(baseURLDomain)\r
+{\r
+var result = this.replace(/^(https|http|file):\/\//i, "");\r
+if (baseURLDomain)\r
+result = result.replace(new RegExp("^" + baseURLDomain.escapeForRegExp(), "i"), "");\r
+return result;\r
+}\r
+\r
+function isNodeWhitespace()\r
+{\r
+if (!this || this.nodeType !== Node.TEXT_NODE)\r
+return false;\r
+if (!this.nodeValue.length)\r
+return true;\r
+return this.nodeValue.match(/^[\s\xA0]+$/);\r
+}\r
+\r
+function nodeDisplayName()\r
+{\r
+if (!this)\r
+return "";\r
+\r
+switch (this.nodeType) {\r
+case Node.DOCUMENT_NODE:\r
+return "Document";\r
+\r
+case Node.ELEMENT_NODE:\r
+var name = "<" + this.nodeName.toLowerCase();\r
+\r
+if (this.hasAttributes()) {\r
+var value = this.getAttribute("id");\r
+if (value)\r
+name += " id=\"" + value + "\"";\r
+value = this.getAttribute("class");\r
+if (value)\r
+name += " class=\"" + value + "\"";\r
+if (this.nodeName.toLowerCase() === "a") {\r
+value = this.getAttribute("name");\r
+if (value)\r
+name += " name=\"" + value + "\"";\r
+value = this.getAttribute("href");\r
+if (value)\r
+name += " href=\"" + value + "\"";\r
+} else if (this.nodeName.toLowerCase() === "img") {\r
+value = this.getAttribute("src");\r
+if (value)\r
+name += " src=\"" + value + "\"";\r
+} else if (this.nodeName.toLowerCase() === "iframe") {\r
+value = this.getAttribute("src");\r
+if (value)\r
+name += " src=\"" + value + "\"";\r
+} else if (this.nodeName.toLowerCase() === "input") {\r
+value = this.getAttribute("name");\r
+if (value)\r
+name += " name=\"" + value + "\"";\r
+value = this.getAttribute("type");\r
+if (value)\r
+name += " type=\"" + value + "\"";\r
+} else if (this.nodeName.toLowerCase() === "form") {\r
+value = this.getAttribute("action");\r
+if (value)\r
+name += " action=\"" + value + "\"";\r
+}\r
+}\r
+\r
+return name + ">";\r
+\r
+case Node.TEXT_NODE:\r
+if (isNodeWhitespace.call(this))\r
+return "(whitespace)";\r
+return "\"" + this.nodeValue + "\"";\r
+\r
+case Node.COMMENT_NODE:\r
+return "<!--" + this.nodeValue + "-->";\r
+\r
+case Node.DOCUMENT_TYPE_NODE:\r
+var docType = "<!DOCTYPE " + this.nodeName;\r
+if (this.publicId) {\r
+docType += " PUBLIC \"" + this.publicId + "\"";\r
+if (this.systemId)\r
+docType += " \"" + this.systemId + "\"";\r
+} else if (this.systemId)\r
+docType += " SYSTEM \"" + this.systemId + "\"";\r
+if (this.internalSubset)\r
+docType += " [" + this.internalSubset + "]";\r
+return docType + ">";\r
+}\r
+\r
+return this.nodeName.toLowerCase().collapseWhitespace();\r
+}\r
+\r
+function isAncestorNode(ancestor, node)\r
+{\r
+if (!node || !ancestor)\r
+return false;\r
+\r
+var currentNode = node.parentNode;\r
+while (currentNode) {\r
+if (ancestor === currentNode)\r
+return true;\r
+currentNode = currentNode.parentNode;\r
+}\r
+return false;\r
+}\r
+\r
+function isDescendantNode(descendant)\r
+{\r
+return isAncestorNode(descendant, this);\r
+}\r
+\r
+function traverseNextNode(stayWithin)\r
+{\r
+if (!this)\r
+return;\r
+\r
+var node = this.firstChild;\r
+if (node)\r
+return node;\r
+\r
+if (stayWithin && this === stayWithin)\r
+return null;\r
+\r
+node = this.nextSibling;\r
+if (node)\r
+return node;\r
+\r
+node = this;\r
+while (node && !node.nextSibling && (!stayWithin || !node.parentNode || node.parentNode !== stayWithin))\r
+node = node.parentNode;\r
+if (!node)\r
+return null;\r
+\r
+return node.nextSibling;\r
+}\r
+\r
+function traversePreviousNode(stayWithin)\r
+{\r
+if (!this)\r
+return;\r
+if (stayWithin && this === stayWithin)\r
+return null;\r
+var node = this.previousSibling;\r
+while (node && node.lastChild)\r
+node = node.lastChild;\r
+if (node)\r
+return node;\r
+return this.parentNode;\r
+}\r
+\r
+function onlyTextChild()\r
+{\r
+if (!this)\r
+return null;\r
+\r
+var firstChild = this.firstChild;\r
+if (!firstChild || firstChild.nodeType !== Node.TEXT_NODE)\r
+return null;\r
+\r
+var sibling = firstChild.nextSibling;\r
+return sibling ? null : firstChild;\r
+}\r
+\r
+function appropriateSelectorForNode(node, justSelector)\r
+{\r
+if (!node)\r
+return "";\r
+\r
+var lowerCaseName = node.localName || node.nodeName.toLowerCase();\r
+\r
+var id = node.getAttribute("id");\r
+if (id) {\r
+var selector = "#" + id;\r
+return (justSelector ? selector : lowerCaseName + selector);\r
+}\r
+\r
+var className = node.getAttribute("class");\r
+if (className) {\r
+var selector = "." + className.replace(/\s+/, ".");\r
+return (justSelector ? selector : lowerCaseName + selector);\r
+}\r
+\r
+if (lowerCaseName === "input" && node.getAttribute("type"))\r
+return lowerCaseName + "[type=\"" + node.getAttribute("type") + "\"]";\r
+\r
+return lowerCaseName;\r
+}\r
+\r
+function getDocumentForNode(node)\r
+{\r
+return node.nodeType == Node.DOCUMENT_NODE ? node : node.ownerDocument;\r
+}\r
+\r
+function parentNode(node)\r
+{\r
+return node.parentNode;\r
+}\r
+\r
+Number.millisToString = function(ms, formatterFunction, higherResolution)\r
+{\r
+return Number.secondsToString(ms / 1000, formatterFunction, higherResolution);\r
+}\r
+\r
+Number.secondsToString = function(seconds, formatterFunction, higherResolution)\r
+{\r
+if (!formatterFunction)\r
+formatterFunction = String.sprintf;\r
+\r
+if (seconds === 0)\r
+return "0";\r
+\r
+var ms = seconds * 1000;\r
+if (higherResolution && ms < 1000)\r
+return formatterFunction("%.3fms", ms);\r
+else if (ms < 1000)\r
+return formatterFunction("%.0fms", ms);\r
+\r
+if (seconds < 60)\r
+return formatterFunction("%.2fs", seconds);\r
+\r
+var minutes = seconds / 60;\r
+if (minutes < 60)\r
+return formatterFunction("%.1fmin", minutes);\r
+\r
+var hours = minutes / 60;\r
+if (hours < 24)\r
+return formatterFunction("%.1fhrs", hours);\r
+\r
+var days = hours / 24;\r
+return formatterFunction("%.1f days", days);\r
+}\r
+\r
+Number.bytesToString = function(bytes, formatterFunction, higherResolution)\r
+{\r
+if (!formatterFunction)\r
+formatterFunction = String.sprintf;\r
+if (typeof higherResolution === "undefined")\r
+higherResolution = true;\r
+\r
+if (bytes < 1024)\r
+return formatterFunction("%.0fB", bytes);\r
+\r
+var kilobytes = bytes / 1024;\r
+if (higherResolution && kilobytes < 1024)\r
+return formatterFunction("%.2fKB", kilobytes);\r
+else if (kilobytes < 1024)\r
+return formatterFunction("%.0fKB", kilobytes);\r
+\r
+var megabytes = kilobytes / 1024;\r
+if (higherResolution)\r
+return formatterFunction("%.2fMB", megabytes);\r
+else\r
+return formatterFunction("%.0fMB", megabytes);\r
+}\r
+\r
+Number.constrain = function(num, min, max)\r
+{\r
+if (num < min)\r
+num = min;\r
+else if (num > max)\r
+num = max;\r
+return num;\r
+}\r
+\r
+HTMLTextAreaElement.prototype.moveCursorToEnd = function()\r
+{\r
+var length = this.value.length;\r
+this.setSelectionRange(length, length);\r
+}\r
+\r
+Array.prototype.remove = function(value, onlyFirst)\r
+{\r
+if (onlyFirst) {\r
+var index = this.indexOf(value);\r
+if (index !== -1)\r
+this.splice(index, 1);\r
+return;\r
+}\r
+\r
+var length = this.length;\r
+for (var i = 0; i < length; ++i) {\r
+if (this[i] === value)\r
+this.splice(i, 1);\r
+}\r
+}\r
+\r
+Array.prototype.keySet = function()\r
+{\r
+var keys = {};\r
+for (var i = 0; i < this.length; ++i)\r
+keys[this[i]] = true;\r
+return keys;\r
+}\r
+\r
+Array.diff = function(left, right)\r
+{\r
+var o = left;\r
+var n = right;\r
+\r
+var ns = {};\r
+var os = {};\r
+\r
+for (var i = 0; i < n.length; i++) {\r
+if (ns[n[i]] == null)\r
+ns[n[i]] = { rows: [], o: null };\r
+ns[n[i]].rows.push(i);\r
+}\r
+\r
+for (var i = 0; i < o.length; i++) {\r
+if (os[o[i]] == null)\r
+os[o[i]] = { rows: [], n: null };\r
+os[o[i]].rows.push(i);\r
+}\r
+\r
+for (var i in ns) {\r
+if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) {\r
+n[ns[i].rows[0]] = { text: n[ns[i].rows[0]], row: os[i].rows[0] };\r
+o[os[i].rows[0]] = { text: o[os[i].rows[0]], row: ns[i].rows[0] };\r
+}\r
+}\r
+\r
+for (var i = 0; i < n.length - 1; i++) {\r
+if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null && n[i + 1] == o[n[i].row + 1]) {\r
+n[i + 1] = { text: n[i + 1], row: n[i].row + 1 };\r
+o[n[i].row + 1] = { text: o[n[i].row + 1], row: i + 1 };\r
+}\r
+}\r
+\r
+for (var i = n.length - 1; i > 0; i--) {\r
+if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null && \r
+n[i - 1] == o[n[i].row - 1]) {\r
+n[i - 1] = { text: n[i - 1], row: n[i].row - 1 };\r
+o[n[i].row - 1] = { text: o[n[i].row - 1], row: i - 1 };\r
+}\r
+}\r
+\r
+return { left: o, right: n };\r
+}\r
+\r
+Array.convert = function(list)\r
+{\r
+\r
+return Array.prototype.slice.call(list);\r
+}\r
+\r
+function insertionIndexForObjectInListSortedByFunction(anObject, aList, aFunction)\r
+{\r
+var first = 0;\r
+var last = aList.length - 1;\r
+var floor = Math.floor;\r
+var mid, c;\r
+\r
+while (first <= last) {\r
+mid = floor((first + last) / 2);\r
+c = aFunction(anObject, aList[mid]);\r
+\r
+if (c > 0)\r
+first = mid + 1;\r
+else if (c < 0)\r
+last = mid - 1;\r
+else {\r
+\r
+while (mid > 0 && aFunction(anObject, aList[mid - 1]) === 0)\r
+mid--;\r
+first = mid;\r
+break;\r
+}\r
+}\r
+\r
+return first;\r
+}\r
+\r
+String.sprintf = function(format)\r
+{\r
+return String.vsprintf(format, Array.prototype.slice.call(arguments, 1));\r
+}\r
+\r
+String.tokenizeFormatString = function(format)\r
+{\r
+var tokens = [];\r
+var substitutionIndex = 0;\r
+\r
+function addStringToken(str)\r
+{\r
+tokens.push({ type: "string", value: str });\r
+}\r
+\r
+function addSpecifierToken(specifier, precision, substitutionIndex)\r
+{\r
+tokens.push({ type: "specifier", specifier: specifier, precision: precision, substitutionIndex: substitutionIndex });\r
+}\r
+\r
+var index = 0;\r
+for (var precentIndex = format.indexOf("%", index); precentIndex !== -1; precentIndex = format.indexOf("%", index)) {\r
+addStringToken(format.substring(index, precentIndex));\r
+index = precentIndex + 1;\r
+\r
+if (format[index] === "%") {\r
+addStringToken("%");\r
+++index;\r
+continue;\r
+}\r
+\r
+if (!isNaN(format[index])) {\r
+\r
+var number = parseInt(format.substring(index));\r
+while (!isNaN(format[index]))\r
+++index;\r
+\r
+\r
+if (number > 0 && format[index] === "$") {\r
+substitutionIndex = (number - 1);\r
+++index;\r
+}\r
+}\r
+\r
+var precision = -1;\r
+if (format[index] === ".") {\r
+\r
+\r
+++index;\r
+precision = parseInt(format.substring(index));\r
+if (isNaN(precision))\r
+precision = 0;\r
+while (!isNaN(format[index]))\r
+++index;\r
+}\r
+\r
+addSpecifierToken(format[index], precision, substitutionIndex);\r
+\r
+++substitutionIndex;\r
+++index;\r
+}\r
+\r
+addStringToken(format.substring(index));\r
+\r
+return tokens;\r
+}\r
+\r
+String.standardFormatters = {\r
+d: function(substitution)\r
+{\r
+if (typeof substitution == "object" && WebInspector.RemoteObject.type(substitution) === "number")\r
+substitution = substitution.description;\r
+substitution = parseInt(substitution);\r
+return !isNaN(substitution) ? substitution : 0;\r
+},\r
+\r
+f: function(substitution, token)\r
+{\r
+if (typeof substitution == "object" && WebInspector.RemoteObject.type(substitution) === "number")\r
+substitution = substitution.description;\r
+substitution = parseFloat(substitution);\r
+if (substitution && token.precision > -1)\r
+substitution = substitution.toFixed(token.precision);\r
+return !isNaN(substitution) ? substitution : (token.precision > -1 ? Number(0).toFixed(token.precision) : 0);\r
+},\r
+\r
+s: function(substitution)\r
+{\r
+if (typeof substitution == "object" && WebInspector.RemoteObject.type(substitution) !== "null")\r
+substitution = substitution.description;\r
+return substitution;\r
+},\r
+};\r
+\r
+String.vsprintf = function(format, substitutions)\r
+{\r
+return String.format(format, substitutions, String.standardFormatters, "", function(a, b) { return a + b; }).formattedResult;\r
+}\r
+\r
+String.format = function(format, substitutions, formatters, initialValue, append)\r
+{\r
+if (!format || !substitutions || !substitutions.length)\r
+return { formattedResult: append(initialValue, format), unusedSubstitutions: substitutions };\r
+\r
+function prettyFunctionName()\r
+{\r
+return "String.format(\"" + format + "\", \"" + substitutions.join("\", \"") + "\")";\r
+}\r
+\r
+function warn(msg)\r
+{\r
+console.warn(prettyFunctionName() + ": " + msg);\r
+}\r
+\r
+function error(msg)\r
+{\r
+console.error(prettyFunctionName() + ": " + msg);\r
+}\r
+\r
+var result = initialValue;\r
+var tokens = String.tokenizeFormatString(format);\r
+var usedSubstitutionIndexes = {};\r
+\r
+for (var i = 0; i < tokens.length; ++i) {\r
+var token = tokens[i];\r
+\r
+if (token.type === "string") {\r
+result = append(result, token.value);\r
+continue;\r
+}\r
+\r
+if (token.type !== "specifier") {\r
+error("Unknown token type \"" + token.type + "\" found.");\r
+continue;\r
+}\r
+\r
+if (token.substitutionIndex >= substitutions.length) {\r
+\r
+\r
+error("not enough substitution arguments. Had " + substitutions.length + " but needed " + (token.substitutionIndex + 1) + ", so substitution was skipped.");\r
+result = append(result, "%" + (token.precision > -1 ? token.precision : "") + token.specifier);\r
+continue;\r
+}\r
+\r
+usedSubstitutionIndexes[token.substitutionIndex] = true;\r
+\r
+if (!(token.specifier in formatters)) {\r
+\r
+warn("unsupported format character \u201C" + token.specifier + "\u201D. Treating as a string.");\r
+result = append(result, substitutions[token.substitutionIndex]);\r
+continue;\r
+}\r
+\r
+result = append(result, formatters[token.specifier](substitutions[token.substitutionIndex], token));\r
+}\r
+\r
+var unusedSubstitutions = [];\r
+for (var i = 0; i < substitutions.length; ++i) {\r
+if (i in usedSubstitutionIndexes)\r
+continue;\r
+unusedSubstitutions.push(substitutions[i]);\r
+}\r
+\r
+return { formattedResult: result, unusedSubstitutions: unusedSubstitutions };\r
+}\r
+\r
+function isEnterKey(event) {\r
+\r
+return event.keyCode !== 229 && event.keyIdentifier === "Enter";\r
+}\r
+\r
+\r
+function highlightSearchResult(element, offset, length)\r
+{\r
+var lineText = element.textContent;\r
+var endOffset = offset + length;\r
+var highlightNode = document.createElement("span");\r
+highlightNode.className = "webkit-search-result";\r
+highlightNode.textContent = lineText.substring(offset, endOffset);\r
+\r
+var boundary = element.rangeBoundaryForOffset(offset);\r
+var textNode = boundary.container;\r
+var text = textNode.textContent;\r
+\r
+if (boundary.offset + length < text.length) {\r
+\r
+textNode.textContent = text.substring(boundary.offset + length);\r
+textNode.parentElement.insertBefore(highlightNode, textNode);\r
+var prefixNode = document.createTextNode(text.substring(0, boundary.offset));\r
+textNode.parentElement.insertBefore(prefixNode, highlightNode);\r
+return highlightNode;\r
+}\r
+\r
+var parentElement = textNode.parentElement;\r
+var anchorElement = textNode.nextSibling;\r
+\r
+length -= text.length - boundary.offset;\r
+textNode.textContent = text.substring(0, boundary.offset);\r
+textNode = textNode.traverseNextTextNode(element);\r
+\r
+while (textNode) {\r
+var text = textNode.textContent;\r
+if (length < text.length) {\r
+textNode.textContent = text.substring(length);\r
+break;\r
+}\r
+\r
+length -= text.length;\r
+textNode.textContent = "";\r
+textNode = textNode.traverseNextTextNode(element);\r
+}\r
+\r
+parentElement.insertBefore(highlightNode, anchorElement);\r
+return highlightNode;\r
+}\r
+\r
+function createSearchRegex(query)\r
+{\r
+var regex = "";\r
+for (var i = 0; i < query.length; ++i) {\r
+var char = query.charAt(i);\r
+if (char === "]")\r
+char = "\\]";\r
+regex += "[" + char + "]";\r
+}\r
+return new RegExp(regex, "i");\r
+}\r
+\r
+function offerFileForDownload(contents)\r
+{\r
+var builder = new BlobBuilder();\r
+builder.append(contents);\r
+var blob = builder.getBlob("application/octet-stream");\r
+var url = window.createObjectURL(blob);\r
+window.open(url);\r
+}\r
+\r
+\r
+\r
+\r
+\r
+function TreeOutline(listNode)\r
+{\r
+this.children = [];\r
+this.selectedTreeElement = null;\r
+this._childrenListNode = listNode;\r
+this._childrenListNode.removeChildren();\r
+this._knownTreeElements = [];\r
+this._treeElementsExpandedState = [];\r
+this.expandTreeElementsWhenArrowing = false;\r
+this.root = true;\r
+this.hasChildren = false;\r
+this.expanded = true;\r
+this.selected = false;\r
+this.treeOutline = this;\r
+\r
+this._childrenListNode.tabIndex = 0;\r
+this._childrenListNode.addEventListener("keydown", this._treeKeyDown.bind(this), true);\r
+}\r
+\r
+TreeOutline._knownTreeElementNextIdentifier = 1;\r
+\r
+TreeOutline._appendChild = function(child)\r
+{\r
+if (!child)\r
+throw("child can't be undefined or null");\r
+\r
+var lastChild = this.children[this.children.length - 1];\r
+if (lastChild) {\r
+lastChild.nextSibling = child;\r
+child.previousSibling = lastChild;\r
+} else {\r
+child.previousSibling = null;\r
+child.nextSibling = null;\r
+}\r
+\r
+this.children.push(child);\r
+this.hasChildren = true;\r
+child.parent = this;\r
+child.treeOutline = this.treeOutline;\r
+child.treeOutline._rememberTreeElement(child);\r
+\r
+var current = child.children[0];\r
+while (current) {\r
+current.treeOutline = this.treeOutline;\r
+current.treeOutline._rememberTreeElement(current);\r
+current = current.traverseNextTreeElement(false, child, true);\r
+}\r
+\r
+if (child.hasChildren && child.treeOutline._treeElementsExpandedState[child.identifier] !== undefined)\r
+child.expanded = child.treeOutline._treeElementsExpandedState[child.identifier];\r
+\r
+if (!this._childrenListNode) {\r
+this._childrenListNode = this.treeOutline._childrenListNode.ownerDocument.createElement("ol");\r
+this._childrenListNode.parentTreeElement = this;\r
+this._childrenListNode.addStyleClass("children");\r
+if (this.hidden)\r
+this._childrenListNode.addStyleClass("hidden");\r
+}\r
+\r
+child._attach();\r
+}\r
+\r
+TreeOutline._insertChild = function(child, index)\r
+{\r
+if (!child)\r
+throw("child can't be undefined or null");\r
+\r
+var previousChild = (index > 0 ? this.children[index - 1] : null);\r
+if (previousChild) {\r
+previousChild.nextSibling = child;\r
+child.previousSibling = previousChild;\r
+} else {\r
+child.previousSibling = null;\r
+}\r
+\r
+var nextChild = this.children[index];\r
+if (nextChild) {\r
+nextChild.previousSibling = child;\r
+child.nextSibling = nextChild;\r
+} else {\r
+child.nextSibling = null;\r
+}\r
+\r
+this.children.splice(index, 0, child);\r
+this.hasChildren = true;\r
+child.parent = this;\r
+child.treeOutline = this.treeOutline;\r
+child.treeOutline._rememberTreeElement(child);\r
+\r
+var current = child.children[0];\r
+while (current) {\r
+current.treeOutline = this.treeOutline;\r
+current.treeOutline._rememberTreeElement(current);\r
+current = current.traverseNextTreeElement(false, child, true);\r
+}\r
+\r
+if (child.hasChildren && child.treeOutline._treeElementsExpandedState[child.identifier] !== undefined)\r
+child.expanded = child.treeOutline._treeElementsExpandedState[child.identifier];\r
+\r
+if (!this._childrenListNode) {\r
+this._childrenListNode = this.treeOutline._childrenListNode.ownerDocument.createElement("ol");\r
+this._childrenListNode.parentTreeElement = this;\r
+this._childrenListNode.addStyleClass("children");\r
+if (this.hidden)\r
+this._childrenListNode.addStyleClass("hidden");\r
+}\r
+\r
+child._attach();\r
+}\r
+\r
+TreeOutline._removeChildAtIndex = function(childIndex)\r
+{\r
+if (childIndex < 0 || childIndex >= this.children.length)\r
+throw("childIndex out of range");\r
+\r
+var child = this.children[childIndex];\r
+this.children.splice(childIndex, 1);\r
+\r
+var parent = child.parent;\r
+if (child.deselect()) {\r
+if (child.previousSibling)\r
+child.previousSibling.select();\r
+else if (child.nextSibling)\r
+child.nextSibling.select();\r
+else\r
+parent.select();\r
+}\r
+\r
+if (child.previousSibling)\r
+child.previousSibling.nextSibling = child.nextSibling;\r
+if (child.nextSibling)\r
+child.nextSibling.previousSibling = child.previousSibling;\r
+\r
+if (child.treeOutline) {\r
+child.treeOutline._forgetTreeElement(child);\r
+child.treeOutline._forgetChildrenRecursive(child);\r
+}\r
+\r
+child._detach();\r
+child.treeOutline = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+}\r
+\r
+TreeOutline._removeChild = function(child)\r
+{\r
+if (!child)\r
+throw("child can't be undefined or null");\r
+\r
+var childIndex = this.children.indexOf(child);\r
+if (childIndex === -1)\r
+throw("child not found in this node's children");\r
+\r
+TreeOutline._removeChildAtIndex.call(this, childIndex);\r
+}\r
+\r
+TreeOutline._removeChildren = function()\r
+{\r
+for (var i = 0; i < this.children.length; ++i) {\r
+var child = this.children[i];\r
+child.deselect();\r
+\r
+if (child.treeOutline) {\r
+child.treeOutline._forgetTreeElement(child);\r
+child.treeOutline._forgetChildrenRecursive(child);\r
+}\r
+\r
+child._detach();\r
+child.treeOutline = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+}\r
+\r
+this.children = [];\r
+}\r
+\r
+TreeOutline._removeChildrenRecursive = function()\r
+{\r
+var childrenToRemove = this.children;\r
+\r
+var child = this.children[0];\r
+while (child) {\r
+if (child.children.length)\r
+childrenToRemove = childrenToRemove.concat(child.children);\r
+child = child.traverseNextTreeElement(false, this, true);\r
+}\r
+\r
+for (var i = 0; i < childrenToRemove.length; ++i) {\r
+var child = childrenToRemove[i];\r
+child.deselect();\r
+if (child.treeOutline)\r
+child.treeOutline._forgetTreeElement(child);\r
+child._detach();\r
+child.children = [];\r
+child.treeOutline = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+}\r
+\r
+this.children = [];\r
+}\r
+\r
+TreeOutline.prototype._rememberTreeElement = function(element)\r
+{\r
+if (!this._knownTreeElements[element.identifier])\r
+this._knownTreeElements[element.identifier] = [];\r
+\r
+\r
+var elements = this._knownTreeElements[element.identifier];\r
+if (elements.indexOf(element) !== -1)\r
+return;\r
+\r
+\r
+elements.push(element);\r
+}\r
+\r
+TreeOutline.prototype._forgetTreeElement = function(element)\r
+{\r
+if (this._knownTreeElements[element.identifier])\r
+this._knownTreeElements[element.identifier].remove(element, true);\r
+}\r
+\r
+TreeOutline.prototype._forgetChildrenRecursive = function(parentElement)\r
+{\r
+var child = parentElement.children[0];\r
+while (child) {\r
+this._forgetTreeElement(child);\r
+child = child.traverseNextTreeElement(false, this, true);\r
+}\r
+}\r
+\r
+TreeOutline.prototype.getCachedTreeElement = function(representedObject)\r
+{\r
+if (!representedObject)\r
+return null;\r
+\r
+if ("__treeElementIdentifier" in representedObject) {\r
+\r
+\r
+var elements = this._knownTreeElements[representedObject.__treeElementIdentifier];\r
+if (elements) {\r
+for (var i = 0; i < elements.length; ++i)\r
+if (elements[i].representedObject === representedObject)\r
+return elements[i];\r
+}\r
+}\r
+return null;\r
+}\r
+\r
+TreeOutline.prototype.findTreeElement = function(representedObject, isAncestor, getParent)\r
+{\r
+if (!representedObject)\r
+return null;\r
+\r
+var cachedElement = this.getCachedTreeElement(representedObject);\r
+if (cachedElement)\r
+return cachedElement;\r
+\r
+\r
+\r
+var item;\r
+var found = false;\r
+for (var i = 0; i < this.children.length; ++i) {\r
+item = this.children[i];\r
+if (item.representedObject === representedObject || isAncestor(item.representedObject, representedObject)) {\r
+found = true;\r
+break;\r
+}\r
+}\r
+\r
+if (!found)\r
+return null;\r
+\r
+\r
+\r
+var ancestors = [];\r
+var currentObject = representedObject;\r
+while (currentObject) {\r
+ancestors.unshift(currentObject);\r
+if (currentObject === item.representedObject)\r
+break;\r
+currentObject = getParent(currentObject);\r
+}\r
+\r
+\r
+for (var i = 0; i < ancestors.length; ++i) {\r
+\r
+\r
+if (ancestors[i] === representedObject)\r
+continue;\r
+\r
+\r
+item = this.findTreeElement(ancestors[i], isAncestor, getParent);\r
+if (item && item.onpopulate)\r
+item.onpopulate(item);\r
+}\r
+\r
+return this.getCachedTreeElement(representedObject);\r
+}\r
+\r
+TreeOutline.prototype.treeElementFromPoint = function(x, y)\r
+{\r
+var node = this._childrenListNode.ownerDocument.elementFromPoint(x, y);\r
+var listNode = node.enclosingNodeOrSelfWithNodeNameInArray(["ol", "li"]);\r
+if (listNode)\r
+return listNode.parentTreeElement || listNode.treeElement;\r
+return null;\r
+}\r
+\r
+TreeOutline.prototype._treeKeyDown = function(event)\r
+{\r
+if (event.target !== this._childrenListNode)\r
+return;\r
+\r
+if (!this.selectedTreeElement || event.shiftKey || event.metaKey || event.ctrlKey)\r
+return;\r
+\r
+var handled = false;\r
+var nextSelectedElement;\r
+if (event.keyIdentifier === "Up" && !event.altKey) {\r
+nextSelectedElement = this.selectedTreeElement.traversePreviousTreeElement(true);\r
+while (nextSelectedElement && !nextSelectedElement.selectable)\r
+nextSelectedElement = nextSelectedElement.traversePreviousTreeElement(!this.expandTreeElementsWhenArrowing);\r
+handled = nextSelectedElement ? true : false;\r
+} else if (event.keyIdentifier === "Down" && !event.altKey) {\r
+nextSelectedElement = this.selectedTreeElement.traverseNextTreeElement(true);\r
+while (nextSelectedElement && !nextSelectedElement.selectable)\r
+nextSelectedElement = nextSelectedElement.traverseNextTreeElement(!this.expandTreeElementsWhenArrowing);\r
+handled = nextSelectedElement ? true : false;\r
+} else if (event.keyIdentifier === "Left") {\r
+if (this.selectedTreeElement.expanded) {\r
+if (event.altKey)\r
+this.selectedTreeElement.collapseRecursively();\r
+else\r
+this.selectedTreeElement.collapse();\r
+handled = true;\r
+} else if (this.selectedTreeElement.parent && !this.selectedTreeElement.parent.root) {\r
+handled = true;\r
+if (this.selectedTreeElement.parent.selectable) {\r
+nextSelectedElement = this.selectedTreeElement.parent;\r
+handled = nextSelectedElement ? true : false;\r
+} else if (this.selectedTreeElement.parent)\r
+this.selectedTreeElement.parent.collapse();\r
+}\r
+} else if (event.keyIdentifier === "Right") {\r
+if (!this.selectedTreeElement.revealed()) {\r
+this.selectedTreeElement.reveal();\r
+handled = true;\r
+} else if (this.selectedTreeElement.hasChildren) {\r
+handled = true;\r
+if (this.selectedTreeElement.expanded) {\r
+nextSelectedElement = this.selectedTreeElement.children[0];\r
+handled = nextSelectedElement ? true : false;\r
+} else {\r
+if (event.altKey)\r
+this.selectedTreeElement.expandRecursively();\r
+else\r
+this.selectedTreeElement.expand();\r
+}\r
+}\r
+} else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Backspace.code || event.keyCode === WebInspector.KeyboardShortcut.Keys.Delete.code) {\r
+if (this.selectedTreeElement.ondelete)\r
+handled = this.selectedTreeElement.ondelete();\r
+} else if (isEnterKey(event)) {\r
+if (this.selectedTreeElement.onenter)\r
+handled = this.selectedTreeElement.onenter();\r
+}\r
+\r
+if (nextSelectedElement) {\r
+nextSelectedElement.reveal();\r
+nextSelectedElement.select(false, true);\r
+}\r
+\r
+if (handled) {\r
+event.preventDefault();\r
+event.stopPropagation();\r
+}\r
+}\r
+\r
+TreeOutline.prototype.expand = function()\r
+{\r
+\r
+}\r
+\r
+TreeOutline.prototype.collapse = function()\r
+{\r
+\r
+}\r
+\r
+TreeOutline.prototype.revealed = function()\r
+{\r
+return true;\r
+}\r
+\r
+TreeOutline.prototype.reveal = function()\r
+{\r
+\r
+}\r
+\r
+TreeOutline.prototype.select = function()\r
+{\r
+\r
+}\r
+\r
+TreeOutline.prototype.appendChild = TreeOutline._appendChild;\r
+TreeOutline.prototype.insertChild = TreeOutline._insertChild;\r
+TreeOutline.prototype.removeChild = TreeOutline._removeChild;\r
+TreeOutline.prototype.removeChildAtIndex = TreeOutline._removeChildAtIndex;\r
+TreeOutline.prototype.removeChildren = TreeOutline._removeChildren;\r
+TreeOutline.prototype.removeChildrenRecursive = TreeOutline._removeChildrenRecursive;\r
+\r
+function TreeElement(title, representedObject, hasChildren)\r
+{\r
+this._title = title;\r
+this.representedObject = (representedObject || {});\r
+\r
+if (this.representedObject.__treeElementIdentifier)\r
+this.identifier = this.representedObject.__treeElementIdentifier;\r
+else {\r
+this.identifier = TreeOutline._knownTreeElementNextIdentifier++;\r
+this.representedObject.__treeElementIdentifier = this.identifier;\r
+}\r
+\r
+this._hidden = false;\r
+this.expanded = false;\r
+this.selected = false;\r
+this.hasChildren = hasChildren;\r
+this.children = [];\r
+this.treeOutline = null;\r
+this.parent = null;\r
+this.previousSibling = null;\r
+this.nextSibling = null;\r
+this._listItemNode = null;\r
+}\r
+\r
+TreeElement.prototype = {\r
+selectable: true,\r
+arrowToggleWidth: 10,\r
+\r
+get listItemElement() {\r
+return this._listItemNode;\r
+},\r
+\r
+get childrenListElement() {\r
+return this._childrenListNode;\r
+},\r
+\r
+get title() {\r
+return this._title;\r
+},\r
+\r
+set title(x) {\r
+this._title = x;\r
+this._setListItemNodeContent();\r
+},\r
+\r
+get titleHTML() {\r
+return this._titleHTML;\r
+},\r
+\r
+set titleHTML(x) {\r
+this._titleHTML = x;\r
+this._setListItemNodeContent();\r
+},\r
+\r
+get tooltip() {\r
+return this._tooltip;\r
+},\r
+\r
+set tooltip(x) {\r
+this._tooltip = x;\r
+if (this._listItemNode)\r
+this._listItemNode.title = x ? x : "";\r
+},\r
+\r
+get hasChildren() {\r
+return this._hasChildren;\r
+},\r
+\r
+set hasChildren(x) {\r
+if (this._hasChildren === x)\r
+return;\r
+\r
+this._hasChildren = x;\r
+\r
+if (!this._listItemNode)\r
+return;\r
+\r
+if (x)\r
+this._listItemNode.addStyleClass("parent");\r
+else {\r
+this._listItemNode.removeStyleClass("parent");\r
+this.collapse();\r
+}\r
+},\r
+\r
+get hidden() {\r
+return this._hidden;\r
+},\r
+\r
+set hidden(x) {\r
+if (this._hidden === x)\r
+return;\r
+\r
+this._hidden = x;\r
+\r
+if (x) {\r
+if (this._listItemNode)\r
+this._listItemNode.addStyleClass("hidden");\r
+if (this._childrenListNode)\r
+this._childrenListNode.addStyleClass("hidden");\r
+} else {\r
+if (this._listItemNode)\r
+this._listItemNode.removeStyleClass("hidden");\r
+if (this._childrenListNode)\r
+this._childrenListNode.removeStyleClass("hidden");\r
+}\r
+},\r
+\r
+get shouldRefreshChildren() {\r
+return this._shouldRefreshChildren;\r
+},\r
+\r
+set shouldRefreshChildren(x) {\r
+this._shouldRefreshChildren = x;\r
+if (x && this.expanded)\r
+this.expand();\r
+},\r
+\r
+_setListItemNodeContent: function()\r
+{\r
+if (!this._listItemNode)\r
+return;\r
+\r
+if (!this._titleHTML && !this._title)\r
+this._listItemNode.removeChildren();\r
+else if (typeof this._titleHTML === "string")\r
+this._listItemNode.innerHTML = this._titleHTML;\r
+else if (typeof this._title === "string")\r
+this._listItemNode.textContent = this._title;\r
+else {\r
+this._listItemNode.removeChildren();\r
+if (this._title.parentNode)\r
+this._title.parentNode.removeChild(this._title);\r
+this._listItemNode.appendChild(this._title);\r
+}\r
+}\r
+}\r
+\r
+TreeElement.prototype.appendChild = TreeOutline._appendChild;\r
+TreeElement.prototype.insertChild = TreeOutline._insertChild;\r
+TreeElement.prototype.removeChild = TreeOutline._removeChild;\r
+TreeElement.prototype.removeChildAtIndex = TreeOutline._removeChildAtIndex;\r
+TreeElement.prototype.removeChildren = TreeOutline._removeChildren;\r
+TreeElement.prototype.removeChildrenRecursive = TreeOutline._removeChildrenRecursive;\r
+\r
+TreeElement.prototype._attach = function()\r
+{\r
+if (!this._listItemNode || this.parent._shouldRefreshChildren) {\r
+if (this._listItemNode && this._listItemNode.parentNode)\r
+this._listItemNode.parentNode.removeChild(this._listItemNode);\r
+\r
+this._listItemNode = this.treeOutline._childrenListNode.ownerDocument.createElement("li");\r
+this._listItemNode.treeElement = this;\r
+this._setListItemNodeContent();\r
+this._listItemNode.title = this._tooltip ? this._tooltip : "";\r
+\r
+if (this.hidden)\r
+this._listItemNode.addStyleClass("hidden");\r
+if (this.hasChildren)\r
+this._listItemNode.addStyleClass("parent");\r
+if (this.expanded)\r
+this._listItemNode.addStyleClass("expanded");\r
+if (this.selected)\r
+this._listItemNode.addStyleClass("selected");\r
+\r
+this._listItemNode.addEventListener("mousedown", TreeElement.treeElementMouseDown, false);\r
+this._listItemNode.addEventListener("click", TreeElement.treeElementToggled, false);\r
+this._listItemNode.addEventListener("dblclick", TreeElement.treeElementDoubleClicked, false);\r
+\r
+if (this.onattach)\r
+this.onattach(this);\r
+}\r
+\r
+var nextSibling = null;\r
+if (this.nextSibling && this.nextSibling._listItemNode && this.nextSibling._listItemNode.parentNode === this.parent._childrenListNode)\r
+nextSibling = this.nextSibling._listItemNode;\r
+this.parent._childrenListNode.insertBefore(this._listItemNode, nextSibling);\r
+if (this._childrenListNode)\r
+this.parent._childrenListNode.insertBefore(this._childrenListNode, this._listItemNode.nextSibling);\r
+if (this.selected)\r
+this.select();\r
+if (this.expanded)\r
+this.expand();\r
+}\r
+\r
+TreeElement.prototype._detach = function()\r
+{\r
+if (this._listItemNode && this._listItemNode.parentNode)\r
+this._listItemNode.parentNode.removeChild(this._listItemNode);\r
+if (this._childrenListNode && this._childrenListNode.parentNode)\r
+this._childrenListNode.parentNode.removeChild(this._childrenListNode);\r
+}\r
+\r
+TreeElement.treeElementMouseDown = function(event)\r
+{\r
+var element = event.currentTarget;\r
+if (!element || !element.treeElement || !element.treeElement.selectable)\r
+return;\r
+\r
+if (element.treeElement.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+element.treeElement.selectOnMouseDown(event);\r
+}\r
+\r
+TreeElement.treeElementToggled = function(event)\r
+{\r
+var element = event.currentTarget;\r
+if (!element || !element.treeElement)\r
+return;\r
+\r
+if (!element.treeElement.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+if (element.treeElement.expanded) {\r
+if (event.altKey)\r
+element.treeElement.collapseRecursively();\r
+else\r
+element.treeElement.collapse();\r
+} else {\r
+if (event.altKey)\r
+element.treeElement.expandRecursively();\r
+else\r
+element.treeElement.expand();\r
+}\r
+event.stopPropagation();\r
+}\r
+\r
+TreeElement.treeElementDoubleClicked = function(event)\r
+{\r
+var element = event.currentTarget;\r
+if (!element || !element.treeElement)\r
+return;\r
+\r
+if (element.treeElement.ondblclick)\r
+element.treeElement.ondblclick.call(element.treeElement, event);\r
+else if (element.treeElement.hasChildren && !element.treeElement.expanded)\r
+element.treeElement.expand();\r
+}\r
+\r
+TreeElement.prototype.collapse = function()\r
+{\r
+if (this._listItemNode)\r
+this._listItemNode.removeStyleClass("expanded");\r
+if (this._childrenListNode)\r
+this._childrenListNode.removeStyleClass("expanded");\r
+\r
+this.expanded = false;\r
+if (this.treeOutline)\r
+this.treeOutline._treeElementsExpandedState[this.identifier] = true;\r
+\r
+if (this.oncollapse)\r
+this.oncollapse(this);\r
+}\r
+\r
+TreeElement.prototype.collapseRecursively = function()\r
+{\r
+var item = this;\r
+while (item) {\r
+if (item.expanded)\r
+item.collapse();\r
+item = item.traverseNextTreeElement(false, this, true);\r
+}\r
+}\r
+\r
+TreeElement.prototype.expand = function()\r
+{\r
+if (!this.hasChildren || (this.expanded && !this._shouldRefreshChildren && this._childrenListNode))\r
+return;\r
+\r
+if (this.treeOutline && (!this._childrenListNode || this._shouldRefreshChildren)) {\r
+if (this._childrenListNode && this._childrenListNode.parentNode)\r
+this._childrenListNode.parentNode.removeChild(this._childrenListNode);\r
+\r
+this._childrenListNode = this.treeOutline._childrenListNode.ownerDocument.createElement("ol");\r
+this._childrenListNode.parentTreeElement = this;\r
+this._childrenListNode.addStyleClass("children");\r
+\r
+if (this.hidden)\r
+this._childrenListNode.addStyleClass("hidden");\r
+\r
+if (this.onpopulate)\r
+this.onpopulate(this);\r
+\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i]._attach();\r
+\r
+delete this._shouldRefreshChildren;\r
+}\r
+\r
+if (this._listItemNode) {\r
+this._listItemNode.addStyleClass("expanded");\r
+if (this._childrenListNode && this._childrenListNode.parentNode != this._listItemNode.parentNode)\r
+this.parent._childrenListNode.insertBefore(this._childrenListNode, this._listItemNode.nextSibling);\r
+}\r
+\r
+if (this._childrenListNode)\r
+this._childrenListNode.addStyleClass("expanded");\r
+\r
+this.expanded = true;\r
+if (this.treeOutline)\r
+this.treeOutline._treeElementsExpandedState[this.identifier] = true;\r
+\r
+if (this.onexpand)\r
+this.onexpand(this);\r
+}\r
+\r
+TreeElement.prototype.expandRecursively = function(maxDepth)\r
+{\r
+var item = this;\r
+var info = {};\r
+var depth = 0;\r
+\r
+\r
+\r
+\r
+if (typeof maxDepth === "undefined" || typeof maxDepth === "null")\r
+maxDepth = 3;\r
+\r
+while (item) {\r
+if (depth < maxDepth)\r
+item.expand();\r
+item = item.traverseNextTreeElement(false, this, (depth >= maxDepth), info);\r
+depth += info.depthChange;\r
+}\r
+}\r
+\r
+TreeElement.prototype.hasAncestor = function(ancestor) {\r
+if (!ancestor)\r
+return false;\r
+\r
+var currentNode = this.parent;\r
+while (currentNode) {\r
+if (ancestor === currentNode)\r
+return true;\r
+currentNode = currentNode.parent;\r
+}\r
+\r
+return false;\r
+}\r
+\r
+TreeElement.prototype.reveal = function()\r
+{\r
+var currentAncestor = this.parent;\r
+while (currentAncestor && !currentAncestor.root) {\r
+if (!currentAncestor.expanded)\r
+currentAncestor.expand();\r
+currentAncestor = currentAncestor.parent;\r
+}\r
+\r
+if (this.onreveal)\r
+this.onreveal(this);\r
+}\r
+\r
+TreeElement.prototype.revealed = function()\r
+{\r
+var currentAncestor = this.parent;\r
+while (currentAncestor && !currentAncestor.root) {\r
+if (!currentAncestor.expanded)\r
+return false;\r
+currentAncestor = currentAncestor.parent;\r
+}\r
+\r
+return true;\r
+}\r
+\r
+TreeElement.prototype.selectOnMouseDown = function(event)\r
+{\r
+this.select(false, true);\r
+}\r
+\r
+TreeElement.prototype.select = function(supressOnSelect, selectedByUser)\r
+{\r
+if (!this.treeOutline || !this.selectable || this.selected)\r
+return;\r
+\r
+if (this.treeOutline.selectedTreeElement)\r
+this.treeOutline.selectedTreeElement.deselect();\r
+\r
+this.selected = true;\r
+this.treeOutline._childrenListNode.focus();\r
+\r
+\r
+if (!this.treeOutline)\r
+return;\r
+this.treeOutline.selectedTreeElement = this;\r
+if (this._listItemNode)\r
+this._listItemNode.addStyleClass("selected");\r
+\r
+if (this.onselect && !supressOnSelect)\r
+this.onselect(this, selectedByUser);\r
+}\r
+\r
+TreeElement.prototype.deselect = function(supressOnDeselect)\r
+{\r
+if (!this.treeOutline || this.treeOutline.selectedTreeElement !== this || !this.selected)\r
+return false;\r
+\r
+this.selected = false;\r
+this.treeOutline.selectedTreeElement = null;\r
+if (this._listItemNode)\r
+this._listItemNode.removeStyleClass("selected");\r
+\r
+if (this.ondeselect && !supressOnDeselect)\r
+this.ondeselect(this);\r
+return true;\r
+}\r
+\r
+TreeElement.prototype.traverseNextTreeElement = function(skipHidden, stayWithin, dontPopulate, info)\r
+{\r
+if (!dontPopulate && this.hasChildren && this.onpopulate)\r
+this.onpopulate(this);\r
+\r
+if (info)\r
+info.depthChange = 0;\r
+\r
+var element = skipHidden ? (this.revealed() ? this.children[0] : null) : this.children[0];\r
+if (element && (!skipHidden || (skipHidden && this.expanded))) {\r
+if (info)\r
+info.depthChange = 1;\r
+return element;\r
+}\r
+\r
+if (this === stayWithin)\r
+return null;\r
+\r
+element = skipHidden ? (this.revealed() ? this.nextSibling : null) : this.nextSibling;\r
+if (element)\r
+return element;\r
+\r
+element = this;\r
+while (element && !element.root && !(skipHidden ? (element.revealed() ? element.nextSibling : null) : element.nextSibling) && element.parent !== stayWithin) {\r
+if (info)\r
+info.depthChange -= 1;\r
+element = element.parent;\r
+}\r
+\r
+if (!element)\r
+return null;\r
+\r
+return (skipHidden ? (element.revealed() ? element.nextSibling : null) : element.nextSibling);\r
+}\r
+\r
+TreeElement.prototype.traversePreviousTreeElement = function(skipHidden, dontPopulate)\r
+{\r
+var element = skipHidden ? (this.revealed() ? this.previousSibling : null) : this.previousSibling;\r
+if (!dontPopulate && element && element.hasChildren && element.onpopulate)\r
+element.onpopulate(element);\r
+\r
+while (element && (skipHidden ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1])) {\r
+if (!dontPopulate && element.hasChildren && element.onpopulate)\r
+element.onpopulate(element);\r
+element = (skipHidden ? (element.revealed() && element.expanded ? element.children[element.children.length - 1] : null) : element.children[element.children.length - 1]);\r
+}\r
+\r
+if (element)\r
+return element;\r
+\r
+if (!this.parent || this.parent.root)\r
+return null;\r
+\r
+return this.parent;\r
+}\r
+\r
+TreeElement.prototype.isEventWithinDisclosureTriangle = function(event)\r
+{\r
+var left = this._listItemNode.totalOffsetLeft;\r
+return event.pageX >= left && event.pageX <= left + this.arrowToggleWidth && this.hasChildren;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+;(function preloadImages()\r
+{\r
+(new Image()).src = "Images/clearConsoleButtonGlyph.png";\r
+(new Image()).src = "Images/consoleButtonGlyph.png";\r
+(new Image()).src = "Images/dockButtonGlyph.png";\r
+(new Image()).src = "Images/enableOutlineButtonGlyph.png";\r
+(new Image()).src = "Images/enableSolidButtonGlyph.png";\r
+(new Image()).src = "Images/excludeButtonGlyph.png";\r
+(new Image()).src = "Images/focusButtonGlyph.png";\r
+(new Image()).src = "Images/largerResourcesButtonGlyph.png";\r
+(new Image()).src = "Images/nodeSearchButtonGlyph.png";\r
+(new Image()).src = "Images/pauseOnExceptionButtonGlyph.png";\r
+(new Image()).src = "Images/percentButtonGlyph.png";\r
+(new Image()).src = "Images/recordButtonGlyph.png";\r
+(new Image()).src = "Images/recordToggledButtonGlyph.png";\r
+(new Image()).src = "Images/reloadButtonGlyph.png";\r
+(new Image()).src = "Images/undockButtonGlyph.png";\r
+})();\r
+\r
+var WebInspector = {\r
+resources: {},\r
+missingLocalizedStrings: {},\r
+pendingDispatches: 0,\r
+\r
+get platform()\r
+{\r
+if (!("_platform" in this))\r
+this._platform = InspectorFrontendHost.platform();\r
+\r
+return this._platform;\r
+},\r
+\r
+get platformFlavor()\r
+{\r
+if (!("_platformFlavor" in this))\r
+this._platformFlavor = this._detectPlatformFlavor();\r
+\r
+return this._platformFlavor;\r
+},\r
+\r
+_detectPlatformFlavor: function()\r
+{\r
+const userAgent = navigator.userAgent;\r
+\r
+if (this.platform === "windows") {\r
+var match = userAgent.match(/Windows NT (\d+)\.(?:\d+)/);\r
+if (match && match[1] >= 6)\r
+return WebInspector.PlatformFlavor.WindowsVista;\r
+return null;\r
+} else if (this.platform === "mac") {\r
+var match = userAgent.match(/Mac OS X\s*(?:(\d+)_(\d+))?/);\r
+if (!match || match[1] != 10)\r
+return WebInspector.PlatformFlavor.MacSnowLeopard;\r
+switch (Number(match[2])) {\r
+case 4:\r
+return WebInspector.PlatformFlavor.MacTiger;\r
+case 5:\r
+return WebInspector.PlatformFlavor.MacLeopard;\r
+case 6:\r
+default:\r
+return WebInspector.PlatformFlavor.MacSnowLeopard;\r
+}\r
+}\r
+\r
+return null;\r
+},\r
+\r
+get port()\r
+{\r
+if (!("_port" in this))\r
+this._port = InspectorFrontendHost.port();\r
+\r
+return this._port;\r
+},\r
+\r
+get previousFocusElement()\r
+{\r
+return this._previousFocusElement;\r
+},\r
+\r
+get currentFocusElement()\r
+{\r
+return this._currentFocusElement;\r
+},\r
+\r
+set currentFocusElement(x)\r
+{\r
+if (this._currentFocusElement !== x)\r
+this._previousFocusElement = this._currentFocusElement;\r
+this._currentFocusElement = x;\r
+\r
+if (this._currentFocusElement) {\r
+this._currentFocusElement.focus();\r
+\r
+\r
+\r
+var selection = window.getSelection();\r
+if (selection.isCollapsed && !this._currentFocusElement.isInsertionCaretInside()) {\r
+var selectionRange = this._currentFocusElement.ownerDocument.createRange();\r
+selectionRange.setStart(this._currentFocusElement, 0);\r
+selectionRange.setEnd(this._currentFocusElement, 0);\r
+\r
+selection.removeAllRanges();\r
+selection.addRange(selectionRange);\r
+}\r
+} else if (this._previousFocusElement)\r
+this._previousFocusElement.blur();\r
+},\r
+\r
+get currentPanel()\r
+{\r
+return this._currentPanel;\r
+},\r
+\r
+set currentPanel(x)\r
+{\r
+if (this._currentPanel === x)\r
+return;\r
+\r
+if (this._currentPanel)\r
+this._currentPanel.hide();\r
+\r
+this._currentPanel = x;\r
+\r
+this.updateSearchLabel();\r
+\r
+if (x) {\r
+x.show();\r
+\r
+if (this.currentQuery) {\r
+if (x.performSearch) {\r
+function performPanelSearch()\r
+{\r
+this.updateSearchMatchesCount();\r
+\r
+x.currentQuery = this.currentQuery;\r
+x.performSearch(this.currentQuery);\r
+}\r
+\r
+\r
+setTimeout(performPanelSearch.bind(this), 0);\r
+} else {\r
+\r
+this.updateSearchMatchesCount();\r
+}\r
+}\r
+}\r
+\r
+for (var panelName in WebInspector.panels) {\r
+if (WebInspector.panels[panelName] === x) {\r
+WebInspector.settings.lastActivePanel = panelName;\r
+this._panelHistory.setPanel(panelName);\r
+}\r
+}\r
+},\r
+\r
+createJSBreakpointsSidebarPane: function()\r
+{\r
+var pane = new WebInspector.BreakpointsSidebarPane(WebInspector.UIString("Breakpoints"));\r
+function breakpointAdded(event)\r
+{\r
+pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));\r
+}\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointAdded, breakpointAdded);\r
+return pane;\r
+},\r
+\r
+createDOMBreakpointsSidebarPane: function()\r
+{\r
+var pane = new WebInspector.BreakpointsSidebarPane(WebInspector.UIString("DOM Breakpoints"));\r
+function breakpointAdded(event)\r
+{\r
+pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));\r
+}\r
+WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.DOMBreakpointAdded, breakpointAdded);\r
+return pane;\r
+},\r
+\r
+createXHRBreakpointsSidebarPane: function()\r
+{\r
+var pane = new WebInspector.XHRBreakpointsSidebarPane();\r
+function breakpointAdded(event)\r
+{\r
+pane.addBreakpointItem(new WebInspector.BreakpointItem(event.data));\r
+}\r
+WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.XHRBreakpointAdded, breakpointAdded);\r
+return pane;\r
+},\r
+\r
+_createPanels: function()\r
+{\r
+var hiddenPanels = (InspectorFrontendHost.hiddenPanels() || "").split(',');\r
+if (hiddenPanels.indexOf("elements") === -1)\r
+this.panels.elements = new WebInspector.ElementsPanel();\r
+if (hiddenPanels.indexOf("resources") === -1)\r
+this.panels.resources = new WebInspector.ResourcesPanel();\r
+if (hiddenPanels.indexOf("network") === -1)\r
+this.panels.network = new WebInspector.NetworkPanel();\r
+if (hiddenPanels.indexOf("scripts") === -1)\r
+this.panels.scripts = new WebInspector.ScriptsPanel();\r
+if (hiddenPanels.indexOf("timeline") === -1)\r
+this.panels.timeline = new WebInspector.TimelinePanel();\r
+if (hiddenPanels.indexOf("profiles") === -1) {\r
+this.panels.profiles = new WebInspector.ProfilesPanel();\r
+this.panels.profiles.registerProfileType(new WebInspector.CPUProfileType());\r
+if (Preferences.heapProfilerPresent)\r
+this.panels.profiles.registerProfileType(new WebInspector.HeapSnapshotProfileType());\r
+}\r
+if (hiddenPanels.indexOf("audits") === -1)\r
+this.panels.audits = new WebInspector.AuditsPanel();\r
+if (hiddenPanels.indexOf("console") === -1)\r
+this.panels.console = new WebInspector.ConsolePanel();\r
+},\r
+\r
+get attached()\r
+{\r
+return this._attached;\r
+},\r
+\r
+set attached(x)\r
+{\r
+if (this._attached === x)\r
+return;\r
+\r
+this._attached = x;\r
+\r
+this.updateSearchLabel();\r
+\r
+var dockToggleButton = document.getElementById("dock-status-bar-item");\r
+var body = document.body;\r
+\r
+if (x) {\r
+body.removeStyleClass("detached");\r
+body.addStyleClass("attached");\r
+dockToggleButton.title = WebInspector.UIString("Undock into separate window.");\r
+} else {\r
+body.removeStyleClass("attached");\r
+body.addStyleClass("detached");\r
+dockToggleButton.title = WebInspector.UIString("Dock to main window.");\r
+}\r
+if (this.drawer)\r
+this.drawer.resize();\r
+},\r
+\r
+get errors()\r
+{\r
+return this._errors || 0;\r
+},\r
+\r
+set errors(x)\r
+{\r
+x = Math.max(x, 0);\r
+\r
+if (this._errors === x)\r
+return;\r
+this._errors = x;\r
+this._updateErrorAndWarningCounts();\r
+},\r
+\r
+get warnings()\r
+{\r
+return this._warnings || 0;\r
+},\r
+\r
+set warnings(x)\r
+{\r
+x = Math.max(x, 0);\r
+\r
+if (this._warnings === x)\r
+return;\r
+this._warnings = x;\r
+this._updateErrorAndWarningCounts();\r
+},\r
+\r
+_updateErrorAndWarningCounts: function()\r
+{\r
+var errorWarningElement = document.getElementById("error-warning-count");\r
+if (!errorWarningElement)\r
+return;\r
+\r
+if (!this.errors && !this.warnings) {\r
+errorWarningElement.addStyleClass("hidden");\r
+return;\r
+}\r
+\r
+errorWarningElement.removeStyleClass("hidden");\r
+\r
+errorWarningElement.removeChildren();\r
+\r
+if (this.errors) {\r
+var errorElement = document.createElement("span");\r
+errorElement.id = "error-count";\r
+errorElement.textContent = this.errors;\r
+errorWarningElement.appendChild(errorElement);\r
+}\r
+\r
+if (this.warnings) {\r
+var warningsElement = document.createElement("span");\r
+warningsElement.id = "warning-count";\r
+warningsElement.textContent = this.warnings;\r
+errorWarningElement.appendChild(warningsElement);\r
+}\r
+\r
+if (this.errors) {\r
+if (this.warnings) {\r
+if (this.errors == 1) {\r
+if (this.warnings == 1)\r
+errorWarningElement.title = WebInspector.UIString("%d error, %d warning", this.errors, this.warnings);\r
+else\r
+errorWarningElement.title = WebInspector.UIString("%d error, %d warnings", this.errors, this.warnings);\r
+} else if (this.warnings == 1)\r
+errorWarningElement.title = WebInspector.UIString("%d errors, %d warning", this.errors, this.warnings);\r
+else\r
+errorWarningElement.title = WebInspector.UIString("%d errors, %d warnings", this.errors, this.warnings);\r
+} else if (this.errors == 1)\r
+errorWarningElement.title = WebInspector.UIString("%d error", this.errors);\r
+else\r
+errorWarningElement.title = WebInspector.UIString("%d errors", this.errors);\r
+} else if (this.warnings == 1)\r
+errorWarningElement.title = WebInspector.UIString("%d warning", this.warnings);\r
+else if (this.warnings)\r
+errorWarningElement.title = WebInspector.UIString("%d warnings", this.warnings);\r
+else\r
+errorWarningElement.title = null;\r
+},\r
+\r
+get styleChanges()\r
+{\r
+return this._styleChanges;\r
+},\r
+\r
+set styleChanges(x)\r
+{\r
+x = Math.max(x, 0);\r
+\r
+if (this._styleChanges === x)\r
+return;\r
+this._styleChanges = x;\r
+this._updateChangesCount();\r
+},\r
+\r
+_updateChangesCount: function()\r
+{\r
+\r
+return;\r
+\r
+var changesElement = document.getElementById("changes-count");\r
+if (!changesElement)\r
+return;\r
+\r
+if (!this.styleChanges) {\r
+changesElement.addStyleClass("hidden");\r
+return;\r
+}\r
+\r
+changesElement.removeStyleClass("hidden");\r
+changesElement.removeChildren();\r
+\r
+if (this.styleChanges) {\r
+var styleChangesElement = document.createElement("span");\r
+styleChangesElement.id = "style-changes-count";\r
+styleChangesElement.textContent = this.styleChanges;\r
+changesElement.appendChild(styleChangesElement);\r
+}\r
+\r
+if (this.styleChanges) {\r
+if (this.styleChanges === 1)\r
+changesElement.title = WebInspector.UIString("%d style change", this.styleChanges);\r
+else\r
+changesElement.title = WebInspector.UIString("%d style changes", this.styleChanges);\r
+}\r
+},\r
+\r
+highlightDOMNode: function(nodeId)\r
+{\r
+if ("_hideDOMNodeHighlightTimeout" in this) {\r
+clearTimeout(this._hideDOMNodeHighlightTimeout);\r
+delete this._hideDOMNodeHighlightTimeout;\r
+}\r
+\r
+if (this._highlightedDOMNodeId === nodeId)\r
+return;\r
+\r
+this._highlightedDOMNodeId = nodeId;\r
+if (nodeId)\r
+InspectorBackend.highlightDOMNode(nodeId);\r
+else\r
+InspectorBackend.hideDOMNodeHighlight();\r
+},\r
+\r
+highlightDOMNodeForTwoSeconds: function(nodeId)\r
+{\r
+this.highlightDOMNode(nodeId);\r
+this._hideDOMNodeHighlightTimeout = setTimeout(this.highlightDOMNode.bind(this, 0), 2000);\r
+},\r
+\r
+wireElementWithDOMNode: function(element, nodeId)\r
+{\r
+element.addEventListener("click", this._updateFocusedNode.bind(this, nodeId), false);\r
+element.addEventListener("mouseover", this.highlightDOMNode.bind(this, nodeId), false);\r
+element.addEventListener("mouseout", this.highlightDOMNode.bind(this, 0), false);\r
+},\r
+\r
+_updateFocusedNode: function(nodeId)\r
+{\r
+this.currentPanel = this.panels.elements;\r
+this.panels.elements.updateFocusedNode(nodeId);\r
+},\r
+\r
+get networkResources()\r
+{\r
+return this.panels.network.resources;\r
+},\r
+\r
+forAllResources: function(callback)\r
+{\r
+WebInspector.resourceManager.forAllResources(callback);\r
+},\r
+\r
+resourceForURL: function(url)\r
+{\r
+return this.resourceManager.resourceForURL(url);\r
+}\r
+}\r
+\r
+WebInspector.PlatformFlavor = {\r
+WindowsVista: "windows-vista",\r
+MacTiger: "mac-tiger",\r
+MacLeopard: "mac-leopard",\r
+MacSnowLeopard: "mac-snowleopard"\r
+};\r
+\r
+(function parseQueryParameters()\r
+{\r
+WebInspector.queryParamsObject = {};\r
+var queryParams = window.location.search;\r
+if (!queryParams)\r
+return;\r
+var params = queryParams.substring(1).split("&");\r
+for (var i = 0; i < params.length; ++i) {\r
+var pair = params[i].split("=");\r
+WebInspector.queryParamsObject[pair[0]] = pair[1];\r
+}\r
+})();\r
+\r
+WebInspector.loaded = function()\r
+{\r
+if ("page" in WebInspector.queryParamsObject) {\r
+WebInspector.socket = new WebSocket("ws://" + window.location.host + "/devtools/page/" + WebInspector.queryParamsObject.page);\r
+WebInspector.socket.onmessage = function(message) { InspectorBackend.dispatch(message.data); }\r
+WebInspector.socket.onerror = function(error) { console.error(error); }\r
+WebInspector.socket.onopen = function() {\r
+InspectorFrontendHost.sendMessageToBackend = WebInspector.socket.send.bind(WebInspector.socket);\r
+InspectorFrontendHost.loaded = WebInspector.socket.send.bind(WebInspector.socket, "loaded");\r
+WebInspector.doLoadedDone();\r
+}\r
+return;\r
+}\r
+WebInspector.doLoadedDone();\r
+}\r
+\r
+WebInspector.doLoadedDone = function()\r
+{\r
+InspectorBackend.setInjectedScriptSource("(" + injectedScriptConstructor + ");");\r
+\r
+var platform = WebInspector.platform;\r
+document.body.addStyleClass("platform-" + platform);\r
+var flavor = WebInspector.platformFlavor;\r
+if (flavor)\r
+document.body.addStyleClass("platform-" + flavor);\r
+var port = WebInspector.port;\r
+document.body.addStyleClass("port-" + port);\r
+\r
+InspectorFrontendHost.loaded();\r
+WebInspector.settings = new WebInspector.Settings();\r
+\r
+this._registerShortcuts();\r
+\r
+\r
+WebInspector.shortcutsHelp.section(WebInspector.UIString("Console"));\r
+WebInspector.shortcutsHelp.section(WebInspector.UIString("Elements Panel"));\r
+\r
+this.drawer = new WebInspector.Drawer();\r
+this.console = new WebInspector.ConsoleView(this.drawer);\r
+\r
+\r
+\r
+this.drawer.visibleView = this.console;\r
+this.resourceManager = new WebInspector.ResourceManager();\r
+this.domAgent = new WebInspector.DOMAgent();\r
+\r
+InspectorBackend.registerDomainDispatcher("Inspector", this);\r
+\r
+this.resourceCategories = {\r
+documents: new WebInspector.ResourceCategory("documents", WebInspector.UIString("Documents"), "rgb(47,102,236)"),\r
+stylesheets: new WebInspector.ResourceCategory("stylesheets", WebInspector.UIString("Stylesheets"), "rgb(157,231,119)"),\r
+images: new WebInspector.ResourceCategory("images", WebInspector.UIString("Images"), "rgb(164,60,255)"),\r
+scripts: new WebInspector.ResourceCategory("scripts", WebInspector.UIString("Scripts"), "rgb(255,121,0)"),\r
+xhr: new WebInspector.ResourceCategory("xhr", WebInspector.UIString("XHR"), "rgb(231,231,10)"),\r
+fonts: new WebInspector.ResourceCategory("fonts", WebInspector.UIString("Fonts"), "rgb(255,82,62)"),\r
+websockets: new WebInspector.ResourceCategory("websockets", WebInspector.UIString("WebSocket"), "rgb(186,186,186)"), \r
+other: new WebInspector.ResourceCategory("other", WebInspector.UIString("Other"), "rgb(186,186,186)")\r
+};\r
+\r
+this.cssModel = new WebInspector.CSSStyleModel();\r
+this.debuggerModel = new WebInspector.DebuggerModel();\r
+\r
+this.breakpointManager = new WebInspector.BreakpointManager();\r
+\r
+this.panels = {};\r
+this._createPanels();\r
+this._panelHistory = new WebInspector.PanelHistory();\r
+\r
+var toolbarElement = document.getElementById("toolbar");\r
+var previousToolbarItem = toolbarElement.children[0];\r
+\r
+this.panelOrder = [];\r
+for (var panelName in this.panels)\r
+previousToolbarItem = WebInspector.addPanelToolbarIcon(toolbarElement, this.panels[panelName], previousToolbarItem);\r
+\r
+this.Tips = {\r
+ResourceNotCompressed: {id: 0, message: WebInspector.UIString("You could save bandwidth by having your web server compress this transfer with gzip or zlib.")}\r
+};\r
+\r
+this.Warnings = {\r
+IncorrectMIMEType: {id: 0, message: WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s.")}\r
+};\r
+\r
+this.addMainEventListeners(document);\r
+\r
+window.addEventListener("resize", this.windowResize.bind(this), true);\r
+\r
+document.addEventListener("focus", this.focusChanged.bind(this), true);\r
+document.addEventListener("keydown", this.documentKeyDown.bind(this), false);\r
+document.addEventListener("beforecopy", this.documentCanCopy.bind(this), true);\r
+document.addEventListener("copy", this.documentCopy.bind(this), true);\r
+document.addEventListener("contextmenu", this.contextMenuEventFired.bind(this), true);\r
+\r
+var dockToggleButton = document.getElementById("dock-status-bar-item");\r
+dockToggleButton.addEventListener("click", this.toggleAttach.bind(this), false);\r
+\r
+if (this.attached)\r
+dockToggleButton.title = WebInspector.UIString("Undock into separate window.");\r
+else\r
+dockToggleButton.title = WebInspector.UIString("Dock to main window.");\r
+\r
+var errorWarningCount = document.getElementById("error-warning-count");\r
+errorWarningCount.addEventListener("click", this.showConsole.bind(this), false);\r
+this._updateErrorAndWarningCounts();\r
+\r
+this.styleChanges = 0;\r
+\r
+\r
+\r
+\r
+\r
+var searchField = document.getElementById("search");\r
+searchField.addEventListener("search", this.performSearch.bind(this), false); \r
+searchField.addEventListener("mousedown", this._searchFieldManualFocus.bind(this), false); \r
+searchField.addEventListener("keydown", this._searchKeyDown.bind(this), true);\r
+\r
+toolbarElement.addEventListener("mousedown", this.toolbarDragStart, true);\r
+document.getElementById("close-button-left").addEventListener("click", this.close, true);\r
+document.getElementById("close-button-right").addEventListener("click", this.close, true);\r
+\r
+this.extensionServer.initExtensions();\r
+\r
+function populateInspectorState(inspectorState)\r
+{\r
+WebInspector.monitoringXHREnabled = inspectorState.monitoringXHREnabled;\r
+if ("pauseOnExceptionsState" in inspectorState)\r
+WebInspector.panels.scripts.updatePauseOnExceptionsState(inspectorState.pauseOnExceptionsState);\r
+}\r
+InspectorBackend.getInspectorState(populateInspectorState);\r
+\r
+function onPopulateScriptObjects()\r
+{\r
+if (!WebInspector.currentPanel)\r
+WebInspector.showPanel(WebInspector.settings.lastActivePanel);\r
+}\r
+InspectorBackend.populateScriptObjects(onPopulateScriptObjects);\r
+\r
+InspectorBackend.setConsoleMessagesEnabled(true);\r
+\r
+function propertyNamesCallback(names)\r
+{\r
+WebInspector.cssNameCompletions = new WebInspector.CSSCompletions(names);\r
+}\r
+\r
+\r
+InspectorBackend.getSupportedCSSProperties(propertyNamesCallback);\r
+}\r
+\r
+WebInspector.addPanelToolbarIcon = function(toolbarElement, panel, previousToolbarItem)\r
+{\r
+var panelToolbarItem = panel.toolbarItem;\r
+this.panelOrder.push(panel);\r
+panelToolbarItem.addEventListener("click", this._toolbarItemClicked.bind(this));\r
+if (previousToolbarItem)\r
+toolbarElement.insertBefore(panelToolbarItem, previousToolbarItem.nextSibling);\r
+else\r
+toolbarElement.insertBefore(panelToolbarItem, toolbarElement.firstChild);\r
+return panelToolbarItem;\r
+}\r
+\r
+var windowLoaded = function()\r
+{\r
+var localizedStringsURL = InspectorFrontendHost.localizedStringsURL();\r
+if (localizedStringsURL) {\r
+var localizedStringsScriptElement = document.createElement("script");\r
+localizedStringsScriptElement.addEventListener("load", WebInspector.loaded.bind(WebInspector), false);\r
+localizedStringsScriptElement.type = "text/javascript";\r
+localizedStringsScriptElement.src = localizedStringsURL;\r
+document.head.appendChild(localizedStringsScriptElement);\r
+} else\r
+WebInspector.loaded();\r
+\r
+window.removeEventListener("DOMContentLoaded", windowLoaded, false);\r
+delete windowLoaded;\r
+};\r
+\r
+window.addEventListener("DOMContentLoaded", windowLoaded, false);\r
+\r
+WebInspector.dispatch = function(message) {\r
+\r
+\r
+function delayDispatch()\r
+{\r
+InspectorBackend.dispatch(message);\r
+WebInspector.pendingDispatches--;\r
+}\r
+WebInspector.pendingDispatches++;\r
+setTimeout(delayDispatch, 0);\r
+}\r
+\r
+WebInspector.dispatchMessageFromBackend = function(messageObject)\r
+{\r
+WebInspector.dispatch(messageObject);\r
+}\r
+\r
+WebInspector.windowResize = function(event)\r
+{\r
+if (this.currentPanel)\r
+this.currentPanel.resize();\r
+this.drawer.resize();\r
+}\r
+\r
+WebInspector.windowFocused = function(event)\r
+{\r
+\r
+\r
+\r
+if (event.target.document.nodeType === Node.DOCUMENT_NODE)\r
+document.body.removeStyleClass("inactive");\r
+}\r
+\r
+WebInspector.windowBlurred = function(event)\r
+{\r
+\r
+\r
+\r
+if (event.target.document.nodeType === Node.DOCUMENT_NODE)\r
+document.body.addStyleClass("inactive");\r
+}\r
+\r
+WebInspector.focusChanged = function(event)\r
+{\r
+this.currentFocusElement = event.target;\r
+}\r
+\r
+WebInspector.setAttachedWindow = function(attached)\r
+{\r
+this.attached = attached;\r
+}\r
+\r
+WebInspector.close = function(event)\r
+{\r
+if (this._isClosing)\r
+return;\r
+this._isClosing = true;\r
+InspectorFrontendHost.closeWindow();\r
+}\r
+\r
+WebInspector.disconnectFromBackend = function()\r
+{\r
+InspectorFrontendHost.disconnectFromBackend();\r
+}\r
+\r
+WebInspector.documentClick = function(event)\r
+{\r
+var anchor = event.target.enclosingNodeOrSelfWithNodeName("a");\r
+if (!anchor || anchor.target === "_blank")\r
+return;\r
+\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+function followLink()\r
+{\r
+\r
+if (WebInspector.canShowSourceLine(anchor.href, anchor.getAttribute("line_number"), anchor.getAttribute("preferred_panel"))) {\r
+if (anchor.hasStyleClass("webkit-html-external-link")) {\r
+anchor.removeStyleClass("webkit-html-external-link");\r
+anchor.addStyleClass("webkit-html-resource-link");\r
+}\r
+\r
+WebInspector.showSourceLine(anchor.href, anchor.getAttribute("line_number"), anchor.getAttribute("preferred_panel"));\r
+return;\r
+}\r
+\r
+const profileMatch = WebInspector.ProfileType.URLRegExp.exec(anchor.href);\r
+if (profileMatch) {\r
+WebInspector.showProfileForURL(anchor.href);\r
+return;\r
+}\r
+\r
+var parsedURL = anchor.href.asParsedURL();\r
+if (parsedURL && parsedURL.scheme === "webkit-link-action") {\r
+if (parsedURL.host === "show-panel") {\r
+var panel = parsedURL.path.substring(1);\r
+if (WebInspector.panels[panel])\r
+WebInspector.showPanel(panel);\r
+}\r
+return;\r
+}\r
+\r
+WebInspector.showPanel("resources");\r
+}\r
+\r
+if (WebInspector.followLinkTimeout)\r
+clearTimeout(WebInspector.followLinkTimeout);\r
+\r
+if (anchor.preventFollowOnDoubleClick) {\r
+\r
+\r
+if (event.detail === 1)\r
+WebInspector.followLinkTimeout = setTimeout(followLink, 333);\r
+return;\r
+}\r
+\r
+followLink();\r
+}\r
+\r
+WebInspector.openResource = function(resourceURL, inResourcesPanel)\r
+{\r
+var resource = WebInspector.resourceForURL(resourceURL);\r
+if (inResourcesPanel && resource) {\r
+WebInspector.panels.resources.showResource(resource);\r
+WebInspector.showPanel("resources");\r
+} else\r
+InspectorBackend.openInInspectedWindow(resource ? resource.url : resourceURL);\r
+}\r
+\r
+WebInspector._registerShortcuts = function()\r
+{\r
+var shortcut = WebInspector.KeyboardShortcut;\r
+var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("All Panels"));\r
+var keys = [\r
+shortcut.shortcutToString("]", shortcut.Modifiers.CtrlOrMeta),\r
+shortcut.shortcutToString("[", shortcut.Modifiers.CtrlOrMeta)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Next/previous panel"));\r
+section.addKey(shortcut.shortcutToString(shortcut.Keys.Esc), WebInspector.UIString("Toggle console"));\r
+section.addKey(shortcut.shortcutToString("f", shortcut.Modifiers.CtrlOrMeta), WebInspector.UIString("Search"));\r
+if (WebInspector.isMac()) {\r
+keys = [\r
+shortcut.shortcutToString("g", shortcut.Modifiers.Meta),\r
+shortcut.shortcutToString("g", shortcut.Modifiers.Meta | shortcut.Modifiers.Shift)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Find next/previous"));\r
+}\r
+}\r
+\r
+WebInspector.documentKeyDown = function(event)\r
+{\r
+var isInputElement = event.target.nodeName === "INPUT";\r
+var isInEditMode = event.target.enclosingNodeOrSelfWithClass("text-prompt") || WebInspector.isEditingAnyField();\r
+const helpKey = WebInspector.isMac() ? "U+003F" : "U+00BF"; \r
+\r
+if (event.keyIdentifier === "F1" ||\r
+(event.keyIdentifier === helpKey && event.shiftKey && (!isInEditMode && !isInputElement || event.metaKey))) {\r
+WebInspector.shortcutsHelp.show();\r
+event.stopPropagation();\r
+event.preventDefault();\r
+return;\r
+}\r
+\r
+if (WebInspector.isEditingAnyField())\r
+return;\r
+\r
+if (this.currentFocusElement && this.currentFocusElement.handleKeyEvent) {\r
+this.currentFocusElement.handleKeyEvent(event);\r
+if (event.handled) {\r
+event.preventDefault();\r
+return;\r
+}\r
+}\r
+\r
+if (this.currentPanel && this.currentPanel.handleShortcut) {\r
+this.currentPanel.handleShortcut(event);\r
+if (event.handled) {\r
+event.preventDefault();\r
+return;\r
+}\r
+}\r
+\r
+var isMac = WebInspector.isMac();\r
+switch (event.keyIdentifier) {\r
+case "Left":\r
+var isBackKey = !isInEditMode && (isMac ? event.metaKey : event.ctrlKey);\r
+if (isBackKey && this._panelHistory.canGoBack()) {\r
+this._panelHistory.goBack();\r
+event.preventDefault();\r
+}\r
+break;\r
+\r
+case "Right":\r
+var isForwardKey = !isInEditMode && (isMac ? event.metaKey : event.ctrlKey);\r
+if (isForwardKey && this._panelHistory.canGoForward()) {\r
+this._panelHistory.goForward();\r
+event.preventDefault();\r
+}\r
+break;\r
+\r
+case "U+001B": \r
+event.preventDefault();\r
+if (this.drawer.fullPanel)\r
+return;\r
+\r
+this.drawer.visible = !this.drawer.visible;\r
+break;\r
+\r
+case "U+0046": \r
+if (isMac)\r
+var isFindKey = event.metaKey && !event.ctrlKey && !event.altKey && !event.shiftKey;\r
+else\r
+var isFindKey = event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey;\r
+\r
+if (isFindKey) {\r
+WebInspector.focusSearchField();\r
+event.preventDefault();\r
+}\r
+break;\r
+\r
+case "F3":\r
+if (!isMac) {\r
+WebInspector.focusSearchField();\r
+event.preventDefault();\r
+}\r
+break;\r
+\r
+case "U+0047": \r
+if (isMac && event.metaKey && !event.ctrlKey && !event.altKey) {\r
+if (event.shiftKey) {\r
+if (this.currentPanel.jumpToPreviousSearchResult)\r
+this.currentPanel.jumpToPreviousSearchResult();\r
+} else if (this.currentPanel.jumpToNextSearchResult)\r
+this.currentPanel.jumpToNextSearchResult();\r
+event.preventDefault();\r
+}\r
+break;\r
+\r
+\r
+case "U+005B":\r
+case "U+00DB": \r
+if (isMac)\r
+var isRotateLeft = event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey;\r
+else\r
+var isRotateLeft = event.ctrlKey && !event.shiftKey && !event.metaKey && !event.altKey;\r
+\r
+if (isRotateLeft) {\r
+var index = this.panelOrder.indexOf(this.currentPanel);\r
+index = (index === 0) ? this.panelOrder.length - 1 : index - 1;\r
+this.panelOrder[index].toolbarItem.click();\r
+event.preventDefault();\r
+}\r
+\r
+break;\r
+\r
+\r
+case "U+005D":\r
+case "U+00DD":  \r
+if (isMac)\r
+var isRotateRight = event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey;\r
+else\r
+var isRotateRight = event.ctrlKey && !event.shiftKey && !event.metaKey && !event.altKey;\r
+\r
+if (isRotateRight) {\r
+var index = this.panelOrder.indexOf(this.currentPanel);\r
+index = (index + 1) % this.panelOrder.length;\r
+this.panelOrder[index].toolbarItem.click();\r
+event.preventDefault();\r
+}\r
+\r
+break;\r
+\r
+case "U+0052": \r
+if ((event.metaKey && isMac) || (event.ctrlKey && !isMac)) {\r
+InspectorBackend.reloadPage();\r
+event.preventDefault();\r
+}\r
+break;\r
+case "F5":\r
+if (!isMac)\r
+InspectorBackend.reloadPage();\r
+break;\r
+}\r
+}\r
+\r
+WebInspector.documentCanCopy = function(event)\r
+{\r
+if (this.currentPanel && this.currentPanel.handleCopyEvent)\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.documentCopy = function(event)\r
+{\r
+if (this.currentPanel && this.currentPanel.handleCopyEvent)\r
+this.currentPanel.handleCopyEvent(event);\r
+}\r
+\r
+WebInspector.contextMenuEventFired = function(event)\r
+{\r
+if (event.handled || event.target.hasStyleClass("popup-glasspane"))\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.animateStyle = function(animations, duration, callback)\r
+{\r
+var interval;\r
+var complete = 0;\r
+\r
+const intervalDuration = (1000 / 30); \r
+const animationsLength = animations.length;\r
+const propertyUnit = {opacity: ""};\r
+const defaultUnit = "px";\r
+\r
+function cubicInOut(t, b, c, d)\r
+{\r
+if ((t/=d/2) < 1) return c/2*t*t*t + b;\r
+return c/2*((t-=2)*t*t + 2) + b;\r
+}\r
+\r
+\r
+for (var i = 0; i < animationsLength; ++i) {\r
+var animation = animations[i];\r
+var element = null, start = null, end = null, key = null;\r
+for (key in animation) {\r
+if (key === "element")\r
+element = animation[key];\r
+else if (key === "start")\r
+start = animation[key];\r
+else if (key === "end")\r
+end = animation[key];\r
+}\r
+\r
+if (!element || !end)\r
+continue;\r
+\r
+if (!start) {\r
+var computedStyle = element.ownerDocument.defaultView.getComputedStyle(element);\r
+start = {};\r
+for (key in end)\r
+start[key] = parseInt(computedStyle.getPropertyValue(key));\r
+animation.start = start;\r
+} else\r
+for (key in start)\r
+element.style.setProperty(key, start[key] + (key in propertyUnit ? propertyUnit[key] : defaultUnit));\r
+}\r
+\r
+function animateLoop()\r
+{\r
+\r
+complete += intervalDuration;\r
+var next = complete + intervalDuration;\r
+\r
+\r
+for (var i = 0; i < animationsLength; ++i) {\r
+var animation = animations[i];\r
+var element = animation.element;\r
+var start = animation.start;\r
+var end = animation.end;\r
+if (!element || !end)\r
+continue;\r
+\r
+var style = element.style;\r
+for (key in end) {\r
+var endValue = end[key];\r
+if (next < duration) {\r
+var startValue = start[key];\r
+var newValue = cubicInOut(complete, startValue, endValue - startValue, duration);\r
+style.setProperty(key, newValue + (key in propertyUnit ? propertyUnit[key] : defaultUnit));\r
+} else\r
+style.setProperty(key, endValue + (key in propertyUnit ? propertyUnit[key] : defaultUnit));\r
+}\r
+}\r
+\r
+\r
+if (complete >= duration) {\r
+clearInterval(interval);\r
+if (callback)\r
+callback();\r
+}\r
+}\r
+\r
+interval = setInterval(animateLoop, intervalDuration);\r
+return interval;\r
+}\r
+\r
+WebInspector.updateSearchLabel = function()\r
+{\r
+if (!this.currentPanel)\r
+return;\r
+\r
+var newLabel = WebInspector.UIString("Search %s", this.currentPanel.toolbarItemLabel);\r
+if (this.attached)\r
+document.getElementById("search").setAttribute("placeholder", newLabel);\r
+else {\r
+document.getElementById("search").removeAttribute("placeholder");\r
+document.getElementById("search-toolbar-label").textContent = newLabel;\r
+}\r
+}\r
+\r
+WebInspector.focusSearchField = function()\r
+{\r
+var searchField = document.getElementById("search");\r
+searchField.focus();\r
+searchField.select();\r
+}\r
+\r
+WebInspector.toggleAttach = function()\r
+{\r
+if (!this.attached)\r
+InspectorFrontendHost.requestAttachWindow();\r
+else\r
+InspectorFrontendHost.requestDetachWindow();\r
+}\r
+\r
+WebInspector.toolbarDragStart = function(event)\r
+{\r
+if ((!WebInspector.attached && WebInspector.platformFlavor !== WebInspector.PlatformFlavor.MacLeopard && WebInspector.platformFlavor !== WebInspector.PlatformFlavor.MacSnowLeopard) || WebInspector.port == "qt")\r
+return;\r
+\r
+var target = event.target;\r
+if (target.hasStyleClass("toolbar-item") && target.hasStyleClass("toggleable"))\r
+return;\r
+\r
+var toolbar = document.getElementById("toolbar");\r
+if (target !== toolbar && !target.hasStyleClass("toolbar-item"))\r
+return;\r
+\r
+toolbar.lastScreenX = event.screenX;\r
+toolbar.lastScreenY = event.screenY;\r
+\r
+WebInspector.elementDragStart(toolbar, WebInspector.toolbarDrag, WebInspector.toolbarDragEnd, event, (WebInspector.attached ? "row-resize" : "default"));\r
+}\r
+\r
+WebInspector.toolbarDragEnd = function(event)\r
+{\r
+var toolbar = document.getElementById("toolbar");\r
+\r
+WebInspector.elementDragEnd(event);\r
+\r
+delete toolbar.lastScreenX;\r
+delete toolbar.lastScreenY;\r
+}\r
+\r
+WebInspector.toolbarDrag = function(event)\r
+{\r
+var toolbar = document.getElementById("toolbar");\r
+\r
+if (WebInspector.attached) {\r
+var height = window.innerHeight - (event.screenY - toolbar.lastScreenY);\r
+\r
+InspectorFrontendHost.setAttachedWindowHeight(height);\r
+} else {\r
+var x = event.screenX - toolbar.lastScreenX;\r
+var y = event.screenY - toolbar.lastScreenY;\r
+\r
+\r
+\r
+InspectorFrontendHost.moveWindowBy(x, y);\r
+}\r
+\r
+toolbar.lastScreenX = event.screenX;\r
+toolbar.lastScreenY = event.screenY;\r
+\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.elementDragStart = function(element, dividerDrag, elementDragEnd, event, cursor)\r
+{\r
+if (this._elementDraggingEventListener || this._elementEndDraggingEventListener)\r
+this.elementDragEnd(event);\r
+\r
+this._elementDraggingEventListener = dividerDrag;\r
+this._elementEndDraggingEventListener = elementDragEnd;\r
+\r
+document.addEventListener("mousemove", dividerDrag, true);\r
+document.addEventListener("mouseup", elementDragEnd, true);\r
+\r
+document.body.style.cursor = cursor;\r
+\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.elementDragEnd = function(event)\r
+{\r
+document.removeEventListener("mousemove", this._elementDraggingEventListener, true);\r
+document.removeEventListener("mouseup", this._elementEndDraggingEventListener, true);\r
+\r
+document.body.style.removeProperty("cursor");\r
+\r
+delete this._elementDraggingEventListener;\r
+delete this._elementEndDraggingEventListener;\r
+\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.toggleSearchingForNode = function()\r
+{\r
+if (this.panels.elements) {\r
+this.showPanel("elements");\r
+this.panels.elements.toggleSearchingForNode();\r
+}\r
+}\r
+\r
+WebInspector.showConsole = function()\r
+{\r
+this.drawer.showView(this.console);\r
+}\r
+\r
+WebInspector.showChanges = function()\r
+{\r
+this.drawer.showView(this.changes);\r
+}\r
+\r
+WebInspector.showPanel = function(panel)\r
+{\r
+if (!(panel in this.panels))\r
+panel = "elements";\r
+this.currentPanel = this.panels[panel];\r
+}\r
+\r
+WebInspector.consoleMessagesCleared = function()\r
+{\r
+WebInspector.console.clearMessages();\r
+}\r
+\r
+WebInspector.domContentEventFired = function(time)\r
+{\r
+this.panels.audits.mainResourceDOMContentTime = time;\r
+if (this.panels.network)\r
+this.panels.network.mainResourceDOMContentTime = time;\r
+this.extensionServer.notifyPageDOMContentLoaded((time - WebInspector.mainResource.startTime) * 1000);\r
+this.mainResourceDOMContentTime = time;\r
+}\r
+\r
+WebInspector.loadEventFired = function(time)\r
+{\r
+this.panels.audits.mainResourceLoadTime = time;\r
+if (this.panels.network)\r
+this.panels.network.mainResourceLoadTime = time;\r
+this.extensionServer.notifyPageLoaded((time - WebInspector.mainResource.startTime) * 1000);\r
+this.mainResourceLoadTime = time;\r
+}\r
+\r
+WebInspector.searchingForNodeWasEnabled = function()\r
+{\r
+this.panels.elements.searchingForNodeWasEnabled();\r
+}\r
+\r
+WebInspector.searchingForNodeWasDisabled = function()\r
+{\r
+this.panels.elements.searchingForNodeWasDisabled();\r
+}\r
+\r
+WebInspector.reset = function()\r
+{\r
+this.debuggerModel.reset();\r
+\r
+for (var panelName in this.panels) {\r
+var panel = this.panels[panelName];\r
+if ("reset" in panel)\r
+panel.reset();\r
+}\r
+\r
+this.resources = {};\r
+this.highlightDOMNode(0);\r
+\r
+this.console.clearMessages();\r
+this.extensionServer.notifyInspectorReset();\r
+}\r
+\r
+WebInspector.bringToFront = function()\r
+{\r
+InspectorFrontendHost.bringToFront();\r
+}\r
+\r
+WebInspector.inspectedURLChanged = function(url)\r
+{\r
+InspectorFrontendHost.inspectedURLChanged(url);\r
+this.settings.inspectedURLChanged(url);\r
+this.extensionServer.notifyInspectedURLChanged();\r
+}\r
+\r
+WebInspector.updateConsoleMessageExpiredCount = function(count)\r
+{\r
+var message = String.sprintf(WebInspector.UIString("%d console messages are not shown."), count);\r
+WebInspector.console.addMessage(WebInspector.ConsoleMessage.createTextMessage(message, WebInspector.ConsoleMessage.MessageLevel.Warning));\r
+}\r
+\r
+WebInspector.addConsoleMessage = function(payload)\r
+{\r
+var consoleMessage = new WebInspector.ConsoleMessage(\r
+payload.source,\r
+payload.type,\r
+payload.level,\r
+payload.line,\r
+payload.url,\r
+payload.repeatCount,\r
+payload.message,\r
+payload.parameters,\r
+payload.stackTrace,\r
+payload.requestId);\r
+this.console.addMessage(consoleMessage);\r
+}\r
+\r
+WebInspector.updateConsoleMessageRepeatCount = function(count)\r
+{\r
+this.console.updateMessageRepeatCount(count);\r
+}\r
+\r
+WebInspector.log = function(message, messageLevel)\r
+{\r
+\r
+var self = this;\r
+\r
+\r
+function isLogAvailable()\r
+{\r
+return WebInspector.ConsoleMessage && WebInspector.RemoteObject && self.console;\r
+}\r
+\r
+\r
+function flushQueue()\r
+{\r
+var queued = WebInspector.log.queued;\r
+if (!queued)\r
+return;\r
+\r
+for (var i = 0; i < queued.length; ++i)\r
+logMessage(queued[i]);\r
+\r
+delete WebInspector.log.queued;\r
+}\r
+\r
+\r
+\r
+function flushQueueIfAvailable()\r
+{\r
+if (!isLogAvailable())\r
+return;\r
+\r
+clearInterval(WebInspector.log.interval);\r
+delete WebInspector.log.interval;\r
+\r
+flushQueue();\r
+}\r
+\r
+\r
+function logMessage(message)\r
+{\r
+var repeatCount = 1;\r
+if (message == WebInspector.log.lastMessage)\r
+repeatCount = WebInspector.log.repeatCount + 1;\r
+\r
+WebInspector.log.lastMessage = message;\r
+WebInspector.log.repeatCount = repeatCount;\r
+\r
+\r
+message = new WebInspector.RemoteObject.fromPrimitiveValue(message);\r
+\r
+\r
+var msg = new WebInspector.ConsoleMessage(\r
+WebInspector.ConsoleMessage.MessageSource.Other,\r
+WebInspector.ConsoleMessage.MessageType.Log,\r
+messageLevel || WebInspector.ConsoleMessage.MessageLevel.Debug,\r
+-1,\r
+null,\r
+repeatCount,\r
+null,\r
+[message],\r
+null);\r
+\r
+self.console.addMessage(msg);\r
+}\r
+\r
+\r
+if (!isLogAvailable()) {\r
+if (!WebInspector.log.queued)\r
+WebInspector.log.queued = [];\r
+\r
+WebInspector.log.queued.push(message);\r
+\r
+if (!WebInspector.log.interval)\r
+WebInspector.log.interval = setInterval(flushQueueIfAvailable, 1000);\r
+\r
+return;\r
+}\r
+\r
+\r
+flushQueue();\r
+\r
+\r
+logMessage(message);\r
+}\r
+\r
+WebInspector.drawLoadingPieChart = function(canvas, percent) {\r
+var g = canvas.getContext("2d");\r
+var darkColor = "rgb(122, 168, 218)";\r
+var lightColor = "rgb(228, 241, 251)";\r
+var cx = 8;\r
+var cy = 8;\r
+var r = 7;\r
+\r
+g.beginPath();\r
+g.arc(cx, cy, r, 0, Math.PI * 2, false);\r
+g.closePath();\r
+\r
+g.lineWidth = 1;\r
+g.strokeStyle = darkColor;\r
+g.fillStyle = lightColor;\r
+g.fill();\r
+g.stroke();\r
+\r
+var startangle = -Math.PI / 2;\r
+var endangle = startangle + (percent * Math.PI * 2);\r
+\r
+g.beginPath();\r
+g.moveTo(cx, cy);\r
+g.arc(cx, cy, r, startangle, endangle, false);\r
+g.closePath();\r
+\r
+g.fillStyle = darkColor;\r
+g.fill();\r
+}\r
+\r
+WebInspector.updateFocusedNode = function(nodeId)\r
+{\r
+this._updateFocusedNode(nodeId);\r
+this.highlightDOMNodeForTwoSeconds(nodeId);\r
+}\r
+\r
+WebInspector.displayNameForURL = function(url)\r
+{\r
+if (!url)\r
+return "";\r
+\r
+var resource = this.resourceForURL(url);\r
+if (resource)\r
+return resource.displayName;\r
+\r
+if (!WebInspector.mainResource)\r
+return url.trimURL("");\r
+\r
+var lastPathComponent = WebInspector.mainResource.lastPathComponent;\r
+var index = WebInspector.mainResource.url.indexOf(lastPathComponent);\r
+if (index !== -1 && index + lastPathComponent.length === WebInspector.mainResource.url.length) {\r
+var baseURL = WebInspector.mainResource.url.substring(0, index);\r
+if (url.indexOf(baseURL) === 0)\r
+return url.substring(index);\r
+}\r
+\r
+return url.trimURL(WebInspector.mainResource.domain);\r
+}\r
+\r
+WebInspector._choosePanelToShowSourceLine = function(url, line, preferredPanel)\r
+{\r
+preferredPanel = preferredPanel || "resources";\r
+\r
+var panel = this.panels[preferredPanel];\r
+if (panel && panel.canShowSourceLine(url, line))\r
+return panel;\r
+panel = this.panels.resources;\r
+return panel.canShowSourceLine(url, line) ? panel : null;\r
+}\r
+\r
+WebInspector.canShowSourceLine = function(url, line, preferredPanel)\r
+{\r
+return !!this._choosePanelToShowSourceLine(url, line, preferredPanel);\r
+}\r
+\r
+WebInspector.showSourceLine = function(url, line, preferredPanel)\r
+{\r
+this.currentPanel = this._choosePanelToShowSourceLine(url, line, preferredPanel);\r
+if (!this.currentPanel)\r
+return false;\r
+this.currentPanel.showSourceLine(url, line);\r
+return true;\r
+}\r
+\r
+WebInspector.linkifyStringAsFragment = function(string)\r
+{\r
+var container = document.createDocumentFragment();\r
+var linkStringRegEx = /(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\/\/|www\.)[\w$\-_+*'=\|\/\\(){}[\]%@&#~,:;.!?]{2,}[\w$\-_+*=\|\/\\({%@&#~]/;\r
+    var lineColumnRegEx = /:(\d+)(:(\d+))?$/;\r
+\r
+    while (string) {\r
+        var linkString = linkStringRegEx.exec(string);\r
+        if (!linkString)\r
+            break;\r
+\r
+        linkString = linkString[0];\r
+        var title = linkString;\r
+        var linkIndex = string.indexOf(linkString);\r
+        var nonLink = string.substring(0, linkIndex);\r
+        container.appendChild(document.createTextNode(nonLink));\r
+\r
+        var profileStringMatches = WebInspector.ProfileType.URLRegExp.exec(title);\r
+        if (profileStringMatches)\r
+            title = WebInspector.panels.profiles.displayTitleForProfileLink(profileStringMatches[2], profileStringMatches[1]);\r
+\r
+        var realURL = (linkString.indexOf("www.") === 0 ? "http://" + linkString : linkString);\r
+        var lineColumnMatch = lineColumnRegEx.exec(realURL);\r
+        if (lineColumnMatch)\r
+            realURL = realURL.substring(0, realURL.length - lineColumnMatch[0].length);\r
+\r
+        var hasResourceWithURL = !!WebInspector.resourceForURL(realURL);\r
+        var urlNode = WebInspector.linkifyURLAsNode(realURL, title, null, hasResourceWithURL);\r
+        container.appendChild(urlNode);\r
+        if (lineColumnMatch) {\r
+            urlNode.setAttribute("line_number", lineColumnMatch[1]);\r
+            urlNode.setAttribute("preferred_panel", "scripts");\r
+        }\r
+        string = string.substring(linkIndex + linkString.length, string.length);\r
+    }\r
+\r
+    if (string)\r
+        container.appendChild(document.createTextNode(string));\r
+\r
+    return container;\r
+}\r
+\r
+WebInspector.showProfileForURL = function(url)\r
+{\r
+    WebInspector.showPanel("profiles");\r
+    WebInspector.panels.profiles.showProfileForURL(url);\r
+}\r
+\r
+WebInspector.linkifyURLAsNode = function(url, linkText, classes, isExternal, tooltipText)\r
+{\r
+    if (!linkText)\r
+        linkText = url;\r
+    classes = (classes ? classes + " " : "");\r
+    classes += isExternal ? "webkit-html-external-link" : "webkit-html-resource-link";\r
+\r
+    var a = document.createElement("a");\r
+    a.href = url;\r
+    a.className = classes;\r
+    if (typeof tooltipText === "undefined")\r
+        a.title = url;\r
+    else if (typeof tooltipText !== "string" || tooltipText.length)\r
+        a.title = tooltipText;\r
+    a.textContent = linkText;\r
+\r
+    return a;\r
+}\r
+\r
+WebInspector.linkifyURL = function(url, linkText, classes, isExternal, tooltipText)\r
+{\r
+    // Use the DOM version of this function so as to avoid needing to escape attributes.\r
+    // FIXME:  Get rid of linkifyURL entirely.\r
+    return WebInspector.linkifyURLAsNode(url, linkText, classes, isExternal, tooltipText).outerHTML;\r
+}\r
+\r
+WebInspector.linkifyResourceAsNode = function(url, preferredPanel, lineNumber, classes, tooltipText)\r
+{\r
+    var linkText = WebInspector.displayNameForURL(url);\r
+    if (lineNumber)\r
+        linkText += ":" + lineNumber;\r
+    var node = WebInspector.linkifyURLAsNode(url, linkText, classes, false, tooltipText);\r
+    node.setAttribute("line_number", lineNumber);\r
+    node.setAttribute("preferred_panel", preferredPanel);\r
+    return node;\r
+}\r
+\r
+WebInspector.resourceURLForRelatedNode = function(node, url)\r
+{\r
+    if (!url || url.indexOf("://") > 0)\r
+        return url;\r
+\r
+    for (var frameOwnerCandidate = node; frameOwnerCandidate; frameOwnerCandidate = frameOwnerCandidate.parentNode) {\r
+        if (frameOwnerCandidate.documentURL) {\r
+            var result = WebInspector.completeURL(frameOwnerCandidate.documentURL, url);\r
+            if (result)\r
+                return result;\r
+            break;\r
+        }\r
+    }\r
+\r
+    // documentURL not found or has bad value\r
+    var resourceURL = url;\r
+    function callback(resource)\r
+    {\r
+        if (resource.path === url) {\r
+            resourceURL = resource.url;\r
+            return true;\r
+        }\r
+    }\r
+    WebInspector.forAllResources(callback);\r
+    return resourceURL;\r
+}\r
+\r
+WebInspector.completeURL = function(baseURL, href)\r
+{\r
+    var parsedURL = baseURL.asParsedURL();\r
+    if (parsedURL) {\r
+        var path = href;\r
+        if (path.charAt(0) !== "/") {\r
+            var basePath = parsedURL.path;\r
+            path = basePath.substring(0, basePath.lastIndexOf("/")) + "/" + path;\r
+        } else if (path.length > 1 && path.charAt(1) === "/") {\r
+            // href starts with "//" which is a full URL with the protocol dropped (use the baseURL protocol).\r
+            return parsedURL.scheme + ":" + path;\r
+        }\r
+        return parsedURL.scheme + "://" + parsedURL.host + (parsedURL.port ? (":" + parsedURL.port) : "") + path;\r
+    }\r
+    return null;\r
+}\r
+\r
+WebInspector.addMainEventListeners = function(doc)\r
+{\r
+    doc.defaultView.addEventListener("focus", this.windowFocused.bind(this), false);\r
+    doc.defaultView.addEventListener("blur", this.windowBlurred.bind(this), false);\r
+    doc.addEventListener("click", this.documentClick.bind(this), true);\r
+}\r
+\r
+WebInspector._searchFieldManualFocus = function(event)\r
+{\r
+    this.currentFocusElement = event.target;\r
+    this._previousFocusElement = event.target;\r
+}\r
+\r
+WebInspector._searchKeyDown = function(event)\r
+{\r
+    // Escape Key will clear the field and clear the search results\r
+    if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code) {\r
+        // If focus belongs here and text is empty - nothing to do, return unhandled.\r
+        if (event.target.value === "" && this.currentFocusElement === this.previousFocusElement)\r
+            return;\r
+        event.preventDefault();\r
+        event.stopPropagation();\r
+        // When search was selected manually and is currently blank, we'd like Esc stay unhandled\r
+\r
+event.target.value = "";\r
+\r
+this.performSearch(event);\r
+this.currentFocusElement = this.previousFocusElement;\r
+if (this.currentFocusElement === event.target)\r
+this.currentFocusElement.select();\r
+return false;\r
+}\r
+\r
+if (!isEnterKey(event))\r
+return false;\r
+\r
+\r
+event.target.select();\r
+\r
+\r
+\r
+\r
+this.performSearch(event);\r
+\r
+\r
+\r
+event.preventDefault();\r
+}\r
+\r
+WebInspector.performSearch = function(event)\r
+{\r
+var forceSearch = event.keyIdentifier === "Enter";\r
+this.doPerformSearch(event.target.value, forceSearch, event.shiftKey, false);\r
+}\r
+\r
+WebInspector.doPerformSearch = function(query, forceSearch, isBackwardSearch, repeatSearch)\r
+{\r
+var isShortSearch = (query.length < 3);\r
+\r
+\r
+if (isShortSearch && this.shortSearchWasForcedByKeyEvent && this.currentQuery !== query)\r
+delete this.shortSearchWasForcedByKeyEvent;\r
+\r
+\r
+if (isShortSearch && forceSearch)\r
+this.shortSearchWasForcedByKeyEvent = true;\r
+\r
+if (!query || !query.length || (!forceSearch && isShortSearch)) {\r
+\r
+if (this.shortSearchWasForcedByKeyEvent) {\r
+delete this.shortSearchWasForcedByKeyEvent;\r
+return;\r
+}\r
+\r
+delete this.currentQuery;\r
+\r
+for (var panelName in this.panels) {\r
+var panel = this.panels[panelName];\r
+var hadCurrentQuery = !!panel.currentQuery;\r
+delete panel.currentQuery;\r
+if (hadCurrentQuery && panel.searchCanceled)\r
+panel.searchCanceled();\r
+}\r
+\r
+this.updateSearchMatchesCount();\r
+\r
+return;\r
+}\r
+\r
+if (!repeatSearch && query === this.currentPanel.currentQuery && this.currentPanel.currentQuery === this.currentQuery) {\r
+\r
+\r
+if (forceSearch) {\r
+if (!isBackwardSearch && this.currentPanel.jumpToNextSearchResult)\r
+this.currentPanel.jumpToNextSearchResult();\r
+else if (isBackwardSearch && this.currentPanel.jumpToPreviousSearchResult)\r
+this.currentPanel.jumpToPreviousSearchResult();\r
+}\r
+return;\r
+}\r
+\r
+this.currentQuery = query;\r
+\r
+this.updateSearchMatchesCount();\r
+\r
+if (!this.currentPanel.performSearch)\r
+return;\r
+\r
+this.currentPanel.currentQuery = query;\r
+this.currentPanel.performSearch(query);\r
+}\r
+\r
+WebInspector.addNodesToSearchResult = function(nodeIds)\r
+{\r
+WebInspector.panels.elements.addNodesToSearchResult(nodeIds);\r
+}\r
+\r
+WebInspector.updateSearchMatchesCount = function(matches, panel)\r
+{\r
+if (!panel)\r
+panel = this.currentPanel;\r
+\r
+panel.currentSearchMatches = matches;\r
+\r
+if (panel !== this.currentPanel)\r
+return;\r
+\r
+if (!this.currentPanel.currentQuery) {\r
+document.getElementById("search-results-matches").addStyleClass("hidden");\r
+return;\r
+}\r
+\r
+if (matches) {\r
+if (matches === 1)\r
+var matchesString = WebInspector.UIString("1 match");\r
+else\r
+var matchesString = WebInspector.UIString("%d matches", matches);\r
+} else\r
+var matchesString = WebInspector.UIString("Not Found");\r
+\r
+var matchesToolbarElement = document.getElementById("search-results-matches");\r
+matchesToolbarElement.removeStyleClass("hidden");\r
+matchesToolbarElement.textContent = matchesString;\r
+}\r
+\r
+WebInspector.UIString = function(string)\r
+{\r
+if (window.localizedStrings && string in window.localizedStrings)\r
+string = window.localizedStrings[string];\r
+else {\r
+if (!(string in WebInspector.missingLocalizedStrings)) {\r
+if (!WebInspector.InspectorBackendStub)\r
+console.error("Localized string \"" + string + "\" not found.");\r
+WebInspector.missingLocalizedStrings[string] = true;\r
+}\r
+\r
+if (Preferences.showMissingLocalizedStrings)\r
+string += " (not localized)";\r
+}\r
+\r
+return String.vsprintf(string, Array.prototype.slice.call(arguments, 1));\r
+}\r
+\r
+WebInspector.formatLocalized = function(format, substitutions, formatters, initialValue, append)\r
+{\r
+return String.format(WebInspector.UIString(format), substitutions, formatters, initialValue, append);\r
+}\r
+\r
+WebInspector.isMac = function()\r
+{\r
+if (!("_isMac" in this))\r
+this._isMac = WebInspector.platform === "mac";\r
+\r
+return this._isMac;\r
+}\r
+\r
+WebInspector.isBeingEdited = function(element)\r
+{\r
+return element.__editing;\r
+}\r
+\r
+WebInspector.isEditingAnyField = function()\r
+{\r
+return this.__editing;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.startEditing = function(element, config)\r
+{\r
+if (element.__editing)\r
+return;\r
+element.__editing = true;\r
+WebInspector.__editing = true;\r
+\r
+config = config || {};\r
+var committedCallback = config.commitHandler;\r
+var cancelledCallback = config.cancelHandler;\r
+var context = config.context;\r
+var oldText = getContent(element);\r
+var moveDirection = "";\r
+\r
+element.addStyleClass("editing");\r
+\r
+var oldTabIndex = element.tabIndex;\r
+if (element.tabIndex < 0)\r
+element.tabIndex = 0;\r
+\r
+function blurEventListener() {\r
+editingCommitted.call(element);\r
+}\r
+\r
+function getContent(element) {\r
+if (element.tagName === "INPUT" && element.type === "text")\r
+return element.value;\r
+else\r
+return element.textContent;\r
+}\r
+\r
+function cleanUpAfterEditing() {\r
+delete this.__editing;\r
+delete WebInspector.__editing;\r
+\r
+this.removeStyleClass("editing");\r
+this.tabIndex = oldTabIndex;\r
+this.scrollTop = 0;\r
+this.scrollLeft = 0;\r
+\r
+element.removeEventListener("blur", blurEventListener, false);\r
+element.removeEventListener("keydown", keyDownEventListener, true);\r
+\r
+if (element === WebInspector.currentFocusElement || element.isAncestor(WebInspector.currentFocusElement))\r
+WebInspector.currentFocusElement = WebInspector.previousFocusElement;\r
+}\r
+\r
+function editingCancelled() {\r
+if (this.tagName === "INPUT" && this.type === "text")\r
+this.value = oldText;\r
+else\r
+this.textContent = oldText;\r
+\r
+cleanUpAfterEditing.call(this);\r
+\r
+if (cancelledCallback)\r
+cancelledCallback(this, context);\r
+}\r
+\r
+function editingCommitted() {\r
+cleanUpAfterEditing.call(this);\r
+\r
+if (committedCallback)\r
+committedCallback(this, getContent(this), oldText, context, moveDirection);\r
+}\r
+\r
+function defaultFinishHandler(event)\r
+{\r
+var isMetaOrCtrl = WebInspector.isMac() ?\r
+event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey :\r
+event.ctrlKey && !event.shiftKey && !event.metaKey && !event.altKey;\r
+if (isEnterKey(event) && (!config.multiline || isMetaOrCtrl))\r
+return "commit";\r
+else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code)\r
+return "cancel";\r
+else if (event.keyIdentifier === "U+0009") \r
+return "move-" + (event.shiftKey ? "backward" : "forward");\r
+}\r
+\r
+function keyDownEventListener(event)\r
+{\r
+var handler = config.customFinishHandler || defaultFinishHandler;\r
+var result = handler(event);\r
+if (result === "commit") {\r
+editingCommitted.call(element);\r
+event.preventDefault();\r
+event.stopPropagation();\r
+} else if (result === "cancel") {\r
+editingCancelled.call(element);\r
+event.preventDefault();\r
+event.stopPropagation();\r
+} else if (result && result.indexOf("move-") === 0) {\r
+moveDirection = result.substring(5);\r
+if (event.keyIdentifier !== "U+0009")\r
+blurEventListener();\r
+}\r
+}\r
+\r
+element.addEventListener("blur", blurEventListener, false);\r
+element.addEventListener("keydown", keyDownEventListener, true);\r
+\r
+WebInspector.currentFocusElement = element;\r
+return {\r
+cancel: editingCancelled.bind(element),\r
+commit: editingCommitted.bind(element)\r
+};\r
+}\r
+\r
+WebInspector._toolbarItemClicked = function(event)\r
+{\r
+var toolbarItem = event.currentTarget;\r
+this.currentPanel = toolbarItem.panel;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.MIMETypes = {\r
+"text/html":                   {0: true},\r
+"text/xml":                    {0: true},\r
+"text/plain":                  {0: true},\r
+"application/xhtml+xml":       {0: true},\r
+"text/css":                    {1: true},\r
+"text/xsl":                    {1: true},\r
+"image/jpeg":                  {2: true},\r
+"image/png":                   {2: true},\r
+"image/gif":                   {2: true},\r
+"image/bmp":                   {2: true},\r
+"image/vnd.microsoft.icon":    {2: true},\r
+"image/x-icon":                {2: true},\r
+"image/x-xbitmap":             {2: true},\r
+"font/ttf":                    {3: true},\r
+"font/opentype":               {3: true},\r
+"application/x-font-type1":    {3: true},\r
+"application/x-font-ttf":      {3: true},\r
+"application/x-truetype-font": {3: true},\r
+"text/javascript":             {4: true},\r
+"text/ecmascript":             {4: true},\r
+"application/javascript":      {4: true},\r
+"application/ecmascript":      {4: true},\r
+"application/x-javascript":    {4: true},\r
+"text/javascript1.1":          {4: true},\r
+"text/javascript1.2":          {4: true},\r
+"text/javascript1.3":          {4: true},\r
+"text/jscript":                {4: true},\r
+"text/livescript":             {4: true},\r
+}\r
+\r
+WebInspector.PanelHistory = function()\r
+{\r
+this._history = [];\r
+this._historyIterator = -1;\r
+}\r
+\r
+WebInspector.PanelHistory.prototype = {\r
+canGoBack: function()\r
+{\r
+return this._historyIterator > 0;\r
+},\r
+\r
+goBack: function()\r
+{\r
+this._inHistory = true;\r
+WebInspector.currentPanel = WebInspector.panels[this._history[--this._historyIterator]];\r
+delete this._inHistory;\r
+},\r
+\r
+canGoForward: function()\r
+{\r
+return this._historyIterator < this._history.length - 1;\r
+},\r
+\r
+goForward: function()\r
+{\r
+this._inHistory = true;\r
+WebInspector.currentPanel = WebInspector.panels[this._history[++this._historyIterator]];\r
+delete this._inHistory;\r
+},\r
+\r
+setPanel: function(panelName)\r
+{\r
+if (this._inHistory)\r
+return;\r
+\r
+this._history.splice(this._historyIterator + 1, this._history.length - this._historyIterator - 1);\r
+if (!this._history.length || this._history[this._history.length - 1] !== panelName)\r
+this._history.push(panelName);\r
+this._historyIterator = this._history.length - 1;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+InspectorBackendStub = function()\r
+{\r
+this._lastCallbackId = 1;\r
+this._callbacks = {};\r
+this._domainDispatchers = {};\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "setInjectedScriptSource", "arguments": {"scriptSource": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "dispatchOnInjectedScript", "arguments": {"injectedScriptId": "number","methodName": "string","arguments": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "addScriptToEvaluateOnLoad", "arguments": {"scriptSource": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "removeAllScriptsToEvaluateOnLoad", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "releaseWrapperObjectGroup", "arguments": {"injectedScriptId": "number","objectGroup": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "getInspectorState", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setMonitoringXHREnabled", "arguments": {"enable": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "reloadPage", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "populateScriptObjects", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "openInInspectedWindow", "arguments": {"url": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setSearchingForNode", "arguments": {"enabled": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "didEvaluateForTestInFrontend", "arguments": {"testCallId": "number","jsonResult": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "highlightDOMNode", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "hideDOMNodeHighlight", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "highlightFrame", "arguments": {"frameId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "hideFrameHighlight", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setConsoleMessagesEnabled", "arguments": {"enabled": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "clearConsoleMessages", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setExtraHeaders", "arguments": {"headers": "object"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Resources", "command": "cachedResources", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Resources", "command": "resourceContent", "arguments": {"frameId": "number","url": "string","base64Encode": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "getCookies", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "deleteCookie", "arguments": {"cookieName": "string","domain": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "getDatabaseTableNames", "arguments": {"databaseId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "executeSQL", "arguments": {"databaseId": "number","query": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "getDOMStorageEntries", "arguments": {"storageId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setDOMStorageItem", "arguments": {"storageId": "number","key": "string","value": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "removeDOMStorageItem", "arguments": {"storageId": "number","key": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "ApplicationCache", "command": "getApplicationCaches", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "FileSystem", "command": "getFileSystemPathAsync", "arguments": {"type": "number","origin": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "FileSystem", "command": "revealFolderInOS", "arguments": {"path": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "getChildNodes", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "setAttribute", "arguments": {"elementId": "number","name": "string","value": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "removeAttribute", "arguments": {"elementId": "number","name": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "setTextNodeValue", "arguments": {"nodeId": "number","value": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "getEventListenersForNode", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "copyNode", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "removeNode", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "changeTagName", "arguments": {"nodeId": "number","newTagName": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "getOuterHTML", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "setOuterHTML", "arguments": {"nodeId": "number","outerHTML": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "addInspectedNode", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "performSearch", "arguments": {"query": "string","runSynchronously": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "searchCanceled", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "pushNodeByPathToFrontend", "arguments": {"path": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getStylesForNode2", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getComputedStyleForNode2", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getInlineStyleForNode2", "arguments": {"nodeId": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getAllStyles2", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getStyleSheet2", "arguments": {"styleSheetId": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getStyleSheetText2", "arguments": {"styleSheetId": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "setStyleSheetText2", "arguments": {"styleSheetId": "string","text": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "setPropertyText2", "arguments": {"styleId": "object","propertyIndex": "number","text": "string","overwrite": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "toggleProperty2", "arguments": {"styleId": "object","propertyIndex": "number","disable": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "setRuleSelector2", "arguments": {"ruleId": "object","selector": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "addRule2", "arguments": {"contextNodeId": "number","selector": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "getSupportedCSSProperties", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "CSS", "command": "querySelectorAll", "arguments": {"documentId": "number","selector": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "startTimelineProfiler", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "stopTimelineProfiler", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Backend", "command": "enableDebugger", "arguments": {"always": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "disableDebugger", "arguments": {"always": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "activateBreakpoints", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "deactivateBreakpoints", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "setBreakpoint", "arguments": {"sourceID": "string","lineNumber": "number","condition": "string","enabled": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "removeBreakpoint", "arguments": {"breakpointId": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setStickyBreakpoints", "arguments": {"breakpoints": "object"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "setDOMBreakpoint", "arguments": {"nodeId": "number","type": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "DOM", "command": "removeDOMBreakpoint", "arguments": {"nodeId": "number","type": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setEventListenerBreakpoint", "arguments": {"eventName": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "removeEventListenerBreakpoint", "arguments": {"eventName": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "setXHRBreakpoint", "arguments": {"url": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "removeXHRBreakpoint", "arguments": {"url": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "stepOverStatement", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "stepIntoStatement", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "stepOutOfFunction", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "pause", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "resume", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "setPauseOnExceptionsState", "arguments": {"pauseOnExceptionsState": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "editScriptSource", "arguments": {"sourceID": "string","newContent": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Debugger", "command": "getScriptSource", "arguments": {"sourceID": "string"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "enableProfiler", "arguments": {"always": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "disableProfiler", "arguments": {"always": "boolean"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "startProfiling", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Inspector", "command": "stopProfiling", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Profiler", "command": "getProfileHeaders", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Profiler", "command": "getProfile", "arguments": {"type": "string","uid": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Profiler", "command": "removeProfile", "arguments": {"type": "string","uid": "number"}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Profiler", "command": "clearProfiles", "arguments": {}}');\r
+this._registerDelegate('{"seq": 0, "domain": "Profiler", "command": "takeHeapSnapshot", "arguments": {}}');\r
+}\r
+\r
+InspectorBackendStub.prototype = {\r
+_wrap: function(callback)\r
+{\r
+var callbackId = this._lastCallbackId++;\r
+this._callbacks[callbackId] = callback || function() {};\r
+return callbackId;\r
+},\r
+\r
+_processResponse: function(callbackId, args)\r
+{\r
+var callback = this._callbacks[callbackId];\r
+callback.apply(null, args);\r
+delete this._callbacks[callbackId];\r
+},\r
+\r
+_removeResponseCallbackEntry: function(callbackId)\r
+{\r
+delete this._callbacks[callbackId];\r
+},\r
+\r
+_registerDelegate: function(commandInfo)\r
+{\r
+var commandObject = JSON.parse(commandInfo);\r
+this[commandObject.command] = this.sendMessageToBackend.bind(this, commandInfo);\r
+},\r
+\r
+sendMessageToBackend: function()\r
+{\r
+var args = Array.prototype.slice.call(arguments);\r
+var request = JSON.parse(args.shift());\r
+\r
+for (var key in request.arguments) {\r
+if (args.length === 0) {\r
+console.error("Protocol Error: Invalid number of arguments for 'InspectorBackend.%s' call. It should have the next arguments '%s'.", request.command, JSON.stringify(request.arguments));\r
+return;\r
+}\r
+var value = args.shift();\r
+if (typeof value !== request.arguments[key]) {\r
+console.error("Protocol Error: Invalid type of argument '%s' for 'InspectorBackend.%s' call. It should be '%s' but it is '%s'.", key, request.command, request.arguments[key], typeof value);\r
+return;\r
+}\r
+request.arguments[key] = value;\r
+}\r
+\r
+if (args.length === 1) {\r
+if (typeof args[0] !== "function" && typeof args[0] !== "undefined") {\r
+console.error("Protocol Error: Optional callback argument for 'InspectorBackend.%s' call should be a function but its type is '%s'.", request.command, typeof args[0]);\r
+return;\r
+}\r
+request.seq = this._wrap(args[0]);\r
+}\r
+\r
+if (window.dumpInspectorProtocolMessages)\r
+console.log("frontend: " + JSON.stringify(request));\r
+\r
+var message = JSON.stringify(request);\r
+InspectorFrontendHost.sendMessageToBackend(message);\r
+},\r
+\r
+registerDomainDispatcher: function(domain, dispatcher)\r
+{\r
+this._domainDispatchers[domain] = dispatcher;\r
+},\r
+\r
+dispatch: function(message)\r
+{\r
+if (window.dumpInspectorProtocolMessages)\r
+console.log("backend: " + ((typeof message === "string") ? message : JSON.stringify(message)));\r
+\r
+var messageObject = (typeof message === "string") ? JSON.parse(message) : message;\r
+\r
+var arguments = [];\r
+if (messageObject.data)\r
+for (var key in messageObject.data)\r
+arguments.push(messageObject.data[key]);\r
+\r
+if ("seq" in messageObject) { \r
+if (messageObject.success)\r
+this._processResponse(messageObject.seq, arguments);\r
+else {\r
+this._removeResponseCallbackEntry(messageObject.seq)\r
+this.reportProtocolError(messageObject);\r
+}\r
+return;\r
+}\r
+\r
+if (messageObject.type === "event") {\r
+if (!(messageObject.domain in this._domainDispatchers)) {\r
+console.error("Protocol Error: the message is for non-existing domain '%s'", messageObject.domain);\r
+return;\r
+}\r
+var dispatcher = this._domainDispatchers[messageObject.domain];\r
+if (!(messageObject.event in dispatcher)) {\r
+console.error("Protocol Error: Attempted to dispatch an unimplemented method '%s.%s'", messageObject.domain, messageObject.event);\r
+return;\r
+}\r
+dispatcher[messageObject.event].apply(dispatcher, arguments);\r
+}\r
+},\r
+\r
+reportProtocolError: function(messageObject)\r
+{\r
+console.error("Protocol Error: InspectorBackend request with seq = %d failed.", messageObject.seq);\r
+for (var i = 0; i < messageObject.errors.length; ++i)\r
+console.error("    " + messageObject.errors[i]);\r
+this._removeResponseCallbackEntry(messageObject.seq);\r
+}\r
+}\r
+\r
+InspectorBackend = new InspectorBackendStub();\r
+\r
+\r
+\r
+\r
+if (!window.InspectorFrontendHost) {\r
+\r
+WebInspector.InspectorFrontendHostStub = function()\r
+{\r
+this._attachedWindowHeight = 0;\r
+}\r
+\r
+WebInspector._platformFlavor = WebInspector.PlatformFlavor.MacLeopard;\r
+\r
+WebInspector.InspectorFrontendHostStub.prototype = {\r
+platform: function()\r
+{\r
+var match = navigator.userAgent.match(/Windows NT/);\r
+if (match)\r
+return "windows";\r
+match = navigator.userAgent.match(/Mac OS X/);\r
+if (match)\r
+return "mac";\r
+return "linux";\r
+},\r
+\r
+port: function()\r
+{\r
+return "unknown";\r
+},\r
+\r
+bringToFront: function()\r
+{\r
+this._windowVisible = true;\r
+},\r
+\r
+closeWindow: function()\r
+{\r
+this._windowVisible = false;\r
+},\r
+\r
+disconnectFromBackend: function()\r
+{\r
+this._windowVisible = false;\r
+},\r
+\r
+attach: function()\r
+{\r
+},\r
+\r
+detach: function()\r
+{\r
+},\r
+\r
+search: function(sourceRow, query)\r
+{\r
+},\r
+\r
+setAttachedWindowHeight: function(height)\r
+{\r
+},\r
+\r
+moveWindowBy: function(x, y)\r
+{\r
+},\r
+\r
+setExtensionAPI: function(script)\r
+{\r
+},\r
+\r
+loaded: function()\r
+{\r
+},\r
+\r
+localizedStringsURL: function()\r
+{\r
+return undefined;\r
+},\r
+\r
+hiddenPanels: function()\r
+{\r
+return "";\r
+},\r
+\r
+inspectedURLChanged: function(url)\r
+{\r
+},\r
+\r
+copyText: function()\r
+{\r
+},\r
+\r
+canAttachWindow: function()\r
+{\r
+return false;\r
+},\r
+\r
+sendMessageToBackend: function(message)\r
+{\r
+}\r
+}\r
+\r
+InspectorFrontendHost = new WebInspector.InspectorFrontendHostStub();\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+if (!window.InspectorExtensionRegistry) {\r
+\r
+WebInspector.InspectorExtensionRegistryStub = function()\r
+{\r
+}\r
+\r
+WebInspector.InspectorExtensionRegistryStub.prototype = {\r
+getExtensionsAsync: function()\r
+{\r
+}\r
+};\r
+\r
+InspectorExtensionRegistry = new WebInspector.InspectorExtensionRegistryStub();\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Object = function() {\r
+}\r
+\r
+WebInspector.Object.prototype = {\r
+addEventListener: function(eventType, listener, thisObject)\r
+{\r
+if (!("_listeners" in this))\r
+this._listeners = {};\r
+if (!(eventType in this._listeners))\r
+this._listeners[eventType] = [];\r
+this._listeners[eventType].push({ thisObject: thisObject, listener: listener });\r
+},\r
+\r
+removeEventListener: function(eventType, listener, thisObject)\r
+{\r
+if (!("_listeners" in this) || !(eventType in this._listeners))\r
+return;\r
+var listeners = this._listeners[eventType];\r
+for (var i = 0; i < listeners.length; ++i) {\r
+if (listener && listeners[i].listener === listener && listeners[i].thisObject === thisObject)\r
+listeners.splice(i, 1);\r
+else if (!listener && thisObject && listeners[i].thisObject === thisObject)\r
+listeners.splice(i, 1);\r
+}\r
+\r
+if (!listeners.length)\r
+delete this._listeners[eventType];\r
+},\r
+\r
+removeAllListeners: function()\r
+{\r
+delete this._listeners;\r
+},\r
+\r
+dispatchEventToListeners: function(eventType, eventData)\r
+{\r
+if (!("_listeners" in this) || !(eventType in this._listeners))\r
+return;\r
+\r
+var stoppedPropagation = false;\r
+\r
+function stopPropagation()\r
+{\r
+stoppedPropagation = true;\r
+}\r
+\r
+function preventDefault()\r
+{\r
+this.defaultPrevented = true;\r
+}\r
+\r
+var event = {target: this, type: eventType, data: eventData, defaultPrevented: false};\r
+event.stopPropagation = stopPropagation;\r
+event.preventDefault = preventDefault;\r
+\r
+var listeners = this._listeners[eventType].slice(0);\r
+for (var i = 0; i < listeners.length; ++i) {\r
+listeners[i].listener.call(listeners[i].thisObject, event);\r
+if (stoppedPropagation)\r
+break;\r
+}\r
+\r
+return event.defaultPrevented;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+var Preferences = {\r
+canEditScriptSource: false,\r
+maxInlineTextChildLength: 80,\r
+minConsoleHeight: 75,\r
+minSidebarWidth: 100,\r
+minElementsSidebarWidth: 200,\r
+minScriptsSidebarWidth: 200,\r
+styleRulesExpandedState: {},\r
+showMissingLocalizedStrings: false,\r
+samplingCPUProfiler: false,\r
+showColorNicknames: true,\r
+debuggerAlwaysEnabled: false,\r
+profilerAlwaysEnabled: false,\r
+onlineDetectionEnabled: true,\r
+nativeInstrumentationEnabled: false,\r
+resourceExportEnabled: false,\r
+fileSystemEnabled: false,\r
+useDataURLForResourceImageIcons: true,\r
+showTimingTab: false,\r
+showCookiesTab: false,\r
+debugMode: false\r
+}\r
+\r
+WebInspector.Settings = function()\r
+{\r
+this.installApplicationSetting("colorFormat", "hex");\r
+this.installApplicationSetting("consoleHistory", []);\r
+this.installApplicationSetting("eventListenersFilter", "all");\r
+this.installApplicationSetting("lastViewedScriptFile", "application");\r
+this.installApplicationSetting("resourcesLargeRows", true);\r
+this.installApplicationSetting("resourcesSortOptions", {timeOption: "responseTime", sizeOption: "transferSize"});\r
+this.installApplicationSetting("resourceViewTab", "content");\r
+this.installApplicationSetting("showInheritedComputedStyleProperties", false);\r
+this.installApplicationSetting("showUserAgentStyles", true);\r
+this.installApplicationSetting("watchExpressions", []);\r
+this.installApplicationSetting("lastActivePanel", "elements");\r
+\r
+this.installProjectSetting("breakpoints", {});\r
+this.installProjectSetting("nativeBreakpoints", []);\r
+}\r
+\r
+WebInspector.Settings.Events = {\r
+ProjectChanged: "project-changed"\r
+}\r
+\r
+WebInspector.Settings.prototype = {\r
+installApplicationSetting: function(key, defaultValue)\r
+{\r
+if (key in this)\r
+return;\r
+\r
+this.__defineGetter__(key, this._get.bind(this, key, defaultValue));\r
+this.__defineSetter__(key, this._set.bind(this, key));\r
+},\r
+\r
+installProjectSetting: function(key, defaultValue)\r
+{\r
+this.__defineGetter__(key, this._getProjectSetting.bind(this, key, defaultValue));\r
+this.__defineSetter__(key, this._setProjectSetting.bind(this, key));\r
+},\r
+\r
+inspectedURLChanged: function(url)\r
+{\r
+var fragmentIndex = url.indexOf("#");\r
+if (fragmentIndex !== -1)\r
+url = url.substring(0, fragmentIndex);\r
+this._projectId = url;\r
+this.dispatchEventToListeners(WebInspector.Settings.Events.ProjectChanged);\r
+},\r
+\r
+get projectId()\r
+{\r
+return this._projectId;\r
+},\r
+\r
+findSettingForAllProjects: function(key)\r
+{\r
+var result = {};\r
+var regexp = "^" + key + ":(.*)";\r
+for (var i = 0; i < window.localStorage.length; ++i) {\r
+var fullKey =  window.localStorage.key(i);\r
+var match = fullKey.match(regexp);\r
+if (!match)\r
+continue;\r
+try {\r
+result[match[1]] = JSON.parse(window.localStorage[fullKey]);\r
+} catch(e) {\r
+window.localStorage.removeItem(fullKey);\r
+}\r
+}\r
+return result;\r
+},\r
+\r
+_get: function(key, defaultValue)\r
+{\r
+if (key in window.localStorage) {\r
+try {\r
+return JSON.parse(window.localStorage[key]);\r
+} catch(e) {\r
+window.localStorage.removeItem(key);\r
+}\r
+}\r
+return defaultValue;\r
+},\r
+\r
+_set: function(key, value)\r
+{\r
+window.localStorage[key] = JSON.stringify(value);\r
+},\r
+\r
+_getProjectSetting: function(key, defaultValue)\r
+{\r
+return this._get(this._formatProjectKey(key), defaultValue);\r
+},\r
+\r
+_setProjectSetting: function(key, value)\r
+{\r
+return this._set(this._formatProjectKey(key), value);\r
+},\r
+\r
+_formatProjectKey: function(key)\r
+{\r
+return key + ":" + this._projectId;\r
+}\r
+}\r
+\r
+WebInspector.Settings.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CSSStyleModel = function()\r
+{\r
+}\r
+\r
+WebInspector.CSSStyleModel.parseRuleArrayPayload = function(ruleArray)\r
+{\r
+var result = [];\r
+for (var i = 0; i < ruleArray.length; ++i)\r
+result.push(WebInspector.CSSRule.parsePayload(ruleArray[i]));\r
+return result;\r
+}\r
+\r
+WebInspector.CSSStyleModel.prototype = {\r
+getStylesAsync: function(nodeId, userCallback)\r
+{\r
+function callback(userCallback, payload)\r
+{\r
+if (!payload) {\r
+if (userCallback)\r
+userCallback(null);\r
+return;\r
+}\r
+\r
+var result = {};\r
+if ("inlineStyle" in payload)\r
+result.inlineStyle = WebInspector.CSSStyleDeclaration.parsePayload(payload.inlineStyle);\r
+\r
+result.computedStyle = WebInspector.CSSStyleDeclaration.parsePayload(payload.computedStyle);\r
+result.matchedCSSRules = WebInspector.CSSStyleModel.parseRuleArrayPayload(payload.matchedCSSRules);\r
+\r
+result.styleAttributes = {};\r
+for (var name in payload.styleAttributes)\r
+result.styleAttributes[name] = WebInspector.CSSStyleDeclaration.parsePayload(payload.styleAttributes[name]);\r
+\r
+result.pseudoElements = [];\r
+for (var i = 0; i < payload.pseudoElements.length; ++i) {\r
+var entryPayload = payload.pseudoElements[i];\r
+result.pseudoElements.push({ pseudoId: entryPayload.pseudoId, rules: WebInspector.CSSStyleModel.parseRuleArrayPayload(entryPayload.rules) });\r
+}\r
+\r
+result.inherited = [];\r
+for (var i = 0; i < payload.inherited.length; ++i) {\r
+var entryPayload = payload.inherited[i];\r
+var entry = {};\r
+if ("inlineStyle" in entryPayload)\r
+entry.inlineStyle = WebInspector.CSSStyleDeclaration.parsePayload(entryPayload.inlineStyle);\r
+if ("matchedCSSRules" in entryPayload)\r
+entry.matchedCSSRules = WebInspector.CSSStyleModel.parseRuleArrayPayload(entryPayload.matchedCSSRules);\r
+result.inherited.push(entry);\r
+}\r
+\r
+if (userCallback)\r
+userCallback(result);\r
+}\r
+\r
+InspectorBackend.getStylesForNode2(nodeId, callback.bind(null, userCallback));\r
+},\r
+\r
+getComputedStyleAsync: function(nodeId, userCallback)\r
+{\r
+function callback(userCallback, stylePayload)\r
+{\r
+if (!stylePayload)\r
+userCallback(null);\r
+else\r
+userCallback(WebInspector.CSSStyleDeclaration.parsePayload(stylePayload));\r
+}\r
+\r
+InspectorBackend.getComputedStyleForNode2(nodeId, callback.bind(null, userCallback));\r
+},\r
+\r
+getInlineStyleAsync: function(nodeId, userCallback)\r
+{\r
+function callback(userCallback, stylePayload)\r
+{\r
+if (!stylePayload)\r
+userCallback(null);\r
+else\r
+userCallback(WebInspector.CSSStyleDeclaration.parsePayload(stylePayload));\r
+}\r
+\r
+InspectorBackend.getInlineStyleForNode2(nodeId, callback.bind(null, userCallback));\r
+},\r
+\r
+setRuleSelector: function(ruleId, nodeId, newSelector, successCallback, failureCallback)\r
+{\r
+function checkAffectsCallback(nodeId, successCallback, rulePayload, selectedNodeIds)\r
+{\r
+var doesAffectSelectedNode = (selectedNodeIds.indexOf(nodeId) >= 0);\r
+var rule = WebInspector.CSSRule.parsePayload(rulePayload);\r
+successCallback(rule, doesAffectSelectedNode);\r
+this._styleSheetChanged(rule.id.styleSheetId, true);\r
+}\r
+\r
+function callback(nodeId, successCallback, failureCallback, newSelector, rulePayload)\r
+{\r
+if (!rulePayload)\r
+failureCallback();\r
+else\r
+InspectorBackend.querySelectorAll(nodeId, newSelector, checkAffectsCallback.bind(this, nodeId, successCallback, rulePayload));\r
+}\r
+\r
+InspectorBackend.setRuleSelector2(ruleId, newSelector, callback.bind(this, nodeId, successCallback, failureCallback));\r
+},\r
+\r
+addRule: function(nodeId, selector, successCallback, failureCallback)\r
+{\r
+function checkAffectsCallback(nodeId, successCallback, rulePayload, selectedNodeIds)\r
+{\r
+var doesAffectSelectedNode = (selectedNodeIds.indexOf(nodeId) >= 0);\r
+var rule = WebInspector.CSSRule.parsePayload(rulePayload);\r
+successCallback(rule, doesAffectSelectedNode);\r
+this._styleSheetChanged(rule.id.styleSheetId, true);\r
+}\r
+\r
+function callback(successCallback, failureCallback, selector, rulePayload)\r
+{\r
+if (!rulePayload) {\r
+\r
+failureCallback();\r
+} else\r
+InspectorBackend.querySelectorAll(nodeId, selector, checkAffectsCallback.bind(this, nodeId, successCallback, rulePayload));\r
+}\r
+\r
+InspectorBackend.addRule2(nodeId, selector, callback.bind(this, successCallback, failureCallback, selector));\r
+},\r
+\r
+_styleSheetChanged: function(styleSheetId, majorChange)\r
+{\r
+if (!majorChange || !styleSheetId)\r
+return;\r
+\r
+function callback(href, content)\r
+{\r
+var resource = WebInspector.resourceManager.resourceForURL(href);\r
+if (resource && resource.type === WebInspector.Resource.Type.Stylesheet)\r
+resource.setContent(content, this._onRevert.bind(this, styleSheetId));\r
+}\r
+InspectorBackend.getStyleSheetText2(styleSheetId, callback.bind(this));\r
+},\r
+\r
+_onRevert: function(styleSheetId, contentToRevertTo)\r
+{\r
+function callback(success)\r
+{\r
+this._styleSheetChanged(styleSheetId, true);\r
+this.dispatchEventToListeners("stylesheet changed");\r
+}\r
+InspectorBackend.setStyleSheetText2(styleSheetId, contentToRevertTo, callback.bind(this));\r
+}\r
+}\r
+\r
+WebInspector.CSSStyleModel.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.CSSStyleDeclaration = function(payload)\r
+{\r
+this.id = payload.styleId;\r
+this.properties = payload.properties;\r
+this._shorthandValues = payload.shorthandValues;\r
+this._livePropertyMap = {}; \r
+this._allProperties = []; \r
+this._longhandProperties = {}; \r
+this.__disabledProperties = {}; \r
+var payloadPropertyCount = payload.cssProperties.length;\r
+\r
+var propertyIndex = 0;\r
+for (var i = 0; i < payloadPropertyCount; ++i) {\r
+var property = new WebInspector.CSSProperty.parsePayload(this, i, payload.cssProperties[i]);\r
+this._allProperties.push(property);\r
+if (property.disabled)\r
+this.__disabledProperties[i] = property;\r
+if (!property.active && !property.styleBased)\r
+continue;\r
+var name = property.name;\r
+this[propertyIndex] = name;\r
+this._livePropertyMap[name] = property;\r
+\r
+\r
+if (property.shorthand) { \r
+var longhands = this._longhandProperties[property.shorthand];\r
+if (!longhands) {\r
+longhands = [];\r
+this._longhandProperties[property.shorthand] = longhands;\r
+}\r
+longhands.push(property);\r
+}\r
+++propertyIndex;\r
+}\r
+this.length = propertyIndex;\r
+if ("cssText" in payload)\r
+this.cssText = payload.cssText;\r
+}\r
+\r
+WebInspector.CSSStyleDeclaration.parsePayload = function(payload)\r
+{\r
+return new WebInspector.CSSStyleDeclaration(payload);\r
+}\r
+\r
+WebInspector.CSSStyleDeclaration.prototype = {\r
+get allProperties()\r
+{\r
+return this._allProperties;\r
+},\r
+\r
+getLiveProperty: function(name)\r
+{\r
+return this._livePropertyMap[name];\r
+},\r
+\r
+getPropertyValue: function(name)\r
+{\r
+var property = this._livePropertyMap[name];\r
+return property ? property.value : "";\r
+},\r
+\r
+getPropertyPriority: function(name)\r
+{\r
+var property = this._livePropertyMap[name];\r
+return property ? property.priority : "";\r
+},\r
+\r
+getPropertyShorthand: function(name)\r
+{\r
+var property = this._livePropertyMap[name];\r
+return property ? property.shorthand : "";\r
+},\r
+\r
+isPropertyImplicit: function(name)\r
+{\r
+var property = this._livePropertyMap[name];\r
+return property ? property.implicit : "";\r
+},\r
+\r
+styleTextWithShorthands: function()\r
+{\r
+var cssText = "";\r
+var foundProperties = {};\r
+for (var i = 0; i < this.length; ++i) {\r
+var individualProperty = this[i];\r
+var shorthandProperty = this.getPropertyShorthand(individualProperty);\r
+var propertyName = (shorthandProperty || individualProperty);\r
+\r
+if (propertyName in foundProperties)\r
+continue;\r
+\r
+if (shorthandProperty) {\r
+var value = this.getShorthandValue(shorthandProperty);\r
+var priority = this.getShorthandPriority(shorthandProperty);\r
+} else {\r
+var value = this.getPropertyValue(individualProperty);\r
+var priority = this.getPropertyPriority(individualProperty);\r
+}\r
+\r
+foundProperties[propertyName] = true;\r
+\r
+cssText += propertyName + ": " + value;\r
+if (priority)\r
+cssText += " !" + priority;\r
+cssText += "; ";\r
+}\r
+\r
+return cssText;\r
+},\r
+\r
+getLonghandProperties: function(name)\r
+{\r
+return this._longhandProperties[name] || [];\r
+},\r
+\r
+getShorthandValue: function(shorthandProperty)\r
+{\r
+var property = this.getLiveProperty(shorthandProperty);\r
+return property ? property.value : this._shorthandValues[shorthandProperty];\r
+},\r
+\r
+getShorthandPriority: function(shorthandProperty)\r
+{\r
+var priority = this.getPropertyPriority(shorthandProperty);\r
+if (priority)\r
+return priority;\r
+\r
+var longhands = this._longhandProperties[shorthandProperty];\r
+return longhands ? this.getPropertyPriority(longhands[0]) : null;\r
+},\r
+\r
+propertyAt: function(index)\r
+{\r
+return (index < this.allProperties.length) ? this.allProperties[index] : null;\r
+},\r
+\r
+pastLastSourcePropertyIndex: function()\r
+{\r
+for (var i = this.allProperties.length - 1; i >= 0; --i) {\r
+var property = this.allProperties[i];\r
+if (property.active || property.disabled)\r
+return i + 1;\r
+}\r
+return 0;\r
+},\r
+\r
+newBlankProperty: function()\r
+{\r
+return new WebInspector.CSSProperty(this, this.pastLastSourcePropertyIndex(), "", "", "", "active", true, false, false, "");\r
+},\r
+\r
+insertPropertyAt: function(index, name, value, userCallback)\r
+{\r
+function callback(userCallback, payload)\r
+{\r
+if (!userCallback)\r
+return;\r
+\r
+if (!payload)\r
+userCallback(null);\r
+else {\r
+userCallback(WebInspector.CSSStyleDeclaration.parsePayload(payload));\r
+WebInspector.cssModel._styleSheetChanged(this.id.styleSheetId, true);\r
+}\r
+}\r
+\r
+InspectorBackend.setPropertyText2(this.id, index, name + ": " + value + ";", false, callback.bind(null, userCallback));\r
+},\r
+\r
+appendProperty: function(name, value, userCallback)\r
+{\r
+this.insertPropertyAt(this.allProperties.length, name, value, userCallback);\r
+}\r
+}\r
+\r
+WebInspector.CSSRule = function(payload)\r
+{\r
+this.id = payload.ruleId;\r
+this.selectorText = payload.selectorText;\r
+this.sourceLine = payload.sourceLine;\r
+this.sourceURL = payload.sourceURL;\r
+this.origin = payload.origin;\r
+this.style = WebInspector.CSSStyleDeclaration.parsePayload(payload.style);\r
+this.style.parentRule = this;\r
+this.selectorRange = payload.selectorRange;\r
+}\r
+\r
+WebInspector.CSSRule.parsePayload = function(payload)\r
+{\r
+return new WebInspector.CSSRule(payload);\r
+}\r
+\r
+WebInspector.CSSRule.prototype = {\r
+get isUserAgent()\r
+{\r
+return this.origin === "user-agent";\r
+},\r
+\r
+get isUser()\r
+{\r
+return this.origin === "user";\r
+},\r
+\r
+get isViaInspector()\r
+{\r
+return this.origin === "inspector";\r
+},\r
+\r
+get isRegular()\r
+{\r
+return this.origin === "";\r
+}\r
+}\r
+\r
+WebInspector.CSSProperty = function(ownerStyle, index, name, value, priority, status, parsedOk, implicit, shorthand, text)\r
+{\r
+this.ownerStyle = ownerStyle;\r
+this.index = index;\r
+this.name = name;\r
+this.value = value;\r
+this.priority = priority;\r
+this.status = status;\r
+this.parsedOk = parsedOk;\r
+this.implicit = implicit;\r
+this.shorthand = shorthand;\r
+this.text = text;\r
+}\r
+\r
+WebInspector.CSSProperty.parsePayload = function(ownerStyle, index, payload)\r
+{\r
+var result = new WebInspector.CSSProperty(\r
+ownerStyle, index, payload.name, payload.value, payload.priority, payload.status, payload.parsedOk, payload.implicit, payload.shorthandName, payload.text);\r
+return result;\r
+}\r
+\r
+WebInspector.CSSProperty.prototype = {\r
+get propertyText()\r
+{\r
+if (this.text !== undefined)\r
+return this.text;\r
+\r
+if (this.name === "")\r
+return "";\r
+return this.name + ": " + this.value + (this.priority ? " !" + this.priority : "") + ";";\r
+},\r
+\r
+get isLive()\r
+{\r
+return this.active || this.styleBased;\r
+},\r
+\r
+get active()\r
+{\r
+return this.status === "active";\r
+},\r
+\r
+get styleBased()\r
+{\r
+return this.status === "style";\r
+},\r
+\r
+get inactive()\r
+{\r
+return this.status === "inactive";\r
+},\r
+\r
+get disabled()\r
+{\r
+return this.status === "disabled";\r
+},\r
+\r
+\r
+setText: function(propertyText, majorChange, userCallback)\r
+{\r
+function callback(stylePayload)\r
+{\r
+if (stylePayload)\r
+this.text = propertyText;\r
+\r
+if (!userCallback)\r
+return;\r
+if (!stylePayload)\r
+userCallback(null);\r
+else {\r
+var style = WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);\r
+userCallback(style);\r
+WebInspector.cssModel._styleSheetChanged(style.id.styleSheetId, majorChange);\r
+}\r
+}\r
+\r
+if (!this.ownerStyle)\r
+throw "No ownerStyle for property";\r
+\r
+\r
+InspectorBackend.setPropertyText2(this.ownerStyle.id, this.index, propertyText, this.index < this.ownerStyle.pastLastSourcePropertyIndex(), callback.bind(this));\r
+},\r
+\r
+setValue: function(newValue, userCallback)\r
+{\r
+var text = this.name + ": " + newValue + (this.priority ? " !" + this.priority : "") + ";"\r
+this.setText(text, userCallback);\r
+},\r
+\r
+setDisabled: function(disabled, userCallback)\r
+{\r
+if (!this.ownerStyle && userCallback)\r
+userCallback(null);\r
+if (disabled === this.disabled && userCallback)\r
+userCallback(this.ownerStyle);\r
+\r
+function callback(stylePayload)\r
+{\r
+if (!userCallback)\r
+return;\r
+if (!stylePayload)\r
+userCallback(null);\r
+else {\r
+var style = WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);\r
+userCallback(style);\r
+WebInspector.cssModel._styleSheetChanged(this.ownerStyle.id.styleSheetId, false);\r
+}\r
+}\r
+\r
+InspectorBackend.toggleProperty2(this.ownerStyle.id, this.index, disabled, callback.bind(this));\r
+}\r
+}\r
+\r
+WebInspector.CSSStyleSheet = function(payload)\r
+{\r
+this.id = payload.styleSheetId;\r
+this.sourceURL = payload.sourceURL;\r
+this.title = payload.title;\r
+this.disabled = payload.disabled;\r
+this.rules = [];\r
+this.styles = {};\r
+for (var i = 0; i < payload.rules.length; ++i) {\r
+var rule = WebInspector.CSSRule.parsePayload(payload.rules[i]);\r
+this.rules.push(rule);\r
+if (rule.style)\r
+this.styles[rule.style.id] = rule.style;\r
+}\r
+if ("text" in payload)\r
+this._text = payload.text;\r
+}\r
+\r
+WebInspector.CSSStyleSheet.createForId = function(styleSheetId, userCallback)\r
+{\r
+function callback(styleSheetPayload)\r
+{\r
+if (!styleSheetPayload)\r
+userCallback(null);\r
+else\r
+userCallback(new WebInspector.CSSStyleSheet(styleSheetPayload));\r
+}\r
+InspectorBackend.getStyleSheet2(styleSheetId, callback.bind(this));\r
+}\r
+\r
+WebInspector.CSSStyleSheet.prototype = {\r
+getText: function()\r
+{\r
+return this._text;\r
+},\r
+\r
+setText: function(newText, userCallback)\r
+{\r
+function callback(styleSheetPayload)\r
+{\r
+if (!styleSheetPayload)\r
+userCallback(null);\r
+else {\r
+userCallback(new WebInspector.CSSStyleSheet(styleSheetPayload));\r
+WebInspector.cssModel._styleSheetChanged(this.id, true);\r
+}\r
+}\r
+\r
+InspectorBackend.setStyleSheetText2(this.id, newText, callback.bind(this));\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Checkbox = function(label, className, tooltip)\r
+{\r
+this.element = document.createElement('label');\r
+this._inputElement = document.createElement('input');\r
+this._inputElement.type = "checkbox";\r
+\r
+this.element.className = className;\r
+this.element.appendChild(this._inputElement);\r
+this.element.appendChild(document.createTextNode(label));\r
+if (tooltip)\r
+this.element.title = tooltip;\r
+}\r
+\r
+WebInspector.Checkbox.prototype = {\r
+set checked(checked)\r
+{\r
+this._inputElement.checked = checked;\r
+},\r
+\r
+get checked()\r
+{\r
+return this._inputElement.checked;\r
+},\r
+\r
+addEventListener: function(listener)\r
+{\r
+function listenerWrapper(event)\r
+{\r
+if (listener)\r
+listener(event);\r
+event.stopPropagation();\r
+return true;\r
+}\r
+\r
+this._inputElement.addEventListener("click", listenerWrapper, false);\r
+this.element.addEventListener("click", listenerWrapper, false);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ContextMenu = function() {\r
+this._items = [];\r
+this._handlers = {};\r
+}\r
+\r
+WebInspector.ContextMenu.prototype = {\r
+show: function(event)\r
+{\r
+\r
+while (this._items.length > 0 && !("id" in this._items[this._items.length - 1]))\r
+this._items.splice(this._items.length - 1, 1);\r
+\r
+if (this._items.length) {\r
+WebInspector._contextMenu = this;\r
+InspectorFrontendHost.showContextMenu(event, this._items);\r
+}\r
+},\r
+\r
+appendItem: function(label, handler, disabled)\r
+{\r
+var id = this._items.length;\r
+this._items.push({type: "item", id: id, label: label, enabled: !disabled});\r
+this._handlers[id] = handler;\r
+},\r
+\r
+appendCheckboxItem: function(label, handler, checked, disabled)\r
+{\r
+var id = this._items.length;\r
+this._items.push({type: "checkbox", id: id, label: label, checked: !!checked, enabled: !disabled});\r
+this._handlers[id] = handler;\r
+},\r
+\r
+appendSeparator: function()\r
+{\r
+\r
+if (this._items.length === 0)\r
+return;\r
+if (!("id" in this._items[this._items.length - 1]))\r
+return;\r
+this._items.push({type: "separator"});\r
+},\r
+\r
+_itemSelected: function(id)\r
+{\r
+if (this._handlers[id])\r
+this._handlers[id].call(this);\r
+}\r
+}\r
+\r
+WebInspector.contextMenuItemSelected = function(id)\r
+{\r
+if (WebInspector._contextMenu)\r
+WebInspector._contextMenu._itemSelected(id);\r
+}\r
+\r
+WebInspector.contextMenuCleared = function()\r
+{\r
+\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.KeyboardShortcut = function()\r
+{\r
+};\r
+\r
+\r
+WebInspector.KeyboardShortcut.Modifiers = {\r
+None: 0,   \r
+Shift: 1,\r
+Ctrl: 2,\r
+Alt: 4,\r
+Meta: 8,   \r
+get CtrlOrMeta()\r
+{\r
+\r
+return WebInspector.isMac() ? this.Meta : this.Ctrl;\r
+}\r
+};\r
+\r
+WebInspector.KeyboardShortcut.Keys = {\r
+Backspace: { code: 8, name: "\u21a4" },\r
+Tab: { code: 9, name: { mac: "\u21e5", other: "<Tab>" } },\r
+Enter: { code: 13, name: { mac: "\u21a9", other: "<Enter>" } },\r
+Esc: { code: 27, name: { mac: "\u238b", other: "<Esc>" } },\r
+Space: { code: 32, name: "<Space>" },\r
+PageUp: { code: 33,  name: { mac: "\u21de", other: "<PageUp>" } },      \r
+PageDown: { code: 34, name: { mac: "\u21df", other: "<PageDown>" } },   \r
+End: { code: 35, name: { mac: "\u2197", other: "<End>" } },             \r
+Home: { code: 36, name: { mac: "\u2196", other: "<Home>" } },           \r
+Left: { code: 37, name: "\u2190" },           \r
+Up: { code: 38, name: "\u2191" },             \r
+Right: { code: 39, name: "\u2192" },          \r
+Down: { code: 40, name: "\u2193" },           \r
+Delete: { code: 46, name: "<Del>" },\r
+Zero: { code: 48, name: "0" },\r
+F1: { code: 112, name: "F1" },\r
+F2: { code: 113, name: "F2" },\r
+F3: { code: 114, name: "F3" },\r
+F4: { code: 115, name: "F4" },\r
+F5: { code: 116, name: "F5" },\r
+F6: { code: 117, name: "F6" },\r
+F7: { code: 118, name: "F7" },\r
+F8: { code: 119, name: "F8" },\r
+F9: { code: 120, name: "F9" },\r
+F10: { code: 121, name: "F10" },\r
+F11: { code: 122, name: "F11" },\r
+F12: { code: 123, name: "F12" },\r
+Semicolon: { code: 186, name: ";" },\r
+Plus: { code: 187, name: "+" },\r
+Comma: { code: 188, name: "," },\r
+Minus: { code: 189, name: "-" },\r
+Period: { code: 190, name: "." },\r
+Slash: { code: 191, name: "/" },\r
+Apostrophe: { code: 192, name: "`" },\r
+SingleQuote: { code: 222, name: "\'" }\r
+};\r
+\r
+\r
+WebInspector.KeyboardShortcut.makeKey = function(keyCode, optModifiers)\r
+{\r
+if (typeof keyCode === "string")\r
+keyCode = keyCode.charCodeAt(0) - 32;\r
+var modifiers = WebInspector.KeyboardShortcut.Modifiers.None;\r
+for (var i = 1; i < arguments.length; i++)\r
+modifiers |= arguments[i];\r
+return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyCode, modifiers);\r
+};\r
+\r
+WebInspector.KeyboardShortcut.makeKeyFromEvent = function(keyboardEvent)\r
+{\r
+var modifiers = WebInspector.KeyboardShortcut.Modifiers.None;\r
+if (keyboardEvent.shiftKey)\r
+modifiers |= WebInspector.KeyboardShortcut.Modifiers.Shift;\r
+if (keyboardEvent.ctrlKey)\r
+modifiers |= WebInspector.KeyboardShortcut.Modifiers.Ctrl;\r
+if (keyboardEvent.altKey)\r
+modifiers |= WebInspector.KeyboardShortcut.Modifiers.Alt;\r
+if (keyboardEvent.metaKey)\r
+modifiers |= WebInspector.KeyboardShortcut.Modifiers.Meta;\r
+return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyboardEvent.keyCode, modifiers);\r
+};\r
+\r
+WebInspector.KeyboardShortcut.makeDescriptor = function(key, optModifiers)\r
+{\r
+var modifiers = 0;\r
+for (var i = 1; i < arguments.length; i++)\r
+modifiers |= arguments[i];\r
+\r
+return {\r
+key: WebInspector.KeyboardShortcut.makeKey(typeof key === "string" ? key : key.code, modifiers),\r
+name: WebInspector.KeyboardShortcut.shortcutToString(key, modifiers)\r
+};\r
+}\r
+\r
+WebInspector.KeyboardShortcut.shortcutToString = function(key, modifiers)\r
+{\r
+return WebInspector.KeyboardShortcut._modifiersToString(modifiers) + WebInspector.KeyboardShortcut._keyName(key);\r
+}\r
+\r
+WebInspector.KeyboardShortcut._keyName = function(key)\r
+{\r
+if (typeof key === "string")\r
+return key.toUpperCase();\r
+if (typeof key.name === "string")\r
+return key.name;\r
+return key.name[WebInspector.platform] || key.name.other;\r
+}\r
+\r
+WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers = function(keyCode, modifiers)\r
+{\r
+return (keyCode & 255) | (modifiers << 8);\r
+};\r
+\r
+WebInspector.KeyboardShortcut._modifiersToString = function(modifiers)\r
+{\r
+const cmdKey = "\u2318";\r
+const optKey = "\u2325";\r
+const shiftKey = "\u21e7";\r
+const ctrlKey = "\u2303";\r
+\r
+var isMac = WebInspector.isMac();\r
+var res = "";\r
+if (modifiers & WebInspector.KeyboardShortcut.Modifiers.Ctrl)\r
+res += isMac ? ctrlKey : "<Ctrl> + ";\r
+if (modifiers & WebInspector.KeyboardShortcut.Modifiers.Alt)\r
+res += isMac ? optKey : "<Alt> + ";\r
+if (modifiers & WebInspector.KeyboardShortcut.Modifiers.Shift)\r
+res += isMac ? shiftKey : "<Shift> + ";\r
+if (modifiers & WebInspector.KeyboardShortcut.Modifiers.Meta)\r
+res += isMac ? cmdKey : "<Win> + ";\r
+\r
+return res;\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TextPrompt = function(element, completions, stopCharacters)\r
+{\r
+this.element = element;\r
+this.element.addStyleClass("text-prompt");\r
+this.completions = completions;\r
+this.completionStopCharacters = stopCharacters;\r
+this.history = [];\r
+this.historyOffset = 0;\r
+this.element.addEventListener("keydown", this._onKeyDown.bind(this), true);\r
+}\r
+\r
+WebInspector.TextPrompt.prototype = {\r
+get text()\r
+{\r
+return this.element.textContent;\r
+},\r
+\r
+set text(x)\r
+{\r
+if (!x) {\r
+\r
+this.element.removeChildren();\r
+this.element.appendChild(document.createElement("br"));\r
+} else\r
+this.element.textContent = x;\r
+\r
+this.moveCaretToEndOfPrompt();\r
+},\r
+\r
+_onKeyDown: function(event)\r
+{\r
+function defaultAction()\r
+{\r
+this.clearAutoComplete();\r
+this.autoCompleteSoon();\r
+}\r
+\r
+var handled = false;\r
+switch (event.keyIdentifier) {\r
+case "Up":\r
+this._upKeyPressed(event);\r
+break;\r
+case "Down":\r
+this._downKeyPressed(event);\r
+break;\r
+case "U+0009": \r
+this._tabKeyPressed(event);\r
+break;\r
+case "Right":\r
+case "End":\r
+if (!this.acceptAutoComplete())\r
+this.autoCompleteSoon();\r
+break;\r
+case "Alt":\r
+case "Meta":\r
+case "Shift":\r
+case "Control":\r
+break;\r
+case "U+0050": \r
+if (WebInspector.isMac() && event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {\r
+handled = true;\r
+this._moveBackInHistory();\r
+break;\r
+}\r
+defaultAction.call(this);\r
+break;\r
+case "U+004E": \r
+if (WebInspector.isMac() && event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {\r
+handled = true;\r
+this._moveForwardInHistory();\r
+break;\r
+}\r
+defaultAction.call(this);\r
+break;\r
+default:\r
+defaultAction.call(this);\r
+break;\r
+}\r
+\r
+if (handled) {\r
+event.preventDefault();\r
+event.stopPropagation();\r
+}\r
+},\r
+\r
+acceptAutoComplete: function()\r
+{\r
+if (!this.autoCompleteElement || !this.autoCompleteElement.parentNode)\r
+return false;\r
+\r
+var text = this.autoCompleteElement.textContent;\r
+var textNode = document.createTextNode(text);\r
+this.autoCompleteElement.parentNode.replaceChild(textNode, this.autoCompleteElement);\r
+delete this.autoCompleteElement;\r
+\r
+var finalSelectionRange = document.createRange();\r
+finalSelectionRange.setStart(textNode, text.length);\r
+finalSelectionRange.setEnd(textNode, text.length);\r
+\r
+var selection = window.getSelection();\r
+selection.removeAllRanges();\r
+selection.addRange(finalSelectionRange);\r
+\r
+return true;\r
+},\r
+\r
+clearAutoComplete: function(includeTimeout)\r
+{\r
+if (includeTimeout && "_completeTimeout" in this) {\r
+clearTimeout(this._completeTimeout);\r
+delete this._completeTimeout;\r
+}\r
+\r
+if (!this.autoCompleteElement)\r
+return;\r
+\r
+if (this.autoCompleteElement.parentNode)\r
+this.autoCompleteElement.parentNode.removeChild(this.autoCompleteElement);\r
+delete this.autoCompleteElement;\r
+\r
+if (!this._userEnteredRange || !this._userEnteredText)\r
+return;\r
+\r
+this._userEnteredRange.deleteContents();\r
+this.element.pruneEmptyTextNodes();\r
+\r
+var userTextNode = document.createTextNode(this._userEnteredText);\r
+this._userEnteredRange.insertNode(userTextNode);\r
+\r
+var selectionRange = document.createRange();\r
+selectionRange.setStart(userTextNode, this._userEnteredText.length);\r
+selectionRange.setEnd(userTextNode, this._userEnteredText.length);\r
+\r
+var selection = window.getSelection();\r
+selection.removeAllRanges();\r
+selection.addRange(selectionRange);\r
+\r
+delete this._userEnteredRange;\r
+delete this._userEnteredText;\r
+},\r
+\r
+autoCompleteSoon: function()\r
+{\r
+if (!("_completeTimeout" in this))\r
+this._completeTimeout = setTimeout(this.complete.bind(this, true), 250);\r
+},\r
+\r
+complete: function(auto, reverse)\r
+{\r
+this.clearAutoComplete(true);\r
+var selection = window.getSelection();\r
+if (!selection.rangeCount)\r
+return;\r
+\r
+var selectionRange = selection.getRangeAt(0);\r
+if (!selectionRange.commonAncestorContainer.isDescendant(this.element))\r
+return;\r
+if (auto && !this.isCaretAtEndOfPrompt())\r
+return;\r
+var wordPrefixRange = selectionRange.startContainer.rangeOfWord(selectionRange.startOffset, this.completionStopCharacters, this.element, "backward");\r
+this.completions(wordPrefixRange, auto, this._completionsReady.bind(this, selection, auto, wordPrefixRange, reverse));\r
+},\r
+\r
+_completionsReady: function(selection, auto, originalWordPrefixRange, reverse, completions)\r
+{\r
+if (!completions || !completions.length)\r
+return;\r
+\r
+var selectionRange = selection.getRangeAt(0);\r
+\r
+var fullWordRange = document.createRange();\r
+fullWordRange.setStart(originalWordPrefixRange.startContainer, originalWordPrefixRange.startOffset);\r
+fullWordRange.setEnd(selectionRange.endContainer, selectionRange.endOffset);\r
+\r
+if (originalWordPrefixRange.toString() + selectionRange.toString() != fullWordRange.toString())\r
+return;\r
+\r
+var wordPrefixLength = originalWordPrefixRange.toString().length;\r
+\r
+if (auto)\r
+var completionText = completions[0];\r
+else {\r
+if (completions.length === 1) {\r
+var completionText = completions[0];\r
+wordPrefixLength = completionText.length;\r
+} else {\r
+var commonPrefix = completions[0];\r
+for (var i = 0; i < completions.length; ++i) {\r
+var completion = completions[i];\r
+var lastIndex = Math.min(commonPrefix.length, completion.length);\r
+for (var j = wordPrefixLength; j < lastIndex; ++j) {\r
+if (commonPrefix[j] !== completion[j]) {\r
+commonPrefix = commonPrefix.substr(0, j);\r
+break;\r
+}\r
+}\r
+}\r
+wordPrefixLength = commonPrefix.length;\r
+\r
+if (selection.isCollapsed)\r
+var completionText = completions[0];\r
+else {\r
+var currentText = fullWordRange.toString();\r
+\r
+var foundIndex = null;\r
+for (var i = 0; i < completions.length; ++i) {\r
+if (completions[i] === currentText)\r
+foundIndex = i;\r
+}\r
+\r
+var nextIndex = foundIndex + (reverse ? -1 : 1);\r
+if (foundIndex === null || nextIndex >= completions.length)\r
+var completionText = completions[0];\r
+else if (nextIndex < 0)\r
+var completionText = completions[completions.length - 1];\r
+else\r
+var completionText = completions[nextIndex];\r
+}\r
+}\r
+}\r
+\r
+this._userEnteredRange = fullWordRange;\r
+this._userEnteredText = fullWordRange.toString();\r
+\r
+fullWordRange.deleteContents();\r
+this.element.pruneEmptyTextNodes();\r
+\r
+var finalSelectionRange = document.createRange();\r
+\r
+if (auto) {\r
+var prefixText = completionText.substring(0, wordPrefixLength);\r
+var suffixText = completionText.substring(wordPrefixLength);\r
+\r
+var prefixTextNode = document.createTextNode(prefixText);\r
+fullWordRange.insertNode(prefixTextNode);\r
+\r
+this.autoCompleteElement = document.createElement("span");\r
+this.autoCompleteElement.className = "auto-complete-text";\r
+this.autoCompleteElement.textContent = suffixText;\r
+\r
+prefixTextNode.parentNode.insertBefore(this.autoCompleteElement, prefixTextNode.nextSibling);\r
+\r
+finalSelectionRange.setStart(prefixTextNode, wordPrefixLength);\r
+finalSelectionRange.setEnd(prefixTextNode, wordPrefixLength);\r
+} else {\r
+var completionTextNode = document.createTextNode(completionText);\r
+fullWordRange.insertNode(completionTextNode);\r
+\r
+if (completions.length > 1)\r
+finalSelectionRange.setStart(completionTextNode, wordPrefixLength);\r
+else\r
+finalSelectionRange.setStart(completionTextNode, completionText.length);\r
+\r
+finalSelectionRange.setEnd(completionTextNode, completionText.length);\r
+}\r
+\r
+selection.removeAllRanges();\r
+selection.addRange(finalSelectionRange);\r
+},\r
+\r
+isCaretInsidePrompt: function()\r
+{\r
+return this.element.isInsertionCaretInside();\r
+},\r
+\r
+isCaretAtEndOfPrompt: function()\r
+{\r
+var selection = window.getSelection();\r
+if (!selection.rangeCount || !selection.isCollapsed)\r
+return false;\r
+\r
+var selectionRange = selection.getRangeAt(0);\r
+var node = selectionRange.startContainer;\r
+if (node !== this.element && !node.isDescendant(this.element))\r
+return false;\r
+\r
+if (node.nodeType === Node.TEXT_NODE && selectionRange.startOffset < node.nodeValue.length)\r
+return false;\r
+\r
+var foundNextText = false;\r
+while (node) {\r
+if (node.nodeType === Node.TEXT_NODE && node.nodeValue.length) {\r
+if (foundNextText)\r
+return false;\r
+foundNextText = true;\r
+}\r
+\r
+node = node.traverseNextNode(this.element);\r
+}\r
+\r
+return true;\r
+},\r
+\r
+isCaretOnFirstLine: function()\r
+{\r
+var selection = window.getSelection();\r
+var focusNode = selection.focusNode;\r
+if (!focusNode || focusNode.nodeType !== Node.TEXT_NODE || focusNode.parentNode !== this.element)\r
+return true;\r
+\r
+if (focusNode.textContent.substring(0, selection.focusOffset).indexOf("\n") !== -1)\r
+return false;\r
+focusNode = focusNode.previousSibling;\r
+\r
+while (focusNode) {\r
+if (focusNode.nodeType !== Node.TEXT_NODE)\r
+return true;\r
+if (focusNode.textContent.indexOf("\n") !== -1)\r
+return false;\r
+focusNode = focusNode.previousSibling;\r
+}\r
+\r
+return true;\r
+},\r
+\r
+isCaretOnLastLine: function()\r
+{\r
+var selection = window.getSelection();\r
+var focusNode = selection.focusNode;\r
+if (!focusNode || focusNode.nodeType !== Node.TEXT_NODE || focusNode.parentNode !== this.element)\r
+return true;\r
+\r
+if (focusNode.textContent.substring(selection.focusOffset).indexOf("\n") !== -1)\r
+return false;\r
+focusNode = focusNode.nextSibling;\r
+\r
+while (focusNode) {\r
+if (focusNode.nodeType !== Node.TEXT_NODE)\r
+return true;\r
+if (focusNode.textContent.indexOf("\n") !== -1)\r
+return false;\r
+focusNode = focusNode.nextSibling;\r
+}\r
+\r
+return true;\r
+},\r
+\r
+moveCaretToEndOfPrompt: function()\r
+{\r
+var selection = window.getSelection();\r
+var selectionRange = document.createRange();\r
+\r
+var offset = this.element.childNodes.length;\r
+selectionRange.setStart(this.element, offset);\r
+selectionRange.setEnd(this.element, offset);\r
+\r
+selection.removeAllRanges();\r
+selection.addRange(selectionRange);\r
+},\r
+\r
+_tabKeyPressed: function(event)\r
+{\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+this.complete(false, event.shiftKey);\r
+},\r
+\r
+_upKeyPressed: function(event)\r
+{\r
+if (!this.isCaretOnFirstLine())\r
+return;\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+this._moveBackInHistory();\r
+},\r
+\r
+_downKeyPressed: function(event)\r
+{\r
+if (!this.isCaretOnLastLine())\r
+return;\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+this._moveForwardInHistory();\r
+},\r
+\r
+_moveBackInHistory: function()\r
+{\r
+if (this.historyOffset == this.history.length)\r
+return;\r
+\r
+this.clearAutoComplete(true);\r
+\r
+if (this.historyOffset === 0)\r
+this.tempSavedCommand = this.text;\r
+\r
+++this.historyOffset;\r
+this.text = this.history[this.history.length - this.historyOffset];\r
+\r
+this.element.scrollIntoView(true);\r
+var firstNewlineIndex = this.text.indexOf("\n");\r
+if (firstNewlineIndex === -1)\r
+this.moveCaretToEndOfPrompt();\r
+else {\r
+var selection = window.getSelection();\r
+var selectionRange = document.createRange();\r
+\r
+selectionRange.setStart(this.element.firstChild, firstNewlineIndex);\r
+selectionRange.setEnd(this.element.firstChild, firstNewlineIndex);\r
+\r
+selection.removeAllRanges();\r
+selection.addRange(selectionRange);\r
+}\r
+},\r
+\r
+_moveForwardInHistory: function()\r
+{\r
+if (this.historyOffset === 0)\r
+return;\r
+\r
+this.clearAutoComplete(true);\r
+\r
+--this.historyOffset;\r
+\r
+if (this.historyOffset === 0) {\r
+this.text = this.tempSavedCommand;\r
+delete this.tempSavedCommand;\r
+return;\r
+}\r
+\r
+this.text = this.history[this.history.length - this.historyOffset];\r
+this.element.scrollIntoView();\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Popover = function(contentElement)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.className = "popover";\r
+\r
+this._popupArrowElement = document.createElement("div");\r
+this._popupArrowElement.className = "arrow";\r
+this.element.appendChild(this._popupArrowElement);\r
+\r
+this.contentElement = contentElement;\r
+this._contentDiv = document.createElement("div");\r
+this._contentDiv.className = "content";\r
+}\r
+\r
+WebInspector.Popover.prototype = {\r
+show: function(anchor, preferredWidth, preferredHeight)\r
+{\r
+\r
+if (WebInspector.Popover._popoverElement)\r
+document.body.removeChild(WebInspector.Popover._popoverElement);\r
+WebInspector.Popover._popoverElement = this.element;\r
+\r
+\r
+this.contentElement.positionAt(0, 0);\r
+document.body.appendChild(this.contentElement);\r
+var preferredWidth = preferredWidth || this.contentElement.offsetWidth;\r
+var preferredHeight = preferredHeight || this.contentElement.offsetHeight;\r
+\r
+this._contentDiv.appendChild(this.contentElement);\r
+this.element.appendChild(this._contentDiv);\r
+document.body.appendChild(this.element);\r
+this._positionElement(anchor, preferredWidth, preferredHeight);\r
+},\r
+\r
+hide: function()\r
+{\r
+if (WebInspector.Popover._popoverElement) {\r
+delete WebInspector.Popover._popoverElement;\r
+document.body.removeChild(this.element);\r
+}\r
+},\r
+\r
+_positionElement: function(anchorElement, preferredWidth, preferredHeight)\r
+{\r
+const borderWidth = 25;\r
+const scrollerWidth = 11;\r
+const arrowHeight = 15;\r
+const arrowOffset = 10;\r
+const borderRadius = 10;\r
+\r
+\r
+preferredWidth = Math.max(preferredWidth, 50);\r
+const totalWidth = window.innerWidth;\r
+const totalHeight = window.innerHeight;\r
+\r
+var anchorBox = {x: anchorElement.totalOffsetLeft, y: anchorElement.totalOffsetTop, width: anchorElement.offsetWidth, height: anchorElement.offsetHeight};\r
+while (anchorElement !== document.body) {\r
+if (anchorElement.scrollLeft)\r
+anchorBox.x -= anchorElement.scrollLeft;\r
+if (anchorElement.scrollTop)\r
+anchorBox.y -= anchorElement.scrollTop;\r
+anchorElement = anchorElement.parentElement;\r
+}\r
+\r
+var newElementPosition = { x: 0, y: 0, width: preferredWidth + scrollerWidth, height: preferredHeight };\r
+\r
+var verticalAlignment;\r
+var roomAbove = anchorBox.y;\r
+var roomBelow = totalHeight - anchorBox.y - anchorBox.height;\r
+\r
+if (roomAbove > roomBelow) {\r
+\r
+if (anchorBox.y > newElementPosition.height + arrowHeight + borderRadius)\r
+newElementPosition.y = anchorBox.y - newElementPosition.height - arrowHeight;\r
+else {\r
+newElementPosition.y = borderRadius * 2;\r
+newElementPosition.height = anchorBox.y - borderRadius * 2 - arrowHeight;\r
+}\r
+verticalAlignment = "bottom";\r
+} else {\r
+\r
+newElementPosition.y = anchorBox.y + anchorBox.height + arrowHeight;\r
+if (newElementPosition.y + newElementPosition.height + arrowHeight - borderWidth >= totalHeight)\r
+newElementPosition.height = totalHeight - anchorBox.y - anchorBox.height - borderRadius * 2 - arrowHeight;\r
+\r
+verticalAlignment = "top";\r
+}\r
+\r
+var horizontalAlignment;\r
+if (anchorBox.x + newElementPosition.width < totalWidth) {\r
+newElementPosition.x = Math.max(borderRadius, anchorBox.x - borderRadius - arrowOffset);\r
+horizontalAlignment = "left";\r
+} else if (newElementPosition.width + borderRadius * 2 < totalWidth) {\r
+newElementPosition.x = totalWidth - newElementPosition.width - borderRadius;\r
+horizontalAlignment = "right";\r
+\r
+var arrowRightPosition = Math.max(0, totalWidth - anchorBox.x - anchorBox.width - borderRadius - arrowOffset);\r
+arrowRightPosition += anchorBox.width / 2;\r
+this._popupArrowElement.style.right = arrowRightPosition + "px";\r
+} else {\r
+newElementPosition.x = borderRadius;\r
+newElementPosition.width = totalWidth - borderRadius * 2;\r
+newElementPosition.height += scrollerWidth;\r
+horizontalAlignment = "left";\r
+if (verticalAlignment === "bottom")\r
+newElementPosition.y -= scrollerWidth;\r
+\r
+this._popupArrowElement.style.left = Math.max(0, anchorBox.x - borderRadius * 2 - arrowOffset) + "px";\r
+this._popupArrowElement.style.left += anchorBox.width / 2;\r
+}\r
+\r
+this.element.className = "popover " + verticalAlignment + "-" + horizontalAlignment + "-arrow";\r
+this.element.positionAt(newElementPosition.x - borderWidth, newElementPosition.y - borderWidth);\r
+this.element.style.width = newElementPosition.width + borderWidth * 2 + "px";\r
+this.element.style.height = newElementPosition.height + borderWidth * 2 + "px";\r
+}\r
+}\r
+\r
+WebInspector.PopoverHelper = function(panelElement, getAnchor, showPopup, showOnClick, onHide)\r
+{\r
+this._panelElement = panelElement;\r
+this._getAnchor = getAnchor;\r
+this._showPopup = showPopup;\r
+this._showOnClick = showOnClick;\r
+this._onHide = onHide;\r
+panelElement.addEventListener("mousedown", this._mouseDown.bind(this), false);\r
+panelElement.addEventListener("mousemove", this._mouseMove.bind(this), false);\r
+this.setTimeout(1000);\r
+}\r
+\r
+WebInspector.PopoverHelper.prototype = {\r
+setTimeout: function(timeout)\r
+{\r
+this._timeout = timeout;\r
+},\r
+\r
+_mouseDown: function(event)\r
+{\r
+this._killHidePopupTimer();\r
+this._handleMouseAction(event, true);\r
+},\r
+\r
+_mouseMove: function(event)\r
+{\r
+\r
+if (this._hoverElement === event.target || (this._hoverElement && this._hoverElement.isAncestor(event.target)))\r
+return;\r
+\r
+\r
+if (this._popup && !this._hidePopupTimer) {\r
+var self = this;\r
+function doHide()\r
+{\r
+self._hidePopup();\r
+delete self._hidePopupTimer;\r
+}\r
+this._hidePopupTimer = setTimeout(doHide, this._timeout / 2);\r
+}\r
+\r
+this._handleMouseAction(event);\r
+},\r
+\r
+_handleMouseAction: function(event, isMouseDown)\r
+{\r
+this._resetHoverTimer();\r
+\r
+this._hoverElement = this._getAnchor(event.target);\r
+if (!this._hoverElement)\r
+return;\r
+\r
+const toolTipDelay = isMouseDown ? 0 : (this._popup ? this._timeout * 0.6 : this._timeout);\r
+this._hoverTimer = setTimeout(this._mouseHover.bind(this, this._hoverElement), toolTipDelay);\r
+},\r
+\r
+_resetHoverTimer: function()\r
+{\r
+if (this._hoverTimer) {\r
+clearTimeout(this._hoverTimer);\r
+delete this._hoverTimer;\r
+}\r
+},\r
+\r
+hidePopup: function()\r
+{\r
+this._resetHoverTimer();\r
+this._hidePopup();\r
+},\r
+\r
+_hidePopup: function()\r
+{\r
+if (!this._popup)\r
+return;\r
+\r
+if (this._onHide)\r
+this._onHide();\r
+\r
+this._popup.hide();\r
+delete this._popup;\r
+},\r
+\r
+_mouseHover: function(element)\r
+{\r
+delete this._hoverTimer;\r
+\r
+this._popup = this._showPopup(element);\r
+if (this._popup)\r
+this._popup.contentElement.addEventListener("mousemove", this._killHidePopupTimer.bind(this), true);\r
+},\r
+\r
+_killHidePopupTimer: function()\r
+{\r
+if (this._hidePopupTimer) {\r
+clearTimeout(this._hidePopupTimer);\r
+delete this._hidePopupTimer;\r
+\r
+\r
+\r
+this._resetHoverTimer();\r
+}\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TabbedPane = function(element)\r
+{\r
+this.element = element || document.createElement("div");\r
+this.element.addStyleClass("tabbed-pane");\r
+this._tabsElement = this.element.createChild("div", "tabbed-pane-header");\r
+this._contentElement = this.element.createChild("div", "tabbed-pane-content");\r
+this._tabs = {};\r
+}\r
+\r
+WebInspector.TabbedPane.prototype = {\r
+appendTab: function(id, tabTitle, view)\r
+{\r
+var tabElement = document.createElement("li");\r
+tabElement.textContent = tabTitle;\r
+tabElement.addEventListener("click", this.selectTab.bind(this, id, true), false);\r
+\r
+this._tabsElement.appendChild(tabElement);\r
+this._contentElement.appendChild(view.element);\r
+\r
+this._tabs[id] = { tabElement: tabElement, view: view }\r
+},\r
+\r
+selectTab: function(id, userGesture)\r
+{\r
+if (!(id in this._tabs))\r
+return false;\r
+\r
+if (this._currentTab) {\r
+this._hideTab(this._currentTab)\r
+delete this._currentTab;\r
+}\r
+\r
+var tab = this._tabs[id];\r
+this._showTab(tab);\r
+this._currentTab = tab;\r
+if (userGesture) {\r
+var event = {tabId: id};\r
+this.dispatchEventToListeners("tab-selected", event);\r
+}\r
+return true;\r
+},\r
+\r
+_showTab: function(tab)\r
+{\r
+tab.tabElement.addStyleClass("selected");\r
+tab.view.show(this._contentElement);\r
+},\r
+\r
+_hideTab: function(tab)\r
+{\r
+tab.tabElement.removeStyleClass("selected");\r
+tab.view.visible = false;\r
+}\r
+}\r
+\r
+WebInspector.TabbedPane.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Placard = function(title, subtitle)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.className = "placard";\r
+this.element.placard = this;\r
+\r
+this.titleElement = document.createElement("div");\r
+this.titleElement.className = "title";\r
+\r
+this.subtitleElement = document.createElement("div");\r
+this.subtitleElement.className = "subtitle";\r
+\r
+this.element.appendChild(this.subtitleElement);\r
+this.element.appendChild(this.titleElement);\r
+\r
+this.title = title;\r
+this.subtitle = subtitle;\r
+this.selected = false;\r
+}\r
+\r
+WebInspector.Placard.prototype = {\r
+get title()\r
+{\r
+return this._title;\r
+},\r
+\r
+set title(x)\r
+{\r
+if (this._title === x)\r
+return;\r
+this._title = x;\r
+this.titleElement.textContent = x;\r
+},\r
+\r
+get subtitle()\r
+{\r
+return this._subtitle;\r
+},\r
+\r
+set subtitle(x)\r
+{\r
+if (this._subtitle === x)\r
+return;\r
+this._subtitle = x;\r
+this.subtitleElement.textContent = x;\r
+},\r
+\r
+get selected()\r
+{\r
+return this._selected;\r
+},\r
+\r
+set selected(x)\r
+{\r
+if (x)\r
+this.select();\r
+else\r
+this.deselect();\r
+},\r
+\r
+select: function()\r
+{\r
+if (this._selected)\r
+return;\r
+this._selected = true;\r
+this.element.addStyleClass("selected");\r
+},\r
+\r
+deselect: function()\r
+{\r
+if (!this._selected)\r
+return;\r
+this._selected = false;\r
+this.element.removeStyleClass("selected");\r
+},\r
+\r
+toggleSelected: function()\r
+{\r
+this.selected = !this.selected;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.View = function(element)\r
+{\r
+this.element = element || document.createElement("div");\r
+this._visible = false;\r
+}\r
+\r
+WebInspector.View.prototype = {\r
+get visible()\r
+{\r
+return this._visible;\r
+},\r
+\r
+set visible(x)\r
+{\r
+if (this._visible === x)\r
+return;\r
+\r
+if (x)\r
+this.show();\r
+else\r
+this.hide();\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+this._visible = true;\r
+if (parentElement && parentElement !== this.element.parentNode) {\r
+this.detach();\r
+parentElement.appendChild(this.element);\r
+}\r
+if (!this.element.parentNode && this.attach)\r
+this.attach();\r
+this.element.addStyleClass("visible");\r
+},\r
+\r
+hide: function()\r
+{\r
+this.element.removeStyleClass("visible");\r
+this._visible = false;\r
+},\r
+\r
+detach: function()\r
+{\r
+if (this.element.parentNode)\r
+this.element.parentNode.removeChild(this.element);\r
+}\r
+}\r
+\r
+WebInspector.View.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Drawer = function()\r
+{\r
+WebInspector.View.call(this, document.getElementById("drawer"));\r
+\r
+this._savedHeight = 200; \r
+this.state = WebInspector.Drawer.State.Hidden;\r
+this.fullPanel = false;\r
+\r
+this.mainElement = document.getElementById("main");\r
+this.toolbarElement = document.getElementById("toolbar");\r
+this.mainStatusBar = document.getElementById("main-status-bar");\r
+this.mainStatusBar.addEventListener("mousedown", this._startStatusBarDragging.bind(this), true);\r
+this.viewStatusBar = document.getElementById("other-drawer-status-bar-items");\r
+this._counters = document.getElementById("counters");\r
+this._drawerStatusBar = document.getElementById("drawer-status-bar");\r
+}\r
+\r
+WebInspector.Drawer.prototype = {\r
+get visibleView()\r
+{\r
+return this._visibleView;\r
+},\r
+\r
+set visibleView(x)\r
+{\r
+if (this._visibleView === x) {\r
+if (this.visible && this.fullPanel)\r
+return;\r
+this.visible = !this.visible;\r
+return;\r
+}\r
+\r
+var firstTime = !this._visibleView;\r
+if (this._visibleView)\r
+this._visibleView.hide();\r
+\r
+this._visibleView = x;\r
+\r
+if (x && !firstTime) {\r
+this._safelyRemoveChildren();\r
+this.viewStatusBar.removeChildren(); \r
+x.attach(this.element, this.viewStatusBar);\r
+x.show();\r
+this.visible = true;\r
+}\r
+},\r
+\r
+get savedHeight()\r
+{\r
+var height = this._savedHeight || this.element.offsetHeight;\r
+return Number.constrain(height, Preferences.minConsoleHeight, window.innerHeight - this.mainElement.totalOffsetTop - Preferences.minConsoleHeight);\r
+},\r
+\r
+showView: function(view)\r
+{\r
+if (!this.visible || this.visibleView !== view)\r
+this.visibleView = view;\r
+},\r
+\r
+show: function()\r
+{\r
+if (this._animating || this.visible)\r
+return;\r
+\r
+if (this.visibleView)\r
+this.visibleView.show();\r
+\r
+WebInspector.View.prototype.show.call(this);\r
+\r
+this._animating = true;\r
+\r
+document.body.addStyleClass("drawer-visible");\r
+\r
+var anchoredItems = document.getElementById("anchored-status-bar-items");\r
+var height = (this.fullPanel ? window.innerHeight - this.toolbarElement.offsetHeight : this.savedHeight);\r
+var animations = [\r
+{element: this.element, end: {height: height}},\r
+{element: document.getElementById("main"), end: {bottom: height}},\r
+{element: document.getElementById("main-status-bar"), start: {"padding-left": anchoredItems.offsetWidth - 1}, end: {"padding-left": 0}},\r
+{element: document.getElementById("other-drawer-status-bar-items"), start: {opacity: 0}, end: {opacity: 1}}\r
+];\r
+\r
+var drawerStatusBar = document.getElementById("drawer-status-bar");\r
+drawerStatusBar.insertBefore(anchoredItems, drawerStatusBar.firstChild);\r
+\r
+if (this._currentPanelCounters) {\r
+var oldRight = this._drawerStatusBar.clientWidth - (this._counters.offsetLeft + this._currentPanelCounters.offsetWidth);\r
+var newRight = WebInspector.Panel.counterRightMargin;\r
+var rightPadding = (oldRight - newRight);\r
+animations.push({element: this._currentPanelCounters, start: {"padding-right": rightPadding}, end: {"padding-right": 0}});\r
+this._currentPanelCounters.parentNode.removeChild(this._currentPanelCounters);\r
+this.mainStatusBar.appendChild(this._currentPanelCounters);\r
+}\r
+\r
+function animationFinished()\r
+{\r
+if ("updateStatusBarItems" in WebInspector.currentPanel)\r
+WebInspector.currentPanel.updateStatusBarItems();\r
+if (this.visibleView.afterShow)\r
+this.visibleView.afterShow();\r
+delete this._animating;\r
+delete this._currentAnimationInterval;\r
+this.state = (this.fullPanel ? WebInspector.Drawer.State.Full : WebInspector.Drawer.State.Variable);\r
+if (this._currentPanelCounters)\r
+this._currentPanelCounters.removeAttribute("style");\r
+}\r
+\r
+this._currentAnimationInterval = WebInspector.animateStyle(animations, this._animationDuration(), animationFinished.bind(this));\r
+},\r
+\r
+hide: function()\r
+{\r
+if (this._animating || !this.visible)\r
+return;\r
+\r
+WebInspector.View.prototype.hide.call(this);\r
+\r
+if (this.visibleView)\r
+this.visibleView.hide();\r
+\r
+this._animating = true;\r
+\r
+if (!this.fullPanel)\r
+this._savedHeight = this.element.offsetHeight;\r
+\r
+if (this.element === WebInspector.currentFocusElement || this.element.isAncestor(WebInspector.currentFocusElement))\r
+WebInspector.currentFocusElement = WebInspector.previousFocusElement;\r
+\r
+var anchoredItems = document.getElementById("anchored-status-bar-items");\r
+\r
+\r
+\r
+this.mainStatusBar.style.setProperty("padding-left", (anchoredItems.offsetWidth - 1) + "px");\r
+document.body.removeStyleClass("drawer-visible");\r
+if ("updateStatusBarItems" in WebInspector.currentPanel)\r
+WebInspector.currentPanel.updateStatusBarItems();\r
+document.body.addStyleClass("drawer-visible");\r
+\r
+var animations = [\r
+{element: document.getElementById("main"), end: {bottom: 0}},\r
+{element: document.getElementById("main-status-bar"), start: {"padding-left": 0}, end: {"padding-left": anchoredItems.offsetWidth - 1}},\r
+{element: document.getElementById("other-drawer-status-bar-items"), start: {opacity: 1}, end: {opacity: 0}}\r
+];\r
+\r
+if (this._currentPanelCounters) {\r
+var newRight = this._drawerStatusBar.clientWidth - this._counters.offsetLeft;\r
+var oldRight = this.mainStatusBar.clientWidth - (this._currentPanelCounters.offsetLeft + this._currentPanelCounters.offsetWidth);\r
+var rightPadding = (newRight - oldRight);\r
+animations.push({element: this._currentPanelCounters, start: {"padding-right": 0}, end: {"padding-right": rightPadding}});\r
+}\r
+\r
+function animationFinished()\r
+{\r
+WebInspector.currentPanel.resize();\r
+var mainStatusBar = document.getElementById("main-status-bar");\r
+mainStatusBar.insertBefore(anchoredItems, mainStatusBar.firstChild);\r
+mainStatusBar.style.removeProperty("padding-left");\r
+\r
+if (this._currentPanelCounters) {\r
+this._currentPanelCounters.setAttribute("style", null);\r
+this._currentPanelCounters.parentNode.removeChild(this._currentPanelCounters);\r
+this._counters.insertBefore(this._currentPanelCounters, this._counters.firstChild);\r
+}\r
+\r
+document.body.removeStyleClass("drawer-visible");\r
+delete this._animating;\r
+delete this._currentAnimationInterval;\r
+this.state = WebInspector.Drawer.State.Hidden;\r
+}\r
+\r
+this._currentAnimationInterval = WebInspector.animateStyle(animations, this._animationDuration(), animationFinished.bind(this));\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this.state === WebInspector.Drawer.State.Hidden)\r
+return;\r
+\r
+var height;\r
+var mainElement = document.getElementById("main");\r
+if (this.state === WebInspector.Drawer.State.Variable) {\r
+height = parseInt(this.element.style.height);\r
+height = Number.constrain(height, Preferences.minConsoleHeight, window.innerHeight - mainElement.totalOffsetTop - Preferences.minConsoleHeight);\r
+} else\r
+height = window.innerHeight - this.toolbarElement.offsetHeight;\r
+\r
+mainElement.style.bottom = height + "px";\r
+this.element.style.height = height + "px";\r
+},\r
+\r
+enterPanelMode: function()\r
+{\r
+this._cancelAnimationIfNeeded();\r
+this.fullPanel = true;\r
+\r
+if (this.visible) {\r
+this._savedHeight = this.element.offsetHeight;\r
+var height = window.innerHeight - this.toolbarElement.offsetHeight;\r
+this._animateDrawerHeight(height, WebInspector.Drawer.State.Full);\r
+}\r
+},\r
+\r
+exitPanelMode: function()\r
+{\r
+this._cancelAnimationIfNeeded();\r
+this.fullPanel = false;\r
+\r
+if (this.visible) {\r
+\r
+\r
+this.state = WebInspector.Drawer.State.Variable;\r
+var height = this.savedHeight;\r
+this._animateDrawerHeight(height, WebInspector.Drawer.State.Variable);\r
+}\r
+},\r
+\r
+immediatelyExitPanelMode: function()\r
+{\r
+this.visible = false;\r
+this.fullPanel = false;\r
+},\r
+\r
+set currentPanelCounters(x)\r
+{\r
+if (!x) {\r
+if (this._currentPanelCounters)\r
+this._currentPanelCounters.parentElement.removeChild(this._currentPanelCounters);\r
+delete this._currentPanelCounters;\r
+return;\r
+}\r
+\r
+this._currentPanelCounters = x;\r
+if (this.visible)\r
+this.mainStatusBar.appendChild(x);\r
+else\r
+this._counters.insertBefore(x, this._counters.firstChild);\r
+},\r
+\r
+_cancelAnimationIfNeeded: function()\r
+{\r
+if (this._animating) {\r
+clearInterval(this._currentAnimationInterval);\r
+delete this._animating;\r
+delete this._currentAnimationInterval;\r
+}\r
+},\r
+\r
+_animateDrawerHeight: function(height, finalState)\r
+{\r
+this._animating = true;\r
+var animations = [\r
+{element: this.element, end: {height: height}},\r
+{element: document.getElementById("main"), end: {bottom: height}}\r
+];\r
+\r
+function animationFinished()\r
+{\r
+delete this._animating;\r
+delete this._currentAnimationInterval;\r
+this.state = finalState;\r
+}\r
+\r
+this._currentAnimationInterval = WebInspector.animateStyle(animations, this._animationDuration(), animationFinished.bind(this));\r
+},\r
+\r
+_animationDuration: function()\r
+{\r
+\r
+if (this.fullPanel && (this.state === WebInspector.Drawer.State.Hidden || this.state === WebInspector.Drawer.State.Full))\r
+return 0;\r
+\r
+return (window.event && window.event.shiftKey ? 2000 : 250);\r
+},\r
+\r
+_safelyRemoveChildren: function()\r
+{\r
+var child = this.element.firstChild;\r
+while (child) {\r
+if (child.id !== "drawer-status-bar") {\r
+var moveTo = child.nextSibling;\r
+this.element.removeChild(child);\r
+child = moveTo;\r
+} else\r
+child = child.nextSibling;\r
+}\r
+},\r
+\r
+_startStatusBarDragging: function(event)\r
+{\r
+if (!this.visible || event.target !== this.mainStatusBar)\r
+return;\r
+\r
+WebInspector.elementDragStart(this.mainStatusBar, this._statusBarDragging.bind(this), this._endStatusBarDragging.bind(this), event, "row-resize");\r
+\r
+this._statusBarDragOffset = event.pageY - this.element.totalOffsetTop;\r
+\r
+event.stopPropagation();\r
+},\r
+\r
+_statusBarDragging: function(event)\r
+{\r
+var mainElement = document.getElementById("main");\r
+var height = window.innerHeight - event.pageY + this._statusBarDragOffset;\r
+height = Number.constrain(height, Preferences.minConsoleHeight, window.innerHeight - mainElement.totalOffsetTop - Preferences.minConsoleHeight);\r
+\r
+mainElement.style.bottom = height + "px";\r
+this.element.style.height = height + "px";\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+},\r
+\r
+_endStatusBarDragging: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+\r
+this._savedHeight = this.element.offsetHeight;\r
+delete this._statusBarDragOffset;\r
+\r
+event.stopPropagation();\r
+}\r
+}\r
+\r
+WebInspector.Drawer.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+WebInspector.Drawer.State = {\r
+Hidden: 0,\r
+Variable: 1,\r
+Full: 2\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ChangesView = function(drawer)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.innerHTML = "<div style=\"bottom:25%;color:rgb(192,192,192);font-size:12px;height:65px;left:0px;margin:auto;position:absolute;right:0px;text-align:center;top:0px;\"><h1>Not Implemented Yet</h1></div>";\r
+\r
+this.drawer = drawer;\r
+\r
+this.clearButton = document.createElement("button");\r
+this.clearButton.id = "clear-changes-status-bar-item";\r
+this.clearButton.title = WebInspector.UIString("Clear changes log.");\r
+this.clearButton.className = "status-bar-item clear-status-bar-item";\r
+this.clearButton.addEventListener("click", this._clearButtonClicked.bind(this), false);\r
+\r
+this.toggleChangesButton = document.getElementById("changes-status-bar-item");\r
+this.toggleChangesButton.title = WebInspector.UIString("Show changes view.");\r
+this.toggleChangesButton.addEventListener("click", this._toggleChangesButtonClicked.bind(this), false);\r
+var anchoredStatusBar = document.getElementById("anchored-status-bar-items");\r
+anchoredStatusBar.appendChild(this.toggleChangesButton);\r
+}\r
+\r
+WebInspector.ChangesView.prototype = {\r
+_clearButtonClicked: function()\r
+{\r
+\r
+},\r
+\r
+_toggleChangesButtonClicked: function()\r
+{\r
+this.drawer.visibleView = this;\r
+},\r
+\r
+attach: function(mainElement, statusBarElement)\r
+{\r
+mainElement.appendChild(this.element);\r
+statusBarElement.appendChild(this.clearButton);\r
+},\r
+\r
+show: function()\r
+{\r
+this.toggleChangesButton.addStyleClass("toggled-on");\r
+this.toggleChangesButton.title = WebInspector.UIString("Hide changes view.");\r
+},\r
+\r
+hide: function()\r
+{\r
+this.toggleChangesButton.removeStyleClass("toggled-on");\r
+this.toggleChangesButton.title = WebInspector.UIString("Show changes view.");\r
+}\r
+}\r
+\r
+WebInspector.ChangesView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+const ExpressionStopCharacters = " =:[({;,!+-*/&|^<>";\r
+\r
+WebInspector.ConsoleView = function(drawer)\r
+{\r
+WebInspector.View.call(this, document.getElementById("console-view"));\r
+\r
+this.messages = [];\r
+this.drawer = drawer;\r
+\r
+this.clearButton = document.getElementById("clear-console-status-bar-item");\r
+this.clearButton.title = WebInspector.UIString("Clear console log.");\r
+this.clearButton.addEventListener("click", this._clearButtonClicked.bind(this), false);\r
+\r
+this.messagesElement = document.getElementById("console-messages");\r
+this.messagesElement.addEventListener("selectstart", this._messagesSelectStart.bind(this), false);\r
+this.messagesElement.addEventListener("click", this._messagesClicked.bind(this), true);\r
+\r
+this.promptElement = document.getElementById("console-prompt");\r
+this.promptElement.className = "source-code";\r
+this.promptElement.addEventListener("keydown", this._promptKeyDown.bind(this), true);\r
+this.prompt = new WebInspector.TextPrompt(this.promptElement, this.completions.bind(this), ExpressionStopCharacters + ".");\r
+this.prompt.history = WebInspector.settings.consoleHistory;\r
+\r
+this.topGroup = new WebInspector.ConsoleGroup(null);\r
+this.messagesElement.insertBefore(this.topGroup.element, this.promptElement);\r
+this.currentGroup = this.topGroup;\r
+\r
+this.toggleConsoleButton = document.getElementById("console-status-bar-item");\r
+this.toggleConsoleButton.title = WebInspector.UIString("Show console.");\r
+this.toggleConsoleButton.addEventListener("click", this._toggleConsoleButtonClicked.bind(this), false);\r
+\r
+\r
+this.filterBarElement = document.getElementById("console-filter");\r
+\r
+function createDividerElement() {\r
+var dividerElement = document.createElement("div");\r
+dividerElement.addStyleClass("scope-bar-divider");\r
+this.filterBarElement.appendChild(dividerElement);\r
+}\r
+\r
+var updateFilterHandler = this._updateFilter.bind(this);\r
+function createFilterElement(category, label) {\r
+var categoryElement = document.createElement("li");\r
+categoryElement.category = category;\r
+categoryElement.className = category;\r
+categoryElement.addEventListener("click", updateFilterHandler, false);\r
+categoryElement.textContent = label;\r
+\r
+this.filterBarElement.appendChild(categoryElement);\r
+\r
+return categoryElement;\r
+}\r
+\r
+this.allElement = createFilterElement.call(this, "all", WebInspector.UIString("All"));\r
+createDividerElement.call(this);\r
+this.errorElement = createFilterElement.call(this, "errors", WebInspector.UIString("Errors"));\r
+this.warningElement = createFilterElement.call(this, "warnings", WebInspector.UIString("Warnings"));\r
+this.logElement = createFilterElement.call(this, "logs", WebInspector.UIString("Logs"));\r
+\r
+this.filter(this.allElement, false);\r
+this._registerShortcuts();\r
+\r
+this.messagesElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true);\r
+\r
+this._customFormatters = {\r
+"object": this._formatobject,\r
+"array":  this._formatarray,\r
+"node":   this._formatnode,\r
+"string": this._formatstring\r
+};\r
+}\r
+\r
+WebInspector.ConsoleView.prototype = {\r
+_updateFilter: function(e)\r
+{\r
+var isMac = WebInspector.isMac();\r
+var selectMultiple = false;\r
+if (isMac && e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey)\r
+selectMultiple = true;\r
+if (!isMac && e.ctrlKey && !e.metaKey && !e.altKey && !e.shiftKey)\r
+selectMultiple = true;\r
+\r
+this.filter(e.target, selectMultiple);\r
+},\r
+\r
+filter: function(target, selectMultiple)\r
+{\r
+function unselectAll()\r
+{\r
+this.allElement.removeStyleClass("selected");\r
+this.errorElement.removeStyleClass("selected");\r
+this.warningElement.removeStyleClass("selected");\r
+this.logElement.removeStyleClass("selected");\r
+\r
+this.messagesElement.removeStyleClass("filter-all");\r
+this.messagesElement.removeStyleClass("filter-errors");\r
+this.messagesElement.removeStyleClass("filter-warnings");\r
+this.messagesElement.removeStyleClass("filter-logs");\r
+}\r
+\r
+var targetFilterClass = "filter-" + target.category;\r
+\r
+if (target.category === "all") {\r
+if (target.hasStyleClass("selected")) {\r
+\r
+return;\r
+}\r
+\r
+unselectAll.call(this);\r
+} else {\r
+\r
+if (this.allElement.hasStyleClass("selected")) {\r
+this.allElement.removeStyleClass("selected");\r
+this.messagesElement.removeStyleClass("filter-all");\r
+}\r
+}\r
+\r
+if (!selectMultiple) {\r
+\r
+\r
+unselectAll.call(this);\r
+\r
+target.addStyleClass("selected");\r
+this.messagesElement.addStyleClass(targetFilterClass);\r
+\r
+return;\r
+}\r
+\r
+if (target.hasStyleClass("selected")) {\r
+\r
+\r
+target.removeStyleClass("selected");\r
+this.messagesElement.removeStyleClass(targetFilterClass);\r
+} else {\r
+\r
+\r
+target.addStyleClass("selected");\r
+this.messagesElement.addStyleClass(targetFilterClass);\r
+}\r
+},\r
+\r
+_toggleConsoleButtonClicked: function()\r
+{\r
+this.drawer.visibleView = this;\r
+},\r
+\r
+attach: function(mainElement, statusBarElement)\r
+{\r
+mainElement.appendChild(this.element);\r
+statusBarElement.appendChild(this.clearButton);\r
+statusBarElement.appendChild(this.filterBarElement);\r
+},\r
+\r
+show: function()\r
+{\r
+this.toggleConsoleButton.addStyleClass("toggled-on");\r
+this.toggleConsoleButton.title = WebInspector.UIString("Hide console.");\r
+if (!this.prompt.isCaretInsidePrompt())\r
+this.prompt.moveCaretToEndOfPrompt();\r
+},\r
+\r
+afterShow: function()\r
+{\r
+WebInspector.currentFocusElement = this.promptElement;\r
+},\r
+\r
+hide: function()\r
+{\r
+this.toggleConsoleButton.removeStyleClass("toggled-on");\r
+this.toggleConsoleButton.title = WebInspector.UIString("Show console.");\r
+},\r
+\r
+_scheduleScrollIntoView: function()\r
+{\r
+if (this._scrollIntoViewTimer)\r
+return;\r
+\r
+function scrollIntoView()\r
+{\r
+this.promptElement.scrollIntoView(true);\r
+delete this._scrollIntoViewTimer;\r
+}\r
+this._scrollIntoViewTimer = setTimeout(scrollIntoView.bind(this), 20);\r
+},\r
+\r
+addMessage: function(msg)\r
+{\r
+var shouldScrollToLastMessage = this.messagesElement.isScrolledToBottom();\r
+\r
+if (msg instanceof WebInspector.ConsoleMessage && !(msg instanceof WebInspector.ConsoleCommandResult)) {\r
+this._incrementErrorWarningCount(msg);\r
+WebInspector.resourceManager.addConsoleMessage(msg);\r
+this.commandSincePreviousMessage = false;\r
+this.previousMessage = msg;\r
+} else if (msg instanceof WebInspector.ConsoleCommand) {\r
+if (this.previousMessage) {\r
+this.commandSincePreviousMessage = true;\r
+}\r
+}\r
+\r
+this.messages.push(msg);\r
+\r
+if (msg.type === WebInspector.ConsoleMessage.MessageType.EndGroup) {\r
+var parentGroup = this.currentGroup.parentGroup\r
+if (parentGroup)\r
+this.currentGroup = parentGroup;\r
+} else {\r
+if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup || msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed) {\r
+var group = new WebInspector.ConsoleGroup(this.currentGroup);\r
+this.currentGroup.messagesElement.appendChild(group.element);\r
+this.currentGroup = group;\r
+}\r
+\r
+this.currentGroup.addMessage(msg);\r
+}\r
+\r
+if (shouldScrollToLastMessage)\r
+this._scheduleScrollIntoView();\r
+},\r
+\r
+updateMessageRepeatCount: function(count)\r
+{\r
+var msg = this.previousMessage;\r
+var prevRepeatCount = msg.totalRepeatCount;\r
+\r
+if (!this.commandSincePreviousMessage) {\r
+msg.repeatDelta = count - prevRepeatCount;\r
+msg.repeatCount = msg.repeatCount + msg.repeatDelta;\r
+msg.totalRepeatCount = count;\r
+msg._updateRepeatCount();\r
+this._incrementErrorWarningCount(msg);\r
+} else {\r
+var msgCopy = new WebInspector.ConsoleMessage(msg.source, msg.type, msg.level, msg.line, msg.url, count - prevRepeatCount, msg._messageText, msg._parameters, msg._stackTrace, msg._requestId);\r
+msgCopy.totalRepeatCount = count;\r
+msgCopy._formatMessage();\r
+this.addMessage(msgCopy);\r
+}\r
+},\r
+\r
+_incrementErrorWarningCount: function(msg)\r
+{\r
+switch (msg.level) {\r
+case WebInspector.ConsoleMessage.MessageLevel.Warning:\r
+WebInspector.warnings += msg.repeatDelta;\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Error:\r
+WebInspector.errors += msg.repeatDelta;\r
+break;\r
+}\r
+},\r
+\r
+requestClearMessages: function()\r
+{\r
+InspectorBackend.clearConsoleMessages();\r
+},\r
+\r
+clearMessages: function()\r
+{\r
+WebInspector.resourceManager.clearConsoleMessages();\r
+\r
+this.messages = [];\r
+\r
+this.currentGroup = this.topGroup;\r
+this.topGroup.messagesElement.removeChildren();\r
+\r
+WebInspector.errors = 0;\r
+WebInspector.warnings = 0;\r
+\r
+delete this.commandSincePreviousMessage;\r
+delete this.previousMessage;\r
+},\r
+\r
+completions: function(wordRange, bestMatchOnly, completionsReadyCallback)\r
+{\r
+\r
+var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, ExpressionStopCharacters, this.promptElement, "backward");\r
+var expressionString = expressionRange.toString();\r
+var lastIndex = expressionString.length - 1;\r
+\r
+var dotNotation = (expressionString[lastIndex] === ".");\r
+var bracketNotation = (expressionString[lastIndex] === "[");\r
+\r
+if (dotNotation || bracketNotation)\r
+expressionString = expressionString.substr(0, lastIndex);\r
+\r
+var prefix = wordRange.toString();\r
+if (!expressionString && !prefix)\r
+return;\r
+\r
+var reportCompletions = this._reportCompletions.bind(this, bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix);\r
+\r
+\r
+var includeInspectorCommandLineAPI = (!dotNotation && !bracketNotation);\r
+var callFrameId = WebInspector.panels.scripts.selectedCallFrameId();\r
+var injectedScriptAccess;\r
+if (WebInspector.panels.scripts && WebInspector.panels.scripts.paused) {\r
+var selectedCallFrame = WebInspector.panels.scripts.sidebarPanes.callstack.selectedCallFrame;\r
+injectedScriptAccess = InjectedScriptAccess.get(selectedCallFrame.worldId);\r
+} else\r
+injectedScriptAccess = InjectedScriptAccess.getDefault();\r
+injectedScriptAccess.getCompletions(expressionString, includeInspectorCommandLineAPI, callFrameId, reportCompletions);\r
+},\r
+\r
+_reportCompletions: function(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, result, isException) {\r
+if (isException)\r
+return;\r
+\r
+if (bracketNotation) {\r
+if (prefix.length && prefix[0] === "'")\r
+var quoteUsed = "'";\r
+else\r
+var quoteUsed = "\"";\r
+}\r
+\r
+var results = [];\r
+var properties = Object.keys(result).sort();\r
+\r
+for (var i = 0; i < properties.length; ++i) {\r
+var property = properties[i];\r
+\r
+if (dotNotation && !/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(property))\r
+continue;\r
+\r
+if (bracketNotation) {\r
+if (!/^[0-9]+$/.test(property))\r
+property = quoteUsed + property.escapeCharacters(quoteUsed + "\\") + quoteUsed;\r
+property += "]";\r
+}\r
+\r
+if (property.length < prefix.length)\r
+continue;\r
+if (property.indexOf(prefix) !== 0)\r
+continue;\r
+\r
+results.push(property);\r
+if (bestMatchOnly)\r
+break;\r
+}\r
+completionsReadyCallback(results);\r
+},\r
+\r
+_clearButtonClicked: function()\r
+{\r
+this.requestClearMessages();\r
+},\r
+\r
+_handleContextMenuEvent: function(event)\r
+{\r
+if (!window.getSelection().isCollapsed) {\r
+\r
+\r
+return;\r
+}\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+\r
+function monitoringXHRWasChanged(newState)\r
+{\r
+WebInspector.monitoringXHREnabled = newState;\r
+}\r
+var itemAction = InspectorBackend.setMonitoringXHREnabled.bind(InspectorBackend, !WebInspector.monitoringXHREnabled, monitoringXHRWasChanged);\r
+contextMenu.appendCheckboxItem(WebInspector.UIString("XMLHttpRequest logging"), itemAction, WebInspector.monitoringXHREnabled);\r
+contextMenu.appendItem(WebInspector.UIString("Clear Console"), this.requestClearMessages.bind(this));\r
+contextMenu.show(event);\r
+},\r
+\r
+_messagesSelectStart: function(event)\r
+{\r
+if (this._selectionTimeout)\r
+clearTimeout(this._selectionTimeout);\r
+\r
+this.prompt.clearAutoComplete();\r
+\r
+function moveBackIfOutside()\r
+{\r
+delete this._selectionTimeout;\r
+if (!this.prompt.isCaretInsidePrompt() && window.getSelection().isCollapsed)\r
+this.prompt.moveCaretToEndOfPrompt();\r
+this.prompt.autoCompleteSoon();\r
+}\r
+\r
+this._selectionTimeout = setTimeout(moveBackIfOutside.bind(this), 100);\r
+},\r
+\r
+_messagesClicked: function(event)\r
+{\r
+var link = event.target.enclosingNodeOrSelfWithNodeName("a");\r
+if (!link || !link.representedNode)\r
+return;\r
+\r
+WebInspector.updateFocusedNode(link.representedNode.id);\r
+event.stopPropagation();\r
+event.preventDefault();\r
+},\r
+\r
+_registerShortcuts: function()\r
+{\r
+this._shortcuts = {};\r
+\r
+var shortcut = WebInspector.KeyboardShortcut;\r
+var shortcutK = shortcut.makeDescriptor("k", WebInspector.KeyboardShortcut.Modifiers.Meta);\r
+\r
+this._shortcuts[shortcutK.key] = this.requestClearMessages.bind(this);\r
+this._shortcuts[shortcutK.key].isMacOnly = true;\r
+\r
+var clearConsoleHandler = this.requestClearMessages.bind(this);\r
+var shortcutL = shortcut.makeDescriptor("l", WebInspector.KeyboardShortcut.Modifiers.Ctrl);\r
+this._shortcuts[shortcutL.key] = clearConsoleHandler;\r
+\r
+var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Console"));\r
+var keys = WebInspector.isMac() ? [ shortcutK.name, shortcutL.name ] : [ shortcutL.name ];\r
+section.addAlternateKeys(keys, WebInspector.UIString("Clear Console"));\r
+\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Tab),\r
+shortcut.shortcutToString(shortcut.Keys.Tab, shortcut.Modifiers.Shift)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Next/previous suggestion"));\r
+section.addKey(shortcut.shortcutToString(shortcut.Keys.Right), WebInspector.UIString("Accept suggestion"));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Down),\r
+shortcut.shortcutToString(shortcut.Keys.Up)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Next/previous line"));\r
+keys = [\r
+shortcut.shortcutToString("N", shortcut.Modifiers.Alt),\r
+shortcut.shortcutToString("P", shortcut.Modifiers.Alt)\r
+];\r
+if (WebInspector.isMac())\r
+section.addRelatedKeys(keys, WebInspector.UIString("Next/previous command"));\r
+section.addKey(shortcut.shortcutToString(shortcut.Keys.Enter), WebInspector.UIString("Execute command"));\r
+},\r
+\r
+_promptKeyDown: function(event)\r
+{\r
+if (isEnterKey(event)) {\r
+this._enterKeyPressed(event);\r
+return;\r
+}\r
+\r
+var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);\r
+var handler = this._shortcuts[shortcut];\r
+if (handler) {\r
+if (!this._shortcuts[shortcut].isMacOnly || WebInspector.isMac()) {\r
+handler();\r
+event.preventDefault();\r
+return;\r
+}\r
+}\r
+},\r
+\r
+evalInInspectedWindow: function(expression, objectGroup, callback)\r
+{\r
+if (WebInspector.panels.scripts && WebInspector.panels.scripts.paused) {\r
+WebInspector.panels.scripts.evaluateInSelectedCallFrame(expression, false, objectGroup, callback);\r
+return;\r
+}\r
+this.doEvalInWindow(expression, objectGroup, callback);\r
+},\r
+\r
+doEvalInWindow: function(expression, objectGroup, callback)\r
+{\r
+if (!expression) {\r
+\r
+expression = "this";\r
+}\r
+\r
+function evalCallback(result)\r
+{\r
+callback(WebInspector.RemoteObject.fromPayload(result));\r
+};\r
+InjectedScriptAccess.getDefault().evaluate(expression, objectGroup, evalCallback);\r
+},\r
+\r
+_enterKeyPressed: function(event)\r
+{\r
+if (event.altKey || event.ctrlKey || event.shiftKey)\r
+return;\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+this.prompt.clearAutoComplete(true);\r
+\r
+var str = this.prompt.text;\r
+if (!str.length)\r
+return;\r
+\r
+var commandMessage = new WebInspector.ConsoleCommand(str);\r
+this.addMessage(commandMessage);\r
+\r
+var self = this;\r
+function printResult(result)\r
+{\r
+self.prompt.history.push(str);\r
+self.prompt.historyOffset = 0;\r
+self.prompt.text = "";\r
+\r
+WebInspector.settings.consoleHistory = self.prompt.history.slice(-30);\r
+\r
+self.addMessage(new WebInspector.ConsoleCommandResult(result, commandMessage));\r
+}\r
+this.evalInInspectedWindow(str, "console", printResult);\r
+},\r
+\r
+_format: function(output, forceObjectFormat)\r
+{\r
+var isProxy = (output != null && typeof output === "object");\r
+var type = (forceObjectFormat ? "object" : WebInspector.RemoteObject.type(output));\r
+\r
+var formatter = this._customFormatters[type];\r
+if (!formatter || !isProxy) {\r
+formatter = this._formatvalue;\r
+output = output.description;\r
+}\r
+\r
+var span = document.createElement("span");\r
+span.className = "console-formatted-" + type + " source-code";\r
+formatter.call(this, output, span);\r
+return span;\r
+},\r
+\r
+_formatvalue: function(val, elem)\r
+{\r
+elem.appendChild(document.createTextNode(val));\r
+},\r
+\r
+_formatobject: function(obj, elem)\r
+{\r
+elem.appendChild(new WebInspector.ObjectPropertiesSection(obj, obj.description, null, true).element);\r
+},\r
+\r
+_formatnode: function(object, elem)\r
+{\r
+function printNode(nodeId)\r
+{\r
+if (!nodeId) {\r
+\r
+\r
+this._formatobject(object, elem);\r
+return;\r
+}\r
+var treeOutline = new WebInspector.ElementsTreeOutline();\r
+treeOutline.showInElementsPanelEnabled = true;\r
+treeOutline.rootDOMNode = WebInspector.domAgent.nodeForId(nodeId);\r
+treeOutline.element.addStyleClass("outline-disclosure");\r
+if (!treeOutline.children[0].hasChildren)\r
+treeOutline.element.addStyleClass("single-node");\r
+elem.appendChild(treeOutline.element);\r
+}\r
+object.pushNodeToFrontend(printNode.bind(this));\r
+},\r
+\r
+_formatarray: function(arr, elem)\r
+{\r
+arr.getOwnProperties(false, this._printArray.bind(this, elem));\r
+},\r
+\r
+_formatstring: function(output, elem)\r
+{\r
+var span = document.createElement("span");\r
+span.className = "console-formatted-string source-code";\r
+span.appendChild(WebInspector.linkifyStringAsFragment(output.description));\r
+\r
+\r
+elem.removeStyleClass("console-formatted-string");\r
+elem.appendChild(document.createTextNode("\""));\r
+elem.appendChild(span);\r
+elem.appendChild(document.createTextNode("\""));\r
+},\r
+\r
+_printArray: function(elem, properties)\r
+{\r
+if (!properties)\r
+return;\r
+\r
+var elements = [];\r
+for (var i = 0; i < properties.length; ++i) {\r
+var name = properties[i].name;\r
+if (name == parseInt(name))\r
+elements[name] = this._formatAsArrayEntry(properties[i].value);\r
+}\r
+\r
+elem.appendChild(document.createTextNode("["));\r
+for (var i = 0; i < elements.length; ++i) {\r
+var element = elements[i];\r
+if (element)\r
+elem.appendChild(element);\r
+else\r
+elem.appendChild(document.createTextNode("undefined"))\r
+if (i < elements.length - 1)\r
+elem.appendChild(document.createTextNode(", "));\r
+}\r
+elem.appendChild(document.createTextNode("]"));\r
+},\r
+\r
+_formatAsArrayEntry: function(output)\r
+{\r
+\r
+return this._format(output, WebInspector.RemoteObject.type(output) === "array");\r
+}\r
+}\r
+\r
+WebInspector.ConsoleView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+WebInspector.ConsoleMessage = function(source, type, level, line, url, repeatCount, message, parameters, stackTrace, requestId)\r
+{\r
+this.source = source;\r
+this.type = type;\r
+this.level = level;\r
+this.line = line;\r
+this.url = url;\r
+this.repeatCount = repeatCount;\r
+this.repeatDelta = repeatCount;\r
+this.totalRepeatCount = repeatCount;\r
+this._messageText = message;\r
+this._parameters = parameters;\r
+this._stackTrace = stackTrace;\r
+this._requestId = requestId;\r
+this._formatMessage();\r
+}\r
+\r
+WebInspector.ConsoleMessage.createTextMessage = function(text, level)\r
+{\r
+level = level || WebInspector.ConsoleMessage.MessageLevel.Log;\r
+return new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.JS, WebInspector.ConsoleMessage.MessageType.Log, level, 0, null, 1, null, [text], null);\r
+}\r
+\r
+WebInspector.ConsoleMessage.prototype = {\r
+_formatMessage: function()\r
+{\r
+var stackTrace = this._stackTrace;\r
+var messageText;\r
+switch (this.type) {\r
+case WebInspector.ConsoleMessage.MessageType.Trace:\r
+messageText = document.createTextNode("console.trace()");\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.UncaughtException:\r
+messageText = document.createTextNode(this._messageText);\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.NetworkError:\r
+var resource = this._requestId && WebInspector.panels.network.resources[this._requestId];\r
+if (resource) {\r
+stackTrace = resource.stackTrace;\r
+\r
+messageText = document.createElement("span");\r
+messageText.appendChild(document.createTextNode(resource.requestMethod + " "));\r
+messageText.appendChild(WebInspector.linkifyURLAsNode(resource.url));\r
+if (resource.failed)\r
+messageText.appendChild(document.createTextNode(" " + resource.localizedFailDescription));\r
+else\r
+messageText.appendChild(document.createTextNode(" " + resource.statusCode + " (" + resource.statusText + ")"));\r
+} else\r
+messageText = this._format([this._messageText]);\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Assert:\r
+var args = [WebInspector.UIString("Assertion failed:")];\r
+if (this._parameters)\r
+args = args.concat(this._parameters);\r
+messageText = this._format(args);\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Object:\r
+var obj = this._parameters ? this._parameters[0] : undefined;\r
+var args = ["%O", obj];\r
+messageText = this._format(args);\r
+break;\r
+default:\r
+var args = this._parameters || [this._messageText];\r
+messageText = this._format(args);\r
+break;\r
+}\r
+\r
+this._formattedMessage = document.createElement("span");\r
+this._formattedMessage.className = "console-message-text source-code";\r
+\r
+if (stackTrace && stackTrace.length) {\r
+var topCallFrame = stackTrace[0];\r
+var sourceName = topCallFrame.scriptName;\r
+var sourceLine = topCallFrame.lineNumber;\r
+} else {\r
+var sourceName = this.url;\r
+var sourceLine = this.line;\r
+}\r
+\r
+if (sourceName && sourceName !== "undefined") {\r
+var urlElement = WebInspector.linkifyResourceAsNode(sourceName, "scripts", sourceLine, "console-message-url");\r
+this._formattedMessage.appendChild(urlElement);\r
+}\r
+\r
+this._formattedMessage.appendChild(messageText);\r
+\r
+if (this._stackTrace) {\r
+switch (this.type) {\r
+case WebInspector.ConsoleMessage.MessageType.Trace:\r
+case WebInspector.ConsoleMessage.MessageType.UncaughtException:\r
+case WebInspector.ConsoleMessage.MessageType.NetworkError:\r
+case WebInspector.ConsoleMessage.MessageType.Assert: {\r
+var ol = document.createElement("ol");\r
+ol.className = "outline-disclosure";\r
+var treeOutline = new TreeOutline(ol);\r
+\r
+var content = this._formattedMessage;\r
+var root = new TreeElement(content, null, true);\r
+content.treeElementForTest = root;\r
+treeOutline.appendChild(root);\r
+if (this.type === WebInspector.ConsoleMessage.MessageType.Trace)\r
+root.expand();\r
+\r
+this._populateStackTraceTreeElement(root);\r
+this._formattedMessage = ol;\r
+}\r
+}\r
+}\r
+\r
+\r
+this.message = this._formattedMessage.textContent;\r
+},\r
+\r
+isErrorOrWarning: function()\r
+{\r
+return (this.level === WebInspector.ConsoleMessage.MessageLevel.Warning || this.level === WebInspector.ConsoleMessage.MessageLevel.Error);\r
+},\r
+\r
+_format: function(parameters)\r
+{\r
+\r
+var formattedResult = document.createElement("span");\r
+if (!parameters.length)\r
+return formattedResult;\r
+\r
+\r
+\r
+for (var i = 0; i < parameters.length; ++i) {\r
+if (typeof parameters[i] === "object")\r
+parameters[i] = WebInspector.RemoteObject.fromPayload(parameters[i]);\r
+else\r
+parameters[i] = WebInspector.RemoteObject.fromPrimitiveValue(parameters[i]);\r
+}\r
+\r
+\r
+var shouldFormatMessage = WebInspector.RemoteObject.type(parameters[0]) === "string" && this.type !== WebInspector.ConsoleMessage.MessageType.Result;\r
+\r
+\r
+if (shouldFormatMessage) {\r
+\r
+var result = this._formatWithSubstitutionString(parameters, formattedResult);\r
+parameters = result.unusedSubstitutions;\r
+if (parameters.length)\r
+formattedResult.appendChild(document.createTextNode(" "));\r
+}\r
+\r
+\r
+for (var i = 0; i < parameters.length; ++i) {\r
+\r
+if (shouldFormatMessage && parameters[i].type === "string")\r
+formattedResult.appendChild(document.createTextNode(parameters[i].description));\r
+else\r
+formattedResult.appendChild(WebInspector.console._format(parameters[i]));\r
+if (i < parameters.length - 1)\r
+formattedResult.appendChild(document.createTextNode(" "));\r
+}\r
+return formattedResult;\r
+},\r
+\r
+_formatWithSubstitutionString: function(parameters, formattedResult)\r
+{\r
+var formatters = {}\r
+for (var i in String.standardFormatters)\r
+formatters[i] = String.standardFormatters[i];\r
+\r
+function consoleFormatWrapper(force)\r
+{\r
+return function(obj) {\r
+return WebInspector.console._format(obj, force);\r
+};\r
+}\r
+\r
+\r
+formatters.o = consoleFormatWrapper();\r
+\r
+formatters.i = formatters.d;\r
+\r
+formatters.O = consoleFormatWrapper(true);\r
+\r
+function append(a, b)\r
+{\r
+if (!(b instanceof Node))\r
+a.appendChild(WebInspector.linkifyStringAsFragment(b.toString()));\r
+else\r
+a.appendChild(b);\r
+return a;\r
+}\r
+\r
+\r
+return String.format(parameters[0].description, parameters.slice(1), formatters, formattedResult, append);\r
+},\r
+\r
+toMessageElement: function()\r
+{\r
+if (this._element)\r
+return this._element;\r
+\r
+var element = document.createElement("div");\r
+element.message = this;\r
+element.className = "console-message";\r
+\r
+this._element = element;\r
+\r
+switch (this.level) {\r
+case WebInspector.ConsoleMessage.MessageLevel.Tip:\r
+element.addStyleClass("console-tip-level");\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Log:\r
+element.addStyleClass("console-log-level");\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Debug:\r
+element.addStyleClass("console-debug-level");\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Warning:\r
+element.addStyleClass("console-warning-level");\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Error:\r
+element.addStyleClass("console-error-level");\r
+break;\r
+}\r
+\r
+if (this.type === WebInspector.ConsoleMessage.MessageType.StartGroup || this.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)\r
+element.addStyleClass("console-group-title");\r
+\r
+if (this.elementsTreeOutline) {\r
+element.addStyleClass("outline-disclosure");\r
+element.appendChild(this.elementsTreeOutline.element);\r
+return element;\r
+}\r
+\r
+element.appendChild(this._formattedMessage);\r
+\r
+if (this.repeatCount > 1)\r
+this._updateRepeatCount();\r
+\r
+return element;\r
+},\r
+\r
+_populateStackTraceTreeElement: function(parentTreeElement)\r
+{\r
+for (var i = 0; i < this._stackTrace.length; i++) {\r
+var frame = this._stackTrace[i];\r
+\r
+var content = document.createElement("div");\r
+var messageTextElement = document.createElement("span");\r
+messageTextElement.className = "console-message-text source-code";\r
+var functionName = frame.functionName || WebInspector.UIString("(anonymous function)");\r
+messageTextElement.appendChild(document.createTextNode(functionName));\r
+content.appendChild(messageTextElement);\r
+\r
+var urlElement = WebInspector.linkifyResourceAsNode(frame.scriptName, "scripts", frame.lineNumber, "console-message-url");\r
+content.appendChild(urlElement);\r
+\r
+var treeElement = new TreeElement(content);\r
+parentTreeElement.appendChild(treeElement);\r
+}\r
+},\r
+\r
+_updateRepeatCount: function() {\r
+if (!this.repeatCountElement) {\r
+this.repeatCountElement = document.createElement("span");\r
+this.repeatCountElement.className = "bubble";\r
+\r
+this._element.insertBefore(this.repeatCountElement, this._element.firstChild);\r
+this._element.addStyleClass("repeated-message");\r
+}\r
+this.repeatCountElement.textContent = this.repeatCount;\r
+},\r
+\r
+toString: function()\r
+{\r
+var sourceString;\r
+switch (this.source) {\r
+case WebInspector.ConsoleMessage.MessageSource.HTML:\r
+sourceString = "HTML";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageSource.WML:\r
+sourceString = "WML";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageSource.XML:\r
+sourceString = "XML";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageSource.JS:\r
+sourceString = "JS";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageSource.CSS:\r
+sourceString = "CSS";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageSource.Other:\r
+sourceString = "Other";\r
+break;\r
+}\r
+\r
+var typeString;\r
+switch (this.type) {\r
+case WebInspector.ConsoleMessage.MessageType.Log:\r
+case WebInspector.ConsoleMessage.MessageType.UncaughtException:\r
+case WebInspector.ConsoleMessage.MessageType.NetworkError:\r
+typeString = "Log";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Object:\r
+typeString = "Object";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Trace:\r
+typeString = "Trace";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed:\r
+case WebInspector.ConsoleMessage.MessageType.StartGroup:\r
+typeString = "Start Group";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.EndGroup:\r
+typeString = "End Group";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Assert:\r
+typeString = "Assert";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageType.Result:\r
+typeString = "Result";\r
+break;\r
+}\r
+\r
+var levelString;\r
+switch (this.level) {\r
+case WebInspector.ConsoleMessage.MessageLevel.Tip:\r
+levelString = "Tip";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Log:\r
+levelString = "Log";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Warning:\r
+levelString = "Warning";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Debug:\r
+levelString = "Debug";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Error:\r
+levelString = "Error";\r
+break;\r
+}\r
+\r
+return sourceString + " " + typeString + " " + levelString + ": " + this._formattedMessage.textContent + "\n" + this.url + " line " + this.line;\r
+},\r
+\r
+isEqual: function(msg)\r
+{\r
+if (!msg)\r
+return false;\r
+\r
+if (this._stackTrace) {\r
+if (!msg._stackTrace)\r
+return false;\r
+var l = this._stackTrace;\r
+var r = msg._stackTrace;\r
+for (var i = 0; i < l.length; i++) {\r
+if (l[i].scriptName !== r[i].scriptName ||\r
+l[i].functionName !== r[i].functionName ||\r
+l[i].lineNumber !== r[i].lineNumber ||\r
+l[i].column !== r[i].column)\r
+return false;\r
+}\r
+}\r
+\r
+return (this.source === msg.source)\r
+&& (this.type === msg.type)\r
+&& (this.level === msg.level)\r
+&& (this.line === msg.line)\r
+&& (this.url === msg.url)\r
+&& (this.message === msg.message)\r
+&& (this._requestId === msg._requestId);\r
+}\r
+}\r
+\r
+\r
+WebInspector.ConsoleMessage.MessageSource = {\r
+HTML: 0,\r
+WML: 1,\r
+XML: 2,\r
+JS: 3,\r
+CSS: 4,\r
+Other: 5\r
+}\r
+\r
+WebInspector.ConsoleMessage.MessageType = {\r
+Log: 0,\r
+Object: 1,\r
+Trace: 2,\r
+StartGroup: 3,\r
+StartGroupCollapsed: 4,\r
+EndGroup: 5,\r
+Assert: 6,\r
+UncaughtException: 7,\r
+NetworkError:8,\r
+Result: 9\r
+}\r
+\r
+WebInspector.ConsoleMessage.MessageLevel = {\r
+Tip: 0,\r
+Log: 1,\r
+Warning: 2,\r
+Error: 3,\r
+Debug: 4\r
+}\r
+\r
+WebInspector.ConsoleCommand = function(command)\r
+{\r
+this.command = command;\r
+}\r
+\r
+WebInspector.ConsoleCommand.prototype = {\r
+toMessageElement: function()\r
+{\r
+var element = document.createElement("div");\r
+element.command = this;\r
+element.className = "console-user-command";\r
+\r
+var commandTextElement = document.createElement("span");\r
+commandTextElement.className = "console-message-text source-code";\r
+commandTextElement.textContent = this.command;\r
+element.appendChild(commandTextElement);\r
+\r
+return element;\r
+}\r
+}\r
+\r
+WebInspector.ConsoleCommandResult = function(result, originatingCommand)\r
+{\r
+var level = (result.isError() ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log);\r
+this.originatingCommand = originatingCommand;\r
+WebInspector.ConsoleMessage.call(this, WebInspector.ConsoleMessage.MessageSource.JS, WebInspector.ConsoleMessage.MessageType.Result, level, -1, null, 1, null, [result]);\r
+}\r
+\r
+WebInspector.ConsoleCommandResult.prototype = {\r
+toMessageElement: function()\r
+{\r
+var element = WebInspector.ConsoleMessage.prototype.toMessageElement.call(this);\r
+element.addStyleClass("console-user-command-result");\r
+return element;\r
+}\r
+}\r
+\r
+WebInspector.ConsoleCommandResult.prototype.__proto__ = WebInspector.ConsoleMessage.prototype;\r
+\r
+WebInspector.ConsoleGroup = function(parentGroup)\r
+{\r
+this.parentGroup = parentGroup;\r
+\r
+var element = document.createElement("div");\r
+element.className = "console-group";\r
+element.group = this;\r
+this.element = element;\r
+\r
+var messagesElement = document.createElement("div");\r
+messagesElement.className = "console-group-messages";\r
+element.appendChild(messagesElement);\r
+this.messagesElement = messagesElement;\r
+}\r
+\r
+WebInspector.ConsoleGroup.prototype = {\r
+addMessage: function(msg)\r
+{\r
+var element = msg.toMessageElement();\r
+\r
+if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup || msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed) {\r
+this.messagesElement.parentNode.insertBefore(element, this.messagesElement);\r
+element.addEventListener("click", this._titleClicked.bind(this), false);\r
+var groupElement = element.enclosingNodeOrSelfWithClass("console-group");\r
+if (groupElement && msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)\r
+groupElement.addStyleClass("collapsed");\r
+} else\r
+this.messagesElement.appendChild(element);\r
+\r
+if (element.previousSibling && msg.originatingCommand && element.previousSibling.command === msg.originatingCommand)\r
+element.previousSibling.addStyleClass("console-adjacent-user-command-result");\r
+},\r
+\r
+_titleClicked: function(event)\r
+{\r
+var groupTitleElement = event.target.enclosingNodeOrSelfWithClass("console-group-title");\r
+if (groupTitleElement) {\r
+var groupElement = groupTitleElement.enclosingNodeOrSelfWithClass("console-group");\r
+if (groupElement)\r
+if (groupElement.hasStyleClass("collapsed"))\r
+groupElement.removeStyleClass("collapsed");\r
+else\r
+groupElement.addStyleClass("collapsed");\r
+groupTitleElement.scrollIntoViewIfNeeded(true);\r
+}\r
+\r
+event.stopPropagation();\r
+event.preventDefault();\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Panel = function(name)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("panel");\r
+this.element.addStyleClass(name);\r
+this._panelName = name;\r
+\r
+WebInspector.settings.installApplicationSetting(this._sidebarWidthSettingName(), undefined);\r
+}\r
+\r
+\r
+WebInspector.Panel.counterRightMargin = 25;\r
+\r
+WebInspector.Panel.prototype = {\r
+get toolbarItem()\r
+{\r
+if (this._toolbarItem)\r
+return this._toolbarItem;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+this._toolbarItem = document.createElement("button");\r
+this._toolbarItem.className = "toolbar-item toggleable";\r
+this._toolbarItem.panel = this;\r
+\r
+this._toolbarItem.addStyleClass(this._panelName);\r
+\r
+var iconElement = document.createElement("div");\r
+iconElement.className = "toolbar-icon";\r
+this._toolbarItem.appendChild(iconElement);\r
+\r
+if ("toolbarItemLabel" in this) {\r
+var labelElement = document.createElement("div");\r
+labelElement.className = "toolbar-label";\r
+labelElement.textContent = this.toolbarItemLabel;\r
+this._toolbarItem.appendChild(labelElement);\r
+}\r
+\r
+return this._toolbarItem;\r
+},\r
+\r
+get name()\r
+{\r
+return this._panelName;\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.View.prototype.show.call(this);\r
+\r
+var statusBarItems = this.statusBarItems;\r
+if (statusBarItems) {\r
+this._statusBarItemContainer = document.createElement("div");\r
+for (var i = 0; i < statusBarItems.length; ++i)\r
+this._statusBarItemContainer.appendChild(statusBarItems[i]);\r
+document.getElementById("main-status-bar").appendChild(this._statusBarItemContainer);\r
+}\r
+\r
+if ("_toolbarItem" in this)\r
+this._toolbarItem.addStyleClass("toggled-on");\r
+\r
+WebInspector.currentFocusElement = this.defaultFocusedElement;\r
+\r
+this.restoreSidebarWidth();\r
+this._restoreScrollPositions();\r
+},\r
+\r
+hide: function()\r
+{\r
+this._storeScrollPositions();\r
+WebInspector.View.prototype.hide.call(this);\r
+\r
+if (this._statusBarItemContainer && this._statusBarItemContainer.parentNode)\r
+this._statusBarItemContainer.parentNode.removeChild(this._statusBarItemContainer);\r
+delete this._statusBarItemContainer;\r
+if ("_toolbarItem" in this)\r
+this._toolbarItem.removeStyleClass("toggled-on");\r
+},\r
+\r
+get defaultFocusedElement()\r
+{\r
+return this.sidebarTreeElement || this.element;\r
+},\r
+\r
+attach: function()\r
+{\r
+if (!this.element.parentNode)\r
+document.getElementById("main-panels").appendChild(this.element);\r
+},\r
+\r
+searchCanceled: function()\r
+{\r
+if (this._searchResults) {\r
+for (var i = 0; i < this._searchResults.length; ++i) {\r
+var view = this._searchResults[i];\r
+if (view.searchCanceled)\r
+view.searchCanceled();\r
+delete view.currentQuery;\r
+}\r
+}\r
+\r
+WebInspector.updateSearchMatchesCount(0, this);\r
+\r
+if (this._currentSearchChunkIntervalIdentifier) {\r
+clearInterval(this._currentSearchChunkIntervalIdentifier);\r
+delete this._currentSearchChunkIntervalIdentifier;\r
+}\r
+\r
+this._totalSearchMatches = 0;\r
+this._currentSearchResultIndex = 0;\r
+this._searchResults = [];\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+\r
+this.searchCanceled(true);\r
+\r
+var searchableViews = this.searchableViews;\r
+if (!searchableViews || !searchableViews.length)\r
+return;\r
+\r
+var parentElement = this.viewsContainerElement;\r
+var visibleView = this.visibleView;\r
+var sortFuction = this.searchResultsSortFunction;\r
+\r
+var matchesCountUpdateTimeout = null;\r
+\r
+function updateMatchesCount()\r
+{\r
+WebInspector.updateSearchMatchesCount(this._totalSearchMatches, this);\r
+matchesCountUpdateTimeout = null;\r
+}\r
+\r
+function updateMatchesCountSoon()\r
+{\r
+if (matchesCountUpdateTimeout)\r
+return;\r
+\r
+matchesCountUpdateTimeout = setTimeout(updateMatchesCount.bind(this), 500);\r
+}\r
+\r
+function finishedCallback(view, searchMatches)\r
+{\r
+if (!searchMatches)\r
+return;\r
+\r
+this._totalSearchMatches += searchMatches;\r
+this._searchResults.push(view);\r
+\r
+if (sortFuction)\r
+this._searchResults.sort(sortFuction);\r
+\r
+if (this.searchMatchFound)\r
+this.searchMatchFound(view, searchMatches);\r
+\r
+updateMatchesCountSoon.call(this);\r
+\r
+if (view === visibleView)\r
+view.jumpToFirstSearchResult();\r
+}\r
+\r
+var i = 0;\r
+var panel = this;\r
+var boundFinishedCallback = finishedCallback.bind(this);\r
+var chunkIntervalIdentifier = null;\r
+\r
+\r
+\r
+\r
+function processChunk()\r
+{\r
+var view = searchableViews[i];\r
+\r
+if (++i >= searchableViews.length) {\r
+if (panel._currentSearchChunkIntervalIdentifier === chunkIntervalIdentifier)\r
+delete panel._currentSearchChunkIntervalIdentifier;\r
+clearInterval(chunkIntervalIdentifier);\r
+}\r
+\r
+if (!view)\r
+return;\r
+\r
+if (view.element.parentNode !== parentElement && view.element.parentNode && parentElement)\r
+view.detach();\r
+\r
+view.currentQuery = query;\r
+view.performSearch(query, boundFinishedCallback);\r
+}\r
+\r
+processChunk();\r
+\r
+chunkIntervalIdentifier = setInterval(processChunk, 25);\r
+this._currentSearchChunkIntervalIdentifier = chunkIntervalIdentifier;\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+if (!this.showView || !this._searchResults || !this._searchResults.length)\r
+return;\r
+\r
+var showFirstResult = false;\r
+\r
+this._currentSearchResultIndex = this._searchResults.indexOf(this.visibleView);\r
+if (this._currentSearchResultIndex === -1) {\r
+this._currentSearchResultIndex = 0;\r
+showFirstResult = true;\r
+}\r
+\r
+var currentView = this._searchResults[this._currentSearchResultIndex];\r
+\r
+if (currentView.showingLastSearchResult()) {\r
+if (++this._currentSearchResultIndex >= this._searchResults.length)\r
+this._currentSearchResultIndex = 0;\r
+currentView = this._searchResults[this._currentSearchResultIndex];\r
+showFirstResult = true;\r
+}\r
+\r
+if (currentView !== this.visibleView) {\r
+this.showView(currentView);\r
+WebInspector.focusSearchField();\r
+}\r
+\r
+if (showFirstResult)\r
+currentView.jumpToFirstSearchResult();\r
+else\r
+currentView.jumpToNextSearchResult();\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+if (!this.showView || !this._searchResults || !this._searchResults.length)\r
+return;\r
+\r
+var showLastResult = false;\r
+\r
+this._currentSearchResultIndex = this._searchResults.indexOf(this.visibleView);\r
+if (this._currentSearchResultIndex === -1) {\r
+this._currentSearchResultIndex = 0;\r
+showLastResult = true;\r
+}\r
+\r
+var currentView = this._searchResults[this._currentSearchResultIndex];\r
+\r
+if (currentView.showingFirstSearchResult()) {\r
+if (--this._currentSearchResultIndex < 0)\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+currentView = this._searchResults[this._currentSearchResultIndex];\r
+showLastResult = true;\r
+}\r
+\r
+if (currentView !== this.visibleView) {\r
+this.showView(currentView);\r
+WebInspector.focusSearchField();\r
+}\r
+\r
+if (showLastResult)\r
+currentView.jumpToLastSearchResult();\r
+else\r
+currentView.jumpToPreviousSearchResult();\r
+},\r
+\r
+createSidebar: function(parentElement, resizerParentElement)\r
+{\r
+if (this.sidebarElement)\r
+return;\r
+\r
+if (!parentElement)\r
+parentElement = this.element;\r
+\r
+if (!resizerParentElement)\r
+resizerParentElement = parentElement;\r
+\r
+this.sidebarElement = document.createElement("div");\r
+this.sidebarElement.className = "sidebar";\r
+parentElement.appendChild(this.sidebarElement);\r
+\r
+this.sidebarResizeElement = document.createElement("div");\r
+this.sidebarResizeElement.className = "sidebar-resizer-vertical";\r
+this.sidebarResizeElement.addEventListener("mousedown", this._startSidebarDragging.bind(this), false);\r
+resizerParentElement.appendChild(this.sidebarResizeElement);\r
+\r
+this.sidebarTreeElement = document.createElement("ol");\r
+this.sidebarTreeElement.className = "sidebar-tree";\r
+this.sidebarElement.appendChild(this.sidebarTreeElement);\r
+\r
+this.sidebarTree = new TreeOutline(this.sidebarTreeElement);\r
+this.sidebarTree.panel = this;\r
+},\r
+\r
+_sidebarWidthSettingName: function()\r
+{\r
+return this._panelName + "SidebarWidth";\r
+},\r
+\r
+_startSidebarDragging: function(event)\r
+{\r
+WebInspector.elementDragStart(this.sidebarResizeElement, this._sidebarDragging.bind(this), this._endSidebarDragging.bind(this), event, "col-resize");\r
+},\r
+\r
+_sidebarDragging: function(event)\r
+{\r
+this.updateSidebarWidth(event.pageX);\r
+\r
+event.preventDefault();\r
+},\r
+\r
+_endSidebarDragging: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+this.saveSidebarWidth();\r
+},\r
+\r
+updateSidebarWidth: function(width)\r
+{\r
+if (!this.sidebarElement)\r
+return;\r
+\r
+if (this.sidebarElement.offsetWidth <= 0) {\r
+\r
+\r
+return;\r
+}\r
+\r
+if (!("_currentSidebarWidth" in this))\r
+this._currentSidebarWidth = this.sidebarElement.offsetWidth;\r
+\r
+if (typeof width === "undefined")\r
+width = this._currentSidebarWidth;\r
+\r
+width = Number.constrain(width, Preferences.minSidebarWidth, window.innerWidth / 2);\r
+\r
+this._currentSidebarWidth = width;\r
+this.setSidebarWidth(width);\r
+\r
+this.updateMainViewWidth(width);\r
+},\r
+\r
+setSidebarWidth: function(width)\r
+{\r
+this.sidebarElement.style.width = width + "px";\r
+this.sidebarResizeElement.style.left = (width - 3) + "px";\r
+},\r
+\r
+restoreSidebarWidth: function()\r
+{\r
+var sidebarWidth = WebInspector.settings[this._sidebarWidthSettingName()];\r
+this.updateSidebarWidth(sidebarWidth);\r
+},\r
+\r
+saveSidebarWidth: function()\r
+{\r
+if (!this.sidebarElement)\r
+return;\r
+WebInspector.settings[this._sidebarWidthSettingName()] = this.sidebarElement.offsetWidth;\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+\r
+},\r
+\r
+resize: function()\r
+{\r
+var visibleView = this.visibleView;\r
+if (visibleView && "resize" in visibleView)\r
+visibleView.resize();\r
+},\r
+\r
+canShowSourceLine: function(url, line)\r
+{\r
+return false;\r
+},\r
+\r
+showSourceLine: function(url, line)\r
+{\r
+return false;\r
+},\r
+\r
+elementsToRestoreScrollPositionsFor: function()\r
+{\r
+return [];\r
+},\r
+\r
+_storeScrollPositions: function()\r
+{\r
+var elements = this.elementsToRestoreScrollPositionsFor();\r
+for (var i = 0; i < elements.length; ++i) {\r
+var container = elements[i];\r
+container._scrollTop = container.scrollTop;\r
+}\r
+},\r
+\r
+_restoreScrollPositions: function()\r
+{\r
+var elements = this.elementsToRestoreScrollPositionsFor();\r
+for (var i = 0; i < elements.length; ++i) {\r
+var container = elements[i];\r
+if (container._scrollTop)\r
+container.scrollTop = container._scrollTop;\r
+}\r
+}\r
+}\r
+\r
+WebInspector.Panel.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TimelineGrid = function()\r
+{\r
+this.element = document.createElement("div");\r
+\r
+this._itemsGraphsElement = document.createElement("div");\r
+this._itemsGraphsElement.id = "resources-graphs";\r
+this.element.appendChild(this._itemsGraphsElement);\r
+\r
+this._dividersElement = document.createElement("div");\r
+this._dividersElement.className = "resources-dividers";\r
+this.element.appendChild(this._dividersElement);\r
+\r
+this._eventDividersElement = document.createElement("div");\r
+this._eventDividersElement.className = "resources-event-dividers";\r
+this.element.appendChild(this._eventDividersElement);\r
+\r
+this._dividersLabelBarElement = document.createElement("div");\r
+this._dividersLabelBarElement.className = "resources-dividers-label-bar";\r
+this.element.appendChild(this._dividersLabelBarElement);\r
+}\r
+\r
+WebInspector.TimelineGrid.prototype = {\r
+get itemsGraphsElement()\r
+{\r
+return this._itemsGraphsElement;\r
+},\r
+\r
+\r
+updateDividers: function(force, calculator, paddingLeft)\r
+{\r
+var dividerCount = Math.round(this._dividersElement.offsetWidth / 64);\r
+var slice = calculator.boundarySpan / dividerCount;\r
+if (!force && this._currentDividerSlice === slice)\r
+return false;\r
+\r
+if (typeof paddingLeft !== "number")\r
+paddingLeft = 0;\r
+this._currentDividerSlice = slice;\r
+\r
+\r
+var divider = this._dividersElement.firstChild;\r
+var dividerLabelBar = this._dividersLabelBarElement.firstChild;\r
+\r
+var dividersLabelBarElementClientWidth = this._dividersLabelBarElement.clientWidth;\r
+var clientWidth = dividersLabelBarElementClientWidth - paddingLeft;\r
+for (var i = paddingLeft ? 0 : 1; i <= dividerCount; ++i) {\r
+if (!divider) {\r
+divider = document.createElement("div");\r
+divider.className = "resources-divider";\r
+this._dividersElement.appendChild(divider);\r
+\r
+dividerLabelBar = document.createElement("div");\r
+dividerLabelBar.className = "resources-divider";\r
+var label = document.createElement("div");\r
+label.className = "resources-divider-label";\r
+dividerLabelBar._labelElement = label;\r
+dividerLabelBar.appendChild(label);\r
+this._dividersLabelBarElement.appendChild(dividerLabelBar);\r
+dividersLabelBarElementClientWidth = this._dividersLabelBarElement.clientWidth;\r
+}\r
+\r
+if (i === (paddingLeft ? 0 : 1)) {\r
+divider.addStyleClass("first");\r
+dividerLabelBar.addStyleClass("first");\r
+} else {\r
+divider.removeStyleClass("first");\r
+dividerLabelBar.removeStyleClass("first");\r
+}\r
+\r
+if (i === dividerCount) {\r
+divider.addStyleClass("last");\r
+dividerLabelBar.addStyleClass("last");\r
+} else {\r
+divider.removeStyleClass("last");\r
+dividerLabelBar.removeStyleClass("last");\r
+}\r
+\r
+var left = paddingLeft + clientWidth * (i / dividerCount);\r
+var percentLeft = 100 * left / dividersLabelBarElementClientWidth;\r
+this._setDividerAndBarLeft(divider, dividerLabelBar, percentLeft);\r
+\r
+if (!isNaN(slice))\r
+dividerLabelBar._labelElement.textContent = calculator.formatValue(slice * i);\r
+else\r
+dividerLabelBar._labelElement.textContent = "";\r
+\r
+divider = divider.nextSibling;\r
+dividerLabelBar = dividerLabelBar.nextSibling;\r
+}\r
+\r
+\r
+while (divider) {\r
+var nextDivider = divider.nextSibling;\r
+this._dividersElement.removeChild(divider);\r
+divider = nextDivider;\r
+}\r
+while (dividerLabelBar) {\r
+var nextDivider = dividerLabelBar.nextSibling;\r
+this._dividersLabelBarElement.removeChild(dividerLabelBar);\r
+dividerLabelBar = nextDivider;\r
+}\r
+return true;\r
+},\r
+\r
+_setDividerAndBarLeft: function(divider, dividerLabelBar, percentLeft)\r
+{\r
+var percentStyleLeft = parseFloat(divider.style.left);\r
+if (!isNaN(percentStyleLeft) && Math.abs(percentStyleLeft - percentLeft) < 0.1)\r
+return;\r
+divider.style.left = percentLeft + "%";\r
+dividerLabelBar.style.left = percentLeft + "%";\r
+},\r
+\r
+addEventDivider: function(divider)\r
+{\r
+this._eventDividersElement.appendChild(divider);\r
+},\r
+\r
+addEventDividers: function(dividers)\r
+{\r
+this.element.removeChild(this._eventDividersElement);\r
+for (var i = 0; i < dividers.length; ++i)\r
+if (dividers[i])\r
+this._eventDividersElement.appendChild(dividers[i]);\r
+this.element.appendChild(this._eventDividersElement);\r
+},\r
+\r
+removeEventDividers: function()\r
+{\r
+this._eventDividersElement.removeChildren();\r
+},\r
+\r
+hideEventDividers: function()\r
+{\r
+this._eventDividersElement.addStyleClass("hidden");\r
+},\r
+\r
+showEventDividers: function()\r
+{\r
+this._eventDividersElement.removeStyleClass("hidden");\r
+},\r
+\r
+setScrollAndDividerTop: function(scrollTop, dividersTop)\r
+{\r
+this._dividersElement.style.top = scrollTop + "px";\r
+this._eventDividersElement.style.top = scrollTop + "px";\r
+this._dividersLabelBarElement.style.top = dividersTop + "px";\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+WebInspector.Resource = function(identifier, url)\r
+{\r
+this.identifier = identifier;\r
+this.url = url;\r
+this._startTime = -1;\r
+this._endTime = -1;\r
+this._requestMethod = "";\r
+this._category = WebInspector.resourceCategories.other;\r
+this._pendingContentCallbacks = [];\r
+}\r
+\r
+\r
+WebInspector.Resource.Type = {\r
+Document:   0,\r
+Stylesheet: 1,\r
+Image:      2,\r
+Font:       3,\r
+Script:     4,\r
+XHR:        5,\r
+Media:      6,\r
+WebSocket:  7,\r
+Other:      8,\r
+\r
+isTextType: function(type)\r
+{\r
+return (type === this.Document) || (type === this.Stylesheet) || (type === this.Script) || (type === this.XHR);\r
+},\r
+\r
+toUIString: function(type)\r
+{\r
+return WebInspector.UIString(WebInspector.Resource.Type.toString(type));\r
+},\r
+\r
+\r
+\r
+toString: function(type)\r
+{\r
+switch (type) {\r
+case this.Document:\r
+return "document";\r
+case this.Stylesheet:\r
+return "stylesheet";\r
+case this.Image:\r
+return "image";\r
+case this.Font:\r
+return "font";\r
+case this.Script:\r
+return "script";\r
+case this.XHR:\r
+return "xhr";\r
+case this.Media:\r
+return "media";\r
+case this.WebSocket:\r
+return "websocket";\r
+case this.Other:\r
+default:\r
+return "other";\r
+}\r
+}\r
+}\r
+\r
+WebInspector.Resource.prototype = {\r
+get url()\r
+{\r
+return this._url;\r
+},\r
+\r
+set url(x)\r
+{\r
+if (this._url === x)\r
+return;\r
+\r
+this._url = x;\r
+delete this._parsedQueryParameters;\r
+\r
+var parsedURL = x.asParsedURL();\r
+this.domain = parsedURL ? parsedURL.host : "";\r
+this.path = parsedURL ? parsedURL.path : "";\r
+this.lastPathComponent = "";\r
+if (parsedURL && parsedURL.path) {\r
+\r
+var path = parsedURL.path;\r
+var indexOfQuery = path.indexOf("?");\r
+if (indexOfQuery !== -1)\r
+path = path.substring(0, indexOfQuery);\r
+\r
+\r
+var lastSlashIndex = path.lastIndexOf("/");\r
+if (lastSlashIndex !== -1)\r
+this.lastPathComponent = path.substring(lastSlashIndex + 1);\r
+}\r
+this.lastPathComponentLowerCase = this.lastPathComponent.toLowerCase();\r
+},\r
+\r
+get documentURL()\r
+{\r
+return this._documentURL;\r
+},\r
+\r
+set documentURL(x)\r
+{\r
+this._documentURL = x;\r
+},\r
+\r
+get displayName()\r
+{\r
+if (this._displayName)\r
+return this._displayName;\r
+this._displayName = this.lastPathComponent;\r
+if (!this._displayName)\r
+this._displayName = this.displayDomain;\r
+if (!this._displayName && this.url)\r
+this._displayName = this.url.trimURL(WebInspector.mainResource ? WebInspector.mainResource.domain : "");\r
+if (this._displayName === "/")\r
+this._displayName = this.url;\r
+return this._displayName;\r
+},\r
+\r
+get displayDomain()\r
+{\r
+\r
+if (this.domain && (!WebInspector.mainResource || (WebInspector.mainResource && this.domain !== WebInspector.mainResource.domain)))\r
+return this.domain;\r
+return "";\r
+},\r
+\r
+get startTime()\r
+{\r
+return this._startTime || -1;\r
+},\r
+\r
+set startTime(x)\r
+{\r
+this._startTime = x;\r
+},\r
+\r
+get responseReceivedTime()\r
+{\r
+return this._responseReceivedTime || -1;\r
+},\r
+\r
+set responseReceivedTime(x)\r
+{\r
+this._responseReceivedTime = x;\r
+},\r
+\r
+get endTime()\r
+{\r
+return this._endTime || -1;\r
+},\r
+\r
+set endTime(x)\r
+{\r
+if (this.timing && this.timing.requestTime) {\r
+\r
+this._endTime = Math.max(x, this.responseReceivedTime);\r
+} else {\r
+\r
+this._endTime = x;\r
+if (this._responseReceivedTime > x)\r
+this._responseReceivedTime = x;\r
+}\r
+},\r
+\r
+get duration()\r
+{\r
+if (this._endTime === -1 || this._startTime === -1)\r
+return -1;\r
+return this._endTime - this._startTime;\r
+},\r
+\r
+get latency()\r
+{\r
+if (this._responseReceivedTime === -1 || this._startTime === -1)\r
+return -1;\r
+return this._responseReceivedTime - this._startTime;\r
+},\r
+\r
+get receiveDuration()\r
+{\r
+if (this._endTime === -1 || this._responseReceivedTime === -1)\r
+return -1;\r
+return this._endTime - this._responseReceivedTime;\r
+},\r
+\r
+get resourceSize()\r
+{\r
+return this._resourceSize || 0;\r
+},\r
+\r
+set resourceSize(x)\r
+{\r
+this._resourceSize = x;\r
+},\r
+\r
+get transferSize()\r
+{\r
+\r
+return this.cached ? 0 : Number(this.responseHeaders["Content-Length"] || this.resourceSize || 0);\r
+},\r
+\r
+get expectedContentLength()\r
+{\r
+return this._expectedContentLength || 0;\r
+},\r
+\r
+set expectedContentLength(x)\r
+{\r
+this._expectedContentLength = x;\r
+},\r
+\r
+get finished()\r
+{\r
+return this._finished;\r
+},\r
+\r
+set finished(x)\r
+{\r
+if (this._finished === x)\r
+return;\r
+\r
+this._finished = x;\r
+\r
+if (x) {\r
+this._checkWarnings();\r
+this.dispatchEventToListeners("finished");\r
+if (this._pendingContentCallbacks.length)\r
+this._innerRequestContent();\r
+}\r
+},\r
+\r
+get failed()\r
+{\r
+return this._failed;\r
+},\r
+\r
+set failed(x)\r
+{\r
+this._failed = x;\r
+},\r
+\r
+get category()\r
+{\r
+return this._category;\r
+},\r
+\r
+set category(x)\r
+{\r
+this._category = x;\r
+},\r
+\r
+get cached()\r
+{\r
+return this._cached;\r
+},\r
+\r
+set cached(x)\r
+{\r
+this._cached = x;\r
+if (x)\r
+delete this._timing;\r
+},\r
+\r
+\r
+get timing()\r
+{\r
+return this._timing;\r
+},\r
+\r
+set timing(x)\r
+{\r
+if (x && !this._cached) {\r
+\r
+\r
+this._startTime = x.requestTime;\r
+this._responseReceivedTime = x.requestTime + x.receiveHeadersEnd / 1000.0;\r
+\r
+this._timing = x;\r
+this.dispatchEventToListeners("timing changed");\r
+}\r
+},\r
+\r
+get mimeType()\r
+{\r
+return this._mimeType;\r
+},\r
+\r
+set mimeType(x)\r
+{\r
+this._mimeType = x;\r
+},\r
+\r
+get type()\r
+{\r
+return this._type;\r
+},\r
+\r
+set type(x)\r
+{\r
+if (this._type === x)\r
+return;\r
+\r
+this._type = x;\r
+\r
+switch (x) {\r
+case WebInspector.Resource.Type.Document:\r
+this.category = WebInspector.resourceCategories.documents;\r
+break;\r
+case WebInspector.Resource.Type.Stylesheet:\r
+this.category = WebInspector.resourceCategories.stylesheets;\r
+break;\r
+case WebInspector.Resource.Type.Script:\r
+this.category = WebInspector.resourceCategories.scripts;\r
+break;\r
+case WebInspector.Resource.Type.Image:\r
+this.category = WebInspector.resourceCategories.images;\r
+break;\r
+case WebInspector.Resource.Type.Font:\r
+this.category = WebInspector.resourceCategories.fonts;\r
+break;\r
+case WebInspector.Resource.Type.XHR:\r
+this.category = WebInspector.resourceCategories.xhr;\r
+break;\r
+case WebInspector.Resource.Type.WebSocket:\r
+this.category = WebInspector.resourceCategories.websockets;\r
+break;\r
+case WebInspector.Resource.Type.Other:\r
+default:\r
+this.category = WebInspector.resourceCategories.other;\r
+break;\r
+}\r
+},\r
+\r
+get requestHeaders()\r
+{\r
+return this._requestHeaders || {};\r
+},\r
+\r
+set requestHeaders(x)\r
+{\r
+this._requestHeaders = x;\r
+delete this._sortedRequestHeaders;\r
+delete this._requestCookies;\r
+\r
+this.dispatchEventToListeners("requestHeaders changed");\r
+},\r
+\r
+get sortedRequestHeaders()\r
+{\r
+if (this._sortedRequestHeaders !== undefined)\r
+return this._sortedRequestHeaders;\r
+\r
+this._sortedRequestHeaders = [];\r
+for (var key in this.requestHeaders)\r
+this._sortedRequestHeaders.push({header: key, value: this.requestHeaders[key]});\r
+this._sortedRequestHeaders.sort(function(a,b) { return a.header.localeCompare(b.header) });\r
+\r
+return this._sortedRequestHeaders;\r
+},\r
+\r
+requestHeaderValue: function(headerName)\r
+{\r
+return this._headerValue(this.requestHeaders, headerName);\r
+},\r
+\r
+get requestCookies()\r
+{\r
+if (!this._requestCookies)\r
+this._requestCookies = WebInspector.CookieParser.parseCookie(this.requestHeaderValue("Cookie"));\r
+return this._requestCookies;\r
+},\r
+\r
+get requestFormData()\r
+{\r
+return this._requestFormData;\r
+},\r
+\r
+set requestFormData(x)\r
+{\r
+this._requestFormData = x;\r
+delete this._parsedFormParameters;\r
+},\r
+\r
+get responseHeaders()\r
+{\r
+return this._responseHeaders || {};\r
+},\r
+\r
+set responseHeaders(x)\r
+{\r
+this._responseHeaders = x;\r
+delete this._sortedResponseHeaders;\r
+delete this._responseCookies;\r
+\r
+this.dispatchEventToListeners("responseHeaders changed");\r
+},\r
+\r
+get sortedResponseHeaders()\r
+{\r
+if (this._sortedResponseHeaders !== undefined)\r
+return this._sortedResponseHeaders;\r
+\r
+this._sortedResponseHeaders = [];\r
+for (var key in this.responseHeaders)\r
+this._sortedResponseHeaders.push({header: key, value: this.responseHeaders[key]});\r
+this._sortedResponseHeaders.sort(function(a,b) { return a.header.localeCompare(b.header) });\r
+\r
+return this._sortedResponseHeaders;\r
+},\r
+\r
+responseHeaderValue: function(headerName)\r
+{\r
+return this._headerValue(this.responseHeaders, headerName);\r
+},\r
+\r
+get responseCookies()\r
+{\r
+if (!this._responseCookies)\r
+this._responseCookies = WebInspector.CookieParser.parseSetCookie(this.responseHeaderValue("Set-Cookie"));\r
+return this._responseCookies;\r
+},\r
+\r
+get queryParameters()\r
+{\r
+if (this._parsedQueryParameters)\r
+return this._parsedQueryParameters;\r
+var queryString = this.url.split("?", 2)[1];\r
+if (!queryString)\r
+return;\r
+this._parsedQueryParameters = this._parseParameters(queryString);\r
+return this._parsedQueryParameters;\r
+},\r
+\r
+get formParameters()\r
+{\r
+if (this._parsedFormParameters)\r
+return this._parsedFormParameters;\r
+if (!this.requestFormData)\r
+return;\r
+var requestContentType = this.requestHeaderValue("Content-Type");\r
+if (!requestContentType || !requestContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i))\r
+return;\r
+this._parsedFormParameters = this._parseParameters(this.requestFormData);\r
+return this._parsedFormParameters;\r
+},\r
+\r
+_parseParameters: function(queryString)\r
+{\r
+function parseNameValue(pair)\r
+{\r
+var parameter = {};\r
+var splitPair = pair.split("=", 2);\r
+\r
+parameter.name = splitPair[0];\r
+if (splitPair.length === 1)\r
+parameter.value = "";\r
+else\r
+parameter.value = splitPair[1];\r
+return parameter;\r
+}\r
+return queryString.split("&").map(parseNameValue);\r
+},\r
+\r
+_headerValue: function(headers, headerName)\r
+{\r
+headerName = headerName.toLowerCase();\r
+for (var header in headers) {\r
+if (header.toLowerCase() === headerName)\r
+return headers[header];\r
+}\r
+},\r
+\r
+get errors()\r
+{\r
+return this._errors || 0;\r
+},\r
+\r
+set errors(x)\r
+{\r
+this._errors = x;\r
+this.dispatchEventToListeners("errors-warnings-updated");\r
+},\r
+\r
+get warnings()\r
+{\r
+return this._warnings || 0;\r
+},\r
+\r
+set warnings(x)\r
+{\r
+this._warnings = x;\r
+this.dispatchEventToListeners("errors-warnings-updated");\r
+},\r
+\r
+clearErrorsAndWarnings: function()\r
+{\r
+this._warnings = 0;\r
+this._errors = 0;\r
+this.dispatchEventToListeners("errors-warnings-updated");\r
+},\r
+\r
+_mimeTypeIsConsistentWithType: function()\r
+{\r
+\r
+\r
+\r
+if (this.statusCode >= 400)\r
+return true;\r
+\r
+if (typeof this.type === "undefined"\r
+|| this.type === WebInspector.Resource.Type.Other\r
+|| this.type === WebInspector.Resource.Type.XHR\r
+|| this.type === WebInspector.Resource.Type.WebSocket)\r
+return true;\r
+\r
+if (!this.mimeType)\r
+return true; \r
+\r
+if (this.mimeType in WebInspector.MIMETypes)\r
+return this.type in WebInspector.MIMETypes[this.mimeType];\r
+\r
+return false;\r
+},\r
+\r
+_checkWarnings: function()\r
+{\r
+for (var warning in WebInspector.Warnings)\r
+this._checkWarning(WebInspector.Warnings[warning]);\r
+},\r
+\r
+_checkWarning: function(warning)\r
+{\r
+var msg;\r
+switch (warning.id) {\r
+case WebInspector.Warnings.IncorrectMIMEType.id:\r
+if (!this._mimeTypeIsConsistentWithType())\r
+msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other,\r
+WebInspector.ConsoleMessage.MessageType.Log,\r
+WebInspector.ConsoleMessage.MessageLevel.Warning,\r
+-1,\r
+this.url,\r
+1,\r
+String.sprintf(WebInspector.Warnings.IncorrectMIMEType.message, WebInspector.Resource.Type.toUIString(this.type), this.mimeType),\r
+null,\r
+null);\r
+break;\r
+}\r
+\r
+if (msg)\r
+WebInspector.console.addMessage(msg);\r
+},\r
+\r
+get content()\r
+{\r
+return this._content;\r
+},\r
+\r
+get contentTimestamp()\r
+{\r
+return this._contentTimestamp;\r
+},\r
+\r
+setInitialContent: function(content)\r
+{\r
+this._content = content;\r
+},\r
+\r
+isLocallyModified: function()\r
+{\r
+return !!this._baseRevision;\r
+},\r
+\r
+setContent: function(newContent, onRevert)\r
+{\r
+var revisionResource = new WebInspector.Resource(null, this.url);\r
+revisionResource.type = this.type;\r
+revisionResource.loader = this.loader;\r
+revisionResource.timestamp = this.timestamp;\r
+revisionResource._content = this._content;\r
+revisionResource._actualResource = this;\r
+revisionResource._fireOnRevert = onRevert;\r
+\r
+if (this.finished)\r
+revisionResource.finished = true;\r
+else {\r
+function finished()\r
+{\r
+this.removeEventListener("finished", finished);\r
+revisionResource.finished = true;\r
+}\r
+this.addEventListener("finished", finished.bind(this));\r
+}\r
+\r
+if (!this._baseRevision)\r
+this._baseRevision = revisionResource;\r
+else\r
+revisionResource._baseRevision = this._baseRevision;\r
+\r
+var data = { revision: revisionResource };\r
+this._content = newContent;\r
+this.timestamp = new Date();\r
+this.dispatchEventToListeners("content-changed", data);\r
+},\r
+\r
+revertToThis: function()\r
+{\r
+if (!this._actualResource || !this._fireOnRevert)\r
+return;\r
+\r
+function callback(content)\r
+{\r
+if (content)\r
+this._fireOnRevert(content);\r
+}\r
+this.requestContent(callback.bind(this));\r
+},\r
+\r
+get baseRevision()\r
+{\r
+return this._baseRevision;\r
+},\r
+\r
+requestContent: function(callback)\r
+{\r
+if (this._content) {\r
+callback(this._content, this._contentEncoded);\r
+return;\r
+}\r
+this._pendingContentCallbacks.push(callback);\r
+if (this.finished)\r
+this._innerRequestContent();\r
+},\r
+\r
+get contentURL()\r
+{\r
+const maxDataUrlSize = 1024 * 1024;\r
+\r
+if (!this._content || this._content.length > maxDataUrlSize)\r
+return this.url;\r
+\r
+return "data:" + this.mimeType + (this._contentEncoded ? ";base64," : ",") + this._content;\r
+},\r
+\r
+_innerRequestContent: function()\r
+{\r
+if (this._contentRequested)\r
+return;\r
+this._contentRequested = true;\r
+this._contentEncoded = !WebInspector.Resource.Type.isTextType(this.type);\r
+\r
+function onResourceContent(data)\r
+{\r
+this._content = data;\r
+var callbacks = this._pendingContentCallbacks.slice();\r
+for (var i = 0; i < callbacks.length; ++i)\r
+callbacks[i](this._content, this._contentEncoded);\r
+this._pendingContentCallbacks.length = 0;\r
+delete this._contentRequested;\r
+}\r
+WebInspector.ResourceManager.requestContent(this, this._contentEncoded, onResourceContent.bind(this));\r
+}\r
+}\r
+\r
+WebInspector.Resource.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceManager = function()\r
+{\r
+this._resourcesById = {};\r
+this._resourcesByURL = {};\r
+this._resourceTreeModel = new WebInspector.ResourceTreeModel();\r
+InspectorBackend.cachedResources(this._processCachedResources.bind(this));\r
+InspectorBackend.registerDomainDispatcher("Resources", this);\r
+}\r
+\r
+WebInspector.ResourceManager.prototype = {\r
+identifierForInitialRequest: function(identifier, url, loader, callStack)\r
+{\r
+var resource = this._createResource(identifier, url, loader, callStack);\r
+\r
+\r
+this._bindResourceURL(resource);\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+WebInspector.panels.audits.resourceStarted(resource);\r
+},\r
+\r
+_createResource: function(identifier, url, loader, stackTrace)\r
+{\r
+var resource = new WebInspector.Resource(identifier, url);\r
+resource.loader = loader;\r
+if (loader)\r
+resource.documentURL = loader.url;\r
+resource.stackTrace = stackTrace;\r
+\r
+this._resourcesById[identifier] = resource;\r
+return resource;\r
+},\r
+\r
+willSendRequest: function(identifier, time, request, redirectResponse)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+\r
+\r
+var isRedirect = !redirectResponse.isNull && request.url.length;\r
+if (isRedirect) {\r
+resource.endTime = time;\r
+this.didReceiveResponse(identifier, time, "Other", redirectResponse);\r
+resource = this._appendRedirect(resource.identifier, request.url);\r
+}\r
+\r
+this._updateResourceWithRequest(resource, request);\r
+resource.startTime = time;\r
+\r
+if (isRedirect) {\r
+WebInspector.panels.network.refreshResource(resource);\r
+WebInspector.panels.audits.resourceStarted(resource);\r
+} else \r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+_updateResourceWithRequest: function(resource, request)\r
+{\r
+resource.requestMethod = request.httpMethod;\r
+resource.requestHeaders = request.httpHeaderFields;\r
+resource.requestFormData = request.requestFormData;\r
+},\r
+\r
+_appendRedirect: function(identifier, redirectURL)\r
+{\r
+var originalResource = this._resourcesById[identifier];\r
+originalResource.identifier = null;\r
+\r
+var newResource = this._createResource(identifier, redirectURL, originalResource.loader, originalResource.stackTrace);\r
+newResource.redirects = originalResource.redirects || [];\r
+delete originalResource.redirects;\r
+newResource.redirects.push(originalResource);\r
+return newResource;\r
+},\r
+\r
+markResourceAsCached: function(identifier)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.cached = true;\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+didReceiveResponse: function(identifier, time, resourceType, response)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.responseReceivedTime = time;\r
+resource.type = WebInspector.Resource.Type[resourceType];\r
+\r
+this._updateResourceWithResponse(resource, response);\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+this._resourceTreeModel.addResourceToFrame(resource.loader.frameId, resource);\r
+},\r
+\r
+_updateResourceWithResponse: function(resource, response)\r
+{\r
+if (resource.isNull)\r
+return;\r
+\r
+resource.mimeType = response.mimeType;\r
+resource.expectedContentLength = response.expectedContentLength;\r
+resource.textEncodingName = response.textEncodingName;\r
+resource.suggestedFilename = response.suggestedFilename;\r
+resource.statusCode = response.httpStatusCode;\r
+resource.statusText = response.httpStatusText;\r
+\r
+resource.responseHeaders = response.httpHeaderFields;\r
+resource.connectionReused = response.connectionReused;\r
+resource.connectionID = response.connectionID;\r
+\r
+if (response.wasCached)\r
+resource.cached = true;\r
+else\r
+resource.timing = response.timing;\r
+\r
+if (response.loadInfo) {\r
+if (response.loadInfo.httpStatusCode)\r
+resource.statusCode = response.loadInfo.httpStatusCode;\r
+if (response.loadInfo.httpStatusText)\r
+resource.statusText = response.loadInfo.httpStatusText;\r
+resource.requestHeaders = response.loadInfo.requestHeaders;\r
+resource.responseHeaders = response.loadInfo.responseHeaders;\r
+}\r
+},\r
+\r
+didReceiveContentLength: function(identifier, time, lengthReceived)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.resourceSize += lengthReceived;\r
+resource.endTime = time;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+didFinishLoading: function(identifier, finishTime)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.endTime = finishTime;\r
+resource.finished = true;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+WebInspector.panels.audits.resourceFinished(resource);\r
+WebInspector.extensionServer.notifyResourceFinished(resource);\r
+delete this._resourcesById[identifier];\r
+},\r
+\r
+didFailLoading: function(identifier, time, localizedDescription)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.failed = true;\r
+resource.localizedFailDescription = localizedDescription;\r
+resource.finished = true;\r
+resource.endTime = time;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+WebInspector.panels.audits.resourceFinished(resource);\r
+WebInspector.extensionServer.notifyResourceFinished(resource);\r
+delete this._resourcesById[identifier];\r
+},\r
+\r
+didLoadResourceFromMemoryCache: function(time, cachedResource)\r
+{\r
+var resource = this._createResource(null, cachedResource.url, cachedResource.loader);\r
+this._updateResourceWithCachedResource(resource, cachedResource);\r
+resource.cached = true;\r
+resource.requestMethod = "GET";\r
+resource.startTime = resource.responseReceivedTime = resource.endTime = time;\r
+resource.finished = true;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+WebInspector.panels.audits.resourceStarted(resource);\r
+WebInspector.panels.audits.resourceFinished(resource);\r
+this._resourceTreeModel.addResourceToFrame(resource.loader.frameId, resource);\r
+},\r
+\r
+_updateResourceWithCachedResource: function(resource, cachedResource)\r
+{\r
+resource.type = WebInspector.Resource.Type[cachedResource.type];\r
+resource.resourceSize = cachedResource.encodedSize;\r
+this._updateResourceWithResponse(resource, cachedResource.response);\r
+},\r
+\r
+setInitialContent: function(identifier, sourceString, type)\r
+{\r
+var resource = WebInspector.panels.network.resources[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.type = WebInspector.Resource.Type[type];\r
+resource.setInitialContent(sourceString);\r
+WebInspector.panels.resources.refreshResource(resource);\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+didCommitLoadForFrame: function(frame, loader)\r
+{\r
+this._resourceTreeModel.didCommitLoadForFrame(frame, loader);\r
+if (!frame.parentId) {\r
+var mainResource = this.resourceForURL(frame.url);\r
+if (mainResource) {\r
+WebInspector.mainResource = mainResource;\r
+mainResource.isMainResource = true;\r
+}\r
+}\r
+},\r
+\r
+frameDetachedFromParent: function(frameId)\r
+{\r
+this._resourceTreeModel.frameDetachedFromParent(frameId);\r
+},\r
+\r
+didCreateWebSocket: function(identifier, requestURL)\r
+{\r
+var resource = this._createResource(identifier, requestURL);\r
+resource.type = WebInspector.Resource.Type.WebSocket;\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+willSendWebSocketHandshakeRequest: function(identifier, time, request)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.requestMethod = "GET";\r
+resource.requestHeaders = request.webSocketHeaderFields;\r
+resource.webSocketRequestKey3 = request.webSocketRequestKey3;\r
+resource.startTime = time;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+didReceiveWebSocketHandshakeResponse: function(identifier, time, response)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+\r
+resource.statusCode = response.statusCode;\r
+resource.statusText = response.statusText;\r
+resource.responseHeaders = response.webSocketHeaderFields;\r
+resource.webSocketChallengeResponse = response.webSocketChallengeResponse;\r
+resource.responseReceivedTime = time;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+didCloseWebSocket: function(identifier, time)\r
+{\r
+var resource = this._resourcesById[identifier];\r
+if (!resource)\r
+return;\r
+resource.endTime = time;\r
+\r
+WebInspector.panels.network.refreshResource(resource);\r
+},\r
+\r
+_processCachedResources: function(mainFramePayload)\r
+{\r
+var mainResource = this._addFramesRecursively(mainFramePayload);\r
+WebInspector.mainResource = mainResource;\r
+mainResource.isMainResource = true;\r
+},\r
+\r
+_addFramesRecursively: function(framePayload)\r
+{\r
+var frameResource = this._createResource(null, framePayload.resource.url, framePayload.resource.loader);\r
+this._updateResourceWithRequest(frameResource, framePayload.resource.request);\r
+this._updateResourceWithResponse(frameResource, framePayload.resource.response);\r
+frameResource.type = WebInspector.Resource.Type["Document"];\r
+frameResource.finished = true;\r
+this._bindResourceURL(frameResource);\r
+\r
+this._resourceTreeModel.addOrUpdateFrame(framePayload);\r
+this._resourceTreeModel.addResourceToFrame(framePayload.id, frameResource);\r
+\r
+for (var i = 0; framePayload.children && i < framePayload.children.length; ++i)\r
+this._addFramesRecursively(framePayload.children[i]);\r
+\r
+if (!framePayload.subresources)\r
+return;\r
+\r
+for (var i = 0; i < framePayload.subresources.length; ++i) {\r
+var cachedResource = framePayload.subresources[i];\r
+var resource = this._createResource(null, cachedResource.url, cachedResource.loader);\r
+this._updateResourceWithCachedResource(resource, cachedResource);\r
+resource.finished = true;\r
+this._bindResourceURL(resource);\r
+this._resourceTreeModel.addResourceToFrame(framePayload.id, resource);\r
+}\r
+return frameResource;\r
+},\r
+\r
+resourceForURL: function(url)\r
+{\r
+\r
+var entry = this._resourcesByURL[url];\r
+if (entry instanceof Array)\r
+return entry[0];\r
+return entry;\r
+},\r
+\r
+addConsoleMessage: function(msg)\r
+{\r
+var resource = this.resourceForURL(msg.url);\r
+if (!resource)\r
+return;\r
+\r
+switch (msg.level) {\r
+case WebInspector.ConsoleMessage.MessageLevel.Warning:\r
+resource.warnings += msg.repeatDelta;\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Error:\r
+resource.errors += msg.repeatDelta;\r
+break;\r
+}\r
+\r
+var view = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+if (view.addMessage)\r
+view.addMessage(msg);\r
+},\r
+\r
+clearConsoleMessages: function()\r
+{\r
+function callback(resource)\r
+{\r
+resource.clearErrorsAndWarnings();\r
+}\r
+this._resourceTreeModel.forAllResources(callback);\r
+},\r
+\r
+forAllResources: function(callback)\r
+{\r
+this._resourceTreeModel.forAllResources(callback);\r
+},\r
+\r
+_bindResourceURL: function(resource)\r
+{\r
+var resourceForURL = this._resourcesByURL[resource.url];\r
+if (!resourceForURL)\r
+this._resourcesByURL[resource.url] = resource;\r
+else if (resourceForURL instanceof Array)\r
+resourceForURL.push(resource);\r
+else\r
+this._resourcesByURL[resource.url] = [resourceForURL, resource];\r
+},\r
+\r
+_unbindResourceURL: function(resource)\r
+{\r
+var resourceForURL = this._resourcesByURL[resource.url];\r
+if (!resourceForURL)\r
+return;\r
+\r
+if (resourceForURL instanceof Array) {\r
+resourceForURL.remove(resource, true);\r
+if (resourceForURL.length === 1)\r
+this._resourcesByURL[resource.url] = resourceForURL[0];\r
+return;\r
+}\r
+\r
+delete this._resourcesByURL[resource.url];\r
+},\r
+\r
+updateDOMStorage: function(storageId)\r
+{\r
+WebInspector.panels.resources.updateDOMStorage(storageId);\r
+},\r
+\r
+updateApplicationCacheStatus: function(status)\r
+{\r
+WebInspector.panels.resources.updateApplicationCacheStatus(status);\r
+},\r
+\r
+didGetFileSystemPath: function(root, type, origin)\r
+{\r
+WebInspector.panels.resources.updateFileSystemPath(root, type, origin);\r
+},\r
+\r
+didGetFileSystemError: function(type, origin)\r
+{\r
+WebInspector.panels.resources.updateFileSystemError(type, origin);\r
+},\r
+\r
+didGetFileSystemDisabled: function()\r
+{\r
+WebInspector.panels.resources.setFileSystemDisabled();\r
+},\r
+\r
+updateNetworkState: function(isNowOnline)\r
+{\r
+WebInspector.panels.resources.updateNetworkState(isNowOnline);\r
+},\r
+\r
+addDOMStorage: function(payload)\r
+{\r
+if (!WebInspector.panels.resources)\r
+return;\r
+var domStorage = new WebInspector.DOMStorage(\r
+payload.id,\r
+payload.host,\r
+payload.isLocalStorage);\r
+WebInspector.panels.resources.addDOMStorage(domStorage);\r
+},\r
+\r
+selectDOMStorage: function(o)\r
+{\r
+WebInspector.showPanel("resources");\r
+WebInspector.panels.resources.selectDOMStorage(o);\r
+},\r
+\r
+addDatabase: function(payload)\r
+{\r
+if (!WebInspector.panels.resources)\r
+return;\r
+var database = new WebInspector.Database(\r
+payload.id,\r
+payload.domain,\r
+payload.name,\r
+payload.version);\r
+WebInspector.panels.resources.addDatabase(database);\r
+},\r
+\r
+selectDatabase: function(o)\r
+{\r
+WebInspector.showPanel("resources");\r
+WebInspector.panels.resources.selectDatabase(o);\r
+},\r
+\r
+sqlTransactionSucceeded: function(transactionId, columnNames, values)\r
+{\r
+var callback = WebInspector.Database.successCallbacks[transactionId];\r
+if (!callback)\r
+return;\r
+delete WebInspector.Database.successCallbacks[transactionId];\r
+callback(columnNames, values);\r
+},\r
+\r
+sqlTransactionFailed: function(transactionId, errorObj)\r
+{\r
+var callback = WebInspector.Database.errorCallbacks[transactionId];\r
+if (!callback)\r
+return;\r
+delete WebInspector.Database.errorCallbacks[transactionId];\r
+callback(errorObj);\r
+}\r
+}\r
+\r
+WebInspector.ResourceManager.createResourceView = function(resource)\r
+{\r
+switch (resource.category) {\r
+case WebInspector.resourceCategories.documents:\r
+case WebInspector.resourceCategories.stylesheets:\r
+case WebInspector.resourceCategories.scripts:\r
+case WebInspector.resourceCategories.xhr:\r
+return new WebInspector.SourceView(resource);\r
+case WebInspector.resourceCategories.images:\r
+return new WebInspector.ImageView(resource);\r
+case WebInspector.resourceCategories.fonts:\r
+return new WebInspector.FontView(resource);\r
+default:\r
+return new WebInspector.ResourceView(resource);\r
+}\r
+}\r
+\r
+WebInspector.ResourceManager.resourceViewTypeMatchesResource = function(resource)\r
+{\r
+var resourceView = resource._resourcesView;\r
+switch (resource.category) {\r
+case WebInspector.resourceCategories.documents:\r
+case WebInspector.resourceCategories.stylesheets:\r
+case WebInspector.resourceCategories.scripts:\r
+case WebInspector.resourceCategories.xhr:\r
+return resourceView.__proto__ === WebInspector.SourceView.prototype;\r
+case WebInspector.resourceCategories.images:\r
+return resourceView.__proto__ === WebInspector.ImageView.prototype;\r
+case WebInspector.resourceCategories.fonts:\r
+return resourceView.__proto__ === WebInspector.FontView.prototype;\r
+default:\r
+return resourceView.__proto__ === WebInspector.ResourceView.prototype;\r
+}\r
+}\r
+\r
+WebInspector.ResourceManager.resourceViewForResource = function(resource)\r
+{\r
+if (!resource)\r
+return null;\r
+if (!resource._resourcesView)\r
+resource._resourcesView = WebInspector.ResourceManager.createResourceView(resource);\r
+return resource._resourcesView;\r
+}\r
+\r
+WebInspector.ResourceManager.recreateResourceView = function(resource)\r
+{\r
+var newView = WebInspector.ResourceManager.createResourceView(resource);\r
+\r
+var oldView = resource._resourcesView;\r
+var oldViewParentNode = oldView.visible ? oldView.element.parentNode : null;\r
+var scrollTop = oldView.scrollTop;\r
+\r
+resource._resourcesView.detach();\r
+delete resource._resourcesView;\r
+\r
+resource._resourcesView = newView;\r
+\r
+if (oldViewParentNode)\r
+newView.show(oldViewParentNode);\r
+if (scrollTop)\r
+newView.scrollTop = scrollTop;\r
+\r
+WebInspector.panels.scripts.viewRecreated(oldView, newView);\r
+return newView;\r
+}\r
+\r
+WebInspector.ResourceManager.existingResourceViewForResource = function(resource)\r
+{\r
+if (!resource)\r
+return null;\r
+return resource._resourcesView;\r
+}\r
+\r
+WebInspector.ResourceManager.requestContent = function(resource, base64Encode, callback)\r
+{\r
+InspectorBackend.resourceContent(resource.loader.frameId, resource.url, base64Encode, callback);\r
+}\r
+\r
+WebInspector.ResourceTreeModel = function()\r
+{\r
+this._resourcesByFrameId = {};\r
+this._subframes = {};\r
+}\r
+\r
+WebInspector.ResourceTreeModel.prototype = {\r
+addOrUpdateFrame: function(frame)\r
+{\r
+var tmpResource = new WebInspector.Resource(null, frame.url);\r
+WebInspector.panels.resources.addOrUpdateFrame(frame.parentId, frame.id, frame.name, tmpResource.displayName);\r
+var subframes = this._subframes[frame.parentId];\r
+if (!subframes) {\r
+subframes = {};\r
+this._subframes[frame.parentId || 0] = subframes;\r
+}\r
+subframes[frame.id] = true;\r
+},\r
+\r
+didCommitLoadForFrame: function(frame, loader)\r
+{\r
+\r
+this._clearChildFramesAndResources(frame.parentId ? frame.id : 0, loader.loaderId);\r
+\r
+this.addOrUpdateFrame(frame);\r
+\r
+var resourcesForFrame = this._resourcesByFrameId[frame.id];\r
+for (var i = 0; resourcesForFrame && i < resourcesForFrame.length; ++i)\r
+WebInspector.panels.resources.addResourceToFrame(frame.id, resourcesForFrame[i]);\r
+},\r
+\r
+frameDetachedFromParent: function(frameId)\r
+{\r
+this._clearChildFramesAndResources(frameId, 0);\r
+WebInspector.panels.resources.removeFrame(frameId);\r
+},\r
+\r
+_clearChildFramesAndResources: function(frameId, loaderId)\r
+{\r
+WebInspector.panels.resources.removeResourcesFromFrame(frameId);\r
+\r
+this._clearResources(frameId, loaderId);\r
+var subframes = this._subframes[frameId];\r
+if (!subframes)\r
+return;\r
+\r
+for (var childFrameId in subframes) {\r
+WebInspector.panels.resources.removeFrame(childFrameId);\r
+this._clearChildFramesAndResources(childFrameId, loaderId);\r
+}\r
+delete this._subframes[frameId];\r
+},\r
+\r
+addResourceToFrame: function(frameId, resource)\r
+{\r
+var resourcesForFrame = this._resourcesByFrameId[frameId];\r
+if (!resourcesForFrame) {\r
+resourcesForFrame = [];\r
+this._resourcesByFrameId[frameId] = resourcesForFrame;\r
+}\r
+resourcesForFrame.push(resource);\r
+\r
+WebInspector.panels.resources.addResourceToFrame(frameId, resource);\r
+},\r
+\r
+_clearResources: function(frameId, loaderToPreserveId)\r
+{\r
+var resourcesForFrame = this._resourcesByFrameId[frameId];\r
+if (!resourcesForFrame)\r
+return;\r
+\r
+var preservedResourcesForFrame = [];\r
+for (var i = 0; i < resourcesForFrame.length; ++i) {\r
+var resource = resourcesForFrame[i];\r
+if (resource.loader.loaderId === loaderToPreserveId) {\r
+preservedResourcesForFrame.push(resource);\r
+continue;\r
+}\r
+WebInspector.resourceManager._unbindResourceURL(resource);\r
+}\r
+\r
+delete this._resourcesByFrameId[frameId];\r
+if (preservedResourcesForFrame.length)\r
+this._resourcesByFrameId[frameId] = preservedResourcesForFrame;\r
+},\r
+\r
+forAllResources: function(callback)\r
+{\r
+this._callForFrameResources(0, callback);\r
+},\r
+\r
+_callForFrameResources: function(frameId, callback)\r
+{\r
+var resources = this._resourcesByFrameId[frameId];\r
+for (var i = 0; resources && i < resources.length; ++i) {\r
+if (callback(resources[i]))\r
+return true;\r
+}\r
+\r
+var frames = this._subframes[frameId];\r
+if (frames) {\r
+for (var id in frames) {\r
+if (this._callForFrameResources(id, callback))\r
+return true;\r
+}\r
+}\r
+return false;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceCategory = function(name, title, color)\r
+{\r
+this.name = name;\r
+this.title = title;\r
+this.color = color;\r
+}\r
+\r
+WebInspector.ResourceCategory.prototype = {\r
+toString: function()\r
+{\r
+return this.title;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Database = function(id, domain, name, version)\r
+{\r
+this._id = id;\r
+this._domain = domain;\r
+this._name = name;\r
+this._version = version;\r
+}\r
+\r
+WebInspector.Database.successCallbacks = {};\r
+WebInspector.Database.errorCallbacks = {};\r
+\r
+WebInspector.Database.prototype = {\r
+get id()\r
+{\r
+return this._id;\r
+},\r
+\r
+get name()\r
+{\r
+return this._name;\r
+},\r
+\r
+set name(x)\r
+{\r
+this._name = x;\r
+},\r
+\r
+get version()\r
+{\r
+return this._version;\r
+},\r
+\r
+set version(x)\r
+{\r
+this._version = x;\r
+},\r
+\r
+get domain()\r
+{\r
+return this._domain;\r
+},\r
+\r
+set domain(x)\r
+{\r
+this._domain = x;\r
+},\r
+\r
+get displayDomain()\r
+{\r
+return WebInspector.Resource.prototype.__lookupGetter__("displayDomain").call(this);\r
+},\r
+\r
+getTableNames: function(callback)\r
+{\r
+function sortingCallback(names)\r
+{\r
+callback(names.sort());\r
+}\r
+InspectorBackend.getDatabaseTableNames(this._id, sortingCallback);\r
+},\r
+\r
+executeSql: function(query, onSuccess, onError)\r
+{\r
+function callback(success, transactionId)\r
+{\r
+if (!success) {\r
+onError(WebInspector.UIString("Database not found."));\r
+return;\r
+}\r
+WebInspector.Database.successCallbacks[transactionId] = onSuccess;\r
+WebInspector.Database.errorCallbacks[transactionId] = onError;\r
+}\r
+InspectorBackend.executeSQL(this._id, query, callback);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DOMStorage = function(id, domain, isLocalStorage)\r
+{\r
+this._id = id;\r
+this._domain = domain;\r
+this._isLocalStorage = isLocalStorage;\r
+}\r
+\r
+WebInspector.DOMStorage.prototype = {\r
+get id()\r
+{\r
+return this._id;\r
+},\r
+\r
+get domStorage()\r
+{\r
+return this._domStorage;\r
+},\r
+\r
+get domain()\r
+{\r
+return this._domain;\r
+},\r
+\r
+get isLocalStorage()\r
+{\r
+return this._isLocalStorage;\r
+},\r
+\r
+getEntries: function(callback)\r
+{\r
+InspectorBackend.getDOMStorageEntries(this._id, callback);\r
+},\r
+\r
+setItem: function(key, value, callback)\r
+{\r
+InspectorBackend.setDOMStorageItem(this._id, key, value, callback);\r
+},\r
+\r
+removeItem: function(key, callback)\r
+{\r
+InspectorBackend.removeDOMStorageItem(this._id, key, callback);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DOMStorageItemsView = function(domStorage)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.domStorage = domStorage;\r
+\r
+this.element.addStyleClass("storage-view");\r
+this.element.addStyleClass("table");\r
+\r
+this.deleteButton = new WebInspector.StatusBarButton(WebInspector.UIString("Delete"), "delete-storage-status-bar-item");\r
+this.deleteButton.visible = false;\r
+this.deleteButton.addEventListener("click", this._deleteButtonClicked.bind(this), false);\r
+\r
+this.refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");\r
+this.refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);\r
+}\r
+\r
+WebInspector.DOMStorageItemsView.prototype = {\r
+get statusBarItems()\r
+{\r
+return [this.refreshButton.element, this.deleteButton.element];\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.update();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.View.prototype.hide.call(this);\r
+this.deleteButton.visible = false;\r
+},\r
+\r
+update: function()\r
+{\r
+this.element.removeChildren();\r
+var callback = this._showDOMStorageEntries.bind(this);\r
+this.domStorage.getEntries(callback);\r
+},\r
+\r
+_showDOMStorageEntries: function(entries)\r
+{\r
+this._dataGrid = this._dataGridForDOMStorageEntries(entries);\r
+this.element.appendChild(this._dataGrid.element);\r
+this._dataGrid.autoSizeColumns(10);\r
+this.deleteButton.visible = true;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._dataGrid)\r
+this._dataGrid.updateWidths();\r
+},\r
+\r
+_dataGridForDOMStorageEntries: function(entries)\r
+{\r
+var columns = {};\r
+columns[0] = {};\r
+columns[1] = {};\r
+columns[0].title = WebInspector.UIString("Key");\r
+columns[1].title = WebInspector.UIString("Value");\r
+\r
+var nodes = [];\r
+\r
+var keys = [];\r
+var length = entries.length;\r
+for (var i = 0; i < entries.length; i++) {\r
+var data = {};\r
+\r
+var key = entries[i][0];\r
+data[0] = key;\r
+var value = entries[i][1];\r
+data[1] = value;\r
+var node = new WebInspector.DataGridNode(data, false);\r
+node.selectable = true;\r
+nodes.push(node);\r
+keys.push(key);\r
+}\r
+\r
+var dataGrid = new WebInspector.DataGrid(columns, this._editingCallback.bind(this), this._deleteCallback.bind(this));\r
+var length = nodes.length;\r
+for (var i = 0; i < length; ++i)\r
+dataGrid.appendChild(nodes[i]);\r
+dataGrid.addCreationNode(false);\r
+if (length > 0)\r
+nodes[0].selected = true;\r
+return dataGrid;\r
+},\r
+\r
+_deleteButtonClicked: function(event)\r
+{\r
+if (!this._dataGrid || !this._dataGrid.selectedNode)\r
+return;\r
+\r
+this._deleteCallback(this._dataGrid.selectedNode);\r
+},\r
+\r
+_refreshButtonClicked: function(event)\r
+{\r
+this.update();\r
+},\r
+\r
+_editingCallback: function(editingNode, columnIdentifier, oldText, newText)\r
+{\r
+var domStorage = this.domStorage;\r
+if (columnIdentifier === 0) {\r
+if (oldText)\r
+domStorage.removeItem(oldText);\r
+\r
+domStorage.setItem(newText, editingNode.data[1]);\r
+} else {\r
+domStorage.setItem(editingNode.data[0], newText);\r
+}\r
+\r
+this.update();\r
+},\r
+\r
+_deleteCallback: function(node)\r
+{\r
+if (!node || node.isCreationNode)\r
+return;\r
+\r
+if (this.domStorage)\r
+this.domStorage.removeItem(node.data[0]);\r
+\r
+this.update();\r
+}\r
+}\r
+\r
+WebInspector.DOMStorageItemsView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DataGrid = function(columns, editCallback, deleteCallback)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.className = "data-grid";\r
+this.element.tabIndex = 0;\r
+this.element.addEventListener("keydown", this._keyDown.bind(this), false);\r
+\r
+this._headerTable = document.createElement("table");\r
+this._headerTable.className = "header";\r
+this._headerTableHeaders = {};\r
+\r
+this._dataTable = document.createElement("table");\r
+this._dataTable.className = "data";\r
+\r
+this._dataTable.addEventListener("mousedown", this._mouseDownInDataTable.bind(this), true);\r
+this._dataTable.addEventListener("click", this._clickInDataTable.bind(this), true);\r
+\r
+this._dataTable.addEventListener("contextmenu", this._contextMenuInDataTable.bind(this), true);\r
+\r
+\r
+\r
+if (editCallback) {\r
+this._dataTable.addEventListener("dblclick", this._ondblclick.bind(this), false);\r
+this._editCallback = editCallback;\r
+}\r
+if (deleteCallback)\r
+this._deleteCallback = deleteCallback;\r
+\r
+this.aligned = {};\r
+\r
+this._scrollContainer = document.createElement("div");\r
+this._scrollContainer.className = "data-container";\r
+this._scrollContainer.appendChild(this._dataTable);\r
+\r
+this.element.appendChild(this._headerTable);\r
+this.element.appendChild(this._scrollContainer);\r
+\r
+var headerRow = document.createElement("tr");\r
+var columnGroup = document.createElement("colgroup");\r
+this._columnCount = 0;\r
+\r
+for (var columnIdentifier in columns) {\r
+var column = columns[columnIdentifier];\r
+if (column.disclosure)\r
+this.disclosureColumnIdentifier = columnIdentifier;\r
+\r
+var col = document.createElement("col");\r
+if (column.width)\r
+col.style.width = column.width;\r
+column.element = col;\r
+columnGroup.appendChild(col);\r
+\r
+var cell = document.createElement("th");\r
+cell.className = columnIdentifier + "-column";\r
+cell.columnIdentifier = columnIdentifier;\r
+this._headerTableHeaders[columnIdentifier] = cell;\r
+\r
+var div = document.createElement("div");\r
+if (column.titleDOMFragment)\r
+div.appendChild(column.titleDOMFragment);\r
+else\r
+div.textContent = column.title;\r
+cell.appendChild(div);\r
+\r
+if (column.sort) {\r
+cell.addStyleClass("sort-" + column.sort);\r
+this._sortColumnCell = cell;\r
+}\r
+\r
+if (column.sortable) {\r
+cell.addEventListener("click", this._clickInHeaderCell.bind(this), false);\r
+cell.addStyleClass("sortable");\r
+}\r
+\r
+if (column.aligned)\r
+this.aligned[columnIdentifier] = column.aligned;\r
+\r
+headerRow.appendChild(cell);\r
+\r
+++this._columnCount;\r
+}\r
+\r
+columnGroup.span = this._columnCount;\r
+\r
+var cell = document.createElement("th");\r
+cell.className = "corner";\r
+headerRow.appendChild(cell);\r
+\r
+this._headerTableColumnGroup = columnGroup;\r
+this._headerTable.appendChild(this._headerTableColumnGroup);\r
+this.headerTableBody.appendChild(headerRow);\r
+\r
+var fillerRow = document.createElement("tr");\r
+fillerRow.className = "filler";\r
+\r
+for (var columnIdentifier in columns) {\r
+var column = columns[columnIdentifier];\r
+var cell = document.createElement("td");\r
+cell.className = columnIdentifier + "-column";\r
+fillerRow.appendChild(cell);\r
+}\r
+\r
+this._dataTableColumnGroup = columnGroup.cloneNode(true);\r
+this._dataTable.appendChild(this._dataTableColumnGroup);\r
+this.dataTableBody.appendChild(fillerRow);\r
+\r
+this.columns = columns || {};\r
+this._columnsArray = [];\r
+for (var columnIdentifier in columns) {\r
+columns[columnIdentifier].ordinal = this._columnsArray.length;\r
+this._columnsArray.push(columns[columnIdentifier]);\r
+}\r
+\r
+for (var i = 0; i < this._columnsArray.length; ++i)\r
+this._columnsArray[i].bodyElement = this._dataTableColumnGroup.children[i];\r
+\r
+this.children = [];\r
+this.selectedNode = null;\r
+this.expandNodesWhenArrowing = false;\r
+this.root = true;\r
+this.hasChildren = false;\r
+this.expanded = true;\r
+this.revealed = true;\r
+this.selected = false;\r
+this.dataGrid = this;\r
+this.indentWidth = 15;\r
+this.resizers = [];\r
+this._columnWidthsInitialized = false;\r
+}\r
+\r
+WebInspector.DataGrid.prototype = {\r
+_ondblclick: function(event)\r
+{\r
+if (this._editing || this._editingNode)\r
+return;\r
+\r
+this._startEditing(event.target);\r
+},\r
+\r
+_startEditingColumnOfDataGridNode: function(node, column)\r
+{\r
+this._editing = true;\r
+this._editingNode = node;\r
+this._editingNode.select();\r
+\r
+var element = this._editingNode._element.children[column];\r
+WebInspector.startEditing(element, {\r
+context: element.textContent,\r
+commitHandler: this._editingCommitted.bind(this),\r
+cancelHandler: this._editingCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(element, 0, element, 1);\r
+},\r
+\r
+_startEditing: function(target)\r
+{\r
+var element = target.enclosingNodeOrSelfWithNodeName("td");\r
+if (!element)\r
+return;\r
+\r
+this._editingNode = this.dataGridNodeFromNode(target);\r
+if (!this._editingNode) {\r
+if (!this.creationNode)\r
+return;\r
+this._editingNode = this.creationNode;\r
+}\r
+\r
+\r
+if (this._editingNode.isCreationNode)\r
+return this._startEditingColumnOfDataGridNode(this._editingNode, 0);\r
+\r
+this._editing = true;\r
+WebInspector.startEditing(element, {\r
+context: element.textContent,\r
+commitHandler: this._editingCommitted.bind(this),\r
+cancelHandler: this._editingCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(element, 0, element, 1);\r
+},\r
+\r
+_editingCommitted: function(element, newText, oldText, context, moveDirection)\r
+{\r
+\r
+\r
+\r
+\r
+var columnIdentifier = parseInt(element.className.match(/\b(\d+)-column\b/)[1]);\r
+\r
+var textBeforeEditing = this._editingNode.data[columnIdentifier];\r
+var currentEditingNode = this._editingNode;\r
+\r
+function moveToNextIfNeeded(wasChange) {\r
+if (!moveDirection)\r
+return;\r
+\r
+if (moveDirection === "forward") {\r
+if (currentEditingNode.isCreationNode && columnIdentifier === 0 && !wasChange)\r
+return;\r
+\r
+if (columnIdentifier === 0)\r
+return this._startEditingColumnOfDataGridNode(currentEditingNode, 1);\r
+\r
+var nextDataGridNode = currentEditingNode.traverseNextNode(true, null, true);\r
+if (nextDataGridNode)\r
+return this._startEditingColumnOfDataGridNode(nextDataGridNode, 0);\r
+if (currentEditingNode.isCreationNode && wasChange) {\r
+addCreationNode(false);\r
+return this._startEditingColumnOfDataGridNode(this.creationNode, 0);\r
+}\r
+return;\r
+}\r
+\r
+if (moveDirection === "backward") {\r
+if (columnIdentifier === 1)\r
+return this._startEditingColumnOfDataGridNode(currentEditingNode, 0);\r
+var nextDataGridNode = currentEditingNode.traversePreviousNode(true, null, true);\r
+\r
+if (nextDataGridNode)\r
+return this._startEditingColumnOfDataGridNode(nextDataGridNode, 1);\r
+return;\r
+}\r
+}\r
+\r
+if (textBeforeEditing == newText) {\r
+this._editingCancelled(element);\r
+moveToNextIfNeeded.call(this, false);\r
+return;\r
+}\r
+\r
+\r
+this._editingNode.data[columnIdentifier] = newText;\r
+\r
+\r
+\r
+this._editCallback(this._editingNode, columnIdentifier, textBeforeEditing, newText);\r
+\r
+if (this._editingNode.isCreationNode)\r
+this.addCreationNode(false);\r
+\r
+this._editingCancelled(element);\r
+moveToNextIfNeeded.call(this, true);\r
+},\r
+\r
+_editingCancelled: function(element, context)\r
+{\r
+delete this._editing;\r
+this._editingNode = null;\r
+},\r
+\r
+get sortColumnIdentifier()\r
+{\r
+if (!this._sortColumnCell)\r
+return null;\r
+return this._sortColumnCell.columnIdentifier;\r
+},\r
+\r
+get sortOrder()\r
+{\r
+if (!this._sortColumnCell || this._sortColumnCell.hasStyleClass("sort-ascending"))\r
+return "ascending";\r
+if (this._sortColumnCell.hasStyleClass("sort-descending"))\r
+return "descending";\r
+return null;\r
+},\r
+\r
+get headerTableBody()\r
+{\r
+if ("_headerTableBody" in this)\r
+return this._headerTableBody;\r
+\r
+this._headerTableBody = this._headerTable.getElementsByTagName("tbody")[0];\r
+if (!this._headerTableBody) {\r
+this._headerTableBody = this.element.ownerDocument.createElement("tbody");\r
+this._headerTable.insertBefore(this._headerTableBody, this._headerTable.tFoot);\r
+}\r
+\r
+return this._headerTableBody;\r
+},\r
+\r
+get dataTableBody()\r
+{\r
+if ("_dataTableBody" in this)\r
+return this._dataTableBody;\r
+\r
+this._dataTableBody = this._dataTable.getElementsByTagName("tbody")[0];\r
+if (!this._dataTableBody) {\r
+this._dataTableBody = this.element.ownerDocument.createElement("tbody");\r
+this._dataTable.insertBefore(this._dataTableBody, this._dataTable.tFoot);\r
+}\r
+\r
+return this._dataTableBody;\r
+},\r
+\r
+autoSizeColumns: function(minPercent, maxPercent, maxDescentLevel)\r
+{\r
+if (minPercent)\r
+minPercent = Math.min(minPercent, Math.floor(100 / this._columnCount));\r
+var widths = {};\r
+var columns = this.columns;\r
+for (var columnIdentifier in columns)\r
+widths[columnIdentifier] = (columns[columnIdentifier].title || "").length;\r
+\r
+var children = maxDescentLevel ? this._enumerateChildren(this, [], maxDescentLevel + 1) : this.children;\r
+for (var i = 0; i < children.length; ++i) {\r
+var node = children[i];\r
+for (var columnIdentifier in columns) {\r
+var text = node.data[columnIdentifier] || "";\r
+if (text.length > widths[columnIdentifier])\r
+widths[columnIdentifier] = text.length;\r
+}\r
+}\r
+\r
+var totalColumnWidths = 0;\r
+for (var columnIdentifier in columns)\r
+totalColumnWidths += widths[columnIdentifier];\r
+\r
+var recoupPercent = 0;\r
+for (var columnIdentifier in columns) {\r
+var width = Math.round(100 * widths[columnIdentifier] / totalColumnWidths);\r
+if (minPercent && width < minPercent) {\r
+recoupPercent += (minPercent - width);\r
+width = minPercent;\r
+} else if (maxPercent && width > maxPercent) {\r
+recoupPercent -= (width - maxPercent);\r
+width = maxPercent;\r
+}\r
+widths[columnIdentifier] = width;\r
+}\r
+\r
+while (minPercent && recoupPercent > 0) {\r
+for (var columnIdentifier in columns) {\r
+if (widths[columnIdentifier] > minPercent) {\r
+--widths[columnIdentifier];\r
+--recoupPercent;\r
+if (!recoupPercent)\r
+break;\r
+}\r
+}\r
+}\r
+\r
+while (maxPercent && recoupPercent < 0) {\r
+for (var columnIdentifier in columns) {\r
+if (widths[columnIdentifier] < maxPercent) {\r
+++widths[columnIdentifier];\r
+++recoupPercent;\r
+if (!recoupPercent)\r
+break;\r
+}\r
+}\r
+}\r
+\r
+for (var columnIdentifier in columns)\r
+columns[columnIdentifier].element.style.width = widths[columnIdentifier] + "%";\r
+this._columnWidthsInitialized = false;\r
+this.updateWidths();\r
+},\r
+\r
+_enumerateChildren: function(rootNode, result, maxLevel)\r
+{\r
+if (!rootNode.root)\r
+result.push(rootNode);\r
+if (!maxLevel)\r
+return;\r
+for (var i = 0; i < rootNode.children.length; ++i)\r
+this._enumerateChildren(rootNode.children[i], result, maxLevel - 1);\r
+return result;\r
+},\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+updateWidths: function()\r
+{\r
+var headerTableColumns = this._headerTableColumnGroup.children;\r
+\r
+var tableWidth = this._dataTable.offsetWidth;\r
+var numColumns = headerTableColumns.length;\r
+\r
+\r
+if (!this._columnWidthsInitialized && this.element.offsetWidth) {\r
+\r
+\r
+\r
+\r
+for (var i = 0; i < numColumns; i++) {\r
+var columnWidth = this.headerTableBody.rows[0].cells[i].offsetWidth;\r
+var percentWidth = ((columnWidth / tableWidth) * 100) + "%";\r
+this._headerTableColumnGroup.children[i].style.width = percentWidth;\r
+this._dataTableColumnGroup.children[i].style.width = percentWidth;\r
+}\r
+this._columnWidthsInitialized = true;\r
+}\r
+this._positionResizers();\r
+this.dispatchEventToListeners("width changed");\r
+},\r
+\r
+columnWidthsMap: function()\r
+{\r
+var result = {};\r
+for (var i = 0; i < this._columnsArray.length; ++i) {\r
+var width = this._headerTableColumnGroup.children[i].style.width;\r
+result[this._columnsArray[i].columnIdentifier] = parseFloat(width);\r
+}\r
+return result;\r
+},\r
+\r
+applyColumnWidthsMap: function(columnWidthsMap)\r
+{\r
+for (var columnIdentifier in this.columns) {\r
+var column = this.columns[columnIdentifier];\r
+var width = (columnWidthsMap[columnIdentifier] || 0) + "%";\r
+this._headerTableColumnGroup.children[column.ordinal].style.width = width;\r
+this._dataTableColumnGroup.children[column.ordinal].style.width = width;\r
+}\r
+\r
+\r
+delete this._columnWidthsInitialized;\r
+this.updateWidths();\r
+},\r
+\r
+isColumnVisible: function(columnIdentifier)\r
+{\r
+var column = this.columns[columnIdentifier];\r
+var columnElement = column.element;\r
+return !columnElement.hidden;\r
+},\r
+\r
+showColumn: function(columnIdentifier)\r
+{\r
+var column = this.columns[columnIdentifier];\r
+var columnElement = column.element;\r
+if (!columnElement.hidden)\r
+return;\r
+\r
+columnElement.hidden = false;\r
+columnElement.removeStyleClass("hidden");\r
+\r
+var columnBodyElement = column.bodyElement;\r
+columnBodyElement.hidden = false;\r
+columnBodyElement.removeStyleClass("hidden");\r
+},\r
+\r
+hideColumn: function(columnIdentifier)\r
+{\r
+var column = this.columns[columnIdentifier];\r
+var columnElement = column.element;\r
+if (columnElement.hidden)\r
+return;\r
+\r
+var oldWidth = parseFloat(columnElement.style.width);\r
+\r
+columnElement.hidden = true;\r
+columnElement.addStyleClass("hidden");\r
+columnElement.style.width = 0;\r
+\r
+var columnBodyElement = column.bodyElement;\r
+columnBodyElement.hidden = true;\r
+columnBodyElement.addStyleClass("hidden");\r
+columnBodyElement.style.width = 0;\r
+\r
+this._columnWidthsInitialized = false;\r
+},\r
+\r
+isScrolledToLastRow: function()\r
+{\r
+return this._scrollContainer.isScrolledToBottom();\r
+},\r
+\r
+scrollToLastRow: function()\r
+{\r
+this._scrollContainer.scrollTop = this._scrollContainer.scrollHeight - this._scrollContainer.offsetHeight;\r
+},\r
+\r
+_positionResizers: function()\r
+{\r
+var headerTableColumns = this._headerTableColumnGroup.children;\r
+var numColumns = headerTableColumns.length;\r
+var left = 0;\r
+var previousResizer = null;\r
+\r
+\r
+for (var i = 0; i < numColumns - 1; i++) {\r
+var resizer = this.resizers[i];\r
+\r
+if (!resizer) {\r
+\r
+\r
+resizer = document.createElement("div");\r
+resizer.addStyleClass("data-grid-resizer");\r
+\r
+resizer.addEventListener("mousedown", this._startResizerDragging.bind(this), false);\r
+this.element.appendChild(resizer);\r
+this.resizers[i] = resizer;\r
+}\r
+\r
+\r
+\r
+\r
+left += this.headerTableBody.rows[0].cells[i].offsetWidth;\r
+\r
+var columnIsVisible = !this._headerTableColumnGroup.children[i].hidden;\r
+if (columnIsVisible) {\r
+resizer.style.removeProperty("display");\r
+resizer.style.left = left + "px";\r
+resizer.leftNeighboringColumnID = i;\r
+if (previousResizer)\r
+previousResizer.rightNeighboringColumnID = i;\r
+previousResizer = resizer;\r
+} else {\r
+resizer.style.setProperty("display", "none");\r
+resizer.leftNeighboringColumnID = 0;\r
+resizer.rightNeighboringColumnID = 0;\r
+}\r
+}\r
+if (previousResizer)\r
+previousResizer.rightNeighboringColumnID = numColumns - 1;\r
+},\r
+\r
+addCreationNode: function(hasChildren)\r
+{\r
+if (this.creationNode)\r
+this.creationNode.makeNormal();\r
+\r
+var emptyData = {};\r
+for (var column in this.columns)\r
+emptyData[column] = '';\r
+this.creationNode = new WebInspector.CreationDataGridNode(emptyData, hasChildren);\r
+this.appendChild(this.creationNode);\r
+},\r
+\r
+appendChild: function(child)\r
+{\r
+this.insertChild(child, this.children.length);\r
+},\r
+\r
+insertChild: function(child, index)\r
+{\r
+if (!child)\r
+throw("insertChild: Node can't be undefined or null.");\r
+if (child.parent === this)\r
+throw("insertChild: Node is already a child of this node.");\r
+\r
+if (child.parent)\r
+child.parent.removeChild(child);\r
+\r
+this.children.splice(index, 0, child);\r
+this.hasChildren = true;\r
+\r
+child.parent = this;\r
+child.dataGrid = this.dataGrid;\r
+child._recalculateSiblings(index);\r
+\r
+delete child._depth;\r
+delete child._revealed;\r
+delete child._attached;\r
+child._shouldRefreshChildren = true;\r
+\r
+var current = child.children[0];\r
+while (current) {\r
+current.dataGrid = this.dataGrid;\r
+delete current._depth;\r
+delete current._revealed;\r
+delete current._attached;\r
+current._shouldRefreshChildren = true;\r
+current = current.traverseNextNode(false, child, true);\r
+}\r
+\r
+if (this.expanded)\r
+child._attach();\r
+},\r
+\r
+removeChild: function(child)\r
+{\r
+if (!child)\r
+throw("removeChild: Node can't be undefined or null.");\r
+if (child.parent !== this)\r
+throw("removeChild: Node is not a child of this node.");\r
+\r
+child.deselect();\r
+child._detach();\r
+\r
+this.children.remove(child, true);\r
+\r
+if (child.previousSibling)\r
+child.previousSibling.nextSibling = child.nextSibling;\r
+if (child.nextSibling)\r
+child.nextSibling.previousSibling = child.previousSibling;\r
+\r
+child.dataGrid = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+\r
+if (this.children.length <= 0)\r
+this.hasChildren = false;\r
+},\r
+\r
+removeChildren: function()\r
+{\r
+for (var i = 0; i < this.children.length; ++i) {\r
+var child = this.children[i];\r
+child.deselect();\r
+child._detach();\r
+\r
+child.dataGrid = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+}\r
+\r
+this.children = [];\r
+this.hasChildren = false;\r
+},\r
+\r
+removeChildrenRecursive: function()\r
+{\r
+var childrenToRemove = this.children;\r
+\r
+var child = this.children[0];\r
+while (child) {\r
+if (child.children.length)\r
+childrenToRemove = childrenToRemove.concat(child.children);\r
+child = child.traverseNextNode(false, this, true);\r
+}\r
+\r
+for (var i = 0; i < childrenToRemove.length; ++i) {\r
+var child = childrenToRemove[i];\r
+child.deselect();\r
+child._detach();\r
+\r
+child.children = [];\r
+child.dataGrid = null;\r
+child.parent = null;\r
+child.nextSibling = null;\r
+child.previousSibling = null;\r
+}\r
+\r
+this.children = [];\r
+},\r
+\r
+sortNodes: function(comparator, reverseMode)\r
+{\r
+function comparatorWrapper(a, b)\r
+{\r
+if (a._dataGridNode._data.summaryRow)\r
+return 1;\r
+if (b._dataGridNode._data.summaryRow)\r
+return -1;\r
+\r
+var aDataGirdNode = a._dataGridNode;\r
+var bDataGirdNode = b._dataGridNode;\r
+return reverseMode ? comparator(bDataGirdNode, aDataGirdNode) : comparator(aDataGirdNode, bDataGirdNode);\r
+}\r
+\r
+var tbody = this.dataTableBody;\r
+var tbodyParent = tbody.parentElement;\r
+tbodyParent.removeChild(tbody);\r
+\r
+var childNodes = tbody.childNodes;\r
+var fillerRow = childNodes[childNodes.length - 1];\r
+\r
+var sortedRows = Array.prototype.slice.call(childNodes, 0, childNodes.length - 1);\r
+sortedRows.sort(comparatorWrapper);\r
+var sortedRowsLength = sortedRows.length;\r
+\r
+tbody.removeChildren();\r
+var previousSiblingNode = null;\r
+for (var i = 0; i < sortedRowsLength; ++i) {\r
+var row = sortedRows[i];\r
+var node = row._dataGridNode;\r
+node.previousSibling = previousSiblingNode;\r
+if (previousSiblingNode)\r
+previousSiblingNode.nextSibling = node;\r
+tbody.appendChild(row);\r
+previousSiblingNode = node;\r
+}\r
+if (previousSiblingNode)\r
+previousSiblingNode.nextSibling = null;\r
+\r
+tbody.appendChild(fillerRow);\r
+tbodyParent.appendChild(tbody);\r
+},\r
+\r
+_keyDown: function(event)\r
+{\r
+if (!this.selectedNode || event.shiftKey || event.metaKey || event.ctrlKey || this._editing)\r
+return;\r
+\r
+var handled = false;\r
+var nextSelectedNode;\r
+if (event.keyIdentifier === "Up" && !event.altKey) {\r
+nextSelectedNode = this.selectedNode.traversePreviousNode(true);\r
+while (nextSelectedNode && !nextSelectedNode.selectable)\r
+nextSelectedNode = nextSelectedNode.traversePreviousNode(!this.expandTreeNodesWhenArrowing);\r
+handled = nextSelectedNode ? true : false;\r
+} else if (event.keyIdentifier === "Down" && !event.altKey) {\r
+nextSelectedNode = this.selectedNode.traverseNextNode(true);\r
+while (nextSelectedNode && !nextSelectedNode.selectable)\r
+nextSelectedNode = nextSelectedNode.traverseNextNode(!this.expandTreeNodesWhenArrowing);\r
+handled = nextSelectedNode ? true : false;\r
+} else if (event.keyIdentifier === "Left") {\r
+if (this.selectedNode.expanded) {\r
+if (event.altKey)\r
+this.selectedNode.collapseRecursively();\r
+else\r
+this.selectedNode.collapse();\r
+handled = true;\r
+} else if (this.selectedNode.parent && !this.selectedNode.parent.root) {\r
+handled = true;\r
+if (this.selectedNode.parent.selectable) {\r
+nextSelectedNode = this.selectedNode.parent;\r
+handled = nextSelectedNode ? true : false;\r
+} else if (this.selectedNode.parent)\r
+this.selectedNode.parent.collapse();\r
+}\r
+} else if (event.keyIdentifier === "Right") {\r
+if (!this.selectedNode.revealed) {\r
+this.selectedNode.reveal();\r
+handled = true;\r
+} else if (this.selectedNode.hasChildren) {\r
+handled = true;\r
+if (this.selectedNode.expanded) {\r
+nextSelectedNode = this.selectedNode.children[0];\r
+handled = nextSelectedNode ? true : false;\r
+} else {\r
+if (event.altKey)\r
+this.selectedNode.expandRecursively();\r
+else\r
+this.selectedNode.expand();\r
+}\r
+}\r
+} else if (event.keyCode === 8 || event.keyCode === 46) {\r
+if (this._deleteCallback) {\r
+handled = true;\r
+this._deleteCallback(this.selectedNode);\r
+}\r
+} else if (isEnterKey(event)) {\r
+if (this._editCallback) {\r
+handled = true;\r
+\r
+\r
+this._startEditing(this.selectedNode._element.children[0]);\r
+}\r
+}\r
+\r
+if (nextSelectedNode) {\r
+nextSelectedNode.reveal();\r
+nextSelectedNode.select();\r
+}\r
+\r
+if (handled) {\r
+event.preventDefault();\r
+event.stopPropagation();\r
+}\r
+},\r
+\r
+expand: function()\r
+{\r
+\r
+},\r
+\r
+collapse: function()\r
+{\r
+\r
+},\r
+\r
+reveal: function()\r
+{\r
+\r
+},\r
+\r
+dataGridNodeFromNode: function(target)\r
+{\r
+var rowElement = target.enclosingNodeOrSelfWithNodeName("tr");\r
+return rowElement._dataGridNode;\r
+},\r
+\r
+dataGridNodeFromPoint: function(x, y)\r
+{\r
+var node = this._dataTable.ownerDocument.elementFromPoint(x, y);\r
+var rowElement = node.enclosingNodeOrSelfWithNodeName("tr");\r
+return rowElement._dataGridNode;\r
+},\r
+\r
+_clickInHeaderCell: function(event)\r
+{\r
+var cell = event.target.enclosingNodeOrSelfWithNodeName("th");\r
+if (!cell || !cell.columnIdentifier || !cell.hasStyleClass("sortable"))\r
+return;\r
+\r
+var sortOrder = this.sortOrder;\r
+\r
+if (this._sortColumnCell)\r
+this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");\r
+\r
+if (cell == this._sortColumnCell) {\r
+if (sortOrder === "ascending")\r
+sortOrder = "descending";\r
+else\r
+sortOrder = "ascending";\r
+}\r
+\r
+this._sortColumnCell = cell;\r
+\r
+cell.addStyleClass("sort-" + sortOrder);\r
+\r
+this.dispatchEventToListeners("sorting changed");\r
+},\r
+\r
+markColumnAsSortedBy: function(columnIdentifier, sortOrder)\r
+{\r
+if (this._sortColumnCell)\r
+this._sortColumnCell.removeMatchingStyleClasses("sort-\\w+");\r
+this._sortColumnCell = this._headerTableHeaders[columnIdentifier];\r
+this._sortColumnCell.addStyleClass("sort-" + sortOrder);\r
+},\r
+\r
+headerTableHeader: function(columnIdentifier)\r
+{\r
+return this._headerTableHeaders[columnIdentifier];\r
+},\r
+\r
+_mouseDownInDataTable: function(event)\r
+{\r
+var gridNode = this.dataGridNodeFromNode(event.target);\r
+if (!gridNode || !gridNode.selectable)\r
+return;\r
+\r
+if (gridNode.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+if (event.metaKey) {\r
+if (gridNode.selected)\r
+gridNode.deselect();\r
+else\r
+gridNode.select();\r
+} else\r
+gridNode.select();\r
+},\r
+\r
+_contextMenuInDataTable: function(event)\r
+{\r
+var gridNode = this.dataGridNodeFromNode(event.target);\r
+if (!gridNode || !gridNode.selectable)\r
+return;\r
+\r
+if (gridNode.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+\r
+\r
+if (this.dataGrid._editCallback) {\r
+if (gridNode === this.creationNode)\r
+contextMenu.appendItem(WebInspector.UIString("Add New"), this._startEditing.bind(this, event.target));\r
+else\r
+contextMenu.appendItem(WebInspector.UIString("Edit"), this._startEditing.bind(this, event.target));\r
+}\r
+if (this.dataGrid._deleteCallback && gridNode !== this.creationNode)\r
+contextMenu.appendItem(WebInspector.UIString("Delete"), this._deleteCallback.bind(this, gridNode));\r
+\r
+contextMenu.show(event);\r
+},\r
+\r
+_clickInDataTable: function(event)\r
+{\r
+var gridNode = this.dataGridNodeFromNode(event.target);\r
+if (!gridNode || !gridNode.hasChildren)\r
+return;\r
+\r
+if (!gridNode.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+if (gridNode.expanded) {\r
+if (event.altKey)\r
+gridNode.collapseRecursively();\r
+else\r
+gridNode.collapse();\r
+} else {\r
+if (event.altKey)\r
+gridNode.expandRecursively();\r
+else\r
+gridNode.expand();\r
+}\r
+},\r
+\r
+_startResizerDragging: function(event)\r
+{\r
+this.currentResizer = event.target;\r
+if (!this.currentResizer.rightNeighboringColumnID)\r
+return;\r
+WebInspector.elementDragStart(this.lastResizer, this._resizerDragging.bind(this),\r
+this._endResizerDragging.bind(this), event, "col-resize");\r
+},\r
+\r
+_resizerDragging: function(event)\r
+{\r
+var resizer = this.currentResizer;\r
+if (!resizer)\r
+return;\r
+\r
+\r
+\r
+var dragPoint = event.clientX - this.element.totalOffsetLeft;\r
+\r
+\r
+var leftEdgeOfPreviousColumn = 0;\r
+var firstRowCells = this.headerTableBody.rows[0].cells;\r
+for (var i = 0; i < resizer.leftNeighboringColumnID; i++)\r
+leftEdgeOfPreviousColumn += firstRowCells[i].offsetWidth;\r
+\r
+var rightEdgeOfNextColumn = leftEdgeOfPreviousColumn + firstRowCells[resizer.leftNeighboringColumnID].offsetWidth + firstRowCells[resizer.rightNeighboringColumnID].offsetWidth;\r
+\r
+\r
+var leftMinimum = leftEdgeOfPreviousColumn + this.ColumnResizePadding;\r
+var rightMaximum = rightEdgeOfNextColumn - this.ColumnResizePadding;\r
+\r
+dragPoint = Number.constrain(dragPoint, leftMinimum, rightMaximum);\r
+\r
+resizer.style.left = (dragPoint - this.CenterResizerOverBorderAdjustment) + "px";\r
+\r
+var percentLeftColumn = (((dragPoint - leftEdgeOfPreviousColumn) / this._dataTable.offsetWidth) * 100) + "%";\r
+this._headerTableColumnGroup.children[resizer.leftNeighboringColumnID].style.width = percentLeftColumn;\r
+this._dataTableColumnGroup.children[resizer.leftNeighboringColumnID].style.width = percentLeftColumn;\r
+\r
+var percentRightColumn = (((rightEdgeOfNextColumn - dragPoint) / this._dataTable.offsetWidth) * 100) + "%";\r
+this._headerTableColumnGroup.children[resizer.rightNeighboringColumnID].style.width =  percentRightColumn;\r
+this._dataTableColumnGroup.children[resizer.rightNeighboringColumnID].style.width = percentRightColumn;\r
+\r
+this._positionResizers();\r
+event.preventDefault();\r
+this.dispatchEventToListeners("width changed");\r
+},\r
+\r
+_endResizerDragging: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+this.currentResizer = null;\r
+this.dispatchEventToListeners("width changed");\r
+},\r
+\r
+ColumnResizePadding: 10,\r
+\r
+CenterResizerOverBorderAdjustment: 3,\r
+}\r
+\r
+WebInspector.DataGrid.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.DataGridNode = function(data, hasChildren)\r
+{\r
+this._expanded = false;\r
+this._selected = false;\r
+this._shouldRefreshChildren = true;\r
+this._data = data || {};\r
+this.hasChildren = hasChildren || false;\r
+this.children = [];\r
+this.dataGrid = null;\r
+this.parent = null;\r
+this.previousSibling = null;\r
+this.nextSibling = null;\r
+this.disclosureToggleWidth = 10;\r
+}\r
+\r
+WebInspector.DataGridNode.prototype = {\r
+selectable: true,\r
+\r
+get element()\r
+{\r
+if (this._element)\r
+return this._element;\r
+\r
+if (!this.dataGrid)\r
+return null;\r
+\r
+this._element = document.createElement("tr");\r
+this._element._dataGridNode = this;\r
+\r
+if (this.hasChildren)\r
+this._element.addStyleClass("parent");\r
+if (this.expanded)\r
+this._element.addStyleClass("expanded");\r
+if (this.selected)\r
+this._element.addStyleClass("selected");\r
+if (this.revealed)\r
+this._element.addStyleClass("revealed");\r
+\r
+this.createCells();\r
+return this._element;\r
+},\r
+\r
+createCells: function()\r
+{\r
+for (var columnIdentifier in this.dataGrid.columns) {\r
+var cell = this.createCell(columnIdentifier);\r
+this._element.appendChild(cell);\r
+}\r
+},\r
+\r
+get data()\r
+{\r
+return this._data;\r
+},\r
+\r
+set data(x)\r
+{\r
+this._data = x || {};\r
+this.refresh();\r
+},\r
+\r
+get revealed()\r
+{\r
+if ("_revealed" in this)\r
+return this._revealed;\r
+\r
+var currentAncestor = this.parent;\r
+while (currentAncestor && !currentAncestor.root) {\r
+if (!currentAncestor.expanded) {\r
+this._revealed = false;\r
+return false;\r
+}\r
+\r
+currentAncestor = currentAncestor.parent;\r
+}\r
+\r
+this._revealed = true;\r
+return true;\r
+},\r
+\r
+set hasChildren(x)\r
+{\r
+if (this._hasChildren === x)\r
+return;\r
+\r
+this._hasChildren = x;\r
+\r
+if (!this._element)\r
+return;\r
+\r
+if (this._hasChildren)\r
+{\r
+this._element.addStyleClass("parent");\r
+if (this.expanded)\r
+this._element.addStyleClass("expanded");\r
+}\r
+else\r
+{\r
+this._element.removeStyleClass("parent");\r
+this._element.removeStyleClass("expanded");\r
+}\r
+},\r
+\r
+get hasChildren()\r
+{\r
+return this._hasChildren;\r
+},\r
+\r
+set revealed(x)\r
+{\r
+if (this._revealed === x)\r
+return;\r
+\r
+this._revealed = x;\r
+\r
+if (this._element) {\r
+if (this._revealed)\r
+this._element.addStyleClass("revealed");\r
+else\r
+this._element.removeStyleClass("revealed");\r
+}\r
+\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i].revealed = x && this.expanded;\r
+},\r
+\r
+get depth()\r
+{\r
+if ("_depth" in this)\r
+return this._depth;\r
+if (this.parent && !this.parent.root)\r
+this._depth = this.parent.depth + 1;\r
+else\r
+this._depth = 0;\r
+return this._depth;\r
+},\r
+\r
+get shouldRefreshChildren()\r
+{\r
+return this._shouldRefreshChildren;\r
+},\r
+\r
+set shouldRefreshChildren(x)\r
+{\r
+this._shouldRefreshChildren = x;\r
+if (x && this.expanded)\r
+this.expand();\r
+},\r
+\r
+get selected()\r
+{\r
+return this._selected;\r
+},\r
+\r
+set selected(x)\r
+{\r
+if (x)\r
+this.select();\r
+else\r
+this.deselect();\r
+},\r
+\r
+get expanded()\r
+{\r
+return this._expanded;\r
+},\r
+\r
+set expanded(x)\r
+{\r
+if (x)\r
+this.expand();\r
+else\r
+this.collapse();\r
+},\r
+\r
+refresh: function()\r
+{\r
+if (!this._element || !this.dataGrid)\r
+return;\r
+\r
+this._element.removeChildren();\r
+this.createCells();\r
+},\r
+\r
+createCell: function(columnIdentifier)\r
+{\r
+var cell = document.createElement("td");\r
+cell.className = columnIdentifier + "-column";\r
+\r
+var alignment = this.dataGrid.aligned[columnIdentifier];\r
+if (alignment)\r
+cell.addStyleClass(alignment);\r
+\r
+var div = document.createElement("div");\r
+div.textContent = this.data[columnIdentifier];\r
+cell.appendChild(div);\r
+\r
+if (columnIdentifier === this.dataGrid.disclosureColumnIdentifier) {\r
+cell.addStyleClass("disclosure");\r
+if (this.depth)\r
+cell.style.setProperty("padding-left", (this.depth * this.dataGrid.indentWidth) + "px");\r
+}\r
+\r
+return cell;\r
+},\r
+\r
+\r
+appendChild: WebInspector.DataGrid.prototype.appendChild,\r
+insertChild: WebInspector.DataGrid.prototype.insertChild,\r
+removeChild: WebInspector.DataGrid.prototype.removeChild,\r
+removeChildren: WebInspector.DataGrid.prototype.removeChildren,\r
+removeChildrenRecursive: WebInspector.DataGrid.prototype.removeChildrenRecursive,\r
+\r
+_recalculateSiblings: function(myIndex)\r
+{\r
+if (!this.parent)\r
+return;\r
+\r
+var previousChild = (myIndex > 0 ? this.parent.children[myIndex - 1] : null);\r
+\r
+if (previousChild) {\r
+previousChild.nextSibling = this;\r
+this.previousSibling = previousChild;\r
+} else\r
+this.previousSibling = null;\r
+\r
+var nextChild = this.parent.children[myIndex + 1];\r
+\r
+if (nextChild) {\r
+nextChild.previousSibling = this;\r
+this.nextSibling = nextChild;\r
+} else\r
+this.nextSibling = null;\r
+},\r
+\r
+collapse: function()\r
+{\r
+if (this._element)\r
+this._element.removeStyleClass("expanded");\r
+\r
+this._expanded = false;\r
+\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i].revealed = false;\r
+\r
+this.dispatchEventToListeners("collapsed");\r
+},\r
+\r
+collapseRecursively: function()\r
+{\r
+var item = this;\r
+while (item) {\r
+if (item.expanded)\r
+item.collapse();\r
+item = item.traverseNextNode(false, this, true);\r
+}\r
+},\r
+\r
+expand: function()\r
+{\r
+if (!this.hasChildren || this.expanded)\r
+return;\r
+\r
+if (this.revealed && !this._shouldRefreshChildren)\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i].revealed = true;\r
+\r
+if (this._shouldRefreshChildren) {\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i]._detach();\r
+\r
+this.dispatchEventToListeners("populate");\r
+\r
+if (this._attached) {\r
+for (var i = 0; i < this.children.length; ++i) {\r
+var child = this.children[i];\r
+if (this.revealed)\r
+child.revealed = true;\r
+child._attach();\r
+}\r
+}\r
+\r
+delete this._shouldRefreshChildren;\r
+}\r
+\r
+if (this._element)\r
+this._element.addStyleClass("expanded");\r
+\r
+this._expanded = true;\r
+\r
+this.dispatchEventToListeners("expanded");\r
+},\r
+\r
+expandRecursively: function()\r
+{\r
+var item = this;\r
+while (item) {\r
+item.expand();\r
+item = item.traverseNextNode(false, this);\r
+}\r
+},\r
+\r
+reveal: function()\r
+{\r
+var currentAncestor = this.parent;\r
+while (currentAncestor && !currentAncestor.root) {\r
+if (!currentAncestor.expanded)\r
+currentAncestor.expand();\r
+currentAncestor = currentAncestor.parent;\r
+}\r
+\r
+this.element.scrollIntoViewIfNeeded(false);\r
+\r
+this.dispatchEventToListeners("revealed");\r
+},\r
+\r
+select: function(supressSelectedEvent)\r
+{\r
+if (!this.dataGrid || !this.selectable || this.selected)\r
+return;\r
+\r
+if (this.dataGrid.selectedNode)\r
+this.dataGrid.selectedNode.deselect();\r
+\r
+this._selected = true;\r
+this.dataGrid.selectedNode = this;\r
+\r
+if (this._element)\r
+this._element.addStyleClass("selected");\r
+\r
+if (!supressSelectedEvent)\r
+this.dispatchEventToListeners("selected");\r
+},\r
+\r
+deselect: function(supressDeselectedEvent)\r
+{\r
+if (!this.dataGrid || this.dataGrid.selectedNode !== this || !this.selected)\r
+return;\r
+\r
+this._selected = false;\r
+this.dataGrid.selectedNode = null;\r
+\r
+if (this._element)\r
+this._element.removeStyleClass("selected");\r
+\r
+if (!supressDeselectedEvent)\r
+this.dispatchEventToListeners("deselected");\r
+},\r
+\r
+traverseNextNode: function(skipHidden, stayWithin, dontPopulate, info)\r
+{\r
+if (!dontPopulate && this.hasChildren)\r
+this.dispatchEventToListeners("populate");\r
+\r
+if (info)\r
+info.depthChange = 0;\r
+\r
+var node = (!skipHidden || this.revealed) ? this.children[0] : null;\r
+if (node && (!skipHidden || this.expanded)) {\r
+if (info)\r
+info.depthChange = 1;\r
+return node;\r
+}\r
+\r
+if (this === stayWithin)\r
+return null;\r
+\r
+node = (!skipHidden || this.revealed) ? this.nextSibling : null;\r
+if (node)\r
+return node;\r
+\r
+node = this;\r
+while (node && !node.root && !((!skipHidden || node.revealed) ? node.nextSibling : null) && node.parent !== stayWithin) {\r
+if (info)\r
+info.depthChange -= 1;\r
+node = node.parent;\r
+}\r
+\r
+if (!node)\r
+return null;\r
+\r
+return (!skipHidden || node.revealed) ? node.nextSibling : null;\r
+},\r
+\r
+traversePreviousNode: function(skipHidden, dontPopulate)\r
+{\r
+var node = (!skipHidden || this.revealed) ? this.previousSibling : null;\r
+if (!dontPopulate && node && node.hasChildren)\r
+node.dispatchEventToListeners("populate");\r
+\r
+while (node && ((!skipHidden || (node.revealed && node.expanded)) ? node.children[node.children.length - 1] : null)) {\r
+if (!dontPopulate && node.hasChildren)\r
+node.dispatchEventToListeners("populate");\r
+node = ((!skipHidden || (node.revealed && node.expanded)) ? node.children[node.children.length - 1] : null);\r
+}\r
+\r
+if (node)\r
+return node;\r
+\r
+if (!this.parent || this.parent.root)\r
+return null;\r
+\r
+return this.parent;\r
+},\r
+\r
+isEventWithinDisclosureTriangle: function(event)\r
+{\r
+if (!this.hasChildren)\r
+return false;\r
+var cell = event.target.enclosingNodeOrSelfWithNodeName("td");\r
+if (!cell.hasStyleClass("disclosure"))\r
+return false;\r
+var computedLeftPadding = window.getComputedStyle(cell).getPropertyCSSValue("padding-left").getFloatValue(CSSPrimitiveValue.CSS_PX);\r
+var left = cell.totalOffsetLeft + computedLeftPadding;\r
+return event.pageX >= left && event.pageX <= left + this.disclosureToggleWidth;\r
+},\r
+\r
+_attach: function()\r
+{\r
+if (!this.dataGrid || this._attached)\r
+return;\r
+\r
+this._attached = true;\r
+\r
+var nextNode = null;\r
+var previousNode = this.traversePreviousNode(true, true);\r
+if (previousNode && previousNode.element.parentNode && previousNode.element.nextSibling)\r
+var nextNode = previousNode.element.nextSibling;\r
+if (!nextNode)\r
+nextNode = this.dataGrid.dataTableBody.lastChild;\r
+this.dataGrid.dataTableBody.insertBefore(this.element, nextNode);\r
+\r
+if (this.expanded)\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i]._attach();\r
+},\r
+\r
+_detach: function()\r
+{\r
+if (!this._attached)\r
+return;\r
+\r
+this._attached = false;\r
+\r
+if (this._element && this._element.parentNode)\r
+this._element.parentNode.removeChild(this._element);\r
+\r
+for (var i = 0; i < this.children.length; ++i)\r
+this.children[i]._detach();\r
+},\r
+\r
+savePosition: function()\r
+{\r
+if (this._savedPosition)\r
+return;\r
+\r
+if (!this.parent)\r
+throw("savePosition: Node must have a parent.");\r
+this._savedPosition = {\r
+parent: this.parent,\r
+index: this.parent.children.indexOf(this)\r
+};\r
+},\r
+\r
+restorePosition: function()\r
+{\r
+if (!this._savedPosition)\r
+return;\r
+\r
+if (this.parent !== this._savedPosition.parent)\r
+this._savedPosition.parent.insertChild(this, this._savedPosition.index);\r
+\r
+delete this._savedPosition;\r
+}\r
+}\r
+\r
+WebInspector.DataGridNode.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.CreationDataGridNode = function(data, hasChildren)\r
+{\r
+WebInspector.DataGridNode.call(this, data, hasChildren);\r
+this.isCreationNode = true;\r
+}\r
+\r
+WebInspector.CreationDataGridNode.prototype = {\r
+makeNormal: function()\r
+{\r
+delete this.isCreationNode;\r
+delete this.makeNormal;\r
+}\r
+}\r
+\r
+WebInspector.CreationDataGridNode.prototype.__proto__ = WebInspector.DataGridNode.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CookiesTable = function(cookieDomain, expandable, deleteCallback)\r
+{\r
+this._cookieDomain = cookieDomain;\r
+\r
+var columns = { 0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {} };\r
+columns[0].title = WebInspector.UIString("Name");\r
+columns[0].sortable = true;\r
+columns[0].disclosure = expandable;\r
+columns[0].width = "24%";\r
+columns[1].title = WebInspector.UIString("Value");\r
+columns[1].sortable = true;\r
+columns[1].width = "34%";\r
+columns[2].title = WebInspector.UIString("Domain");\r
+columns[2].sortable = true;\r
+columns[2].width = "7%";\r
+columns[3].title = WebInspector.UIString("Path");\r
+columns[3].sortable = true;\r
+columns[3].width = "7%";\r
+columns[4].title = WebInspector.UIString("Expires");\r
+columns[4].sortable = true;\r
+columns[4].width = "7%";\r
+columns[5].title = WebInspector.UIString("Size");\r
+columns[5].aligned = "right";\r
+columns[5].sortable = true;\r
+columns[5].width = "7%";\r
+columns[6].title = WebInspector.UIString("HTTP");\r
+columns[6].aligned = "centered";\r
+columns[6].sortable = true;\r
+columns[6].width = "7%";\r
+columns[7].title = WebInspector.UIString("Secure");\r
+columns[7].aligned = "centered";\r
+columns[7].sortable = true;\r
+columns[7].width = "7%";\r
+\r
+this._dataGrid = new WebInspector.DataGrid(columns, null, deleteCallback ? this._onDeleteFromGrid.bind(this) : null);\r
+this._dataGrid.addEventListener("sorting changed", this._rebuildTable, this);\r
+\r
+this.element = this._dataGrid.element;\r
+this._data = [];\r
+this._deleteCallback = deleteCallback;\r
+}\r
+\r
+WebInspector.CookiesTable.prototype = {\r
+updateWidths: function()\r
+{\r
+if (this._dataGrid)\r
+this._dataGrid.updateWidths();\r
+},\r
+\r
+setCookies: function(cookies)\r
+{\r
+this._data = [{cookies: cookies}];\r
+this._rebuildTable();\r
+},\r
+\r
+addCookiesFolder: function(folderName, cookies)\r
+{\r
+this._data.push({cookies: cookies, folderName: folderName});\r
+this._rebuildTable();\r
+},\r
+\r
+get selectedCookie()\r
+{\r
+var node = this._dataGrid.selectedNode;\r
+return node ? node.cookie : null;\r
+},\r
+\r
+_rebuildTable: function()\r
+{\r
+this._dataGrid.removeChildren();\r
+for (var i = 0; i < this._data.length; ++i) {\r
+var item = this._data[i];\r
+if (item.folderName) {\r
+var groupData = [ item.folderName, "", "", "", "", this._totalSize(item.cookies), "", "" ];\r
+var groupNode = new WebInspector.DataGridNode(groupData);\r
+groupNode.selectable = true;\r
+this._dataGrid.appendChild(groupNode);\r
+groupNode.element.addStyleClass("row-group");\r
+this._populateNode(groupNode, item.cookies);\r
+groupNode.expand();\r
+} else\r
+this._populateNode(this._dataGrid, item.cookies);\r
+}\r
+},\r
+\r
+_populateNode: function(parentNode, cookies)\r
+{\r
+var selectedCookie = this.selectedCookie;\r
+parentNode.removeChildren();\r
+if (!cookies)\r
+return;\r
+\r
+this._sortCookies(cookies);\r
+for (var i = 0; i < cookies.length; ++i) {\r
+var cookieNode = this._createGridNode(cookies[i]);\r
+parentNode.appendChild(cookieNode);\r
+if (selectedCookie === cookies[i])\r
+cookieNode.selected = true;\r
+}\r
+},\r
+\r
+_totalSize: function(cookies)\r
+{\r
+var totalSize = 0;\r
+for (var i = 0; cookies && i < cookies.length; ++i)\r
+totalSize += cookies[i].size;\r
+return totalSize;\r
+},\r
+\r
+_sortCookies: function(cookies)\r
+{\r
+var sortDirection = this._dataGrid.sortOrder === "ascending" ? 1 : -1;\r
+\r
+function localeCompare(field, cookie1, cookie2)\r
+{\r
+return sortDirection * (cookie1[field] + "").localeCompare(cookie2[field] + "")\r
+}\r
+\r
+function numberCompare(field, cookie1, cookie2)\r
+{\r
+return sortDirection * (cookie1[field] - cookie2[field]);\r
+}\r
+\r
+function expiresCompare(cookie1, cookie2)\r
+{\r
+if (cookie1.session !== cookie2.session)\r
+return sortDirection * (cookie1.session ? 1 : -1);\r
+\r
+if (cookie1.session)\r
+return 0;\r
+\r
+return sortDirection * (cookie1.expires - cookie2.expires);\r
+}\r
+\r
+var comparator;\r
+switch (parseInt(this._dataGrid.sortColumnIdentifier)) {\r
+case 0: comparator = localeCompare.bind(this, "name"); break;\r
+case 1: comparator = localeCompare.bind(this, "value"); break;\r
+case 2: comparator = localeCompare.bind(this, "domain"); break;\r
+case 3: comparator = localeCompare.bind(this, "path"); break;\r
+case 4: comparator = expiresCompare; break;\r
+case 5: comparator = numberCompare.bind(this, "size"); break;\r
+case 6: comparator = localeCompare.bind(this, "httpOnly"); break;\r
+case 7: comparator = localeCompare.bind(this, "secure"); break;\r
+default: localeCompare.bind(this, "name");\r
+}\r
+\r
+cookies.sort(comparator);\r
+},\r
+\r
+_createGridNode: function(cookie)\r
+{\r
+var data = {};\r
+data[0] = cookie.name;\r
+data[1] = cookie.value;\r
+data[2] = cookie.domain || "";\r
+data[3] = cookie.path || "";\r
+data[4] = cookie.type === WebInspector.Cookie.Type.Request ? "" :\r
+(cookie.session ? WebInspector.UIString("Session") : new Date(cookie.expires).toGMTString());\r
+data[5] = cookie.size;\r
+const checkmark = "\u2713";\r
+data[6] = (cookie.httpOnly ? checkmark : "");\r
+data[7] = (cookie.secure ? checkmark : "");\r
+\r
+var node = new WebInspector.DataGridNode(data);\r
+node.cookie = cookie;\r
+node.selectable = true;\r
+return node;\r
+},\r
+\r
+_onDeleteFromGrid: function(node)\r
+{\r
+this._deleteCallback(node.cookie);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CookieItemsView = function(treeElement, cookieDomain)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("storage-view");\r
+\r
+this._deleteButton = new WebInspector.StatusBarButton(WebInspector.UIString("Delete"), "delete-storage-status-bar-item");\r
+this._deleteButton.visible = false;\r
+this._deleteButton.addEventListener("click", this._deleteButtonClicked.bind(this), false);\r
+\r
+this._refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");\r
+this._refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);\r
+\r
+this._treeElement = treeElement;\r
+this._cookieDomain = cookieDomain;\r
+\r
+this._emptyMsgElement = document.createElement("div");\r
+this._emptyMsgElement.className = "storage-empty-view";\r
+this._emptyMsgElement.textContent = WebInspector.UIString("This site has no cookies.");\r
+this.element.appendChild(this._emptyMsgElement);\r
+}\r
+\r
+WebInspector.CookieItemsView.prototype = {\r
+get statusBarItems()\r
+{\r
+return [this._refreshButton.element, this._deleteButton.element];\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this._update();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.View.prototype.hide.call(this);\r
+this._deleteButton.visible = false;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._cookiesTable)\r
+this._cookiesTable.updateWidths();\r
+},\r
+\r
+_update: function()\r
+{\r
+WebInspector.Cookies.getCookiesAsync(this._updateWithCookies.bind(this));\r
+},\r
+\r
+_updateWithCookies: function(allCookies, isAdvanced)\r
+{\r
+this._cookies = isAdvanced ? this._filterCookiesForDomain(allCookies) : allCookies;\r
+\r
+if (!this._cookies.length) {\r
+\r
+this._emptyMsgElement.removeStyleClass("hidden");\r
+this._deleteButton.visible = false;\r
+if (this._cookiesTable)\r
+this._cookiesTable.element.addStyleClass("hidden");\r
+return;\r
+}\r
+\r
+if (!this._cookiesTable) {\r
+this._cookiesTable = isAdvanced ? new WebInspector.CookiesTable(this._cookieDomain, false, this._deleteCookie.bind(this)) : new WebInspector.SimpleCookiesTable();\r
+this.element.appendChild(this._cookiesTable.element);\r
+}\r
+\r
+this._cookiesTable.setCookies(this._cookies);\r
+this._cookiesTable.element.removeStyleClass("hidden");\r
+this._emptyMsgElement.addStyleClass("hidden");\r
+if (isAdvanced) {\r
+this._treeElement.subtitle = String.sprintf(WebInspector.UIString("%d cookies (%s)"), this._cookies.length,\r
+Number.bytesToString(this._totalSize, WebInspector.UIString));\r
+this._deleteButton.visible = true;\r
+}\r
+},\r
+\r
+_filterCookiesForDomain: function(allCookies)\r
+{\r
+var cookies = [];\r
+var resourceURLsForDocumentURL = [];\r
+this._totalSize = 0;\r
+\r
+function populateResourcesForDocuments(resource)\r
+{\r
+var url = resource.documentURL.asParsedURL();\r
+if (url && url.host == this._cookieDomain)\r
+resourceURLsForDocumentURL.push(resource.url);\r
+}\r
+WebInspector.forAllResources(populateResourcesForDocuments.bind(this));\r
+\r
+for (var i = 0; i < allCookies.length; ++i) {\r
+var pushed = false;\r
+var size = allCookies[i].size;\r
+for (var j = 0; j < resourceURLsForDocumentURL.length; ++j) {\r
+var resourceURL = resourceURLsForDocumentURL[j];\r
+if (WebInspector.Cookies.cookieMatchesResourceURL(allCookies[i], resourceURL)) {\r
+this._totalSize += size;\r
+if (!pushed) {\r
+pushed = true;\r
+cookies.push(allCookies[i]);\r
+}\r
+}\r
+}\r
+}\r
+return cookies;\r
+},\r
+\r
+_deleteCookie: function(cookie)\r
+{\r
+InspectorBackend.deleteCookie(cookie.name, this._cookieDomain);\r
+this._update();\r
+},\r
+\r
+_deleteButtonClicked: function()\r
+{\r
+if (this._cookiesTable.selectedCookie)\r
+this._deleteCookie(this._cookiesTable.selectedCookie);\r
+},\r
+\r
+_refreshButtonClicked: function(event)\r
+{\r
+this._update();\r
+}\r
+}\r
+\r
+WebInspector.CookieItemsView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+WebInspector.SimpleCookiesTable = function()\r
+{\r
+this.element = document.createElement("div");\r
+var columns = {};\r
+columns[0] = {};\r
+columns[1] = {};\r
+columns[0].title = WebInspector.UIString("Name");\r
+columns[1].title = WebInspector.UIString("Value");\r
+\r
+this._dataGrid = new WebInspector.DataGrid(columns);\r
+this._dataGrid.autoSizeColumns(20, 80);\r
+this.element.appendChild(this._dataGrid.element);\r
+this._dataGrid.updateWidths();\r
+}\r
+\r
+WebInspector.SimpleCookiesTable.prototype = {\r
+setCookies: function(cookies)\r
+{\r
+this._dataGrid.removeChildren();\r
+var addedCookies = {};\r
+for (var i = 0; i < cookies.length; ++i) {\r
+if (addedCookies[cookies[i].name])\r
+continue;\r
+addedCookies[cookies[i].name] = true;\r
+var data = {};\r
+data[0] = cookies[i].name;\r
+data[1] = cookies[i].value;\r
+\r
+var node = new WebInspector.DataGridNode(data, false);\r
+node.selectable = true;\r
+this._dataGrid.appendChild(node);\r
+}\r
+this._dataGrid.children[0].selected = true;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._dataGrid)\r
+this._dataGrid.updateWidths();\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ApplicationCacheItemsView = function(treeElement, appcacheDomain)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("storage-view");\r
+this.element.addStyleClass("table");\r
+\r
+\r
+\r
+this.deleteButton = new WebInspector.StatusBarButton(WebInspector.UIString("Delete"), "delete-storage-status-bar-item");\r
+this.deleteButton.visible = false;\r
+this.deleteButton.addEventListener("click", this._deleteButtonClicked.bind(this), false);\r
+\r
+\r
+\r
+this.refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");\r
+this.refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);\r
+\r
+if (Preferences.onlineDetectionEnabled) {\r
+this.connectivityIcon = document.createElement("img");\r
+this.connectivityIcon.className = "storage-application-cache-connectivity-icon";\r
+this.connectivityIcon.src = "";\r
+this.connectivityMessage = document.createElement("span");\r
+this.connectivityMessage.className = "storage-application-cache-connectivity";\r
+this.connectivityMessage.textContent = "";\r
+}\r
+\r
+this.divider = document.createElement("span");\r
+this.divider.className = "status-bar-item status-bar-divider";\r
+\r
+this.statusIcon = document.createElement("img");\r
+this.statusIcon.className = "storage-application-cache-status-icon";\r
+this.statusIcon.src = "";\r
+this.statusMessage = document.createElement("span");\r
+this.statusMessage.className = "storage-application-cache-status";\r
+this.statusMessage.textContent = "";\r
+\r
+this._treeElement = treeElement;\r
+this._appcacheDomain = appcacheDomain;\r
+\r
+this._emptyMsgElement = document.createElement("div");\r
+this._emptyMsgElement.className = "storage-empty-view";\r
+this._emptyMsgElement.textContent = WebInspector.UIString("No Application Cache information available.");\r
+this.element.appendChild(this._emptyMsgElement);\r
+\r
+this.updateStatus(applicationCache.UNCACHED);\r
+}\r
+\r
+WebInspector.ApplicationCacheItemsView.prototype = {\r
+get statusBarItems()\r
+{\r
+if (Preferences.onlineDetectionEnabled) {\r
+return [\r
+this.refreshButton.element, this.deleteButton.element,\r
+this.connectivityIcon, this.connectivityMessage, this.divider,\r
+this.statusIcon, this.statusMessage\r
+];\r
+} else {\r
+return [\r
+this.refreshButton.element, this.deleteButton.element, this.divider,\r
+this.statusIcon, this.statusMessage\r
+];\r
+}\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.updateNetworkState(navigator.onLine);\r
+this._update();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.View.prototype.hide.call(this);\r
+this.deleteButton.visible = false;\r
+},\r
+\r
+updateStatus: function(status)\r
+{\r
+var statusInformation = {};\r
+statusInformation[applicationCache.UNCACHED]    = { src: "Images/warningOrangeDot.png", text: "UNCACHED"    };\r
+statusInformation[applicationCache.IDLE]        = { src: "Images/warningOrangeDot.png", text: "IDLE"        };\r
+statusInformation[applicationCache.CHECKING]    = { src: "Images/successGreenDot.png",  text: "CHECKING"    };\r
+statusInformation[applicationCache.DOWNLOADING] = { src: "Images/successGreenDot.png",  text: "DOWNLOADING" };\r
+statusInformation[applicationCache.UPDATEREADY] = { src: "Images/successGreenDot.png",  text: "UPDATEREADY" };\r
+statusInformation[applicationCache.OBSOLETE]    = { src: "Images/errorRedDot.png",      text: "OBSOLETE"    };\r
+\r
+var info = statusInformation[status];\r
+if (!info) {\r
+console.error("Unknown Application Cache Status was Not Handled: %d", status);\r
+return;\r
+}\r
+\r
+this.statusIcon.src = info.src;\r
+this.statusMessage.textContent = info.text;\r
+},\r
+\r
+updateNetworkState: function(isNowOnline)\r
+{\r
+if (Preferences.onlineDetectionEnabled) {\r
+if (isNowOnline) {\r
+this.connectivityIcon.src = "Images/successGreenDot.png";\r
+this.connectivityMessage.textContent = WebInspector.UIString("Online");\r
+} else {\r
+this.connectivityIcon.src = "Images/errorRedDot.png";\r
+this.connectivityMessage.textContent = WebInspector.UIString("Offline");\r
+}\r
+}\r
+},\r
+\r
+_update: function()\r
+{\r
+WebInspector.ApplicationCache.getApplicationCachesAsync(this._updateCallback.bind(this));\r
+},\r
+\r
+_updateCallback: function(applicationCaches)\r
+{\r
+\r
+\r
+this._manifest = applicationCaches.manifest;\r
+this._creationTime = applicationCaches.creationTime;\r
+this._updateTime = applicationCaches.updateTime;\r
+this._size = applicationCaches.size;\r
+this._resources = applicationCaches.resources;\r
+var lastPathComponent = applicationCaches.lastPathComponent;\r
+\r
+if (!this._manifest) {\r
+this._emptyMsgElement.removeStyleClass("hidden");\r
+this.deleteButton.visible = false;\r
+if (this._dataGrid)\r
+this._dataGrid.element.addStyleClass("hidden");\r
+return;\r
+}\r
+\r
+if (!this._dataGrid)\r
+this._createDataGrid();\r
+\r
+this._populateDataGrid();\r
+this._dataGrid.autoSizeColumns(20, 80);\r
+this._dataGrid.element.removeStyleClass("hidden");\r
+this._emptyMsgElement.addStyleClass("hidden");\r
+this.deleteButton.visible = true;\r
+\r
+var totalSizeString = Number.bytesToString(this._size, WebInspector.UIString);\r
+this._treeElement.subtitle = WebInspector.UIString("%s (%s)", lastPathComponent, totalSizeString);\r
+\r
+\r
+\r
+\r
+},\r
+\r
+_createDataGrid: function()\r
+{\r
+var columns = { 0: {}, 1: {}, 2: {} };\r
+columns[0].title = WebInspector.UIString("Resource");\r
+columns[0].sort = "ascending";\r
+columns[0].sortable = true;\r
+columns[1].title = WebInspector.UIString("Type");\r
+columns[1].sortable = true;\r
+columns[2].title = WebInspector.UIString("Size");\r
+columns[2].aligned = "right";\r
+columns[2].sortable = true;\r
+this._dataGrid = new WebInspector.DataGrid(columns);\r
+this.element.appendChild(this._dataGrid.element);\r
+this._dataGrid.addEventListener("sorting changed", this._populateDataGrid, this);\r
+this._dataGrid.updateWidths();\r
+},\r
+\r
+_populateDataGrid: function()\r
+{\r
+var selectedResource = this._dataGrid.selectedNode ? this._dataGrid.selectedNode.resource : null;\r
+var sortDirection = this._dataGrid.sortOrder === "ascending" ? 1 : -1;\r
+\r
+function numberCompare(field, resource1, resource2)\r
+{\r
+return sortDirection * (resource1[field] - resource2[field]);\r
+}\r
+function localeCompare(field, resource1, resource2)\r
+{\r
+return sortDirection * (resource1[field] + "").localeCompare(resource2[field] + "")\r
+}\r
+\r
+var comparator;\r
+switch (parseInt(this._dataGrid.sortColumnIdentifier)) {\r
+case 0: comparator = localeCompare.bind(this, "name"); break;\r
+case 1: comparator = localeCompare.bind(this, "type"); break;\r
+case 2: comparator = numberCompare.bind(this, "size"); break;\r
+default: localeCompare.bind(this, "resource"); \r
+}\r
+\r
+this._resources.sort(comparator);\r
+this._dataGrid.removeChildren();\r
+\r
+var nodeToSelect;\r
+for (var i = 0; i < this._resources.length; ++i) {\r
+var data = {};\r
+var resource = this._resources[i];\r
+data[0] = resource.name;\r
+data[1] = resource.type;\r
+data[2] = Number.bytesToString(resource.size, WebInspector.UIString);\r
+var node = new WebInspector.DataGridNode(data);\r
+node.resource = resource;\r
+node.selectable = true;\r
+this._dataGrid.appendChild(node);\r
+if (resource === selectedResource) {\r
+nodeToSelect = node;\r
+nodeToSelect.selected = true;\r
+}\r
+}\r
+\r
+if (!nodeToSelect)\r
+this._dataGrid.children[0].selected = true;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._dataGrid)\r
+this._dataGrid.updateWidths();\r
+},\r
+\r
+_deleteButtonClicked: function(event)\r
+{\r
+if (!this._dataGrid || !this._dataGrid.selectedNode)\r
+return;\r
+\r
+\r
+this._deleteCallback(this._dataGrid.selectedNode);\r
+},\r
+\r
+_deleteCallback: function(node)\r
+{\r
+\r
+\r
+\r
+},\r
+\r
+_refreshButtonClicked: function(event)\r
+{\r
+\r
+\r
+}\r
+}\r
+\r
+WebInspector.ApplicationCacheItemsView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.FileSystem = {}\r
+\r
+\r
+WebInspector.FileSystem.TEMPORARY = 0;\r
+WebInspector.FileSystem.PERSISTENT = 1;\r
+\r
+WebInspector.FileSystem.getFileSystemPathsAsync = function(origin)\r
+{\r
+InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystem.PERSISTENT, origin);\r
+InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystem.TEMPORARY, origin);\r
+}\r
+\r
+WebInspector.FileSystemView = function(treeElement, fileSystemOrigin)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("resource-view");\r
+this._treeElement = treeElement;\r
+this._origin = fileSystemOrigin;\r
+this._tabbedPane = new WebInspector.TabbedPane(this.element);\r
+\r
+this._persistentFileSystemElement = document.createElement("div");\r
+this._persistentFileSystemElement.className = "resource-view-headers";\r
+this._tabbedPane.appendTab("persistent", WebInspector.UIString("Persistent File System"), this._persistentFileSystemElement, this._selectFileSystemTab.bind(this, true));\r
+\r
+this._tempFileSystemElement = document.createElement("div");\r
+this._tempFileSystemElement.className = "resource-view-headers";\r
+this._tabbedPane.appendTab("temp", WebInspector.UIString("Temporary File System"), this._tempFileSystemElement, this.selectTemporaryFileSystemTab.bind(this, true));\r
+\r
+this._temporaryRoot = "";\r
+this._persistentRoot = "";\r
+this._isFileSystemDisabled = false;\r
+this._persistentRootError = false;\r
+this._temporaryRootError = false;\r
+this.fileSystemVisible = true;\r
+this._selectFileSystemTab();\r
+this.refreshFileSystem();\r
+}\r
+\r
+WebInspector.FileSystemView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this._update();\r
+},\r
+\r
+set fileSystemVisible(x)\r
+{\r
+if (x === this._fileSystemVisible)\r
+return;\r
+this._fileSystemVisible = x;\r
+if (x)\r
+this.element.addStyleClass("headers-visible");\r
+else\r
+this.element.removeStyleClass("headers-visible"); \r
+this._selectFileSystemTab();\r
+},\r
+\r
+_update: function()\r
+{\r
+this._selectFileSystemTab();\r
+WebInspector.FileSystem.getFileSystemPathsAsync(this._origin);\r
+},\r
+\r
+updateFileSystemPath: function(root, type, origin)\r
+{\r
+if (origin == this._origin && type == WebInspector.FileSystem.PERSISTENT) {\r
+this._persistentRoot = root;\r
+this._persistentRootError = false;\r
+}\r
+\r
+if (origin == this._origin && type == WebInspector.FileSystem.TEMPORARY) {\r
+this._temporaryRoot = root;\r
+this._temporaryRootErrorError = false;\r
+}\r
+\r
+this.refreshFileSystem();\r
+},\r
+\r
+updateFileSystemError: function(type, origin)\r
+{\r
+if (type == WebInspector.FileSystem.PERSISTENT)\r
+this._persistentRootError = true;\r
+\r
+if (type == WebInspector.FileSystem.TEMPORARY)\r
+this._temporaryRootError = true;\r
+\r
+this.refreshFileSystem();\r
+},\r
+\r
+setFileSystemDisabled: function()\r
+{\r
+this._isFileSystemDisabled = true;\r
+this.refreshFileSystem();\r
+},\r
+_selectFileSystemTab: function()\r
+{\r
+this._tabbedPane.selectTab("persistent");\r
+},\r
+\r
+selectTemporaryFileSystemTab: function()\r
+{\r
+this._tabbedPane.selectTab("temp");\r
+},\r
+\r
+_revealPersistentFolderInOS: function()\r
+{\r
+InspectorBackend.revealFolderInOS(this._persistentRoot);\r
+},\r
+\r
+_revealTemporaryFolderInOS: function()\r
+{\r
+InspectorBackend.revealFolderInOS(this._temporaryRoot);\r
+},\r
+\r
+_createTextAndButton: function(fileSystemElement, rootPathText, type, isError)\r
+{\r
+fileSystemElement.removeChildren();\r
+var rootPath = WebInspector.UIString("File System root path not available.");\r
+if (this._isFileSystemDisabled)\r
+rootPath = WebInspector.UIString("File System is disabled.");\r
+else if (isError)\r
+rootPath = WebInspector.UIString("Error in fetching root path for file system.");\r
+else if (rootPathText)\r
+rootPath = rootPathText;\r
+\r
+var rootTextNode = document.createTextNode("Root: " + rootPath.escapeHTML());\r
+var rootSystemElement = document.createElement("div");\r
+rootSystemElement.className = "header-value source-code";\r
+rootSystemElement.appendChild(rootTextNode);\r
+fileSystemElement.appendChild(rootSystemElement);\r
+\r
+if (!isError && rootPathText) {\r
+\r
+var contentElement = document.createElement("div");\r
+contentElement.className = "panel-enabler-view-content";\r
+fileSystemElement.appendChild(contentElement);\r
+var choicesForm = document.createElement("form");\r
+contentElement.appendChild(choicesForm);\r
+var enableButton = document.createElement("button");\r
+enableButton.setAttribute("type", "button");\r
+enableButton.textContent = WebInspector.UIString("Reveal folder in OS");\r
+\r
+if (type == WebInspector.FileSystem.PERSISTENT)\r
+enableButton.addEventListener("click", this._revealPersistentFolderInOS.bind(this), false);\r
+if (type == WebInspector.FileSystem.TEMPORARY)\r
+enableButton.addEventListener("click", this._revealTemporaryFolderInOS.bind(this), false);\r
+choicesForm.appendChild(enableButton);\r
+fileSystemElement.appendChild(contentElement);\r
+}\r
+},\r
+\r
+refreshFileSystem: function()\r
+{\r
+this._createTextAndButton(this._persistentFileSystemElement, this._persistentRoot, WebInspector.FileSystem.PERSISTENT, this._persistentRootError);\r
+this._createTextAndButton(this._tempFileSystemElement, this._temporaryRoot, WebInspector.FileSystem.TEMPORARY, this._temporaryRootError);\r
+}, \r
+}\r
+\r
+WebInspector.FileSystemView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Script = function(sourceID, sourceURL, source, startingLine, errorLine, errorMessage, worldType)\r
+{\r
+this.sourceID = sourceID;\r
+this.sourceURL = sourceURL;\r
+this._source = source;\r
+this.startingLine = startingLine;\r
+this.errorLine = errorLine;\r
+this.errorMessage = errorMessage;\r
+this.worldType = worldType;\r
+\r
+\r
+\r
+\r
+\r
+if (!sourceURL) {\r
+\r
+var pattern = /^\s*\/\/[ \t]*@[ \t]*sourceURL[ \t]*=[ \t]*(\S+).*$/m;\r
+var match = pattern.exec(source);\r
+\r
+if (match)\r
+this.sourceURL = match[1];\r
+}\r
+}\r
+\r
+WebInspector.Script.WorldType = {\r
+MAIN_WORLD: 0,\r
+EXTENSIONS_WORLD: 1\r
+}\r
+\r
+WebInspector.Script.WorldType = {\r
+MAIN_WORLD: 0,\r
+EXTENSIONS_WORLD: 1\r
+}\r
+\r
+WebInspector.Script.Events = {\r
+SourceChanged: "source-changed"\r
+}\r
+\r
+WebInspector.Script.prototype = {\r
+get linesCount()\r
+{\r
+if (!this.source)\r
+return 0;\r
+if (this._linesCount)\r
+return this._linesCount;\r
+this._linesCount = 0;\r
+var lastIndex = this.source.indexOf("\n");\r
+while (lastIndex !== -1) {\r
+lastIndex = this.source.indexOf("\n", lastIndex + 1)\r
+this._linesCount++;\r
+}\r
+return this._linesCount;\r
+},\r
+\r
+get source()\r
+{\r
+return this._source;\r
+},\r
+\r
+set source(source)\r
+{\r
+this._source = source;\r
+this.dispatchEventToListeners(WebInspector.Script.Events.SourceChanged);\r
+}\r
+}\r
+\r
+WebInspector.Script.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Breakpoint = function(debuggerModel, breakpointId, sourceID, url, line, enabled, condition)\r
+{\r
+this.id = breakpointId;\r
+this.url = url;\r
+this.line = line;\r
+this.sourceID = sourceID;\r
+this._enabled = enabled;\r
+this._condition = condition || "";\r
+this._sourceText = "";\r
+this._hit = false;\r
+this._debuggerModel = debuggerModel;\r
+}\r
+\r
+WebInspector.Breakpoint.prototype = {\r
+get enabled()\r
+{\r
+return this._enabled;\r
+},\r
+\r
+get sourceText()\r
+{\r
+return this._sourceText;\r
+},\r
+\r
+set sourceText(text)\r
+{\r
+this._sourceText = text;\r
+this.dispatchEventToListeners("label-changed");\r
+},\r
+\r
+get condition()\r
+{\r
+return this._condition;\r
+},\r
+\r
+get hit()\r
+{\r
+return this._hit;\r
+},\r
+\r
+set hit(hit)\r
+{\r
+this._hit = hit;\r
+this.dispatchEventToListeners("hit-state-changed");\r
+},\r
+\r
+click: function(event)\r
+{\r
+WebInspector.panels.scripts.showSourceLine(this.url, this.line);\r
+},\r
+\r
+compareTo: function(other)\r
+{\r
+if (this.url != other.url)\r
+return this.url < other.url ? -1 : 1;\r
+if (this.line != other.line)\r
+return this.line < other.line ? -1 : 1;\r
+return 0;\r
+},\r
+\r
+populateLabelElement: function(element)\r
+{\r
+var displayName = this.url ? WebInspector.displayNameForURL(this.url) : WebInspector.UIString("(program)");\r
+var labelElement = document.createTextNode(displayName + ":" + this.line);\r
+element.appendChild(labelElement);\r
+\r
+var sourceTextElement = document.createElement("div");\r
+sourceTextElement.textContent = this.sourceText;\r
+sourceTextElement.className = "source-text monospace";\r
+element.appendChild(sourceTextElement);\r
+},\r
+\r
+remove: function()\r
+{\r
+this._debuggerModel.removeBreakpoint(this.id);\r
+this.dispatchEventToListeners("removed");\r
+this.removeAllListeners();\r
+delete this._debuggerModel;\r
+}\r
+}\r
+\r
+WebInspector.Breakpoint.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.BreakpointManager = function()\r
+{\r
+this._stickyBreakpoints = {};\r
+var breakpoints = WebInspector.settings.findSettingForAllProjects("nativeBreakpoints");\r
+for (var projectId in breakpoints)\r
+this._stickyBreakpoints[projectId] = this._validateBreakpoints(breakpoints[projectId]);\r
+InspectorBackend.setStickyBreakpoints(this._stickyBreakpoints);\r
+\r
+this._breakpoints = {};\r
+this._domBreakpointsRestored = false;\r
+this._scriptBreakpoints = {};\r
+\r
+WebInspector.settings.addEventListener(WebInspector.Settings.Events.ProjectChanged, this._projectChanged, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointAdded, this._scriptBreakpointAdded, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointRemoved, this._scriptBreakpointRemoved, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this);\r
+}\r
+\r
+WebInspector.BreakpointManager.BreakpointTypes = {\r
+DOM: "DOM",\r
+JS: "JS",\r
+EventListener: "EventListener",\r
+XHR: "XHR"\r
+}\r
+\r
+WebInspector.BreakpointManager.Events = {\r
+DOMBreakpointAdded: "dom-breakpoint-added",\r
+EventListenerBreakpointAdded: "event-listener-breakpoint-added",\r
+XHRBreakpointAdded: "xhr-breakpoint-added",\r
+ProjectChanged: "project-changed"\r
+}\r
+\r
+WebInspector.BreakpointManager.prototype = {\r
+createDOMBreakpoint: function(nodeId, type)\r
+{\r
+this._createDOMBreakpoint(nodeId, type, true, false);\r
+},\r
+\r
+_createDOMBreakpoint: function(nodeId, type, enabled, restored)\r
+{\r
+var node = WebInspector.domAgent.nodeForId(nodeId);\r
+if (!node)\r
+return;\r
+\r
+var breakpointId = this._createDOMBreakpointId(nodeId, type);\r
+if (breakpointId in this._breakpoints)\r
+return;\r
+\r
+var breakpoint = new WebInspector.DOMBreakpoint(node, type);\r
+this._setBreakpoint(breakpointId, breakpoint, enabled, restored);\r
+if (enabled && restored)\r
+breakpoint._enable();\r
+\r
+breakpoint.view = new WebInspector.DOMBreakpointView(this, breakpointId, enabled, node, type);\r
+this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.DOMBreakpointAdded, breakpoint.view);\r
+},\r
+\r
+createEventListenerBreakpoint: function(eventName)\r
+{\r
+this._createEventListenerBreakpoint(eventName, true, false);\r
+},\r
+\r
+_createEventListenerBreakpoint: function(eventName, enabled, restored)\r
+{\r
+var breakpointId = this._createEventListenerBreakpointId(eventName);\r
+if (breakpointId in this._breakpoints)\r
+return;\r
+\r
+var breakpoint = new WebInspector.EventListenerBreakpoint(eventName);\r
+this._setBreakpoint(breakpointId, breakpoint, enabled, restored);\r
+\r
+breakpoint.view = new WebInspector.EventListenerBreakpointView(this, breakpointId, enabled, eventName);\r
+this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.EventListenerBreakpointAdded, breakpoint.view);\r
+},\r
+\r
+_createJavaScriptBreakpoint: function(url, lineNumber, condition, enabled, restored)\r
+{\r
+var breakpointId = this._createJavaScriptBreakpointId(url, lineNumber);\r
+if (breakpointId in this._breakpoints)\r
+return;\r
+\r
+var breakpoint = new WebInspector.JavaScriptBreakpoint(url, lineNumber, condition);\r
+this._setBreakpoint(breakpointId, breakpoint, enabled, restored);\r
+},\r
+\r
+_scriptBreakpointAdded: function(event)\r
+{\r
+var scriptBreakpoint = event.data;\r
+\r
+if (!scriptBreakpoint.url)\r
+return;\r
+\r
+if (!scriptBreakpoint.restored)\r
+this._createJavaScriptBreakpoint(scriptBreakpoint.url, scriptBreakpoint.originalLineNumber, scriptBreakpoint.condition, scriptBreakpoint.enabled, false);\r
+var breakpointId = this._createJavaScriptBreakpointId(scriptBreakpoint.url, scriptBreakpoint.originalLineNumber);\r
+this._scriptBreakpoints[scriptBreakpoint.id] = breakpointId;\r
+},\r
+\r
+_scriptBreakpointRemoved: function(event)\r
+{\r
+var scriptBreakpointId = event.data;\r
+var breakpointId = this._scriptBreakpoints[scriptBreakpointId];\r
+delete this._scriptBreakpoints[scriptBreakpointId];\r
+if (breakpointId in this._breakpoints)\r
+this._removeBreakpoint(breakpointId);\r
+},\r
+\r
+createXHRBreakpoint: function(url)\r
+{\r
+this._createXHRBreakpoint(url, true, false);\r
+},\r
+\r
+_createXHRBreakpoint: function(url, enabled, restored)\r
+{\r
+var breakpointId = this._createXHRBreakpointId(url);\r
+if (breakpointId in this._breakpoints)\r
+return;\r
+\r
+var breakpoint = new WebInspector.XHRBreakpoint(url);\r
+this._setBreakpoint(breakpointId, breakpoint, enabled, restored);\r
+\r
+breakpoint.view = new WebInspector.XHRBreakpointView(this, breakpointId, enabled, url);\r
+this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.XHRBreakpointAdded, breakpoint.view);\r
+},\r
+\r
+_setBreakpoint: function(breakpointId, breakpoint, enabled, restored)\r
+{\r
+this._breakpoints[breakpointId] = breakpoint;\r
+breakpoint.enabled = enabled;\r
+if (restored)\r
+return;\r
+if (enabled)\r
+breakpoint._enable();\r
+this._saveBreakpoints();\r
+},\r
+\r
+_setBreakpointEnabled: function(breakpointId, enabled)\r
+{\r
+var breakpoint = this._breakpoints[breakpointId];\r
+if (breakpoint.enabled === enabled)\r
+return;\r
+if (enabled)\r
+breakpoint._enable();\r
+else\r
+breakpoint._disable();\r
+breakpoint.enabled = enabled;\r
+this._saveBreakpoints();\r
+},\r
+\r
+_removeBreakpoint: function(breakpointId)\r
+{\r
+var breakpoint = this._breakpoints[breakpointId];\r
+if (breakpoint.enabled)\r
+breakpoint._disable();\r
+delete this._breakpoints[breakpointId];\r
+this._saveBreakpoints();\r
+},\r
+\r
+breakpointViewForEventData: function(eventData)\r
+{\r
+var breakpointId;\r
+if (eventData.breakpointType === WebInspector.BreakpointManager.BreakpointTypes.DOM)\r
+breakpointId = this._createDOMBreakpointId(eventData.nodeId, eventData.type);\r
+else if (eventData.breakpointType === WebInspector.BreakpointManager.BreakpointTypes.EventListener)\r
+breakpointId = this._createEventListenerBreakpointId(eventData.eventName);\r
+else if (eventData.breakpointType === WebInspector.BreakpointManager.BreakpointTypes.XHR)\r
+breakpointId = this._createXHRBreakpointId(eventData.breakpointURL);\r
+else\r
+return;\r
+\r
+var breakpoint = this._breakpoints[breakpointId];\r
+if (breakpoint)\r
+return breakpoint.view;\r
+},\r
+\r
+_debuggerPaused: function(event)\r
+{\r
+var eventType = event.data.eventType;\r
+var eventData = event.data.eventData;\r
+\r
+if (eventType !== WebInspector.DebuggerEventTypes.NativeBreakpoint)\r
+return;\r
+\r
+var breakpointView = this.breakpointViewForEventData(eventData);\r
+if (!breakpointView)\r
+return;\r
+\r
+breakpointView.hit = true;\r
+this._lastHitBreakpointView = breakpointView;\r
+},\r
+\r
+_debuggerResumed: function(event)\r
+{\r
+if (!this._lastHitBreakpointView)\r
+return;\r
+this._lastHitBreakpointView.hit = false;\r
+delete this._lastHitBreakpointView;\r
+},\r
+\r
+_projectChanged: function(event)\r
+{\r
+this._breakpoints = {};\r
+this._domBreakpointsRestored = false;\r
+this._scriptBreakpoints = {};\r
+this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.ProjectChanged);\r
+\r
+var breakpoints = this._stickyBreakpoints[WebInspector.settings.projectId] || [];\r
+for (var i = 0; i < breakpoints.length; ++i) {\r
+var breakpoint = breakpoints[i];\r
+if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.EventListener)\r
+this._createEventListenerBreakpoint(breakpoint.condition.eventName, breakpoint.enabled, true);\r
+else if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.JS)\r
+this._createJavaScriptBreakpoint(breakpoint.condition.url, breakpoint.condition.lineNumber, breakpoint.condition.condition, breakpoint.enabled, true);\r
+else if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.XHR)\r
+this._createXHRBreakpoint(breakpoint.condition.url, breakpoint.enabled, true);\r
+}\r
+},\r
+\r
+restoreDOMBreakpoints: function()\r
+{\r
+function didPushNodeByPathToFrontend(path, nodeId)\r
+{\r
+pathToNodeId[path] = nodeId;\r
+pendingCalls -= 1;\r
+if (pendingCalls)\r
+return;\r
+for (var i = 0; i < breakpoints.length; ++i) {\r
+var breakpoint = breakpoints[i];\r
+if (breakpoint.type !== WebInspector.BreakpointManager.BreakpointTypes.DOM)\r
+continue;\r
+var nodeId = pathToNodeId[breakpoint.condition.path];\r
+if (nodeId)\r
+this._createDOMBreakpoint(nodeId, breakpoint.condition.type, breakpoint.enabled, true);\r
+}\r
+this._domBreakpointsRestored = true;\r
+this._saveBreakpoints();\r
+}\r
+\r
+var breakpoints = this._stickyBreakpoints[WebInspector.settings.projectId] || [];\r
+var pathToNodeId = {};\r
+var pendingCalls = 0;\r
+for (var i = 0; i < breakpoints.length; ++i) {\r
+if (breakpoints[i].type !== WebInspector.BreakpointManager.BreakpointTypes.DOM)\r
+continue;\r
+var path = breakpoints[i].condition.path;\r
+if (path in pathToNodeId)\r
+continue;\r
+pathToNodeId[path] = 0;\r
+pendingCalls += 1;\r
+InspectorBackend.pushNodeByPathToFrontend(path, didPushNodeByPathToFrontend.bind(this, path));\r
+}\r
+if (!pendingCalls)\r
+this._domBreakpointsRestored = true;\r
+},\r
+\r
+_saveBreakpoints: function()\r
+{\r
+var breakpoints = [];\r
+for (var breakpointId in this._breakpoints) {\r
+var breakpoint = this._breakpoints[breakpointId];\r
+var persistentBreakpoint = breakpoint._serializeToJSON();\r
+persistentBreakpoint.enabled = breakpoint.enabled;\r
+breakpoints.push(persistentBreakpoint);\r
+}\r
+if (!this._domBreakpointsRestored) {\r
+var stickyBreakpoints = this._stickyBreakpoints[WebInspector.settings.projectId] || [];\r
+for (var i = 0; i < stickyBreakpoints.length; ++i) {\r
+if (stickyBreakpoints[i].type === WebInspector.BreakpointManager.BreakpointTypes.DOM)\r
+breakpoints.push(stickyBreakpoints[i]);\r
+}\r
+}\r
+WebInspector.settings.nativeBreakpoints = breakpoints;\r
+\r
+this._stickyBreakpoints[WebInspector.settings.projectId] = breakpoints;\r
+InspectorBackend.setStickyBreakpoints(this._stickyBreakpoints);\r
+},\r
+\r
+_validateBreakpoints: function(persistentBreakpoints)\r
+{\r
+var breakpoints = [];\r
+var breakpointsSet = {};\r
+for (var i = 0; i < persistentBreakpoints.length; ++i) {\r
+var breakpoint = persistentBreakpoints[i];\r
+if (!("type" in breakpoint && "enabled" in breakpoint && "condition" in breakpoint))\r
+continue;\r
+var id = breakpoint.type + ":";\r
+var condition = breakpoint.condition;\r
+if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.DOM) {\r
+if (typeof condition.path !== "string" || typeof condition.type !== "number")\r
+continue;\r
+id += condition.path + ":" + condition.type;\r
+} else if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.EventListener) {\r
+if (typeof condition.eventName !== "string")\r
+continue;\r
+id += condition.eventName;\r
+} else if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.JS) {\r
+if (typeof condition.url !== "string" || typeof condition.lineNumber !== "number" || typeof condition.condition !== "string")\r
+continue;\r
+id += condition.url + ":" + condition.lineNumber;\r
+} else if (breakpoint.type === WebInspector.BreakpointManager.BreakpointTypes.XHR) {\r
+if (typeof condition.url !== "string")\r
+continue;\r
+id += condition.url;\r
+}\r
+if (id in breakpointsSet)\r
+continue;\r
+breakpointsSet[id] = true;\r
+breakpoints.push(breakpoint);\r
+}\r
+return breakpoints;\r
+},\r
+\r
+_createDOMBreakpointId: function(nodeId, type)\r
+{\r
+return "dom:" + nodeId + ":" + type;\r
+},\r
+\r
+_createJavaScriptBreakpointId: function(url, lineNumber)\r
+{\r
+return "js:" + url + ":" + lineNumber;\r
+},\r
+\r
+_createEventListenerBreakpointId: function(eventName)\r
+{\r
+return "eventListner:" + eventName;\r
+},\r
+\r
+_createXHRBreakpointId: function(url)\r
+{\r
+return "xhr:" + url;\r
+}\r
+}\r
+\r
+WebInspector.BreakpointManager.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.DOMBreakpoint = function(node, type)\r
+{\r
+this._nodeId = node.id;\r
+this._path = node.path();\r
+this._type = type;\r
+}\r
+\r
+WebInspector.DOMBreakpoint.prototype = {\r
+_enable: function()\r
+{\r
+InspectorBackend.setDOMBreakpoint(this._nodeId, this._type);\r
+},\r
+\r
+_disable: function()\r
+{\r
+InspectorBackend.removeDOMBreakpoint(this._nodeId, this._type);\r
+},\r
+\r
+_serializeToJSON: function()\r
+{\r
+var type = WebInspector.BreakpointManager.BreakpointTypes.DOM;\r
+return { type: type, condition: { path: this._path, type: this._type } };\r
+}\r
+}\r
+\r
+WebInspector.JavaScriptBreakpoint = function(url, lineNumber, condition)\r
+{\r
+this._url = url;\r
+this._lineNumber = lineNumber;\r
+this._condition = condition;\r
+}\r
+\r
+WebInspector.JavaScriptBreakpoint.prototype = {\r
+_enable: function()\r
+{\r
+},\r
+\r
+_disable: function()\r
+{\r
+},\r
+\r
+_serializeToJSON: function()\r
+{\r
+var type = WebInspector.BreakpointManager.BreakpointTypes.JS;\r
+return { type: type, condition: { url: this._url, lineNumber: this._lineNumber, condition: this._condition } };\r
+}\r
+}\r
+\r
+WebInspector.EventListenerBreakpoint = function(eventName)\r
+{\r
+this._eventName = eventName;\r
+}\r
+\r
+WebInspector.EventListenerBreakpoint.prototype = {\r
+_enable: function()\r
+{\r
+InspectorBackend.setEventListenerBreakpoint(this._eventName);\r
+},\r
+\r
+_disable: function()\r
+{\r
+InspectorBackend.removeEventListenerBreakpoint(this._eventName);\r
+},\r
+\r
+_serializeToJSON: function()\r
+{\r
+var type = WebInspector.BreakpointManager.BreakpointTypes.EventListener;\r
+return { type: type, condition: { eventName: this._eventName } };\r
+}\r
+}\r
+\r
+WebInspector.XHRBreakpoint = function(url)\r
+{\r
+this._url = url;\r
+}\r
+\r
+WebInspector.XHRBreakpoint.prototype = {\r
+_enable: function()\r
+{\r
+InspectorBackend.setXHRBreakpoint(this._url);\r
+},\r
+\r
+_disable: function()\r
+{\r
+InspectorBackend.removeXHRBreakpoint(this._url);\r
+},\r
+\r
+_serializeToJSON: function()\r
+{\r
+var type = WebInspector.BreakpointManager.BreakpointTypes.XHR;\r
+return { type: type, condition: { url: this._url } };\r
+}\r
+}\r
+\r
+\r
+\r
+WebInspector.NativeBreakpointView = function(manager, id, enabled)\r
+{\r
+this._manager = manager;\r
+this._id = id;\r
+this._enabled = enabled;\r
+this._hit = false;\r
+}\r
+\r
+WebInspector.NativeBreakpointView.prototype = {\r
+get enabled()\r
+{\r
+return this._enabled;\r
+},\r
+\r
+set enabled(enabled)\r
+{\r
+this._manager._setBreakpointEnabled(this._id, enabled);\r
+this._enabled = enabled;\r
+this.dispatchEventToListeners("enable-changed");\r
+},\r
+\r
+get hit()\r
+{\r
+return this._hit;\r
+},\r
+\r
+set hit(hit)\r
+{\r
+this._hit = hit;\r
+this.dispatchEventToListeners("hit-state-changed");\r
+},\r
+\r
+remove: function()\r
+{\r
+this._manager._removeBreakpoint(this._id);\r
+this._onRemove();\r
+this.dispatchEventToListeners("removed");\r
+},\r
+\r
+_compare: function(x, y)\r
+{\r
+if (x !== y)\r
+return x < y ? -1 : 1;\r
+return 0;\r
+},\r
+\r
+_onRemove: function()\r
+{\r
+}\r
+}\r
+\r
+WebInspector.NativeBreakpointView.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.DOMBreakpointView = function(manager, id, enabled, node, type)\r
+{\r
+WebInspector.NativeBreakpointView.call(this, manager, id, enabled);\r
+this._node = node;\r
+this._nodeId = node.id;\r
+this._type = type;\r
+node.breakpoints[this._type] = this;\r
+}\r
+\r
+WebInspector.DOMBreakpointView.prototype = {\r
+compareTo: function(other)\r
+{\r
+return this._compare(this._type, other._type);\r
+},\r
+\r
+populateLabelElement: function(element)\r
+{\r
+\r
+var linkifiedNode = WebInspector.panels.elements.linkifyNodeById(this._nodeId);\r
+linkifiedNode.addStyleClass("monospace");\r
+element.appendChild(linkifiedNode);\r
+var description = document.createElement("div");\r
+description.className = "source-text";\r
+description.textContent = WebInspector.domBreakpointTypeLabel(this._type);\r
+element.appendChild(description);\r
+},\r
+\r
+populateStatusMessageElement: function(element, eventData)\r
+{\r
+var substitutions = [WebInspector.domBreakpointTypeLabel(this._type), WebInspector.panels.elements.linkifyNodeById(this._nodeId)];\r
+var formatters = {\r
+s: function(substitution)\r
+{\r
+return substitution;\r
+}\r
+};\r
+function append(a, b)\r
+{\r
+if (typeof b === "string")\r
+b = document.createTextNode(b);\r
+element.appendChild(b);\r
+}\r
+if (this._type === WebInspector.DOMBreakpointTypes.SubtreeModified) {\r
+var targetNode = WebInspector.panels.elements.linkifyNodeById(eventData.targetNodeId);\r
+if (eventData.insertion) {\r
+if (eventData.targetNodeId !== this._nodeId)\r
+WebInspector.formatLocalized("Paused on a \"%s\" breakpoint set on %s, because a new child was added to its descendant %s.", substitutions.concat(targetNode), formatters, "", append);\r
+else\r
+WebInspector.formatLocalized("Paused on a \"%s\" breakpoint set on %s, because a new child was added to that node.", substitutions, formatters, "", append);\r
+} else\r
+WebInspector.formatLocalized("Paused on a \"%s\" breakpoint set on %s, because its descendant %s was removed.", substitutions.concat(targetNode), formatters, "", append);\r
+} else\r
+WebInspector.formatLocalized("Paused on a \"%s\" breakpoint set on %s.", substitutions, formatters, "", append);\r
+},\r
+\r
+_onRemove: function()\r
+{\r
+delete this._node.breakpoints[this._type];\r
+}\r
+}\r
+\r
+WebInspector.DOMBreakpointView.prototype.__proto__ = WebInspector.NativeBreakpointView.prototype;\r
+\r
+WebInspector.EventListenerBreakpointView = function(manager, id, enabled, eventName)\r
+{\r
+WebInspector.NativeBreakpointView.call(this, manager, id, enabled);\r
+this._eventName = eventName;\r
+}\r
+\r
+WebInspector.EventListenerBreakpointView.eventNameForUI = function(eventName)\r
+{\r
+if (!WebInspector.EventListenerBreakpointView._eventNamesForUI) {\r
+WebInspector.EventListenerBreakpointView._eventNamesForUI = {\r
+"instrumentation:setTimer": WebInspector.UIString("Set Timer"),\r
+"instrumentation:clearTimer": WebInspector.UIString("Clear Timer"),\r
+"instrumentation:timerFired": WebInspector.UIString("Timer Fired")\r
+};\r
+}\r
+return WebInspector.EventListenerBreakpointView._eventNamesForUI[eventName] || eventName.substring(eventName.indexOf(":") + 1);\r
+}\r
+\r
+WebInspector.EventListenerBreakpointView.prototype = {\r
+get eventName()\r
+{\r
+return this._eventName;\r
+},\r
+\r
+compareTo: function(other)\r
+{\r
+return this._compare(this._eventName, other._eventName);\r
+},\r
+\r
+populateLabelElement: function(element)\r
+{\r
+element.appendChild(document.createTextNode(this._uiEventName()));\r
+},\r
+\r
+populateStatusMessageElement: function(element, eventData)\r
+{\r
+var status = WebInspector.UIString("Paused on a \"%s\" Event Listener.", this._uiEventName());\r
+element.appendChild(document.createTextNode(status));\r
+},\r
+\r
+_uiEventName: function()\r
+{\r
+return WebInspector.EventListenerBreakpointView.eventNameForUI(this._eventName);\r
+}\r
+}\r
+\r
+WebInspector.EventListenerBreakpointView.prototype.__proto__ = WebInspector.NativeBreakpointView.prototype;\r
+\r
+WebInspector.XHRBreakpointView = function(manager, id, enabled, url)\r
+{\r
+WebInspector.NativeBreakpointView.call(this, manager, id, enabled);\r
+this._url = url;\r
+}\r
+\r
+WebInspector.XHRBreakpointView.prototype = {\r
+compareTo: function(other)\r
+{\r
+return this._compare(this._url, other._url);\r
+},\r
+\r
+populateEditElement: function(element)\r
+{\r
+element.textContent = this._url;\r
+},\r
+\r
+populateLabelElement: function(element)\r
+{\r
+var label;\r
+if (!this._url.length)\r
+label = WebInspector.UIString("Any XHR");\r
+else\r
+label = WebInspector.UIString("URL contains \"%s\"", this._url);\r
+element.appendChild(document.createTextNode(label));\r
+element.addStyleClass("cursor-auto");\r
+},\r
+\r
+populateStatusMessageElement: function(element)\r
+{\r
+var status = WebInspector.UIString("Paused on a XMLHttpRequest.");\r
+element.appendChild(document.createTextNode(status));\r
+}\r
+}\r
+\r
+WebInspector.XHRBreakpointView.prototype.__proto__ = WebInspector.NativeBreakpointView.prototype;\r
+\r
+WebInspector.DOMBreakpointTypes = {\r
+SubtreeModified: 0,\r
+AttributeModified: 1,\r
+NodeRemoved: 2\r
+};\r
+\r
+WebInspector.domBreakpointTypeLabel = function(type)\r
+{\r
+if (!WebInspector._DOMBreakpointTypeLabels) {\r
+WebInspector._DOMBreakpointTypeLabels = {};\r
+WebInspector._DOMBreakpointTypeLabels[WebInspector.DOMBreakpointTypes.SubtreeModified] = WebInspector.UIString("Subtree Modified");\r
+WebInspector._DOMBreakpointTypeLabels[WebInspector.DOMBreakpointTypes.AttributeModified] = WebInspector.UIString("Attribute Modified");\r
+WebInspector._DOMBreakpointTypeLabels[WebInspector.DOMBreakpointTypes.NodeRemoved] = WebInspector.UIString("Node Removed");\r
+}\r
+return WebInspector._DOMBreakpointTypeLabels[type];\r
+}\r
+\r
+WebInspector.domBreakpointTypeContextMenuLabel = function(type)\r
+{\r
+if (!WebInspector._DOMBreakpointTypeContextMenuLabels) {\r
+WebInspector._DOMBreakpointTypeContextMenuLabels = {};\r
+WebInspector._DOMBreakpointTypeContextMenuLabels[WebInspector.DOMBreakpointTypes.SubtreeModified] = WebInspector.UIString("Break on Subtree Modifications");\r
+WebInspector._DOMBreakpointTypeContextMenuLabels[WebInspector.DOMBreakpointTypes.AttributeModified] = WebInspector.UIString("Break on Attributes Modifications");\r
+WebInspector._DOMBreakpointTypeContextMenuLabels[WebInspector.DOMBreakpointTypes.NodeRemoved] = WebInspector.UIString("Break on Node Removal");\r
+}\r
+return WebInspector._DOMBreakpointTypeContextMenuLabels[type];\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SidebarPane = function(title)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.className = "pane";\r
+\r
+this.titleElement = document.createElement("div");\r
+this.titleElement.className = "title";\r
+this.titleElement.tabIndex = 0;\r
+this.titleElement.addEventListener("click", this.toggleExpanded.bind(this), false);\r
+this.titleElement.addEventListener("keydown", this._onTitleKeyDown.bind(this), false);\r
+\r
+this.bodyElement = document.createElement("div");\r
+this.bodyElement.className = "body";\r
+\r
+this.element.appendChild(this.titleElement);\r
+this.element.appendChild(this.bodyElement);\r
+\r
+this.title = title;\r
+this.growbarVisible = false;\r
+this.expanded = false;\r
+}\r
+\r
+WebInspector.SidebarPane.prototype = {\r
+get title()\r
+{\r
+return this._title;\r
+},\r
+\r
+set title(x)\r
+{\r
+if (this._title === x)\r
+return;\r
+this._title = x;\r
+this.titleElement.textContent = x;\r
+},\r
+\r
+get growbarVisible()\r
+{\r
+return this._growbarVisible;\r
+},\r
+\r
+set growbarVisible(x)\r
+{\r
+if (this._growbarVisible === x)\r
+return;\r
+\r
+this._growbarVisible = x;\r
+\r
+if (x && !this._growbarElement) {\r
+this._growbarElement = document.createElement("div");\r
+this._growbarElement.className = "growbar";\r
+this.element.appendChild(this._growbarElement);\r
+} else if (!x && this._growbarElement) {\r
+if (this._growbarElement.parentNode)\r
+this._growbarElement.parentNode(this._growbarElement);\r
+delete this._growbarElement;\r
+}\r
+},\r
+\r
+get expanded()\r
+{\r
+return this._expanded;\r
+},\r
+\r
+set expanded(x)\r
+{\r
+if (x)\r
+this.expand();\r
+else\r
+this.collapse();\r
+},\r
+\r
+expand: function()\r
+{\r
+if (this._expanded)\r
+return;\r
+this._expanded = true;\r
+this.element.addStyleClass("expanded");\r
+if (this.onexpand)\r
+this.onexpand(this);\r
+},\r
+\r
+collapse: function()\r
+{\r
+if (!this._expanded)\r
+return;\r
+this._expanded = false;\r
+this.element.removeStyleClass("expanded");\r
+if (this.oncollapse)\r
+this.oncollapse(this);\r
+},\r
+\r
+toggleExpanded: function()\r
+{\r
+this.expanded = !this.expanded;\r
+},\r
+\r
+_onTitleKeyDown: function(event)\r
+{\r
+if (isEnterKey(event) || event.keyCode === WebInspector.KeyboardShortcut.Keys.Space.code)\r
+this.toggleExpanded();\r
+}\r
+}\r
+\r
+WebInspector.SidebarPane.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ElementsTreeOutline = function() {\r
+this.element = document.createElement("ol");\r
+this.element.addEventListener("mousedown", this._onmousedown.bind(this), false);\r
+this.element.addEventListener("mousemove", this._onmousemove.bind(this), false);\r
+this.element.addEventListener("mouseout", this._onmouseout.bind(this), false);\r
+\r
+TreeOutline.call(this, this.element);\r
+\r
+this.includeRootDOMNode = true;\r
+this.selectEnabled = false;\r
+this.showInElementsPanelEnabled = false;\r
+this.rootDOMNode = null;\r
+this.focusedDOMNode = null;\r
+\r
+this.element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true);\r
+}\r
+\r
+WebInspector.ElementsTreeOutline.prototype = {\r
+get rootDOMNode()\r
+{\r
+return this._rootDOMNode;\r
+},\r
+\r
+set rootDOMNode(x)\r
+{\r
+if (this._rootDOMNode === x)\r
+return;\r
+\r
+this._rootDOMNode = x;\r
+\r
+this._isXMLMimeType = !!(WebInspector.mainResource && WebInspector.mainResource.mimeType && WebInspector.mainResource.mimeType.match(/x(?:ht)?ml/i));\r
+\r
+this.update();\r
+},\r
+\r
+get isXMLMimeType()\r
+{\r
+return this._isXMLMimeType;\r
+},\r
+\r
+nodeNameToCorrectCase: function(nodeName)\r
+{\r
+return this.isXMLMimeType ? nodeName : nodeName.toLowerCase();\r
+},\r
+\r
+get focusedDOMNode()\r
+{\r
+return this._focusedDOMNode;\r
+},\r
+\r
+set focusedDOMNode(x)\r
+{\r
+if (this._focusedDOMNode === x) {\r
+this.revealAndSelectNode(x);\r
+return;\r
+}\r
+\r
+this._focusedDOMNode = x;\r
+\r
+this.revealAndSelectNode(x);\r
+\r
+\r
+\r
+\r
+\r
+if (this._focusedDOMNode === x)\r
+this.focusedNodeChanged();\r
+},\r
+\r
+get editing()\r
+{\r
+return this._editing;\r
+},\r
+\r
+update: function()\r
+{\r
+var selectedNode = this.selectedTreeElement ? this.selectedTreeElement.representedObject : null;\r
+\r
+this.removeChildren();\r
+\r
+if (!this.rootDOMNode)\r
+return;\r
+\r
+var treeElement;\r
+if (this.includeRootDOMNode) {\r
+treeElement = new WebInspector.ElementsTreeElement(this.rootDOMNode);\r
+treeElement.selectable = this.selectEnabled;\r
+this.appendChild(treeElement);\r
+} else {\r
+\r
+var node = this.rootDOMNode.firstChild;\r
+while (node) {\r
+treeElement = new WebInspector.ElementsTreeElement(node);\r
+treeElement.selectable = this.selectEnabled;\r
+this.appendChild(treeElement);\r
+node = node.nextSibling;\r
+}\r
+}\r
+\r
+if (selectedNode)\r
+this.revealAndSelectNode(selectedNode);\r
+},\r
+\r
+updateSelection: function()\r
+{\r
+if (!this.selectedTreeElement)\r
+return;\r
+var element = this.treeOutline.selectedTreeElement;\r
+element.updateSelection();\r
+},\r
+\r
+focusedNodeChanged: function(forceUpdate) {},\r
+\r
+findTreeElement: function(node)\r
+{\r
+var treeElement = TreeOutline.prototype.findTreeElement.call(this, node, isAncestorNode, parentNode);\r
+if (!treeElement && node.nodeType === Node.TEXT_NODE) {\r
+\r
+treeElement = TreeOutline.prototype.findTreeElement.call(this, node.parentNode, isAncestorNode, parentNode);\r
+}\r
+\r
+return treeElement;\r
+},\r
+\r
+createTreeElementFor: function(node)\r
+{\r
+var treeElement = this.findTreeElement(node);\r
+if (treeElement)\r
+return treeElement;\r
+if (!node.parentNode)\r
+return null;\r
+\r
+var treeElement = this.createTreeElementFor(node.parentNode);\r
+if (treeElement && treeElement.showChild(node.index))\r
+return treeElement.children[node.index];\r
+\r
+return null;\r
+},\r
+\r
+set suppressRevealAndSelect(x)\r
+{\r
+if (this._suppressRevealAndSelect === x)\r
+return;\r
+this._suppressRevealAndSelect = x;\r
+},\r
+\r
+revealAndSelectNode: function(node)\r
+{\r
+if (!node || this._suppressRevealAndSelect)\r
+return;\r
+\r
+var treeElement = this.createTreeElementFor(node);\r
+if (!treeElement)\r
+return;\r
+\r
+treeElement.reveal();\r
+treeElement.select();\r
+},\r
+\r
+_treeElementFromEvent: function(event)\r
+{\r
+var root = this.element;\r
+\r
+\r
+\r
+var x = root.totalOffsetLeft + root.offsetWidth - 20;\r
+\r
+var y = event.pageY;\r
+\r
+\r
+\r
+\r
+var elementUnderMouse = this.treeElementFromPoint(x, y);\r
+var elementAboveMouse = this.treeElementFromPoint(x, y - 2);\r
+var element;\r
+if (elementUnderMouse === elementAboveMouse)\r
+element = elementUnderMouse;\r
+else\r
+element = this.treeElementFromPoint(x, y + 2);\r
+\r
+return element;\r
+},\r
+\r
+_onmousedown: function(event)\r
+{\r
+var element = this._treeElementFromEvent(event);\r
+\r
+if (!element || element.isEventWithinDisclosureTriangle(event))\r
+return;\r
+\r
+element.select();\r
+},\r
+\r
+_onmousemove: function(event)\r
+{\r
+var element = this._treeElementFromEvent(event);\r
+if (element && this._previousHoveredElement === element)\r
+return;\r
+\r
+if (this._previousHoveredElement) {\r
+this._previousHoveredElement.hovered = false;\r
+delete this._previousHoveredElement;\r
+}\r
+\r
+if (element) {\r
+element.hovered = true;\r
+this._previousHoveredElement = element;\r
+\r
+\r
+if (element.representedObject && !element.tooltip)\r
+element._createTooltipForNode();\r
+}\r
+\r
+WebInspector.highlightDOMNode(element ? element.representedObject.id : 0);\r
+},\r
+\r
+_onmouseout: function(event)\r
+{\r
+var nodeUnderMouse = document.elementFromPoint(event.pageX, event.pageY);\r
+if (nodeUnderMouse && nodeUnderMouse.isDescendant(this.element))\r
+return;\r
+\r
+if (this._previousHoveredElement) {\r
+this._previousHoveredElement.hovered = false;\r
+delete this._previousHoveredElement;\r
+}\r
+\r
+WebInspector.highlightDOMNode(0);\r
+},\r
+\r
+_contextMenuEventFired: function(event)\r
+{\r
+var listItem = event.target.enclosingNodeOrSelfWithNodeName("LI");\r
+if (!listItem || !listItem.treeElement)\r
+return;\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+if (this.showInElementsPanelEnabled) {\r
+function focusElement()\r
+{\r
+WebInspector.currentPanel = WebInspector.panels.elements;\r
+WebInspector.panels.elements.focusedDOMNode = listItem.treeElement.representedObject;\r
+}\r
+contextMenu.appendItem(WebInspector.UIString("Reveal in Elements Panel"), focusElement.bind(this));\r
+} else {\r
+var href = event.target.enclosingNodeOrSelfWithClass("webkit-html-resource-link") || event.target.enclosingNodeOrSelfWithClass("webkit-html-external-link");\r
+var tag = event.target.enclosingNodeOrSelfWithClass("webkit-html-tag");\r
+var textNode = event.target.enclosingNodeOrSelfWithClass("webkit-html-text-node");\r
+var needSeparator;\r
+if (href)\r
+needSeparator = WebInspector.panels.elements.populateHrefContextMenu(contextMenu, event, href);\r
+if (tag && listItem.treeElement._populateTagContextMenu) {\r
+if (needSeparator)\r
+contextMenu.appendSeparator();\r
+listItem.treeElement._populateTagContextMenu(contextMenu, event);\r
+} else if (textNode && listItem.treeElement._populateTextContextMenu) {\r
+if (needSeparator)\r
+contextMenu.appendSeparator();\r
+listItem.treeElement._populateTextContextMenu(contextMenu, textNode);\r
+}\r
+}\r
+contextMenu.show(event);\r
+}\r
+}\r
+\r
+WebInspector.ElementsTreeOutline.prototype.__proto__ = TreeOutline.prototype;\r
+\r
+WebInspector.ElementsTreeElement = function(node, elementCloseTag)\r
+{\r
+this._elementCloseTag = elementCloseTag;\r
+var hasChildrenOverride = !elementCloseTag && node.hasChildNodes() && !this._showInlineText(node);\r
+\r
+\r
+TreeElement.call(this, "", node, hasChildrenOverride);\r
+\r
+if (this.representedObject.nodeType == Node.ELEMENT_NODE && !elementCloseTag)\r
+this._canAddAttributes = true;\r
+this._searchQuery = null;\r
+this._expandedChildrenLimit = WebInspector.ElementsTreeElement.InitialChildrenLimit;\r
+}\r
+\r
+WebInspector.ElementsTreeElement.InitialChildrenLimit = 500;\r
+\r
+\r
+\r
+\r
+WebInspector.ElementsTreeElement.ForbiddenClosingTagElements = [\r
+"area", "base", "basefont", "br", "canvas", "col", "command", "embed", "frame",\r
+"hr", "img", "input", "isindex", "keygen", "link", "meta", "param", "source"\r
+].keySet();\r
+\r
+\r
+WebInspector.ElementsTreeElement.EditTagBlacklist = [\r
+"html", "head", "body"\r
+].keySet();\r
+\r
+WebInspector.ElementsTreeElement.prototype = {\r
+highlightSearchResults: function(searchQuery)\r
+{\r
+if (this._searchQuery === searchQuery)\r
+return;\r
+\r
+this._searchQuery = searchQuery;\r
+this.updateTitle();\r
+},\r
+\r
+get hovered()\r
+{\r
+return this._hovered;\r
+},\r
+\r
+set hovered(x)\r
+{\r
+if (this._hovered === x)\r
+return;\r
+\r
+this._hovered = x;\r
+\r
+if (this.listItemElement) {\r
+if (x) {\r
+this.updateSelection();\r
+this.listItemElement.addStyleClass("hovered");\r
+} else {\r
+this.listItemElement.removeStyleClass("hovered");\r
+}\r
+}\r
+},\r
+\r
+get expandedChildrenLimit()\r
+{\r
+return this._expandedChildrenLimit;\r
+},\r
+\r
+set expandedChildrenLimit(x)\r
+{\r
+if (this._expandedChildrenLimit === x)\r
+return;\r
+\r
+this._expandedChildrenLimit = x;\r
+if (this.treeOutline && !this._updateChildrenInProgress)\r
+this._updateChildren(true);\r
+},\r
+\r
+get expandedChildCount()\r
+{\r
+var count = this.children.length;\r
+if (count && this.children[count - 1]._elementCloseTag)\r
+count--;\r
+if (count && this.children[count - 1].expandAllButton)\r
+count--;\r
+return count;\r
+},\r
+\r
+showChild: function(index)\r
+{\r
+if (this._elementCloseTag)\r
+return;\r
+\r
+if (index >= this.expandedChildrenLimit) {\r
+this._expandedChildrenLimit = index + 1;\r
+this._updateChildren(true);\r
+}\r
+\r
+\r
+return this.expandedChildCount > index;\r
+},\r
+\r
+_createTooltipForNode: function()\r
+{\r
+var node = this.representedObject;\r
+if (!node.nodeName || node.nodeName.toLowerCase() !== "img")\r
+return;\r
+\r
+function setTooltip(properties)\r
+{\r
+if (!properties)\r
+return;\r
+\r
+if (properties.offsetHeight === properties.naturalHeight && properties.offsetWidth === properties.naturalWidth)\r
+this.tooltip = WebInspector.UIString("%d × %d pixels", properties.offsetWidth, properties.offsetHeight);\r
+else\r
+this.tooltip = WebInspector.UIString("%d × %d pixels (Natural: %d × %d pixels)", properties.offsetWidth, properties.offsetHeight, properties.naturalWidth, properties.naturalHeight);\r
+}\r
+\r
+InjectedScriptAccess.getForNode(node).getNodeProperties(node.id, ["naturalHeight", "naturalWidth", "offsetHeight", "offsetWidth"], setTooltip.bind(this));\r
+},\r
+\r
+updateSelection: function()\r
+{\r
+var listItemElement = this.listItemElement;\r
+if (!listItemElement)\r
+return;\r
+\r
+if (document.body.offsetWidth <= 0) {\r
+\r
+\r
+return;\r
+}\r
+\r
+if (!this.selectionElement) {\r
+this.selectionElement = document.createElement("div");\r
+this.selectionElement.className = "selection selected";\r
+listItemElement.insertBefore(this.selectionElement, listItemElement.firstChild);\r
+}\r
+\r
+this.selectionElement.style.height = listItemElement.offsetHeight + "px";\r
+},\r
+\r
+onattach: function()\r
+{\r
+if (this._hovered) {\r
+this.updateSelection();\r
+this.listItemElement.addStyleClass("hovered");\r
+}\r
+\r
+this.updateTitle();\r
+\r
+this._preventFollowingLinksOnDoubleClick();\r
+},\r
+\r
+_preventFollowingLinksOnDoubleClick: function()\r
+{\r
+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");\r
+if (!links)\r
+return;\r
+\r
+for (var i = 0; i < links.length; ++i)\r
+links[i].preventFollowOnDoubleClick = true;\r
+},\r
+\r
+onpopulate: function()\r
+{\r
+if (this.children.length || this._showInlineText(this.representedObject) || this._elementCloseTag)\r
+return;\r
+\r
+this.updateChildren();\r
+},\r
+\r
+updateChildren: function(fullRefresh)\r
+{\r
+if (this._elementCloseTag)\r
+return;\r
+\r
+WebInspector.domAgent.getChildNodesAsync(this.representedObject, this._updateChildren.bind(this, fullRefresh));\r
+},\r
+\r
+insertChildElement: function(child, index, closingTag)\r
+{\r
+var newElement = new WebInspector.ElementsTreeElement(child, closingTag);\r
+newElement.selectable = this.treeOutline.selectEnabled;\r
+this.insertChild(newElement, index);\r
+return newElement;\r
+},\r
+\r
+moveChild: function(child, targetIndex)\r
+{\r
+var wasSelected = child.selected;\r
+this.removeChild(child);\r
+this.insertChild(child, targetIndex);\r
+if (wasSelected)\r
+child.select();\r
+},\r
+\r
+_updateChildren: function(fullRefresh)\r
+{\r
+if (this._updateChildrenInProgress)\r
+return;\r
+\r
+this._updateChildrenInProgress = true;\r
+var focusedNode = this.treeOutline.focusedDOMNode;\r
+var originalScrollTop;\r
+if (fullRefresh) {\r
+var treeOutlineContainerElement = this.treeOutline.element.parentNode;\r
+originalScrollTop = treeOutlineContainerElement.scrollTop;\r
+var selectedTreeElement = this.treeOutline.selectedTreeElement;\r
+if (selectedTreeElement && selectedTreeElement.hasAncestor(this))\r
+this.select();\r
+this.removeChildren();\r
+}\r
+\r
+var treeElement = this;\r
+var treeChildIndex = 0;\r
+var elementToSelect;\r
+\r
+function updateChildrenOfNode(node)\r
+{\r
+var treeOutline = treeElement.treeOutline;\r
+var child = node.firstChild;\r
+while (child) {\r
+var currentTreeElement = treeElement.children[treeChildIndex];\r
+if (!currentTreeElement || currentTreeElement.representedObject !== child) {\r
+\r
+var existingTreeElement = null;\r
+for (var i = (treeChildIndex + 1), size = treeElement.expandedChildCount; i < size; ++i) {\r
+if (treeElement.children[i].representedObject === child) {\r
+existingTreeElement = treeElement.children[i];\r
+break;\r
+}\r
+}\r
+\r
+if (existingTreeElement && existingTreeElement.parent === treeElement) {\r
+\r
+treeElement.moveChild(existingTreeElement, treeChildIndex);\r
+} else {\r
+\r
+if (treeChildIndex < treeElement.expandedChildrenLimit) {\r
+var newElement = treeElement.insertChildElement(child, treeChildIndex);\r
+if (child === focusedNode)\r
+elementToSelect = newElement;\r
+if (treeElement.expandedChildCount > treeElement.expandedChildrenLimit)\r
+treeElement.expandedChildrenLimit++;\r
+}\r
+}\r
+}\r
+\r
+child = child.nextSibling;\r
+++treeChildIndex;\r
+}\r
+}\r
+\r
+\r
+for (var i = (this.children.length - 1); i >= 0; --i) {\r
+var currentChild = this.children[i];\r
+var currentNode = currentChild.representedObject;\r
+var currentParentNode = currentNode.parentNode;\r
+\r
+if (currentParentNode === this.representedObject)\r
+continue;\r
+\r
+var selectedTreeElement = this.treeOutline.selectedTreeElement;\r
+if (selectedTreeElement && (selectedTreeElement === currentChild || selectedTreeElement.hasAncestor(currentChild)))\r
+this.select();\r
+\r
+this.removeChildAtIndex(i);\r
+}\r
+\r
+updateChildrenOfNode(this.representedObject);\r
+this.adjustCollapsedRange(false);\r
+\r
+var lastChild = this.children[this.children.length - 1];\r
+if (this.representedObject.nodeType == Node.ELEMENT_NODE && (!lastChild || !lastChild._elementCloseTag))\r
+this.insertChildElement(this.representedObject, this.children.length, true);\r
+\r
+\r
+if (fullRefresh && elementToSelect) {\r
+elementToSelect.select();\r
+if (treeOutlineContainerElement && originalScrollTop <= treeOutlineContainerElement.scrollHeight)\r
+treeOutlineContainerElement.scrollTop = originalScrollTop;\r
+}\r
+\r
+delete this._updateChildrenInProgress;\r
+},\r
+\r
+adjustCollapsedRange: function()\r
+{\r
+\r
+\r
+if (this.expandAllButtonElement && this.expandAllButtonElement.__treeElement.parent)\r
+this.removeChild(this.expandAllButtonElement.__treeElement);\r
+\r
+const node = this.representedObject;\r
+if (!node.children)\r
+return;\r
+const childNodeCount = node.children.length;\r
+\r
+\r
+for (var i = this.expandedChildCount, limit = Math.min(this.expandedChildrenLimit, childNodeCount); i < limit; ++i)\r
+this.insertChildElement(node.children[i], i);\r
+\r
+const expandedChildCount = this.expandedChildCount;\r
+if (childNodeCount > this.expandedChildCount) {\r
+var targetButtonIndex = expandedChildCount;\r
+if (!this.expandAllButtonElement) {\r
+var item = new TreeElement(null, null, false);\r
+item.titleHTML = "<button class=\"show-all-nodes\" value=\"\" />";\r
+item.selectable = false;\r
+item.expandAllButton = true;\r
+this.insertChild(item, targetButtonIndex);\r
+this.expandAllButtonElement = item.listItemElement.firstChild;\r
+this.expandAllButtonElement.__treeElement = item;\r
+this.expandAllButtonElement.addEventListener("click", this.handleLoadAllChildren.bind(this), false);\r
+} else if (!this.expandAllButtonElement.__treeElement.parent)\r
+this.insertChild(this.expandAllButtonElement.__treeElement, targetButtonIndex);\r
+this.expandAllButtonElement.textContent = WebInspector.UIString("Show All Nodes (%d More)", childNodeCount - expandedChildCount);\r
+} else if (this.expandAllButtonElement)\r
+delete this.expandAllButtonElement;\r
+},\r
+\r
+handleLoadAllChildren: function()\r
+{\r
+this.expandedChildrenLimit = Math.max(this.representedObject._childNodeCount, this.expandedChildrenLimit + WebInspector.ElementsTreeElement.InitialChildrenLimit);\r
+},\r
+\r
+onexpand: function()\r
+{\r
+if (this._elementCloseTag)\r
+return;\r
+\r
+this.updateTitle();\r
+this.treeOutline.updateSelection();\r
+},\r
+\r
+oncollapse: function()\r
+{\r
+if (this._elementCloseTag)\r
+return;\r
+\r
+this.updateTitle();\r
+this.treeOutline.updateSelection();\r
+},\r
+\r
+onreveal: function()\r
+{\r
+if (this.listItemElement)\r
+this.listItemElement.scrollIntoViewIfNeeded(false);\r
+},\r
+\r
+onselect: function(treeElement, selectedByUser)\r
+{\r
+this.treeOutline.suppressRevealAndSelect = true;\r
+this.treeOutline.focusedDOMNode = this.representedObject;\r
+if (selectedByUser)\r
+WebInspector.highlightDOMNode(this.representedObject.id);\r
+this.updateSelection();\r
+this.treeOutline.suppressRevealAndSelect = false;\r
+},\r
+\r
+ondelete: function()\r
+{\r
+var startTagTreeElement = this.treeOutline.findTreeElement(this.representedObject);\r
+startTagTreeElement ? startTagTreeElement.remove() : this.remove();\r
+return true;\r
+},\r
+\r
+onenter: function()\r
+{\r
+\r
+\r
+if (this.treeOutline.editing)\r
+return false;\r
+\r
+this._startEditing();\r
+\r
+\r
+return true;\r
+},\r
+\r
+selectOnMouseDown: function(event)\r
+{\r
+TreeElement.prototype.selectOnMouseDown.call(this, event);\r
+\r
+if (this._editing)\r
+return;\r
+\r
+if (this.treeOutline.showInElementsPanelEnabled) {\r
+WebInspector.showPanel("elements");\r
+WebInspector.panels.elements.focusedDOMNode = this.representedObject;\r
+}\r
+\r
+\r
+if (event.detail >= 2)\r
+event.preventDefault();\r
+},\r
+\r
+ondblclick: function(event)\r
+{\r
+if (this._editing || this._elementCloseTag)\r
+return;\r
+\r
+if (this._startEditingTarget(event.target))\r
+return;\r
+\r
+if (this.hasChildren && !this.expanded)\r
+this.expand();\r
+},\r
+\r
+_insertInLastAttributePosition: function(tag, node)\r
+{\r
+if (tag.getElementsByClassName("webkit-html-attribute").length > 0)\r
+tag.insertBefore(node, tag.lastChild);\r
+else {\r
+var nodeName = tag.textContent.match(/^<(.*?)>$/)[1];\r
+tag.textContent = '';\r
+tag.appendChild(document.createTextNode('<'+nodeName));\r
+tag.appendChild(node);\r
+tag.appendChild(document.createTextNode('>'));\r
+}\r
+\r
+this.updateSelection();\r
+},\r
+\r
+_startEditingTarget: function(eventTarget)\r
+{\r
+if (this.treeOutline.focusedDOMNode != this.representedObject)\r
+return;\r
+\r
+if (this.representedObject.nodeType != Node.ELEMENT_NODE && this.representedObject.nodeType != Node.TEXT_NODE)\r
+return false;\r
+\r
+var textNode = eventTarget.enclosingNodeOrSelfWithClass("webkit-html-text-node");\r
+if (textNode)\r
+return this._startEditingTextNode(textNode);\r
+\r
+var attribute = eventTarget.enclosingNodeOrSelfWithClass("webkit-html-attribute");\r
+if (attribute)\r
+return this._startEditingAttribute(attribute, eventTarget);\r
+\r
+var tagName = eventTarget.enclosingNodeOrSelfWithClass("webkit-html-tag-name");\r
+if (tagName)\r
+return this._startEditingTagName(tagName);\r
+\r
+var newAttribute = eventTarget.enclosingNodeOrSelfWithClass("add-attribute");\r
+if (newAttribute)\r
+return this._addNewAttribute();\r
+\r
+return false;\r
+},\r
+\r
+_populateTagContextMenu: function(contextMenu, event)\r
+{\r
+var attribute = event.target.enclosingNodeOrSelfWithClass("webkit-html-attribute");\r
+var newAttribute = event.target.enclosingNodeOrSelfWithClass("add-attribute");\r
+\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Add Attribute"), this._addNewAttribute.bind(this));\r
+if (attribute && !newAttribute)\r
+contextMenu.appendItem(WebInspector.UIString("Edit Attribute"), this._startEditingAttribute.bind(this, attribute, event.target));\r
+contextMenu.appendSeparator();\r
+\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Edit as HTML"), this._editAsHTML.bind(this));\r
+contextMenu.appendItem(WebInspector.UIString("Copy as HTML"), this._copyHTML.bind(this));\r
+contextMenu.appendItem(WebInspector.UIString("Delete Node"), this.remove.bind(this));\r
+\r
+if (Preferences.nativeInstrumentationEnabled) {\r
+\r
+contextMenu.appendSeparator();\r
+\r
+function handlerFunction(nodeId, breakType)\r
+{\r
+WebInspector.breakpointManager.createDOMBreakpoint(nodeId, breakType);\r
+WebInspector.panels.elements.sidebarPanes.domBreakpoints.expand();\r
+}\r
+var node = this.representedObject;\r
+for (var key in WebInspector.DOMBreakpointTypes) {\r
+var type = WebInspector.DOMBreakpointTypes[key];\r
+var label = WebInspector.domBreakpointTypeContextMenuLabel(type);\r
+var breakpoint = node.breakpoints[type];\r
+if (!breakpoint)\r
+var handler = handlerFunction.bind(this, node.id, type);\r
+else\r
+var handler = breakpoint.remove.bind(breakpoint);\r
+contextMenu.appendCheckboxItem(label, handler, !!breakpoint);\r
+}\r
+}\r
+},\r
+\r
+_populateTextContextMenu: function(contextMenu, textNode)\r
+{\r
+contextMenu.appendItem(WebInspector.UIString("Edit Text"), this._startEditingTextNode.bind(this, textNode));\r
+},\r
+\r
+_startEditing: function()\r
+{\r
+if (this.treeOutline.focusedDOMNode !== this.representedObject)\r
+return;\r
+\r
+var listItem = this._listItemNode;\r
+\r
+if (this._canAddAttributes) {\r
+var attribute = listItem.getElementsByClassName("webkit-html-attribute")[0];\r
+if (attribute)\r
+return this._startEditingAttribute(attribute, attribute.getElementsByClassName("webkit-html-attribute-value")[0]);\r
+\r
+return this._addNewAttribute();\r
+}\r
+\r
+if (this.representedObject.nodeType === Node.TEXT_NODE) {\r
+var textNode = listItem.getElementsByClassName("webkit-html-text-node")[0];\r
+if (textNode)\r
+return this._startEditingTextNode(textNode);\r
+return;\r
+}\r
+},\r
+\r
+_addNewAttribute: function()\r
+{\r
+\r
+\r
+var container = document.createElement("span");\r
+container.innerHTML = this._attributeHTML(" ", "");\r
+var attr = container.firstChild;\r
+attr.style.marginLeft = "2px"; \r
+attr.style.marginRight = "2px"; \r
+\r
+var tag = this.listItemElement.getElementsByClassName("webkit-html-tag")[0];\r
+this._insertInLastAttributePosition(tag, attr);\r
+return this._startEditingAttribute(attr, attr);\r
+},\r
+\r
+_triggerEditAttribute: function(attributeName)\r
+{\r
+var attributeElements = this.listItemElement.getElementsByClassName("webkit-html-attribute-name");\r
+for (var i = 0, len = attributeElements.length; i < len; ++i) {\r
+if (attributeElements[i].textContent === attributeName) {\r
+for (var elem = attributeElements[i].nextSibling; elem; elem = elem.nextSibling) {\r
+if (elem.nodeType !== Node.ELEMENT_NODE)\r
+continue;\r
+\r
+if (elem.hasStyleClass("webkit-html-attribute-value"))\r
+return this._startEditingAttribute(elem.parentNode, elem);\r
+}\r
+}\r
+}\r
+},\r
+\r
+_startEditingAttribute: function(attribute, elementForSelection)\r
+{\r
+if (WebInspector.isBeingEdited(attribute))\r
+return true;\r
+\r
+var attributeNameElement = attribute.getElementsByClassName("webkit-html-attribute-name")[0];\r
+if (!attributeNameElement)\r
+return false;\r
+\r
+var attributeName = attributeNameElement.innerText;\r
+\r
+function removeZeroWidthSpaceRecursive(node)\r
+{\r
+if (node.nodeType === Node.TEXT_NODE) {\r
+node.nodeValue = node.nodeValue.replace(/\u200B/g, "");\r
+return;\r
+}\r
+\r
+if (node.nodeType !== Node.ELEMENT_NODE)\r
+return;\r
+\r
+for (var child = node.firstChild; child; child = child.nextSibling)\r
+removeZeroWidthSpaceRecursive(child);\r
+}\r
+\r
+\r
+removeZeroWidthSpaceRecursive(attribute);\r
+\r
+this._editing = WebInspector.startEditing(attribute, {\r
+context: attributeName,\r
+commitHandler: this._attributeEditingCommitted.bind(this),\r
+cancelHandler: this._editingCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(elementForSelection, 0, elementForSelection, 1);\r
+\r
+return true;\r
+},\r
+\r
+_startEditingTextNode: function(textNode)\r
+{\r
+if (WebInspector.isBeingEdited(textNode))\r
+return true;\r
+\r
+this._editing = WebInspector.startEditing(textNode, {\r
+context: null,\r
+commitHandler: this._textNodeEditingCommitted.bind(this),\r
+cancelHandler: this._editingCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(textNode, 0, textNode, 1);\r
+\r
+return true;\r
+},\r
+\r
+_startEditingTagName: function(tagNameElement)\r
+{\r
+if (!tagNameElement) {\r
+tagNameElement = this.listItemElement.getElementsByClassName("webkit-html-tag-name")[0];\r
+if (!tagNameElement)\r
+return false;\r
+}\r
+\r
+var tagName = tagNameElement.textContent;\r
+if (WebInspector.ElementsTreeElement.EditTagBlacklist[tagName.toLowerCase()])\r
+return false;\r
+\r
+if (WebInspector.isBeingEdited(tagNameElement))\r
+return true;\r
+\r
+var closingTagElement = this._distinctClosingTagElement();\r
+\r
+function keyupListener(event)\r
+{\r
+if (closingTagElement)\r
+closingTagElement.textContent = "</" + tagNameElement.textContent + ">";\r
+}\r
+\r
+function editingComitted(element, newTagName)\r
+{\r
+tagNameElement.removeEventListener('keyup', keyupListener, false);\r
+this._tagNameEditingCommitted.apply(this, arguments);\r
+}\r
+\r
+function editingCancelled()\r
+{\r
+tagNameElement.removeEventListener('keyup', keyupListener, false);\r
+this._editingCancelled.apply(this, arguments);\r
+}\r
+\r
+tagNameElement.addEventListener('keyup', keyupListener, false);\r
+\r
+this._editing = WebInspector.startEditing(tagNameElement, {\r
+context: tagName,\r
+commitHandler: editingComitted.bind(this),\r
+cancelHandler: editingCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(tagNameElement, 0, tagNameElement, 1);\r
+return true;\r
+},\r
+\r
+_startEditingAsHTML: function(commitCallback, initialValue)\r
+{\r
+if (this._htmlEditElement && WebInspector.isBeingEdited(this._htmlEditElement))\r
+return true;\r
+\r
+this._htmlEditElement = document.createElement("div");\r
+this._htmlEditElement.className = "source-code elements-tree-editor";\r
+this._htmlEditElement.textContent = initialValue;\r
+\r
+\r
+var child = this.listItemElement.firstChild;\r
+while (child) {\r
+child.style.display = "none";\r
+child = child.nextSibling;\r
+}\r
+\r
+if (this._childrenListNode)\r
+this._childrenListNode.style.display = "none";\r
+\r
+this.listItemElement.appendChild(this._htmlEditElement);\r
+\r
+this.updateSelection();\r
+\r
+function commit()\r
+{\r
+commitCallback(this._htmlEditElement.textContent);\r
+dispose.call(this);\r
+}\r
+\r
+function dispose()\r
+{\r
+delete this._editing;\r
+\r
+\r
+this.listItemElement.removeChild(this._htmlEditElement);\r
+delete this._htmlEditElement;\r
+\r
+if (this._childrenListNode)\r
+this._childrenListNode.style.removeProperty("display");\r
+\r
+var child = this.listItemElement.firstChild;\r
+while (child) {\r
+child.style.removeProperty("display");\r
+child = child.nextSibling;\r
+}\r
+\r
+this.updateSelection();\r
+}\r
+\r
+this._editing = WebInspector.startEditing(this._htmlEditElement, {\r
+context: null,\r
+commitHandler: commit.bind(this),\r
+cancelHandler: dispose.bind(this),\r
+multiline: true\r
+});\r
+},\r
+\r
+_attributeEditingCommitted: function(element, newText, oldText, attributeName, moveDirection)\r
+{\r
+delete this._editing;\r
+\r
+\r
+\r
+var moveToAttribute, moveToTagName, moveToNewAttribute;\r
+if (moveDirection) {\r
+var found = false;\r
+\r
+\r
+var attributes = this.representedObject.attributes;\r
+for (var i = 0; i < attributes.length; ++i) {\r
+if (attributes[i].name === attributeName) {\r
+found = true;\r
+if (moveDirection === "backward") {\r
+if (i === 0)\r
+moveToTagName = true;\r
+else\r
+moveToAttribute = attributes[i - 1].name;\r
+} else if (moveDirection === "forward") {\r
+if (i === attributes.length - 1)\r
+moveToNewAttribute = true;\r
+else\r
+moveToAttribute = attributes[i + 1].name;\r
+}\r
+}\r
+}\r
+\r
+\r
+if (!found) {\r
+if (moveDirection === "backward" && attributes.length > 0)\r
+moveToAttribute = attributes[attributes.length - 1].name;\r
+else if (moveDirection === "forward") {\r
+if (!/^\s*$/.test(newText))\r
+moveToNewAttribute = true;\r
+else\r
+moveToTagName = true;\r
+}\r
+}\r
+}\r
+\r
+function moveToNextAttributeIfNeeded()\r
+{\r
+\r
+if (element.textContent.trim().length === 0)\r
+element.parentNode.removeChild(element);\r
+\r
+\r
+if (moveToAttribute)\r
+this._triggerEditAttribute(moveToAttribute);\r
+else if (moveToNewAttribute)\r
+this._addNewAttribute();\r
+else if (moveToTagName)\r
+this._startEditingTagName();\r
+}\r
+\r
+function regenerateStyledAttribute(name, value)\r
+{\r
+var previous = element.previousSibling;\r
+if (!previous || previous.nodeType !== Node.TEXT_NODE)\r
+element.parentNode.insertBefore(document.createTextNode(" "), element);\r
+element.outerHTML = this._attributeHTML(name, value);\r
+}\r
+\r
+var parseContainerElement = document.createElement("span");\r
+parseContainerElement.innerHTML = "<span " + newText + "></span>";\r
+var parseElement = parseContainerElement.firstChild;\r
+\r
+if (!parseElement) {\r
+this._editingCancelled(element, attributeName);\r
+moveToNextAttributeIfNeeded.call(this);\r
+return;\r
+}\r
+\r
+if (!parseElement.hasAttributes()) {\r
+this.representedObject.removeAttribute(attributeName);\r
+moveToNextAttributeIfNeeded.call(this);\r
+return;\r
+}\r
+\r
+var foundOriginalAttribute = false;\r
+for (var i = 0; i < parseElement.attributes.length; ++i) {\r
+var attr = parseElement.attributes[i];\r
+foundOriginalAttribute = foundOriginalAttribute || attr.name === attributeName;\r
+try {\r
+this.representedObject.setAttribute(attr.name, attr.value);\r
+regenerateStyledAttribute.call(this, attr.name, attr.value);\r
+} catch(e) {} \r
+}\r
+\r
+if (!foundOriginalAttribute)\r
+this.representedObject.removeAttribute(attributeName);\r
+\r
+this.treeOutline.focusedNodeChanged(true);\r
+\r
+moveToNextAttributeIfNeeded.call(this);\r
+},\r
+\r
+_tagNameEditingCommitted: function(element, newText, oldText, tagName, moveDirection)\r
+{\r
+delete this._editing;\r
+var self = this;\r
+\r
+function cancel()\r
+{\r
+var closingTagElement = self._distinctClosingTagElement();\r
+if (closingTagElement)\r
+closingTagElement.textContent = "</" + tagName + ">";\r
+\r
+self._editingCancelled(element, tagName);\r
+moveToNextAttributeIfNeeded.call(self);\r
+}\r
+\r
+function moveToNextAttributeIfNeeded()\r
+{\r
+if (moveDirection !== "forward") {\r
+this._addNewAttribute();\r
+return;\r
+}\r
+\r
+var attributes = this.representedObject.attributes;\r
+if (attributes.length > 0)\r
+this._triggerEditAttribute(attributes[0].name);\r
+else\r
+this._addNewAttribute();\r
+}\r
+\r
+newText = newText.trim();\r
+if (newText === oldText) {\r
+cancel();\r
+return;\r
+}\r
+\r
+var treeOutline = this.treeOutline;\r
+var wasExpanded = this.expanded;\r
+\r
+function changeTagNameCallback(nodeId)\r
+{\r
+if (!nodeId) {\r
+cancel();\r
+return;\r
+}\r
+\r
+\r
+WebInspector.panels.elements.updateModifiedNodes();\r
+\r
+WebInspector.updateFocusedNode(nodeId);\r
+var newTreeItem = treeOutline.findTreeElement(WebInspector.domAgent.nodeForId(nodeId));\r
+if (wasExpanded)\r
+newTreeItem.expand();\r
+\r
+moveToNextAttributeIfNeeded.call(newTreeItem);\r
+}\r
+\r
+InspectorBackend.changeTagName(this.representedObject.id, newText, changeTagNameCallback);\r
+},\r
+\r
+_textNodeEditingCommitted: function(element, newText)\r
+{\r
+delete this._editing;\r
+\r
+var textNode;\r
+if (this.representedObject.nodeType === Node.ELEMENT_NODE) {\r
+\r
+\r
+textNode = this.representedObject.firstChild;\r
+} else if (this.representedObject.nodeType == Node.TEXT_NODE)\r
+textNode = this.representedObject;\r
+\r
+textNode.nodeValue = newText;\r
+},\r
+\r
+_editingCancelled: function(element, context)\r
+{\r
+delete this._editing;\r
+\r
+\r
+this.updateTitle();\r
+},\r
+\r
+_distinctClosingTagElement: function()\r
+{\r
+\r
+\r
+\r
+\r
+if (this.expanded) {\r
+var closers = this._childrenListNode.querySelectorAll(".close");\r
+return closers[closers.length-1];\r
+}\r
+\r
+\r
+\r
+\r
+var tags = this.listItemElement.getElementsByClassName("webkit-html-tag");\r
+return (tags.length === 1 ? null : tags[tags.length-1]);\r
+},\r
+\r
+updateTitle: function()\r
+{\r
+\r
+\r
+if (this._editing)\r
+return;\r
+\r
+this.titleHTML = "<span class=\"highlight\">" + this._nodeTitleInfo(WebInspector.linkifyURL).titleHTML + "</span>";\r
+delete this.selectionElement;\r
+this.updateSelection();\r
+this._preventFollowingLinksOnDoubleClick();\r
+this._highlightSearchResults();\r
+},\r
+\r
+_attributeHTML: function(name, value, node, linkify)\r
+{\r
+var hasText = (value.length > 0);\r
+var html = "<span class=\"webkit-html-attribute\"><span class=\"webkit-html-attribute-name\">" + name.escapeHTML() + "</span>";\r
+\r
+if (hasText)\r
+html += "=&#8203;\"";\r
+\r
+if (linkify && (name === "src" || name === "href")) {\r
+var rewrittenHref = WebInspector.resourceURLForRelatedNode(node, value);\r
+value = value.replace(/([\/;:\)\]\}])/g, "$1\u200B");\r
+html += linkify(rewrittenHref, value, "webkit-html-attribute-value", node.nodeName.toLowerCase() === "a");\r
+} else {\r
+value = value.escapeHTML().replace(/([\/;:\)\]\}])/g, "$1&#8203;");\r
+html += "<span class=\"webkit-html-attribute-value\">" + value + "</span>";\r
+}\r
+\r
+if (hasText)\r
+html += "\"";\r
+\r
+html += "</span>";\r
+return html;\r
+},\r
+\r
+_tagHTML: function(tagName, isClosingTag, isDistinctTreeElement, linkify)\r
+{\r
+var node = this.representedObject;\r
+var result = "<span class=\"webkit-html-tag" + (isClosingTag && isDistinctTreeElement ? " close" : "")  + "\">&lt;";\r
+result += "<span " + (isClosingTag ? "" : "class=\"webkit-html-tag-name\"") + ">" + (isClosingTag ? "/" : "") + tagName + "</span>";\r
+if (!isClosingTag && node.hasAttributes()) {\r
+for (var i = 0; i < node.attributes.length; ++i) {\r
+var attr = node.attributes[i];\r
+result += " " + this._attributeHTML(attr.name, attr.value, node, linkify);\r
+}\r
+}\r
+result += "&gt;</span>&#8203;";\r
+\r
+return result;\r
+},\r
+\r
+_nodeTitleInfo: function(linkify)\r
+{\r
+var node = this.representedObject;\r
+var info = {titleHTML: "", hasChildren: this.hasChildren};\r
+\r
+switch (node.nodeType) {\r
+case Node.DOCUMENT_NODE:\r
+info.titleHTML = "Document";\r
+break;\r
+\r
+case Node.DOCUMENT_FRAGMENT_NODE:\r
+info.titleHTML = "Document Fragment";\r
+break;\r
+\r
+case Node.ATTRIBUTE_NODE:\r
+var value = node.value || "\u200B"; \r
+info.titleHTML = this._attributeHTML(node.name, value);\r
+break;\r
+\r
+case Node.ELEMENT_NODE:\r
+var tagName = this.treeOutline.nodeNameToCorrectCase(node.nodeName).escapeHTML();\r
+if (this._elementCloseTag) {\r
+info.titleHTML = this._tagHTML(tagName, true, true);\r
+info.hasChildren = false;\r
+break;\r
+}\r
+\r
+var titleHTML = this._tagHTML(tagName, false, false, linkify);\r
+\r
+var textChild = onlyTextChild.call(node);\r
+var showInlineText = textChild && textChild.textContent.length < Preferences.maxInlineTextChildLength;\r
+\r
+if (!this.expanded && (!showInlineText && (this.treeOutline.isXMLMimeType || !WebInspector.ElementsTreeElement.ForbiddenClosingTagElements[tagName]))) {\r
+if (this.hasChildren)\r
+titleHTML += "<span class=\"webkit-html-text-node\">&#8230;</span>&#8203;";\r
+titleHTML += this._tagHTML(tagName, true, false);\r
+}\r
+\r
+\r
+\r
+\r
+if (showInlineText) {\r
+titleHTML += "<span class=\"webkit-html-text-node\">" + textChild.nodeValue.escapeHTML() + "</span>&#8203;" + this._tagHTML(tagName, true, false);\r
+info.hasChildren = false;\r
+}\r
+info.titleHTML = titleHTML;\r
+break;\r
+\r
+case Node.TEXT_NODE:\r
+if (isNodeWhitespace.call(node))\r
+info.titleHTML = "(whitespace)";\r
+else {\r
+if (node.parentNode && node.parentNode.nodeName.toLowerCase() === "script") {\r
+var newNode = document.createElement("span");\r
+newNode.textContent = node.textContent;\r
+\r
+var javascriptSyntaxHighlighter = new WebInspector.DOMSyntaxHighlighter("text/javascript");\r
+javascriptSyntaxHighlighter.syntaxHighlightNode(newNode);\r
+\r
+info.titleHTML = "<span class=\"webkit-html-text-node webkit-html-js-node\">" + newNode.innerHTML.replace(/^[\n\r]*/, "").replace(/\s*$/, "") + "</span>";\r
+} else if (node.parentNode && node.parentNode.nodeName.toLowerCase() === "style") {\r
+var newNode = document.createElement("span");\r
+newNode.textContent = node.textContent;\r
+\r
+var cssSyntaxHighlighter = new WebInspector.DOMSyntaxHighlighter("text/css");\r
+cssSyntaxHighlighter.syntaxHighlightNode(newNode);\r
+\r
+info.titleHTML = "<span class=\"webkit-html-text-node webkit-html-css-node\">" + newNode.innerHTML.replace(/^[\n\r]*/, "").replace(/\s*$/, "") + "</span>";\r
+} else\r
+info.titleHTML = "\"<span class=\"webkit-html-text-node\">" + node.nodeValue.escapeHTML() + "</span>\"";\r
+}\r
+break;\r
+\r
+case Node.COMMENT_NODE:\r
+info.titleHTML = "<span class=\"webkit-html-comment\">&lt;!--" + node.nodeValue.escapeHTML() + "--&gt;</span>";\r
+break;\r
+\r
+case Node.DOCUMENT_TYPE_NODE:\r
+var titleHTML = "<span class=\"webkit-html-doctype\">&lt;!DOCTYPE " + node.nodeName;\r
+if (node.publicId) {\r
+titleHTML += " PUBLIC \"" + node.publicId + "\"";\r
+if (node.systemId)\r
+titleHTML += " \"" + node.systemId + "\"";\r
+} else if (node.systemId)\r
+titleHTML += " SYSTEM \"" + node.systemId + "\"";\r
+if (node.internalSubset)\r
+titleHTML += " [" + node.internalSubset + "]";\r
+titleHTML += "&gt;</span>";\r
+info.titleHTML = titleHTML;\r
+break;\r
+\r
+case Node.CDATA_SECTION_NODE:\r
+info.titleHTML = "<span class=\"webkit-html-text-node\">&lt;![CDATA[" + node.nodeValue.escapeHTML() + "]]&gt;</span>";\r
+break;\r
+default:\r
+info.titleHTML = this.treeOutline.nodeNameToCorrectCase(node.nodeName).collapseWhitespace().escapeHTML();\r
+}\r
+\r
+return info;\r
+},\r
+\r
+_showInlineText: function(node)\r
+{\r
+if (node.nodeType === Node.ELEMENT_NODE) {\r
+var textChild = onlyTextChild.call(node);\r
+if (textChild && textChild.textContent.length < Preferences.maxInlineTextChildLength)\r
+return true;\r
+}\r
+return false;\r
+},\r
+\r
+remove: function()\r
+{\r
+var parentElement = this.parent;\r
+if (!parentElement)\r
+return;\r
+\r
+var self = this;\r
+function removeNodeCallback(removedNodeId)\r
+{\r
+\r
+\r
+if (removedNodeId === -1)\r
+return;\r
+\r
+parentElement.removeChild(self);\r
+parentElement.adjustCollapsedRange(true);\r
+}\r
+\r
+InspectorBackend.removeNode(this.representedObject.id, removeNodeCallback);\r
+},\r
+\r
+_editAsHTML: function()\r
+{\r
+var treeOutline = this.treeOutline;\r
+var node = this.representedObject;\r
+var wasExpanded = this.expanded;\r
+\r
+function selectNode(nodeId)\r
+{\r
+if (!nodeId)\r
+return;\r
+\r
+\r
+WebInspector.panels.elements.updateModifiedNodes();\r
+\r
+WebInspector.updateFocusedNode(nodeId);\r
+if (wasExpanded) {\r
+var newTreeItem = treeOutline.findTreeElement(WebInspector.domAgent.nodeForId(nodeId));\r
+if (newTreeItem)\r
+newTreeItem.expand();\r
+}\r
+}\r
+\r
+function commitChange(value)\r
+{\r
+InspectorBackend.setOuterHTML(node.id, value, selectNode);\r
+}\r
+\r
+InspectorBackend.getOuterHTML(node.id, this._startEditingAsHTML.bind(this, commitChange));\r
+},\r
+\r
+_copyHTML: function()\r
+{\r
+InspectorBackend.copyNode(this.representedObject.id);\r
+},\r
+\r
+_highlightSearchResults: function()\r
+{\r
+if (!this._searchQuery)\r
+return;\r
+var text = this.listItemElement.textContent;\r
+var regexObject = createSearchRegex(this._searchQuery);\r
+\r
+var offset = 0;\r
+var match = regexObject.exec(text);\r
+while (match) {\r
+highlightSearchResult(this.listItemElement, offset + match.index, match[0].length);\r
+offset += match.index + 1;\r
+text = text.substring(match.index + 1);\r
+match = regexObject.exec(text);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ElementsTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SidebarSectionTreeElement = function(title, representedObject, hasChildren)\r
+{\r
+TreeElement.call(this, title.escapeHTML(), representedObject || {}, hasChildren);\r
+}\r
+\r
+WebInspector.SidebarSectionTreeElement.prototype = {\r
+selectable: false,\r
+\r
+get smallChildren()\r
+{\r
+return this._smallChildren;\r
+},\r
+\r
+set smallChildren(x)\r
+{\r
+if (this._smallChildren === x)\r
+return;\r
+\r
+this._smallChildren = x;\r
+\r
+if (this._smallChildren)\r
+this._childrenListNode.addStyleClass("small");\r
+else\r
+this._childrenListNode.removeStyleClass("small");\r
+},\r
+\r
+onattach: function()\r
+{\r
+this._listItemNode.addStyleClass("sidebar-tree-section");\r
+},\r
+\r
+onreveal: function()\r
+{\r
+if (this.listItemElement)\r
+this.listItemElement.scrollIntoViewIfNeeded(false);\r
+}\r
+}\r
+\r
+WebInspector.SidebarSectionTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+WebInspector.SidebarTreeElement = function(className, title, subtitle, representedObject, hasChildren)\r
+{\r
+TreeElement.call(this, "", representedObject || {}, hasChildren);\r
+\r
+if (hasChildren) {\r
+this.disclosureButton = document.createElement("button");\r
+this.disclosureButton.className = "disclosure-button";\r
+}\r
+\r
+if (!this.iconElement) {\r
+this.iconElement = document.createElement("img");\r
+this.iconElement.className = "icon";\r
+}\r
+\r
+this.statusElement = document.createElement("div");\r
+this.statusElement.className = "status";\r
+\r
+this.titlesElement = document.createElement("div");\r
+this.titlesElement.className = "titles";\r
+\r
+this.titleElement = document.createElement("span");\r
+this.titleElement.className = "title";\r
+this.titlesElement.appendChild(this.titleElement);\r
+\r
+this.subtitleElement = document.createElement("span");\r
+this.subtitleElement.className = "subtitle";\r
+this.titlesElement.appendChild(this.subtitleElement);\r
+\r
+this.className = className;\r
+this.mainTitle = title;\r
+this.subtitle = subtitle;\r
+}\r
+\r
+WebInspector.SidebarTreeElement.prototype = {\r
+get small()\r
+{\r
+return this._small;\r
+},\r
+\r
+set small(x)\r
+{\r
+this._small = x;\r
+\r
+if (this._listItemNode) {\r
+if (this._small)\r
+this._listItemNode.addStyleClass("small");\r
+else\r
+this._listItemNode.removeStyleClass("small");\r
+}\r
+},\r
+\r
+get mainTitle()\r
+{\r
+return this._mainTitle;\r
+},\r
+\r
+set mainTitle(x)\r
+{\r
+this._mainTitle = x;\r
+this.refreshTitles();\r
+},\r
+\r
+get subtitle()\r
+{\r
+return this._subtitle;\r
+},\r
+\r
+set subtitle(x)\r
+{\r
+this._subtitle = x;\r
+this.refreshTitles();\r
+},\r
+\r
+get bubbleText()\r
+{\r
+return this._bubbleText;\r
+},\r
+\r
+set bubbleText(x)\r
+{\r
+if (!this.bubbleElement) {\r
+this.bubbleElement = document.createElement("div");\r
+this.bubbleElement.className = "bubble";\r
+this.statusElement.appendChild(this.bubbleElement);\r
+}\r
+\r
+this._bubbleText = x;\r
+this.bubbleElement.textContent = x;\r
+},\r
+\r
+refreshTitles: function()\r
+{\r
+var mainTitle = this.mainTitle;\r
+if (this.titleElement.textContent !== mainTitle)\r
+this.titleElement.textContent = mainTitle;\r
+\r
+var subtitle = this.subtitle;\r
+if (subtitle) {\r
+if (this.subtitleElement.textContent !== subtitle)\r
+this.subtitleElement.textContent = subtitle;\r
+this.titlesElement.removeStyleClass("no-subtitle");\r
+} else\r
+this.titlesElement.addStyleClass("no-subtitle");\r
+},\r
+\r
+isEventWithinDisclosureTriangle: function(event)\r
+{\r
+return event.target === this.disclosureButton;\r
+},\r
+\r
+onattach: function()\r
+{\r
+this._listItemNode.addStyleClass("sidebar-tree-item");\r
+\r
+if (this.className)\r
+this._listItemNode.addStyleClass(this.className);\r
+\r
+if (this.small)\r
+this._listItemNode.addStyleClass("small");\r
+\r
+if (this.hasChildren && this.disclosureButton)\r
+this._listItemNode.appendChild(this.disclosureButton);\r
+\r
+this._listItemNode.appendChild(this.iconElement);\r
+this._listItemNode.appendChild(this.statusElement);\r
+this._listItemNode.appendChild(this.titlesElement);\r
+},\r
+\r
+onreveal: function()\r
+{\r
+if (this._listItemNode)\r
+this._listItemNode.scrollIntoViewIfNeeded(false);\r
+}\r
+}\r
+\r
+WebInspector.SidebarTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Section = function(title, subtitle)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.className = "section";\r
+this.element._section = this;\r
+\r
+this.headerElement = document.createElement("div");\r
+this.headerElement.className = "header";\r
+\r
+this.titleElement = document.createElement("div");\r
+this.titleElement.className = "title";\r
+\r
+this.subtitleElement = document.createElement("div");\r
+this.subtitleElement.className = "subtitle";\r
+\r
+this.headerElement.appendChild(this.subtitleElement);\r
+this.headerElement.appendChild(this.titleElement);\r
+\r
+this.headerElement.addEventListener("click", this.toggleExpanded.bind(this), false);\r
+this.element.appendChild(this.headerElement);\r
+\r
+this.title = title;\r
+this.subtitle = subtitle;\r
+this._expanded = false;\r
+}\r
+\r
+WebInspector.Section.prototype = {\r
+get title()\r
+{\r
+return this._title;\r
+},\r
+\r
+set title(x)\r
+{\r
+if (this._title === x)\r
+return;\r
+this._title = x;\r
+\r
+if (x instanceof Node) {\r
+this.titleElement.removeChildren();\r
+this.titleElement.appendChild(x);\r
+} else\r
+this.titleElement.textContent = x;\r
+},\r
+\r
+get subtitle()\r
+{\r
+return this._subtitle;\r
+},\r
+\r
+set subtitle(x)\r
+{\r
+if (this._subtitle === x)\r
+return;\r
+this._subtitle = x;\r
+this.subtitleElement.textContent = x;\r
+},\r
+\r
+get subtitleAsTextForTest()\r
+{\r
+var result = this.subtitleElement.textContent;\r
+var child = this.subtitleElement.querySelector("[data-uncopyable]");\r
+if (child) {\r
+var linkData = child.getAttribute("data-uncopyable");\r
+if (linkData)\r
+result += linkData;\r
+}\r
+return result;\r
+},\r
+\r
+get expanded()\r
+{\r
+return this._expanded;\r
+},\r
+\r
+set expanded(x)\r
+{\r
+if (x)\r
+this.expand();\r
+else\r
+this.collapse();\r
+},\r
+\r
+get populated()\r
+{\r
+return this._populated;\r
+},\r
+\r
+set populated(x)\r
+{\r
+this._populated = x;\r
+if (!x && this.onpopulate && this._expanded) {\r
+this.onpopulate(this);\r
+this._populated = true;\r
+}\r
+},\r
+\r
+get nextSibling()\r
+{\r
+var curElement = this.element;\r
+do {\r
+curElement = curElement.nextSibling;\r
+} while (curElement && !curElement._section);\r
+\r
+return curElement ? curElement._section : null;\r
+},\r
+\r
+get previousSibling()\r
+{\r
+var curElement = this.element;\r
+do {\r
+curElement = curElement.previousSibling;\r
+} while (curElement && !curElement._section);\r
+\r
+return curElement ? curElement._section : null;\r
+},\r
+\r
+expand: function()\r
+{\r
+if (this._expanded)\r
+return;\r
+this._expanded = true;\r
+this.element.addStyleClass("expanded");\r
+\r
+if (!this._populated && this.onpopulate) {\r
+this.onpopulate(this);\r
+this._populated = true;\r
+}\r
+},\r
+\r
+collapse: function()\r
+{\r
+if (!this._expanded)\r
+return;\r
+this._expanded = false;\r
+this.element.removeStyleClass("expanded");\r
+},\r
+\r
+toggleExpanded: function()\r
+{\r
+this.expanded = !this.expanded;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.PropertiesSection = function(title, subtitle)\r
+{\r
+WebInspector.Section.call(this, title, subtitle);\r
+\r
+this.headerElement.addStyleClass("monospace");\r
+this.propertiesElement = document.createElement("ol");\r
+this.propertiesElement.className = "properties properties-tree monospace";\r
+this.propertiesElement.tabIndex = 0;\r
+this.propertiesTreeOutline = new TreeOutline(this.propertiesElement);\r
+this.propertiesTreeOutline.section = this;\r
+\r
+this.element.appendChild(this.propertiesElement);\r
+}\r
+\r
+WebInspector.PropertiesSection.prototype.__proto__ = WebInspector.Section.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.RemoteObject = function(objectId, type, description, hasChildren)\r
+{\r
+this._objectId = objectId;\r
+this._type = type;\r
+this._description = description;\r
+this._hasChildren = hasChildren;\r
+}\r
+\r
+WebInspector.RemoteObject.fromPrimitiveValue = function(value)\r
+{\r
+return new WebInspector.RemoteObject(null, typeof value, value);\r
+}\r
+\r
+WebInspector.RemoteObject.fromLocalObject = function(value)\r
+{\r
+return new WebInspector.LocalJSONObject(value);\r
+}\r
+\r
+WebInspector.RemoteObject.resolveNode = function(node, callback)\r
+{\r
+function mycallback(object)\r
+{\r
+callback(object ? WebInspector.RemoteObject.fromPayload(object) : null);\r
+}\r
+InjectedScriptAccess.getForNode(node).resolveNode(node.id, mycallback);\r
+}\r
+\r
+WebInspector.RemoteObject.fromPayload = function(payload)\r
+{\r
+if (typeof payload === "object")\r
+return new WebInspector.RemoteObject(payload.objectId, payload.type, payload.description, payload.hasChildren);\r
+\r
+return payload;\r
+}\r
+\r
+WebInspector.RemoteObject.type = function(remoteObject)\r
+{\r
+if (remoteObject === null)\r
+return "null";\r
+\r
+var type = typeof remoteObject;\r
+if (type !== "object" && type !== "function")\r
+return type;\r
+\r
+return remoteObject.type;\r
+}\r
+\r
+WebInspector.RemoteObject.prototype = {\r
+get objectId()\r
+{\r
+return this._objectId;\r
+},\r
+\r
+get type()\r
+{\r
+return this._type;\r
+},\r
+\r
+get description()\r
+{\r
+return this._description;\r
+},\r
+\r
+get hasChildren()\r
+{\r
+return this._hasChildren;\r
+},\r
+\r
+isError: function()\r
+{\r
+return this._type === "error";\r
+},\r
+\r
+getOwnProperties: function(abbreviate, callback)\r
+{\r
+this.getProperties(false, abbreviate, callback);\r
+},\r
+\r
+getProperties: function(ignoreHasOwnProperty, abbreviate, callback)\r
+{\r
+if (!this._objectId) {\r
+callback([]);\r
+return;\r
+}\r
+function remoteObjectBinder(properties)\r
+{\r
+for (var i = 0; properties && i < properties.length; ++i)\r
+properties[i].value = WebInspector.RemoteObject.fromPayload(properties[i].value);\r
+callback(properties);\r
+}\r
+InjectedScriptAccess.getForObjectId(this._objectId).getProperties(this._objectId, ignoreHasOwnProperty, abbreviate, remoteObjectBinder);\r
+},\r
+\r
+setPropertyValue: function(name, value, callback)\r
+{\r
+if (!this._objectId) {\r
+callback(false);\r
+return;\r
+}\r
+InjectedScriptAccess.getForObjectId(this._objectId).setPropertyValue(this._objectId, name, value, callback);\r
+},\r
+\r
+pushNodeToFrontend: function(callback)\r
+{\r
+InjectedScriptAccess.getForObjectId(this._objectId).pushNodeToFrontend(this._objectId, callback);\r
+}\r
+}\r
+\r
+WebInspector.RemoteObjectProperty = function(name, value)\r
+{\r
+this.name = name;\r
+this.value = value;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.LocalJSONObject = function(value)\r
+{\r
+this._value = value;\r
+}\r
+\r
+WebInspector.LocalJSONObject.prototype = {\r
+get description()\r
+{\r
+var type = this.type;\r
+switch (type) {\r
+case "array":\r
+return "[" + this._value.length + "]";\r
+case "object":\r
+return this.hasChildren ? "{...}" : "{ }";\r
+default:\r
+return JSON.stringify(this._value);\r
+}\r
+},\r
+\r
+get type()\r
+{\r
+if (this._value === null)\r
+return "null";\r
+if (this._value instanceof Array)\r
+return "array";\r
+return typeof this._value;\r
+},\r
+\r
+get hasChildren()\r
+{\r
+return typeof this._value === "object" && this._value !== null && Object.keys(this._value).length;\r
+},\r
+\r
+getOwnProperties: function(abbreviate, callback)\r
+{\r
+return this.getProperties(false, abbreviate, callback);\r
+},\r
+\r
+getProperties: function(ignoreHasOwnProperty, abbreviate, callback)\r
+{\r
+function buildProperty(propName)\r
+{\r
+return new WebInspector.RemoteObjectProperty(propName, new WebInspector.LocalJSONObject(this._value[propName]));\r
+}\r
+callback(Object.keys(this._value).map(buildProperty.bind(this)));\r
+},\r
+\r
+isError: function()\r
+{\r
+return false;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ObjectPropertiesSection = function(object, title, subtitle, emptyPlaceholder, ignoreHasOwnProperty, extraProperties, treeElementConstructor)\r
+{\r
+this.emptyPlaceholder = (emptyPlaceholder || WebInspector.UIString("No Properties"));\r
+this.object = object;\r
+this.ignoreHasOwnProperty = ignoreHasOwnProperty;\r
+this.extraProperties = extraProperties;\r
+this.treeElementConstructor = treeElementConstructor || WebInspector.ObjectPropertyTreeElement;\r
+this.editable = true;\r
+\r
+WebInspector.PropertiesSection.call(this, title, subtitle);\r
+}\r
+\r
+WebInspector.ObjectPropertiesSection.prototype = {\r
+onpopulate: function()\r
+{\r
+this.update();\r
+},\r
+\r
+update: function()\r
+{\r
+var self = this;\r
+var callback = function(properties) {\r
+if (!properties)\r
+return;\r
+self.updateProperties(properties);\r
+};\r
+this.object.getProperties(this.ignoreHasOwnProperty, true, callback);\r
+},\r
+\r
+updateProperties: function(properties, rootTreeElementConstructor, rootPropertyComparer)\r
+{\r
+if (!rootTreeElementConstructor)\r
+rootTreeElementConstructor = this.treeElementConstructor;\r
+\r
+if (!rootPropertyComparer)\r
+rootPropertyComparer = WebInspector.ObjectPropertiesSection.CompareProperties;\r
+\r
+if (this.extraProperties)\r
+for (var i = 0; i < this.extraProperties.length; ++i)\r
+properties.push(this.extraProperties[i]);\r
+\r
+properties.sort(rootPropertyComparer);\r
+\r
+this.propertiesTreeOutline.removeChildren();\r
+\r
+for (var i = 0; i < properties.length; ++i) {\r
+properties[i].parentObject = this.object;\r
+this.propertiesTreeOutline.appendChild(new rootTreeElementConstructor(properties[i]));\r
+}\r
+\r
+if (!this.propertiesTreeOutline.children.length) {\r
+var title = "<div class=\"info\">" + this.emptyPlaceholder + "</div>";\r
+var infoElement = new TreeElement(null, null, false);\r
+infoElement.titleHTML = title;\r
+this.propertiesTreeOutline.appendChild(infoElement);\r
+}\r
+this.propertiesForTest = properties;\r
+}\r
+}\r
+\r
+WebInspector.ObjectPropertiesSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;\r
+\r
+WebInspector.ObjectPropertiesSection.CompareProperties = function(propertyA, propertyB) \r
+{\r
+var a = propertyA.name;\r
+var b = propertyB.name;\r
+if (a === "__proto__")\r
+return 1;\r
+if (b === "__proto__")\r
+return -1;\r
+\r
+\r
+\r
+\r
+\r
+var diff = 0;\r
+var chunk = /^\d+|^\D+/;\r
+var chunka, chunkb, anum, bnum;\r
+while (diff === 0) {\r
+if (!a && b)\r
+return -1;\r
+if (!b && a)\r
+return 1;\r
+chunka = a.match(chunk)[0];\r
+chunkb = b.match(chunk)[0];\r
+anum = !isNaN(chunka);\r
+bnum = !isNaN(chunkb);\r
+if (anum && !bnum)\r
+return -1;\r
+if (bnum && !anum)\r
+return 1;\r
+if (anum && bnum) {\r
+diff = chunka - chunkb;\r
+if (diff === 0 && chunka.length !== chunkb.length) {\r
+if (!+chunka && !+chunkb) \r
+return chunka.length - chunkb.length;\r
+else\r
+return chunkb.length - chunka.length;\r
+}\r
+} else if (chunka !== chunkb)\r
+return (chunka < chunkb) ? -1 : 1;\r
+a = a.substring(chunka.length);\r
+b = b.substring(chunkb.length);\r
+}\r
+return diff;\r
+}\r
+\r
+WebInspector.ObjectPropertyTreeElement = function(property)\r
+{\r
+this.property = property;\r
+\r
+\r
+TreeElement.call(this, "", null, false);\r
+}\r
+\r
+WebInspector.ObjectPropertyTreeElement.prototype = {\r
+onpopulate: function()\r
+{\r
+if (this.children.length && !this.shouldRefreshChildren)\r
+return;\r
+\r
+var callback = function(properties) {\r
+this.removeChildren();\r
+if (!properties)\r
+return;\r
+\r
+properties.sort(WebInspector.ObjectPropertiesSection.CompareProperties);\r
+for (var i = 0; i < properties.length; ++i) {\r
+this.appendChild(new this.treeOutline.section.treeElementConstructor(properties[i]));\r
+}\r
+};\r
+this.property.value.getOwnProperties(true, callback.bind(this));\r
+},\r
+\r
+ondblclick: function(event)\r
+{\r
+this.startEditing();\r
+},\r
+\r
+onattach: function()\r
+{\r
+this.update();\r
+},\r
+\r
+update: function()\r
+{\r
+this.nameElement = document.createElement("span");\r
+this.nameElement.className = "name";\r
+this.nameElement.textContent = this.property.name;\r
+\r
+var separatorElement = document.createElement("span");\r
+separatorElement.className = "separator";\r
+separatorElement.textContent = ": ";\r
+\r
+this.valueElement = document.createElement("span");\r
+this.valueElement.className = "value";\r
+this.valueElement.textContent = this.property.value.description;\r
+if (this.property.isGetter)\r
+this.valueElement.addStyleClass("dimmed");\r
+if (this.property.value.isError())\r
+this.valueElement.addStyleClass("error");\r
+if (this.property.value.type)\r
+this.valueElement.addStyleClass("console-formatted-" + this.property.value.type);\r
+if (this.property.value.type === "node")\r
+this.valueElement.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true);\r
+\r
+this.listItemElement.removeChildren();\r
+\r
+this.listItemElement.appendChild(this.nameElement);\r
+this.listItemElement.appendChild(separatorElement);\r
+this.listItemElement.appendChild(this.valueElement);\r
+this.hasChildren = this.property.value.hasChildren;\r
+},\r
+\r
+_contextMenuEventFired: function()\r
+{\r
+function selectNode(nodeId)\r
+{\r
+if (nodeId) {\r
+WebInspector.currentPanel = WebInspector.panels.elements;\r
+WebInspector.panels.elements.focusedDOMNode = WebInspector.domAgent.nodeForId(nodeId);\r
+}\r
+}\r
+\r
+function revealElement()\r
+{\r
+this.property.value.pushNodeToFrontend(selectNode);\r
+}\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+contextMenu.appendItem(WebInspector.UIString("Reveal in Elements Panel"), revealElement.bind(this));\r
+contextMenu.show(event);\r
+},\r
+\r
+updateSiblings: function()\r
+{\r
+if (this.parent.root)\r
+this.treeOutline.section.update();\r
+else\r
+this.parent.shouldRefreshChildren = true;\r
+},\r
+\r
+startEditing: function()\r
+{\r
+if (WebInspector.isBeingEdited(this.valueElement) || !this.treeOutline.section.editable)\r
+return;\r
+\r
+var context = { expanded: this.expanded };\r
+\r
+\r
+this.hasChildren = false;\r
+\r
+this.listItemElement.addStyleClass("editing-sub-part");\r
+\r
+WebInspector.startEditing(this.valueElement, {\r
+context: context,\r
+commitHandler: this.editingCommitted.bind(this),\r
+cancelHandler: this.editingCancelled.bind(this)\r
+});\r
+},\r
+\r
+editingEnded: function(context)\r
+{\r
+this.listItemElement.scrollLeft = 0;\r
+this.listItemElement.removeStyleClass("editing-sub-part");\r
+if (context.expanded)\r
+this.expand();\r
+},\r
+\r
+editingCancelled: function(element, context)\r
+{\r
+this.update();\r
+this.editingEnded(context);\r
+},\r
+\r
+editingCommitted: function(element, userInput, previousContent, context)\r
+{\r
+if (userInput === previousContent)\r
+return this.editingCancelled(element, context); \r
+\r
+this.applyExpression(userInput, true);\r
+\r
+this.editingEnded(context);\r
+},\r
+\r
+applyExpression: function(expression, updateInterface)\r
+{\r
+expression = expression.trim();\r
+var expressionLength = expression.length;\r
+var self = this;\r
+var callback = function(success) {\r
+if (!updateInterface)\r
+return;\r
+\r
+if (!success)\r
+self.update();\r
+\r
+if (!expressionLength) {\r
+\r
+self.parent.removeChild(this);\r
+} else {\r
+\r
+self.updateSiblings();\r
+}\r
+};\r
+this.property.parentObject.setPropertyValue(this.property.name, expression.trim(), callback);\r
+}\r
+}\r
+\r
+WebInspector.ObjectPropertyTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.BreakpointsSidebarPane = function(title)\r
+{\r
+WebInspector.SidebarPane.call(this, title);\r
+\r
+this.listElement = document.createElement("ol");\r
+this.listElement.className = "breakpoint-list";\r
+\r
+this.emptyElement = document.createElement("div");\r
+this.emptyElement.className = "info";\r
+this.emptyElement.textContent = WebInspector.UIString("No Breakpoints");\r
+\r
+this.bodyElement.appendChild(this.emptyElement);\r
+\r
+WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.ProjectChanged, this._projectChanged, this);\r
+}\r
+\r
+WebInspector.BreakpointsSidebarPane.prototype = {\r
+addBreakpointItem: function(breakpointItem)\r
+{\r
+var element = breakpointItem.element;\r
+element._breakpointItem = breakpointItem;\r
+\r
+breakpointItem.addEventListener("breakpoint-hit", this.expand, this);\r
+breakpointItem.addEventListener("removed", this._removeListElement.bind(this, element), this);\r
+\r
+var currentElement = this.listElement.firstChild;\r
+while (currentElement) {\r
+if (currentElement._breakpointItem && currentElement._breakpointItem.compareTo(element._breakpointItem) > 0)\r
+break;\r
+currentElement = currentElement.nextSibling;\r
+}\r
+this._addListElement(element, currentElement);\r
+\r
+if (breakpointItem.click) {\r
+element.addStyleClass("cursor-pointer");\r
+element.addEventListener("click", breakpointItem.click.bind(breakpointItem), false);\r
+}\r
+element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this, breakpointItem), true);\r
+},\r
+\r
+_contextMenuEventFired: function(breakpointItem, event)\r
+{\r
+var contextMenu = new WebInspector.ContextMenu();\r
+contextMenu.appendItem(WebInspector.UIString("Remove Breakpoint"), breakpointItem.remove.bind(breakpointItem));\r
+contextMenu.show(event);\r
+},\r
+\r
+_addListElement: function(element, beforeElement)\r
+{\r
+if (beforeElement)\r
+this.listElement.insertBefore(element, beforeElement);\r
+else {\r
+if (!this.listElement.firstChild) {\r
+this.bodyElement.removeChild(this.emptyElement);\r
+this.bodyElement.appendChild(this.listElement);\r
+}\r
+this.listElement.appendChild(element);\r
+}\r
+},\r
+\r
+_removeListElement: function(element)\r
+{\r
+this.listElement.removeChild(element);\r
+if (!this.listElement.firstChild) {\r
+this.bodyElement.removeChild(this.listElement);\r
+this.bodyElement.appendChild(this.emptyElement);\r
+}\r
+},\r
+\r
+_projectChanged: function()\r
+{\r
+this.listElement.removeChildren();\r
+if (this.listElement.parentElement) {\r
+this.bodyElement.removeChild(this.listElement);\r
+this.bodyElement.appendChild(this.emptyElement);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.BreakpointsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.XHRBreakpointsSidebarPane = function()\r
+{\r
+WebInspector.BreakpointsSidebarPane.call(this, WebInspector.UIString("XHR Breakpoints"));\r
+\r
+function addButtonClicked(event)\r
+{\r
+event.stopPropagation();\r
+this._startEditingBreakpoint(null);\r
+}\r
+\r
+var addButton = document.createElement("button");\r
+addButton.className = "add";\r
+addButton.addEventListener("click", addButtonClicked.bind(this), false);\r
+this.titleElement.appendChild(addButton);\r
+}\r
+\r
+WebInspector.XHRBreakpointsSidebarPane.prototype = {\r
+addBreakpointItem: function(breakpointItem)\r
+{\r
+WebInspector.BreakpointsSidebarPane.prototype.addBreakpointItem.call(this, breakpointItem);\r
+breakpointItem._labelElement.addEventListener("dblclick", this._startEditingBreakpoint.bind(this, breakpointItem), false);\r
+},\r
+\r
+_startEditingBreakpoint: function(breakpointItem)\r
+{\r
+if (this._editingBreakpoint)\r
+return;\r
+this._editingBreakpoint = true;\r
+\r
+if (!this.expanded)\r
+this.expanded = true;\r
+\r
+var inputElement = document.createElement("span");\r
+inputElement.className = "breakpoint-condition editing";\r
+if (breakpointItem) {\r
+breakpointItem.populateEditElement(inputElement);\r
+this.listElement.insertBefore(inputElement, breakpointItem.element);\r
+breakpointItem.element.addStyleClass("hidden");\r
+} else\r
+this._addListElement(inputElement, this.listElement.firstChild);\r
+\r
+var commitHandler = this._hideEditBreakpointDialog.bind(this, inputElement, true, breakpointItem);\r
+var cancelHandler = this._hideEditBreakpointDialog.bind(this, inputElement, false, breakpointItem);\r
+WebInspector.startEditing(inputElement, {\r
+commitHandler: commitHandler,\r
+cancelHandler: cancelHandler\r
+});\r
+},\r
+\r
+_hideEditBreakpointDialog: function(inputElement, accept, breakpointItem)\r
+{\r
+this._removeListElement(inputElement);\r
+this._editingBreakpoint = false;\r
+if (accept) {\r
+if (breakpointItem)\r
+breakpointItem.remove();\r
+WebInspector.breakpointManager.createXHRBreakpoint(inputElement.textContent.toLowerCase());\r
+} else if (breakpointItem)\r
+breakpointItem.element.removeStyleClass("hidden");\r
+}\r
+}\r
+\r
+WebInspector.XHRBreakpointsSidebarPane.prototype.__proto__ = WebInspector.BreakpointsSidebarPane.prototype;\r
+\r
+WebInspector.BreakpointItem = function(breakpoint)\r
+{\r
+this._breakpoint = breakpoint;\r
+\r
+this._element = document.createElement("li");\r
+\r
+var checkboxElement = document.createElement("input");\r
+checkboxElement.className = "checkbox-elem";\r
+checkboxElement.type = "checkbox";\r
+checkboxElement.checked = this._breakpoint.enabled;\r
+checkboxElement.addEventListener("click", this._checkboxClicked.bind(this), false);\r
+this._element.appendChild(checkboxElement);\r
+\r
+this._createLabelElement();\r
+\r
+this._breakpoint.addEventListener("enable-changed", this._enableChanged, this);\r
+this._breakpoint.addEventListener("hit-state-changed", this._hitStateChanged, this);\r
+this._breakpoint.addEventListener("label-changed", this._labelChanged, this);\r
+this._breakpoint.addEventListener("removed", this.dispatchEventToListeners.bind(this, "removed"));\r
+if (breakpoint.click)\r
+this.click = breakpoint.click.bind(breakpoint);\r
+}\r
+\r
+WebInspector.BreakpointItem.prototype = {\r
+get element()\r
+{\r
+return this._element;\r
+},\r
+\r
+compareTo: function(other)\r
+{\r
+return this._breakpoint.compareTo(other._breakpoint);\r
+},\r
+\r
+populateEditElement: function(element)\r
+{\r
+this._breakpoint.populateEditElement(element);\r
+},\r
+\r
+remove: function()\r
+{\r
+this._breakpoint.remove();\r
+},\r
+\r
+_checkboxClicked: function(event)\r
+{\r
+this._breakpoint.enabled = !this._breakpoint.enabled;\r
+\r
+\r
+event.stopPropagation();\r
+},\r
+\r
+_enableChanged: function(event)\r
+{\r
+var checkbox = this._element.firstChild;\r
+checkbox.checked = this._breakpoint.enabled;\r
+},\r
+\r
+_hitStateChanged: function(event)\r
+{\r
+if (event.target.hit) {\r
+this._element.addStyleClass("breakpoint-hit");\r
+this.dispatchEventToListeners("breakpoint-hit");\r
+} else\r
+this._element.removeStyleClass("breakpoint-hit");\r
+},\r
+\r
+_labelChanged: function(event)\r
+{\r
+this._element.removeChild(this._labelElement);\r
+this._createLabelElement();\r
+},\r
+\r
+_createLabelElement: function()\r
+{\r
+this._labelElement = document.createElement("span");\r
+this._breakpoint.populateLabelElement(this._labelElement);\r
+this._element.appendChild(this._labelElement);\r
+}\r
+}\r
+\r
+WebInspector.BreakpointItem.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.EventListenerBreakpointsSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Event Listener Breakpoints"));\r
+\r
+this.categoriesElement = document.createElement("ol");\r
+this.categoriesElement.tabIndex = 0;\r
+this.categoriesElement.addStyleClass("properties-tree event-listener-breakpoints");\r
+this.categoriesTreeOutline = new TreeOutline(this.categoriesElement);\r
+this.bodyElement.appendChild(this.categoriesElement);\r
+\r
+WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.ProjectChanged, this._projectChanged, this);\r
+WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.EventListenerBreakpointAdded, this._breakpointAdded, this);\r
+\r
+this._breakpointItems = {};\r
+this._createCategory("Keyboard", "listener", ["keydown", "keyup", "keypress", "textInput"]);\r
+this._createCategory("Mouse", "listener", ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mousemove", "mouseout", "mousewheel"]);\r
+\r
+\r
+\r
+this._createCategory("Control", "listener", ["resize", "scroll", "zoom", "focus", "blur", "select", "change", "submit", "reset"]);\r
+this._createCategory("Clipboard", "listener", ["copy", "cut", "paste", "beforecopy", "beforecut", "beforepaste"]);\r
+this._createCategory("Load", "listener", ["load", "unload", "abort", "error"]);\r
+this._createCategory("DOM Mutation", "listener", ["DOMActivate", "DOMFocusIn", "DOMFocusOut", "DOMAttrModified", "DOMCharacterDataModified", "DOMNodeInserted", "DOMNodeInsertedIntoDocument", "DOMNodeRemoved", "DOMNodeRemovedFromDocument", "DOMSubtreeModified", "DOMContentLoaded"]);\r
+this._createCategory("Device", "listener", ["deviceorientation", "devicemotion"]);\r
+this._createCategory("Timer", "instrumentation", ["setTimer", "clearTimer", "timerFired"]);\r
+}\r
+\r
+WebInspector.EventListenerBreakpointsSidebarPane.prototype = {\r
+_createCategory: function(name, type, eventNames)\r
+{\r
+var categoryItem = {};\r
+categoryItem.element = new TreeElement(WebInspector.UIString(name));\r
+this.categoriesTreeOutline.appendChild(categoryItem.element);\r
+categoryItem.element.listItemElement.addStyleClass("event-category");\r
+categoryItem.element.selectable = true;\r
+\r
+categoryItem.checkbox = this._createCheckbox(categoryItem.element);\r
+categoryItem.checkbox.addEventListener("click", this._categoryCheckboxClicked.bind(this, categoryItem), true);\r
+\r
+categoryItem.children = {};\r
+for (var i = 0; i < eventNames.length; ++i) {\r
+var eventName = type + ":" + eventNames[i];\r
+\r
+var breakpointItem = {};\r
+var title = WebInspector.EventListenerBreakpointView.eventNameForUI(eventName);\r
+breakpointItem.element = new TreeElement(title);\r
+categoryItem.element.appendChild(breakpointItem.element);\r
+var hitMarker = document.createElement("div");\r
+hitMarker.className = "breakpoint-hit-marker";\r
+breakpointItem.element.listItemElement.appendChild(hitMarker);\r
+breakpointItem.element.listItemElement.addStyleClass("source-code");\r
+breakpointItem.element.selectable = true;\r
+\r
+breakpointItem.checkbox = this._createCheckbox(breakpointItem.element);\r
+breakpointItem.checkbox.addEventListener("click", this._breakpointCheckboxClicked.bind(this, breakpointItem), true);\r
+breakpointItem.parent = categoryItem;\r
+breakpointItem.eventName = eventName;\r
+\r
+this._breakpointItems[eventName] = breakpointItem;\r
+categoryItem.children[eventName] = breakpointItem;\r
+}\r
+},\r
+\r
+_createCheckbox: function(treeElement)\r
+{\r
+var checkbox = document.createElement("input");\r
+checkbox.className = "checkbox-elem";\r
+checkbox.type = "checkbox";\r
+treeElement.listItemElement.insertBefore(checkbox, treeElement.listItemElement.firstChild);\r
+return checkbox;\r
+},\r
+\r
+_categoryCheckboxClicked: function(categoryItem)\r
+{\r
+var checked = categoryItem.checkbox.checked;\r
+for (var eventName in categoryItem.children) {\r
+var breakpointItem = categoryItem.children[eventName];\r
+if (breakpointItem.checkbox.checked !== checked) {\r
+breakpointItem.checkbox.checked = checked;\r
+this._breakpointCheckboxClicked(breakpointItem);\r
+}\r
+}\r
+},\r
+\r
+_breakpointCheckboxClicked: function(breakpointItem)\r
+{\r
+if (breakpointItem.checkbox.checked)\r
+WebInspector.breakpointManager.createEventListenerBreakpoint(breakpointItem.eventName);\r
+else\r
+breakpointItem.breakpoint.remove();\r
+},\r
+\r
+_breakpointAdded: function(event)\r
+{\r
+var breakpoint = event.data;\r
+\r
+var breakpointItem = this._breakpointItems[breakpoint.eventName];\r
+breakpointItem.breakpoint = breakpoint;\r
+breakpoint.addEventListener("hit-state-changed", this._breakpointHitStateChanged.bind(this, breakpointItem));\r
+breakpoint.addEventListener("removed", this._breakpointRemoved.bind(this, breakpointItem));\r
+breakpointItem.checkbox.checked = true;\r
+this._updateCategoryCheckbox(breakpointItem);\r
+},\r
+\r
+_breakpointHitStateChanged: function(breakpointItem, event)\r
+{\r
+if (event.target.hit) {\r
+this.expanded = true;\r
+var categoryItem = breakpointItem.parent;\r
+categoryItem.element.expand();\r
+breakpointItem.element.listItemElement.addStyleClass("breakpoint-hit");\r
+} else\r
+breakpointItem.element.listItemElement.removeStyleClass("breakpoint-hit");\r
+},\r
+\r
+_breakpointRemoved: function(breakpointItem)\r
+{\r
+breakpointItem.breakpoint = null;\r
+breakpointItem.checkbox.checked = false;\r
+this._updateCategoryCheckbox(breakpointItem);\r
+},\r
+\r
+_updateCategoryCheckbox: function(breakpointItem)\r
+{\r
+var categoryItem = breakpointItem.parent;\r
+var hasEnabled = false, hasDisabled = false;\r
+for (var eventName in categoryItem.children) {\r
+var breakpointItem = categoryItem.children[eventName];\r
+if (breakpointItem.checkbox.checked)\r
+hasEnabled = true;\r
+else\r
+hasDisabled = true;\r
+}\r
+categoryItem.checkbox.checked = hasEnabled;\r
+categoryItem.checkbox.indeterminate = hasEnabled && hasDisabled;\r
+},\r
+\r
+_projectChanged: function()\r
+{\r
+for (var eventName in this._breakpointItems) {\r
+var breakpointItem = this._breakpointItems[eventName];\r
+breakpointItem.breakpoint = null;\r
+breakpointItem.checkbox.checked = false;\r
+this._updateCategoryCheckbox(breakpointItem);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.EventListenerBreakpointsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CallStackSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Call Stack"));\r
+}\r
+\r
+WebInspector.CallStackSidebarPane.prototype = {\r
+update: function(callFrames, eventType, eventData)\r
+{\r
+this.bodyElement.removeChildren();\r
+\r
+this.placards = [];\r
+delete this._selectedCallFrame;\r
+\r
+if (!callFrames) {\r
+var infoElement = document.createElement("div");\r
+infoElement.className = "info";\r
+infoElement.textContent = WebInspector.UIString("Not Paused");\r
+this.bodyElement.appendChild(infoElement);\r
+return;\r
+}\r
+\r
+var title;\r
+var subtitle;\r
+var script;\r
+\r
+for (var i = 0; i < callFrames.length; ++i) {\r
+var callFrame = callFrames[i];\r
+switch (callFrame.type) {\r
+case "function":\r
+title = callFrame.functionName || WebInspector.UIString("(anonymous function)");\r
+break;\r
+case "program":\r
+title = WebInspector.UIString("(program)");\r
+break;\r
+}\r
+\r
+script = WebInspector.debuggerModel.scriptForSourceID(callFrame.sourceID);\r
+if (script)\r
+subtitle = WebInspector.displayNameForURL(script.sourceURL);\r
+else\r
+subtitle = WebInspector.UIString("(internal script)");\r
+\r
+if (callFrame.line > 0) {\r
+if (subtitle)\r
+subtitle += ":" + callFrame.line;\r
+else\r
+subtitle = WebInspector.UIString("line %d", callFrame.line);\r
+}\r
+\r
+var placard = new WebInspector.Placard(title, subtitle);\r
+placard.callFrame = callFrame;\r
+\r
+placard.element.addEventListener("click", this._placardSelected.bind(this), false);\r
+\r
+this.placards.push(placard);\r
+this.bodyElement.appendChild(placard.element);\r
+}\r
+\r
+if (eventType === WebInspector.DebuggerEventTypes.JavaScriptPause)\r
+return;\r
+\r
+var statusMessageElement = document.createElement("div");\r
+statusMessageElement.className = "info";\r
+if (eventType === WebInspector.DebuggerEventTypes.NativeBreakpoint) {\r
+var breakpoint = WebInspector.breakpointManager.breakpointViewForEventData(eventData);\r
+if (breakpoint)\r
+breakpoint.populateStatusMessageElement(statusMessageElement, eventData);\r
+} else\r
+statusMessageElement.appendChild(document.createTextNode(WebInspector.UIString("Paused on a JavaScript breakpoint.")));\r
+this.bodyElement.appendChild(statusMessageElement);\r
+},\r
+\r
+get selectedCallFrame()\r
+{\r
+return this._selectedCallFrame;\r
+},\r
+\r
+set selectedCallFrame(x)\r
+{\r
+if (this._selectedCallFrame === x)\r
+return;\r
+\r
+this._selectedCallFrame = x;\r
+\r
+for (var i = 0; i < this.placards.length; ++i) {\r
+var placard = this.placards[i];\r
+placard.selected = (placard.callFrame === this._selectedCallFrame);\r
+}\r
+\r
+this.dispatchEventToListeners("call frame selected");\r
+},\r
+\r
+handleShortcut: function(event)\r
+{\r
+var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);\r
+var handler = this._shortcuts[shortcut];\r
+if (handler) {\r
+handler(event);\r
+event.handled = true;\r
+}\r
+},\r
+\r
+_selectNextCallFrameOnStack: function()\r
+{\r
+var index = this._selectedCallFrameIndex();\r
+if (index == -1)\r
+return;\r
+this._selectedPlacardByIndex(index + 1);\r
+},\r
+\r
+_selectPreviousCallFrameOnStack: function()\r
+{\r
+var index = this._selectedCallFrameIndex();\r
+if (index == -1)\r
+return;\r
+this._selectedPlacardByIndex(index - 1);\r
+},\r
+\r
+_selectedPlacardByIndex: function(index)\r
+{\r
+if (index < 0 || index >= this.placards.length)\r
+return;\r
+var placard = this.placards[index];\r
+this.selectedCallFrame = placard.callFrame\r
+},\r
+\r
+_selectedCallFrameIndex: function()\r
+{\r
+if (!this._selectedCallFrame)\r
+return -1;\r
+for (var i = 0; i < this.placards.length; ++i) {\r
+var placard = this.placards[i];\r
+if (placard.callFrame === this._selectedCallFrame)\r
+return i;\r
+}\r
+return -1;\r
+},\r
+\r
+_placardSelected: function(event)\r
+{\r
+var placardElement = event.target.enclosingNodeOrSelfWithClass("placard");\r
+this.selectedCallFrame = placardElement.placard.callFrame;\r
+},\r
+\r
+registerShortcuts: function(section)\r
+{\r
+this._shortcuts = {};\r
+\r
+var nextCallFrame = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Period,\r
+WebInspector.KeyboardShortcut.Modifiers.Ctrl);\r
+this._shortcuts[nextCallFrame.key] = this._selectNextCallFrameOnStack.bind(this);\r
+\r
+var prevCallFrame = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Comma,\r
+WebInspector.KeyboardShortcut.Modifiers.Ctrl);\r
+this._shortcuts[prevCallFrame.key] = this._selectPreviousCallFrameOnStack.bind(this);\r
+\r
+section.addRelatedKeys([ nextCallFrame.name, prevCallFrame.name ], WebInspector.UIString("Next/previous call frame"));\r
+}\r
+}\r
+\r
+WebInspector.CallStackSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ScopeChainSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Scope Variables"));\r
+this._expandedProperties = [];\r
+}\r
+\r
+WebInspector.ScopeChainSidebarPane.prototype = {\r
+update: function(callFrame)\r
+{\r
+this.bodyElement.removeChildren();\r
+\r
+this.sections = [];\r
+this.callFrame = callFrame;\r
+\r
+if (!callFrame) {\r
+var infoElement = document.createElement("div");\r
+infoElement.className = "info";\r
+infoElement.textContent = WebInspector.UIString("Not Paused");\r
+this.bodyElement.appendChild(infoElement);\r
+return;\r
+}\r
+\r
+var foundLocalScope = false;\r
+var scopeChain = callFrame.scopeChain;\r
+for (var i = 0; i < scopeChain.length; ++i) {\r
+var scopeObjectProxy = scopeChain[i];\r
+var title = null;\r
+var subtitle = scopeObjectProxy.description;\r
+var emptyPlaceholder = null;\r
+var extraProperties = null;\r
+\r
+if (scopeObjectProxy.isLocal) {\r
+foundLocalScope = true;\r
+title = WebInspector.UIString("Local");\r
+emptyPlaceholder = WebInspector.UIString("No Variables");\r
+subtitle = null;\r
+if (scopeObjectProxy.thisObject)\r
+extraProperties = [ new WebInspector.RemoteObjectProperty("this", WebInspector.RemoteObject.fromPayload(scopeObjectProxy.thisObject)) ];\r
+} else if (scopeObjectProxy.isClosure) {\r
+title = WebInspector.UIString("Closure");\r
+emptyPlaceholder = WebInspector.UIString("No Variables");\r
+subtitle = null;\r
+} else if (i === (scopeChain.length - 1))\r
+title = WebInspector.UIString("Global");\r
+else if (scopeObjectProxy.isElement)\r
+title = WebInspector.UIString("Event Target");\r
+else if (scopeObjectProxy.isDocument)\r
+title = WebInspector.UIString("Event Document");\r
+else if (scopeObjectProxy.isWithBlock)\r
+title = WebInspector.UIString("With Block");\r
+\r
+if (!title || title === subtitle)\r
+subtitle = null;\r
+\r
+var section = new WebInspector.ObjectPropertiesSection(WebInspector.RemoteObject.fromPayload(scopeObjectProxy), title, subtitle, emptyPlaceholder, true, extraProperties, WebInspector.ScopeVariableTreeElement);\r
+section.editInSelectedCallFrameWhenPaused = true;\r
+section.pane = this;\r
+\r
+if (!foundLocalScope || scopeObjectProxy.isLocal)\r
+section.expanded = true;\r
+\r
+this.sections.push(section);\r
+this.bodyElement.appendChild(section.element);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ScopeChainSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.ScopeVariableTreeElement = function(property)\r
+{\r
+WebInspector.ObjectPropertyTreeElement.call(this, property);\r
+}\r
+\r
+WebInspector.ScopeVariableTreeElement.prototype = {\r
+onattach: function()\r
+{\r
+WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this);\r
+if (this.hasChildren && this.propertyIdentifier in this.treeOutline.section.pane._expandedProperties)\r
+this.expand();\r
+},\r
+\r
+onexpand: function()\r
+{\r
+this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier] = true;\r
+},\r
+\r
+oncollapse: function()\r
+{\r
+delete this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier];\r
+},\r
+\r
+get propertyIdentifier()\r
+{\r
+if ("_propertyIdentifier" in this)\r
+return this._propertyIdentifier;\r
+var section = this.treeOutline.section;\r
+this._propertyIdentifier = section.title + ":" + (section.subtitle ? section.subtitle + ":" : "") + this.propertyPath;\r
+return this._propertyIdentifier;\r
+},\r
+\r
+get propertyPath()\r
+{\r
+if ("_propertyPath" in this)\r
+return this._propertyPath;\r
+\r
+var current = this;\r
+var result;\r
+\r
+do {\r
+if (result)\r
+result = current.property.name + "." + result;\r
+else\r
+result = current.property.name;\r
+current = current.parent;\r
+} while (current && !current.root);\r
+\r
+this._propertyPath = result;\r
+return result;\r
+}\r
+}\r
+\r
+WebInspector.ScopeVariableTreeElement.prototype.__proto__ = WebInspector.ObjectPropertyTreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.WatchExpressionsSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Watch Expressions"));\r
+this.reset();\r
+}\r
+\r
+WebInspector.WatchExpressionsSidebarPane.prototype = {\r
+reset: function()\r
+{\r
+this.bodyElement.removeChildren();\r
+\r
+this.expanded = WebInspector.settings.watchExpressions.length > 0;\r
+this.section = new WebInspector.WatchExpressionsSection();\r
+this.bodyElement.appendChild(this.section.element);\r
+\r
+var addElement = document.createElement("button");\r
+addElement.setAttribute("type", "button");\r
+addElement.textContent = WebInspector.UIString("Add");\r
+addElement.addEventListener("click", this.section.addExpression.bind(this.section), false);\r
+\r
+var refreshElement = document.createElement("button");\r
+refreshElement.setAttribute("type", "button");\r
+refreshElement.textContent = WebInspector.UIString("Refresh");\r
+refreshElement.addEventListener("click", this.section.update.bind(this.section), false);\r
+\r
+var centerElement = document.createElement("div");\r
+centerElement.addStyleClass("watch-expressions-buttons-container");\r
+centerElement.appendChild(addElement);\r
+centerElement.appendChild(refreshElement);\r
+this.bodyElement.appendChild(centerElement);\r
+\r
+this.onexpand = this.refreshExpressions.bind(this);\r
+},\r
+\r
+refreshExpressions: function()\r
+{\r
+if (this.section)\r
+this.section.update();\r
+}\r
+}\r
+\r
+WebInspector.WatchExpressionsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.WatchExpressionsSection = function()\r
+{\r
+this._watchObjectGroupId = "watch-group";\r
+\r
+WebInspector.ObjectPropertiesSection.call(this);\r
+\r
+this.watchExpressions = WebInspector.settings.watchExpressions;\r
+\r
+this.headerElement.className = "hidden";\r
+this.editable = true;\r
+this.expanded = true;\r
+this.propertiesElement.addStyleClass("watch-expressions");\r
+}\r
+\r
+WebInspector.WatchExpressionsSection.NewWatchExpression = "\xA0";\r
+\r
+WebInspector.WatchExpressionsSection.prototype = {\r
+update: function()\r
+{\r
+function appendResult(expression, watchIndex, result)\r
+{\r
+var property = new WebInspector.RemoteObjectProperty(expression, result);\r
+property.watchIndex = watchIndex;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+properties.push(property);\r
+\r
+if (properties.length == propertyCount) {\r
+this.updateProperties(properties, WebInspector.WatchExpressionTreeElement, WebInspector.WatchExpressionsSection.CompareProperties);\r
+\r
+\r
+\r
+if (this._newExpressionAdded) {\r
+delete this._newExpressionAdded;\r
+\r
+treeElement = this.findAddedTreeElement();\r
+if (treeElement)\r
+treeElement.startEditing();\r
+}\r
+}\r
+}\r
+\r
+\r
+InspectorBackend.releaseWrapperObjectGroup(0, this._watchObjectGroupId)\r
+var properties = [];\r
+\r
+\r
+\r
+var propertyCount = 0;\r
+for (var i = 0; i < this.watchExpressions.length; ++i) {\r
+if (!this.watchExpressions[i]) \r
+continue;\r
+++propertyCount;\r
+}\r
+\r
+\r
+\r
+for (var i = 0; i < this.watchExpressions.length; ++i) {\r
+var expression = this.watchExpressions[i];\r
+if (!expression)\r
+continue;\r
+\r
+WebInspector.console.evalInInspectedWindow("(" + expression + ")", this._watchObjectGroupId, appendResult.bind(this, expression, i));\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+this.expanded = (propertyCount != 0);\r
+},\r
+\r
+addExpression: function()\r
+{\r
+this._newExpressionAdded = true;\r
+this.watchExpressions.push(WebInspector.WatchExpressionsSection.NewWatchExpression);\r
+this.update();\r
+},\r
+\r
+updateExpression: function(element, value)\r
+{\r
+this.watchExpressions[element.property.watchIndex] = value;\r
+this.saveExpressions();\r
+this.update();\r
+},\r
+\r
+findAddedTreeElement: function()\r
+{\r
+var children = this.propertiesTreeOutline.children;\r
+for (var i = 0; i < children.length; ++i)\r
+if (children[i].property.name === WebInspector.WatchExpressionsSection.NewWatchExpression)\r
+return children[i];\r
+},\r
+\r
+saveExpressions: function()\r
+{\r
+var toSave = [];\r
+for (var i = 0; i < this.watchExpressions.length; i++)\r
+if (this.watchExpressions[i])\r
+toSave.push(this.watchExpressions[i]);\r
+\r
+WebInspector.settings.watchExpressions = toSave;\r
+return toSave.length;\r
+}\r
+}\r
+\r
+WebInspector.WatchExpressionsSection.prototype.__proto__ = WebInspector.ObjectPropertiesSection.prototype;\r
+\r
+WebInspector.WatchExpressionsSection.CompareProperties = function(propertyA, propertyB) \r
+{\r
+if (propertyA.watchIndex == propertyB.watchIndex)\r
+return 0;\r
+else if (propertyA.watchIndex < propertyB.watchIndex)\r
+return -1;\r
+else\r
+return 1;\r
+}\r
+\r
+WebInspector.WatchExpressionTreeElement = function(property)\r
+{\r
+WebInspector.ObjectPropertyTreeElement.call(this, property);\r
+}\r
+\r
+WebInspector.WatchExpressionTreeElement.prototype = {\r
+update: function()\r
+{\r
+WebInspector.ObjectPropertyTreeElement.prototype.update.call(this);\r
+\r
+if (this.property.value.isError())\r
+this.valueElement.addStyleClass("watch-expressions-error-level");\r
+\r
+var deleteButton = document.createElement("input");\r
+deleteButton.type = "button";\r
+deleteButton.title = WebInspector.UIString("Delete watch expression.");\r
+deleteButton.addStyleClass("enabled-button");\r
+deleteButton.addStyleClass("delete-button");\r
+deleteButton.addEventListener("click", this._deleteButtonClicked.bind(this), false);\r
+\r
+this.listItemElement.insertBefore(deleteButton, this.listItemElement.firstChild);\r
+},\r
+\r
+_deleteButtonClicked: function()\r
+{\r
+this.treeOutline.section.updateExpression(this, null);\r
+},\r
+\r
+startEditing: function()\r
+{\r
+if (WebInspector.isBeingEdited(this.nameElement) || !this.treeOutline.section.editable)\r
+return;\r
+\r
+this.nameElement.textContent = this.property.name.trim();\r
+\r
+var context = { expanded: this.expanded };\r
+\r
+\r
+this.hasChildren = false;\r
+\r
+this.listItemElement.addStyleClass("editing-sub-part");\r
+\r
+WebInspector.startEditing(this.nameElement, {\r
+context: context,\r
+commitHandler: this.editingCommitted.bind(this),\r
+cancelHandler: this.editingCancelled.bind(this)\r
+});\r
+},\r
+\r
+editingCancelled: function(element, context)\r
+{\r
+if (!this.nameElement.textContent)\r
+this.treeOutline.section.updateExpression(this, null);\r
+\r
+this.update();\r
+this.editingEnded(context);\r
+},\r
+\r
+applyExpression: function(expression, updateInterface)\r
+{\r
+expression = expression.trim();\r
+\r
+if (!expression)\r
+expression = null;\r
+\r
+this.property.name = expression;\r
+this.treeOutline.section.updateExpression(this, expression);\r
+}\r
+}\r
+\r
+WebInspector.WatchExpressionTreeElement.prototype.__proto__ = WebInspector.ObjectPropertyTreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.WorkersSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Workers"));\r
+\r
+this._workers = {};\r
+\r
+this._enableWorkersCheckbox = new WebInspector.Checkbox(\r
+WebInspector.UIString("Debug"),\r
+"sidebar-pane-subtitle",\r
+WebInspector.UIString("Allow debugging workers. Enabling this option will replace native workers with the iframe-based JavaScript implementation"));\r
+this.titleElement.insertBefore(this._enableWorkersCheckbox.element, this.titleElement.firstChild);\r
+\r
+this._enableWorkersCheckbox.addEventListener(this._onTriggerInstrument.bind(this));\r
+this._enableWorkersCheckbox.checked = false;\r
+\r
+this._listElement = document.createElement("ol");\r
+this._listElement.className = "workers-list";\r
+\r
+this.bodyElement.appendChild(this._listElement);\r
+this._treeOutline = new TreeOutline(this._listElement);\r
+}\r
+\r
+WebInspector.WorkersSidebarPane.prototype = {\r
+addWorker: function(id, url, isShared)\r
+{\r
+if (id in this._workers) \r
+return;\r
+var worker = new WebInspector.Worker(id, url, isShared);\r
+this._workers[id] = worker;\r
+\r
+var title = WebInspector.linkifyURL(url, WebInspector.displayNameForURL(url), "worker-item", true, url);\r
+var treeElement = new TreeElement(null, worker, false);\r
+treeElement.titleHTML = title;\r
+this._treeOutline.appendChild(treeElement);\r
+},\r
+\r
+removeWorker: function(id)\r
+{\r
+if (id in this._workers) {\r
+this._treeOutline.removeChild(this._treeOutline.findTreeElement(this._workers[id]));\r
+delete this._workers[id];\r
+}\r
+},\r
+\r
+setInstrumentation: function(enabled)\r
+{\r
+InspectorBackend.removeAllScriptsToEvaluateOnLoad();\r
+if (enabled)\r
+InspectorBackend.addScriptToEvaluateOnLoad("(" + InjectedFakeWorker + ")");\r
+},\r
+\r
+reset: function()\r
+{\r
+this.setInstrumentation(this._enableWorkersCheckbox.checked);\r
+this._treeOutline.removeChildren();\r
+this._workers = {};\r
+},\r
+\r
+_onTriggerInstrument: function(event)\r
+{\r
+this.setInstrumentation(this._enableWorkersCheckbox.checked);\r
+}\r
+};\r
+\r
+WebInspector.WorkersSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.Worker = function(id, url, shared)\r
+{\r
+this.id = id;\r
+this.url = url;\r
+this.shared = shared;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.MetricsSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Metrics"));\r
+this._inlineStyleId = null;\r
+}\r
+\r
+WebInspector.MetricsSidebarPane.prototype = {\r
+update: function(node)\r
+{\r
+if (node)\r
+this.node = node;\r
+else\r
+node = this.node;\r
+\r
+if (!node || !node.ownerDocument.defaultView || node.nodeType !== Node.ELEMENT_NODE) {\r
+this.bodyElement.removeChildren();\r
+return;\r
+}\r
+\r
+var self = this;\r
+var callback = function(style) {\r
+if (!style)\r
+return;\r
+self._update(style);\r
+};\r
+WebInspector.cssModel.getComputedStyleAsync(node.id, callback);\r
+\r
+var inlineStyleCallback = function(style) {\r
+if (!style)\r
+return;\r
+self.inlineStyle = style;\r
+};\r
+WebInspector.cssModel.getInlineStyleAsync(node.id, inlineStyleCallback);\r
+},\r
+\r
+_update: function(style)\r
+{\r
+\r
+var metricsElement = document.createElement("div");\r
+metricsElement.className = "metrics";\r
+\r
+function createBoxPartElement(style, name, side, suffix)\r
+{\r
+var propertyName = (name !== "position" ? name + "-" : "") + side + suffix;\r
+var value = style.getPropertyValue(propertyName);\r
+if (value === "" || (name !== "position" && value === "0px"))\r
+value = "\u2012";\r
+else if (name === "position" && value === "auto")\r
+value = "\u2012";\r
+value = value.replace(/px$/, "");\r
+\r
+var element = document.createElement("div");\r
+element.className = side;\r
+element.textContent = value;\r
+element.addEventListener("dblclick", this.startEditing.bind(this, element, name, propertyName), false);\r
+return element;\r
+}\r
+\r
+\r
+var noMarginDisplayType = {\r
+"table-cell": true,\r
+"table-column": true,\r
+"table-column-group": true,\r
+"table-footer-group": true,\r
+"table-header-group": true,\r
+"table-row": true,\r
+"table-row-group": true\r
+};\r
+\r
+\r
+var noPaddingDisplayType = {\r
+"table-column": true,\r
+"table-column-group": true,\r
+"table-footer-group": true,\r
+"table-header-group": true,\r
+"table-row": true,\r
+"table-row-group": true\r
+};\r
+\r
+\r
+var noPositionType = {\r
+"static": true\r
+};\r
+\r
+var boxes = ["content", "padding", "border", "margin", "position"];\r
+var boxLabels = [WebInspector.UIString("content"), WebInspector.UIString("padding"), WebInspector.UIString("border"), WebInspector.UIString("margin"), WebInspector.UIString("position")];\r
+var previousBox;\r
+for (var i = 0; i < boxes.length; ++i) {\r
+var name = boxes[i];\r
+\r
+if (name === "margin" && noMarginDisplayType[style.getPropertyValue("display")])\r
+continue;\r
+if (name === "padding" && noPaddingDisplayType[style.getPropertyValue("display")])\r
+continue;\r
+if (name === "position" && noPositionType[style.getPropertyValue("position")])\r
+continue;\r
+\r
+var boxElement = document.createElement("div");\r
+boxElement.className = name;\r
+\r
+if (name === "content") {\r
+var width = style.getPropertyValue("width").replace(/px$/, "");\r
+var widthElement = document.createElement("span");\r
+widthElement.textContent = width;\r
+widthElement.addEventListener("dblclick", this.startEditing.bind(this, widthElement, "width", "width"), false);\r
+\r
+var height = style.getPropertyValue("height").replace(/px$/, "");\r
+var heightElement = document.createElement("span");\r
+heightElement.textContent = height;\r
+heightElement.addEventListener("dblclick", this.startEditing.bind(this, heightElement, "height", "height"), false);\r
+\r
+boxElement.appendChild(widthElement);\r
+boxElement.appendChild(document.createTextNode(" \u00D7 "));\r
+boxElement.appendChild(heightElement);\r
+} else {\r
+var suffix = (name === "border" ? "-width" : "");\r
+\r
+var labelElement = document.createElement("div");\r
+labelElement.className = "label";\r
+labelElement.textContent = boxLabels[i];\r
+boxElement.appendChild(labelElement);\r
+\r
+boxElement.appendChild(createBoxPartElement.call(this, style, name, "top", suffix));\r
+boxElement.appendChild(document.createElement("br"));\r
+boxElement.appendChild(createBoxPartElement.call(this, style, name, "left", suffix));\r
+\r
+if (previousBox)\r
+boxElement.appendChild(previousBox);\r
+\r
+boxElement.appendChild(createBoxPartElement.call(this, style, name, "right", suffix));\r
+boxElement.appendChild(document.createElement("br"));\r
+boxElement.appendChild(createBoxPartElement.call(this, style, name, "bottom", suffix));\r
+}\r
+\r
+previousBox = boxElement;\r
+}\r
+\r
+metricsElement.appendChild(previousBox);\r
+this.bodyElement.removeChildren();\r
+this.bodyElement.appendChild(metricsElement);\r
+},\r
+\r
+startEditing: function(targetElement, box, styleProperty)\r
+{\r
+if (WebInspector.isBeingEdited(targetElement))\r
+return;\r
+\r
+var context = { box: box, styleProperty: styleProperty };\r
+\r
+WebInspector.startEditing(targetElement, {\r
+context: context,\r
+commitHandler: this.editingCommitted.bind(this),\r
+cancelHandler: this.editingCancelled.bind(this)\r
+});\r
+},\r
+\r
+editingCancelled: function(element, context)\r
+{\r
+this.update();\r
+},\r
+\r
+editingCommitted: function(element, userInput, previousContent, context)\r
+{\r
+if (!this.inlineStyle) {\r
+\r
+return this.editingCancelled(element, context); \r
+}\r
+\r
+if (userInput === previousContent)\r
+return this.editingCancelled(element, context); \r
+\r
+if (context.box !== "position" && (!userInput || userInput === "\u2012"))\r
+userInput = "0px";\r
+else if (context.box === "position" && (!userInput || userInput === "\u2012"))\r
+userInput = "auto";\r
+\r
+\r
+if (/^\d+$/.test(userInput))\r
+userInput += "px";\r
+\r
+var self = this;\r
+var callback = function(style) {\r
+if (!style)\r
+return;\r
+self.inlineStyle = style;\r
+self.dispatchEventToListeners("metrics edited");\r
+self.update();\r
+};\r
+\r
+function setEnabledValueCallback(context, style)\r
+{\r
+var property = style.getLiveProperty(context.styleProperty);\r
+if (!property)\r
+style.appendProperty(context.styleProperty, userInput, callback);\r
+else\r
+property.setValue(userInput, callback);\r
+}\r
+\r
+var allProperties = this.inlineStyle.allProperties;\r
+for (var i = 0; i < allProperties.length; ++i) {\r
+var property = allProperties[i];\r
+if (property.name !== context.styleProperty || property.inactive)\r
+continue;\r
+if (property.disabled)\r
+property.setDisabled(false, setEnabledValueCallback.bind(null, context));\r
+else\r
+property.setValue(userInput, callback);\r
+return;\r
+}\r
+\r
+this.inlineStyle.appendProperty(context.styleProperty, userInput, callback);\r
+}\r
+}\r
+\r
+WebInspector.MetricsSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.PropertiesSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Properties"));\r
+}\r
+\r
+WebInspector.PropertiesSidebarPane.prototype = {\r
+update: function(node)\r
+{\r
+var body = this.bodyElement;\r
+\r
+if (!node) {\r
+body.removeChildren();\r
+this.sections = [];\r
+return;\r
+}\r
+\r
+var self = this;\r
+var callback = function(prototypes) {\r
+var body = self.bodyElement;\r
+body.removeChildren();\r
+self.sections = [];\r
+\r
+\r
+for (var i = 0; i < prototypes.length; ++i) {\r
+var prototype = WebInspector.RemoteObject.fromPayload(prototypes[i]);\r
+var title = prototype.description;\r
+if (title.match(/Prototype$/))\r
+title = title.replace(/Prototype$/, "");\r
+var section = new WebInspector.ObjectPropertiesSection(prototype, title);\r
+self.sections.push(section);\r
+body.appendChild(section.element);\r
+}\r
+};\r
+InjectedScriptAccess.getForNode(node).getPrototypes(node.id, callback);\r
+}\r
+}\r
+\r
+WebInspector.PropertiesSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.EventListenersSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Event Listeners"));\r
+this.bodyElement.addStyleClass("events-pane");\r
+\r
+this.sections = [];\r
+\r
+this.settingsSelectElement = document.createElement("select");\r
+\r
+var option = document.createElement("option");\r
+option.value = "all";\r
+option.label = WebInspector.UIString("All Nodes");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "selected";\r
+option.label = WebInspector.UIString("Selected Node Only");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+var filter = WebInspector.settings.eventListenersFilter;\r
+if (filter === "all")\r
+this.settingsSelectElement[0].selected = true;\r
+else if (filter === "selected")\r
+this.settingsSelectElement[1].selected = true;\r
+this.settingsSelectElement.addEventListener("click", function(event) { event.stopPropagation() }, false);\r
+this.settingsSelectElement.addEventListener("change", this._changeSetting.bind(this), false);\r
+\r
+this.titleElement.appendChild(this.settingsSelectElement);\r
+}\r
+\r
+WebInspector.EventListenersSidebarPane.prototype = {\r
+update: function(node)\r
+{\r
+var body = this.bodyElement;\r
+body.removeChildren();\r
+this.sections = [];\r
+\r
+var self = this;\r
+function callback(nodeId, eventListeners) {\r
+var sectionNames = [];\r
+var sectionMap = {};\r
+for (var i = 0; i < eventListeners.length; ++i) {\r
+var eventListener = eventListeners[i];\r
+eventListener.node = WebInspector.domAgent.nodeForId(eventListener.nodeId);\r
+delete eventListener.nodeId; \r
+if (/^function _inspectorCommandLineAPI_logEvent\(/.test(eventListener.listenerBody.toString()))\r
+continue; \r
+var type = eventListener.type;\r
+var section = sectionMap[type];\r
+if (!section) {\r
+section = new WebInspector.EventListenersSection(type, nodeId);\r
+sectionMap[type] = section;\r
+sectionNames.push(type);\r
+self.sections.push(section);\r
+}\r
+section.addListener(eventListener);\r
+}\r
+\r
+if (sectionNames.length === 0) {\r
+var div = document.createElement("div");\r
+div.className = "info";\r
+div.textContent = WebInspector.UIString("No Event Listeners");\r
+body.appendChild(div);\r
+return;\r
+}\r
+\r
+sectionNames.sort();\r
+for (var i = 0; i < sectionNames.length; ++i) {\r
+var section = sectionMap[sectionNames[i]];\r
+section.update();\r
+body.appendChild(section.element);\r
+}\r
+}\r
+\r
+WebInspector.EventListeners.getEventListenersForNodeAsync(node, callback);\r
+},\r
+\r
+_changeSetting: function(event)\r
+{\r
+var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];\r
+WebInspector.settings.eventListenersFilter = selectedOption.value;\r
+\r
+for (var i = 0; i < this.sections.length; ++i)\r
+this.sections[i].update();\r
+}\r
+}\r
+\r
+WebInspector.EventListenersSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.EventListenersSection = function(title, nodeId)\r
+{\r
+this.eventListeners = [];\r
+this._nodeId = nodeId;\r
+WebInspector.PropertiesSection.call(this, title);\r
+\r
+\r
+this.propertiesElement.parentNode.removeChild(this.propertiesElement);\r
+delete this.propertiesElement;\r
+delete this.propertiesTreeOutline;\r
+\r
+this.eventBars = document.createElement("div");\r
+this.eventBars.className = "event-bars";\r
+this.element.appendChild(this.eventBars);\r
+}\r
+\r
+WebInspector.EventListenersSection.prototype = {\r
+update: function()\r
+{\r
+\r
+var filteredEventListeners = this.eventListeners;\r
+if (WebInspector.settings.eventListenersFilter === "selected") {\r
+filteredEventListeners = [];\r
+for (var i = 0; i < this.eventListeners.length; ++i) {\r
+var eventListener = this.eventListeners[i];\r
+if (eventListener.node.id === this._nodeId)\r
+filteredEventListeners.push(eventListener);\r
+}\r
+}\r
+\r
+this.eventBars.removeChildren();\r
+var length = filteredEventListeners.length;\r
+for (var i = 0; i < length; ++i) {\r
+var eventListener = filteredEventListeners[i];\r
+var eventListenerBar = new WebInspector.EventListenerBar(eventListener, this._nodeId);\r
+this.eventBars.appendChild(eventListenerBar.element);\r
+}\r
+},\r
+\r
+addListener: function(eventListener)\r
+{\r
+this.eventListeners.push(eventListener);\r
+}\r
+}\r
+\r
+WebInspector.EventListenersSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;\r
+\r
+WebInspector.EventListenerBar = function(eventListener, nodeId)\r
+{\r
+this.eventListener = eventListener;\r
+this._nodeId = nodeId;\r
+WebInspector.ObjectPropertiesSection.call(this);\r
+this._setNodeTitle();\r
+this._setFunctionSubtitle();\r
+this.editable = false;\r
+this.element.className = "event-bar";  \r
+this.headerElement.addStyleClass("source-code");\r
+this.propertiesElement.className = "event-properties properties-tree source-code";  \r
+}\r
+\r
+WebInspector.EventListenerBar.prototype = {\r
+update: function()\r
+{\r
+function updateWithNodeObject(nodeObject)\r
+{\r
+var properties = [];\r
+if (nodeObject)\r
+properties.push(new WebInspector.RemoteObjectProperty("node", nodeObject));\r
+\r
+for (var propertyName in this.eventListener) {\r
+var value = WebInspector.RemoteObject.fromPrimitiveValue(this.eventListener[propertyName]);\r
+properties.push(new WebInspector.RemoteObjectProperty(propertyName, value));\r
+}\r
+this.updateProperties(properties);\r
+}\r
+var node = this.eventListener.node;\r
+delete this.eventListener.node;\r
+WebInspector.RemoteObject.resolveNode(node, updateWithNodeObject.bind(this));\r
+},\r
+\r
+_setNodeTitle: function()\r
+{\r
+var node = this.eventListener.node;\r
+if (!node)\r
+return;\r
+\r
+if (node.nodeType === Node.DOCUMENT_NODE) {\r
+this.titleElement.textContent = "document";\r
+return;\r
+}\r
+\r
+if (node.id === this._nodeId) {\r
+this.titleElement.textContent = appropriateSelectorForNode(node);\r
+return;\r
+}\r
+\r
+this.titleElement.removeChildren();\r
+this.titleElement.appendChild(WebInspector.panels.elements.linkifyNodeReference(this.eventListener.node));\r
+},\r
+\r
+_setFunctionSubtitle: function()\r
+{\r
+\r
+if (this.eventListener.sourceName) {\r
+this.subtitleElement.removeChildren();\r
+this.subtitleElement.appendChild(WebInspector.linkifyResourceAsNode(this.eventListener.sourceName, "scripts", this.eventListener.lineNumber));\r
+} else {\r
+var match = this.eventListener.listenerBody.match(/function ([^\(]+?)\(/);\r
+if (match)\r
+this.subtitleElement.textContent = match[1];\r
+else\r
+this.subtitleElement.textContent = WebInspector.UIString("(anonymous function)");\r
+}\r
+}\r
+}\r
+\r
+WebInspector.EventListenerBar.prototype.__proto__ = WebInspector.ObjectPropertiesSection.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.Color = function(str)\r
+{\r
+this.value = str;\r
+this._parse();\r
+}\r
+\r
+WebInspector.Color.prototype = {\r
+get shorthex()\r
+{\r
+if ("_short" in this)\r
+return this._short;\r
+\r
+if (!this.simple)\r
+return null;\r
+\r
+var hex = this.hex;\r
+if (hex.charAt(0) === hex.charAt(1) && hex.charAt(2) === hex.charAt(3) && hex.charAt(4) === hex.charAt(5))\r
+this._short = hex.charAt(0) + hex.charAt(2) + hex.charAt(4);\r
+else\r
+this._short = hex;\r
+\r
+return this._short;\r
+},\r
+\r
+get hex()\r
+{\r
+if (!this.simple)\r
+return null;\r
+\r
+return this._hex;\r
+},\r
+\r
+set hex(x)\r
+{\r
+this._hex = x;\r
+},\r
+\r
+get rgb()\r
+{\r
+if ("_rgb" in this)\r
+return this._rgb;\r
+\r
+if (this.simple)\r
+this._rgb = this._hexToRGB(this.hex);\r
+else {\r
+var rgba = this.rgba;\r
+this._rgb = [rgba[0], rgba[1], rgba[2]];\r
+}\r
+\r
+return this._rgb;\r
+},\r
+\r
+set rgb(x)\r
+{\r
+this._rgb = x;\r
+},\r
+\r
+get hsl()\r
+{\r
+if ("_hsl" in this)\r
+return this._hsl;\r
+\r
+this._hsl = this._rgbToHSL(this.rgb);\r
+return this._hsl;\r
+},\r
+\r
+set hsl(x)\r
+{\r
+this._hsl = x;\r
+},\r
+\r
+get nickname()\r
+{\r
+if (typeof this._nickname !== "undefined") \r
+return this._nickname;\r
+else\r
+return null;\r
+},\r
+\r
+set nickname(x)\r
+{\r
+this._nickname = x;\r
+},\r
+\r
+get rgba()\r
+{\r
+return this._rgba;\r
+},\r
+\r
+set rgba(x)\r
+{\r
+this._rgba = x;\r
+},\r
+\r
+get hsla()\r
+{\r
+return this._hsla;\r
+},\r
+\r
+set hsla(x)\r
+{\r
+this._hsla = x;\r
+},\r
+\r
+hasShortHex: function()\r
+{\r
+var shorthex = this.shorthex;\r
+return (shorthex && shorthex.length === 3);\r
+},\r
+\r
+toString: function(format)\r
+{\r
+if (!format)\r
+format = this.format;\r
+\r
+switch (format) {\r
+case "original":\r
+return this.value;\r
+case "rgb":\r
+return "rgb(" + this.rgb.join(", ") + ")";\r
+case "rgba":\r
+return "rgba(" + this.rgba.join(", ") + ")";\r
+case "hsl":\r
+var hsl = this.hsl;\r
+return "hsl(" + hsl[0] + ", " + hsl[1] + "%, " + hsl[2] + "%)";\r
+case "hsla":\r
+var hsla = this.hsla;\r
+return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")";\r
+case "hex":\r
+return "#" + this.hex;\r
+case "shorthex":\r
+return "#" + this.shorthex;\r
+case "nickname":\r
+return this.nickname;\r
+}\r
+\r
+throw "invalid color format";\r
+},\r
+\r
+_rgbToHex: function(rgb)\r
+{\r
+var r = parseInt(rgb[0]).toString(16);\r
+var g = parseInt(rgb[1]).toString(16);\r
+var b = parseInt(rgb[2]).toString(16);\r
+if (r.length === 1)\r
+r = "0" + r;\r
+if (g.length === 1)\r
+g = "0" + g;\r
+if (b.length === 1)\r
+b = "0" + b;\r
+\r
+return (r + g + b).toUpperCase();\r
+},\r
+\r
+_hexToRGB: function(hex)\r
+{\r
+var r = parseInt(hex.substring(0,2), 16);\r
+var g = parseInt(hex.substring(2,4), 16);\r
+var b = parseInt(hex.substring(4,6), 16);\r
+\r
+return [r, g, b];\r
+},\r
+\r
+_rgbToHSL: function(rgb)\r
+{\r
+var r = parseInt(rgb[0]) / 255;\r
+var g = parseInt(rgb[1]) / 255;\r
+var b = parseInt(rgb[2]) / 255;\r
+var max = Math.max(r, g, b);\r
+var min = Math.min(r, g, b);\r
+var diff = max - min;\r
+var add = max + min;\r
+\r
+if (min === max)\r
+var h = 0;\r
+else if (r === max)\r
+var h = ((60 * (g - b) / diff) + 360) % 360;\r
+else if (g === max)\r
+var h = (60 * (b - r) / diff) + 120;\r
+else\r
+var h = (60 * (r - g) / diff) + 240;\r
+\r
+var l = 0.5 * add;\r
+\r
+if (l === 0)\r
+var s = 0;\r
+else if (l === 1)\r
+var s = 1;\r
+else if (l <= 0.5)\r
+var s = diff / add;\r
+else\r
+var s = diff / (2 - add);\r
+\r
+h = Math.round(h);\r
+s = Math.round(s*100);\r
+l = Math.round(l*100);\r
+\r
+return [h, s, l];\r
+},\r
+\r
+_hslToRGB: function(hsl)\r
+{\r
+var h = parseFloat(hsl[0]) / 360;\r
+var s = parseFloat(hsl[1]) / 100;\r
+var l = parseFloat(hsl[2]) / 100;\r
+\r
+if (l <= 0.5)\r
+var q = l * (1 + s);\r
+else\r
+var q = l + s - (l * s);\r
+\r
+var p = 2 * l - q;\r
+\r
+var tr = h + (1 / 3);\r
+var tg = h;\r
+var tb = h - (1 / 3);\r
+\r
+var r = Math.round(hueToRGB(p, q, tr) * 255);\r
+var g = Math.round(hueToRGB(p, q, tg) * 255);\r
+var b = Math.round(hueToRGB(p, q, tb) * 255);\r
+return [r, g, b];\r
+\r
+function hueToRGB(p, q, h) {\r
+if (h < 0)\r
+h += 1;\r
+else if (h > 1)\r
+h -= 1;\r
+\r
+if ((h * 6) < 1)\r
+return p + (q - p) * h * 6;\r
+else if ((h * 2) < 1)\r
+return q;\r
+else if ((h * 3) < 2)\r
+return p + (q - p) * ((2 / 3) - h) * 6;\r
+else\r
+return p;\r
+}\r
+},\r
+\r
+_rgbaToHSLA: function(rgba)\r
+{\r
+var alpha = rgba[3];\r
+var hsl = this._rgbToHSL(rgba)\r
+hsl.push(alpha);\r
+return hsl;\r
+},\r
+\r
+_hslaToRGBA: function(hsla)\r
+{\r
+var alpha = hsla[3];\r
+var rgb = this._hslToRGB(hsla);\r
+rgb.push(alpha);\r
+return rgb;\r
+},\r
+\r
+_parse: function()\r
+{\r
+\r
+var value = this.value.toLowerCase().replace(/%|\s+/g, "");\r
+if (value in WebInspector.Color.AdvancedNickNames) {\r
+this.format = "nickname";\r
+var set = WebInspector.Color.AdvancedNickNames[value];\r
+this.simple = false;\r
+this.rgba = set[0];\r
+this.hsla = set[1];\r
+this.nickname = set[2];\r
+this.alpha = set[0][3];\r
+return;\r
+}\r
+\r
+\r
+var simple = /^(?:#([0-9a-f]{3,6})|rgb\(([^)]+)\)|(\w+)|hsl\(([^)]+)\))$/i;\r
+var match = this.value.match(simple);\r
+if (match) {\r
+this.simple = true;\r
+\r
+if (match[1]) { \r
+var hex = match[1].toUpperCase();\r
+if (hex.length === 3) {\r
+this.format = "shorthex";\r
+this.hex = hex.charAt(0) + hex.charAt(0) + hex.charAt(1) + hex.charAt(1) + hex.charAt(2) + hex.charAt(2);\r
+} else {\r
+this.format = "hex";\r
+this.hex = hex;\r
+}\r
+} else if (match[2]) { \r
+this.format = "rgb";\r
+var rgb = match[2].split(/\s*,\s*/);\r
+this.rgb = rgb;\r
+this.hex = this._rgbToHex(rgb);\r
+} else if (match[3]) { \r
+var nickname = match[3].toLowerCase();\r
+if (nickname in WebInspector.Color.Nicknames) {\r
+this.format = "nickname";\r
+this.hex = WebInspector.Color.Nicknames[nickname];\r
+} else \r
+throw "unknown color name";\r
+} else if (match[4]) { \r
+this.format = "hsl";\r
+var hsl = match[4].replace(/%/g, "").split(/\s*,\s*/);\r
+this.hsl = hsl;\r
+this.rgb = this._hslToRGB(hsl);\r
+this.hex = this._rgbToHex(this.rgb);\r
+}\r
+\r
+\r
+var hex = this.hex;\r
+if (hex && hex in WebInspector.Color.HexTable) {\r
+var set = WebInspector.Color.HexTable[hex];\r
+this.rgb = set[0];\r
+this.hsl = set[1];\r
+this.nickname = set[2];\r
+}\r
+\r
+return;\r
+}\r
+\r
+\r
+var advanced = /^(?:rgba\(([^)]+)\)|hsla\(([^)]+)\))$/;\r
+match = this.value.match(advanced);\r
+if (match) {\r
+this.simple = false;\r
+if (match[1]) { \r
+this.format = "rgba";\r
+this.rgba = match[1].split(/\s*,\s*/);\r
+this.hsla = this._rgbaToHSLA(this.rgba);\r
+this.alpha = this.rgba[3];\r
+} else if (match[2]) { \r
+this.format = "hsla";\r
+this.hsla = match[2].replace(/%/g, "").split(/\s*,\s*/);\r
+this.rgba = this._hslaToRGBA(this.hsla);\r
+this.alpha = this.hsla[3];\r
+}\r
+\r
+return;\r
+}\r
+\r
+\r
+throw "could not parse color";\r
+}\r
+}\r
+\r
+\r
+WebInspector.Color.HexTable = {\r
+"000000": [[0, 0, 0], [0, 0, 0], "black"],\r
+"000080": [[0, 0, 128], [240, 100, 25], "navy"],\r
+"00008B": [[0, 0, 139], [240, 100, 27], "darkBlue"],\r
+"0000CD": [[0, 0, 205], [240, 100, 40], "mediumBlue"],\r
+"0000FF": [[0, 0, 255], [240, 100, 50], "blue"],\r
+"006400": [[0, 100, 0], [120, 100, 20], "darkGreen"],\r
+"008000": [[0, 128, 0], [120, 100, 25], "green"],\r
+"008080": [[0, 128, 128], [180, 100, 25], "teal"],\r
+"008B8B": [[0, 139, 139], [180, 100, 27], "darkCyan"],\r
+"00BFFF": [[0, 191, 255], [195, 100, 50], "deepSkyBlue"],\r
+"00CED1": [[0, 206, 209], [181, 100, 41], "darkTurquoise"],\r
+"00FA9A": [[0, 250, 154], [157, 100, 49], "mediumSpringGreen"],\r
+"00FF00": [[0, 255, 0], [120, 100, 50], "lime"],\r
+"00FF7F": [[0, 255, 127], [150, 100, 50], "springGreen"],\r
+"00FFFF": [[0, 255, 255], [180, 100, 50], "cyan"],\r
+"191970": [[25, 25, 112], [240, 64, 27], "midnightBlue"],\r
+"1E90FF": [[30, 144, 255], [210, 100, 56], "dodgerBlue"],\r
+"20B2AA": [[32, 178, 170], [177, 70, 41], "lightSeaGreen"],\r
+"228B22": [[34, 139, 34], [120, 61, 34], "forestGreen"],\r
+"2E8B57": [[46, 139, 87], [146, 50, 36], "seaGreen"],\r
+"2F4F4F": [[47, 79, 79], [180, 25, 25], "darkSlateGray"],\r
+"32CD32": [[50, 205, 50], [120, 61, 50], "limeGreen"],\r
+"3CB371": [[60, 179, 113], [147, 50, 47], "mediumSeaGreen"],\r
+"40E0D0": [[64, 224, 208], [174, 72, 56], "turquoise"],\r
+"4169E1": [[65, 105, 225], [225, 73, 57], "royalBlue"],\r
+"4682B4": [[70, 130, 180], [207, 44, 49], "steelBlue"],\r
+"483D8B": [[72, 61, 139], [248, 39, 39], "darkSlateBlue"],\r
+"48D1CC": [[72, 209, 204], [178, 60, 55], "mediumTurquoise"],\r
+"4B0082": [[75, 0, 130], [275, 100, 25], "indigo"],\r
+"556B2F": [[85, 107, 47], [82, 39, 30], "darkOliveGreen"],\r
+"5F9EA0": [[95, 158, 160], [182, 25, 50], "cadetBlue"],\r
+"6495ED": [[100, 149, 237], [219, 79, 66], "cornflowerBlue"],\r
+"66CDAA": [[102, 205, 170], [160, 51, 60], "mediumAquaMarine"],\r
+"696969": [[105, 105, 105], [0, 0, 41], "dimGray"],\r
+"6A5ACD": [[106, 90, 205], [248, 53, 58], "slateBlue"],\r
+"6B8E23": [[107, 142, 35], [80, 60, 35], "oliveDrab"],\r
+"708090": [[112, 128, 144], [210, 13, 50], "slateGray"],\r
+"778899": [[119, 136, 153], [210, 14, 53], "lightSlateGray"],\r
+"7B68EE": [[123, 104, 238], [249, 80, 67], "mediumSlateBlue"],\r
+"7CFC00": [[124, 252, 0], [90, 100, 49], "lawnGreen"],\r
+"7FFF00": [[127, 255, 0], [90, 100, 50], "chartreuse"],\r
+"7FFFD4": [[127, 255, 212], [160, 100, 75], "aquamarine"],\r
+"800000": [[128, 0, 0], [0, 100, 25], "maroon"],\r
+"800080": [[128, 0, 128], [300, 100, 25], "purple"],\r
+"808000": [[128, 128, 0], [60, 100, 25], "olive"],\r
+"808080": [[128, 128, 128], [0, 0, 50], "gray"],\r
+"87CEEB": [[135, 206, 235], [197, 71, 73], "skyBlue"],\r
+"87CEFA": [[135, 206, 250], [203, 92, 75], "lightSkyBlue"],\r
+"8A2BE2": [[138, 43, 226], [271, 76, 53], "blueViolet"],\r
+"8B0000": [[139, 0, 0], [0, 100, 27], "darkRed"],\r
+"8B008B": [[139, 0, 139], [300, 100, 27], "darkMagenta"],\r
+"8B4513": [[139, 69, 19], [25, 76, 31], "saddleBrown"],\r
+"8FBC8F": [[143, 188, 143], [120, 25, 65], "darkSeaGreen"],\r
+"90EE90": [[144, 238, 144], [120, 73, 75], "lightGreen"],\r
+"9370D8": [[147, 112, 219], [260, 60, 65], "mediumPurple"],\r
+"9400D3": [[148, 0, 211], [282, 100, 41], "darkViolet"],\r
+"98FB98": [[152, 251, 152], [120, 93, 79], "paleGreen"],\r
+"9932CC": [[153, 50, 204], [280, 61, 50], "darkOrchid"],\r
+"9ACD32": [[154, 205, 50], [80, 61, 50], "yellowGreen"],\r
+"A0522D": [[160, 82, 45], [19, 56, 40], "sienna"],\r
+"A52A2A": [[165, 42, 42], [0, 59, 41], "brown"],\r
+"A9A9A9": [[169, 169, 169], [0, 0, 66], "darkGray"],\r
+"ADD8E6": [[173, 216, 230], [195, 53, 79], "lightBlue"],\r
+"ADFF2F": [[173, 255, 47], [84, 100, 59], "greenYellow"],\r
+"AFEEEE": [[175, 238, 238], [180, 65, 81], "paleTurquoise"],\r
+"B0C4DE": [[176, 196, 222], [214, 41, 78], "lightSteelBlue"],\r
+"B0E0E6": [[176, 224, 230], [187, 52, 80], "powderBlue"],\r
+"B22222": [[178, 34, 34], [0, 68, 42], "fireBrick"],\r
+"B8860B": [[184, 134, 11], [43, 89, 38], "darkGoldenrod"],\r
+"BA55D3": [[186, 85, 211], [288, 59, 58], "mediumOrchid"],\r
+"BC8F8F": [[188, 143, 143], [0, 25, 65], "rosyBrown"],\r
+"BDB76B": [[189, 183, 107], [56, 38, 58], "darkKhaki"],\r
+"C0C0C0": [[192, 192, 192], [0, 0, 75], "silver"],\r
+"C71585": [[199, 21, 133], [322, 81, 43], "mediumVioletRed"],\r
+"CD5C5C": [[205, 92, 92], [0, 53, 58], "indianRed"],\r
+"CD853F": [[205, 133, 63], [30, 59, 53], "peru"],\r
+"D2691E": [[210, 105, 30], [25, 75, 47], "chocolate"],\r
+"D2B48C": [[210, 180, 140], [34, 44, 69], "tan"],\r
+"D3D3D3": [[211, 211, 211], [0, 0, 83], "lightGrey"],\r
+"D87093": [[219, 112, 147], [340, 60, 65], "paleVioletRed"],\r
+"D8BFD8": [[216, 191, 216], [300, 24, 80], "thistle"],\r
+"DA70D6": [[218, 112, 214], [302, 59, 65], "orchid"],\r
+"DAA520": [[218, 165, 32], [43, 74, 49], "goldenrod"],\r
+"DC143C": [[237, 164, 61], [35, 83, 58], "crimson"],\r
+"DCDCDC": [[220, 220, 220], [0, 0, 86], "gainsboro"],\r
+"DDA0DD": [[221, 160, 221], [300, 47, 75], "plum"],\r
+"DEB887": [[222, 184, 135], [34, 57, 70], "burlyWood"],\r
+"E0FFFF": [[224, 255, 255], [180, 100, 94], "lightCyan"],\r
+"E6E6FA": [[230, 230, 250], [240, 67, 94], "lavender"],\r
+"E9967A": [[233, 150, 122], [15, 72, 70], "darkSalmon"],\r
+"EE82EE": [[238, 130, 238], [300, 76, 72], "violet"],\r
+"EEE8AA": [[238, 232, 170], [55, 67, 80], "paleGoldenrod"],\r
+"F08080": [[240, 128, 128], [0, 79, 72], "lightCoral"],\r
+"F0E68C": [[240, 230, 140], [54, 77, 75], "khaki"],\r
+"F0F8FF": [[240, 248, 255], [208, 100, 97], "aliceBlue"],\r
+"F0FFF0": [[240, 255, 240], [120, 100, 97], "honeyDew"],\r
+"F0FFFF": [[240, 255, 255], [180, 100, 97], "azure"],\r
+"F4A460": [[244, 164, 96], [28, 87, 67], "sandyBrown"],\r
+"F5DEB3": [[245, 222, 179], [39, 77, 83], "wheat"],\r
+"F5F5DC": [[245, 245, 220], [60, 56, 91], "beige"],\r
+"F5F5F5": [[245, 245, 245], [0, 0, 96], "whiteSmoke"],\r
+"F5FFFA": [[245, 255, 250], [150, 100, 98], "mintCream"],\r
+"F8F8FF": [[248, 248, 255], [240, 100, 99], "ghostWhite"],\r
+"FA8072": [[250, 128, 114], [6, 93, 71], "salmon"],\r
+"FAEBD7": [[250, 235, 215], [34, 78, 91], "antiqueWhite"],\r
+"FAF0E6": [[250, 240, 230], [30, 67, 94], "linen"],\r
+"FAFAD2": [[250, 250, 210], [60, 80, 90], "lightGoldenrodYellow"],\r
+"FDF5E6": [[253, 245, 230], [39, 85, 95], "oldLace"],\r
+"FF0000": [[255, 0, 0], [0, 100, 50], "red"],\r
+"FF00FF": [[255, 0, 255], [300, 100, 50], "magenta"],\r
+"FF1493": [[255, 20, 147], [328, 100, 54], "deepPink"],\r
+"FF4500": [[255, 69, 0], [16, 100, 50], "orangeRed"],\r
+"FF6347": [[255, 99, 71], [9, 100, 64], "tomato"],\r
+"FF69B4": [[255, 105, 180], [330, 100, 71], "hotPink"],\r
+"FF7F50": [[255, 127, 80], [16, 100, 66], "coral"],\r
+"FF8C00": [[255, 140, 0], [33, 100, 50], "darkOrange"],\r
+"FFA07A": [[255, 160, 122], [17, 100, 74], "lightSalmon"],\r
+"FFA500": [[255, 165, 0], [39, 100, 50], "orange"],\r
+"FFB6C1": [[255, 182, 193], [351, 100, 86], "lightPink"],\r
+"FFC0CB": [[255, 192, 203], [350, 100, 88], "pink"],\r
+"FFD700": [[255, 215, 0], [51, 100, 50], "gold"],\r
+"FFDAB9": [[255, 218, 185], [28, 100, 86], "peachPuff"],\r
+"FFDEAD": [[255, 222, 173], [36, 100, 84], "navajoWhite"],\r
+"FFE4B5": [[255, 228, 181], [38, 100, 85], "moccasin"],\r
+"FFE4C4": [[255, 228, 196], [33, 100, 88], "bisque"],\r
+"FFE4E1": [[255, 228, 225], [6, 100, 94], "mistyRose"],\r
+"FFEBCD": [[255, 235, 205], [36, 100, 90], "blanchedAlmond"],\r
+"FFEFD5": [[255, 239, 213], [37, 100, 92], "papayaWhip"],\r
+"FFF0F5": [[255, 240, 245], [340, 100, 97], "lavenderBlush"],\r
+"FFF5EE": [[255, 245, 238], [25, 100, 97], "seaShell"],\r
+"FFF8DC": [[255, 248, 220], [48, 100, 93], "cornsilk"],\r
+"FFFACD": [[255, 250, 205], [54, 100, 90], "lemonChiffon"],\r
+"FFFAF0": [[255, 250, 240], [40, 100, 97], "floralWhite"],\r
+"FFFAFA": [[255, 250, 250], [0, 100, 99], "snow"],\r
+"FFFF00": [[255, 255, 0], [60, 100, 50], "yellow"],\r
+"FFFFE0": [[255, 255, 224], [60, 100, 94], "lightYellow"],\r
+"FFFFF0": [[255, 255, 240], [60, 100, 97], "ivory"],\r
+"FFFFFF": [[255, 255, 255], [0, 100, 100], "white"]\r
+};\r
+\r
+\r
+WebInspector.Color.Nicknames = {\r
+"aliceblue": "F0F8FF",\r
+"antiquewhite": "FAEBD7",\r
+"aqua": "00FFFF",\r
+"aquamarine": "7FFFD4",\r
+"azure": "F0FFFF",\r
+"beige": "F5F5DC",\r
+"bisque": "FFE4C4",\r
+"black": "000000",\r
+"blanchedalmond": "FFEBCD",\r
+"blue": "0000FF",\r
+"blueviolet": "8A2BE2",\r
+"brown": "A52A2A",\r
+"burlywood": "DEB887",\r
+"cadetblue": "5F9EA0",\r
+"chartreuse": "7FFF00",\r
+"chocolate": "D2691E",\r
+"coral": "FF7F50",\r
+"cornflowerblue": "6495ED",\r
+"cornsilk": "FFF8DC",\r
+"crimson": "DC143C",\r
+"cyan": "00FFFF",\r
+"darkblue": "00008B",\r
+"darkcyan": "008B8B",\r
+"darkgoldenrod": "B8860B",\r
+"darkgray": "A9A9A9",\r
+"darkgreen": "006400",\r
+"darkkhaki": "BDB76B",\r
+"darkmagenta": "8B008B",\r
+"darkolivegreen": "556B2F",\r
+"darkorange": "FF8C00",\r
+"darkorchid": "9932CC",\r
+"darkred": "8B0000",\r
+"darksalmon": "E9967A",\r
+"darkseagreen": "8FBC8F",\r
+"darkslateblue": "483D8B",\r
+"darkslategray": "2F4F4F",\r
+"darkturquoise": "00CED1",\r
+"darkviolet": "9400D3",\r
+"deeppink": "FF1493",\r
+"deepskyblue": "00BFFF",\r
+"dimgray": "696969",\r
+"dodgerblue": "1E90FF",\r
+"firebrick": "B22222",\r
+"floralwhite": "FFFAF0",\r
+"forestgreen": "228B22",\r
+"fuchsia": "FF00FF",\r
+"gainsboro": "DCDCDC",\r
+"ghostwhite": "F8F8FF",\r
+"gold": "FFD700",\r
+"goldenrod": "DAA520",\r
+"gray": "808080",\r
+"green": "008000",\r
+"greenyellow": "ADFF2F",\r
+"honeydew": "F0FFF0",\r
+"hotpink": "FF69B4",\r
+"indianred": "CD5C5C",\r
+"indigo": "4B0082",\r
+"ivory": "FFFFF0",\r
+"khaki": "F0E68C",\r
+"lavender": "E6E6FA",\r
+"lavenderblush": "FFF0F5",\r
+"lawngreen": "7CFC00",\r
+"lemonchiffon": "FFFACD",\r
+"lightblue": "ADD8E6",\r
+"lightcoral": "F08080",\r
+"lightcyan": "E0FFFF",\r
+"lightgoldenrodyellow": "FAFAD2",\r
+"lightgreen": "90EE90",\r
+"lightgrey": "D3D3D3",\r
+"lightpink": "FFB6C1",\r
+"lightsalmon": "FFA07A",\r
+"lightseagreen": "20B2AA",\r
+"lightskyblue": "87CEFA",\r
+"lightslategray": "778899",\r
+"lightsteelblue": "B0C4DE",\r
+"lightyellow": "FFFFE0",\r
+"lime": "00FF00",\r
+"limegreen": "32CD32",\r
+"linen": "FAF0E6",\r
+"magenta": "FF00FF",\r
+"maroon": "800000",\r
+"mediumaquamarine": "66CDAA",\r
+"mediumblue": "0000CD",\r
+"mediumorchid": "BA55D3",\r
+"mediumpurple": "9370D8",\r
+"mediumseagreen": "3CB371",\r
+"mediumslateblue": "7B68EE",\r
+"mediumspringgreen": "00FA9A",\r
+"mediumturquoise": "48D1CC",\r
+"mediumvioletred": "C71585",\r
+"midnightblue": "191970",\r
+"mintcream": "F5FFFA",\r
+"mistyrose": "FFE4E1",\r
+"moccasin": "FFE4B5",\r
+"navajowhite": "FFDEAD",\r
+"navy": "000080",\r
+"oldlace": "FDF5E6",\r
+"olive": "808000",\r
+"olivedrab": "6B8E23",\r
+"orange": "FFA500",\r
+"orangered": "FF4500",\r
+"orchid": "DA70D6",\r
+"palegoldenrod": "EEE8AA",\r
+"palegreen": "98FB98",\r
+"paleturquoise": "AFEEEE",\r
+"palevioletred": "D87093",\r
+"papayawhip": "FFEFD5",\r
+"peachpuff": "FFDAB9",\r
+"peru": "CD853F",\r
+"pink": "FFC0CB",\r
+"plum": "DDA0DD",\r
+"powderblue": "B0E0E6",\r
+"purple": "800080",\r
+"red": "FF0000",\r
+"rosybrown": "BC8F8F",\r
+"royalblue": "4169E1",\r
+"saddlebrown": "8B4513",\r
+"salmon": "FA8072",\r
+"sandybrown": "F4A460",\r
+"seagreen": "2E8B57",\r
+"seashell": "FFF5EE",\r
+"sienna": "A0522D",\r
+"silver": "C0C0C0",\r
+"skyblue": "87CEEB",\r
+"slateblue": "6A5ACD",\r
+"slategray": "708090",\r
+"snow": "FFFAFA",\r
+"springgreen": "00FF7F",\r
+"steelblue": "4682B4",\r
+"tan": "D2B48C",\r
+"teal": "008080",\r
+"thistle": "D8BFD8",\r
+"tomato": "FF6347",\r
+"turquoise": "40E0D0",\r
+"violet": "EE82EE",\r
+"wheat": "F5DEB3",\r
+"white": "FFFFFF",\r
+"whitesmoke": "F5F5F5",\r
+"yellow": "FFFF00",\r
+"yellowgreen": "9ACD32"\r
+};\r
+\r
+\r
+WebInspector.Color.AdvancedNickNames = {\r
+"transparent": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],\r
+"rgba(0,0,0,0)": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],\r
+"hsla(0,0,0,0)": [[0, 0, 0, 0], [0, 0, 0, 0], "transparent"],\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CSSCompletions = function(values)\r
+{\r
+this._values = values.slice();\r
+this._values.sort();\r
+}\r
+\r
+WebInspector.CSSCompletions.prototype = {\r
+startsWith: function(prefix)\r
+{\r
+var firstIndex = this._firstIndexOfPrefix(prefix);\r
+if (firstIndex === -1)\r
+return [];\r
+\r
+var results = [];\r
+while (this._values[firstIndex].indexOf(prefix) === 0)\r
+results.push(this._values[firstIndex++]);\r
+return results;\r
+},\r
+\r
+firstStartsWith: function(prefix)\r
+{\r
+var foundIndex = this._firstIndexOfPrefix(prefix);\r
+return (foundIndex === -1 ? "" : this._values[foundIndex]);\r
+},\r
+\r
+_firstIndexOfPrefix: function(prefix)\r
+{\r
+if (!prefix)\r
+return -1;\r
+if (!this._values.length)\r
+return -1;\r
+\r
+var maxIndex = this._values.length - 1;\r
+var minIndex = 0;\r
+var foundIndex;\r
+\r
+do {\r
+var middleIndex = (maxIndex + minIndex) >> 1;\r
+if (this._values[middleIndex].indexOf(prefix) === 0) {\r
+foundIndex = middleIndex;\r
+break;\r
+}\r
+if (this._values[middleIndex] < prefix)\r
+minIndex = middleIndex + 1;\r
+else\r
+maxIndex = middleIndex - 1;\r
+} while (minIndex <= maxIndex);\r
+\r
+if (foundIndex === undefined)\r
+return -1;\r
+\r
+while (foundIndex && this._values[foundIndex - 1].indexOf(prefix) === 0)\r
+foundIndex--;\r
+\r
+return foundIndex;\r
+},\r
+\r
+keySet: function()\r
+{\r
+return this._values.keySet();\r
+},\r
+\r
+next: function(str, prefix)\r
+{\r
+return this._closest(str, prefix, 1);\r
+},\r
+\r
+previous: function(str, prefix)\r
+{\r
+return this._closest(str, prefix, -1);\r
+},\r
+\r
+_closest: function(str, prefix, shift)\r
+{\r
+if (!str)\r
+return "";\r
+\r
+var index = this._values.indexOf(str);\r
+if (index === -1)\r
+return "";\r
+\r
+if (!prefix) {\r
+index = (index + this._values.length + shift) % this._values.length;\r
+return this._values[index];\r
+}\r
+\r
+var propertiesWithPrefix = this.startsWith(prefix);\r
+var j = propertiesWithPrefix.indexOf(str);\r
+j = (j + propertiesWithPrefix.length + shift) % propertiesWithPrefix.length;\r
+return propertiesWithPrefix[j];\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.StylesSidebarPane = function(computedStylePane)\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Styles"));\r
+\r
+this.settingsSelectElement = document.createElement("select");\r
+\r
+var option = document.createElement("option");\r
+option.value = "original";\r
+option.action = this._changeColorFormat.bind(this);\r
+option.label = WebInspector.UIString("As Authored");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+var option = document.createElement("option");\r
+option.value = "hex";\r
+option.action = this._changeColorFormat.bind(this);\r
+option.label = WebInspector.UIString("Hex Colors");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "rgb";\r
+option.action = this._changeColorFormat.bind(this);\r
+option.label = WebInspector.UIString("RGB Colors");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "hsl";\r
+option.action = this._changeColorFormat.bind(this);\r
+option.label = WebInspector.UIString("HSL Colors");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+this.settingsSelectElement.appendChild(document.createElement("hr"));\r
+\r
+option = document.createElement("option");\r
+option.action = this._createNewRule.bind(this);\r
+option.label = WebInspector.UIString("New Style Rule");\r
+this.settingsSelectElement.appendChild(option);\r
+\r
+this.settingsSelectElement.addEventListener("click", function(event) { event.stopPropagation() }, false);\r
+this.settingsSelectElement.addEventListener("change", this._changeSetting.bind(this), false);\r
+var format = WebInspector.settings.colorFormat;\r
+if (format === "original")\r
+this.settingsSelectElement[0].selected = true;\r
+else if (format === "hex")\r
+this.settingsSelectElement[1].selected = true;\r
+else if (format === "rgb")\r
+this.settingsSelectElement[2].selected = true;\r
+else if (format === "hsl")\r
+this.settingsSelectElement[3].selected = true;\r
+\r
+this.titleElement.appendChild(this.settingsSelectElement);\r
+this._computedStylePane = computedStylePane;\r
+this.element.addEventListener("contextmenu", this._contextMenuEventFired.bind(this), true);\r
+}\r
+\r
+\r
+WebInspector.StylesSidebarPane.InheritedProperties = [\r
+"azimuth", "border-collapse", "border-spacing", "caption-side", "color", "cursor", "direction", "elevation",\r
+"empty-cells", "font-family", "font-size", "font-style", "font-variant", "font-weight", "font", "letter-spacing",\r
+"line-height", "list-style-image", "list-style-position", "list-style-type", "list-style", "orphans", "pitch-range",\r
+"pitch", "quotes", "richness", "speak-header", "speak-numeral", "speak-punctuation", "speak", "speech-rate", "stress",\r
+"text-align", "text-indent", "text-transform", "text-shadow", "visibility", "voice-family", "volume", "white-space", "widows", "word-spacing"\r
+].keySet();\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.StylesSidebarPane.PseudoIdNames = [\r
+"", "first-line", "first-letter", "before", "after", "selection", "", "-webkit-scrollbar", "-webkit-file-upload-button",\r
+"-webkit-input-placeholder", "-webkit-slider-thumb", "-webkit-search-cancel-button", "-webkit-search-decoration",\r
+"-webkit-search-results-decoration", "-webkit-search-results-button", "-webkit-media-controls-panel",\r
+"-webkit-media-controls-play-button", "-webkit-media-controls-mute-button", "-webkit-media-controls-timeline",\r
+"-webkit-media-controls-timeline-container", "-webkit-media-controls-volume-slider",\r
+"-webkit-media-controls-volume-slider-container", "-webkit-media-controls-current-time-display",\r
+"-webkit-media-controls-time-remaining-display", "-webkit-media-controls-seek-back-button", "-webkit-media-controls-seek-forward-button",\r
+"-webkit-media-controls-fullscreen-button", "-webkit-media-controls-rewind-button", "-webkit-media-controls-return-to-realtime-button",\r
+"-webkit-media-controls-toggle-closed-captions-button", "-webkit-media-controls-status-display", "-webkit-scrollbar-thumb",\r
+"-webkit-scrollbar-button", "-webkit-scrollbar-track", "-webkit-scrollbar-track-piece", "-webkit-scrollbar-corner",\r
+"-webkit-resizer", "-webkit-input-list-button", "-webkit-inner-spin-button", "-webkit-outer-spin-button"\r
+];\r
+\r
+WebInspector.StylesSidebarPane.prototype = {\r
+_contextMenuEventFired: function(event)\r
+{\r
+var href = event.target.enclosingNodeOrSelfWithClass("webkit-html-resource-link") || event.target.enclosingNodeOrSelfWithClass("webkit-html-external-link");\r
+if (href) {\r
+var contextMenu = new WebInspector.ContextMenu();\r
+var filled = WebInspector.panels.elements.populateHrefContextMenu(contextMenu, event, href);\r
+if (filled)\r
+contextMenu.show(event);\r
+}\r
+},\r
+\r
+update: function(node, editedSection, forceUpdate)\r
+{\r
+var refresh = false;\r
+\r
+if (forceUpdate)\r
+delete this.node;\r
+\r
+if (!forceUpdate && (!node || node === this.node))\r
+refresh = true;\r
+\r
+if (node && node.nodeType === Node.TEXT_NODE && node.parentNode)\r
+node = node.parentNode;\r
+\r
+if (node && node.nodeType !== Node.ELEMENT_NODE)\r
+node = null;\r
+\r
+if (node)\r
+this.node = node;\r
+else\r
+node = this.node;\r
+\r
+if (!node) {\r
+this.bodyElement.removeChildren();\r
+this._computedStylePane.bodyElement.removeChildren();\r
+this.sections = {};\r
+return;\r
+}\r
+\r
+function stylesCallback(styles)\r
+{\r
+if (styles)\r
+this._rebuildUpdate(node, styles);\r
+}\r
+\r
+function computedStyleCallback(computedStyle)\r
+{\r
+if (computedStyle)\r
+this._refreshUpdate(node, computedStyle, editedSection);\r
+}\r
+\r
+if (refresh)\r
+WebInspector.cssModel.getComputedStyleAsync(node.id, computedStyleCallback.bind(this));\r
+else\r
+WebInspector.cssModel.getStylesAsync(node.id, stylesCallback.bind(this));\r
+},\r
+\r
+_refreshUpdate: function(node, computedStyle, editedSection)\r
+{\r
+for (var pseudoId in this.sections) {\r
+var styleRules = this._refreshStyleRules(this.sections[pseudoId], computedStyle);\r
+var usedProperties = {};\r
+var disabledComputedProperties = {};\r
+this._markUsedProperties(styleRules, usedProperties, disabledComputedProperties);\r
+this._refreshSectionsForStyleRules(styleRules, usedProperties, disabledComputedProperties, editedSection);\r
+}\r
+\r
+this.sections[0][0].rebuildComputedTrace(this.sections[0]);\r
+},\r
+\r
+_rebuildUpdate: function(node, styles)\r
+{\r
+this.bodyElement.removeChildren();\r
+this._computedStylePane.bodyElement.removeChildren();\r
+\r
+var styleRules = this._rebuildStyleRules(node, styles);\r
+var usedProperties = {};\r
+var disabledComputedProperties = {};\r
+this._markUsedProperties(styleRules, usedProperties, disabledComputedProperties);\r
+this.sections[0] = this._rebuildSectionsForStyleRules(styleRules, usedProperties, disabledComputedProperties, 0);\r
+var anchorElement = this.sections[0].inheritedPropertiesSeparatorElement;\r
+\r
+this.sections[0][0].rebuildComputedTrace(this.sections[0]);\r
+\r
+for (var i = 0; i < styles.pseudoElements.length; ++i) {\r
+var pseudoElementCSSRules = styles.pseudoElements[i];\r
+\r
+styleRules = [];\r
+var pseudoId = pseudoElementCSSRules.pseudoId;\r
+\r
+var entry = { isStyleSeparator: true, pseudoId: pseudoId };\r
+styleRules.push(entry);\r
+\r
+\r
+for (var j = pseudoElementCSSRules.rules.length - 1; j >= 0; --j) {\r
+var rule = pseudoElementCSSRules.rules[j];\r
+styleRules.push({ style: rule.style, selectorText: rule.selectorText, sourceURL: rule.sourceURL, rule: rule, editable: !!(rule.style && rule.style.id) });\r
+}\r
+usedProperties = {};\r
+disabledComputedProperties = {};\r
+this._markUsedProperties(styleRules, usedProperties, disabledComputedProperties);\r
+this.sections[pseudoId] = this._rebuildSectionsForStyleRules(styleRules, usedProperties, disabledComputedProperties, pseudoId, anchorElement);\r
+}\r
+},\r
+\r
+_refreshStyleRules: function(sections, computedStyle)\r
+{\r
+var nodeComputedStyle = computedStyle;\r
+var styleRules = [];\r
+for (var i = 0; sections && i < sections.length; ++i) {\r
+var section = sections[i];\r
+if (section instanceof WebInspector.BlankStylePropertiesSection)\r
+continue;\r
+if (section.computedStyle)\r
+section.styleRule.style = nodeComputedStyle;\r
+var styleRule = { section: section, style: section.styleRule.style, computedStyle: section.computedStyle, rule: section.rule, editable: !!(section.styleRule.style && section.styleRule.style.id) };\r
+styleRules.push(styleRule);\r
+}\r
+return styleRules;\r
+},\r
+\r
+_rebuildStyleRules: function(node, styles)\r
+{\r
+var nodeComputedStyle = styles.computedStyle;\r
+this.sections = {};\r
+\r
+var styleRules = [];\r
+\r
+styleRules.push({ computedStyle: true, selectorText: "", style: nodeComputedStyle, editable: false });\r
+\r
+var styleAttributes = {};\r
+for (var name in styles.styleAttributes) {\r
+var attrStyle = { style: styles.styleAttributes[name], editable: false };\r
+attrStyle.selectorText = WebInspector.panels.elements.treeOutline.nodeNameToCorrectCase(node.nodeName) + "[" + name;\r
+if (node.getAttribute(name))\r
+attrStyle.selectorText += "=" + node.getAttribute(name);\r
+attrStyle.selectorText += "]";\r
+styleRules.push(attrStyle);\r
+}\r
+\r
+\r
+if (styles.inlineStyle && node.nodeType === Node.ELEMENT_NODE) {\r
+var inlineStyle = { selectorText: "element.style", style: styles.inlineStyle, isAttribute: true };\r
+styleRules.push(inlineStyle);\r
+}\r
+\r
+\r
+if (styles.matchedCSSRules.length)\r
+styleRules.push({ isStyleSeparator: true, text: WebInspector.UIString("Matched CSS Rules") });\r
+for (var i = styles.matchedCSSRules.length - 1; i >= 0; --i) {\r
+var rule = styles.matchedCSSRules[i];\r
+styleRules.push({ style: rule.style, selectorText: rule.selectorText, sourceURL: rule.sourceURL, rule: rule, editable: !!(rule.style && rule.style.id) });\r
+}\r
+\r
+\r
+var parentNode = node.parentNode;\r
+function insertInheritedNodeSeparator(node)\r
+{\r
+var entry = {};\r
+entry.isStyleSeparator = true;\r
+entry.node = node;\r
+styleRules.push(entry);\r
+}\r
+\r
+for (var parentOrdinal = 0; parentOrdinal < styles.inherited.length; ++parentOrdinal) {\r
+var parentStyles = styles.inherited[parentOrdinal];\r
+var separatorInserted = false;\r
+if (parentStyles.inlineStyle) {\r
+if (this._containsInherited(parentStyles.inlineStyle)) {\r
+var inlineStyle = { selectorText: WebInspector.UIString("Style Attribute"), style: parentStyles.inlineStyle, isAttribute: true, isInherited: true };\r
+if (!separatorInserted) {\r
+insertInheritedNodeSeparator(parentNode);\r
+separatorInserted = true;\r
+}\r
+styleRules.push(inlineStyle);\r
+}\r
+}\r
+\r
+for (var i = parentStyles.matchedCSSRules.length - 1; i >= 0; --i) {\r
+var rulePayload = parentStyles.matchedCSSRules[i];\r
+if (!this._containsInherited(rulePayload.style))\r
+continue;\r
+var rule = rulePayload;\r
+if (!separatorInserted) {\r
+insertInheritedNodeSeparator(parentNode);\r
+separatorInserted = true;\r
+}\r
+styleRules.push({ style: rule.style, selectorText: rule.selectorText, sourceURL: rule.sourceURL, rule: rule, isInherited: true, editable: !!(rule.style && rule.style.id) });\r
+}\r
+parentNode = parentNode.parentNode;\r
+}\r
+return styleRules;\r
+},\r
+\r
+_markUsedProperties: function(styleRules, usedProperties, disabledComputedProperties)\r
+{\r
+var priorityUsed = false;\r
+\r
+\r
+for (var i = 0; i < styleRules.length; ++i) {\r
+var styleRule = styleRules[i];\r
+if (styleRule.computedStyle || styleRule.isStyleSeparator)\r
+continue;\r
+if (styleRule.section && styleRule.section.noAffect)\r
+continue;\r
+\r
+styleRule.usedProperties = {};\r
+\r
+var style = styleRule.style;\r
+var allProperties = style.allProperties;\r
+for (var j = 0; j < allProperties.length; ++j) {\r
+var property = allProperties[j];\r
+if (!property.isLive)\r
+continue;\r
+var name = property.name;\r
+\r
+if (!priorityUsed && property.priority.length)\r
+priorityUsed = true;\r
+\r
+\r
+\r
+if (!(name in usedProperties))\r
+styleRule.usedProperties[name] = true;\r
+\r
+if (name === "font") {\r
+\r
+\r
+\r
+styleRule.usedProperties["font-family"] = true;\r
+styleRule.usedProperties["font-size"] = true;\r
+styleRule.usedProperties["font-style"] = true;\r
+styleRule.usedProperties["font-variant"] = true;\r
+styleRule.usedProperties["font-weight"] = true;\r
+styleRule.usedProperties["line-height"] = true;\r
+}\r
+}\r
+\r
+\r
+\r
+for (var name in styleRules[i].usedProperties)\r
+usedProperties[name] = true;\r
+}\r
+\r
+if (priorityUsed) {\r
+\r
+var foundPriorityProperties = [];\r
+\r
+\r
+for (var i = (styleRules.length - 1); i >= 0; --i) {\r
+if (styleRules[i].computedStyle || styleRules[i].isStyleSeparator)\r
+continue;\r
+\r
+var style = styleRules[i].style;\r
+var allProperties = style.allProperties;\r
+for (var j = 0; j < allProperties.length; ++j) {\r
+var property = allProperties[j];\r
+if (!property.isLive)\r
+continue;\r
+var name = property.name;\r
+if (property.priority.length) {\r
+if (!(name in foundPriorityProperties))\r
+styleRules[i].usedProperties[name] = true;\r
+else\r
+delete styleRules[i].usedProperties[name];\r
+foundPriorityProperties[name] = true;\r
+} else if (name in foundPriorityProperties)\r
+delete styleRules[i].usedProperties[name];\r
+}\r
+}\r
+}\r
+},\r
+\r
+_refreshSectionsForStyleRules: function(styleRules, usedProperties, disabledComputedProperties, editedSection)\r
+{\r
+\r
+for (var i = 0; i < styleRules.length; ++i) {\r
+var styleRule = styleRules[i];\r
+var section = styleRule.section;\r
+if (styleRule.computedStyle) {\r
+section._disabledComputedProperties = disabledComputedProperties;\r
+section._usedProperties = usedProperties;\r
+section.update();\r
+} else {\r
+section._usedProperties = styleRule.usedProperties;\r
+section.update(section === editedSection);\r
+}\r
+}\r
+},\r
+\r
+_rebuildSectionsForStyleRules: function(styleRules, usedProperties, disabledComputedProperties, pseudoId, anchorElement)\r
+{\r
+\r
+var sections = [];\r
+var lastWasSeparator = true;\r
+for (var i = 0; i < styleRules.length; ++i) {\r
+var styleRule = styleRules[i];\r
+if (styleRule.isStyleSeparator) {\r
+var separatorElement = document.createElement("div");\r
+separatorElement.className = "styles-sidebar-separator";\r
+if (styleRule.node) {\r
+var link = WebInspector.panels.elements.linkifyNodeReference(styleRule.node);\r
+separatorElement.appendChild(document.createTextNode(WebInspector.UIString("Inherited from") + " "));\r
+separatorElement.appendChild(link);\r
+if (!sections.inheritedPropertiesSeparatorElement)\r
+sections.inheritedPropertiesSeparatorElement = separatorElement;\r
+} else if ("pseudoId" in styleRule) {\r
+var pseudoName = WebInspector.StylesSidebarPane.PseudoIdNames[styleRule.pseudoId];\r
+if (pseudoName)\r
+separatorElement.textContent = WebInspector.UIString("Pseudo ::%s element", pseudoName);\r
+else\r
+separatorElement.textContent = WebInspector.UIString("Pseudo element");\r
+} else\r
+separatorElement.textContent = styleRule.text;\r
+this.bodyElement.insertBefore(separatorElement, anchorElement);\r
+lastWasSeparator = true;\r
+continue;\r
+}\r
+var computedStyle = styleRule.computedStyle;\r
+\r
+\r
+var editable = styleRule.editable;\r
+if (typeof editable === "undefined")\r
+editable = true;\r
+\r
+if (computedStyle)\r
+var section = new WebInspector.ComputedStylePropertiesSection(styleRule, usedProperties, disabledComputedProperties, styleRules);\r
+else\r
+var section = new WebInspector.StylePropertiesSection(styleRule, editable, styleRule.isInherited, lastWasSeparator);\r
+section.pane = this;\r
+section.expanded = true;\r
+\r
+if (computedStyle) {\r
+this._computedStylePane.bodyElement.appendChild(section.element);\r
+lastWasSeparator = true;\r
+} else {\r
+this.bodyElement.insertBefore(section.element, anchorElement);\r
+lastWasSeparator = false;\r
+}\r
+sections.push(section);\r
+}\r
+return sections;\r
+},\r
+\r
+_containsInherited: function(style)\r
+{\r
+var properties = style.allProperties;\r
+for (var i = 0; i < properties.length; ++i) {\r
+var property = properties[i];\r
+\r
+if (property.isLive && property.name in WebInspector.StylesSidebarPane.InheritedProperties)\r
+return true;\r
+}\r
+return false;\r
+},\r
+\r
+_changeSetting: function(event)\r
+{\r
+var options = this.settingsSelectElement.options;\r
+var selectedOption = options[this.settingsSelectElement.selectedIndex];\r
+selectedOption.action(event);\r
+\r
+\r
+var selectedIndex = 0;\r
+for (var i = 0; i < options.length; ++i) {\r
+if (options[i].value === WebInspector.settings.colorFormat) {\r
+selectedIndex = i;\r
+break;\r
+}\r
+}\r
+\r
+this.settingsSelectElement.selectedIndex = selectedIndex;\r
+},\r
+\r
+_changeColorFormat: function(event)\r
+{\r
+var selectedOption = this.settingsSelectElement[this.settingsSelectElement.selectedIndex];\r
+WebInspector.settings.colorFormat = selectedOption.value;\r
+\r
+for (var pseudoId in this.sections) {\r
+var sections = this.sections[pseudoId];\r
+for (var i = 0; i < sections.length; ++i)\r
+sections[i].update(true);\r
+}\r
+},\r
+\r
+_createNewRule: function(event)\r
+{\r
+this.addBlankSection().startEditingSelector();\r
+},\r
+\r
+addBlankSection: function()\r
+{\r
+var blankSection = new WebInspector.BlankStylePropertiesSection(appropriateSelectorForNode(this.node, true));\r
+blankSection.pane = this;\r
+\r
+var elementStyleSection = this.sections[0][1];\r
+this.bodyElement.insertBefore(blankSection.element, elementStyleSection.element.nextSibling);\r
+\r
+this.sections[0].splice(2, 0, blankSection);\r
+\r
+return blankSection;\r
+},\r
+\r
+removeSection: function(section)\r
+{\r
+for (var pseudoId in this.sections) {\r
+var sections = this.sections[pseudoId];\r
+var index = sections.indexOf(section);\r
+if (index === -1)\r
+continue;\r
+sections.splice(index, 1);\r
+if (section.element.parentNode)\r
+section.element.parentNode.removeChild(section.element);\r
+}\r
+},\r
+\r
+registerShortcuts: function()\r
+{\r
+var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Styles Pane"));\r
+var shortcut = WebInspector.KeyboardShortcut;\r
+var keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Tab),\r
+shortcut.shortcutToString(shortcut.Keys.Tab, shortcut.Modifiers.Shift)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Next/previous property"));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Up),\r
+shortcut.shortcutToString(shortcut.Keys.Down)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Increment/decrement value"));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Up, shortcut.Modifiers.Shift),\r
+shortcut.shortcutToString(shortcut.Keys.Down, shortcut.Modifiers.Shift)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Increment/decrement by %f", 10));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.PageUp),\r
+shortcut.shortcutToString(shortcut.Keys.PageDown)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Increment/decrement by %f", 10));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.PageUp, shortcut.Modifiers.Shift),\r
+shortcut.shortcutToString(shortcut.Keys.PageDown, shortcut.Modifiers.Shift)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Increment/decrement by %f", 100));\r
+keys = [\r
+shortcut.shortcutToString(shortcut.Keys.PageUp, shortcut.Modifiers.Alt),\r
+shortcut.shortcutToString(shortcut.Keys.PageDown, shortcut.Modifiers.Alt)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Increment/decrement by %f", 0.1));\r
+}\r
+}\r
+\r
+WebInspector.StylesSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.ComputedStyleSidebarPane = function()\r
+{\r
+WebInspector.SidebarPane.call(this, WebInspector.UIString("Computed Style"));\r
+var showInheritedCheckbox = new WebInspector.Checkbox(WebInspector.UIString("Show inherited"), "sidebar-pane-subtitle");\r
+this.titleElement.appendChild(showInheritedCheckbox.element);\r
+\r
+if (WebInspector.settings.showInheritedComputedStyleProperties) {\r
+this.bodyElement.addStyleClass("show-inherited");\r
+showInheritedCheckbox.checked = true;\r
+}\r
+\r
+function showInheritedToggleFunction(event)\r
+{\r
+WebInspector.settings.showInheritedComputedStyleProperties = showInheritedCheckbox.checked;\r
+if (WebInspector.settings.showInheritedComputedStyleProperties)\r
+this.bodyElement.addStyleClass("show-inherited");\r
+else\r
+this.bodyElement.removeStyleClass("show-inherited");\r
+}\r
+\r
+showInheritedCheckbox.addEventListener(showInheritedToggleFunction.bind(this));\r
+}\r
+\r
+WebInspector.ComputedStyleSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+WebInspector.StylePropertiesSection = function(styleRule, editable, isInherited, isFirstSection)\r
+{\r
+WebInspector.PropertiesSection.call(this, "");\r
+this.element.className = "styles-section monospace" + (isFirstSection ? " first-styles-section" : "");\r
+\r
+this._selectorElement = document.createElement("span");\r
+this._selectorElement.textContent = styleRule.selectorText;\r
+this.titleElement.appendChild(this._selectorElement);\r
+if (Preferences.debugMode)\r
+this._selectorElement.addEventListener("click", this._debugShowStyle.bind(this), false);\r
+\r
+var openBrace = document.createElement("span");\r
+openBrace.textContent = " {";\r
+this.titleElement.appendChild(openBrace);\r
+\r
+var closeBrace = document.createElement("div");\r
+closeBrace.textContent = "}";\r
+this.element.appendChild(closeBrace);\r
+\r
+this._selectorElement.addEventListener("dblclick", this._handleSelectorDoubleClick.bind(this), false);\r
+this.element.addEventListener("dblclick", this._handleEmptySpaceDoubleClick.bind(this), false);\r
+\r
+this.styleRule = styleRule;\r
+this.rule = this.styleRule.rule;\r
+this.editable = editable;\r
+this.isInherited = isInherited;\r
+\r
+\r
+var isUserAgent = this.rule && this.rule.isUserAgent;\r
+var isUser = this.rule && this.rule.isUser;\r
+var isViaInspector = this.rule && this.rule.isViaInspector;\r
+\r
+if (isUserAgent || isUser)\r
+this.editable = false;\r
+\r
+this._usedProperties = styleRule.usedProperties;\r
+\r
+if (this.rule)\r
+this.titleElement.addStyleClass("styles-selector");\r
+\r
+function linkifyUncopyable(url, line)\r
+{\r
+var link = WebInspector.linkifyResourceAsNode(url, "resources", line + 1);\r
+link.setAttribute("data-uncopyable", link.textContent);\r
+link.textContent = "";\r
+return link;\r
+}\r
+\r
+var subtitle = "";\r
+if (this.styleRule.sourceURL)\r
+this.subtitleElement.appendChild(linkifyUncopyable(this.styleRule.sourceURL, this.rule.sourceLine));\r
+else if (isUserAgent)\r
+subtitle = WebInspector.UIString("user agent stylesheet");\r
+else if (isUser)\r
+subtitle = WebInspector.UIString("user stylesheet");\r
+else if (isViaInspector)\r
+subtitle = WebInspector.UIString("via inspector");\r
+else if (this.rule && this.rule.sourceURL)\r
+this.subtitleElement.appendChild(linkifyUncopyable(this.rule.sourceURL, this.rule.sourceLine));\r
+\r
+if (isInherited)\r
+this.element.addStyleClass("show-inherited"); \r
+if (subtitle)\r
+this.subtitle = subtitle;\r
+\r
+this.identifier = styleRule.selectorText;\r
+if (this.subtitle)\r
+this.identifier += ":" + this.subtitle;\r
+\r
+if (!this.editable)\r
+this.element.addStyleClass("read-only");\r
+}\r
+\r
+WebInspector.StylePropertiesSection.prototype = {\r
+collapse: function(dontRememberState)\r
+{\r
+\r
+},\r
+\r
+isPropertyInherited: function(propertyName)\r
+{\r
+if (this.isInherited) {\r
+\r
+\r
+return !(propertyName in WebInspector.StylesSidebarPane.InheritedProperties);\r
+}\r
+return false;\r
+},\r
+\r
+isPropertyOverloaded: function(propertyName, shorthand)\r
+{\r
+if (!this._usedProperties || this.noAffect)\r
+return false;\r
+\r
+if (this.isInherited && !(propertyName in WebInspector.StylesSidebarPane.InheritedProperties)) {\r
+\r
+return false;\r
+}\r
+\r
+var used = (propertyName in this._usedProperties);\r
+if (used || !shorthand)\r
+return !used;\r
+\r
+\r
+\r
+var longhandProperties = this.styleRule.style.getLonghandProperties(propertyName);\r
+for (var j = 0; j < longhandProperties.length; ++j) {\r
+var individualProperty = longhandProperties[j];\r
+if (individualProperty.name in this._usedProperties)\r
+return false;\r
+}\r
+\r
+return true;\r
+},\r
+\r
+nextEditableSibling: function()\r
+{\r
+var curSection = this;\r
+do {\r
+curSection = curSection.nextSibling;\r
+} while (curSection && !curSection.editable);\r
+\r
+return curSection;\r
+},\r
+\r
+previousEditableSibling: function()\r
+{\r
+var curSection = this;\r
+do {\r
+curSection = curSection.previousSibling;\r
+} while (curSection && !curSection.editable);\r
+\r
+return curSection;\r
+},\r
+\r
+update: function(full)\r
+{\r
+if (full) {\r
+this.propertiesTreeOutline.removeChildren();\r
+this.populated = false;\r
+} else {\r
+var child = this.propertiesTreeOutline.children[0];\r
+while (child) {\r
+child.overloaded = this.isPropertyOverloaded(child.name, child.shorthand);\r
+child = child.traverseNextTreeElement(false, null, true);\r
+}\r
+}\r
+this.afterUpdate();\r
+},\r
+\r
+afterUpdate: function()\r
+{\r
+if (this._afterUpdate) {\r
+this._afterUpdate(this);\r
+delete this._afterUpdate;\r
+}\r
+},\r
+\r
+onpopulate: function()\r
+{\r
+var style = this.styleRule.style;\r
+\r
+var handledProperties = {};\r
+var shorthandNames = {};\r
+\r
+this.uniqueProperties = [];\r
+var allProperties = style.allProperties;\r
+for (var i = 0; i < allProperties.length; ++i)\r
+this.uniqueProperties.push(allProperties[i]);\r
+\r
+\r
+for (var i = 0; i < this.uniqueProperties.length; ++i) {\r
+var property = this.uniqueProperties[i];\r
+if (property.disabled)\r
+continue;\r
+if (property.shorthand)\r
+shorthandNames[property.shorthand] = true;\r
+}\r
+\r
+\r
+for (var i = 0; i < this.uniqueProperties.length; ++i) {\r
+var property = this.uniqueProperties[i];\r
+var disabled = property.disabled;\r
+if (!disabled && this.disabledComputedProperties && !(property.name in this.usedProperties) && property.name in this.disabledComputedProperties)\r
+disabled = true;\r
+\r
+var shorthand = !disabled ? property.shorthand : null;\r
+\r
+if (shorthand && shorthand in handledProperties)\r
+continue;\r
+\r
+if (shorthand) {\r
+property = style.getLiveProperty(shorthand);\r
+if (!property)\r
+property = new WebInspector.CSSProperty(style, style.allProperties.length, shorthand, style.getShorthandValue(shorthand), style.getShorthandPriority(shorthand), "style", true, true, "");\r
+}\r
+\r
+var isShorthand = !!(property.isLive && (shorthand || shorthandNames[property.name]));\r
+var inherited = this.isPropertyInherited(property.name);\r
+var overloaded = this.isPropertyOverloaded(property.name, isShorthand);\r
+\r
+var item = new WebInspector.StylePropertyTreeElement(this.styleRule, style, property, isShorthand, inherited, overloaded);\r
+this.propertiesTreeOutline.appendChild(item);\r
+handledProperties[property.name] = property;\r
+}\r
+},\r
+\r
+findTreeElementWithName: function(name)\r
+{\r
+var treeElement = this.propertiesTreeOutline.children[0];\r
+while (treeElement) {\r
+if (treeElement.name === name)\r
+return treeElement;\r
+treeElement = treeElement.traverseNextTreeElement(true, null, true);\r
+}\r
+return null;\r
+},\r
+\r
+addNewBlankProperty: function(optionalIndex)\r
+{\r
+var style = this.styleRule.style;\r
+var property = style.newBlankProperty();\r
+var item = new WebInspector.StylePropertyTreeElement(this.styleRule, style, property, false, false, false);\r
+this.propertiesTreeOutline.appendChild(item);\r
+item.listItemElement.textContent = "";\r
+item._newProperty = true;\r
+item.updateTitle();\r
+return item;\r
+},\r
+\r
+_debugShowStyle: function(anchor)\r
+{\r
+var boundHandler;\r
+function removeStyleBox(element, event)\r
+{\r
+if (event.target === element) {\r
+event.stopPropagation();\r
+return;\r
+}\r
+document.body.removeChild(element);\r
+document.getElementById("main").removeEventListener("mousedown", boundHandler, true);\r
+}\r
+\r
+if (!event.shiftKey)\r
+return;\r
+\r
+var container = document.createElement("div");\r
+var element = document.createElement("span");\r
+container.appendChild(element);\r
+element.style.background = "yellow";\r
+element.style.display = "inline-block";\r
+container.style.cssText = "z-index: 2000000; position: absolute; top: 50px; left: 50px; white-space: pre; overflow: auto; background: white; font-family: monospace; font-size: 12px; border: 1px solid black; opacity: 0.85; -webkit-user-select: text; padding: 2px;";\r
+container.style.width = (document.body.offsetWidth - 100) + "px";\r
+container.style.height = (document.body.offsetHeight - 100) + "px";\r
+document.body.appendChild(container);\r
+if (this.rule)\r
+element.textContent = this.rule.selectorText + " {" + ((this.styleRule.style.cssText !== undefined) ? this.styleRule.style.cssText : "<no cssText>") + "}";\r
+else\r
+element.textContent = this.styleRule.style.cssText;\r
+boundHandler = removeStyleBox.bind(null, container);\r
+document.getElementById("main").addEventListener("mousedown", boundHandler, true);\r
+},\r
+\r
+_handleEmptySpaceDoubleClick: function(event)\r
+{\r
+if (event.target.hasStyleClass("header")) {\r
+event.stopPropagation();\r
+return;\r
+}\r
+this.expand();\r
+this.addNewBlankProperty().startEditing();\r
+},\r
+\r
+_handleSelectorClick: function(event)\r
+{\r
+event.stopPropagation();\r
+},\r
+\r
+_handleSelectorDoubleClick: function(event)\r
+{\r
+this._startEditingOnMouseEvent();\r
+event.stopPropagation();\r
+},\r
+\r
+_startEditingOnMouseEvent: function()\r
+{\r
+if (!this.editable)\r
+return;\r
+\r
+if (!this.rule && this.propertiesTreeOutline.children.length === 0) {\r
+this.expand();\r
+this.addNewBlankProperty().startEditing();\r
+return;\r
+}\r
+\r
+if (!this.rule)\r
+return;\r
+\r
+this.startEditingSelector();\r
+},\r
+\r
+startEditingSelector: function()\r
+{\r
+var element = this._selectorElement;\r
+if (WebInspector.isBeingEdited(element))\r
+return;\r
+\r
+WebInspector.startEditing(this._selectorElement, {\r
+context: null,\r
+commitHandler: this.editingSelectorCommitted.bind(this),\r
+cancelHandler: this.editingSelectorCancelled.bind(this)\r
+});\r
+window.getSelection().setBaseAndExtent(element, 0, element, 1);\r
+},\r
+\r
+editingSelectorCommitted: function(element, newContent, oldContent, context, moveDirection)\r
+{\r
+function moveToNextIfNeeded() {\r
+if (!moveDirection)\r
+return;\r
+\r
+if (moveDirection === "forward") {\r
+this.expand();\r
+if (this.propertiesTreeOutline.children.length === 0)\r
+this.addNewBlankProperty().startEditing();\r
+else {\r
+var item = this.propertiesTreeOutline.children[0]\r
+item.startEditing(item.nameElement);\r
+}\r
+} else {\r
+var previousSection = this.previousEditableSibling();\r
+if (!previousSection)\r
+return;\r
+\r
+previousSection.expand();\r
+previousSection.addNewBlankProperty().startEditing();\r
+}\r
+}\r
+\r
+if (newContent === oldContent)\r
+return moveToNextIfNeeded.call(this);\r
+\r
+var self = this;\r
+\r
+function successCallback(newRule, doesAffectSelectedNode)\r
+{\r
+if (!doesAffectSelectedNode) {\r
+self.noAffect = true;\r
+self.element.addStyleClass("no-affect");\r
+} else {\r
+delete self.noAffect;\r
+self.element.removeStyleClass("no-affect");\r
+}\r
+\r
+self.rule = newRule;\r
+self.styleRule = { section: self, style: newRule.style, selectorText: newRule.selectorText, sourceURL: newRule.sourceURL, rule: newRule };\r
+\r
+var oldIdentifier = this.identifier;\r
+self.identifier = newRule.selectorText + ":" + self.subtitleElement.textContent;\r
+\r
+self.pane.update();\r
+\r
+WebInspector.panels.elements.renameSelector(oldIdentifier, this.identifier, oldContent, newContent);\r
+\r
+moveToNextIfNeeded.call(self);\r
+}\r
+\r
+var focusedNode = WebInspector.panels.elements.focusedDOMNode;\r
+WebInspector.cssModel.setRuleSelector(this.rule.id, focusedNode ? focusedNode.id : 0, newContent, successCallback, moveToNextIfNeeded.bind(this));\r
+},\r
+\r
+editingSelectorCancelled: function()\r
+{\r
+\r
+}\r
+}\r
+\r
+WebInspector.StylePropertiesSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;\r
+\r
+WebInspector.ComputedStylePropertiesSection = function(styleRule, usedProperties, disabledComputedProperties)\r
+{\r
+WebInspector.PropertiesSection.call(this, "");\r
+this.headerElement.addStyleClass("hidden");\r
+this.element.className = "styles-section monospace first-styles-section read-only computed-style";\r
+this.styleRule = styleRule;\r
+this._usedProperties = usedProperties;\r
+this._disabledComputedProperties = disabledComputedProperties;\r
+this._alwaysShowComputedProperties = { "display": true, "height": true, "width": true };\r
+this.computedStyle = true;\r
+this._propertyTreeElements = {};\r
+this._expandedPropertyNames = {};\r
+}\r
+\r
+WebInspector.ComputedStylePropertiesSection.prototype = {\r
+collapse: function(dontRememberState)\r
+{\r
+\r
+},\r
+\r
+_isPropertyInherited: function(propertyName)\r
+{\r
+return !(propertyName in this._usedProperties) && !(propertyName in this._alwaysShowComputedProperties) && !(propertyName in this._disabledComputedProperties);\r
+},\r
+\r
+update: function()\r
+{\r
+this._expandedPropertyNames = {};\r
+for (var name in this._propertyTreeElements) {\r
+if (this._propertyTreeElements[name].expanded)\r
+this._expandedPropertyNames[name] = true;\r
+}\r
+this._propertyTreeElements = {};\r
+this.propertiesTreeOutline.removeChildren();\r
+this.populated = false;\r
+},\r
+\r
+onpopulate: function()\r
+{\r
+function sorter(a, b)\r
+{\r
+return a.name.localeCompare(b.name);\r
+}\r
+\r
+var style = this.styleRule.style;\r
+var uniqueProperties = [];\r
+var allProperties = style.allProperties;\r
+for (var i = 0; i < allProperties.length; ++i)\r
+uniqueProperties.push(allProperties[i]);\r
+uniqueProperties.sort(sorter);\r
+\r
+this._propertyTreeElements = {};\r
+for (var i = 0; i < uniqueProperties.length; ++i) {\r
+var property = uniqueProperties[i];\r
+var inherited = this._isPropertyInherited(property.name);\r
+var item = new WebInspector.StylePropertyTreeElement(this.styleRule, style, property, false, inherited, false);\r
+this.propertiesTreeOutline.appendChild(item);\r
+this._propertyTreeElements[property.name] = item;\r
+}\r
+},\r
+\r
+rebuildComputedTrace: function(sections)\r
+{\r
+for (var i = 0; i < sections.length; ++i) {\r
+var section = sections[i];\r
+if (section.computedStyle || section instanceof WebInspector.BlankStylePropertiesSection)\r
+continue;\r
+\r
+for (var j = 0; j < section.uniqueProperties.length; ++j) {\r
+var property = section.uniqueProperties[j];\r
+if (property.disabled)\r
+continue;\r
+if (section.isInherited && !(property.name in WebInspector.StylesSidebarPane.InheritedProperties))\r
+continue;\r
+\r
+var treeElement = this._propertyTreeElements[property.name];\r
+if (treeElement) {\r
+var selectorText = section.styleRule.selectorText;\r
+var value = property.value;\r
+var title = "<span style='color: gray'>" + selectorText + "</span> - " + value;\r
+var subtitle = " <span style='float:right'>" + section.subtitleElement.innerHTML + "</span>";\r
+var childElement = new TreeElement(null, null, false);\r
+childElement.titleHTML = title + subtitle;\r
+treeElement.appendChild(childElement);\r
+if (section.isPropertyOverloaded(property.name))\r
+childElement.listItemElement.addStyleClass("overloaded");\r
+}\r
+}\r
+}\r
+\r
+\r
+for (var name in this._expandedPropertyNames) {\r
+if (name in this._propertyTreeElements)\r
+this._propertyTreeElements[name].expand();\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ComputedStylePropertiesSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;\r
+\r
+WebInspector.BlankStylePropertiesSection = function(defaultSelectorText)\r
+{\r
+WebInspector.StylePropertiesSection.call(this, {selectorText: defaultSelectorText, rule: {isViaInspector: true}}, true, false, false);\r
+this.element.addStyleClass("blank-section");\r
+}\r
+\r
+WebInspector.BlankStylePropertiesSection.prototype = {\r
+expand: function()\r
+{\r
+\r
+},\r
+\r
+editingSelectorCommitted: function(element, newContent, oldContent, context)\r
+{\r
+var self = this;\r
+function successCallback(newRule, doesSelectorAffectSelectedNode)\r
+{\r
+var styleRule = { section: self, style: newRule.style, selectorText: newRule.selectorText, sourceURL: newRule.sourceURL, rule: newRule };\r
+self.makeNormal(styleRule);\r
+\r
+if (!doesSelectorAffectSelectedNode) {\r
+self.noAffect = true;\r
+self.element.addStyleClass("no-affect");\r
+}\r
+\r
+self.subtitleElement.textContent = WebInspector.UIString("via inspector");\r
+self.expand();\r
+\r
+self.addNewBlankProperty().startEditing();\r
+}\r
+\r
+WebInspector.cssModel.addRule(this.pane.node.id, newContent, successCallback, this.editingSelectorCancelled.bind(this));\r
+},\r
+\r
+editingSelectorCancelled: function()\r
+{\r
+this.pane.removeSection(this);\r
+},\r
+\r
+makeNormal: function(styleRule)\r
+{\r
+this.element.removeStyleClass("blank-section");\r
+this.styleRule = styleRule;\r
+this.rule = styleRule.rule;\r
+this.identifier = styleRule.selectorText + ":via inspector";\r
+this.__proto__ = WebInspector.StylePropertiesSection.prototype;\r
+}\r
+}\r
+\r
+WebInspector.BlankStylePropertiesSection.prototype.__proto__ = WebInspector.StylePropertiesSection.prototype;\r
+\r
+WebInspector.StylePropertyTreeElement = function(styleRule, style, property, shorthand, inherited, overloaded)\r
+{\r
+this._styleRule = styleRule;\r
+this.style = style;\r
+this.property = property;\r
+this.shorthand = shorthand;\r
+this._inherited = inherited;\r
+this._overloaded = overloaded;\r
+\r
+\r
+TreeElement.call(this, "", null, shorthand);\r
+}\r
+\r
+WebInspector.StylePropertyTreeElement.prototype = {\r
+get inherited()\r
+{\r
+return this._inherited;\r
+},\r
+\r
+set inherited(x)\r
+{\r
+if (x === this._inherited)\r
+return;\r
+this._inherited = x;\r
+this.updateState();\r
+},\r
+\r
+get overloaded()\r
+{\r
+return this._overloaded;\r
+},\r
+\r
+set overloaded(x)\r
+{\r
+if (x === this._overloaded)\r
+return;\r
+this._overloaded = x;\r
+this.updateState();\r
+},\r
+\r
+get disabled()\r
+{\r
+return this.property.disabled;\r
+},\r
+\r
+get name()\r
+{\r
+if (!this.disabled || !this.property.text)\r
+return this.property.name;\r
+\r
+var text = this.property.text;\r
+var index = text.indexOf(":");\r
+if (index < 1)\r
+return this.property.name;\r
+\r
+return text.substring(0, index).trim();\r
+},\r
+\r
+get priority()\r
+{\r
+if (this.disabled)\r
+return ""; \r
+return this.property.priority;\r
+},\r
+\r
+get value()\r
+{\r
+if (!this.disabled || !this.property.text)\r
+return this.property.value;\r
+\r
+var match = this.property.text.match(/(.*);\s*/);\r
+if (!match || !match[1])\r
+return this.property.value;\r
+\r
+var text = match[1];\r
+var index = text.indexOf(":");\r
+if (index < 1)\r
+return this.property.value;\r
+\r
+return text.substring(index + 1).trim();\r
+},\r
+\r
+get parsedOk()\r
+{\r
+return this.property.parsedOk;\r
+},\r
+\r
+onattach: function()\r
+{\r
+this.updateTitle();\r
+},\r
+\r
+updateTitle: function()\r
+{\r
+var value = this.value;\r
+\r
+this.updateState();\r
+\r
+var enabledCheckboxElement;\r
+if (this.parsedOk) {\r
+enabledCheckboxElement = document.createElement("input");\r
+enabledCheckboxElement.className = "enabled-button";\r
+enabledCheckboxElement.type = "checkbox";\r
+enabledCheckboxElement.checked = !this.disabled;\r
+enabledCheckboxElement.addEventListener("change", this.toggleEnabled.bind(this), false);\r
+}\r
+\r
+var nameElement = document.createElement("span");\r
+nameElement.className = "webkit-css-property";\r
+nameElement.textContent = this.name;\r
+this.nameElement = nameElement;\r
+\r
+var valueElement = document.createElement("span");\r
+valueElement.className = "value";\r
+this.valueElement = valueElement;\r
+\r
+if (value) {\r
+function processValue(regex, processor, nextProcessor, valueText)\r
+{\r
+var container = document.createDocumentFragment();\r
+\r
+var items = valueText.replace(regex, "\0$1\0").split("\0");\r
+for (var i = 0; i < items.length; ++i) {\r
+if ((i % 2) === 0) {\r
+if (nextProcessor)\r
+container.appendChild(nextProcessor(items[i]));\r
+else\r
+container.appendChild(document.createTextNode(items[i]));\r
+} else {\r
+var processedNode = processor(items[i]);\r
+if (processedNode)\r
+container.appendChild(processedNode);\r
+}\r
+}\r
+\r
+return container;\r
+}\r
+\r
+function linkifyURL(url)\r
+{\r
+var container = document.createDocumentFragment();\r
+container.appendChild(document.createTextNode("url("));\r
+var hasResource = !!WebInspector.resourceForURL(url);\r
+container.appendChild(WebInspector.linkifyURLAsNode(url, url, null, hasResource));\r
+container.appendChild(document.createTextNode(")"));\r
+return container;\r
+}\r
+\r
+function processColor(text)\r
+{\r
+try {\r
+var color = new WebInspector.Color(text);\r
+} catch (e) {\r
+return document.createTextNode(text);\r
+}\r
+\r
+var swatchElement = document.createElement("span");\r
+swatchElement.title = WebInspector.UIString("Click to change color format");\r
+swatchElement.className = "swatch";\r
+swatchElement.style.setProperty("background-color", text);\r
+\r
+swatchElement.addEventListener("click", changeColorDisplay, false);\r
+swatchElement.addEventListener("dblclick", function(event) { event.stopPropagation() }, false);\r
+\r
+var format;\r
+if (WebInspector.settings.colorFormat === "original")\r
+format = "original";\r
+else if (Preferences.showColorNicknames && color.nickname)\r
+format = "nickname";\r
+else if (WebInspector.settings.colorFormat === "rgb")\r
+format = (color.simple ? "rgb" : "rgba");\r
+else if (WebInspector.settings.colorFormat === "hsl")\r
+format = (color.simple ? "hsl" : "hsla");\r
+else if (color.simple)\r
+format = (color.hasShortHex() ? "shorthex" : "hex");\r
+else\r
+format = "rgba";\r
+\r
+var colorValueElement = document.createElement("span");\r
+colorValueElement.textContent = color.toString(format);\r
+\r
+function nextFormat(curFormat)\r
+{\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+switch (curFormat) {\r
+case "original":\r
+return color.simple ? "rgb" : "rgba";\r
+\r
+case "rgb":\r
+case "rgba":\r
+return color.simple ? "hsl" : "hsla";\r
+\r
+case "hsl":\r
+case "hsla":\r
+if (color.nickname)\r
+return "nickname";\r
+if (color.simple)\r
+return color.hasShortHex() ? "shorthex" : "hex";\r
+else\r
+return "original";\r
+\r
+case "shorthex":\r
+return "hex";\r
+\r
+case "hex":\r
+return "original";\r
+\r
+case "nickname":\r
+if (color.simple)\r
+return color.hasShortHex() ? "shorthex" : "hex";\r
+else\r
+return "original";\r
+\r
+default:\r
+return null;\r
+}\r
+}\r
+\r
+function changeColorDisplay(event)\r
+{\r
+do {\r
+format = nextFormat(format);\r
+var currentValue = color.toString(format || "");\r
+} while (format && currentValue === color.value && format !== "original");\r
+\r
+if (format)\r
+colorValueElement.textContent = currentValue;\r
+}\r
+\r
+var container = document.createDocumentFragment();\r
+container.appendChild(swatchElement);\r
+container.appendChild(colorValueElement);\r
+return container;\r
+}\r
+\r
+var colorRegex = /((?:rgb|hsl)a?\([^)]+\)|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{3}|\b\w+\b(?!-))/g;\r
+var colorProcessor = processValue.bind(window, colorRegex, processColor, null);\r
+\r
+valueElement.appendChild(processValue(/url\(([^)]+)\)/g, linkifyURL, colorProcessor, value));\r
+}\r
+\r
+this.listItemElement.removeChildren();\r
+\r
+if (!this.treeOutline)\r
+return;\r
+\r
+\r
+if (enabledCheckboxElement && this.treeOutline.section && this.treeOutline.section.editable && this.parent.root)\r
+this.listItemElement.appendChild(enabledCheckboxElement);\r
+this.listItemElement.appendChild(nameElement);\r
+this.listItemElement.appendChild(document.createTextNode(": "));\r
+this.listItemElement.appendChild(valueElement);\r
+this.listItemElement.appendChild(document.createTextNode(";"));\r
+\r
+if (!this.parsedOk) {\r
+\r
+this.hasChildren = false;\r
+this.listItemElement.addStyleClass("not-parsed-ok");\r
+}\r
+if (this.property.inactive)\r
+this.listItemElement.addStyleClass("inactive");\r
+\r
+this.tooltip = this.property.propertyText;\r
+},\r
+\r
+updateAll: function(updateAllRules)\r
+{\r
+if (!this.treeOutline)\r
+return;\r
+if (updateAllRules && this.treeOutline.section && this.treeOutline.section.pane)\r
+this.treeOutline.section.pane.update(null, this.treeOutline.section);\r
+else if (this.treeOutline.section)\r
+this.treeOutline.section.update(true);\r
+else\r
+this.updateTitle(); \r
+},\r
+\r
+toggleEnabled: function(event)\r
+{\r
+var disabled = !event.target.checked;\r
+\r
+function callback(newStyle)\r
+{\r
+if (!newStyle)\r
+return;\r
+\r
+this.style = newStyle;\r
+this._styleRule.style = newStyle;\r
+\r
+if (this.treeOutline.section && this.treeOutline.section.pane)\r
+this.treeOutline.section.pane.dispatchEventToListeners("style property toggled");\r
+\r
+this.updateAll(true);\r
+}\r
+\r
+this.property.setDisabled(disabled, callback.bind(this));\r
+},\r
+\r
+updateState: function()\r
+{\r
+if (!this.listItemElement)\r
+return;\r
+\r
+if (this.style.isPropertyImplicit(this.name) || this.value === "initial")\r
+this.listItemElement.addStyleClass("implicit");\r
+else\r
+this.listItemElement.removeStyleClass("implicit");\r
+\r
+this.selectable = !this.inherited;\r
+if (this.inherited)\r
+this.listItemElement.addStyleClass("inherited");\r
+else\r
+this.listItemElement.removeStyleClass("inherited");\r
+\r
+if (this.overloaded)\r
+this.listItemElement.addStyleClass("overloaded");\r
+else\r
+this.listItemElement.removeStyleClass("overloaded");\r
+\r
+if (this.disabled)\r
+this.listItemElement.addStyleClass("disabled");\r
+else\r
+this.listItemElement.removeStyleClass("disabled");\r
+},\r
+\r
+onpopulate: function()\r
+{\r
+\r
+if (this.children.length || !this.shorthand)\r
+return;\r
+\r
+var longhandProperties = this.style.getLonghandProperties(this.name);\r
+for (var i = 0; i < longhandProperties.length; ++i) {\r
+var name = longhandProperties[i].name;\r
+\r
+\r
+if (this.treeOutline.section) {\r
+var inherited = this.treeOutline.section.isPropertyInherited(name);\r
+var overloaded = this.treeOutline.section.isPropertyOverloaded(name);\r
+}\r
+\r
+var liveProperty = this.style.getLiveProperty(name);\r
+var item = new WebInspector.StylePropertyTreeElement(this._styleRule, this.style, liveProperty, false, inherited, overloaded);\r
+this.appendChild(item);\r
+}\r
+},\r
+\r
+ondblclick: function(event)\r
+{\r
+this.startEditing(event.target);\r
+event.stopPropagation();\r
+},\r
+\r
+restoreNameElement: function()\r
+{\r
+\r
+if (this.nameElement === this.listItemElement.querySelector(".webkit-css-property"))\r
+return;\r
+\r
+this.nameElement = document.createElement("span");\r
+this.nameElement.className = "webkit-css-property";\r
+this.nameElement.textContent = "";\r
+this.listItemElement.insertBefore(this.nameElement, this.listItemElement.firstChild);\r
+},\r
+\r
+startEditing: function(selectElement)\r
+{\r
+\r
+if (this.parent.shorthand)\r
+return;\r
+\r
+if (this.treeOutline.section && !this.treeOutline.section.editable)\r
+return;\r
+\r
+if (!selectElement)\r
+selectElement = this.nameElement; \r
+else\r
+selectElement = selectElement.enclosingNodeOrSelfWithClass("webkit-css-property") || selectElement.enclosingNodeOrSelfWithClass("value");\r
+\r
+var isEditingName = selectElement === this.nameElement;\r
+if (!isEditingName && selectElement !== this.valueElement) {\r
+\r
+isEditingName = false;\r
+selectElement = this.valueElement;\r
+}\r
+\r
+if (WebInspector.isBeingEdited(selectElement))\r
+return;\r
+\r
+var context = {\r
+expanded: this.expanded,\r
+hasChildren: this.hasChildren,\r
+keyDownListener: isEditingName ? this.editingNameKeyDown.bind(this) : this.editingValueKeyDown.bind(this),\r
+keyPressListener: isEditingName ? this.editingNameKeyPress.bind(this) : this.editingValueKeyPress.bind(this),\r
+isEditingName: isEditingName,\r
+};\r
+\r
+\r
+this.hasChildren = false;\r
+\r
+selectElement.addEventListener("keydown", context.keyDownListener, false);\r
+selectElement.addEventListener("keypress", context.keyPressListener, false);\r
+if (selectElement.parentElement)\r
+selectElement.parentElement.addStyleClass("child-editing");\r
+selectElement.textContent = selectElement.textContent; \r
+\r
+function shouldCommitValueSemicolon(text, cursorPosition)\r
+{\r
+\r
+var openQuote = "";\r
+for (var i = 0; i < cursorPosition; ++i) {\r
+var ch = text[i];\r
+if (ch === "\\" && openQuote !== "")\r
+++i; \r
+else if (!openQuote && (ch === "\"" || ch === "'"))\r
+openQuote = ch;\r
+else if (openQuote === ch)\r
+openQuote = "";\r
+}\r
+return !openQuote;\r
+}\r
+\r
+function nameValueFinishHandler(context, isEditingName, event)\r
+{\r
+\r
+var isFieldInputTerminated = (event.keyCode === WebInspector.KeyboardShortcut.Keys.Semicolon.code) &&\r
+(isEditingName ? event.shiftKey : (!event.shiftKey && shouldCommitValueSemicolon(event.target.textContent, event.target.selectionLeftOffset)));\r
+if (isEnterKey(event) || isFieldInputTerminated) {\r
+\r
+event.preventDefault();\r
+return "move-forward";\r
+} else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code)\r
+return "cancel";\r
+else if (event.keyIdentifier === "U+0009") \r
+return "move-" + (event.shiftKey ? "backward" : "forward");\r
+}\r
+\r
+WebInspector.startEditing(selectElement, {\r
+context: context,\r
+commitHandler: this.editingCommitted.bind(this),\r
+cancelHandler: this.editingCancelled.bind(this),\r
+customFinishHandler: nameValueFinishHandler.bind(this, context, isEditingName)\r
+});\r
+window.getSelection().setBaseAndExtent(selectElement, 0, selectElement, 1);\r
+},\r
+\r
+editingNameKeyPress: function(event)\r
+{\r
+\r
+var character = event.data.toLowerCase();\r
+if (character && /[a-z-]/.test(character)) {\r
+var selection = window.getSelection();\r
+var prefix = selection.anchorNode.textContent.substring(0, selection.anchorOffset);\r
+var property = WebInspector.cssNameCompletions.firstStartsWith(prefix + character);\r
+\r
+if (!selection.isCollapsed)\r
+selection.deleteFromDocument();\r
+\r
+this.restoreNameElement();\r
+\r
+if (property) {\r
+if (property !== this.nameElement.textContent)\r
+this.nameElement.textContent = property;\r
+this.nameElement.firstChild.select(prefix.length + 1);\r
+event.preventDefault();\r
+}\r
+}\r
+},\r
+\r
+editingValueKeyPress: function(event)\r
+{\r
+\r
+},\r
+\r
+editingNameKeyDown: function(event)\r
+{\r
+var showNext;\r
+if (event.keyIdentifier === "Up")\r
+showNext = false;\r
+else if (event.keyIdentifier === "Down")\r
+showNext = true;\r
+else\r
+return;\r
+\r
+var selection = window.getSelection();\r
+if (!selection.rangeCount)\r
+return;\r
+\r
+var selectionRange = selection.getRangeAt(0);\r
+if (selectionRange.commonAncestorContainer !== this.nameElement && !selectionRange.commonAncestorContainer.isDescendant(this.nameElement))\r
+return;\r
+\r
+const styleValueDelimeters = " \t\n\"':;,/()";\r
+var wordRange = selectionRange.startContainer.rangeOfWord(selectionRange.startOffset, styleValueDelimeters, this.nameElement);\r
+var wordString = wordRange.toString();\r
+var cursorPosition = selectionRange.startOffset != selectionRange.endOffset ? selectionRange.startOffset : 0;\r
+var prefix = selectionRange.startContainer.textContent.substring(0, cursorPosition);\r
+var property;\r
+\r
+if (showNext)\r
+property = WebInspector.cssNameCompletions.next(wordString, prefix);\r
+else\r
+property = WebInspector.cssNameCompletions.previous(wordString, prefix);\r
+\r
+if (property) {\r
+this.nameElement.textContent = property;\r
+this.nameElement.firstChild.select(cursorPosition);\r
+}\r
+event.preventDefault();\r
+},\r
+\r
+editingValueKeyDown: function(event)\r
+{\r
+var arrowKeyPressed = (event.keyIdentifier === "Up" || event.keyIdentifier === "Down");\r
+var pageKeyPressed = (event.keyIdentifier === "PageUp" || event.keyIdentifier === "PageDown");\r
+if (!arrowKeyPressed && !pageKeyPressed)\r
+return;\r
+\r
+var selection = window.getSelection();\r
+if (!selection.rangeCount)\r
+return;\r
+\r
+var selectionRange = selection.getRangeAt(0);\r
+if (selectionRange.commonAncestorContainer !== this.valueElement && !selectionRange.commonAncestorContainer.isDescendant(this.valueElement))\r
+return;\r
+\r
+const styleValueDelimeters = " \t\n\"':;,/()";\r
+var wordRange = selectionRange.startContainer.rangeOfWord(selectionRange.startOffset, styleValueDelimeters, this.valueElement);\r
+var wordString = wordRange.toString();\r
+var replacementString = wordString;\r
+\r
+var matches = /(.*?)(-?\d+(?:\.\d+)?)(.*)/.exec(wordString);\r
+if (matches && matches.length) {\r
+var prefix = matches[1];\r
+var number = parseFloat(matches[2]);\r
+var suffix = matches[3];\r
+\r
+\r
+var numberNearZero = (number < 1 && number > -1);\r
+if (number === 1 && event.keyIdentifier === "Down")\r
+numberNearZero = true;\r
+else if (number === -1 && event.keyIdentifier === "Up")\r
+numberNearZero = true;\r
+\r
+if (numberNearZero && event.altKey && arrowKeyPressed) {\r
+if (event.keyIdentifier === "Down")\r
+number = Math.ceil(number - 1);\r
+else\r
+number = Math.floor(number + 1);\r
+} else {\r
+\r
+\r
+var changeAmount = 1;\r
+if (event.shiftKey && pageKeyPressed)\r
+changeAmount = 100;\r
+else if (event.shiftKey || pageKeyPressed)\r
+changeAmount = 10;\r
+else if (event.altKey || numberNearZero)\r
+changeAmount = 0.1;\r
+\r
+if (event.keyIdentifier === "Down" || event.keyIdentifier === "PageDown")\r
+changeAmount *= -1;\r
+\r
+\r
+\r
+number = Number((number + changeAmount).toFixed(6));\r
+}\r
+\r
+replacementString = prefix + number + suffix;\r
+} else {\r
+\r
+}\r
+\r
+var replacementTextNode = document.createTextNode(replacementString);\r
+\r
+wordRange.deleteContents();\r
+wordRange.insertNode(replacementTextNode);\r
+\r
+var finalSelectionRange = document.createRange();\r
+finalSelectionRange.setStart(replacementTextNode, 0);\r
+finalSelectionRange.setEnd(replacementTextNode, replacementString.length);\r
+\r
+selection.removeAllRanges();\r
+selection.addRange(finalSelectionRange);\r
+\r
+event.preventDefault();\r
+\r
+if (!("originalPropertyText" in this)) {\r
+\r
+\r
+this.originalPropertyText = this.property.propertyText;\r
+}\r
+\r
+\r
+this.applyStyleText(this.nameElement.textContent + ": " + this.valueElement.textContent);\r
+},\r
+\r
+editingEnded: function(context)\r
+{\r
+this.hasChildren = context.hasChildren;\r
+if (context.expanded)\r
+this.expand();\r
+var editedElement = context.isEditingName ? this.nameElement : this.valueElement;\r
+editedElement.removeEventListener("keydown", context.keyDownListener, false);\r
+editedElement.removeEventListener("keypress", context.keyPressListener, false);\r
+if (editedElement.parentElement)\r
+editedElement.parentElement.removeStyleClass("child-editing");\r
+\r
+delete this.originalPropertyText;\r
+},\r
+\r
+editingCancelled: function(element, context)\r
+{\r
+if ("originalPropertyText" in this)\r
+this.applyStyleText(this.originalPropertyText, true);\r
+else {\r
+if (this._newProperty)\r
+this.treeOutline.removeChild(this);\r
+else\r
+this.updateTitle();\r
+}\r
+this.editingEnded(context);\r
+},\r
+\r
+editingCommitted: function(element, userInput, previousContent, context, moveDirection)\r
+{\r
+this.editingEnded(context);\r
+var isEditingName = context.isEditingName;\r
+\r
+\r
+var createNewProperty, moveToPropertyName, moveToSelector;\r
+var moveTo = this;\r
+var moveToOther = (isEditingName ^ (moveDirection === "forward"));\r
+var abandonNewProperty = this._newProperty && !userInput && (moveToOther || isEditingName);\r
+if (moveDirection === "forward" && !isEditingName || moveDirection === "backward" && isEditingName) {\r
+do {\r
+moveTo = (moveDirection === "forward" ? moveTo.nextSibling : moveTo.previousSibling);\r
+} while(moveTo && !moveTo.selectable);\r
+\r
+if (moveTo)\r
+moveToPropertyName = moveTo.name;\r
+else if (moveDirection === "forward" && (!this._newProperty || userInput))\r
+createNewProperty = true;\r
+else if (moveDirection === "backward" && this.treeOutline.section.rule)\r
+moveToSelector = true;\r
+}\r
+\r
+\r
+var blankInput = /^\s*$/.test(userInput);\r
+var shouldCommitNewProperty = this._newProperty && (moveToOther || (!moveDirection && !isEditingName) || (isEditingName && blankInput));\r
+\r
+if ((userInput !== previousContent && !this._newProperty) || shouldCommitNewProperty) {\r
+this.treeOutline.section._afterUpdate = moveToNextCallback.bind(this, this._newProperty, !blankInput, this.treeOutline.section);\r
+var propertyText;\r
+if (blankInput || (this._newProperty && /^\s*$/.test(this.valueElement.textContent)))\r
+propertyText = "";\r
+else {\r
+if (isEditingName)\r
+propertyText = userInput + ": " + this.valueElement.textContent;\r
+else\r
+propertyText = this.nameElement.textContent + ": " + userInput;\r
+}\r
+this.applyStyleText(propertyText, true);\r
+} else {\r
+if (!this._newProperty)\r
+this.updateTitle();\r
+moveToNextCallback(this._newProperty, false, this.treeOutline.section);\r
+}\r
+\r
+var moveToIndex = moveTo && this.treeOutline ? this.treeOutline.children.indexOf(moveTo) : -1;\r
+\r
+\r
+function moveToNextCallback(alreadyNew, valueChanged, section)\r
+{\r
+if (!moveDirection)\r
+return;\r
+\r
+\r
+if (moveTo && moveTo.parent) {\r
+moveTo.startEditing(!isEditingName ? moveTo.nameElement : moveTo.valueElement);\r
+return;\r
+}\r
+\r
+\r
+\r
+if (moveTo && !moveTo.parent) {\r
+var propertyElements = section.propertiesTreeOutline.children;\r
+if (moveDirection === "forward" && blankInput && !isEditingName)\r
+--moveToIndex;\r
+if (moveToIndex >= propertyElements.length && !this._newProperty)\r
+createNewProperty = true;\r
+else {\r
+var treeElement = moveToIndex >= 0 ? propertyElements[moveToIndex] : null;\r
+if (treeElement) {\r
+treeElement.startEditing(!isEditingName ? treeElement.nameElement : treeElement.valueElement);\r
+return;\r
+} else if (!alreadyNew)\r
+moveToSelector = true;\r
+}\r
+}\r
+\r
+\r
+if (createNewProperty) {\r
+if (alreadyNew && !valueChanged && (isEditingName ^ (moveDirection === "backward")))\r
+return;\r
+\r
+section.addNewBlankProperty().startEditing();\r
+return;\r
+}\r
+\r
+if (abandonNewProperty) {\r
+var sectionToEdit = moveDirection === "backward" ? section : section.nextEditableSibling();\r
+if (sectionToEdit && sectionToEdit.rule)\r
+sectionToEdit.startEditingSelector();\r
+return;\r
+}\r
+\r
+if (moveToSelector)\r
+section.startEditingSelector();\r
+}\r
+},\r
+\r
+applyStyleText: function(styleText, updateInterface)\r
+{\r
+var section = this.treeOutline.section;\r
+var elementsPanel = WebInspector.panels.elements;\r
+styleText = styleText.replace(/\s/g, " ").trim(); \r
+var styleTextLength = styleText.length;\r
+if (!styleTextLength && updateInterface && this._newProperty) {\r
+\r
+this.parent.removeChild(this);\r
+section.afterUpdate();\r
+return;\r
+}\r
+\r
+function callback(newStyle)\r
+{\r
+if (!newStyle) {\r
+\r
+\r
+\r
+if (this._newProperty) {\r
+this.parent.removeChild(this);\r
+return;\r
+}\r
+if (updateInterface)\r
+this.updateTitle();\r
+return;\r
+}\r
+\r
+this.style = newStyle;\r
+this.property = newStyle.propertyAt(this.property.index);\r
+this._styleRule.style = this.style;\r
+\r
+if (section && section.pane)\r
+section.pane.dispatchEventToListeners("style edited");\r
+\r
+if (updateInterface)\r
+this.updateAll(true);\r
+}\r
+\r
+\r
+\r
+if (styleText.length && !/;\s*$/.test(styleText))\r
+styleText += ";";\r
+this.property.setText(styleText, updateInterface, callback.bind(this));\r
+}\r
+}\r
+\r
+WebInspector.StylePropertyTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.PanelEnablerView = function(identifier, headingText, disclaimerText, buttonTitle)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("panel-enabler-view");\r
+this.element.addStyleClass(identifier);\r
+\r
+this.contentElement = document.createElement("div");\r
+this.contentElement.className = "panel-enabler-view-content";\r
+this.element.appendChild(this.contentElement);\r
+\r
+this.imageElement = document.createElement("img");\r
+this.contentElement.appendChild(this.imageElement);\r
+\r
+this.choicesForm = document.createElement("form");\r
+this.contentElement.appendChild(this.choicesForm);\r
+\r
+this.headerElement = document.createElement("h1");\r
+this.headerElement.textContent = headingText;\r
+this.choicesForm.appendChild(this.headerElement);\r
+\r
+var self = this;\r
+function enableOption(text, checked) {\r
+var label = document.createElement("label");\r
+var option = document.createElement("input");\r
+option.type = "radio";\r
+option.name = "enable-option";\r
+if (checked)\r
+option.checked = true;\r
+label.appendChild(option);\r
+label.appendChild(document.createTextNode(text));\r
+self.choicesForm.appendChild(label);\r
+return option;\r
+};\r
+\r
+this.enabledForSession = enableOption(WebInspector.UIString("Only enable for this session"), true);\r
+this.enabledAlways = enableOption(WebInspector.UIString("Always enable"));\r
+\r
+this.disclaimerElement = document.createElement("div");\r
+this.disclaimerElement.className = "panel-enabler-disclaimer";\r
+this.disclaimerElement.textContent = disclaimerText;\r
+this.choicesForm.appendChild(this.disclaimerElement);\r
+\r
+this.enableButton = document.createElement("button");\r
+this.enableButton.setAttribute("type", "button");\r
+this.enableButton.textContent = buttonTitle;\r
+this.enableButton.addEventListener("click", this._enableButtonCicked.bind(this), false);\r
+this.choicesForm.appendChild(this.enableButton);\r
+}\r
+\r
+WebInspector.PanelEnablerView.prototype = {\r
+_enableButtonCicked: function()\r
+{\r
+this.dispatchEventToListeners("enable clicked");\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+\r
+setTimeout(this.resize.bind(this), 0);\r
+},\r
+\r
+resize: function()\r
+{\r
+this.imageElement.removeStyleClass("hidden");\r
+\r
+if (this.element.offsetWidth < (this.choicesForm.offsetWidth + this.imageElement.offsetWidth))\r
+this.imageElement.addStyleClass("hidden");\r
+},\r
+\r
+get alwaysEnabled() {\r
+return this.enabledAlways.checked;\r
+}\r
+}\r
+\r
+WebInspector.PanelEnablerView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.WelcomeView = function(identifier, headingText, instructionsText)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("panel-enabler-view");\r
+this.element.addStyleClass(identifier);\r
+this.element.addStyleClass("welcome");\r
+\r
+this.contentElement = document.createElement("div");\r
+this.contentElement.className = "panel-enabler-view-content";\r
+this.element.appendChild(this.contentElement);\r
+\r
+this.alignerElement = document.createElement("div");\r
+this.alignerElement.className = "welcome-instructions-aligner";\r
+this.contentElement.appendChild(this.alignerElement);\r
+\r
+this.instructionsElement = document.createElement("div");\r
+this.instructionsElement.className = "instructions";\r
+this.contentElement.appendChild(this.instructionsElement);\r
+\r
+this.headerElement = document.createElement("h1");\r
+this.headerElement.textContent = headingText;\r
+this.instructionsElement.appendChild(this.headerElement);\r
+\r
+if (instructionsText)\r
+this.addMessage(instructionsText);\r
+}\r
+\r
+WebInspector.WelcomeView.prototype = {\r
+addMessage: function(message)\r
+{\r
+var messageElement = document.createElement("div");\r
+messageElement.className = "message";\r
+if (typeof message == "string")\r
+\r
+\r
+messageElement.innerHTML = message;\r
+else\r
+messageElement.appendChild(message);\r
+this.instructionsElement.appendChild(messageElement);\r
+}\r
+}\r
+\r
+WebInspector.WelcomeView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.StatusBarButton = function(title, className, states)\r
+{\r
+this.element = document.createElement("button");\r
+this.element.className = className + " status-bar-item";\r
+this.element.addEventListener("click", this._clicked.bind(this), false);\r
+\r
+this.glyph = document.createElement("div");\r
+this.glyph.className = "glyph";\r
+this.element.appendChild(this.glyph);\r
+\r
+this.glyphShadow = document.createElement("div");\r
+this.glyphShadow.className = "glyph shadow";\r
+this.element.appendChild(this.glyphShadow);\r
+\r
+this.states = states;\r
+if (!states)\r
+this.states = 2;\r
+\r
+if (states == 2)\r
+this._state = false;\r
+else\r
+this._state = 0;\r
+\r
+this.title = title;\r
+this.disabled = false;\r
+this._visible = true;\r
+}\r
+\r
+WebInspector.StatusBarButton.prototype = {\r
+_clicked: function()\r
+{\r
+this.dispatchEventToListeners("click");\r
+},\r
+\r
+get disabled()\r
+{\r
+return this._disabled;\r
+},\r
+\r
+set disabled(x)\r
+{\r
+if (this._disabled === x)\r
+return;\r
+this._disabled = x;\r
+this.element.disabled = x;\r
+},\r
+\r
+get title()\r
+{\r
+return this._title;\r
+},\r
+\r
+set title(x)\r
+{\r
+if (this._title === x)\r
+return;\r
+this._title = x;\r
+this.element.title = x;\r
+},\r
+\r
+get state()\r
+{\r
+return this._state;\r
+},\r
+\r
+set state(x)\r
+{\r
+if (this._state === x)\r
+return;\r
+\r
+if (this.states === 2) {\r
+if (x)\r
+this.element.addStyleClass("toggled-on");\r
+else\r
+this.element.removeStyleClass("toggled-on");\r
+} else {\r
+if (x !== 0) {\r
+this.element.removeStyleClass("toggled-" + this._state);\r
+this.element.addStyleClass("toggled-" + x);\r
+} else \r
+this.element.removeStyleClass("toggled-" + this._state);\r
+}\r
+this._state = x;\r
+},\r
+\r
+get toggled()\r
+{\r
+if (this.states !== 2)\r
+throw("Only used toggled when there are 2 states, otherwise, use state");\r
+return this.state;\r
+},\r
+\r
+set toggled(x)\r
+{\r
+if (this.states !== 2)\r
+throw("Only used toggled when there are 2 states, otherwise, use state");\r
+this.state = x;\r
+},\r
+\r
+get visible()\r
+{\r
+return this._visible;\r
+},\r
+\r
+set visible(x)\r
+{\r
+if (this._visible === x)\r
+return;\r
+\r
+if (x)\r
+this.element.removeStyleClass("hidden");\r
+else\r
+this.element.addStyleClass("hidden");\r
+this._visible = x;\r
+}\r
+}\r
+\r
+WebInspector.StatusBarButton.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SummaryBar = function(categories)\r
+{\r
+this.categories = categories;\r
+\r
+this.element = document.createElement("div");\r
+this.element.className = "summary-bar";\r
+\r
+this.graphElement = document.createElement("canvas");\r
+this.graphElement.setAttribute("width", "450");\r
+this.graphElement.setAttribute("height", "38");\r
+this.graphElement.className = "summary-graph";\r
+this.element.appendChild(this.graphElement);\r
+\r
+this.legendElement = document.createElement("div");\r
+this.legendElement.className = "summary-graph-legend";\r
+this.element.appendChild(this.legendElement);\r
+}\r
+\r
+WebInspector.SummaryBar.prototype = {\r
+\r
+get calculator() {\r
+return this._calculator;\r
+},\r
+\r
+set calculator(x) {\r
+this._calculator = x;\r
+},\r
+\r
+reset: function()\r
+{\r
+this.legendElement.removeChildren();\r
+this._drawSummaryGraph();\r
+},\r
+\r
+update: function(data)\r
+{\r
+var graphInfo = this.calculator.computeSummaryValues(data);\r
+\r
+var fillSegments = [];\r
+\r
+this.legendElement.removeChildren();\r
+\r
+for (var category in this.categories) {\r
+var size = graphInfo.categoryValues[category];\r
+if (!size)\r
+continue;\r
+\r
+var colorString = this.categories[category].color;\r
+\r
+var fillSegment = {color: colorString, value: size};\r
+fillSegments.push(fillSegment);\r
+\r
+var legendLabel = this._makeLegendElement(this.categories[category].title, this.calculator.formatValue(size), colorString);\r
+this.legendElement.appendChild(legendLabel);\r
+}\r
+\r
+if (graphInfo.total) {\r
+var totalLegendLabel = this._makeLegendElement(WebInspector.UIString("Total"), this.calculator.formatValue(graphInfo.total));\r
+totalLegendLabel.addStyleClass("total");\r
+this.legendElement.appendChild(totalLegendLabel);\r
+}\r
+\r
+this._drawSummaryGraph(fillSegments);\r
+},\r
+\r
+_drawSwatch: function(canvas, color)\r
+{\r
+var ctx = canvas.getContext("2d");\r
+\r
+function drawSwatchSquare() {\r
+ctx.fillStyle = color;\r
+ctx.fillRect(0, 0, 13, 13);\r
+\r
+var gradient = ctx.createLinearGradient(0, 0, 13, 13);\r
+gradient.addColorStop(0.0, "rgba(255, 255, 255, 0.2)");\r
+gradient.addColorStop(1.0, "rgba(255, 255, 255, 0.0)");\r
+\r
+ctx.fillStyle = gradient;\r
+ctx.fillRect(0, 0, 13, 13);\r
+\r
+gradient = ctx.createLinearGradient(13, 13, 0, 0);\r
+gradient.addColorStop(0.0, "rgba(0, 0, 0, 0.2)");\r
+gradient.addColorStop(1.0, "rgba(0, 0, 0, 0.0)");\r
+\r
+ctx.fillStyle = gradient;\r
+ctx.fillRect(0, 0, 13, 13);\r
+\r
+ctx.strokeStyle = "rgba(0, 0, 0, 0.6)";\r
+ctx.strokeRect(0.5, 0.5, 12, 12);\r
+}\r
+\r
+ctx.clearRect(0, 0, 13, 24);\r
+\r
+drawSwatchSquare();\r
+\r
+ctx.save();\r
+\r
+ctx.translate(0, 25);\r
+ctx.scale(1, -1);\r
+\r
+drawSwatchSquare();\r
+\r
+ctx.restore();\r
+\r
+this._fadeOutRect(ctx, 0, 13, 13, 13, 0.5, 0.0);\r
+},\r
+\r
+_drawSummaryGraph: function(segments)\r
+{\r
+if (!segments || !segments.length) {\r
+segments = [{color: "white", value: 1}];\r
+this._showingEmptySummaryGraph = true;\r
+} else\r
+delete this._showingEmptySummaryGraph;\r
+\r
+\r
+var total = 0;\r
+for (var i = 0; i < segments.length; ++i)\r
+total += segments[i].value;\r
+\r
+\r
+var percents = segments.map(function(s) { return Math.max(Math.round(100 * s.value / total), 1) });\r
+\r
+\r
+var percentTotal = 0;\r
+for (var i = 0; i < percents.length; ++i)\r
+percentTotal += percents[i];\r
+\r
+\r
+\r
+while (percentTotal > 100) {\r
+for (var i = 0; i < percents.length && percentTotal > 100; ++i) {\r
+if (percents[i] > 1) {\r
+--percents[i];\r
+--percentTotal;\r
+}\r
+}\r
+}\r
+\r
+\r
+\r
+while (percentTotal < 100) {\r
+for (var i = 0; i < percents.length && percentTotal < 100; ++i) {\r
+++percents[i];\r
+++percentTotal;\r
+}\r
+}\r
+\r
+var ctx = this.graphElement.getContext("2d");\r
+\r
+var x = 0;\r
+var y = 0;\r
+var w = 450;\r
+var h = 19;\r
+var r = (h / 2);\r
+\r
+function drawPillShadow()\r
+{\r
+\r
+\r
+\r
+\r
+\r
+ctx.beginPath();\r
+ctx.moveTo(x + 4, y + h - 3 - 0.5);\r
+ctx.lineTo(x + w - 4, y + h - 3 - 0.5);\r
+ctx.closePath();\r
+\r
+ctx.save();\r
+\r
+ctx.shadowBlur = 2;\r
+ctx.shadowColor = "rgba(0, 0, 0, 0.5)";\r
+ctx.shadowOffsetX = 3;\r
+ctx.shadowOffsetY = 5;\r
+\r
+ctx.strokeStyle = "white";\r
+ctx.lineWidth = 1;\r
+\r
+ctx.stroke();\r
+\r
+ctx.shadowOffsetX = -3;\r
+\r
+ctx.stroke();\r
+\r
+ctx.restore();\r
+\r
+ctx.save();\r
+\r
+ctx.globalCompositeOperation = "destination-out";\r
+ctx.strokeStyle = "rgba(0, 0, 0, 1)";\r
+ctx.lineWidth = 1;\r
+\r
+ctx.stroke();\r
+\r
+ctx.restore();\r
+}\r
+\r
+function drawPill()\r
+{\r
+\r
+ctx.beginPath();\r
+ctx.moveTo(x, y + r);\r
+ctx.lineTo(x, y + h - r);\r
+ctx.arc(x + r, y + h - r, r, Math.PI, Math.PI / 2, true);\r
+ctx.lineTo(x + w - r, y + h);\r
+ctx.arc(x + w - r, y + h - r, r, Math.PI / 2, 0, true);\r
+ctx.lineTo(x + w, y + r);\r
+ctx.arc(x + w - r, y + r, r, 0, 3 * Math.PI / 2, true);\r
+ctx.lineTo(x + r, y);\r
+ctx.arc(x + r, y + r, r, Math.PI / 2, Math.PI, true);\r
+ctx.closePath();\r
+\r
+\r
+ctx.save();\r
+ctx.clip();\r
+\r
+\r
+var previousSegmentsWidth = 0;\r
+for (var i = 0; i < segments.length; ++i) {\r
+var segmentWidth = Math.round(w * percents[i] / 100);\r
+ctx.fillStyle = segments[i].color;\r
+ctx.fillRect(x + previousSegmentsWidth, y, segmentWidth, h);\r
+previousSegmentsWidth += segmentWidth;\r
+}\r
+\r
+\r
+ctx.lineWidth = 1;\r
+for (var i = 1; i < 20; ++i) {\r
+ctx.beginPath();\r
+ctx.moveTo(x + (i * Math.round(w / 20)) + 0.5, y);\r
+ctx.lineTo(x + (i * Math.round(w / 20)) + 0.5, y + h);\r
+ctx.closePath();\r
+\r
+ctx.strokeStyle = "rgba(0, 0, 0, 0.2)";\r
+ctx.stroke();\r
+\r
+ctx.beginPath();\r
+ctx.moveTo(x + (i * Math.round(w / 20)) + 1.5, y);\r
+ctx.lineTo(x + (i * Math.round(w / 20)) + 1.5, y + h);\r
+ctx.closePath();\r
+\r
+ctx.strokeStyle = "rgba(255, 255, 255, 0.2)";\r
+ctx.stroke();\r
+}\r
+\r
+\r
+var lightGradient = ctx.createLinearGradient(x, y, x, y + (h / 1.5));\r
+lightGradient.addColorStop(0.0, "rgba(220, 220, 220, 0.6)");\r
+lightGradient.addColorStop(0.4, "rgba(220, 220, 220, 0.2)");\r
+lightGradient.addColorStop(1.0, "rgba(255, 255, 255, 0.0)");\r
+\r
+var darkGradient = ctx.createLinearGradient(x, y + (h / 3), x, y + h);\r
+darkGradient.addColorStop(0.0, "rgba(0, 0, 0, 0.0)");\r
+darkGradient.addColorStop(0.8, "rgba(0, 0, 0, 0.2)");\r
+darkGradient.addColorStop(1.0, "rgba(0, 0, 0, 0.5)");\r
+\r
+ctx.fillStyle = darkGradient;\r
+ctx.fillRect(x, y, w, h);\r
+\r
+ctx.fillStyle = lightGradient;\r
+ctx.fillRect(x, y, w, h);\r
+\r
+ctx.restore();\r
+}\r
+\r
+ctx.clearRect(x, y, w, (h * 2));\r
+\r
+drawPillShadow();\r
+drawPill();\r
+\r
+ctx.save();\r
+\r
+ctx.translate(0, (h * 2) + 1);\r
+ctx.scale(1, -1);\r
+\r
+drawPill();\r
+\r
+ctx.restore();\r
+\r
+this._fadeOutRect(ctx, x, y + h + 1, w, h, 0.5, 0.0);\r
+},\r
+\r
+_fadeOutRect: function(ctx, x, y, w, h, a1, a2)\r
+{\r
+ctx.save();\r
+\r
+var gradient = ctx.createLinearGradient(x, y, x, y + h);\r
+gradient.addColorStop(0.0, "rgba(0, 0, 0, " + (1.0 - a1) + ")");\r
+gradient.addColorStop(0.8, "rgba(0, 0, 0, " + (1.0 - a2) + ")");\r
+gradient.addColorStop(1.0, "rgba(0, 0, 0, 1.0)");\r
+\r
+ctx.globalCompositeOperation = "destination-out";\r
+\r
+ctx.fillStyle = gradient;\r
+ctx.fillRect(x, y, w, h);\r
+\r
+ctx.restore();\r
+},\r
+\r
+_makeLegendElement: function(label, value, color)\r
+{\r
+var legendElement = document.createElement("label");\r
+legendElement.className = "summary-graph-legend-item";\r
+\r
+if (color) {\r
+var swatch = document.createElement("canvas");\r
+swatch.className = "summary-graph-legend-swatch";\r
+swatch.setAttribute("width", "13");\r
+swatch.setAttribute("height", "24");\r
+\r
+legendElement.appendChild(swatch);\r
+\r
+this._drawSwatch(swatch, color);\r
+}\r
+\r
+var labelElement = document.createElement("div");\r
+labelElement.className = "summary-graph-legend-label";\r
+legendElement.appendChild(labelElement);\r
+\r
+var headerElement = document.createElement("div");\r
+headerElement.className = "summary-graph-legend-header";\r
+headerElement.textContent = label;\r
+labelElement.appendChild(headerElement);\r
+\r
+var valueElement = document.createElement("div");\r
+valueElement.className = "summary-graph-legend-value";\r
+valueElement.textContent = value;\r
+labelElement.appendChild(valueElement);\r
+\r
+return legendElement;\r
+}\r
+}\r
+\r
+WebInspector.SummaryBar.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ElementsPanel = function()\r
+{\r
+WebInspector.Panel.call(this, "elements");\r
+\r
+this.contentElement = document.createElement("div");\r
+this.contentElement.id = "elements-content";\r
+this.contentElement.className = "outline-disclosure source-code";\r
+\r
+this.treeOutline = new WebInspector.ElementsTreeOutline();\r
+this.treeOutline.panel = this;\r
+this.treeOutline.includeRootDOMNode = false;\r
+this.treeOutline.selectEnabled = true;\r
+\r
+this.treeOutline.focusedNodeChanged = function(forceUpdate)\r
+{\r
+if (this.panel.visible && WebInspector.currentFocusElement !== document.getElementById("search"))\r
+WebInspector.currentFocusElement = this.element;\r
+\r
+this.panel.updateBreadcrumb(forceUpdate);\r
+\r
+for (var pane in this.panel.sidebarPanes)\r
+this.panel.sidebarPanes[pane].needsUpdate = true;\r
+\r
+this.panel.updateStyles(true);\r
+this.panel.updateMetrics();\r
+this.panel.updateProperties();\r
+this.panel.updateEventListeners();\r
+\r
+if (this._focusedDOMNode) {\r
+InspectorBackend.addInspectedNode(this._focusedDOMNode.id);\r
+WebInspector.extensionServer.notifyObjectSelected(this.panel.name);\r
+}\r
+};\r
+\r
+this.contentElement.appendChild(this.treeOutline.element);\r
+\r
+this.crumbsElement = document.createElement("div");\r
+this.crumbsElement.className = "crumbs";\r
+this.crumbsElement.addEventListener("mousemove", this._mouseMovedInCrumbs.bind(this), false);\r
+this.crumbsElement.addEventListener("mouseout", this._mouseMovedOutOfCrumbs.bind(this), false);\r
+\r
+this.sidebarPanes = {};\r
+this.sidebarPanes.computedStyle = new WebInspector.ComputedStyleSidebarPane();\r
+this.sidebarPanes.styles = new WebInspector.StylesSidebarPane(this.sidebarPanes.computedStyle);\r
+this.sidebarPanes.metrics = new WebInspector.MetricsSidebarPane();\r
+this.sidebarPanes.properties = new WebInspector.PropertiesSidebarPane();\r
+if (Preferences.nativeInstrumentationEnabled)\r
+this.sidebarPanes.domBreakpoints = WebInspector.createDOMBreakpointsSidebarPane();\r
+this.sidebarPanes.eventListeners = new WebInspector.EventListenersSidebarPane();\r
+\r
+this.sidebarPanes.styles.onexpand = this.updateStyles.bind(this);\r
+this.sidebarPanes.metrics.onexpand = this.updateMetrics.bind(this);\r
+this.sidebarPanes.properties.onexpand = this.updateProperties.bind(this);\r
+this.sidebarPanes.eventListeners.onexpand = this.updateEventListeners.bind(this);\r
+\r
+this.sidebarPanes.styles.expanded = true;\r
+\r
+this.sidebarPanes.styles.addEventListener("style edited", this._stylesPaneEdited, this);\r
+this.sidebarPanes.styles.addEventListener("style property toggled", this._stylesPaneEdited, this);\r
+this.sidebarPanes.metrics.addEventListener("metrics edited", this._metricsPaneEdited, this);\r
+WebInspector.cssModel.addEventListener("stylesheet changed", this._styleSheetChanged, this);\r
+\r
+this.sidebarElement = document.createElement("div");\r
+this.sidebarElement.id = "elements-sidebar";\r
+\r
+for (var pane in this.sidebarPanes)\r
+this.sidebarElement.appendChild(this.sidebarPanes[pane].element);\r
+\r
+this.sidebarResizeElement = document.createElement("div");\r
+this.sidebarResizeElement.className = "sidebar-resizer-vertical";\r
+this.sidebarResizeElement.addEventListener("mousedown", this.rightSidebarResizerDragStart.bind(this), false);\r
+\r
+this._nodeSearchButton = new WebInspector.StatusBarButton(WebInspector.UIString("Select an element in the page to inspect it."), "node-search-status-bar-item");\r
+this._nodeSearchButton.addEventListener("click", this.toggleSearchingForNode.bind(this), false);\r
+\r
+this.element.appendChild(this.contentElement);\r
+this.element.appendChild(this.sidebarElement);\r
+this.element.appendChild(this.sidebarResizeElement);\r
+\r
+this._registerShortcuts();\r
+\r
+this.reset();\r
+}\r
+\r
+WebInspector.ElementsPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Elements");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this._nodeSearchButton.element, this.crumbsElement];\r
+},\r
+\r
+get defaultFocusedElement()\r
+{\r
+return this.treeOutline.element;\r
+},\r
+\r
+updateStatusBarItems: function()\r
+{\r
+this.updateBreadcrumbSizes();\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+this.sidebarResizeElement.style.right = (this.sidebarElement.offsetWidth - 3) + "px";\r
+this.updateBreadcrumb();\r
+this.treeOutline.updateSelection();\r
+if (this.recentlyModifiedNodes.length)\r
+this.updateModifiedNodes();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.Panel.prototype.hide.call(this);\r
+\r
+WebInspector.highlightDOMNode(0);\r
+this.setSearchingForNode(false);\r
+},\r
+\r
+resize: function()\r
+{\r
+this.treeOutline.updateSelection();\r
+this.updateBreadcrumbSizes();\r
+},\r
+\r
+reset: function()\r
+{\r
+if (this.focusedDOMNode)\r
+this._selectedPathOnReset = this.focusedDOMNode.path();\r
+\r
+this.rootDOMNode = null;\r
+this.focusedDOMNode = null;\r
+\r
+WebInspector.highlightDOMNode(0);\r
+\r
+this.recentlyModifiedNodes = [];\r
+\r
+delete this.currentQuery;\r
+},\r
+\r
+setDocument: function(inspectedRootDocument)\r
+{\r
+this.reset();\r
+this.searchCanceled();\r
+\r
+if (!inspectedRootDocument)\r
+return;\r
+\r
+inspectedRootDocument.addEventListener("DOMNodeInserted", this._nodeInserted.bind(this));\r
+inspectedRootDocument.addEventListener("DOMNodeRemoved", this._nodeRemoved.bind(this));\r
+inspectedRootDocument.addEventListener("DOMAttrModified", this._attributesUpdated.bind(this));\r
+inspectedRootDocument.addEventListener("DOMCharacterDataModified", this._characterDataModified.bind(this));\r
+\r
+this.rootDOMNode = inspectedRootDocument;\r
+\r
+function selectNode(candidateFocusNode)\r
+{\r
+if (!candidateFocusNode)\r
+candidateFocusNode = inspectedRootDocument.body || inspectedRootDocument.documentElement;\r
+\r
+if (!candidateFocusNode)\r
+return;\r
+\r
+this.focusedDOMNode = candidateFocusNode;\r
+if (this.treeOutline.selectedTreeElement)\r
+this.treeOutline.selectedTreeElement.expand();\r
+}\r
+\r
+function selectLastSelectedNode(nodeId)\r
+{\r
+if (this.focusedDOMNode) {\r
+\r
+return;\r
+}\r
+var node = nodeId ? WebInspector.domAgent.nodeForId(nodeId) : 0;\r
+selectNode.call(this, node);\r
+}\r
+\r
+if (this._selectedPathOnReset)\r
+InspectorBackend.pushNodeByPathToFrontend(this._selectedPathOnReset, selectLastSelectedNode.bind(this));\r
+else\r
+selectNode.call(this);\r
+delete this._selectedPathOnReset;\r
+},\r
+\r
+searchCanceled: function()\r
+{\r
+delete this._searchQuery;\r
+this._hideSearchHighlights();\r
+\r
+WebInspector.updateSearchMatchesCount(0, this);\r
+\r
+this._currentSearchResultIndex = 0;\r
+this._searchResults = [];\r
+InspectorBackend.searchCanceled();\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+\r
+this.searchCanceled();\r
+\r
+const whitespaceTrimmedQuery = query.trim();\r
+if (!whitespaceTrimmedQuery.length)\r
+return;\r
+\r
+this._updatedMatchCountOnce = false;\r
+this._matchesCountUpdateTimeout = null;\r
+this._searchQuery = query;\r
+\r
+InspectorBackend.performSearch(whitespaceTrimmedQuery, false);\r
+},\r
+\r
+populateHrefContextMenu: function(contextMenu, event, anchorElement)\r
+{\r
+if (!anchorElement.href)\r
+return false;\r
+\r
+var resourceURL = WebInspector.resourceURLForRelatedNode(this.focusedDOMNode, anchorElement.href);\r
+if (!resourceURL)\r
+return false;\r
+\r
+\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Open Link in New Window"), WebInspector.openResource.bind(null, resourceURL, false));\r
+if (WebInspector.resourceForURL(resourceURL))\r
+contextMenu.appendItem(WebInspector.UIString("Open Link in Resources Panel"), WebInspector.openResource.bind(null, resourceURL, true));\r
+return true;\r
+},\r
+\r
+_updateMatchesCount: function()\r
+{\r
+WebInspector.updateSearchMatchesCount(this._searchResults.length, this);\r
+this._matchesCountUpdateTimeout = null;\r
+this._updatedMatchCountOnce = true;\r
+},\r
+\r
+_updateMatchesCountSoon: function()\r
+{\r
+if (!this._updatedMatchCountOnce)\r
+return this._updateMatchesCount();\r
+if (this._matchesCountUpdateTimeout)\r
+return;\r
+\r
+this._matchesCountUpdateTimeout = setTimeout(this._updateMatchesCount.bind(this), 500);\r
+},\r
+\r
+addNodesToSearchResult: function(nodeIds)\r
+{\r
+if (!nodeIds.length)\r
+return;\r
+\r
+for (var i = 0; i < nodeIds.length; ++i) {\r
+var nodeId = nodeIds[i];\r
+var node = WebInspector.domAgent.nodeForId(nodeId);\r
+if (!node)\r
+continue;\r
+\r
+this._currentSearchResultIndex = 0;\r
+this._searchResults.push(node);\r
+}\r
+this._highlightCurrentSearchResult();\r
+this._updateMatchesCountSoon();\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+\r
+if (++this._currentSearchResultIndex >= this._searchResults.length)\r
+this._currentSearchResultIndex = 0;\r
+this._highlightCurrentSearchResult();\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+\r
+if (--this._currentSearchResultIndex < 0)\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+this._highlightCurrentSearchResult();\r
+},\r
+\r
+_highlightCurrentSearchResult: function()\r
+{\r
+this._hideSearchHighlights();\r
+var node = this._searchResults[this._currentSearchResultIndex];\r
+var treeElement = this.treeOutline.findTreeElement(node);\r
+if (treeElement) {\r
+treeElement.highlightSearchResults(this._searchQuery);\r
+treeElement.reveal();\r
+}\r
+},\r
+\r
+_hideSearchHighlights: function(node)\r
+{\r
+for (var i = 0; this._searchResults && i < this._searchResults.length; ++i) {\r
+var node = this._searchResults[i];\r
+var treeElement = this.treeOutline.findTreeElement(node);\r
+if (treeElement)\r
+treeElement.highlightSearchResults(null);\r
+}\r
+},\r
+\r
+renameSelector: function(oldIdentifier, newIdentifier, oldSelector, newSelector)\r
+{\r
+\r
+},\r
+\r
+get rootDOMNode()\r
+{\r
+return this.treeOutline.rootDOMNode;\r
+},\r
+\r
+set rootDOMNode(x)\r
+{\r
+this.treeOutline.rootDOMNode = x;\r
+},\r
+\r
+get focusedDOMNode()\r
+{\r
+return this.treeOutline.focusedDOMNode;\r
+},\r
+\r
+set focusedDOMNode(x)\r
+{\r
+this.treeOutline.focusedDOMNode = x;\r
+},\r
+\r
+_attributesUpdated: function(event)\r
+{\r
+this.recentlyModifiedNodes.push({node: event.target, updated: true});\r
+if (this.visible)\r
+this._updateModifiedNodesSoon();\r
+},\r
+\r
+_characterDataModified: function(event)\r
+{\r
+this.recentlyModifiedNodes.push({node: event.target, updated: true});\r
+if (this.visible)\r
+this._updateModifiedNodesSoon();\r
+},\r
+\r
+_nodeInserted: function(event)\r
+{\r
+this.recentlyModifiedNodes.push({node: event.target, parent: event.relatedNode, inserted: true});\r
+if (this.visible)\r
+this._updateModifiedNodesSoon();\r
+},\r
+\r
+_nodeRemoved: function(event)\r
+{\r
+this.recentlyModifiedNodes.push({node: event.target, parent: event.relatedNode, removed: true});\r
+if (this.visible)\r
+this._updateModifiedNodesSoon();\r
+},\r
+\r
+_updateModifiedNodesSoon: function()\r
+{\r
+if ("_updateModifiedNodesTimeout" in this)\r
+return;\r
+this._updateModifiedNodesTimeout = setTimeout(this.updateModifiedNodes.bind(this), 0);\r
+},\r
+\r
+updateModifiedNodes: function()\r
+{\r
+if ("_updateModifiedNodesTimeout" in this) {\r
+clearTimeout(this._updateModifiedNodesTimeout);\r
+delete this._updateModifiedNodesTimeout;\r
+}\r
+\r
+var updatedParentTreeElements = [];\r
+var updateBreadcrumbs = false;\r
+\r
+for (var i = 0; i < this.recentlyModifiedNodes.length; ++i) {\r
+var replaced = this.recentlyModifiedNodes[i].replaced;\r
+var parent = this.recentlyModifiedNodes[i].parent;\r
+var node = this.recentlyModifiedNodes[i].node;\r
+\r
+if (this.recentlyModifiedNodes[i].updated) {\r
+var nodeItem = this.treeOutline.findTreeElement(node);\r
+if (nodeItem)\r
+nodeItem.updateTitle();\r
+continue;\r
+}\r
+\r
+if (!parent)\r
+continue;\r
+\r
+var parentNodeItem = this.treeOutline.findTreeElement(parent);\r
+if (parentNodeItem && !parentNodeItem.alreadyUpdatedChildren) {\r
+parentNodeItem.updateChildren(replaced);\r
+parentNodeItem.alreadyUpdatedChildren = true;\r
+updatedParentTreeElements.push(parentNodeItem);\r
+}\r
+\r
+if (!updateBreadcrumbs && (this.focusedDOMNode === parent || isAncestorNode(this.focusedDOMNode, parent)))\r
+updateBreadcrumbs = true;\r
+}\r
+\r
+for (var i = 0; i < updatedParentTreeElements.length; ++i)\r
+delete updatedParentTreeElements[i].alreadyUpdatedChildren;\r
+\r
+this.recentlyModifiedNodes = [];\r
+\r
+if (updateBreadcrumbs)\r
+this.updateBreadcrumb(true);\r
+},\r
+\r
+_stylesPaneEdited: function()\r
+{\r
+\r
+this.sidebarPanes.metrics.needsUpdate = true;\r
+this.updateMetrics();\r
+},\r
+\r
+_metricsPaneEdited: function()\r
+{\r
+\r
+this.sidebarPanes.styles.needsUpdate = true;\r
+this.updateStyles(true);\r
+},\r
+\r
+_styleSheetChanged: function()\r
+{\r
+this._metricsPaneEdited();\r
+this._stylesPaneEdited();\r
+},\r
+\r
+_mouseMovedInCrumbs: function(event)\r
+{\r
+var nodeUnderMouse = document.elementFromPoint(event.pageX, event.pageY);\r
+var crumbElement = nodeUnderMouse.enclosingNodeOrSelfWithClass("crumb");\r
+\r
+WebInspector.highlightDOMNode(crumbElement ? crumbElement.representedObject.id : 0);\r
+\r
+if ("_mouseOutOfCrumbsTimeout" in this) {\r
+clearTimeout(this._mouseOutOfCrumbsTimeout);\r
+delete this._mouseOutOfCrumbsTimeout;\r
+}\r
+},\r
+\r
+_mouseMovedOutOfCrumbs: function(event)\r
+{\r
+var nodeUnderMouse = document.elementFromPoint(event.pageX, event.pageY);\r
+if (nodeUnderMouse && nodeUnderMouse.isDescendant(this.crumbsElement))\r
+return;\r
+\r
+WebInspector.highlightDOMNode(0);\r
+\r
+this._mouseOutOfCrumbsTimeout = setTimeout(this.updateBreadcrumbSizes.bind(this), 1000);\r
+},\r
+\r
+updateBreadcrumb: function(forceUpdate)\r
+{\r
+if (!this.visible)\r
+return;\r
+\r
+var crumbs = this.crumbsElement;\r
+\r
+var handled = false;\r
+var foundRoot = false;\r
+var crumb = crumbs.firstChild;\r
+while (crumb) {\r
+if (crumb.representedObject === this.rootDOMNode)\r
+foundRoot = true;\r
+\r
+if (foundRoot)\r
+crumb.addStyleClass("dimmed");\r
+else\r
+crumb.removeStyleClass("dimmed");\r
+\r
+if (crumb.representedObject === this.focusedDOMNode) {\r
+crumb.addStyleClass("selected");\r
+handled = true;\r
+} else {\r
+crumb.removeStyleClass("selected");\r
+}\r
+\r
+crumb = crumb.nextSibling;\r
+}\r
+\r
+if (handled && !forceUpdate) {\r
+\r
+\r
+this.updateBreadcrumbSizes();\r
+return;\r
+}\r
+\r
+crumbs.removeChildren();\r
+\r
+var panel = this;\r
+\r
+function selectCrumbFunction(event)\r
+{\r
+var crumb = event.currentTarget;\r
+if (crumb.hasStyleClass("collapsed")) {\r
+\r
+if (crumb === panel.crumbsElement.firstChild) {\r
+\r
+\r
+var currentCrumb = crumb;\r
+while (currentCrumb) {\r
+var hidden = currentCrumb.hasStyleClass("hidden");\r
+var collapsed = currentCrumb.hasStyleClass("collapsed");\r
+if (!hidden && !collapsed)\r
+break;\r
+crumb = currentCrumb;\r
+currentCrumb = currentCrumb.nextSibling;\r
+}\r
+}\r
+\r
+panel.updateBreadcrumbSizes(crumb);\r
+} else {\r
+\r
+\r
+if (event.detail >= 2 || crumb.hasStyleClass("dimmed"))\r
+panel.rootDOMNode = crumb.representedObject.parentNode;\r
+panel.focusedDOMNode = crumb.representedObject;\r
+}\r
+\r
+event.preventDefault();\r
+}\r
+\r
+foundRoot = false;\r
+for (var current = this.focusedDOMNode; current; current = current.parentNode) {\r
+if (current.nodeType === Node.DOCUMENT_NODE)\r
+continue;\r
+\r
+if (current === this.rootDOMNode)\r
+foundRoot = true;\r
+\r
+var crumb = document.createElement("span");\r
+crumb.className = "crumb";\r
+crumb.representedObject = current;\r
+crumb.addEventListener("mousedown", selectCrumbFunction, false);\r
+\r
+var crumbTitle;\r
+switch (current.nodeType) {\r
+case Node.ELEMENT_NODE:\r
+this.decorateNodeLabel(current, crumb);\r
+break;\r
+\r
+case Node.TEXT_NODE:\r
+if (isNodeWhitespace.call(current))\r
+crumbTitle = WebInspector.UIString("(whitespace)");\r
+else\r
+crumbTitle = WebInspector.UIString("(text)");\r
+break\r
+\r
+case Node.COMMENT_NODE:\r
+crumbTitle = "<!-->";\r
+break;\r
+\r
+case Node.DOCUMENT_TYPE_NODE:\r
+crumbTitle = "<!DOCTYPE>";\r
+break;\r
+\r
+default:\r
+crumbTitle = this.treeOutline.nodeNameToCorrectCase(current.nodeName);\r
+}\r
+\r
+if (!crumb.childNodes.length) {\r
+var nameElement = document.createElement("span");\r
+nameElement.textContent = crumbTitle;\r
+crumb.appendChild(nameElement);\r
+crumb.title = crumbTitle;\r
+}\r
+\r
+if (foundRoot)\r
+crumb.addStyleClass("dimmed");\r
+if (current === this.focusedDOMNode)\r
+crumb.addStyleClass("selected");\r
+if (!crumbs.childNodes.length)\r
+crumb.addStyleClass("end");\r
+\r
+crumbs.appendChild(crumb);\r
+}\r
+\r
+if (crumbs.hasChildNodes())\r
+crumbs.lastChild.addStyleClass("start");\r
+\r
+this.updateBreadcrumbSizes();\r
+},\r
+\r
+decorateNodeLabel: function(node, parentElement)\r
+{\r
+var title = this.treeOutline.nodeNameToCorrectCase(node.nodeName);\r
+\r
+var nameElement = document.createElement("span");\r
+nameElement.textContent = title;\r
+parentElement.appendChild(nameElement);\r
+\r
+var idAttribute = node.getAttribute("id");\r
+if (idAttribute) {\r
+var idElement = document.createElement("span");\r
+parentElement.appendChild(idElement);\r
+\r
+var part = "#" + idAttribute;\r
+title += part;\r
+idElement.appendChild(document.createTextNode(part));\r
+\r
+\r
+nameElement.className = "extra";\r
+}\r
+\r
+var classAttribute = node.getAttribute("class");\r
+if (classAttribute) {\r
+var classes = classAttribute.split(/\s+/);\r
+var foundClasses = {};\r
+\r
+if (classes.length) {\r
+var classesElement = document.createElement("span");\r
+classesElement.className = "extra";\r
+parentElement.appendChild(classesElement);\r
+\r
+for (var i = 0; i < classes.length; ++i) {\r
+var className = classes[i];\r
+if (className && !(className in foundClasses)) {\r
+var part = "." + className;\r
+title += part;\r
+classesElement.appendChild(document.createTextNode(part));\r
+foundClasses[className] = true;\r
+}\r
+}\r
+}\r
+}\r
+parentElement.title = title;\r
+},\r
+\r
+linkifyNodeReference: function(node)\r
+{\r
+var link = document.createElement("span");\r
+link.className = "node-link";\r
+this.decorateNodeLabel(node, link);\r
+WebInspector.wireElementWithDOMNode(link, node.id);\r
+return link;\r
+},\r
+\r
+linkifyNodeById: function(nodeId)\r
+{\r
+var node = WebInspector.domAgent.nodeForId(nodeId);\r
+if (!node)\r
+return document.createTextNode(WebInspector.UIString("<node>"));\r
+return this.linkifyNodeReference(node);\r
+},\r
+\r
+updateBreadcrumbSizes: function(focusedCrumb)\r
+{\r
+if (!this.visible)\r
+return;\r
+\r
+if (document.body.offsetWidth <= 0) {\r
+\r
+\r
+return;\r
+}\r
+\r
+var crumbs = this.crumbsElement;\r
+if (!crumbs.childNodes.length || crumbs.offsetWidth <= 0)\r
+return; \r
+\r
+\r
+var selectedIndex = 0;\r
+var focusedIndex = 0;\r
+var selectedCrumb;\r
+\r
+var i = 0;\r
+var crumb = crumbs.firstChild;\r
+while (crumb) {\r
+\r
+if (!selectedCrumb && crumb.hasStyleClass("selected")) {\r
+selectedCrumb = crumb;\r
+selectedIndex = i;\r
+}\r
+\r
+\r
+if (crumb === focusedCrumb)\r
+focusedIndex = i;\r
+\r
+\r
+\r
+if (crumb !== crumbs.lastChild)\r
+crumb.removeStyleClass("start");\r
+if (crumb !== crumbs.firstChild)\r
+crumb.removeStyleClass("end");\r
+\r
+crumb.removeStyleClass("compact");\r
+crumb.removeStyleClass("collapsed");\r
+crumb.removeStyleClass("hidden");\r
+\r
+crumb = crumb.nextSibling;\r
+++i;\r
+}\r
+\r
+\r
+\r
+crumbs.firstChild.addStyleClass("end");\r
+crumbs.lastChild.addStyleClass("start");\r
+\r
+function crumbsAreSmallerThanContainer()\r
+{\r
+var rightPadding = 20;\r
+var errorWarningElement = document.getElementById("error-warning-count");\r
+if (!WebInspector.drawer.visible && errorWarningElement)\r
+rightPadding += errorWarningElement.offsetWidth;\r
+return ((crumbs.totalOffsetLeft + crumbs.offsetWidth + rightPadding) < window.innerWidth);\r
+}\r
+\r
+if (crumbsAreSmallerThanContainer())\r
+return; \r
+\r
+var BothSides = 0;\r
+var AncestorSide = -1;\r
+var ChildSide = 1;\r
+\r
+function makeCrumbsSmaller(shrinkingFunction, direction, significantCrumb)\r
+{\r
+if (!significantCrumb)\r
+significantCrumb = (focusedCrumb || selectedCrumb);\r
+\r
+if (significantCrumb === selectedCrumb)\r
+var significantIndex = selectedIndex;\r
+else if (significantCrumb === focusedCrumb)\r
+var significantIndex = focusedIndex;\r
+else {\r
+var significantIndex = 0;\r
+for (var i = 0; i < crumbs.childNodes.length; ++i) {\r
+if (crumbs.childNodes[i] === significantCrumb) {\r
+significantIndex = i;\r
+break;\r
+}\r
+}\r
+}\r
+\r
+function shrinkCrumbAtIndex(index)\r
+{\r
+var shrinkCrumb = crumbs.childNodes[index];\r
+if (shrinkCrumb && shrinkCrumb !== significantCrumb)\r
+shrinkingFunction(shrinkCrumb);\r
+if (crumbsAreSmallerThanContainer())\r
+return true; \r
+return false;\r
+}\r
+\r
+\r
+\r
+if (direction) {\r
+\r
+var index = (direction > 0 ? 0 : crumbs.childNodes.length - 1);\r
+while (index !== significantIndex) {\r
+if (shrinkCrumbAtIndex(index))\r
+return true;\r
+index += (direction > 0 ? 1 : -1);\r
+}\r
+} else {\r
+\r
+\r
+var startIndex = 0;\r
+var endIndex = crumbs.childNodes.length - 1;\r
+while (startIndex != significantIndex || endIndex != significantIndex) {\r
+var startDistance = significantIndex - startIndex;\r
+var endDistance = endIndex - significantIndex;\r
+if (startDistance >= endDistance)\r
+var index = startIndex++;\r
+else\r
+var index = endIndex--;\r
+if (shrinkCrumbAtIndex(index))\r
+return true;\r
+}\r
+}\r
+\r
+\r
+return false;\r
+}\r
+\r
+function coalesceCollapsedCrumbs()\r
+{\r
+var crumb = crumbs.firstChild;\r
+var collapsedRun = false;\r
+var newStartNeeded = false;\r
+var newEndNeeded = false;\r
+while (crumb) {\r
+var hidden = crumb.hasStyleClass("hidden");\r
+if (!hidden) {\r
+var collapsed = crumb.hasStyleClass("collapsed"); \r
+if (collapsedRun && collapsed) {\r
+crumb.addStyleClass("hidden");\r
+crumb.removeStyleClass("compact");\r
+crumb.removeStyleClass("collapsed");\r
+\r
+if (crumb.hasStyleClass("start")) {\r
+crumb.removeStyleClass("start");\r
+newStartNeeded = true;\r
+}\r
+\r
+if (crumb.hasStyleClass("end")) {\r
+crumb.removeStyleClass("end");\r
+newEndNeeded = true;\r
+}\r
+\r
+continue;\r
+}\r
+\r
+collapsedRun = collapsed;\r
+\r
+if (newEndNeeded) {\r
+newEndNeeded = false;\r
+crumb.addStyleClass("end");\r
+}\r
+} else\r
+collapsedRun = true;\r
+crumb = crumb.nextSibling;\r
+}\r
+\r
+if (newStartNeeded) {\r
+crumb = crumbs.lastChild;\r
+while (crumb) {\r
+if (!crumb.hasStyleClass("hidden")) {\r
+crumb.addStyleClass("start");\r
+break;\r
+}\r
+crumb = crumb.previousSibling;\r
+}\r
+}\r
+}\r
+\r
+function compact(crumb)\r
+{\r
+if (crumb.hasStyleClass("hidden"))\r
+return;\r
+crumb.addStyleClass("compact");\r
+}\r
+\r
+function collapse(crumb, dontCoalesce)\r
+{\r
+if (crumb.hasStyleClass("hidden"))\r
+return;\r
+crumb.addStyleClass("collapsed");\r
+crumb.removeStyleClass("compact");\r
+if (!dontCoalesce)\r
+coalesceCollapsedCrumbs();\r
+}\r
+\r
+function compactDimmed(crumb)\r
+{\r
+if (crumb.hasStyleClass("dimmed"))\r
+compact(crumb);\r
+}\r
+\r
+function collapseDimmed(crumb)\r
+{\r
+if (crumb.hasStyleClass("dimmed"))\r
+collapse(crumb);\r
+}\r
+\r
+if (!focusedCrumb) {\r
+\r
+\r
+\r
+\r
+if (makeCrumbsSmaller(compact, ChildSide))\r
+return;\r
+\r
+\r
+if (makeCrumbsSmaller(collapse, ChildSide))\r
+return;\r
+\r
+\r
+if (makeCrumbsSmaller(compactDimmed, AncestorSide))\r
+return;\r
+\r
+\r
+if (makeCrumbsSmaller(collapseDimmed, AncestorSide))\r
+return;\r
+}\r
+\r
+\r
+if (makeCrumbsSmaller(compact, (focusedCrumb ? BothSides : AncestorSide)))\r
+return;\r
+\r
+\r
+if (makeCrumbsSmaller(collapse, (focusedCrumb ? BothSides : AncestorSide)))\r
+return;\r
+\r
+if (!selectedCrumb)\r
+return;\r
+\r
+\r
+compact(selectedCrumb);\r
+if (crumbsAreSmallerThanContainer())\r
+return;\r
+\r
+\r
+collapse(selectedCrumb, true);\r
+},\r
+\r
+updateStyles: function(forceUpdate)\r
+{\r
+var stylesSidebarPane = this.sidebarPanes.styles;\r
+var computedStylePane = this.sidebarPanes.computedStyle;\r
+if ((!stylesSidebarPane.expanded && !computedStylePane.expanded) || !stylesSidebarPane.needsUpdate)\r
+return;\r
+\r
+stylesSidebarPane.update(this.focusedDOMNode, null, forceUpdate);\r
+stylesSidebarPane.needsUpdate = false;\r
+},\r
+\r
+updateMetrics: function()\r
+{\r
+var metricsSidebarPane = this.sidebarPanes.metrics;\r
+if (!metricsSidebarPane.expanded || !metricsSidebarPane.needsUpdate)\r
+return;\r
+\r
+metricsSidebarPane.update(this.focusedDOMNode);\r
+metricsSidebarPane.needsUpdate = false;\r
+},\r
+\r
+updateProperties: function()\r
+{\r
+var propertiesSidebarPane = this.sidebarPanes.properties;\r
+if (!propertiesSidebarPane.expanded || !propertiesSidebarPane.needsUpdate)\r
+return;\r
+\r
+propertiesSidebarPane.update(this.focusedDOMNode);\r
+propertiesSidebarPane.needsUpdate = false;\r
+},\r
+\r
+updateEventListeners: function()\r
+{\r
+var eventListenersSidebarPane = this.sidebarPanes.eventListeners;\r
+if (!eventListenersSidebarPane.expanded || !eventListenersSidebarPane.needsUpdate)\r
+return;\r
+\r
+eventListenersSidebarPane.update(this.focusedDOMNode);\r
+eventListenersSidebarPane.needsUpdate = false;\r
+},\r
+\r
+_registerShortcuts: function()\r
+{\r
+var shortcut = WebInspector.KeyboardShortcut;\r
+var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Elements Panel"));\r
+var keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Up),\r
+shortcut.shortcutToString(shortcut.Keys.Down)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Navigate elements"));\r
+var keys = [\r
+shortcut.shortcutToString(shortcut.Keys.Right),\r
+shortcut.shortcutToString(shortcut.Keys.Left)\r
+];\r
+section.addRelatedKeys(keys, WebInspector.UIString("Expand/collapse"));\r
+section.addKey(shortcut.shortcutToString(shortcut.Keys.Enter), WebInspector.UIString("Edit attribute"));\r
+\r
+this.sidebarPanes.styles.registerShortcuts();\r
+},\r
+\r
+handleShortcut: function(event)\r
+{\r
+\r
+\r
+if (event.keyIdentifier === "U+0043") {     \r
+if (WebInspector.isMac())\r
+var isNodeSearchKey = event.metaKey && !event.ctrlKey && !event.altKey && event.shiftKey;\r
+else\r
+var isNodeSearchKey = event.ctrlKey && !event.metaKey && !event.altKey && event.shiftKey;\r
+\r
+if (isNodeSearchKey) {\r
+this.toggleSearchingForNode();\r
+event.handled = true;\r
+return;\r
+}\r
+}\r
+},\r
+\r
+handleCopyEvent: function(event)\r
+{\r
+\r
+if (!window.getSelection().isCollapsed)\r
+return;\r
+event.clipboardData.clearData();\r
+event.preventDefault();\r
+InspectorBackend.copyNode(this.focusedDOMNode.id);\r
+},\r
+\r
+rightSidebarResizerDragStart: function(event)\r
+{\r
+WebInspector.elementDragStart(this.sidebarElement, this.rightSidebarResizerDrag.bind(this), this.rightSidebarResizerDragEnd.bind(this), event, "col-resize");\r
+},\r
+\r
+rightSidebarResizerDragEnd: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+this.saveSidebarWidth();\r
+},\r
+\r
+rightSidebarResizerDrag: function(event)\r
+{\r
+var x = event.pageX;\r
+var newWidth = Number.constrain(window.innerWidth - x, Preferences.minElementsSidebarWidth, window.innerWidth * 0.66);\r
+this.setSidebarWidth(newWidth);\r
+event.preventDefault();\r
+},\r
+\r
+setSidebarWidth: function(newWidth)\r
+{\r
+this.sidebarElement.style.width = newWidth + "px";\r
+this.contentElement.style.right = newWidth + "px";\r
+this.sidebarResizeElement.style.right = (newWidth - 3) + "px";\r
+this.treeOutline.updateSelection();\r
+},\r
+\r
+updateFocusedNode: function(nodeId)\r
+{\r
+var node = WebInspector.domAgent.nodeForId(nodeId);\r
+if (!node)\r
+return;\r
+\r
+this.focusedDOMNode = node;\r
+this._nodeSearchButton.toggled = false;\r
+},\r
+\r
+_setSearchingForNode: function(enabled)\r
+{\r
+this._nodeSearchButton.toggled = enabled;\r
+},\r
+\r
+setSearchingForNode: function(enabled)\r
+{\r
+InspectorBackend.setSearchingForNode(enabled, this._setSearchingForNode.bind(this));\r
+},\r
+\r
+toggleSearchingForNode: function()\r
+{\r
+this.setSearchingForNode(!this._nodeSearchButton.toggled);\r
+},\r
+\r
+elementsToRestoreScrollPositionsFor: function()\r
+{\r
+return [ this.contentElement, this.sidebarElement ];\r
+}\r
+}\r
+\r
+WebInspector.ElementsPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.NetworkPanel = function()\r
+{\r
+WebInspector.Panel.call(this, "network");\r
+\r
+this.createSidebar();\r
+this.sidebarElement.className = "network-sidebar";\r
+\r
+this._resources = [];\r
+this._resourcesById = {};\r
+this._resourcesByURL = {};\r
+this._lastIdentifier = 0;\r
+this._staleResources = [];\r
+this._resourceGridNodes = {};\r
+this._mainResourceLoadTime = -1;\r
+this._mainResourceDOMContentTime = -1;\r
+this._hiddenCategories = {};\r
+\r
+this._categories = WebInspector.resourceCategories;\r
+\r
+this.containerElement = document.createElement("div");\r
+this.containerElement.id = "network-container";\r
+this.sidebarElement.appendChild(this.containerElement);\r
+\r
+this._viewsContainerElement = document.createElement("div");\r
+this._viewsContainerElement.id = "network-views";\r
+this._viewsContainerElement.className = "hidden";\r
+this.element.appendChild(this._viewsContainerElement);\r
+\r
+this._closeButtonElement = document.createElement("button");\r
+this._closeButtonElement.id = "network-close-button";\r
+this._closeButtonElement.addEventListener("click", this._toggleGridMode.bind(this), false);\r
+this._viewsContainerElement.appendChild(this._closeButtonElement);\r
+\r
+this._createSortingFunctions();\r
+this._createTable();\r
+this._createTimelineGrid();\r
+this._createStatusbarButtons();\r
+this._createFilterStatusBarItems();\r
+this._createSummaryBar();\r
+\r
+if (!WebInspector.settings.resourcesLargeRows)\r
+this._setLargerResources(WebInspector.settings.resourcesLargeRows);\r
+\r
+this._popoverHelper = new WebInspector.PopoverHelper(this.element, this._getPopoverAnchor.bind(this), this._showPopover.bind(this), true);\r
+\r
+this._popoverHelper.setTimeout(100);\r
+\r
+this.calculator = new WebInspector.NetworkTransferTimeCalculator();\r
+this._filter(this._filterAllElement, false);\r
+\r
+this._toggleGridMode();\r
+}\r
+\r
+WebInspector.NetworkPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Network");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this._largerResourcesButton.element, this._preserveLogToggle.element, this._clearButton.element, this._filterBarElement];\r
+},\r
+\r
+isCategoryVisible: function(categoryName)\r
+{\r
+return true;\r
+},\r
+\r
+elementsToRestoreScrollPositionsFor: function()\r
+{\r
+return [this.containerElement];\r
+},\r
+\r
+resize: function()\r
+{\r
+WebInspector.Panel.prototype.resize.call(this);\r
+this._dataGrid.updateWidths();\r
+this._positionSummaryBar();\r
+},\r
+\r
+updateSidebarWidth: function(width)\r
+{\r
+if (!this._viewingResourceMode)\r
+return;\r
+WebInspector.Panel.prototype.updateSidebarWidth.call(this, width);\r
+if (this._summaryBarElement.parentElement === this.element)\r
+this._summaryBarElement.style.width = width + "px";\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this._viewsContainerElement.style.left = width + "px";\r
+},\r
+\r
+handleShortcut: function(event)\r
+{\r
+if (this._viewingResourceMode && event.keyCode === WebInspector.KeyboardShortcut.Keys.Esc.code) {\r
+this._toggleGridMode();\r
+event.handled = true;\r
+}\r
+},\r
+\r
+_positionSummaryBar: function()\r
+{\r
+\r
+\r
+var fillerRow = this._dataGrid.dataTableBody.lastChild;\r
+if (this._summaryBarElement.parentElement !== this.element && fillerRow.offsetHeight > 0) {\r
+\r
+if (this._summaryBarRowNode) {\r
+this._dataGrid.removeChild(this._summaryBarRowNode);\r
+delete this._summaryBarRowNode;\r
+}\r
+this._summaryBarElement.addStyleClass("network-summary-bar-bottom");\r
+this._summaryBarElement.style.setProperty("width", this.sidebarElement.offsetWidth + "px");\r
+this.element.appendChild(this._summaryBarElement);\r
+this._dataGrid.element.style.bottom = "20px";\r
+return;\r
+}\r
+\r
+if (!this._summaryBarRowNode && !fillerRow.offsetHeight) {\r
+\r
+this._summaryBarRowNode = new WebInspector.NetworkTotalGridNode(this._summaryBarElement);\r
+this._summaryBarElement.removeStyleClass("network-summary-bar-bottom");\r
+this._summaryBarElement.style.removeProperty("width");\r
+this._dataGrid.appendChild(this._summaryBarRowNode);\r
+this._dataGrid.element.style.bottom = 0;\r
+this._sortItems();\r
+}\r
+},\r
+\r
+_resetSummaryBar: function()\r
+{\r
+delete this._summaryBarRowNode;\r
+this._summaryBarElement.parentElement.removeChild(this._summaryBarElement);\r
+this._updateSummaryBar();\r
+},\r
+\r
+_createTimelineGrid: function()\r
+{\r
+this._timelineGrid = new WebInspector.TimelineGrid();\r
+this._timelineGrid.element.addStyleClass("network-timeline-grid");\r
+this._dataGrid.element.appendChild(this._timelineGrid.element);\r
+},\r
+\r
+_createTable: function()\r
+{\r
+var columns = {name: {}, method: {}, status: {}, type: {}, size: {}, time: {}, timeline: {}};\r
+columns.name.titleDOMFragment = this._makeHeaderFragment(WebInspector.UIString("Name"), WebInspector.UIString("Path"));\r
+columns.name.sortable = true;\r
+columns.name.width = "20%";\r
+columns.name.disclosure = true;\r
+\r
+columns.method.title = WebInspector.UIString("Method");\r
+columns.method.sortable = true;\r
+columns.method.width = "7%";\r
+\r
+columns.status.titleDOMFragment = this._makeHeaderFragment(WebInspector.UIString("Status"), WebInspector.UIString("Text"));\r
+columns.status.sortable = true;\r
+columns.status.width = "8%";\r
+\r
+columns.type.title = WebInspector.UIString("Type");\r
+columns.type.sortable = true;\r
+columns.type.width = "10%";\r
+\r
+columns.size.titleDOMFragment = this._makeHeaderFragment(WebInspector.UIString("Size"), WebInspector.UIString("Transfer"));\r
+columns.size.sortable = true;\r
+columns.size.width = "10%";\r
+columns.size.aligned = "right";\r
+\r
+columns.time.titleDOMFragment = this._makeHeaderFragment(WebInspector.UIString("Time"), WebInspector.UIString("Latency"));\r
+columns.time.sortable = true;\r
+columns.time.width = "10%";\r
+columns.time.aligned = "right";\r
+\r
+columns.timeline.title = "";\r
+columns.timeline.sortable = false;\r
+columns.timeline.width = "37%";\r
+columns.timeline.sort = "ascending";\r
+\r
+this._dataGrid = new WebInspector.DataGrid(columns);\r
+this._dataGrid.element.addEventListener("contextmenu", this._contextMenu.bind(this), true);\r
+this.containerElement.appendChild(this._dataGrid.element);\r
+this._dataGrid.addEventListener("sorting changed", this._sortItems, this);\r
+this._dataGrid.addEventListener("width changed", this._updateDividersIfNeeded, this);\r
+\r
+this._patchTimelineHeader();\r
+},\r
+\r
+_makeHeaderFragment: function(title, subtitle)\r
+{\r
+var fragment = document.createDocumentFragment();\r
+fragment.appendChild(document.createTextNode(title));\r
+var subtitleDiv = document.createElement("div");\r
+subtitleDiv.className = "network-header-subtitle";\r
+subtitleDiv.textContent = subtitle;\r
+fragment.appendChild(subtitleDiv);\r
+return fragment;\r
+},\r
+\r
+_patchTimelineHeader: function()\r
+{\r
+var timelineSorting = document.createElement("select");\r
+\r
+var option = document.createElement("option");\r
+option.value = "startTime";\r
+option.label = WebInspector.UIString("Timeline");\r
+timelineSorting.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "startTime";\r
+option.label = WebInspector.UIString("Start Time");\r
+timelineSorting.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "responseTime";\r
+option.label = WebInspector.UIString("Response Time");\r
+timelineSorting.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "endTime";\r
+option.label = WebInspector.UIString("End Time");\r
+timelineSorting.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "duration";\r
+option.label = WebInspector.UIString("Duration");\r
+timelineSorting.appendChild(option);\r
+\r
+option = document.createElement("option");\r
+option.value = "latency";\r
+option.label = WebInspector.UIString("Latency");\r
+timelineSorting.appendChild(option);\r
+\r
+var header = this._dataGrid.headerTableHeader("timeline");\r
+header.replaceChild(timelineSorting, header.firstChild);\r
+\r
+timelineSorting.addEventListener("click", function(event) { event.stopPropagation() }, false);\r
+timelineSorting.addEventListener("change", this._sortByTimeline.bind(this), false);\r
+this._timelineSortSelector = timelineSorting;\r
+},\r
+\r
+_createSortingFunctions: function()\r
+{\r
+this._sortingFunctions = {};\r
+this._sortingFunctions.name = WebInspector.NetworkDataGridNode.NameComparator;\r
+this._sortingFunctions.method = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "method", false);\r
+this._sortingFunctions.status = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "statusCode", false);\r
+this._sortingFunctions.type = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "mimeType", false);\r
+this._sortingFunctions.size = WebInspector.NetworkDataGridNode.SizeComparator;\r
+this._sortingFunctions.time = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "duration", false);\r
+this._sortingFunctions.timeline = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "startTime", false);\r
+this._sortingFunctions.startTime = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "startTime", false);\r
+this._sortingFunctions.endTime = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "endTime", false);\r
+this._sortingFunctions.responseTime = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "responseReceivedTime", false);\r
+this._sortingFunctions.duration = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "duration", true);\r
+this._sortingFunctions.latency = WebInspector.NetworkDataGridNode.ResourcePropertyComparator.bind(null, "latency", true);\r
+\r
+var timeCalculator = new WebInspector.NetworkTransferTimeCalculator();\r
+var durationCalculator = new WebInspector.NetworkTransferDurationCalculator();\r
+\r
+this._calculators = {};\r
+this._calculators.timeline = timeCalculator;\r
+this._calculators.startTime = timeCalculator;\r
+this._calculators.endTime = timeCalculator;\r
+this._calculators.responseTime = timeCalculator;\r
+this._calculators.duration = durationCalculator;\r
+this._calculators.latency = durationCalculator;\r
+},\r
+\r
+_sortItems: function()\r
+{\r
+var columnIdentifier = this._dataGrid.sortColumnIdentifier;\r
+if (columnIdentifier === "timeline") {\r
+this._sortByTimeline();\r
+return;\r
+}\r
+var sortingFunction = this._sortingFunctions[columnIdentifier];\r
+if (!sortingFunction)\r
+return;\r
+\r
+this._dataGrid.sortNodes(sortingFunction, this._dataGrid.sortOrder === "descending");\r
+this._timelineSortSelector.selectedIndex = 0;\r
+},\r
+\r
+_sortByTimeline: function()\r
+{\r
+var selectedIndex = this._timelineSortSelector.selectedIndex;\r
+if (!selectedIndex)\r
+selectedIndex = 1; \r
+var selectedOption = this._timelineSortSelector[selectedIndex];\r
+var value = selectedOption.value;\r
+\r
+var sortingFunction = this._sortingFunctions[value];\r
+this._dataGrid.sortNodes(sortingFunction);\r
+this.calculator = this._calculators[value];\r
+if (this.calculator.startAtZero)\r
+this._timelineGrid.hideEventDividers();\r
+else\r
+this._timelineGrid.showEventDividers();\r
+this._dataGrid.markColumnAsSortedBy("timeline", "ascending");\r
+},\r
+\r
+_createFilterStatusBarItems: function()\r
+{\r
+var filterBarElement = document.createElement("div");\r
+filterBarElement.className = "scope-bar status-bar-item";\r
+filterBarElement.id = "network-filter";\r
+\r
+function createFilterElement(category, label)\r
+{\r
+var categoryElement = document.createElement("li");\r
+categoryElement.category = category;\r
+categoryElement.className = category;\r
+categoryElement.appendChild(document.createTextNode(label));\r
+categoryElement.addEventListener("click", this._updateFilter.bind(this), false);\r
+filterBarElement.appendChild(categoryElement);\r
+\r
+return categoryElement;\r
+}\r
+\r
+this._filterAllElement = createFilterElement.call(this, "all", WebInspector.UIString("All"));\r
+\r
+\r
+var dividerElement = document.createElement("div");\r
+dividerElement.addStyleClass("scope-bar-divider");\r
+filterBarElement.appendChild(dividerElement);\r
+\r
+for (var category in this._categories)\r
+createFilterElement.call(this, category, this._categories[category].title);\r
+this._filterBarElement = filterBarElement;\r
+},\r
+\r
+_createSummaryBar: function()\r
+{\r
+this._summaryBarElement = document.createElement("div");\r
+this._summaryBarElement.className = "network-summary-bar";\r
+this.containerElement.appendChild(this._summaryBarElement);\r
+},\r
+\r
+_updateSummaryBar: function()\r
+{\r
+this._positionSummaryBar(); \r
+var numRequests = this._resources.length;\r
+\r
+if (!numRequests) {\r
+if (this._summaryBarElement._isDisplayingWarning)\r
+return;\r
+this._summaryBarElement._isDisplayingWarning = true;\r
+\r
+var img = document.createElement("img");\r
+img.src = "Images/warningIcon.png";\r
+this._summaryBarElement.removeChildren();\r
+this._summaryBarElement.appendChild(img);\r
+this._summaryBarElement.appendChild(document.createTextNode(" "));\r
+this._summaryBarElement.appendChild(document.createTextNode(\r
+WebInspector.UIString("No requests captured. Reload the page to see detailed information on the network activity.")));\r
+return;\r
+}\r
+delete this._summaryBarElement._isDisplayingWarning;\r
+\r
+var transferSize = 0;\r
+var baseTime = -1;\r
+var maxTime = -1;\r
+for (var i = 0; i < this._resources.length; ++i) {\r
+var resource = this._resources[i];\r
+transferSize += (resource.cached || !resource.transferSize) ? 0 : resource.transferSize;\r
+if (resource.isMainResource)\r
+baseTime = resource.startTime;\r
+if (resource.endTime > maxTime)\r
+maxTime = resource.endTime;\r
+}\r
+var text = String.sprintf(WebInspector.UIString("%d requests"), numRequests);\r
+text += "  \u2758  " + String.sprintf(WebInspector.UIString("%s transferred"), Number.bytesToString(transferSize));\r
+if (baseTime !== -1 && this._mainResourceLoadTime !== -1 && this._mainResourceDOMContentTime !== -1 && this._mainResourceDOMContentTime > baseTime) {\r
+text += "  \u2758  " + String.sprintf(WebInspector.UIString("%s (onload: %s, DOMContentLoaded: %s)"),\r
+Number.secondsToString(maxTime - baseTime),\r
+Number.secondsToString(this._mainResourceLoadTime - baseTime),\r
+Number.secondsToString(this._mainResourceDOMContentTime - baseTime));\r
+}\r
+this._summaryBarElement.textContent = text;\r
+},\r
+\r
+_showCategory: function(category)\r
+{\r
+this._dataGrid.element.addStyleClass("filter-" + category);\r
+delete this._hiddenCategories[category];\r
+},\r
+\r
+_hideCategory: function(category)\r
+{\r
+this._dataGrid.element.removeStyleClass("filter-" + category);\r
+this._hiddenCategories[category] = true;\r
+},\r
+\r
+_updateFilter: function(e)\r
+{\r
+var isMac = WebInspector.isMac();\r
+var selectMultiple = false;\r
+if (isMac && e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey)\r
+selectMultiple = true;\r
+if (!isMac && e.ctrlKey && !e.metaKey && !e.altKey && !e.shiftKey)\r
+selectMultiple = true;\r
+\r
+this._filter(e.target, selectMultiple);\r
+this._positionSummaryBar();\r
+},\r
+\r
+_filter: function(target, selectMultiple)\r
+{\r
+function unselectAll()\r
+{\r
+for (var i = 0; i < this._filterBarElement.childNodes.length; ++i) {\r
+var child = this._filterBarElement.childNodes[i];\r
+if (!child.category)\r
+continue;\r
+\r
+child.removeStyleClass("selected");\r
+this._hideCategory(child.category);\r
+}\r
+}\r
+\r
+if (target.category === this._filterAllElement) {\r
+if (target.hasStyleClass("selected")) {\r
+\r
+return;\r
+}\r
+\r
+\r
+unselectAll.call(this);\r
+} else {\r
+\r
+if (this._filterAllElement.hasStyleClass("selected")) {\r
+this._filterAllElement.removeStyleClass("selected");\r
+this._hideCategory("all");\r
+}\r
+}\r
+\r
+if (!selectMultiple) {\r
+\r
+\r
+unselectAll.call(this);\r
+\r
+target.addStyleClass("selected");\r
+this._showCategory(target.category);\r
+return;\r
+}\r
+\r
+if (target.hasStyleClass("selected")) {\r
+\r
+\r
+target.removeStyleClass("selected");\r
+this._hideCategory(target.category);\r
+} else {\r
+\r
+\r
+target.addStyleClass("selected");\r
+this._showCategory(target.category);\r
+}\r
+},\r
+\r
+_scheduleRefresh: function()\r
+{\r
+if (this._needsRefresh)\r
+return;\r
+\r
+this._needsRefresh = true;\r
+\r
+if (this.visible && !("_refreshTimeout" in this))\r
+this._refreshTimeout = setTimeout(this.refresh.bind(this), 500);\r
+},\r
+\r
+_updateDividersIfNeeded: function(force)\r
+{\r
+var timelineColumn = this._dataGrid.columns.timeline;\r
+for (var i = 0; i < this._dataGrid.resizers.length; ++i) {\r
+if (timelineColumn.ordinal === this._dataGrid.resizers[i].rightNeighboringColumnID) {\r
+\r
+this._timelineGrid.element.style.left = this._dataGrid.resizers[i].style.left;\r
+this._timelineGrid.element.style.right = "18px";\r
+}\r
+}\r
+\r
+var proceed = true;\r
+if (!this.visible) {\r
+this._scheduleRefresh();\r
+proceed = false;\r
+} else\r
+proceed = this._timelineGrid.updateDividers(force, this.calculator);\r
+\r
+if (!proceed)\r
+return;\r
+\r
+if (this.calculator.startAtZero || !this.calculator.computePercentageFromEventTime) {\r
+\r
+\r
+\r
+\r
+\r
+\r
+return;\r
+}\r
+\r
+this._timelineGrid.removeEventDividers();\r
+if (this._mainResourceLoadTime !== -1) {\r
+var percent = this.calculator.computePercentageFromEventTime(this._mainResourceLoadTime);\r
+\r
+var loadDivider = document.createElement("div");\r
+loadDivider.className = "network-event-divider network-red-divider";\r
+\r
+var loadDividerPadding = document.createElement("div");\r
+loadDividerPadding.className = "network-event-divider-padding";\r
+loadDividerPadding.title = WebInspector.UIString("Load event fired");\r
+loadDividerPadding.appendChild(loadDivider);\r
+loadDividerPadding.style.left = percent + "%";\r
+this._timelineGrid.addEventDivider(loadDividerPadding);\r
+}\r
+\r
+if (this._mainResourceDOMContentTime !== -1) {\r
+var percent = this.calculator.computePercentageFromEventTime(this._mainResourceDOMContentTime);\r
+\r
+var domContentDivider = document.createElement("div");\r
+domContentDivider.className = "network-event-divider network-blue-divider";\r
+\r
+var domContentDividerPadding = document.createElement("div");\r
+domContentDividerPadding.className = "network-event-divider-padding";\r
+domContentDividerPadding.title = WebInspector.UIString("DOMContent event fired");\r
+domContentDividerPadding.appendChild(domContentDivider);\r
+domContentDividerPadding.style.left = percent + "%";\r
+this._timelineGrid.addEventDivider(domContentDividerPadding);\r
+}\r
+},\r
+\r
+_refreshIfNeeded: function()\r
+{\r
+if (this._needsRefresh)\r
+this.refresh();\r
+},\r
+\r
+_invalidateAllItems: function()\r
+{\r
+this._staleResources = this._resources.slice();\r
+},\r
+\r
+get calculator()\r
+{\r
+return this._calculator;\r
+},\r
+\r
+set calculator(x)\r
+{\r
+if (!x || this._calculator === x)\r
+return;\r
+\r
+this._calculator = x;\r
+this._calculator.reset();\r
+\r
+this._invalidateAllItems();\r
+this.refresh();\r
+},\r
+\r
+_resourceGridNode: function(resource)\r
+{\r
+return this._resourceGridNodes[resource.identifier];\r
+},\r
+\r
+revealAndSelectItem: function(resource)\r
+{\r
+var node = this._resourceGridNode(resource);\r
+if (node) {\r
+node.reveal();\r
+node.select(true);\r
+}\r
+},\r
+\r
+addEventDivider: function(divider)\r
+{\r
+this._timelineGrid.addEventDivider(divider);\r
+},\r
+\r
+_createStatusbarButtons: function()\r
+{\r
+this._preserveLogToggle = new WebInspector.StatusBarButton(WebInspector.UIString("Preserve Log upon Navigation"), "record-profile-status-bar-item");\r
+this._preserveLogToggle.addEventListener("click", this._onPreserveLogClicked.bind(this), false);\r
+\r
+this._clearButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear"), "clear-status-bar-item");\r
+this._clearButton.addEventListener("click", this._reset.bind(this), false);\r
+\r
+this._largerResourcesButton = new WebInspector.StatusBarButton(WebInspector.UIString("Use small resource rows."), "network-larger-resources-status-bar-item");\r
+this._largerResourcesButton.toggled = WebInspector.settings.resourcesLargeRows;\r
+this._largerResourcesButton.addEventListener("click", this._toggleLargerResources.bind(this), false);\r
+},\r
+\r
+set mainResourceLoadTime(x)\r
+{\r
+if (this._mainResourceLoadTime === x)\r
+return;\r
+\r
+this._mainResourceLoadTime = x || -1;\r
+\r
+this._updateDividersIfNeeded(true);\r
+},\r
+\r
+set mainResourceDOMContentTime(x)\r
+{\r
+if (this._mainResourceDOMContentTime === x)\r
+return;\r
+\r
+this._mainResourceDOMContentTime = x || -1;\r
+this._updateDividersIfNeeded(true);\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+this._refreshIfNeeded();\r
+\r
+if (this.visibleView)\r
+this.visibleView.show(this._viewsContainerElement);\r
+\r
+this._dataGrid.updateWidths();\r
+this._positionSummaryBar();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.Panel.prototype.hide.call(this);\r
+this._popoverHelper.hidePopup();\r
+},\r
+\r
+get searchableViews()\r
+{\r
+var views = [];\r
+return views;\r
+},\r
+\r
+searchMatchFound: function(view, matches)\r
+{\r
+this._resourceGridNode(view.resource).searchMatches = matches;\r
+},\r
+\r
+searchCanceled: function(startingNewSearch)\r
+{\r
+WebInspector.Panel.prototype.searchCanceled.call(this, startingNewSearch);\r
+\r
+if (startingNewSearch || !this._resources)\r
+return;\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+WebInspector.Panel.prototype.performSearch.call(this, query);\r
+},\r
+\r
+refresh: function()\r
+{\r
+this._needsRefresh = false;\r
+if ("_refreshTimeout" in this) {\r
+clearTimeout(this._refreshTimeout);\r
+delete this._refreshTimeout;\r
+}\r
+\r
+var wasScrolledToLastRow = this._dataGrid.isScrolledToLastRow();\r
+var staleItemsLength = this._staleResources.length;\r
+var boundariesChanged = false;\r
+\r
+for (var i = 0; i < staleItemsLength; ++i) {\r
+var resource = this._staleResources[i];\r
+var node = this._resourceGridNode(resource);\r
+if (!node) {\r
+\r
+node = new WebInspector.NetworkDataGridNode(this, resource);\r
+this._resourceGridNodes[resource.identifier] = node;\r
+this._dataGrid.appendChild(node);\r
+}\r
+node.refreshResource();\r
+\r
+if (this.calculator.updateBoundaries(resource))\r
+boundariesChanged = true;\r
+}\r
+\r
+if (boundariesChanged) {\r
+\r
+this._invalidateAllItems();\r
+staleItemsLength = this._staleResources.length;\r
+}\r
+\r
+for (var i = 0; i < staleItemsLength; ++i)\r
+this._resourceGridNode(this._staleResources[i]).refreshGraph(this.calculator);\r
+\r
+this._staleResources = [];\r
+this._sortItems();\r
+this._updateSummaryBar();\r
+this._dataGrid.updateWidths();\r
+\r
+if (wasScrolledToLastRow)\r
+this._dataGrid.scrollToLastRow();\r
+},\r
+\r
+_onPreserveLogClicked: function(e)\r
+{\r
+this._preserveLogToggle.toggled = !this._preserveLogToggle.toggled;\r
+},\r
+\r
+reset: function()\r
+{\r
+if (!this._preserveLogToggle.toggled)\r
+this._reset();\r
+},\r
+\r
+_reset: function()\r
+{\r
+this._popoverHelper.hidePopup();\r
+this._closeVisibleResource();\r
+\r
+this._toggleGridMode();\r
+\r
+\r
+if (this._calculator)\r
+this._calculator.reset();\r
+\r
+this._resources = [];\r
+this._resourcesById = {};\r
+this._resourcesByURL = {};\r
+this._staleResources = [];\r
+this._resourceGridNodes = {};\r
+\r
+this._dataGrid.removeChildren();\r
+delete this._summaryBarRowNode;\r
+this._updateDividersIfNeeded(true);\r
+\r
+\r
+this._mainResourceLoadTime = -1;\r
+this._mainResourceDOMContentTime = -1;\r
+\r
+this._viewsContainerElement.removeChildren();\r
+this._viewsContainerElement.appendChild(this._closeButtonElement);\r
+this._resetSummaryBar();\r
+},\r
+\r
+get resources()\r
+{\r
+return this._resourcesById;\r
+},\r
+\r
+refreshResource: function(resource)\r
+{\r
+if (!resource.identifier)\r
+resource.identifier = "network:" + this._lastIdentifier++;\r
+\r
+if (!this._resourcesById[resource.identifier]) {\r
+this._resources.push(resource);\r
+this._resourcesById[resource.identifier] = resource;\r
+this._resourcesByURL[resource.url] = resource;\r
+\r
+\r
+if (resource.redirects) {\r
+for (var i = 0; i < resource.redirects.length; ++i)\r
+this.refreshResource(resource.redirects[i]);\r
+}\r
+}\r
+\r
+this._staleResources.push(resource);\r
+this._scheduleRefresh();\r
+\r
+if (!resource)\r
+return;\r
+\r
+var oldView = WebInspector.ResourceManager.existingResourceViewForResource(resource);\r
+if (!oldView)\r
+return;\r
+\r
+if (WebInspector.ResourceManager.resourceViewTypeMatchesResource(resource))\r
+return;\r
+\r
+var newView = WebInspector.ResourceManager.recreateResourceView(resource);\r
+if (this.visibleView === oldView)\r
+this.visibleView = newView;\r
+},\r
+\r
+canShowSourceLine: function(url, line)\r
+{\r
+return !!this._resourcesByURL[url];\r
+},\r
+\r
+showSourceLine: function(url, line)\r
+{\r
+this._showResource(this._resourcesByURL[url], line);\r
+},\r
+\r
+_showResource: function(resource, line)\r
+{\r
+if (!resource)\r
+return;\r
+\r
+this._popoverHelper.hidePopup();\r
+\r
+this._toggleViewingResourceMode();\r
+\r
+if (this.visibleView) {\r
+this.visibleView.detach();\r
+delete this.visibleView;\r
+}\r
+\r
+var view = new WebInspector.NetworkItemView(resource);\r
+view.show(this._viewsContainerElement);\r
+this.visibleView = view;\r
+\r
+this.updateSidebarWidth();\r
+},\r
+\r
+_closeVisibleResource: function()\r
+{\r
+this.element.removeStyleClass("viewing-resource");\r
+\r
+if (this.visibleView) {\r
+this.visibleView.detach();\r
+delete this.visibleView;\r
+}\r
+\r
+if (this._lastSelectedGraphTreeElement)\r
+this._lastSelectedGraphTreeElement.select(true);\r
+\r
+this.updateSidebarWidth();\r
+},\r
+\r
+_toggleLargerResources: function()\r
+{\r
+WebInspector.settings.resourcesLargeRows = !WebInspector.settings.resourcesLargeRows;\r
+this._setLargerResources(WebInspector.settings.resourcesLargeRows);\r
+},\r
+\r
+_setLargerResources: function(enabled)\r
+{\r
+this._largerResourcesButton.toggled = enabled;\r
+if (!enabled) {\r
+this._largerResourcesButton.title = WebInspector.UIString("Use large resource rows.");\r
+this._dataGrid.element.addStyleClass("small");\r
+this._timelineGrid.element.addStyleClass("small");\r
+this._viewsContainerElement.addStyleClass("small");\r
+} else {\r
+this._largerResourcesButton.title = WebInspector.UIString("Use small resource rows.");\r
+this._dataGrid.element.removeStyleClass("small");\r
+this._timelineGrid.element.removeStyleClass("small");\r
+this._viewsContainerElement.removeStyleClass("small");\r
+}\r
+this._positionSummaryBar();\r
+},\r
+\r
+_getPopoverAnchor: function(element)\r
+{\r
+var anchor = element.enclosingNodeOrSelfWithClass("network-graph-bar") || element.enclosingNodeOrSelfWithClass("network-graph-label");\r
+if (!anchor)\r
+return null;\r
+var resource = anchor.parentElement.resource;\r
+return resource && resource.timing ? anchor : null;\r
+},\r
+\r
+_showPopover: function(anchor)\r
+{\r
+var resource = anchor.parentElement.resource;\r
+var tableElement = WebInspector.ResourceTimingView.createTimingTable(resource);\r
+var popover = new WebInspector.Popover(tableElement);\r
+popover.show(anchor);\r
+return popover;\r
+},\r
+\r
+_toggleGridMode: function()\r
+{\r
+if (this._viewingResourceMode) {\r
+this._viewingResourceMode = false;\r
+this.element.removeStyleClass("viewing-resource");\r
+this._dataGrid.element.removeStyleClass("viewing-resource-mode");\r
+this._viewsContainerElement.addStyleClass("hidden");\r
+this.sidebarElement.style.right = 0;\r
+this.sidebarElement.style.removeProperty("width");\r
+this._summaryBarElement.style.removeProperty("width");\r
+if (this._dataGrid.selectedNode)\r
+this._dataGrid.selectedNode.selected = false;\r
+}\r
+\r
+if (this._briefGrid) {\r
+this._dataGrid.element.removeStyleClass("full-grid-mode");\r
+this._dataGrid.element.addStyleClass("brief-grid-mode");\r
+\r
+this._dataGrid.hideColumn("method");\r
+this._dataGrid.hideColumn("status");\r
+this._dataGrid.hideColumn("type");\r
+this._dataGrid.hideColumn("size");\r
+this._dataGrid.hideColumn("time");\r
+\r
+var widths = {};\r
+widths.name = 20;\r
+widths.timeline = 80;\r
+} else {\r
+this._dataGrid.element.addStyleClass("full-grid-mode");\r
+this._dataGrid.element.removeStyleClass("brief-grid-mode");\r
+\r
+this._dataGrid.showColumn("method");\r
+this._dataGrid.showColumn("status");\r
+this._dataGrid.showColumn("type");\r
+this._dataGrid.showColumn("size");\r
+this._dataGrid.showColumn("time");\r
+\r
+var widths = {};\r
+widths.name = 20;\r
+widths.method = 7;\r
+widths.status = 8;\r
+widths.type = 10;\r
+widths.size = 10;\r
+widths.time = 10;\r
+widths.timeline = 37;\r
+}\r
+\r
+this._dataGrid.showColumn("timeline");\r
+this._dataGrid.applyColumnWidthsMap(widths);\r
+\r
+},\r
+\r
+_toggleViewingResourceMode: function()\r
+{\r
+if (this._viewingResourceMode)\r
+return;\r
+this._viewingResourceMode = true;\r
+this._preservedColumnWidths = this._dataGrid.columnWidthsMap();\r
+\r
+this.element.addStyleClass("viewing-resource");\r
+this._dataGrid.element.addStyleClass("viewing-resource-mode");\r
+this._dataGrid.element.removeStyleClass("full-grid-mode");\r
+this._dataGrid.element.removeStyleClass("brief-grid-mode");\r
+\r
+this._dataGrid.hideColumn("method");\r
+this._dataGrid.hideColumn("status");\r
+this._dataGrid.hideColumn("type");\r
+this._dataGrid.hideColumn("size");\r
+this._dataGrid.hideColumn("time");\r
+this._dataGrid.hideColumn("timeline");\r
+\r
+this._viewsContainerElement.removeStyleClass("hidden");\r
+this.updateSidebarWidth(200);\r
+\r
+var widths = {};\r
+widths.name = 100;\r
+this._dataGrid.applyColumnWidthsMap(widths);\r
+},\r
+\r
+_contextMenu: function(event)\r
+{\r
+\r
+if (typeof window.createObjectURL !== "function" || !Preferences.resourceExportEnabled)\r
+return;\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+var gridNode = this._dataGrid.dataGridNodeFromNode(event.target);\r
+var resource = gridNode && gridNode._resource;\r
+if (resource)\r
+contextMenu.appendItem(WebInspector.UIString("Export to HAR"), this._exportResource.bind(this, resource));\r
+contextMenu.appendItem(WebInspector.UIString("Export all to HAR"), this._exportAll.bind(this));\r
+contextMenu.show(event);\r
+},\r
+\r
+_exportAll: function()\r
+{\r
+var harArchive = {\r
+log: (new WebInspector.HARLog()).build()\r
+}\r
+offerFileForDownload(JSON.stringify(harArchive));\r
+},\r
+\r
+_exportResource: function(resource)\r
+{\r
+var har = (new WebInspector.HAREntry(resource)).build();\r
+offerFileForDownload(JSON.stringify(har));\r
+}\r
+}\r
+\r
+WebInspector.NetworkPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+WebInspector.NetworkBaseCalculator = function()\r
+{\r
+}\r
+\r
+WebInspector.NetworkBaseCalculator.prototype = {\r
+computeSummaryValues: function(items)\r
+{\r
+var total = 0;\r
+var categoryValues = {};\r
+\r
+var itemsLength = items.length;\r
+for (var i = 0; i < itemsLength; ++i) {\r
+var item = items[i];\r
+var value = this._value(item);\r
+if (typeof value === "undefined")\r
+continue;\r
+if (!(item.category.name in categoryValues))\r
+categoryValues[item.category.name] = 0;\r
+categoryValues[item.category.name] += value;\r
+total += value;\r
+}\r
+\r
+return {categoryValues: categoryValues, total: total};\r
+},\r
+\r
+computeBarGraphPercentages: function(item)\r
+{\r
+return {start: 0, middle: 0, end: (this._value(item) / this.boundarySpan) * 100};\r
+},\r
+\r
+computeBarGraphLabels: function(item)\r
+{\r
+const label = this.formatValue(this._value(item));\r
+return {left: label, right: label, tooltip: label};\r
+},\r
+\r
+get boundarySpan()\r
+{\r
+return this.maximumBoundary - this.minimumBoundary;\r
+},\r
+\r
+updateBoundaries: function(item)\r
+{\r
+this.minimumBoundary = 0;\r
+\r
+var value = this._value(item);\r
+if (typeof this.maximumBoundary === "undefined" || value > this.maximumBoundary) {\r
+this.maximumBoundary = value;\r
+return true;\r
+}\r
+return false;\r
+},\r
+\r
+reset: function()\r
+{\r
+delete this.minimumBoundary;\r
+delete this.maximumBoundary;\r
+},\r
+\r
+_value: function(item)\r
+{\r
+return 0;\r
+},\r
+\r
+formatValue: function(value)\r
+{\r
+return value.toString();\r
+}\r
+}\r
+\r
+WebInspector.NetworkTimeCalculator = function(startAtZero)\r
+{\r
+WebInspector.NetworkBaseCalculator.call(this);\r
+this.startAtZero = startAtZero;\r
+}\r
+\r
+WebInspector.NetworkTimeCalculator.prototype = {\r
+computeSummaryValues: function(resources)\r
+{\r
+var resourcesByCategory = {};\r
+var resourcesLength = resources.length;\r
+for (var i = 0; i < resourcesLength; ++i) {\r
+var resource = resources[i];\r
+if (!(resource.category.name in resourcesByCategory))\r
+resourcesByCategory[resource.category.name] = [];\r
+resourcesByCategory[resource.category.name].push(resource);\r
+}\r
+\r
+var earliestStart;\r
+var latestEnd;\r
+var categoryValues = {};\r
+for (var category in resourcesByCategory) {\r
+resourcesByCategory[category].sort(WebInspector.Resource.CompareByTime);\r
+categoryValues[category] = 0;\r
+\r
+var segment = {start: -1, end: -1};\r
+\r
+var categoryResources = resourcesByCategory[category];\r
+var resourcesLength = categoryResources.length;\r
+for (var i = 0; i < resourcesLength; ++i) {\r
+var resource = categoryResources[i];\r
+if (resource.startTime === -1 || resource.endTime === -1)\r
+continue;\r
+\r
+if (typeof earliestStart === "undefined")\r
+earliestStart = resource.startTime;\r
+else\r
+earliestStart = Math.min(earliestStart, resource.startTime);\r
+\r
+if (typeof latestEnd === "undefined")\r
+latestEnd = resource.endTime;\r
+else\r
+latestEnd = Math.max(latestEnd, resource.endTime);\r
+\r
+if (resource.startTime <= segment.end) {\r
+segment.end = Math.max(segment.end, resource.endTime);\r
+continue;\r
+}\r
+\r
+categoryValues[category] += segment.end - segment.start;\r
+\r
+segment.start = resource.startTime;\r
+segment.end = resource.endTime;\r
+}\r
+\r
+\r
+categoryValues[category] += segment.end - segment.start;\r
+}\r
+\r
+return {categoryValues: categoryValues, total: latestEnd - earliestStart};\r
+},\r
+\r
+computeBarGraphPercentages: function(resource)\r
+{\r
+if (resource.startTime !== -1)\r
+var start = ((resource.startTime - this.minimumBoundary) / this.boundarySpan) * 100;\r
+else\r
+var start = 0;\r
+\r
+if (resource.responseReceivedTime !== -1)\r
+var middle = ((resource.responseReceivedTime - this.minimumBoundary) / this.boundarySpan) * 100;\r
+else\r
+var middle = (this.startAtZero ? start : 100);\r
+\r
+if (resource.endTime !== -1)\r
+var end = ((resource.endTime - this.minimumBoundary) / this.boundarySpan) * 100;\r
+else\r
+var end = (this.startAtZero ? middle : 100);\r
+\r
+if (this.startAtZero) {\r
+end -= start;\r
+middle -= start;\r
+start = 0;\r
+}\r
+\r
+return {start: start, middle: middle, end: end};\r
+},\r
+\r
+computePercentageFromEventTime: function(eventTime)\r
+{\r
+\r
+\r
+\r
+if (eventTime !== -1 && !this.startAtZero)\r
+return ((eventTime - this.minimumBoundary) / this.boundarySpan) * 100;\r
+\r
+return 0;\r
+},\r
+\r
+computeBarGraphLabels: function(resource)\r
+{\r
+var rightLabel = "";\r
+if (resource.responseReceivedTime !== -1 && resource.endTime !== -1)\r
+rightLabel = this.formatValue(resource.endTime - resource.responseReceivedTime);\r
+\r
+var hasLatency = resource.latency > 0;\r
+if (hasLatency)\r
+var leftLabel = this.formatValue(resource.latency);\r
+else\r
+var leftLabel = rightLabel;\r
+\r
+if (resource.timing)\r
+return {left: leftLabel, right: rightLabel};\r
+\r
+if (hasLatency && rightLabel) {\r
+var total = this.formatValue(resource.duration);\r
+var tooltip = WebInspector.UIString("%s latency, %s download (%s total)", leftLabel, rightLabel, total);\r
+} else if (hasLatency)\r
+var tooltip = WebInspector.UIString("%s latency", leftLabel);\r
+else if (rightLabel)\r
+var tooltip = WebInspector.UIString("%s download", rightLabel);\r
+\r
+if (resource.cached)\r
+tooltip = WebInspector.UIString("%s (from cache)", tooltip);\r
+return {left: leftLabel, right: rightLabel, tooltip: tooltip};\r
+},\r
+\r
+updateBoundaries: function(resource)\r
+{\r
+var didChange = false;\r
+\r
+var lowerBound;\r
+if (this.startAtZero)\r
+lowerBound = 0;\r
+else\r
+lowerBound = this._lowerBound(resource);\r
+\r
+if (lowerBound !== -1 && (typeof this.minimumBoundary === "undefined" || lowerBound < this.minimumBoundary)) {\r
+this.minimumBoundary = lowerBound;\r
+didChange = true;\r
+}\r
+\r
+var upperBound = this._upperBound(resource);\r
+if (upperBound !== -1 && (typeof this.maximumBoundary === "undefined" || upperBound > this.maximumBoundary)) {\r
+this.maximumBoundary = upperBound;\r
+didChange = true;\r
+}\r
+\r
+return didChange;\r
+},\r
+\r
+formatValue: function(value)\r
+{\r
+return Number.secondsToString(value, WebInspector.UIString);\r
+},\r
+\r
+_lowerBound: function(resource)\r
+{\r
+return 0;\r
+},\r
+\r
+_upperBound: function(resource)\r
+{\r
+return 0;\r
+}\r
+}\r
+\r
+WebInspector.NetworkTimeCalculator.prototype.__proto__ = WebInspector.NetworkBaseCalculator.prototype;\r
+\r
+WebInspector.NetworkTransferTimeCalculator = function()\r
+{\r
+WebInspector.NetworkTimeCalculator.call(this, false);\r
+}\r
+\r
+WebInspector.NetworkTransferTimeCalculator.prototype = {\r
+formatValue: function(value)\r
+{\r
+return Number.secondsToString(value, WebInspector.UIString);\r
+},\r
+\r
+_lowerBound: function(resource)\r
+{\r
+return resource.startTime;\r
+},\r
+\r
+_upperBound: function(resource)\r
+{\r
+return resource.endTime;\r
+}\r
+}\r
+\r
+WebInspector.NetworkTransferTimeCalculator.prototype.__proto__ = WebInspector.NetworkTimeCalculator.prototype;\r
+\r
+WebInspector.NetworkTransferDurationCalculator = function()\r
+{\r
+WebInspector.NetworkTimeCalculator.call(this, true);\r
+}\r
+\r
+WebInspector.NetworkTransferDurationCalculator.prototype = {\r
+formatValue: function(value)\r
+{\r
+return Number.secondsToString(value, WebInspector.UIString);\r
+},\r
+\r
+_upperBound: function(resource)\r
+{\r
+return resource.duration;\r
+}\r
+}\r
+\r
+WebInspector.NetworkTransferDurationCalculator.prototype.__proto__ = WebInspector.NetworkTimeCalculator.prototype;\r
+\r
+WebInspector.NetworkDataGridNode = function(panel, resource)\r
+{\r
+WebInspector.DataGridNode.call(this, {});\r
+this._panel = panel;\r
+this._resource = resource;\r
+}\r
+\r
+WebInspector.NetworkDataGridNode.prototype = {\r
+createCells: function()\r
+{\r
+this._nameCell = this._createDivInTD("name");\r
+this._methodCell = this._createDivInTD("method");\r
+this._statusCell = this._createDivInTD("status");\r
+this._typeCell = this._createDivInTD("type");\r
+this._sizeCell = this._createDivInTD("size");\r
+this._timeCell = this._createDivInTD("time");\r
+this._createTimelineCell();\r
+this._nameCell.addEventListener("click", this.select.bind(this), false);\r
+},\r
+\r
+select: function()\r
+{\r
+this._panel._showResource(this._resource);\r
+WebInspector.DataGridNode.prototype.select.apply(this, arguments);\r
+},\r
+\r
+get selectable()\r
+{\r
+if (!this._panel._viewingResourceMode)\r
+return false;\r
+if (!this._panel._hiddenCategories.all)\r
+return true;\r
+if (this._panel._hiddenCategories[this._resource.category.name])\r
+return false;\r
+return true;\r
+},\r
+\r
+_createDivInTD: function(columnIdentifier)\r
+{\r
+var td = document.createElement("td");\r
+td.className = columnIdentifier + "-column";\r
+var div = document.createElement("div");\r
+td.appendChild(div);\r
+this._element.appendChild(td);\r
+return div;\r
+},\r
+\r
+_createTimelineCell: function()\r
+{\r
+this._graphElement = document.createElement("div");\r
+this._graphElement.className = "network-graph-side";\r
+\r
+this._barAreaElement = document.createElement("div");\r
+\r
+this._barAreaElement.className = "network-graph-bar-area";\r
+this._barAreaElement.resource = this._resource;\r
+this._graphElement.appendChild(this._barAreaElement);\r
+\r
+this._barLeftElement = document.createElement("div");\r
+this._barLeftElement.className = "network-graph-bar waiting";\r
+this._barAreaElement.appendChild(this._barLeftElement);\r
+\r
+this._barRightElement = document.createElement("div");\r
+this._barRightElement.className = "network-graph-bar";\r
+this._barAreaElement.appendChild(this._barRightElement);\r
+\r
+\r
+this._labelLeftElement = document.createElement("div");\r
+this._labelLeftElement.className = "network-graph-label waiting";\r
+this._barAreaElement.appendChild(this._labelLeftElement);\r
+\r
+this._labelRightElement = document.createElement("div");\r
+this._labelRightElement.className = "network-graph-label";\r
+this._barAreaElement.appendChild(this._labelRightElement);\r
+\r
+this._graphElement.addEventListener("mouseover", this._refreshLabelPositions.bind(this), false);\r
+\r
+this._timelineCell = document.createElement("td");\r
+this._timelineCell.className = "timeline-column";\r
+this._element.appendChild(this._timelineCell);\r
+this._timelineCell.appendChild(this._graphElement);\r
+},\r
+\r
+refreshResource: function()\r
+{\r
+this._refreshNameCell();\r
+\r
+this._methodCell.textContent = this._resource.requestMethod;\r
+\r
+this._refreshStatusCell();\r
+\r
+if (this._resource.mimeType) {\r
+this._typeCell.removeStyleClass("network-dim-cell");\r
+this._typeCell.textContent = this._resource.mimeType;\r
+} else {\r
+this._typeCell.addStyleClass("network-dim-cell");\r
+this._typeCell.textContent = WebInspector.UIString("Pending");\r
+}\r
+\r
+this._refreshSizeCell();\r
+this._refreshTimeCell();\r
+\r
+if (this._resource.cached)\r
+this._graphElement.addStyleClass("resource-cached");\r
+\r
+this._element.addStyleClass("network-item");\r
+if (!this._element.hasStyleClass("network-category-" + this._resource.category.name)) {\r
+this._element.removeMatchingStyleClasses("network-category-\\w+");\r
+this._element.addStyleClass("network-category-" + this._resource.category.name);\r
+}\r
+},\r
+\r
+_refreshNameCell: function()\r
+{\r
+this._nameCell.removeChildren();\r
+\r
+if (this._resource.category === WebInspector.resourceCategories.images) {\r
+var previewImage = document.createElement("img");\r
+previewImage.className = "image-network-icon-preview";\r
+\r
+function onResourceContent()\r
+{\r
+previewImage.src = this._resource.contentURL;\r
+}\r
+if (Preferences.useDataURLForResourceImageIcons)\r
+this._resource.requestContent(onResourceContent.bind(this));\r
+else\r
+previewImage.src = this._resource.url;\r
+\r
+var iconElement = document.createElement("div");\r
+iconElement.className = "icon";\r
+iconElement.appendChild(previewImage);\r
+} else {\r
+var iconElement = document.createElement("img");\r
+iconElement.className = "icon";\r
+}\r
+this._nameCell.appendChild(iconElement);\r
+this._nameCell.appendChild(document.createTextNode(this._fileName()));\r
+\r
+\r
+var subtitle = this._resource.displayDomain;\r
+\r
+if (this._resource.path && this._resource.lastPathComponent) {\r
+var lastPathComponentIndex = this._resource.path.lastIndexOf("/" + this._resource.lastPathComponent);\r
+if (lastPathComponentIndex != -1)\r
+subtitle += this._resource.path.substring(0, lastPathComponentIndex);\r
+}\r
+\r
+this._appendSubtitle(this._nameCell, subtitle);\r
+this._nameCell.title = this._resource.url;\r
+},\r
+\r
+_fileName: function()\r
+{\r
+var fileName = this._resource.displayName;\r
+if (this._resource.queryString)\r
+fileName += "?" + this._resource.queryString;\r
+return fileName;\r
+},\r
+\r
+_refreshStatusCell: function()\r
+{\r
+this._statusCell.removeChildren();\r
+\r
+var fromCache = this._resource.cached;\r
+if (fromCache) {\r
+this._statusCell.textContent = WebInspector.UIString("(from cache)");\r
+this._statusCell.addStyleClass("network-dim-cell");\r
+return;\r
+}\r
+\r
+this._statusCell.removeStyleClass("network-dim-cell");\r
+if (this._resource.statusCode) {\r
+this._statusCell.appendChild(document.createTextNode(this._resource.statusCode));\r
+this._statusCell.removeStyleClass("network-dim-cell");\r
+this._appendSubtitle(this._statusCell, this._resource.statusText);\r
+this._statusCell.title = this._resource.statusCode + " " + this._resource.statusText;\r
+} else {\r
+this._statusCell.addStyleClass("network-dim-cell");\r
+this._statusCell.textContent = WebInspector.UIString("Pending");\r
+}\r
+},\r
+\r
+_refreshSizeCell: function()\r
+{\r
+var resourceSize = typeof this._resource.resourceSize === "number" ? Number.bytesToString(this._resource.resourceSize) : "?";\r
+var transferSize = typeof this._resource.transferSize === "number" ? Number.bytesToString(this._resource.transferSize) : "?";\r
+var fromCache = this._resource.cached;\r
+this._sizeCell.textContent = !fromCache ? resourceSize : WebInspector.UIString("(from cache)");\r
+if (fromCache)\r
+this._sizeCell.addStyleClass("network-dim-cell");\r
+else\r
+this._sizeCell.removeStyleClass("network-dim-cell");\r
+if (!fromCache)\r
+this._appendSubtitle(this._sizeCell, transferSize);\r
+},\r
+\r
+_refreshTimeCell: function()\r
+{\r
+if (this._resource.duration > 0) {\r
+this._timeCell.removeStyleClass("network-dim-cell");\r
+this._timeCell.textContent = Number.secondsToString(this._resource.duration);\r
+this._appendSubtitle(this._timeCell, Number.secondsToString(this._resource.latency));\r
+} else {\r
+this._timeCell.addStyleClass("network-dim-cell");\r
+this._timeCell.textContent = WebInspector.UIString("Pending");\r
+}\r
+},\r
+\r
+_appendSubtitle: function(cellElement, subtitleText)\r
+{\r
+var subtitleElement = document.createElement("div");\r
+subtitleElement.className = "network-cell-subtitle";\r
+subtitleElement.textContent = subtitleText;\r
+cellElement.appendChild(subtitleElement);\r
+},\r
+\r
+refreshGraph: function(calculator)\r
+{\r
+var percentages = calculator.computeBarGraphPercentages(this._resource);\r
+this._percentages = percentages;\r
+\r
+this._barAreaElement.removeStyleClass("hidden");\r
+\r
+if (!this._graphElement.hasStyleClass("network-category-" + this._resource.category.name)) {\r
+this._graphElement.removeMatchingStyleClasses("network-category-\\w+");\r
+this._graphElement.addStyleClass("network-category-" + this._resource.category.name);\r
+}\r
+\r
+this._barLeftElement.style.setProperty("left", percentages.start + "%");\r
+this._barRightElement.style.setProperty("right", (100 - percentages.end) + "%");\r
+\r
+this._barLeftElement.style.setProperty("right", (100 - percentages.end) + "%");\r
+this._barRightElement.style.setProperty("left", percentages.middle + "%");\r
+\r
+var labels = calculator.computeBarGraphLabels(this._resource);\r
+this._labelLeftElement.textContent = labels.left;\r
+this._labelRightElement.textContent = labels.right;\r
+\r
+var tooltip = (labels.tooltip || "");\r
+this._barLeftElement.title = tooltip;\r
+this._labelLeftElement.title = tooltip;\r
+this._labelRightElement.title = tooltip;\r
+this._barRightElement.title = tooltip;\r
+},\r
+\r
+_refreshLabelPositions: function()\r
+{\r
+if (!this._percentages)\r
+return;\r
+this._labelLeftElement.style.removeProperty("left");\r
+this._labelLeftElement.style.removeProperty("right");\r
+this._labelLeftElement.removeStyleClass("before");\r
+this._labelLeftElement.removeStyleClass("hidden");\r
+\r
+this._labelRightElement.style.removeProperty("left");\r
+this._labelRightElement.style.removeProperty("right");\r
+this._labelRightElement.removeStyleClass("after");\r
+this._labelRightElement.removeStyleClass("hidden");\r
+\r
+const labelPadding = 10;\r
+const barRightElementOffsetWidth = this._barRightElement.offsetWidth;\r
+const barLeftElementOffsetWidth = this._barLeftElement.offsetWidth;\r
+\r
+if (this._barLeftElement) {\r
+var leftBarWidth = barLeftElementOffsetWidth - labelPadding;\r
+var rightBarWidth = (barRightElementOffsetWidth - barLeftElementOffsetWidth) - labelPadding;\r
+} else {\r
+var leftBarWidth = (barLeftElementOffsetWidth - barRightElementOffsetWidth) - labelPadding;\r
+var rightBarWidth = barRightElementOffsetWidth - labelPadding;\r
+}\r
+\r
+const labelLeftElementOffsetWidth = this._labelLeftElement.offsetWidth;\r
+const labelRightElementOffsetWidth = this._labelRightElement.offsetWidth;\r
+\r
+const labelBefore = (labelLeftElementOffsetWidth > leftBarWidth);\r
+const labelAfter = (labelRightElementOffsetWidth > rightBarWidth);\r
+const graphElementOffsetWidth = this._graphElement.offsetWidth;\r
+\r
+if (labelBefore && (graphElementOffsetWidth * (this._percentages.start / 100)) < (labelLeftElementOffsetWidth + 10))\r
+var leftHidden = true;\r
+\r
+if (labelAfter && (graphElementOffsetWidth * ((100 - this._percentages.end) / 100)) < (labelRightElementOffsetWidth + 10))\r
+var rightHidden = true;\r
+\r
+if (barLeftElementOffsetWidth == barRightElementOffsetWidth) {\r
+\r
+if (labelBefore && !labelAfter)\r
+leftHidden = true;\r
+else if (labelAfter && !labelBefore)\r
+rightHidden = true;\r
+}\r
+\r
+if (labelBefore) {\r
+if (leftHidden)\r
+this._labelLeftElement.addStyleClass("hidden");\r
+this._labelLeftElement.style.setProperty("right", (100 - this._percentages.start) + "%");\r
+this._labelLeftElement.addStyleClass("before");\r
+} else {\r
+this._labelLeftElement.style.setProperty("left", this._percentages.start + "%");\r
+this._labelLeftElement.style.setProperty("right", (100 - this._percentages.middle) + "%");\r
+}\r
+\r
+if (labelAfter) {\r
+if (rightHidden)\r
+this._labelRightElement.addStyleClass("hidden");\r
+this._labelRightElement.style.setProperty("left", this._percentages.end + "%");\r
+this._labelRightElement.addStyleClass("after");\r
+} else {\r
+this._labelRightElement.style.setProperty("left", this._percentages.middle + "%");\r
+this._labelRightElement.style.setProperty("right", (100 - this._percentages.end) + "%");\r
+}\r
+}\r
+}\r
+\r
+WebInspector.NetworkDataGridNode.NameComparator = function(a, b)\r
+{\r
+var aFileName = a._resource.displayName + (a._resource.queryString ? a._resource.queryString : "");\r
+var bFileName = b._resource.displayName + (b._resource.queryString ? b._resource.queryString : "");\r
+if (aFileName > bFileName)\r
+return 1;\r
+if (bFileName > aFileName)\r
+return -1;\r
+return 0;\r
+}\r
+\r
+WebInspector.NetworkDataGridNode.SizeComparator = function(a, b)\r
+{\r
+if (b._resource.cached && !a._resource.cached)\r
+return 1;\r
+if (a._resource.cached && !b._resource.cached)\r
+return -1;\r
+\r
+if (a._resource.resourceSize === b._resource.resourceSize)\r
+return 0;\r
+\r
+return a._resource.resourceSize - b._resource.resourceSize;\r
+}\r
+\r
+WebInspector.NetworkDataGridNode.ResourcePropertyComparator = function(propertyName, revert, a, b)\r
+{\r
+var aValue = a._resource[propertyName];\r
+var bValue = b._resource[propertyName];\r
+if (aValue > bValue)\r
+return revert ? -1 : 1;\r
+if (bValue > aValue)\r
+return revert ? 1 : -1;\r
+return 0;\r
+}\r
+\r
+WebInspector.NetworkDataGridNode.prototype.__proto__ = WebInspector.DataGridNode.prototype;\r
+\r
+WebInspector.NetworkTotalGridNode = function(element)\r
+{\r
+this._summaryBarElement = element;\r
+WebInspector.DataGridNode.call(this, {summaryRow: true});\r
+}\r
+\r
+WebInspector.NetworkTotalGridNode.prototype = {\r
+createCells: function()\r
+{\r
+var td = document.createElement("td");\r
+td.setAttribute("colspan", 7);\r
+td.className = "network-summary";\r
+td.appendChild(this._summaryBarElement);\r
+this._element.appendChild(td);\r
+}\r
+}\r
+\r
+WebInspector.NetworkTotalGridNode.prototype.__proto__ = WebInspector.DataGridNode.prototype;\r
+\r
+\r
+\r
+\r
+\r
+var InjectedFakeWorker = function(InjectedScriptHost, inspectedWindow, injectedScriptId)\r
+{\r
+\r
+Worker = function(url)\r
+{\r
+var impl = new FakeWorker(this, url);\r
+if (impl === null)\r
+return null;\r
+\r
+this.isFake = true;\r
+this.postMessage = bind(impl.postMessage, impl);\r
+this.terminate = bind(impl.terminate, impl);\r
+\r
+function onmessageGetter()\r
+{\r
+return impl.channel.port1.onmessage;\r
+}\r
+function onmessageSetter(callback)\r
+{\r
+impl.channel.port1.onmessage = callback;\r
+}\r
+this.__defineGetter__("onmessage", onmessageGetter);\r
+this.__defineSetter__("onmessage", onmessageSetter);\r
+this.addEventListener = bind(impl.channel.port1.addEventListener, impl.channel.port1);\r
+this.removeEventListener = bind(impl.channel.port1.removeEventListener, impl.channel.port1);\r
+this.dispatchEvent = bind(impl.channel.port1.dispatchEvent, impl.channel.port1);\r
+}\r
+\r
+function FakeWorker(worker, url)\r
+{\r
+var scriptURL = this._expandURLAndCheckOrigin(document.baseURI, location.href, url);\r
+\r
+this._worker = worker;\r
+this._id = InjectedScriptHost.nextWorkerId();\r
+this.channel = new MessageChannel();\r
+this._listeners = [];\r
+this._buildWorker(scriptURL);\r
+\r
+InjectedScriptHost.didCreateWorker(this._id, scriptURL.url, false);\r
+}\r
+\r
+FakeWorker.prototype = {\r
+postMessage: function(msg, opt_ports)\r
+{\r
+if (this._frame != null)\r
+this.channel.port1.postMessage.apply(this.channel.port1, arguments);\r
+else if (this._pendingMessages)\r
+this._pendingMessages.push(arguments)\r
+else\r
+this._pendingMessages = [ arguments ];\r
+},\r
+\r
+terminate: function()\r
+{\r
+InjectedScriptHost.didDestroyWorker(this._id);\r
+\r
+this.channel.port1.close();\r
+this.channel.port2.close();\r
+if (this._frame != null)\r
+this._frame.frameElement.parentNode.removeChild(this._frame.frameElement);\r
+this._frame = null;\r
+this._worker = null; \r
+},\r
+\r
+_buildWorker: function(url)\r
+{\r
+var code = this._loadScript(url.url);\r
+var iframeElement = document.createElement("iframe");\r
+iframeElement.style.display = "none";\r
+\r
+this._document = document;\r
+iframeElement.onload = bind(this._onWorkerFrameLoaded, this, iframeElement, url, code);\r
+\r
+if (document.body)\r
+this._attachWorkerFrameToDocument(iframeElement, url, code);\r
+else\r
+window.addEventListener("load", bind(this._attachWorkerFrameToDocument, this, iframeElement), false);\r
+},\r
+\r
+_attachWorkerFrameToDocument: function(iframeElement)\r
+{\r
+document.body.appendChild(iframeElement);\r
+},\r
+\r
+_onWorkerFrameLoaded: function(iframeElement, url, code)\r
+{\r
+var frame = iframeElement.contentWindow;\r
+this._frame = frame;\r
+this._setupWorkerContext(frame, url);\r
+\r
+var frameContents = '(function() { var location = __devtools.location; var window; ' + code + '})();\n' + '//@ sourceURL=' + url.url;\r
+\r
+frame.eval(frameContents);\r
+if (this._pendingMessages) {\r
+for (var msg = 0; msg < this._pendingMessages.length; ++msg)\r
+this.postMessage.apply(this, this._pendingMessages[msg]);\r
+delete this._pendingMessages;\r
+}\r
+},\r
+\r
+_setupWorkerContext: function(workerFrame, url)\r
+{\r
+workerFrame.__devtools = {\r
+handleException: bind(this._handleException, this),\r
+location: url.mockLocation()\r
+};\r
+\r
+var self = this;\r
+\r
+function onmessageGetter()\r
+{\r
+return self.channel.port2.onmessage ? self.channel.port2.onmessage.originalCallback : null;\r
+}\r
+\r
+function onmessageSetter(callback)\r
+{\r
+var wrappedCallback = bind(self._callbackWrapper, self, callback);\r
+wrappedCallback.originalCallback = callback;\r
+self.channel.port2.onmessage = wrappedCallback;\r
+}\r
+\r
+workerFrame.__defineGetter__("onmessage", onmessageGetter);\r
+workerFrame.__defineSetter__("onmessage", onmessageSetter);\r
+workerFrame.addEventListener = bind(this._addEventListener, this);\r
+workerFrame.removeEventListener = bind(this._removeEventListener, this);\r
+workerFrame.dispatchEvent = bind(this.channel.port2.dispatchEvent, this.channel.port2);\r
+workerFrame.postMessage = bind(this.channel.port2.postMessage, this.channel.port2);\r
+workerFrame.importScripts = bind(this._importScripts, this, workerFrame);\r
+workerFrame.close = bind(this.terminate, this);\r
+},\r
+\r
+_addEventListener: function(type, callback, useCapture)\r
+{\r
+var wrappedCallback = bind(this._callbackWrapper, this, callback);\r
+wrappedCallback.originalCallback = callback;\r
+wrappedCallback.type = type;\r
+wrappedCallback.useCapture = Boolean(useCapture);\r
+\r
+this.channel.port2.addEventListener(type, wrappedCallback, useCapture);\r
+this._listeners.push(wrappedCallback);\r
+},\r
+\r
+_removeEventListener: function(type, callback, useCapture)\r
+{\r
+var listeners = this._listeners;\r
+for (var i = 0; i < listeners.length; ++i) {\r
+if (listeners[i].originalCallback === callback &&\r
+listeners[i].type === type && \r
+listeners[i].useCapture === Boolean(useCapture)) {\r
+this.channel.port2.removeEventListener(type, listeners[i], useCapture);\r
+listeners[i] = listeners[listeners.length - 1];\r
+listeners.pop();\r
+break;\r
+}\r
+}\r
+},\r
+\r
+_callbackWrapper: function(callback, msg)\r
+{\r
+\r
+if (!this._frame.onerror && !this._worker.onerror) {\r
+callback(msg);\r
+return;\r
+}\r
+\r
+try {\r
+callback(msg);\r
+} catch (e) {\r
+this._handleException(e, this._frame.onerror, this._worker.onerror);\r
+}\r
+},\r
+\r
+_handleException: function(e)\r
+{\r
+\r
+\r
+var errorEvent = this._document.createEvent("Event");\r
+errorEvent.initEvent("Event", false, false);\r
+errorEvent.message = "Uncaught exception";\r
+\r
+for (var i = 1; i < arguments.length; ++i) {\r
+if (arguments[i] && arguments[i](errorEvent))\r
+return;\r
+}\r
+\r
+throw e;\r
+},\r
+\r
+_importScripts: function(targetFrame)\r
+{\r
+for (var i = 1; i < arguments.length; ++i) {\r
+var workerOrigin = targetFrame.__devtools.location.href;\r
+var url = this._expandURLAndCheckOrigin(workerOrigin, workerOrigin, arguments[i]);\r
+targetFrame.eval(this._loadScript(url.url) + "\n//@ sourceURL= " + url.url);\r
+}\r
+},\r
+\r
+_loadScript: function(url)\r
+{\r
+var xhr = new XMLHttpRequest();\r
+xhr.open("GET", url, false);\r
+xhr.send(null);\r
+\r
+var text = xhr.responseText;\r
+if (xhr.status != 0 && xhr.status/100 !== 2) { \r
+console.error("Failed to load worker: " + url + "[" + xhr.status + "]");\r
+text = ""; \r
+}\r
+return text;\r
+},\r
+\r
+_expandURLAndCheckOrigin: function(baseURL, origin, url)\r
+{\r
+var scriptURL = new URL(baseURL).completeWith(url);\r
+\r
+if (!scriptURL.sameOrigin(origin))\r
+throw new DOMCoreException("SECURITY_ERR",18);\r
+return scriptURL;\r
+}\r
+};\r
+\r
+function URL(url)\r
+{\r
+this.url = url;\r
+this.split();\r
+}\r
+\r
+URL.prototype = {\r
+urlRegEx: (/^(http[s]?|file):\/\/([^\/:]*)(:[\d]+)?(?:(\/[^#?]*)(\?[^#]*)?(?:#(.*))?)?$/i),\r
+\r
+split: function()\r
+{\r
+function emptyIfNull(str)\r
+{\r
+return str == null ? "" : str;\r
+}\r
+var parts = this.urlRegEx.exec(this.url);\r
+\r
+this.schema = parts[1];\r
+this.host = parts[2];\r
+this.port = emptyIfNull(parts[3]);\r
+this.path = emptyIfNull(parts[4]);\r
+this.query = emptyIfNull(parts[5]);\r
+this.fragment = emptyIfNull(parts[6]);\r
+},\r
+\r
+mockLocation: function()\r
+{\r
+var host = this.host.replace(/^[^@]*@/, "");\r
+\r
+return {\r
+href:     this.url,\r
+protocol: this.schema + ":",\r
+host:     host,\r
+hostname: host,\r
+port:     this.port,\r
+pathname: this.path,\r
+search:   this.query,\r
+hash:     this.fragment\r
+};\r
+},\r
+\r
+completeWith: function(url)\r
+{\r
+if (url === "" || /^[^/]*:/.exec(url)) // If given absolute url, return as is now.\r
+return new URL(url);\r
+\r
+var relParts = /^([^#?]*)(.*)$/.exec(url); \r
+\r
+var path = (relParts[1].slice(0, 1) === "/" ? "" : this.path.replace(/[^/]*$/, "")) + relParts[1];\r
+path = path.replace(/(\/\.)+(\/|$)/g, "/").replace(/[^/]*\/\.\.(\/|$)/g, "");\r
+\r
+return new URL(this.schema + "://" + this.host + this.port + path + relParts[2]);\r
+},\r
+\r
+sameOrigin: function(url)\r
+{\r
+function normalizePort(schema, port)\r
+{\r
+var portNo = port.slice(1);\r
+return (schema === "https" && portNo == 443 || schema === "http" && portNo == 80) ? "" : port;\r
+}\r
+\r
+var other = new URL(url);\r
+\r
+return this.schema === other.schema &&\r
+this.host === other.host &&\r
+normalizePort(this.schema, this.port) === normalizePort(other.schema, other.port);\r
+}\r
+};\r
+\r
+function DOMCoreException(name, code)\r
+{\r
+function formatError()\r
+{\r
+return "Error: " + this.message;\r
+}\r
+\r
+this.name = name;\r
+this.message = name + ": DOM Exception " + code;\r
+this.code = code;\r
+this.toString = bind(formatError, this);\r
+}\r
+\r
+function bind(func, thisObject)\r
+{\r
+var args = Array.prototype.slice.call(arguments, 2);\r
+return function() { return func.apply(thisObject, args.concat(Array.prototype.slice.call(arguments, 0))); };\r
+}\r
+\r
+function noop()\r
+{\r
+}\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ScriptsPanel = function()\r
+{\r
+WebInspector.Panel.call(this, "scripts");\r
+\r
+this.topStatusBar = document.createElement("div");\r
+this.topStatusBar.className = "status-bar";\r
+this.topStatusBar.id = "scripts-status-bar";\r
+this.element.appendChild(this.topStatusBar);\r
+\r
+this.backButton = document.createElement("button");\r
+this.backButton.className = "status-bar-item";\r
+this.backButton.id = "scripts-back";\r
+this.backButton.title = WebInspector.UIString("Show the previous script resource.");\r
+this.backButton.disabled = true;\r
+this.backButton.appendChild(document.createElement("img"));\r
+this.backButton.addEventListener("click", this._goBack.bind(this), false);\r
+this.topStatusBar.appendChild(this.backButton);\r
+\r
+this.forwardButton = document.createElement("button");\r
+this.forwardButton.className = "status-bar-item";\r
+this.forwardButton.id = "scripts-forward";\r
+this.forwardButton.title = WebInspector.UIString("Show the next script resource.");\r
+this.forwardButton.disabled = true;\r
+this.forwardButton.appendChild(document.createElement("img"));\r
+this.forwardButton.addEventListener("click", this._goForward.bind(this), false);\r
+this.topStatusBar.appendChild(this.forwardButton);\r
+\r
+this.filesSelectElement = document.createElement("select");\r
+this.filesSelectElement.className = "status-bar-item";\r
+this.filesSelectElement.id = "scripts-files";\r
+this.filesSelectElement.addEventListener("change", this._changeVisibleFile.bind(this), false);\r
+this.topStatusBar.appendChild(this.filesSelectElement);\r
+\r
+this.functionsSelectElement = document.createElement("select");\r
+this.functionsSelectElement.className = "status-bar-item";\r
+this.functionsSelectElement.id = "scripts-functions";\r
+\r
+\r
+\r
+\r
+this.sidebarButtonsElement = document.createElement("div");\r
+this.sidebarButtonsElement.id = "scripts-sidebar-buttons";\r
+this.topStatusBar.appendChild(this.sidebarButtonsElement);\r
+\r
+this.pauseButton = document.createElement("button");\r
+this.pauseButton.className = "status-bar-item";\r
+this.pauseButton.id = "scripts-pause";\r
+this.pauseButton.title = WebInspector.UIString("Pause script execution.");\r
+this.pauseButton.disabled = true;\r
+this.pauseButton.appendChild(document.createElement("img"));\r
+this.pauseButton.addEventListener("click", this._togglePause.bind(this), false);\r
+this.sidebarButtonsElement.appendChild(this.pauseButton);\r
+\r
+this.stepOverButton = document.createElement("button");\r
+this.stepOverButton.className = "status-bar-item";\r
+this.stepOverButton.id = "scripts-step-over";\r
+this.stepOverButton.title = WebInspector.UIString("Step over next function call.");\r
+this.stepOverButton.disabled = true;\r
+this.stepOverButton.addEventListener("click", this._stepOverClicked.bind(this), false);\r
+this.stepOverButton.appendChild(document.createElement("img"));\r
+this.sidebarButtonsElement.appendChild(this.stepOverButton);\r
+\r
+this.stepIntoButton = document.createElement("button");\r
+this.stepIntoButton.className = "status-bar-item";\r
+this.stepIntoButton.id = "scripts-step-into";\r
+this.stepIntoButton.title = WebInspector.UIString("Step into next function call.");\r
+this.stepIntoButton.disabled = true;\r
+this.stepIntoButton.addEventListener("click", this._stepIntoClicked.bind(this), false);\r
+this.stepIntoButton.appendChild(document.createElement("img"));\r
+this.sidebarButtonsElement.appendChild(this.stepIntoButton);\r
+\r
+this.stepOutButton = document.createElement("button");\r
+this.stepOutButton.className = "status-bar-item";\r
+this.stepOutButton.id = "scripts-step-out";\r
+this.stepOutButton.title = WebInspector.UIString("Step out of current function.");\r
+this.stepOutButton.disabled = true;\r
+this.stepOutButton.addEventListener("click", this._stepOutClicked.bind(this), false);\r
+this.stepOutButton.appendChild(document.createElement("img"));\r
+this.sidebarButtonsElement.appendChild(this.stepOutButton);\r
+\r
+this.toggleBreakpointsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Deactivate all breakpoints."), "toggle-breakpoints");\r
+this.toggleBreakpointsButton.toggled = true;\r
+this.toggleBreakpointsButton.addEventListener("click", this.toggleBreakpointsClicked.bind(this), false);\r
+this.sidebarButtonsElement.appendChild(this.toggleBreakpointsButton.element);\r
+\r
+this.debuggerStatusElement = document.createElement("div");\r
+this.debuggerStatusElement.id = "scripts-debugger-status";\r
+this.sidebarButtonsElement.appendChild(this.debuggerStatusElement);\r
+\r
+this.viewsContainerElement = document.createElement("div");\r
+this.viewsContainerElement.id = "script-resource-views";\r
+\r
+this.sidebarElement = document.createElement("div");\r
+this.sidebarElement.id = "scripts-sidebar";\r
+\r
+this.sidebarResizeElement = document.createElement("div");\r
+this.sidebarResizeElement.className = "sidebar-resizer-vertical";\r
+this.sidebarResizeElement.addEventListener("mousedown", this._startSidebarResizeDrag.bind(this), false);\r
+\r
+this.sidebarResizeWidgetElement = document.createElement("div");\r
+this.sidebarResizeWidgetElement.id = "scripts-sidebar-resizer-widget";\r
+this.sidebarResizeWidgetElement.addEventListener("mousedown", this._startSidebarResizeDrag.bind(this), false);\r
+this.topStatusBar.appendChild(this.sidebarResizeWidgetElement);\r
+\r
+this.sidebarPanes = {};\r
+this.sidebarPanes.watchExpressions = new WebInspector.WatchExpressionsSidebarPane();\r
+this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane();\r
+this.sidebarPanes.scopechain = new WebInspector.ScopeChainSidebarPane();\r
+this.sidebarPanes.jsBreakpoints = WebInspector.createJSBreakpointsSidebarPane();\r
+if (Preferences.nativeInstrumentationEnabled) {\r
+this.sidebarPanes.domBreakpoints = WebInspector.createDOMBreakpointsSidebarPane();\r
+this.sidebarPanes.xhrBreakpoints = WebInspector.createXHRBreakpointsSidebarPane();\r
+this.sidebarPanes.eventListenerBreakpoints = new WebInspector.EventListenerBreakpointsSidebarPane();\r
+}\r
+\r
+this.sidebarPanes.workers = new WebInspector.WorkersSidebarPane();\r
+\r
+for (var pane in this.sidebarPanes)\r
+this.sidebarElement.appendChild(this.sidebarPanes[pane].element);\r
+\r
+this.sidebarPanes.callstack.expanded = true;\r
+this.sidebarPanes.callstack.addEventListener("call frame selected", this._callFrameSelected, this);\r
+\r
+this.sidebarPanes.scopechain.expanded = true;\r
+this.sidebarPanes.jsBreakpoints.expanded = true;\r
+\r
+var panelEnablerHeading = WebInspector.UIString("You need to enable debugging before you can use the Scripts panel.");\r
+var panelEnablerDisclaimer = WebInspector.UIString("Enabling debugging will make scripts run slower.");\r
+var panelEnablerButton = WebInspector.UIString("Enable Debugging");\r
+\r
+this.panelEnablerView = new WebInspector.PanelEnablerView("scripts", panelEnablerHeading, panelEnablerDisclaimer, panelEnablerButton);\r
+this.panelEnablerView.addEventListener("enable clicked", this._enableDebugging, this);\r
+\r
+this.element.appendChild(this.panelEnablerView.element);\r
+this.element.appendChild(this.viewsContainerElement);\r
+this.element.appendChild(this.sidebarElement);\r
+this.element.appendChild(this.sidebarResizeElement);\r
+\r
+this.enableToggleButton = new WebInspector.StatusBarButton("", "enable-toggle-status-bar-item");\r
+this.enableToggleButton.addEventListener("click", this._toggleDebugging.bind(this), false);\r
+if (Preferences.debuggerAlwaysEnabled)\r
+this.enableToggleButton.element.addStyleClass("hidden");\r
+\r
+this._pauseOnExceptionButton = new WebInspector.StatusBarButton("", "scripts-pause-on-exceptions-status-bar-item", 3);\r
+this._pauseOnExceptionButton.addEventListener("click", this._togglePauseOnExceptions.bind(this), false);\r
+this._pauseOnExceptionButton.state = WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions;\r
+this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions.");\r
+\r
+this._registerShortcuts();\r
+\r
+this._debuggerEnabled = Preferences.debuggerAlwaysEnabled;\r
+\r
+this.reset();\r
+\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, this._failedToParseScriptSource, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this);\r
+}\r
+\r
+\r
+WebInspector.ScriptsPanel.PauseOnExceptionsState = {\r
+DontPauseOnExceptions : 0,\r
+PauseOnAllExceptions : 1,\r
+PauseOnUncaughtExceptions: 2\r
+};\r
+\r
+WebInspector.ScriptsPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Scripts");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this.enableToggleButton.element, this._pauseOnExceptionButton.element];\r
+},\r
+\r
+get defaultFocusedElement()\r
+{\r
+return this.filesSelectElement;\r
+},\r
+\r
+get paused()\r
+{\r
+return this._paused;\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+this.sidebarResizeElement.style.right = (this.sidebarElement.offsetWidth - 3) + "px";\r
+\r
+if (this.visibleView)\r
+this.visibleView.show(this.viewsContainerElement);\r
+\r
+if (this._attachDebuggerWhenShown) {\r
+InspectorBackend.enableDebugger(false);\r
+delete this._attachDebuggerWhenShown;\r
+}\r
+},\r
+\r
+hide: function()\r
+{\r
+if (this.visibleView)\r
+this.visibleView.hide();\r
+WebInspector.Panel.prototype.hide.call(this);\r
+},\r
+\r
+get breakpointsActivated()\r
+{\r
+return this.toggleBreakpointsButton.toggled;\r
+},\r
+\r
+_parsedScriptSource: function(event)\r
+{\r
+var sourceID = event.data;\r
+var script = WebInspector.debuggerModel.scriptForSourceID(sourceID);\r
+this._addScript(script);\r
+},\r
+\r
+_failedToParseScriptSource: function(event)\r
+{\r
+this._addScript(event.data);\r
+},\r
+\r
+_addScript: function(script)\r
+{\r
+var resource = WebInspector.resourceForURL(script.sourceURL);\r
+if (resource) {\r
+if (resource.finished) {\r
+\r
+script.resource = resource;\r
+var view = WebInspector.ResourceManager.existingResourceViewForResource(resource);\r
+if (view && view.sourceFrame)\r
+view.sourceFrame.addScript(script);\r
+} else {\r
+\r
+if (!resource._scriptsPendingResourceLoad) {\r
+resource._scriptsPendingResourceLoad = [];\r
+resource.addEventListener("finished", this._resourceLoadingFinished, this);\r
+}\r
+resource._scriptsPendingResourceLoad.push(script);\r
+}\r
+}\r
+this._addScriptToFilesMenu(script);\r
+},\r
+\r
+_resourceLoadingFinished: function(e)\r
+{\r
+var resource = e.target;\r
+for (var i = 0; i < resource._scriptsPendingResourceLoad.length; ++i) {\r
+\r
+var script = resource._scriptsPendingResourceLoad[i];\r
+script.resource = resource;\r
+\r
+\r
+script.filesSelectOption.parentElement.removeChild(script.filesSelectOption);\r
+}\r
+\r
+this._addScriptToFilesMenu(resource._scriptsPendingResourceLoad[0]);\r
+delete resource._scriptsPendingResourceLoad;\r
+},\r
+\r
+canEditScripts: function()\r
+{\r
+return Preferences.canEditScriptSource;\r
+},\r
+\r
+editScriptSource: function(editData, commitEditingCallback, cancelEditingCallback)\r
+{\r
+if (!this.canEditScripts())\r
+return;\r
+\r
+\r
+var breakpoints = WebInspector.debuggerModel.queryBreakpoints(function(b) { return b.sourceID === editData.sourceID });\r
+for (var i = 0; i < breakpoints.length; ++i)\r
+breakpoints[i].remove();\r
+\r
+function mycallback(success, newBodyOrErrorMessage, callFrames)\r
+{\r
+if (success) {\r
+commitEditingCallback(newBodyOrErrorMessage);\r
+if (callFrames && callFrames.length)\r
+this._debuggerPaused({ data: { callFrames: callFrames } });\r
+} else {\r
+if (cancelEditingCallback)\r
+cancelEditingCallback();\r
+WebInspector.log(newBodyOrErrorMessage, WebInspector.ConsoleMessage.MessageLevel.Warning);\r
+}\r
+for (var i = 0; i < breakpoints.length; ++i) {\r
+var breakpoint = breakpoints[i];\r
+var newLine = breakpoint.line;\r
+if (success && breakpoint.line >= editData.line)\r
+newLine += editData.linesCountToShift;\r
+WebInspector.debuggerModel.setBreakpoint(editData.sourceID, newLine, breakpoint.enabled, breakpoint.condition);\r
+}\r
+};\r
+InspectorBackend.editScriptSource(editData.sourceID, editData.content, mycallback.bind(this));\r
+},\r
+\r
+selectedCallFrameId: function()\r
+{\r
+var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame;\r
+if (!selectedCallFrame)\r
+return null;\r
+return selectedCallFrame.id;\r
+},\r
+\r
+evaluateInSelectedCallFrame: function(code, updateInterface, objectGroup, callback)\r
+{\r
+var selectedCallFrame = this.sidebarPanes.callstack.selectedCallFrame;\r
+if (!this._paused || !selectedCallFrame)\r
+return;\r
+\r
+if (typeof updateInterface === "undefined")\r
+updateInterface = true;\r
+\r
+var self = this;\r
+function updatingCallbackWrapper(result)\r
+{\r
+callback(result);\r
+if (updateInterface)\r
+self.sidebarPanes.scopechain.update(selectedCallFrame);\r
+}\r
+this.doEvalInCallFrame(selectedCallFrame, code, objectGroup, updatingCallbackWrapper);\r
+},\r
+\r
+doEvalInCallFrame: function(callFrame, code, objectGroup, callback)\r
+{\r
+function evalCallback(result)\r
+{\r
+if (result)\r
+callback(WebInspector.RemoteObject.fromPayload(result));\r
+}\r
+InjectedScriptAccess.get(callFrame.worldId).evaluateInCallFrame(callFrame.id, code, objectGroup, evalCallback);\r
+},\r
+\r
+_debuggerPaused: function(event)\r
+{\r
+var callFrames = event.data.callFrames;\r
+\r
+this._paused = true;\r
+this._waitingToPause = false;\r
+this._stepping = false;\r
+\r
+this._updateDebuggerButtons();\r
+\r
+WebInspector.currentPanel = this;\r
+\r
+this.sidebarPanes.callstack.update(callFrames, event.data.eventType, event.data.eventData);\r
+this.sidebarPanes.callstack.selectedCallFrame = callFrames[0];\r
+\r
+window.focus();\r
+InspectorFrontendHost.bringToFront();\r
+},\r
+\r
+_debuggerResumed: function()\r
+{\r
+this._paused = false;\r
+this._waitingToPause = false;\r
+this._stepping = false;\r
+\r
+this._clearInterface();\r
+},\r
+\r
+attachDebuggerWhenShown: function()\r
+{\r
+if (this.element.parentElement) {\r
+InspectorBackend.enableDebugger(false);\r
+} else {\r
+this._attachDebuggerWhenShown = true;\r
+}\r
+},\r
+\r
+debuggerWasEnabled: function()\r
+{\r
+if (this._debuggerEnabled)\r
+return;\r
+\r
+this._debuggerEnabled = true;\r
+this.reset(true);\r
+},\r
+\r
+debuggerWasDisabled: function()\r
+{\r
+if (!this._debuggerEnabled)\r
+return;\r
+\r
+this._debuggerEnabled = false;\r
+this.reset(true);\r
+},\r
+\r
+reset: function(preserveItems)\r
+{\r
+this.visibleView = null;\r
+\r
+delete this.currentQuery;\r
+this.searchCanceled();\r
+\r
+this._debuggerResumed();\r
+\r
+this._backForwardList = [];\r
+this._currentBackForwardIndex = -1;\r
+this._updateBackAndForwardButtons();\r
+\r
+this._resourceForURLInFilesSelect = {};\r
+this.filesSelectElement.removeChildren();\r
+this.functionsSelectElement.removeChildren();\r
+this.viewsContainerElement.removeChildren();\r
+\r
+var scripts = WebInspector.debuggerModel.queryScripts(function(s) { return !!s.resource; });\r
+for (var i = 0; i < scripts.length; ++i)\r
+delete scripts[i].resource._resourcesView;\r
+\r
+this.sidebarPanes.watchExpressions.refreshExpressions();\r
+if (!preserveItems)\r
+this.sidebarPanes.workers.reset();\r
+},\r
+\r
+get visibleView()\r
+{\r
+return this._visibleView;\r
+},\r
+\r
+set visibleView(x)\r
+{\r
+if (this._visibleView === x)\r
+return;\r
+\r
+if (this._visibleView)\r
+this._visibleView.hide();\r
+\r
+this._visibleView = x;\r
+\r
+if (x)\r
+x.show(this.viewsContainerElement);\r
+},\r
+\r
+viewRecreated: function(oldView, newView)\r
+{\r
+if (this._visibleView === oldView)\r
+this._visibleView = newView;\r
+},\r
+\r
+canShowSourceLine: function(url, line)\r
+{\r
+if (!this._debuggerEnabled)\r
+return false;\r
+return !!this._scriptOrResourceForURLAndLine(url, line);\r
+},\r
+\r
+showSourceLine: function(url, line)\r
+{\r
+var scriptOrResource = this._scriptOrResourceForURLAndLine(url, line);\r
+this._showScriptOrResource(scriptOrResource, {line: line, shouldHighlightLine: true});\r
+},\r
+\r
+_scriptOrResourceForURLAndLine: function(url, line)\r
+{\r
+var scripts = WebInspector.debuggerModel.scriptsForURL(url);\r
+for (var i = 0; i < scripts.length; ++i) {\r
+var script = scripts[i];\r
+if (script.resource)\r
+return script.resource;\r
+if (script.startingLine <= line && script.startingLine + script.linesCount > line)\r
+return script;\r
+}\r
+return null;\r
+},\r
+\r
+showView: function(view)\r
+{\r
+if (!view)\r
+return;\r
+this._showScriptOrResource(view.resource || view.script);\r
+},\r
+\r
+handleShortcut: function(event)\r
+{\r
+var shortcut = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);\r
+var handler = this._shortcuts[shortcut];\r
+if (handler) {\r
+handler(event);\r
+event.handled = true;\r
+} else\r
+this.sidebarPanes.callstack.handleShortcut(event);\r
+},\r
+\r
+scriptViewForScript: function(script)\r
+{\r
+if (!script)\r
+return null;\r
+if (!script._scriptView)\r
+script._scriptView = new WebInspector.ScriptView(script);\r
+return script._scriptView;\r
+},\r
+\r
+sourceFrameForScript: function(script)\r
+{\r
+var view = this.scriptViewForScript(script);\r
+if (!view)\r
+return null;\r
+\r
+\r
+if (!this.element.parentNode)\r
+this.attach();\r
+\r
+view.setupSourceFrameIfNeeded();\r
+return view.sourceFrame;\r
+},\r
+\r
+_sourceFrameForScriptOrResource: function(scriptOrResource)\r
+{\r
+if (scriptOrResource instanceof WebInspector.Resource)\r
+return this._sourceFrameForResource(scriptOrResource);\r
+if (scriptOrResource instanceof WebInspector.Script)\r
+return this.sourceFrameForScript(scriptOrResource);\r
+},\r
+\r
+_sourceFrameForResource: function(resource)\r
+{\r
+var view = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+if (!view)\r
+return null;\r
+\r
+if (!view.setupSourceFrameIfNeeded)\r
+return null;\r
+\r
+view.setupSourceFrameIfNeeded();\r
+return view.sourceFrame;\r
+},\r
+\r
+_showScriptOrResource: function(scriptOrResource, options)\r
+{\r
+\r
+options = options || {};\r
+\r
+if (!scriptOrResource)\r
+return;\r
+\r
+var view;\r
+if (scriptOrResource instanceof WebInspector.Resource)\r
+view = WebInspector.ResourceManager.resourceViewForResource(scriptOrResource);\r
+else if (scriptOrResource instanceof WebInspector.Script)\r
+view = this.scriptViewForScript(scriptOrResource);\r
+\r
+if (!view)\r
+return;\r
+\r
+var url = scriptOrResource.url || scriptOrResource.sourceURL;\r
+if (url && !options.initialLoad)\r
+WebInspector.settings.lastViewedScriptFile = url;\r
+\r
+if (!options.fromBackForwardAction) {\r
+var oldIndex = this._currentBackForwardIndex;\r
+if (oldIndex >= 0)\r
+this._backForwardList.splice(oldIndex + 1, this._backForwardList.length - oldIndex);\r
+\r
+\r
+\r
+var previousEntryIndex = this._backForwardList.indexOf(scriptOrResource);\r
+if (previousEntryIndex !== -1) {\r
+this._backForwardList.splice(previousEntryIndex, 1);\r
+--this._currentBackForwardIndex;\r
+}\r
+\r
+this._backForwardList.push(scriptOrResource);\r
+++this._currentBackForwardIndex;\r
+\r
+this._updateBackAndForwardButtons();\r
+}\r
+\r
+this.visibleView = view;\r
+\r
+if (options.line) {\r
+if (view.revealLine)\r
+view.revealLine(options.line);\r
+if (view.highlightLine && options.shouldHighlightLine)\r
+view.highlightLine(options.line);\r
+}\r
+\r
+var option;\r
+if (scriptOrResource instanceof WebInspector.Script) {\r
+option = scriptOrResource.filesSelectOption;\r
+\r
+\r
+\r
+if (!option) {\r
+this._addScriptToFilesMenu(scriptOrResource, true);\r
+option = scriptOrResource.filesSelectOption;\r
+}\r
+\r
+console.assert(option);\r
+} else\r
+option = scriptOrResource.filesSelectOption;\r
+\r
+if (option)\r
+this.filesSelectElement.selectedIndex = option.index;\r
+},\r
+\r
+_addScriptToFilesMenu: function(script, force)\r
+{\r
+if (!script.sourceURL && !force)\r
+return;\r
+\r
+if (script.resource) {\r
+if (this._resourceForURLInFilesSelect[script.resource.url])\r
+return;\r
+this._resourceForURLInFilesSelect[script.resource.url] = script.resource;\r
+}\r
+\r
+var displayName = script.sourceURL ? WebInspector.displayNameForURL(script.sourceURL) : WebInspector.UIString("(program)");\r
+\r
+var select = this.filesSelectElement;\r
+var option = document.createElement("option");\r
+option.representedObject = script.resource || script;\r
+option.url = displayName;\r
+option.startingLine = script.startingLine;\r
+option.text = script.resource || script.startingLine === 1 ? displayName : String.sprintf("%s:%d", displayName, script.startingLine);\r
+\r
+function optionCompare(a, b)\r
+{\r
+if (a.url < b.url)\r
+return -1;\r
+else if (a.url > b.url)\r
+return 1;\r
+\r
+if (typeof a.startingLine !== "number")\r
+return -1;\r
+if (typeof b.startingLine !== "number")\r
+return -1;\r
+return a.startingLine - b.startingLine;\r
+}\r
+\r
+var insertionIndex = insertionIndexForObjectInListSortedByFunction(option, select.childNodes, optionCompare);\r
+if (insertionIndex < 0)\r
+select.appendChild(option);\r
+else\r
+select.insertBefore(option, select.childNodes.item(insertionIndex));\r
+\r
+if (script.resource)\r
+script.resource.filesSelectOption = option;\r
+else\r
+script.filesSelectOption = option;\r
+\r
+if (select.options[select.selectedIndex] === option) {\r
+\r
+\r
+this._showScriptOrResource(option.representedObject, {initialLoad: true});\r
+} else {\r
+\r
+var url = option.representedObject.url || option.representedObject.sourceURL;\r
+var lastURL = WebInspector.settings.lastViewedScriptFile;\r
+if (url && url === lastURL) {\r
+\r
+\r
+\r
+var isResource = !!option.representedObject.url;\r
+if (isResource || !this.visibleView || !this.visibleView.script || this.visibleView.script.sourceURL !== url)\r
+this._showScriptOrResource(option.representedObject, {initialLoad: true});\r
+}\r
+}\r
+\r
+if (script.worldType === WebInspector.Script.WorldType.EXTENSIONS_WORLD)\r
+script.filesSelectOption.addStyleClass("extension-script");\r
+},\r
+\r
+_clearCurrentExecutionLine: function()\r
+{\r
+if (this._executionSourceFrame)\r
+this._executionSourceFrame.executionLine = 0;\r
+delete this._executionSourceFrame;\r
+},\r
+\r
+_callFrameSelected: function()\r
+{\r
+this._clearCurrentExecutionLine();\r
+\r
+var callStackPane = this.sidebarPanes.callstack;\r
+var currentFrame = callStackPane.selectedCallFrame;\r
+if (!currentFrame)\r
+return;\r
+\r
+this.sidebarPanes.scopechain.update(currentFrame);\r
+this.sidebarPanes.watchExpressions.refreshExpressions();\r
+\r
+var script = WebInspector.debuggerModel.scriptForSourceID(currentFrame.sourceID);\r
+var scriptOrResource = script.resource || script;\r
+this._showScriptOrResource(scriptOrResource, {line: currentFrame.line});\r
+\r
+this._executionSourceFrame = this._sourceFrameForScriptOrResource(scriptOrResource);\r
+if (this._executionSourceFrame)\r
+this._executionSourceFrame.executionLine = currentFrame.line;\r
+},\r
+\r
+_changeVisibleFile: function(event)\r
+{\r
+var select = this.filesSelectElement;\r
+this._showScriptOrResource(select.options[select.selectedIndex].representedObject);\r
+},\r
+\r
+_startSidebarResizeDrag: function(event)\r
+{\r
+WebInspector.elementDragStart(this.sidebarElement, this._sidebarResizeDrag.bind(this), this._endSidebarResizeDrag.bind(this), event, "col-resize");\r
+\r
+if (event.target === this.sidebarResizeWidgetElement)\r
+this._dragOffset = (event.target.offsetWidth - (event.pageX - event.target.totalOffsetLeft));\r
+else\r
+this._dragOffset = 0;\r
+},\r
+\r
+_endSidebarResizeDrag: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+delete this._dragOffset;\r
+this.saveSidebarWidth();\r
+},\r
+\r
+_sidebarResizeDrag: function(event)\r
+{\r
+var x = event.pageX + this._dragOffset;\r
+var newWidth = Number.constrain(window.innerWidth - x, Preferences.minScriptsSidebarWidth, window.innerWidth * 0.66);\r
+this.setSidebarWidth(newWidth);\r
+event.preventDefault();\r
+},\r
+\r
+setSidebarWidth: function(newWidth)\r
+{\r
+this.sidebarElement.style.width = newWidth + "px";\r
+this.sidebarButtonsElement.style.width = newWidth + "px";\r
+this.viewsContainerElement.style.right = newWidth + "px";\r
+this.sidebarResizeWidgetElement.style.right = newWidth + "px";\r
+this.sidebarResizeElement.style.right = (newWidth - 3) + "px";\r
+\r
+this.resize();\r
+},\r
+\r
+updatePauseOnExceptionsState: function(pauseOnExceptionsState)\r
+{\r
+if (pauseOnExceptionsState == WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions)\r
+this._pauseOnExceptionButton.title = WebInspector.UIString("Don't pause on exceptions.\nClick to Pause on all exceptions.");\r
+else if (pauseOnExceptionsState == WebInspector.ScriptsPanel.PauseOnExceptionsState.PauseOnAllExceptions)\r
+this._pauseOnExceptionButton.title = WebInspector.UIString("Pause on all exceptions.\nClick to Pause on uncaught exceptions.");\r
+else if (pauseOnExceptionsState == WebInspector.ScriptsPanel.PauseOnExceptionsState.PauseOnUncaughtExceptions)\r
+this._pauseOnExceptionButton.title = WebInspector.UIString("Pause on uncaught exceptions.\nClick to Not pause on exceptions.");\r
+\r
+this._pauseOnExceptionButton.state = pauseOnExceptionsState;\r
+},\r
+\r
+_updateDebuggerButtons: function()\r
+{\r
+if (this._debuggerEnabled) {\r
+this.enableToggleButton.title = WebInspector.UIString("Debugging enabled. Click to disable.");\r
+this.enableToggleButton.toggled = true;\r
+this._pauseOnExceptionButton.visible = true;\r
+this.panelEnablerView.visible = false;\r
+} else {\r
+this.enableToggleButton.title = WebInspector.UIString("Debugging disabled. Click to enable.");\r
+this.enableToggleButton.toggled = false;\r
+this._pauseOnExceptionButton.visible = false;\r
+this.panelEnablerView.visible = true;\r
+}\r
+\r
+if (this._paused) {\r
+this.pauseButton.addStyleClass("paused");\r
+\r
+this.pauseButton.disabled = false;\r
+this.stepOverButton.disabled = false;\r
+this.stepIntoButton.disabled = false;\r
+this.stepOutButton.disabled = false;\r
+\r
+this.debuggerStatusElement.textContent = WebInspector.UIString("Paused");\r
+} else {\r
+this.pauseButton.removeStyleClass("paused");\r
+\r
+this.pauseButton.disabled = this._waitingToPause;\r
+this.stepOverButton.disabled = true;\r
+this.stepIntoButton.disabled = true;\r
+this.stepOutButton.disabled = true;\r
+\r
+if (this._waitingToPause)\r
+this.debuggerStatusElement.textContent = WebInspector.UIString("Pausing");\r
+else if (this._stepping)\r
+this.debuggerStatusElement.textContent = WebInspector.UIString("Stepping");\r
+else\r
+this.debuggerStatusElement.textContent = "";\r
+}\r
+},\r
+\r
+_updateBackAndForwardButtons: function()\r
+{\r
+this.backButton.disabled = this._currentBackForwardIndex <= 0;\r
+this.forwardButton.disabled = this._currentBackForwardIndex >= (this._backForwardList.length - 1);\r
+},\r
+\r
+_clearInterface: function()\r
+{\r
+this.sidebarPanes.callstack.update(null);\r
+this.sidebarPanes.scopechain.update(null);\r
+\r
+this._clearCurrentExecutionLine();\r
+this._updateDebuggerButtons();\r
+},\r
+\r
+_goBack: function()\r
+{\r
+if (this._currentBackForwardIndex <= 0) {\r
+console.error("Can't go back from index " + this._currentBackForwardIndex);\r
+return;\r
+}\r
+\r
+this._showScriptOrResource(this._backForwardList[--this._currentBackForwardIndex], {fromBackForwardAction: true});\r
+this._updateBackAndForwardButtons();\r
+},\r
+\r
+_goForward: function()\r
+{\r
+if (this._currentBackForwardIndex >= this._backForwardList.length - 1) {\r
+console.error("Can't go forward from index " + this._currentBackForwardIndex);\r
+return;\r
+}\r
+\r
+this._showScriptOrResource(this._backForwardList[++this._currentBackForwardIndex], {fromBackForwardAction: true});\r
+this._updateBackAndForwardButtons();\r
+},\r
+\r
+_enableDebugging: function()\r
+{\r
+if (this._debuggerEnabled)\r
+return;\r
+this._toggleDebugging(this.panelEnablerView.alwaysEnabled);\r
+},\r
+\r
+_toggleDebugging: function(optionalAlways)\r
+{\r
+this._paused = false;\r
+this._waitingToPause = false;\r
+this._stepping = false;\r
+\r
+if (this._debuggerEnabled)\r
+InspectorBackend.disableDebugger(true);\r
+else\r
+InspectorBackend.enableDebugger(!!optionalAlways);\r
+},\r
+\r
+_togglePauseOnExceptions: function()\r
+{\r
+InspectorBackend.setPauseOnExceptionsState((this._pauseOnExceptionButton.state + 1) % this._pauseOnExceptionButton.states, this.updatePauseOnExceptionsState.bind(this));\r
+},\r
+\r
+_togglePause: function()\r
+{\r
+if (this._paused) {\r
+this._paused = false;\r
+this._waitingToPause = false;\r
+InspectorBackend.resume();\r
+} else {\r
+this._stepping = false;\r
+this._waitingToPause = true;\r
+InspectorBackend.pause();\r
+}\r
+\r
+this._clearInterface();\r
+},\r
+\r
+_stepOverClicked: function()\r
+{\r
+this._paused = false;\r
+this._stepping = true;\r
+\r
+this._clearInterface();\r
+\r
+InspectorBackend.stepOverStatement();\r
+},\r
+\r
+_stepIntoClicked: function()\r
+{\r
+this._paused = false;\r
+this._stepping = true;\r
+\r
+this._clearInterface();\r
+\r
+InspectorBackend.stepIntoStatement();\r
+},\r
+\r
+_stepOutClicked: function()\r
+{\r
+this._paused = false;\r
+this._stepping = true;\r
+\r
+this._clearInterface();\r
+\r
+InspectorBackend.stepOutOfFunction();\r
+},\r
+\r
+toggleBreakpointsClicked: function()\r
+{\r
+this.toggleBreakpointsButton.toggled = !this.toggleBreakpointsButton.toggled;\r
+if (this.toggleBreakpointsButton.toggled) {\r
+InspectorBackend.activateBreakpoints();\r
+this.toggleBreakpointsButton.title = WebInspector.UIString("Deactivate all breakpoints.");\r
+document.getElementById("main-panels").removeStyleClass("breakpoints-deactivated");\r
+} else {\r
+InspectorBackend.deactivateBreakpoints();\r
+this.toggleBreakpointsButton.title = WebInspector.UIString("Activate all breakpoints.");\r
+document.getElementById("main-panels").addStyleClass("breakpoints-deactivated");\r
+}\r
+},\r
+\r
+elementsToRestoreScrollPositionsFor: function()\r
+{\r
+return [ this.sidebarElement ];\r
+},\r
+\r
+_registerShortcuts: function()\r
+{\r
+var section = WebInspector.shortcutsHelp.section(WebInspector.UIString("Scripts Panel"));\r
+var handler, shortcut1, shortcut2;\r
+var platformSpecificModifier = WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta;\r
+\r
+this._shortcuts = {};\r
+\r
+\r
+handler = this.pauseButton.click.bind(this.pauseButton);\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F8);\r
+this._shortcuts[shortcut1.key] = handler;\r
+shortcut2 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Slash, platformSpecificModifier);\r
+this._shortcuts[shortcut2.key] = handler;\r
+section.addAlternateKeys([ shortcut1.name, shortcut2.name ], WebInspector.UIString("Continue"));\r
+\r
+\r
+handler = this.stepOverButton.click.bind(this.stepOverButton);\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F10);\r
+this._shortcuts[shortcut1.key] = handler;\r
+shortcut2 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.SingleQuote, platformSpecificModifier);\r
+this._shortcuts[shortcut2.key] = handler;\r
+section.addAlternateKeys([ shortcut1.name, shortcut2.name ], WebInspector.UIString("Step over"));\r
+\r
+\r
+handler = this.stepIntoButton.click.bind(this.stepIntoButton);\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11);\r
+this._shortcuts[shortcut1.key] = handler;\r
+shortcut2 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon, platformSpecificModifier);\r
+this._shortcuts[shortcut2.key] = handler;\r
+section.addAlternateKeys([ shortcut1.name, shortcut2.name ], WebInspector.UIString("Step into"));\r
+\r
+\r
+handler = this.stepOutButton.click.bind(this.stepOutButton);\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.F11, WebInspector.KeyboardShortcut.Modifiers.Shift);\r
+this._shortcuts[shortcut1.key] = handler;\r
+shortcut2 = WebInspector.KeyboardShortcut.makeDescriptor(WebInspector.KeyboardShortcut.Keys.Semicolon, WebInspector.KeyboardShortcut.Modifiers.Shift, platformSpecificModifier);\r
+this._shortcuts[shortcut2.key] = handler;\r
+section.addAlternateKeys([ shortcut1.name, shortcut2.name ], WebInspector.UIString("Step out"));\r
+\r
+var isMac = WebInspector.isMac();\r
+if (isMac)\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor("l", WebInspector.KeyboardShortcut.Modifiers.Meta);\r
+else\r
+shortcut1 = WebInspector.KeyboardShortcut.makeDescriptor("g", WebInspector.KeyboardShortcut.Modifiers.Ctrl);\r
+this._shortcuts[shortcut1.key] = this.showGoToLineDialog.bind(this);\r
+section.addAlternateKeys([ shortcut1.name ], WebInspector.UIString("Go to Line"));\r
+this.sidebarPanes.callstack.registerShortcuts(section);\r
+},\r
+\r
+searchCanceled: function()\r
+{\r
+WebInspector.updateSearchMatchesCount(0, this);\r
+\r
+if (this._searchView)\r
+this._searchView.searchCanceled();\r
+\r
+delete this._searchView;\r
+delete this._searchQuery;\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+if (!this.visibleView)\r
+return;\r
+\r
+\r
+this.searchCanceled();\r
+\r
+this._searchView = this.visibleView;\r
+this._searchQuery = query;\r
+\r
+function finishedCallback(view, searchMatches)\r
+{\r
+if (!searchMatches)\r
+return;\r
+\r
+WebInspector.updateSearchMatchesCount(searchMatches, this);\r
+view.jumpToFirstSearchResult();\r
+}\r
+\r
+this._searchView.performSearch(query, finishedCallback.bind(this));\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+if (!this._searchView)\r
+return;\r
+\r
+if (this._searchView !== this.visibleView) {\r
+this.performSearch(this._searchQuery);\r
+return;\r
+}\r
+\r
+if (this._searchView.showingLastSearchResult())\r
+this._searchView.jumpToFirstSearchResult();\r
+else\r
+this._searchView.jumpToNextSearchResult();\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+if (!this._searchView)\r
+return;\r
+\r
+if (this._searchView !== this.visibleView) {\r
+this.performSearch(this._searchQuery);\r
+if (this._searchView)\r
+this._searchView.jumpToLastSearchResult();\r
+return;\r
+}\r
+\r
+if (this._searchView.showingFirstSearchResult())\r
+this._searchView.jumpToLastSearchResult();\r
+else\r
+this._searchView.jumpToPreviousSearchResult();\r
+},\r
+\r
+showGoToLineDialog: function(e)\r
+{\r
+var view = this.visibleView;\r
+if (view)\r
+WebInspector.GoToLineDialog.show(view);\r
+}\r
+}\r
+\r
+WebInspector.ScriptsPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourcesPanel = function(database)\r
+{\r
+WebInspector.Panel.call(this, "resources");\r
+\r
+WebInspector.settings.installApplicationSetting("resourcesLastSelectedItem", {});\r
+\r
+this.createSidebar();\r
+this.sidebarElement.addStyleClass("outline-disclosure filter-all children small");\r
+this.sidebarTreeElement.removeStyleClass("sidebar-tree");\r
+\r
+this.resourcesListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Frames"), "Frames", "frame-storage-tree-item");\r
+this.sidebarTree.appendChild(this.resourcesListTreeElement);\r
+this._treeElementForFrameId = {};\r
+\r
+this.databasesListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Databases"), "Databases", "database-storage-tree-item");\r
+this.sidebarTree.appendChild(this.databasesListTreeElement);\r
+\r
+this.localStorageListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Local Storage"), "LocalStorage", "domstorage-storage-tree-item local-storage");\r
+this.sidebarTree.appendChild(this.localStorageListTreeElement);\r
+\r
+this.sessionStorageListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Session Storage"), "SessionStorage", "domstorage-storage-tree-item session-storage");\r
+this.sidebarTree.appendChild(this.sessionStorageListTreeElement);\r
+\r
+this.cookieListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Cookies"), "Cookies", "cookie-storage-tree-item");\r
+this.sidebarTree.appendChild(this.cookieListTreeElement);\r
+\r
+this.applicationCacheListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("Application Cache"), "ApplicationCache", "application-cache-storage-tree-item");\r
+this.sidebarTree.appendChild(this.applicationCacheListTreeElement);\r
+\r
+if (Preferences.fileSystemEnabled) {\r
+this.fileSystemListTreeElement = new WebInspector.StorageCategoryTreeElement(this, WebInspector.UIString("File System"), "FileSystem", "file-system-storage-tree-item");\r
+this.sidebarTree.appendChild(this.fileSystemListTreeElement);\r
+this.fileSystemListTreeElement.expand();\r
+}\r
+\r
+this.storageViews = document.createElement("div");\r
+this.storageViews.id = "storage-views";\r
+this.storageViews.className = "diff-container";\r
+this.element.appendChild(this.storageViews);\r
+\r
+this.storageViewStatusBarItemsContainer = document.createElement("div");\r
+this.storageViewStatusBarItemsContainer.className = "status-bar-items";\r
+\r
+this._databases = [];\r
+this._domStorage = [];\r
+this._cookieViews = {};\r
+this._origins = {};\r
+this._domains = {};\r
+\r
+this.sidebarElement.addEventListener("mousemove", this._onmousemove.bind(this), false);\r
+this.sidebarElement.addEventListener("mouseout", this._onmouseout.bind(this), false);\r
+}\r
+\r
+WebInspector.ResourcesPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Resources");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this.storageViewStatusBarItemsContainer];\r
+},\r
+\r
+elementsToRestoreScrollPositionsFor: function()\r
+{\r
+return [this.sidebarElement];\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+\r
+if (this.visibleView instanceof WebInspector.ResourceView)\r
+this._showResourceView(this.visibleView.resource);\r
+\r
+if (this._initializedDefaultSelection)\r
+return;\r
+\r
+this._initializedDefaultSelection = true;\r
+var itemURL = WebInspector.settings.resourcesLastSelectedItem;\r
+if (itemURL) {\r
+for (var treeElement = this.sidebarTree.children[0]; treeElement; treeElement = treeElement.traverseNextTreeElement(false, this.sidebarTree, true)) {\r
+if (treeElement.itemURL === itemURL) {\r
+treeElement.select();\r
+treeElement.reveal();\r
+return;\r
+}\r
+}\r
+}\r
+this._initDefaultSelection();\r
+},\r
+\r
+_initDefaultSelection: function()\r
+{\r
+if (WebInspector.mainResource && this.resourcesListTreeElement && this.resourcesListTreeElement.expanded)\r
+this.showResource(WebInspector.mainResource);\r
+},\r
+\r
+reset: function()\r
+{\r
+this._origins = {};\r
+this._domains = {};\r
+for (var i = 0; i < this._databases.length; ++i) {\r
+var database = this._databases[i];\r
+delete database._tableViews;\r
+delete database._queryView;\r
+}\r
+this._databases = [];\r
+\r
+var domStorageLength = this._domStorage.length;\r
+for (var i = 0; i < this._domStorage.length; ++i) {\r
+var domStorage = this._domStorage[i];\r
+delete domStorage._domStorageView;\r
+}\r
+this._domStorage = [];\r
+\r
+this._cookieViews = {};\r
+this._fileSystemView = null;\r
+\r
+this._applicationCacheView = null;\r
+delete this._cachedApplicationCacheViewStatus;\r
+\r
+this.databasesListTreeElement.removeChildren();\r
+this.localStorageListTreeElement.removeChildren();\r
+this.sessionStorageListTreeElement.removeChildren();\r
+this.cookieListTreeElement.removeChildren();\r
+this.applicationCacheListTreeElement.removeChildren();\r
+if (Preferences.fileSystemEnabled)\r
+this.fileSystemListTreeElement.removeChildren();\r
+this.storageViews.removeChildren();\r
+\r
+this.storageViewStatusBarItemsContainer.removeChildren();\r
+\r
+if (this.sidebarTree.selectedTreeElement)\r
+this.sidebarTree.selectedTreeElement.deselect();\r
+},\r
+\r
+addOrUpdateFrame: function(parentFrameId, frameId, title, subtitle)\r
+{\r
+var frameTreeElement = this._treeElementForFrameId[frameId];\r
+if (frameTreeElement) {\r
+frameTreeElement.setTitles(title, subtitle);\r
+return;\r
+}\r
+\r
+var parentTreeElement = parentFrameId ? this._treeElementForFrameId[parentFrameId] : this.resourcesListTreeElement;\r
+if (!parentTreeElement) {\r
+console.warning("No frame with id:" + parentFrameId + " to route " + displayName + " to.")\r
+return;\r
+}\r
+\r
+var frameTreeElement = new WebInspector.FrameTreeElement(this, frameId, title, subtitle);\r
+this._treeElementForFrameId[frameId] = frameTreeElement;\r
+\r
+\r
+var children = parentTreeElement.children;\r
+for (var i = 0; i < children.length; ++i) {\r
+var child = children[i];\r
+if (!(child instanceof WebInspector.FrameTreeElement)) {\r
+parentTreeElement.insertChild(frameTreeElement, i);\r
+return;\r
+}\r
+if (child.displayName.localeCompare(frameTreeElement.displayName) > 0) {\r
+parentTreeElement.insertChild(frameTreeElement, i);\r
+return;\r
+}\r
+}\r
+parentTreeElement.appendChild(frameTreeElement);\r
+},\r
+\r
+removeFrame: function(frameId)\r
+{\r
+var frameTreeElement = this._treeElementForFrameId[frameId];\r
+if (!frameTreeElement)\r
+return;\r
+delete this._treeElementForFrameId[frameId];\r
+if (frameTreeElement.parent)\r
+frameTreeElement.parent.removeChild(frameTreeElement);\r
+},\r
+\r
+addResourceToFrame: function(frameId, resource)\r
+{\r
+this.addDocumentURL(resource.documentURL);\r
+\r
+if (resource.statusCode >= 301 && resource.statusCode <= 303)\r
+return;\r
+\r
+var frameTreeElement = this._treeElementForFrameId[frameId];\r
+if (!frameTreeElement) {\r
+\r
+\r
+return;\r
+}\r
+\r
+var resourceTreeElement = new WebInspector.FrameResourceTreeElement(this, resource);\r
+\r
+\r
+var children = frameTreeElement.children;\r
+for (var i = 0; i < children.length; ++i) {\r
+var child = children[i];\r
+if (!(child instanceof WebInspector.FrameResourceTreeElement))\r
+continue;\r
+\r
+if (resource.type === WebInspector.Resource.Type.Document ||\r
+(child._resource.type !== WebInspector.Resource.Type.Document && child._resource.displayName.localeCompare(resource.displayName) > 0)) {\r
+frameTreeElement.insertChild(resourceTreeElement, i);\r
+return;\r
+}\r
+}\r
+frameTreeElement.appendChild(resourceTreeElement);\r
+},\r
+\r
+removeResourcesFromFrame: function(frameId)\r
+{\r
+var frameTreeElement = this._treeElementForFrameId[frameId];\r
+if (frameTreeElement)\r
+frameTreeElement.removeChildren();\r
+},\r
+\r
+refreshResource: function(resource)\r
+{\r
+\r
+if (resource.type === WebInspector.Resource.Type.XHR) {\r
+var resourceTreeElement = this._findTreeElementForResource(resource);\r
+if (resourceTreeElement)\r
+resourceTreeElement.parent.removeChild(resourceTreeElement);\r
+}\r
+},\r
+\r
+addDatabase: function(database)\r
+{\r
+this._databases.push(database);\r
+\r
+var databaseTreeElement = new WebInspector.DatabaseTreeElement(this, database);\r
+database._databasesTreeElement = databaseTreeElement;\r
+this.databasesListTreeElement.appendChild(databaseTreeElement);\r
+},\r
+\r
+addDocumentURL: function(url)\r
+{\r
+var parsedURL = url.asParsedURL();\r
+if (!parsedURL)\r
+return;\r
+\r
+var domain = parsedURL.host;\r
+if (!this._domains[domain]) {\r
+this._domains[domain] = true;\r
+\r
+var cookieDomainTreeElement = new WebInspector.CookieTreeElement(this, domain);\r
+this.cookieListTreeElement.appendChild(cookieDomainTreeElement);\r
+\r
+var applicationCacheTreeElement = new WebInspector.ApplicationCacheTreeElement(this, domain);\r
+this.applicationCacheListTreeElement.appendChild(applicationCacheTreeElement);\r
+}\r
+\r
+if (Preferences.fileSystemEnabled) {\r
+\r
+var securityOrigin = parsedURL.scheme + "://" + parsedURL.host + (parsedURL.port ? (":" + parsedURL.port) : "");\r
+if (!this._origins[securityOrigin]) {\r
+this._origins[securityOrigin] = true;\r
+var fileSystemTreeElement = new WebInspector.FileSystemTreeElement(this, securityOrigin);\r
+this.fileSystemListTreeElement.appendChild(fileSystemTreeElement);\r
+}\r
+}\r
+},\r
+\r
+addDOMStorage: function(domStorage)\r
+{\r
+this._domStorage.push(domStorage);\r
+var domStorageTreeElement = new WebInspector.DOMStorageTreeElement(this, domStorage, (domStorage.isLocalStorage ? "local-storage" : "session-storage"));\r
+domStorage._domStorageTreeElement = domStorageTreeElement;\r
+if (domStorage.isLocalStorage)\r
+this.localStorageListTreeElement.appendChild(domStorageTreeElement);\r
+else\r
+this.sessionStorageListTreeElement.appendChild(domStorageTreeElement);\r
+},\r
+\r
+selectDatabase: function(databaseId)\r
+{\r
+var database;\r
+for (var i = 0, len = this._databases.length; i < len; ++i) {\r
+database = this._databases[i];\r
+if (database.id === databaseId) {\r
+this.showDatabase(database);\r
+database._databasesTreeElement.select();\r
+return;\r
+}\r
+}\r
+},\r
+\r
+selectDOMStorage: function(storageId)\r
+{\r
+var domStorage = this._domStorageForId(storageId);\r
+if (domStorage) {\r
+this.showDOMStorage(domStorage);\r
+domStorage._domStorageTreeElement.select();\r
+}\r
+},\r
+\r
+canShowSourceLine: function(url, line)\r
+{\r
+return !!WebInspector.resourceManager.resourceForURL(url);\r
+},\r
+\r
+showSourceLine: function(url, line)\r
+{\r
+var resource = WebInspector.resourceManager.resourceForURL(url);\r
+if (resource.type === WebInspector.Resource.Type.XHR) {\r
+\r
+if (WebInspector.panels.network && WebInspector.panels.network.canShowSourceLine(url, line)) {\r
+WebInspector.currentPanel = WebInspector.panels.network;\r
+WebInspector.panels.network.showSourceLine(url, line);\r
+}\r
+return;\r
+}\r
+this.showResource(WebInspector.resourceManager.resourceForURL(url), line);\r
+},\r
+\r
+showResource: function(resource, line)\r
+{\r
+var resourceTreeElement = this._findTreeElementForResource(resource);\r
+if (resourceTreeElement) {\r
+resourceTreeElement.reveal();\r
+resourceTreeElement.select();\r
+}\r
+\r
+if (line) {\r
+var view = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+if (view.revealLine)\r
+view.revealLine(line);\r
+if (view.highlightLine)\r
+view.highlightLine(line);\r
+}\r
+return true;\r
+},\r
+\r
+_showResourceView: function(resource)\r
+{\r
+var view = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+\r
+\r
+if (resource.baseRevision && view instanceof WebInspector.SourceView) {\r
+function callback(baseContent)\r
+{\r
+if (baseContent)\r
+this._applyDiffMarkup(view, baseContent, resource.content);\r
+}\r
+resource.baseRevision.requestContent(callback.bind(this));\r
+}\r
+this._innerShowView(view);\r
+},\r
+\r
+_applyDiffMarkup: function(view, baseContent, newContent) {\r
+var oldLines = baseContent.split("\n");\r
+var newLines = newContent.split("\n");\r
+\r
+var diff = Array.diff(oldLines, newLines);\r
+\r
+var diffData = {};\r
+diffData.added = [];\r
+diffData.removed = [];\r
+diffData.changed = [];\r
+\r
+var offset = 0;\r
+var right = diff.right;\r
+for (var i = 0; i < right.length; ++i) {\r
+if (typeof right[i] === "string") {\r
+if (right.length > i + 1 && right[i + 1].row === i + 1 - offset)\r
+diffData.changed.push(i);\r
+else {\r
+diffData.added.push(i);\r
+offset++;\r
+}\r
+} else\r
+offset = i - right[i].row;\r
+}\r
+view.sourceFrame.markDiff(diffData);\r
+},\r
+\r
+showDatabase: function(database, tableName)\r
+{\r
+if (!database)\r
+return;\r
+\r
+var view;\r
+if (tableName) {\r
+if (!("_tableViews" in database))\r
+database._tableViews = {};\r
+view = database._tableViews[tableName];\r
+if (!view) {\r
+view = new WebInspector.DatabaseTableView(database, tableName);\r
+database._tableViews[tableName] = view;\r
+}\r
+} else {\r
+view = database._queryView;\r
+if (!view) {\r
+view = new WebInspector.DatabaseQueryView(database);\r
+database._queryView = view;\r
+}\r
+}\r
+\r
+this._innerShowView(view);\r
+},\r
+\r
+showDOMStorage: function(domStorage)\r
+{\r
+if (!domStorage)\r
+return;\r
+\r
+var view;\r
+view = domStorage._domStorageView;\r
+if (!view) {\r
+view = new WebInspector.DOMStorageItemsView(domStorage);\r
+domStorage._domStorageView = view;\r
+}\r
+\r
+this._innerShowView(view);\r
+},\r
+\r
+showCookies: function(treeElement, cookieDomain)\r
+{\r
+var view = this._cookieViews[cookieDomain];\r
+if (!view) {\r
+view = new WebInspector.CookieItemsView(treeElement, cookieDomain);\r
+this._cookieViews[cookieDomain] = view;\r
+}\r
+\r
+this._innerShowView(view);\r
+},\r
+\r
+showApplicationCache: function(treeElement, appcacheDomain)\r
+{\r
+var view = this._applicationCacheView;\r
+if (!view) {\r
+view = new WebInspector.ApplicationCacheItemsView(treeElement, appcacheDomain);\r
+this._applicationCacheView = view;\r
+}\r
+\r
+this._innerShowView(view);\r
+\r
+if ("_cachedApplicationCacheViewStatus" in this)\r
+this._applicationCacheView.updateStatus(this._cachedApplicationCacheViewStatus);\r
+},\r
+\r
+showFileSystem: function(treeElement, origin)\r
+{\r
+this._fileSystemView = new WebInspector.FileSystemView(treeElement, origin);\r
+this._innerShowView(this._fileSystemView);\r
+},\r
+\r
+showCategoryView: function(categoryName)\r
+{\r
+if (!this._categoryView)\r
+this._categoryView = new WebInspector.StorageCategoryView();\r
+this._categoryView.setText(categoryName);\r
+this._innerShowView(this._categoryView);\r
+},\r
+\r
+_innerShowView: function(view)\r
+{\r
+if (this.visibleView)\r
+this.visibleView.hide();\r
+\r
+view.show(this.storageViews);\r
+this.visibleView = view;\r
+\r
+this.storageViewStatusBarItemsContainer.removeChildren();\r
+var statusBarItems = view.statusBarItems || [];\r
+for (var i = 0; i < statusBarItems.length; ++i)\r
+this.storageViewStatusBarItemsContainer.appendChild(statusBarItems[i]);\r
+},\r
+\r
+closeVisibleView: function()\r
+{\r
+if (this.visibleView)\r
+this.visibleView.hide();\r
+delete this.visibleView;\r
+},\r
+\r
+updateDatabaseTables: function(database)\r
+{\r
+if (!database || !database._databasesTreeElement)\r
+return;\r
+\r
+database._databasesTreeElement.shouldRefreshChildren = true;\r
+\r
+if (!("_tableViews" in database))\r
+return;\r
+\r
+var tableNamesHash = {};\r
+var self = this;\r
+function tableNamesCallback(tableNames)\r
+{\r
+var tableNamesLength = tableNames.length;\r
+for (var i = 0; i < tableNamesLength; ++i)\r
+tableNamesHash[tableNames[i]] = true;\r
+\r
+for (var tableName in database._tableViews) {\r
+if (!(tableName in tableNamesHash)) {\r
+if (self.visibleView === database._tableViews[tableName])\r
+self.closeVisibleView();\r
+delete database._tableViews[tableName];\r
+}\r
+}\r
+}\r
+database.getTableNames(tableNamesCallback);\r
+},\r
+\r
+dataGridForResult: function(columnNames, values)\r
+{\r
+var numColumns = columnNames.length;\r
+if (!numColumns)\r
+return null;\r
+\r
+var columns = {};\r
+\r
+for (var i = 0; i < columnNames.length; ++i) {\r
+var column = {};\r
+column.width = columnNames[i].length;\r
+column.title = columnNames[i];\r
+column.sortable = true;\r
+\r
+columns[columnNames[i]] = column;\r
+}\r
+\r
+var nodes = [];\r
+for (var i = 0; i < values.length / numColumns; ++i) {\r
+var data = {};\r
+for (var j = 0; j < columnNames.length; ++j)\r
+data[columnNames[j]] = values[numColumns * i + j];\r
+\r
+var node = new WebInspector.DataGridNode(data, false);\r
+node.selectable = false;\r
+nodes.push(node);\r
+}\r
+\r
+var dataGrid = new WebInspector.DataGrid(columns);\r
+var length = nodes.length;\r
+for (var i = 0; i < length; ++i)\r
+dataGrid.appendChild(nodes[i]);\r
+\r
+dataGrid.addEventListener("sorting changed", this._sortDataGrid.bind(this, dataGrid), this);\r
+return dataGrid;\r
+},\r
+\r
+_sortDataGrid: function(dataGrid)\r
+{\r
+var nodes = dataGrid.children.slice();\r
+var sortColumnIdentifier = dataGrid.sortColumnIdentifier;\r
+var sortDirection = dataGrid.sortOrder === "ascending" ? 1 : -1;\r
+var columnIsNumeric = true;\r
+\r
+for (var i = 0; i < nodes.length; i++) {\r
+if (isNaN(Number(nodes[i].data[sortColumnIdentifier])))\r
+columnIsNumeric = false;\r
+}\r
+\r
+function comparator(dataGridNode1, dataGridNode2)\r
+{\r
+var item1 = dataGridNode1.data[sortColumnIdentifier];\r
+var item2 = dataGridNode2.data[sortColumnIdentifier];\r
+\r
+var comparison;\r
+if (columnIsNumeric) {\r
+\r
+var number1 = parseFloat(item1);\r
+var number2 = parseFloat(item2);\r
+comparison = number1 < number2 ? -1 : (number1 > number2 ? 1 : 0);\r
+} else\r
+comparison = item1 < item2 ? -1 : (item1 > item2 ? 1 : 0);\r
+\r
+return sortDirection * comparison;\r
+}\r
+\r
+nodes.sort(comparator);\r
+dataGrid.removeChildren();\r
+for (var i = 0; i < nodes.length; i++)\r
+dataGrid.appendChild(nodes[i]);\r
+},\r
+\r
+updateDOMStorage: function(storageId)\r
+{\r
+var domStorage = this._domStorageForId(storageId);\r
+if (!domStorage)\r
+return;\r
+\r
+var view = domStorage._domStorageView;\r
+if (this.visibleView && view === this.visibleView)\r
+domStorage._domStorageView.update();\r
+},\r
+\r
+updateApplicationCacheStatus: function(status)\r
+{\r
+this._cachedApplicationCacheViewStatus = status;\r
+if (this._applicationCacheView && this._applicationCacheView === this.visibleView)\r
+this._applicationCacheView.updateStatus(status);\r
+},\r
+\r
+updateFileSystemPath: function(root, type, origin)\r
+{\r
+if (this._fileSystemView && this._fileSystemView === this.visibleView)\r
+this._fileSystemView.updateFileSystemPath(root, type, origin);  \r
+},\r
+\r
+updateFileSystemError: function(type, origin)\r
+{\r
+if (this._fileSystemView && this._fileSystemView === this.visibleView)\r
+this._fileSystemView.updateFileSystemError(type, origin);  \r
+},\r
+\r
+setFileSystemDisabled: function()\r
+{\r
+if (this._fileSystemView && this._fileSystemView === this.visibleView)\r
+this._fileSystemView.setFileSystemDisabled();  \r
+},\r
+\r
+updateNetworkState: function(isNowOnline)\r
+{\r
+if (this._applicationCacheView && this._applicationCacheView === this.visibleView)\r
+this._applicationCacheView.updateNetworkState(isNowOnline);\r
+},\r
+\r
+updateManifest: function(manifest)\r
+{\r
+if (this._applicationCacheView && this._applicationCacheView === this.visibleView)\r
+this._applicationCacheView.updateManifest(manifest);\r
+},\r
+\r
+_domStorageForId: function(storageId)\r
+{\r
+if (!this._domStorage)\r
+return null;\r
+var domStorageLength = this._domStorage.length;\r
+for (var i = 0; i < domStorageLength; ++i) {\r
+var domStorage = this._domStorage[i];\r
+if (domStorage.id == storageId)\r
+return domStorage;\r
+}\r
+return null;\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this.storageViews.style.left = width + "px";\r
+this.storageViewStatusBarItemsContainer.style.left = width + "px";\r
+this.resize();\r
+},\r
+\r
+get searchableViews()\r
+{\r
+var views = [];\r
+\r
+const visibleView = this.visibleView;\r
+if (visibleView instanceof WebInspector.ResourceView && visibleView.performSearch)\r
+views.push(visibleView);\r
+\r
+function callback(resourceTreeElement)\r
+{\r
+var resource = resourceTreeElement._resource;\r
+var resourceView = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+if (resourceView.performSearch && resourceView !== visibleView)\r
+views.push(resourceView);\r
+}\r
+this._forAllResourceTreeElements(callback);\r
+return views;\r
+},\r
+\r
+_forAllResourceTreeElements: function(callback)\r
+{\r
+var stop = false;\r
+for (var treeElement = this.resourcesListTreeElement; !stop && treeElement; treeElement = treeElement.traverseNextTreeElement(false, this.resourcesListTreeElement, true)) {\r
+if (treeElement instanceof WebInspector.FrameResourceTreeElement)\r
+stop = callback(treeElement);\r
+}\r
+},\r
+\r
+searchMatchFound: function(view, matches)\r
+{\r
+if (!view.resource)\r
+return;\r
+var treeElement = this._findTreeElementForResource(view.resource);\r
+if (treeElement)\r
+treeElement.searchMatchFound(matches);\r
+},\r
+\r
+_findTreeElementForResource: function(resource)\r
+{\r
+function isAncestor(ancestor, object)\r
+{\r
+\r
+return false;\r
+}\r
+\r
+function getParent(object)\r
+{\r
+\r
+return null;\r
+}\r
+\r
+return this.sidebarTree.findTreeElement(resource, isAncestor, getParent);\r
+},\r
+\r
+searchCanceled: function(startingNewSearch)\r
+{\r
+WebInspector.Panel.prototype.searchCanceled.call(this, startingNewSearch);\r
+\r
+if (startingNewSearch)\r
+return;\r
+\r
+function callback(resourceTreeElement)\r
+{\r
+resourceTreeElement._errorsWarningsUpdated();\r
+}\r
+this._forAllResourceTreeElements(callback);\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+function callback(resourceTreeElement)\r
+{\r
+resourceTreeElement._resetBubble();\r
+}\r
+this._forAllResourceTreeElements(callback);\r
+WebInspector.Panel.prototype.performSearch.call(this, query);\r
+},\r
+\r
+showView: function(view)\r
+{\r
+if (view)\r
+this.showResource(view.resource);\r
+},\r
+\r
+_onmousemove: function(event)\r
+{\r
+var nodeUnderMouse = document.elementFromPoint(event.pageX, event.pageY);\r
+if (!nodeUnderMouse)\r
+return;\r
+\r
+var listNode = nodeUnderMouse.enclosingNodeOrSelfWithNodeName("li");\r
+if (!listNode)\r
+return;\r
+\r
+var element = listNode.treeElement;\r
+if (this._previousHoveredElement === element)\r
+return;\r
+\r
+if (this._previousHoveredElement) {\r
+this._previousHoveredElement.hovered = false;\r
+delete this._previousHoveredElement;\r
+}\r
+\r
+if (element instanceof WebInspector.FrameTreeElement) {\r
+this._previousHoveredElement = element;\r
+element.hovered = true;\r
+}\r
+},\r
+\r
+_onmouseout: function(event)\r
+{\r
+if (this._previousHoveredElement) {\r
+this._previousHoveredElement.hovered = false;\r
+delete this._previousHoveredElement;\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ResourcesPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+WebInspector.BaseStorageTreeElement = function(storagePanel, representedObject, title, iconClass, hasChildren)\r
+{\r
+TreeElement.call(this, "", representedObject, hasChildren);\r
+this._storagePanel = storagePanel;\r
+this._titleText = title;\r
+this._iconClass = iconClass;\r
+}\r
+\r
+WebInspector.BaseStorageTreeElement.prototype = {\r
+onattach: function()\r
+{\r
+this.listItemElement.removeChildren();\r
+this.listItemElement.addStyleClass(this._iconClass);\r
+\r
+var selectionElement = document.createElement("div");\r
+selectionElement.className = "selection";\r
+this.listItemElement.appendChild(selectionElement);\r
+\r
+this.imageElement = document.createElement("img");\r
+this.imageElement.className = "icon";\r
+this.listItemElement.appendChild(this.imageElement);\r
+\r
+this.titleElement = document.createElement("div");\r
+this.titleElement.className = "base-storage-tree-element-title";\r
+this.titleElement.textContent = this._titleText;\r
+this.listItemElement.appendChild(this.titleElement);\r
+},\r
+\r
+onselect: function()\r
+{\r
+var itemURL = this.itemURL;\r
+if (itemURL)\r
+WebInspector.settings.resourcesLastSelectedItem = itemURL;\r
+},\r
+\r
+onreveal: function()\r
+{\r
+if (this.listItemElement)\r
+this.listItemElement.scrollIntoViewIfNeeded(false);\r
+},\r
+\r
+get titleText()\r
+{\r
+return this._titleText;\r
+},\r
+\r
+set titleText(titleText)\r
+{\r
+this._titleText = titleText;\r
+if (this.titleElement)\r
+this.titleElement.textContent = this._titleText;\r
+},\r
+\r
+isEventWithinDisclosureTriangle: function()\r
+{\r
+\r
+\r
+\r
+const paddingLeft = 14;\r
+var left = this.listItemElement.totalOffsetLeft + paddingLeft;\r
+return event.pageX >= left && event.pageX <= left + this.arrowToggleWidth && this.hasChildren;\r
+}\r
+}\r
+\r
+WebInspector.BaseStorageTreeElement.prototype.__proto__ = TreeElement.prototype;\r
+\r
+WebInspector.StorageCategoryTreeElement = function(storagePanel, categoryName, settingsKey, iconClass)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, categoryName, iconClass, true);\r
+this._expandedSettingKey = "resources" + settingsKey + "Expanded";\r
+WebInspector.settings.installApplicationSetting(this._expandedSettingKey, settingsKey === "Frames");\r
+this._categoryName = categoryName;\r
+}\r
+\r
+WebInspector.StorageCategoryTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "category://" + this._categoryName;\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showCategoryView(this._categoryName);\r
+},\r
+\r
+onattach: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);\r
+if (WebInspector.settings[this._expandedSettingKey])\r
+this.expand();\r
+},\r
+\r
+onexpand: function()\r
+{\r
+WebInspector.settings[this._expandedSettingKey] = true;\r
+},\r
+\r
+oncollapse: function()\r
+{\r
+WebInspector.settings[this._expandedSettingKey] = false;\r
+}\r
+}\r
+WebInspector.StorageCategoryTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.FrameTreeElement = function(storagePanel, frameId, title, subtitle)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, "", "frame-storage-tree-item");\r
+this._frameId = frameId;\r
+this.setTitles(title, subtitle);\r
+}\r
+\r
+WebInspector.FrameTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "frame://" + encodeURI(this._displayName);\r
+},\r
+\r
+onattach: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);\r
+if (this._titleToSetOnAttach || this._subtitleToSetOnAttach) {\r
+this.setTitles(this._titleToSetOnAttach, this._subtitleToSetOnAttach);\r
+delete this._titleToSetOnAttach;\r
+delete this._subtitleToSetOnAttach;\r
+}\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showCategoryView(this._displayName);\r
+\r
+this.listItemElement.removeStyleClass("hovered");\r
+InspectorBackend.hideFrameHighlight();\r
+},\r
+\r
+get displayName()\r
+{\r
+return this._displayName;\r
+},\r
+\r
+setTitles: function(title, subtitle)\r
+{\r
+this._displayName = "";\r
+if (this.parent) {\r
+if (title) {\r
+this.titleElement.textContent = title;\r
+this._displayName = title;\r
+}\r
+if (subtitle) {\r
+var subtitleElement = document.createElement("span");\r
+subtitleElement.className = "base-storage-tree-element-subtitle";\r
+subtitleElement.textContent = "(" + subtitle + ")";\r
+this._displayName += " (" + subtitle + ")";\r
+this.titleElement.appendChild(subtitleElement);\r
+}\r
+} else {\r
+this._titleToSetOnAttach = title;\r
+this._subtitleToSetOnAttach = subtitle;\r
+}\r
+},\r
+\r
+set hovered(hovered)\r
+{\r
+if (hovered) {\r
+this.listItemElement.addStyleClass("hovered");\r
+InspectorBackend.highlightFrame(this._frameId);\r
+} else {\r
+this.listItemElement.removeStyleClass("hovered");\r
+InspectorBackend.hideFrameHighlight();\r
+}\r
+}\r
+}\r
+WebInspector.FrameTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.FrameResourceTreeElement = function(storagePanel, resource)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, resource, resource.displayName, "resource-sidebar-tree-item resources-category-" + resource.category.name);\r
+this._resource = resource;\r
+this._resource.addEventListener("errors-warnings-updated", this._errorsWarningsUpdated, this);\r
+this._resource.addEventListener("content-changed", this._contentChanged, this);\r
+this.tooltip = resource.url;\r
+}\r
+\r
+WebInspector.FrameResourceTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return this._resource.url;\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel._showResourceView(this._resource);\r
+},\r
+\r
+ondblclick: function(event)\r
+{\r
+InspectorBackend.openInInspectedWindow(this._resource.url);\r
+},\r
+\r
+onattach: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);\r
+\r
+if (this._resource.category === WebInspector.resourceCategories.images) {\r
+var previewImage = document.createElement("img");\r
+previewImage.className = "image-resource-icon-preview";\r
+previewImage.src = this._resource.url;\r
+\r
+var iconElement = document.createElement("div");\r
+iconElement.className = "icon";\r
+iconElement.appendChild(previewImage);\r
+this.listItemElement.replaceChild(iconElement, this.imageElement);\r
+}\r
+\r
+this._statusElement = document.createElement("div");\r
+this._statusElement.className = "status";\r
+this.listItemElement.insertBefore(this._statusElement, this.titleElement);\r
+\r
+this.listItemElement.draggable = true;\r
+this.listItemElement.addEventListener("dragstart", this._ondragstart.bind(this), false);\r
+},\r
+\r
+_ondragstart: function(event)\r
+{\r
+event.dataTransfer.setData("text/plain", this._resource.content);\r
+event.dataTransfer.effectAllowed = "copy";\r
+return true;\r
+},\r
+\r
+_setBubbleText: function(x)\r
+{\r
+if (!this._bubbleElement) {\r
+this._bubbleElement = document.createElement("div");\r
+this._bubbleElement.className = "bubble";\r
+this._statusElement.appendChild(this._bubbleElement);\r
+}\r
+\r
+this._bubbleElement.textContent = x;\r
+},\r
+\r
+_resetBubble: function()\r
+{\r
+if (this._bubbleElement) {\r
+this._bubbleElement.textContent = "";\r
+this._bubbleElement.removeStyleClass("search-matches");\r
+this._bubbleElement.removeStyleClass("warning");\r
+this._bubbleElement.removeStyleClass("error");\r
+}\r
+},\r
+\r
+searchMatchFound: function(matches)\r
+{\r
+this._resetBubble();\r
+\r
+this._setBubbleText(matches);\r
+this._bubbleElement.addStyleClass("search-matches");\r
+\r
+\r
+var currentAncestor = this.parent;\r
+while (currentAncestor && !currentAncestor.root) {\r
+if (!currentAncestor.expanded)\r
+currentAncestor.expand();\r
+currentAncestor = currentAncestor.parent;\r
+}\r
+},\r
+\r
+_errorsWarningsUpdated: function()\r
+{\r
+\r
+if (!this._resource.warnings && !this._resource.errors) {\r
+var view = WebInspector.ResourceManager.existingResourceViewForResource(this._resource);\r
+if (view && view.clearMessages)\r
+view.clearMessages();\r
+}\r
+\r
+if (this._storagePanel.currentQuery)\r
+return;\r
+\r
+this._resetBubble();\r
+\r
+if (this._resource.warnings || this._resource.errors)\r
+this._setBubbleText(this._resource.warnings + this._resource.errors);\r
+\r
+if (this._resource.warnings)\r
+this._bubbleElement.addStyleClass("warning");\r
+\r
+if (this._resource.errors)\r
+this._bubbleElement.addStyleClass("error");\r
+},\r
+\r
+_contentChanged: function(event)\r
+{\r
+this.insertChild(new WebInspector.ResourceRevisionTreeElement(this._storagePanel, event.data.revision), 0);\r
+var oldView = WebInspector.ResourceManager.existingResourceViewForResource(this._resource);\r
+if (oldView) {\r
+var newView = WebInspector.ResourceManager.recreateResourceView(this._resource);\r
+if (oldView === this._storagePanel.visibleView)\r
+this._storagePanel.visibleView = newView;\r
+}\r
+}\r
+}\r
+\r
+WebInspector.FrameResourceTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.DatabaseTreeElement = function(storagePanel, database)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, database.name, "database-storage-tree-item", true);\r
+this._database = database;\r
+}\r
+\r
+WebInspector.DatabaseTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "database://" + encodeURI(this._database.name);\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showDatabase(this._database);\r
+},\r
+\r
+oncollapse: function()\r
+{\r
+\r
+\r
+this.shouldRefreshChildren = true;\r
+},\r
+\r
+onpopulate: function()\r
+{\r
+this.removeChildren();\r
+\r
+function tableNamesCallback(tableNames)\r
+{\r
+var tableNamesLength = tableNames.length;\r
+for (var i = 0; i < tableNamesLength; ++i)\r
+this.appendChild(new WebInspector.DatabaseTableTreeElement(this._storagePanel, this._database, tableNames[i]));\r
+}\r
+this._database.getTableNames(tableNamesCallback.bind(this));\r
+}\r
+\r
+}\r
+WebInspector.DatabaseTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.DatabaseTableTreeElement = function(storagePanel, database, tableName)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, tableName, "database-storage-tree-item");\r
+this._database = database;\r
+this._tableName = tableName;\r
+}\r
+\r
+WebInspector.DatabaseTableTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "database://" + encodeURI(this._database.name) + "/" + encodeURI(this._tableName);\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showDatabase(this._database, this._tableName);\r
+}\r
+}\r
+WebInspector.DatabaseTableTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.DOMStorageTreeElement = function(storagePanel, domStorage, className)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, domStorage.domain ? domStorage.domain : WebInspector.UIString("Local Files"), "domstorage-storage-tree-item " + className);\r
+this._domStorage = domStorage;\r
+}\r
+\r
+WebInspector.DOMStorageTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "storage://" + this._domStorage.domain + "/" + (this._domStorage.isLocalStorage ? "local" : "session");\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showDOMStorage(this._domStorage);\r
+}\r
+}\r
+WebInspector.DOMStorageTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.CookieTreeElement = function(storagePanel, cookieDomain)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, cookieDomain ? cookieDomain : WebInspector.UIString("Local Files"), "cookie-storage-tree-item");\r
+this._cookieDomain = cookieDomain;\r
+}\r
+\r
+WebInspector.CookieTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "cookies://" + this._cookieDomain;\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showCookies(this, this._cookieDomain);\r
+}\r
+}\r
+WebInspector.CookieTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.ApplicationCacheTreeElement = function(storagePanel, appcacheDomain)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, appcacheDomain ? appcacheDomain : WebInspector.UIString("Local Files"), "application-cache-storage-tree-item");\r
+this._appcacheDomain = appcacheDomain;\r
+}\r
+\r
+WebInspector.ApplicationCacheTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "appcache://" + this._appcacheDomain;\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showApplicationCache(this, this._appcacheDomain);\r
+}\r
+}\r
+WebInspector.ApplicationCacheTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.ResourceRevisionTreeElement = function(storagePanel, revision)\r
+{\r
+var title = revision.timestamp ? revision.timestamp.toLocaleTimeString() : "(original)";\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, title, "resource-sidebar-tree-item resources-category-" + revision.category.name);\r
+if (revision.timestamp)\r
+this.tooltip = revision.timestamp.toLocaleString();\r
+this._resource = revision;\r
+}\r
+\r
+WebInspector.ResourceRevisionTreeElement.prototype = {\r
+onattach: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onattach.call(this);\r
+this.listItemElement.draggable = true;\r
+this.listItemElement.addEventListener("dragstart", this._ondragstart.bind(this), false);\r
+this.listItemElement.addEventListener("contextmenu", this._handleContextMenuEvent.bind(this), true);\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel._showResourceView(this._resource);\r
+},\r
+\r
+_ondragstart: function(event)\r
+{\r
+event.dataTransfer.setData("text/plain", this._resource.content);\r
+event.dataTransfer.effectAllowed = "copy";\r
+return true;\r
+},\r
+\r
+_handleContextMenuEvent: function(event)\r
+{\r
+var contextMenu = new WebInspector.ContextMenu();\r
+contextMenu.appendItem(WebInspector.UIString("Revert to this revision"), this._resource.revertToThis.bind(this._resource));\r
+contextMenu.show(event);\r
+}\r
+}\r
+\r
+WebInspector.ResourceRevisionTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.FileSystemTreeElement = function(storagePanel, origin)\r
+{\r
+WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, origin, "file-system-storage-tree-item");\r
+this._origin = origin;\r
+}\r
+\r
+WebInspector.FileSystemTreeElement.prototype = {\r
+get itemURL()\r
+{\r
+return "file-system://" + encodeURI(this._origin);\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.BaseStorageTreeElement.prototype.onselect.call(this);\r
+this._storagePanel.showFileSystem(this, this._origin);\r
+}\r
+}\r
+\r
+WebInspector.FileSystemTreeElement.prototype.__proto__ = WebInspector.BaseStorageTreeElement.prototype;\r
+\r
+WebInspector.StorageCategoryView = function()\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("storage-view");\r
+\r
+this._emptyMsgElement = document.createElement("div");\r
+this._emptyMsgElement.className = "storage-empty-view";\r
+this.element.appendChild(this._emptyMsgElement);\r
+}\r
+\r
+WebInspector.StorageCategoryView.prototype = {\r
+setText: function(text)\r
+{\r
+this._emptyMsgElement.textContent = text;\r
+}\r
+}\r
+\r
+WebInspector.StorageCategoryView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+const UserInitiatedProfileName = "org.webkit.profiles.user-initiated";\r
+\r
+WebInspector.ProfileType = function(id, name)\r
+{\r
+this._id = id;\r
+this._name = name;\r
+}\r
+\r
+WebInspector.ProfileType.URLRegExp = /webkit-profile:\/\/(.+)\/(.+)#([0-9]+)/;\r
+\r
+WebInspector.ProfileType.prototype = {\r
+get buttonTooltip()\r
+{\r
+return "";\r
+},\r
+\r
+get buttonStyle()\r
+{\r
+return undefined;\r
+},\r
+\r
+get buttonCaption()\r
+{\r
+return this.name;\r
+},\r
+\r
+get id()\r
+{\r
+return this._id;\r
+},\r
+\r
+get name()\r
+{\r
+return this._name;\r
+},\r
+\r
+buttonClicked: function()\r
+{\r
+},\r
+\r
+viewForProfile: function(profile)\r
+{\r
+if (!profile._profileView)\r
+profile._profileView = this.createView(profile);\r
+return profile._profileView;\r
+},\r
+\r
+get welcomeMessage()\r
+{\r
+return "";\r
+},\r
+\r
+\r
+createView: function(profile)\r
+{\r
+throw new Error("Needs implemented.");\r
+},\r
+\r
+\r
+createSidebarTreeElementForProfile: function(profile)\r
+{\r
+throw new Error("Needs implemented.");\r
+}\r
+}\r
+\r
+WebInspector.ProfilesPanel = function()\r
+{\r
+WebInspector.Panel.call(this, "profiles");\r
+\r
+this.createSidebar();\r
+\r
+this._profileTypesByIdMap = {};\r
+this._profileTypeButtonsByIdMap = {};\r
+\r
+var panelEnablerHeading = WebInspector.UIString("You need to enable profiling before you can use the Profiles panel.");\r
+var panelEnablerDisclaimer = WebInspector.UIString("Enabling profiling will make scripts run slower.");\r
+var panelEnablerButton = WebInspector.UIString("Enable Profiling");\r
+this.panelEnablerView = new WebInspector.PanelEnablerView("profiles", panelEnablerHeading, panelEnablerDisclaimer, panelEnablerButton);\r
+this.panelEnablerView.addEventListener("enable clicked", this._enableProfiling, this);\r
+\r
+this.element.appendChild(this.panelEnablerView.element);\r
+\r
+this.profileViews = document.createElement("div");\r
+this.profileViews.id = "profile-views";\r
+this.element.appendChild(this.profileViews);\r
+\r
+this.enableToggleButton = new WebInspector.StatusBarButton("", "enable-toggle-status-bar-item");\r
+this.enableToggleButton.addEventListener("click", this._toggleProfiling.bind(this), false);\r
+\r
+this.clearResultsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear CPU profiles."), "clear-status-bar-item");\r
+this.clearResultsButton.addEventListener("click", this._clearProfiles.bind(this), false);\r
+\r
+this.profileViewStatusBarItemsContainer = document.createElement("div");\r
+this.profileViewStatusBarItemsContainer.className = "status-bar-items";\r
+\r
+this.welcomeView = new WebInspector.WelcomeView("profiles", WebInspector.UIString("Welcome to the Profiles panel"));\r
+this.element.appendChild(this.welcomeView.element);\r
+\r
+this._profiles = [];\r
+this._profilerEnabled = Preferences.profilerAlwaysEnabled;\r
+this._reset();\r
+InspectorBackend.registerDomainDispatcher("Profiler", this);\r
+}\r
+\r
+WebInspector.ProfilesPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Profiles");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+function clickHandler(profileType, buttonElement)\r
+{\r
+profileType.buttonClicked.call(profileType);\r
+this.updateProfileTypeButtons();\r
+}\r
+\r
+var items = [this.enableToggleButton.element];\r
+\r
+for (var typeId in this._profileTypesByIdMap) {\r
+var profileType = this.getProfileType(typeId);\r
+if (profileType.buttonStyle) {\r
+var button = new WebInspector.StatusBarButton(profileType.buttonTooltip, profileType.buttonStyle, profileType.buttonCaption);\r
+this._profileTypeButtonsByIdMap[typeId] = button.element;\r
+button.element.addEventListener("click", clickHandler.bind(this, profileType, button.element), false);\r
+items.push(button.element);\r
+}\r
+}\r
+items.push(this.clearResultsButton.element, this.profileViewStatusBarItemsContainer);\r
+return items;\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+this._populateProfiles();\r
+},\r
+\r
+profilerWasEnabled: function()\r
+{\r
+if (this._profilerEnabled)\r
+return;\r
+\r
+this._profilerEnabled = true;\r
+\r
+this._reset();\r
+if (this.visible)\r
+this._populateProfiles();\r
+},\r
+\r
+profilerWasDisabled: function()\r
+{\r
+if (!this._profilerEnabled)\r
+return;\r
+\r
+this._profilerEnabled = false;\r
+this._reset();\r
+},\r
+\r
+resetProfiles: function()\r
+{\r
+this._reset();\r
+},\r
+\r
+_reset: function()\r
+{\r
+for (var i = 0; i < this._profiles.length; ++i)\r
+delete this._profiles[i]._profileView;\r
+delete this.visibleView;\r
+\r
+delete this.currentQuery;\r
+this.searchCanceled();\r
+\r
+this._profiles = [];\r
+this._profilesIdMap = {};\r
+this._profileGroups = {};\r
+this._profileGroupsForLinks = {}\r
+this._profilesWereRequested = false;\r
+\r
+this.sidebarTreeElement.removeStyleClass("some-expandable");\r
+\r
+for (var typeId in this._profileTypesByIdMap)\r
+this.getProfileType(typeId).treeElement.removeChildren();\r
+\r
+this.profileViews.removeChildren();\r
+\r
+this.profileViewStatusBarItemsContainer.removeChildren();\r
+\r
+this._updateInterface();\r
+this.welcomeView.show();\r
+},\r
+\r
+_clearProfiles: function()\r
+{\r
+InspectorBackend.clearProfiles();\r
+this._reset();\r
+},\r
+\r
+registerProfileType: function(profileType)\r
+{\r
+this._profileTypesByIdMap[profileType.id] = profileType;\r
+profileType.treeElement = new WebInspector.SidebarSectionTreeElement(profileType.name, null, true);\r
+this.sidebarTree.appendChild(profileType.treeElement);\r
+profileType.treeElement.expand();\r
+this._addWelcomeMessage(profileType);\r
+},\r
+\r
+_addWelcomeMessage: function(profileType)\r
+{\r
+var message = profileType.welcomeMessage;\r
+\r
+\r
+\r
+var buttonPos = message.indexOf("%s");\r
+if (buttonPos > -1) {\r
+var container = document.createDocumentFragment();\r
+var part1 = document.createElement("span");\r
+part1.innerHTML = message.substr(0, buttonPos);\r
+container.appendChild(part1);\r
+\r
+var button = new WebInspector.StatusBarButton(profileType.buttonTooltip, profileType.buttonStyle, profileType.buttonCaption);\r
+container.appendChild(button.element);\r
+\r
+var part2 = document.createElement("span");\r
+part2.innerHTML = message.substr(buttonPos + 2);\r
+container.appendChild(part2);\r
+this.welcomeView.addMessage(container);\r
+} else\r
+this.welcomeView.addMessage(message);\r
+},\r
+\r
+_makeKey: function(text, profileTypeId)\r
+{\r
+return escape(text) + '/' + escape(profileTypeId);\r
+},\r
+\r
+addProfileHeader: function(profile)\r
+{\r
+var typeId = profile.typeId;\r
+var profileType = this.getProfileType(typeId);\r
+var sidebarParent = profileType.treeElement;\r
+var small = false;\r
+var alternateTitle;\r
+\r
+profile.__profilesPanelProfileType = profileType;\r
+this._profiles.push(profile);\r
+this._profilesIdMap[this._makeKey(profile.uid, typeId)] = profile;\r
+\r
+if (profile.title.indexOf(UserInitiatedProfileName) !== 0) {\r
+var profileTitleKey = this._makeKey(profile.title, typeId);\r
+if (!(profileTitleKey in this._profileGroups))\r
+this._profileGroups[profileTitleKey] = [];\r
+\r
+var group = this._profileGroups[profileTitleKey];\r
+group.push(profile);\r
+\r
+if (group.length === 2) {\r
+\r
+group._profilesTreeElement = new WebInspector.ProfileGroupSidebarTreeElement(profile.title);\r
+\r
+\r
+var index = sidebarParent.children.indexOf(group[0]._profilesTreeElement);\r
+sidebarParent.insertChild(group._profilesTreeElement, index);\r
+\r
+\r
+var selected = group[0]._profilesTreeElement.selected;\r
+sidebarParent.removeChild(group[0]._profilesTreeElement);\r
+group._profilesTreeElement.appendChild(group[0]._profilesTreeElement);\r
+if (selected) {\r
+group[0]._profilesTreeElement.select();\r
+group[0]._profilesTreeElement.reveal();\r
+}\r
+\r
+group[0]._profilesTreeElement.small = true;\r
+group[0]._profilesTreeElement.mainTitle = WebInspector.UIString("Run %d", 1);\r
+\r
+this.sidebarTreeElement.addStyleClass("some-expandable");\r
+}\r
+\r
+if (group.length >= 2) {\r
+sidebarParent = group._profilesTreeElement;\r
+alternateTitle = WebInspector.UIString("Run %d", group.length);\r
+small = true;\r
+}\r
+}\r
+\r
+var profileTreeElement = profileType.createSidebarTreeElementForProfile(profile);\r
+profileTreeElement.small = small;\r
+if (alternateTitle)\r
+profileTreeElement.mainTitle = alternateTitle;\r
+profile._profilesTreeElement = profileTreeElement;\r
+\r
+sidebarParent.appendChild(profileTreeElement);\r
+if (!profile.isTemporary) {\r
+this.welcomeView.hide();\r
+if (!this.visibleView)\r
+this.showProfile(profile);\r
+this.dispatchEventToListeners("profile added");\r
+}\r
+},\r
+\r
+removeProfileHeader: function(profile)\r
+{\r
+var typeId = profile.typeId;\r
+var profileType = this.getProfileType(typeId);\r
+var sidebarParent = profileType.treeElement;\r
+\r
+for (var i = 0; i < this._profiles.length; ++i) {\r
+if (this._profiles[i].uid === profile.uid) {\r
+profile = this._profiles[i];\r
+this._profiles.splice(i, 1);\r
+break;\r
+}\r
+}\r
+delete this._profilesIdMap[this._makeKey(profile.uid, typeId)];\r
+\r
+var profileTitleKey = this._makeKey(profile.title, typeId);\r
+delete this._profileGroups[profileTitleKey];\r
+\r
+sidebarParent.removeChild(profile._profilesTreeElement);\r
+\r
+if (!profile.isTemporary)\r
+InspectorBackend.removeProfile(profile.typeId, profile.uid);\r
+\r
+\r
+\r
+if (!this._profiles.length)\r
+this.closeVisibleView();\r
+},\r
+\r
+showProfile: function(profile)\r
+{\r
+if (!profile || profile.isTemporary)\r
+return;\r
+\r
+this.closeVisibleView();\r
+\r
+var view = profile.__profilesPanelProfileType.viewForProfile(profile);\r
+\r
+view.show(this.profileViews);\r
+\r
+profile._profilesTreeElement.select(true);\r
+profile._profilesTreeElement.reveal();\r
+\r
+this.visibleView = view;\r
+\r
+this.profileViewStatusBarItemsContainer.removeChildren();\r
+\r
+var statusBarItems = view.statusBarItems;\r
+for (var i = 0; i < statusBarItems.length; ++i)\r
+this.profileViewStatusBarItemsContainer.appendChild(statusBarItems[i]);\r
+},\r
+\r
+getProfiles: function(typeId)\r
+{\r
+var result = [];\r
+var profilesCount = this._profiles.length;\r
+for (var i = 0; i < profilesCount; ++i)\r
+if (this._profiles[i].typeId === typeId)\r
+result.push(this._profiles[i]);\r
+return result;\r
+},\r
+\r
+hasTemporaryProfile: function(typeId)\r
+{\r
+var profilesCount = this._profiles.length;\r
+for (var i = 0; i < profilesCount; ++i)\r
+if (this._profiles[i].typeId === typeId && this._profiles[i].isTemporary)\r
+return true;\r
+return false;\r
+},\r
+\r
+hasProfile: function(profile)\r
+{\r
+return !!this._profilesIdMap[this._makeKey(profile.uid, profile.typeId)];\r
+},\r
+\r
+updateProfile: function(profile)\r
+{\r
+var profilesCount = this._profiles.length;\r
+for (var i = 0; i < profilesCount; ++i)\r
+if (this._profiles[i].typeId === profile.typeId\r
+&& this._profiles[i].uid === profile.uid) {\r
+this._profiles[i] = profile;\r
+break;\r
+}\r
+},\r
+\r
+loadHeapSnapshot: function(uid, callback)\r
+{\r
+var profile = this._profilesIdMap[this._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];\r
+if (!profile)\r
+return;\r
+\r
+if (profile._loaded)\r
+callback(profile);\r
+else if (profile._is_loading)\r
+profile._callbacks.push(callback);\r
+else {\r
+profile._is_loading = true;\r
+profile._callbacks = [callback];\r
+profile._json = "";\r
+InspectorBackend.getProfile(profile.typeId, profile.uid);\r
+}\r
+},\r
+\r
+addHeapSnapshotChunk: function(uid, chunk)\r
+{\r
+var profile = this._profilesIdMap[this._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];\r
+if (!profile || profile._loaded || !profile._is_loading)\r
+return;\r
+\r
+profile._json += chunk;\r
+},\r
+\r
+finishHeapSnapshot: function(uid)\r
+{\r
+var profile = this._profilesIdMap[this._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];\r
+if (!profile || profile._loaded || !profile._is_loading)\r
+return;\r
+\r
+var callbacks = profile._callbacks;\r
+delete profile._callbacks;\r
+var loadedSnapshot = JSON.parse(profile._json);\r
+delete profile._json;\r
+delete profile._is_loading;\r
+profile._loaded = true;\r
+WebInspector.HeapSnapshotView.prototype.processLoadedSnapshot(profile, loadedSnapshot);\r
+for (var i = 0; i < callbacks.length; ++i)\r
+callbacks[i](profile);\r
+},\r
+\r
+showView: function(view)\r
+{\r
+this.showProfile(view.profile);\r
+},\r
+\r
+getProfileType: function(typeId)\r
+{\r
+return this._profileTypesByIdMap[typeId];\r
+},\r
+\r
+showProfileForURL: function(url)\r
+{\r
+var match = url.match(WebInspector.ProfileType.URLRegExp);\r
+if (!match)\r
+return;\r
+this.showProfile(this._profilesIdMap[this._makeKey(match[3], match[1])]);\r
+},\r
+\r
+updateProfileTypeButtons: function()\r
+{\r
+for (var typeId in this._profileTypeButtonsByIdMap) {\r
+var buttonElement = this._profileTypeButtonsByIdMap[typeId];\r
+var profileType = this.getProfileType(typeId);\r
+buttonElement.className = profileType.buttonStyle;\r
+buttonElement.title = profileType.buttonTooltip;\r
+\r
+}\r
+},\r
+\r
+closeVisibleView: function()\r
+{\r
+if (this.visibleView)\r
+this.visibleView.hide();\r
+delete this.visibleView;\r
+},\r
+\r
+displayTitleForProfileLink: function(title, typeId)\r
+{\r
+title = unescape(title);\r
+if (title.indexOf(UserInitiatedProfileName) === 0) {\r
+title = WebInspector.UIString("Profile %d", title.substring(UserInitiatedProfileName.length + 1));\r
+} else {\r
+var titleKey = this._makeKey(title, typeId);\r
+if (!(titleKey in this._profileGroupsForLinks))\r
+this._profileGroupsForLinks[titleKey] = 0;\r
+\r
+var groupNumber = ++this._profileGroupsForLinks[titleKey];\r
+\r
+if (groupNumber > 2)\r
+\r
+\r
+title += " " + WebInspector.UIString("Run %d", (groupNumber + 1) / 2);\r
+}\r
+\r
+return title;\r
+},\r
+\r
+get searchableViews()\r
+{\r
+var views = [];\r
+\r
+const visibleView = this.visibleView;\r
+if (visibleView && visibleView.performSearch)\r
+views.push(visibleView);\r
+\r
+var profilesLength = this._profiles.length;\r
+for (var i = 0; i < profilesLength; ++i) {\r
+var profile = this._profiles[i];\r
+var view = profile.__profilesPanelProfileType.viewForProfile(profile);\r
+if (!view.performSearch || view === visibleView)\r
+continue;\r
+views.push(view);\r
+}\r
+\r
+return views;\r
+},\r
+\r
+searchMatchFound: function(view, matches)\r
+{\r
+view.profile._profilesTreeElement.searchMatches = matches;\r
+},\r
+\r
+searchCanceled: function(startingNewSearch)\r
+{\r
+WebInspector.Panel.prototype.searchCanceled.call(this, startingNewSearch);\r
+\r
+if (!this._profiles)\r
+return;\r
+\r
+for (var i = 0; i < this._profiles.length; ++i) {\r
+var profile = this._profiles[i];\r
+profile._profilesTreeElement.searchMatches = 0;\r
+}\r
+},\r
+\r
+_updateInterface: function()\r
+{\r
+\r
+if (this._profilerEnabled) {\r
+this.enableToggleButton.title = WebInspector.UIString("Profiling enabled. Click to disable.");\r
+this.enableToggleButton.toggled = true;\r
+for (var typeId in this._profileTypeButtonsByIdMap)\r
+this._profileTypeButtonsByIdMap[typeId].removeStyleClass("hidden");\r
+this.profileViewStatusBarItemsContainer.removeStyleClass("hidden");\r
+this.clearResultsButton.element.removeStyleClass("hidden");\r
+this.panelEnablerView.visible = false;\r
+} else {\r
+this.enableToggleButton.title = WebInspector.UIString("Profiling disabled. Click to enable.");\r
+this.enableToggleButton.toggled = false;\r
+for (var typeId in this._profileTypeButtonsByIdMap)\r
+this._profileTypeButtonsByIdMap[typeId].addStyleClass("hidden");\r
+this.profileViewStatusBarItemsContainer.addStyleClass("hidden");\r
+this.clearResultsButton.element.addStyleClass("hidden");\r
+this.panelEnablerView.visible = true;\r
+}\r
+},\r
+\r
+_enableProfiling: function()\r
+{\r
+if (this._profilerEnabled)\r
+return;\r
+this._toggleProfiling(this.panelEnablerView.alwaysEnabled);\r
+},\r
+\r
+_toggleProfiling: function(optionalAlways)\r
+{\r
+if (this._profilerEnabled)\r
+InspectorBackend.disableProfiler(true);\r
+else\r
+InspectorBackend.enableProfiler(!!optionalAlways);\r
+},\r
+\r
+_populateProfiles: function()\r
+{\r
+if (!this._profilerEnabled || this._profilesWereRequested)\r
+return;\r
+\r
+function populateCallback(profileHeaders) {\r
+profileHeaders.sort(function(a, b) { return a.uid - b.uid; });\r
+var profileHeadersLength = profileHeaders.length;\r
+for (var i = 0; i < profileHeadersLength; ++i)\r
+if (!this.hasProfile(profileHeaders[i]))\r
+WebInspector.panels.profiles.addProfileHeader(profileHeaders[i]);\r
+}\r
+\r
+InspectorBackend.getProfileHeaders(populateCallback.bind(this));\r
+\r
+this._profilesWereRequested = true;\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this.welcomeView.element.style.left = width + "px";\r
+this.profileViews.style.left = width + "px";\r
+this.profileViewStatusBarItemsContainer.style.left = Math.max(155, width) + "px";\r
+this.resize();\r
+},\r
+\r
+setRecordingProfile: function(isProfiling)\r
+{\r
+this.getProfileType(WebInspector.CPUProfileType.TypeId).setRecordingProfile(isProfiling);\r
+if (this.hasTemporaryProfile(WebInspector.CPUProfileType.TypeId) !== isProfiling) {\r
+if (!this._temporaryRecordingProfile) {\r
+this._temporaryRecordingProfile = {\r
+typeId: WebInspector.CPUProfileType.TypeId,\r
+title: WebInspector.UIString("Recording"),\r
+uid: -1,\r
+isTemporary: true\r
+};\r
+}\r
+if (isProfiling)\r
+this.addProfileHeader(this._temporaryRecordingProfile);\r
+else\r
+this.removeProfileHeader(this._temporaryRecordingProfile);\r
+}\r
+this.updateProfileTypeButtons();\r
+}\r
+}\r
+\r
+WebInspector.ProfilesPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+WebInspector.ProfileSidebarTreeElement = function(profile, titleFormat, className)\r
+{\r
+this.profile = profile;\r
+this._titleFormat = titleFormat;\r
+\r
+if (this.profile.title.indexOf(UserInitiatedProfileName) === 0)\r
+this._profileNumber = this.profile.title.substring(UserInitiatedProfileName.length + 1);\r
+\r
+WebInspector.SidebarTreeElement.call(this, className, "", "", profile, false);\r
+\r
+this.refreshTitles();\r
+}\r
+\r
+WebInspector.ProfileSidebarTreeElement.prototype = {\r
+onselect: function()\r
+{\r
+this.treeOutline.panel.showProfile(this.profile);\r
+},\r
+\r
+ondelete: function()\r
+{\r
+this.treeOutline.panel.removeProfileHeader(this.profile);\r
+return true;\r
+},\r
+\r
+get mainTitle()\r
+{\r
+if (this._mainTitle)\r
+return this._mainTitle;\r
+if (this.profile.title.indexOf(UserInitiatedProfileName) === 0)\r
+return WebInspector.UIString(this._titleFormat, this._profileNumber);\r
+return this.profile.title;\r
+},\r
+\r
+set mainTitle(x)\r
+{\r
+this._mainTitle = x;\r
+this.refreshTitles();\r
+},\r
+\r
+get subtitle()\r
+{\r
+\r
+},\r
+\r
+set subtitle(x)\r
+{\r
+\r
+},\r
+\r
+set searchMatches(matches)\r
+{\r
+if (!matches) {\r
+if (!this.bubbleElement)\r
+return;\r
+this.bubbleElement.removeStyleClass("search-matches");\r
+this.bubbleText = "";\r
+return;\r
+}\r
+\r
+this.bubbleText = matches;\r
+this.bubbleElement.addStyleClass("search-matches");\r
+}\r
+}\r
+\r
+WebInspector.ProfileSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;\r
+\r
+WebInspector.ProfileGroupSidebarTreeElement = function(title, subtitle)\r
+{\r
+WebInspector.SidebarTreeElement.call(this, "profile-group-sidebar-tree-item", title, subtitle, null, true);\r
+}\r
+\r
+WebInspector.ProfileGroupSidebarTreeElement.prototype = {\r
+onselect: function()\r
+{\r
+if (this.children.length > 0)\r
+WebInspector.panels.profiles.showProfile(this.children[this.children.length - 1].profile);\r
+}\r
+}\r
+\r
+WebInspector.ProfileGroupSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ConsolePanel = function()\r
+{\r
+WebInspector.Panel.call(this, "console");\r
+}\r
+\r
+WebInspector.ConsolePanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Console");\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+\r
+this._previousConsoleState = WebInspector.drawer.state;\r
+WebInspector.drawer.enterPanelMode();\r
+WebInspector.showConsole();\r
+\r
+\r
+var scopeBar = document.getElementById("console-filter");\r
+var consoleMessages = document.getElementById("console-messages");\r
+\r
+scopeBar.parentNode.removeChild(scopeBar);\r
+document.getElementById("console-view").insertBefore(scopeBar, consoleMessages);\r
+\r
+\r
+scopeBar.addStyleClass("console-filter-top");\r
+scopeBar.removeStyleClass("status-bar-item");\r
+\r
+consoleMessages.addStyleClass("console-filter-top");\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.Panel.prototype.hide.call(this);\r
+\r
+if (this._previousConsoleState === WebInspector.Drawer.State.Hidden)\r
+WebInspector.drawer.immediatelyExitPanelMode();\r
+else\r
+WebInspector.drawer.exitPanelMode();\r
+delete this._previousConsoleState;\r
+\r
+\r
+var scopeBar = document.getElementById("console-filter");\r
+\r
+scopeBar.parentNode.removeChild(scopeBar);\r
+document.getElementById("other-drawer-status-bar-items").appendChild(scopeBar);\r
+\r
+\r
+scopeBar.removeStyleClass("console-filter-top");\r
+scopeBar.addStyleClass("status-bar-item");\r
+\r
+document.getElementById("console-messages").removeStyleClass("console-filter-top");\r
+}\r
+}\r
+\r
+WebInspector.ConsolePanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.injectedExtensionAPI = function(InjectedScriptHost, inspectedWindow, injectedScriptId)\r
+{\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+function EventSinkImpl(type, customDispatch)\r
+{\r
+this._type = type;\r
+this._listeners = [];\r
+this._customDispatch = customDispatch;\r
+}\r
+\r
+EventSinkImpl.prototype = {\r
+addListener: function(callback)\r
+{\r
+if (typeof callback != "function")\r
+throw new "addListener: callback is not a function";\r
+if (this._listeners.length === 0)\r
+extensionServer.sendRequest({ command: "subscribe", type: this._type });\r
+this._listeners.push(callback);\r
+extensionServer.registerHandler("notify-" + this._type, bind(this._dispatch, this));\r
+},\r
+\r
+removeListener: function(callback)\r
+{\r
+var listeners = this._listeners;\r
+\r
+for (var i = 0; i < listeners.length; ++i) {\r
+if (listeners[i] === callback) {\r
+listeners.splice(i, 1);\r
+break;\r
+}\r
+}\r
+if (this._listeners.length === 0)\r
+extensionServer.sendRequest({ command: "unsubscribe", type: this._type });\r
+},\r
+\r
+_fire: function()\r
+{\r
+var listeners = this._listeners.slice();\r
+for (var i = 0; i < listeners.length; ++i)\r
+listeners[i].apply(null, arguments);\r
+},\r
+\r
+_dispatch: function(request)\r
+{\r
+if (this._customDispatch)\r
+this._customDispatch.call(this, request);\r
+else\r
+this._fire.apply(this, request.arguments);\r
+}\r
+}\r
+\r
+function InspectorExtensionAPI()\r
+{\r
+this.audits = new Audits();\r
+this.inspectedWindow = new InspectedWindow();\r
+this.panels = new Panels();\r
+this.resources = new Resources();\r
+\r
+this.onReset = new EventSink("reset");\r
+}\r
+\r
+InspectorExtensionAPI.prototype = {\r
+log: function(message)\r
+{\r
+extensionServer.sendRequest({ command: "log", message: message });\r
+}\r
+}\r
+\r
+function Resources()\r
+{\r
+function resourceDispatch(request)\r
+{\r
+var resource = request.arguments[1];\r
+resource.__proto__ = new Resource(request.arguments[0]);\r
+this._fire(resource);\r
+}\r
+this.onFinished = new EventSink("resource-finished", resourceDispatch);\r
+}\r
+\r
+Resources.prototype = {\r
+getHAR: function(callback)\r
+{\r
+function callbackWrapper(result)\r
+{\r
+var entries = (result && result.entries) || [];\r
+for (var i = 0; i < entries.length; ++i) {\r
+entries[i].__proto__ = new Resource(entries[i]._resourceId);\r
+delete entries[i]._resourceId;\r
+}\r
+callback(result);\r
+}\r
+return extensionServer.sendRequest({ command: "getHAR" }, callback && callbackWrapper);\r
+},\r
+\r
+addRequestHeaders: function(headers)\r
+{\r
+return extensionServer.sendRequest({ command: "addRequestHeaders", headers: headers, extensionId: location.hostname });\r
+}\r
+}\r
+\r
+function ResourceImpl(id)\r
+{\r
+this._id = id;\r
+}\r
+\r
+ResourceImpl.prototype = {\r
+getContent: function(callback)\r
+{\r
+function callbackWrapper(response)\r
+{\r
+callback(response.content, response.encoding);\r
+}\r
+extensionServer.sendRequest({ command: "getResourceContent", id: this._id }, callback && callbackWrapper);\r
+}\r
+};\r
+\r
+function Panels()\r
+{\r
+var panels = {\r
+elements: new ElementsPanel()\r
+};\r
+\r
+function panelGetter(name)\r
+{\r
+return panels[name];\r
+}\r
+for (var panel in panels)\r
+this.__defineGetter__(panel, bind(panelGetter, null, panel));\r
+}\r
+\r
+Panels.prototype = {\r
+create: function(title, iconURL, pageURL, callback)\r
+{\r
+var id = "extension-panel-" + extensionServer.nextObjectId();\r
+var request = {\r
+command: "createPanel",\r
+id: id,\r
+title: title,\r
+icon: expandURL(iconURL),\r
+url: expandURL(pageURL)\r
+};\r
+extensionServer.sendRequest(request, callback && bind(callback, this, new ExtensionPanel(id)));\r
+}\r
+}\r
+\r
+function PanelImpl(id)\r
+{\r
+this._id = id;\r
+}\r
+\r
+function PanelWithSidebarImpl(id)\r
+{\r
+PanelImpl.call(this, id);\r
+}\r
+\r
+PanelWithSidebarImpl.prototype = {\r
+createSidebarPane: function(title, url, callback)\r
+{\r
+var id = "extension-sidebar-" + extensionServer.nextObjectId();\r
+var request = {\r
+command: "createSidebarPane",\r
+panel: this._id,\r
+id: id,\r
+title: title,\r
+url: expandURL(url)\r
+};\r
+function callbackWrapper()\r
+{\r
+callback(new ExtensionSidebarPane(id));\r
+}\r
+extensionServer.sendRequest(request, callback && callbackWrapper);\r
+},\r
+\r
+createWatchExpressionSidebarPane: function(title, callback)\r
+{\r
+var id = "watch-sidebar-" + extensionServer.nextObjectId();\r
+var request = {\r
+command: "createWatchExpressionSidebarPane",\r
+panel: this._id,\r
+id: id,\r
+title: title\r
+};\r
+function callbackWrapper()\r
+{\r
+callback(new WatchExpressionSidebarPane(id));\r
+}\r
+extensionServer.sendRequest(request, callback && callbackWrapper);\r
+}\r
+}\r
+\r
+PanelWithSidebarImpl.prototype.__proto__ = PanelImpl.prototype;\r
+\r
+function ElementsPanel()\r
+{\r
+var id = "elements";\r
+PanelWithSidebar.call(this, id);\r
+this.onSelectionChanged = new EventSink("panel-objectSelected-" + id);\r
+}\r
+\r
+function ExtensionPanel(id)\r
+{\r
+Panel.call(this, id);\r
+this.onSearch = new EventSink("panel-search-" + id);\r
+}\r
+\r
+function ExtensionSidebarPaneImpl(id)\r
+{\r
+this._id = id;\r
+}\r
+\r
+ExtensionSidebarPaneImpl.prototype = {\r
+setHeight: function(height)\r
+{\r
+extensionServer.sendRequest({ command: "setSidebarHeight", id: this._id, height: height });\r
+}\r
+}\r
+\r
+function WatchExpressionSidebarPaneImpl(id)\r
+{\r
+ExtensionSidebarPaneImpl.call(this, id);\r
+this.onUpdated = new EventSink("watch-sidebar-updated-" + id);\r
+}\r
+\r
+WatchExpressionSidebarPaneImpl.prototype = {\r
+setExpression: function(expression, rootTitle)\r
+{\r
+extensionServer.sendRequest({ command: "setWatchSidebarContent", id: this._id, expression: expression, rootTitle: rootTitle, evaluateOnPage: true });\r
+},\r
+\r
+setObject: function(jsonObject, rootTitle)\r
+{\r
+extensionServer.sendRequest({ command: "setWatchSidebarContent", id: this._id, expression: jsonObject, rootTitle: rootTitle });\r
+}\r
+}\r
+\r
+WatchExpressionSidebarPaneImpl.prototype.__proto__ = ExtensionSidebarPaneImpl.prototype;\r
+\r
+function WatchExpressionSidebarPane(id)\r
+{\r
+var impl = new WatchExpressionSidebarPaneImpl(id);\r
+ExtensionSidebarPane.call(this, id, impl);\r
+}\r
+\r
+function Audits()\r
+{\r
+}\r
+\r
+Audits.prototype = {\r
+addCategory: function(displayName, resultCount)\r
+{\r
+var id = "extension-audit-category-" + extensionServer.nextObjectId();\r
+extensionServer.sendRequest({ command: "addAuditCategory", id: id, displayName: displayName, resultCount: resultCount });\r
+return new AuditCategory(id);\r
+}\r
+}\r
+\r
+function AuditCategoryImpl(id)\r
+{\r
+function auditResultDispatch(request)\r
+{\r
+var auditResult = new AuditResult(request.arguments[0]);\r
+try {\r
+this._fire(auditResult);\r
+} catch (e) {\r
+console.error("Uncaught exception in extension audit event handler: " + e);\r
+auditResult.done();\r
+}\r
+}\r
+this._id = id;\r
+this.onAuditStarted = new EventSink("audit-started-" + id, auditResultDispatch);\r
+}\r
+\r
+function AuditResultImpl(id)\r
+{\r
+this._id = id;\r
+\r
+var formatterTypes = [\r
+"url",\r
+"snippet",\r
+"text"\r
+];\r
+for (var i = 0; i < formatterTypes.length; ++i)\r
+this[formatterTypes[i]] = bind(this._nodeFactory, null, formatterTypes[i]);\r
+}\r
+\r
+AuditResultImpl.prototype = {\r
+addResult: function(displayName, description, severity, details)\r
+{\r
+\r
+if (details && !(details instanceof AuditResultNode))\r
+details = details instanceof Array ? this.createNode.apply(this, details) : this.createNode(details);\r
+\r
+var request = {\r
+command: "addAuditResult",\r
+resultId: this._id,\r
+displayName: displayName,\r
+description: description,\r
+severity: severity,\r
+details: details\r
+};\r
+extensionServer.sendRequest(request);\r
+},\r
+\r
+createResult: function()\r
+{\r
+var node = new AuditResultNode();\r
+node.contents = Array.prototype.slice.call(arguments);\r
+return node;\r
+},\r
+\r
+done: function()\r
+{\r
+extensionServer.sendRequest({ command: "stopAuditCategoryRun", resultId: this._id });\r
+},\r
+\r
+get Severity()\r
+{\r
+return apiPrivate.audits.Severity;\r
+},\r
+\r
+_nodeFactory: function(type)\r
+{\r
+return {\r
+type: type,\r
+arguments: Array.prototype.slice.call(arguments, 1)\r
+};\r
+}\r
+}\r
+\r
+function AuditResultNode(contents)\r
+{\r
+this.contents = contents;\r
+this.children = [];\r
+this.expanded = false;\r
+}\r
+\r
+AuditResultNode.prototype = {\r
+addChild: function()\r
+{\r
+var node = AuditResultImpl.prototype.createResult.apply(null, arguments);\r
+this.children.push(node);\r
+return node;\r
+}\r
+};\r
+\r
+function InspectedWindow()\r
+{\r
+this.onDOMContentLoaded = new EventSink("inspectedPageDOMContentLoaded");\r
+this.onLoaded = new EventSink("inspectedPageLoaded");\r
+this.onNavigated = new EventSink("inspectedURLChanged");\r
+}\r
+\r
+InspectedWindow.prototype = {\r
+reload: function()\r
+{\r
+return extensionServer.sendRequest({ command: "reload" });\r
+},\r
+\r
+eval: function(expression, callback)\r
+{\r
+function callbackWrapper(result)\r
+{\r
+var value = result.value;\r
+if (!result.isException)\r
+value = value === "undefined" ? undefined : JSON.parse(value);\r
+callback(value, result.isException);\r
+}\r
+return extensionServer.sendRequest({ command: "evaluateOnInspectedPage", expression: expression }, callback && callbackWrapper);\r
+}\r
+}\r
+\r
+function ExtensionServerClient()\r
+{\r
+this._callbacks = {};\r
+this._handlers = {};\r
+this._lastRequestId = 0;\r
+this._lastObjectId = 0;\r
+\r
+this.registerHandler("callback", bind(this._onCallback, this));\r
+\r
+var channel = new MessageChannel();\r
+this._port = channel.port1;\r
+this._port.addEventListener("message", bind(this._onMessage, this), false);\r
+this._port.start();\r
+\r
+top.postMessage("registerExtension", [ channel.port2 ], "*");\r
+}\r
+\r
+ExtensionServerClient.prototype = {\r
+sendRequest: function(message, callback)\r
+{\r
+if (typeof callback === "function")\r
+message.requestId = this._registerCallback(callback);\r
+return this._port.postMessage(message);\r
+},\r
+\r
+registerHandler: function(command, handler)\r
+{\r
+this._handlers[command] = handler;\r
+},\r
+\r
+nextObjectId: function()\r
+{\r
+return injectedScriptId + "_" + ++this._lastObjectId;\r
+},\r
+\r
+_registerCallback: function(callback)\r
+{\r
+var id = ++this._lastRequestId;\r
+this._callbacks[id] = callback;\r
+return id;\r
+},\r
+\r
+_onCallback: function(request)\r
+{\r
+if (request.requestId in this._callbacks) {\r
+this._callbacks[request.requestId](request.result);\r
+delete this._callbacks[request.requestId];\r
+}\r
+},\r
+\r
+_onMessage: function(event)\r
+{\r
+var request = event.data;\r
+var handler = this._handlers[request.command];\r
+if (handler)\r
+handler.call(this, request);\r
+}\r
+}\r
+\r
+function expandURL(url)\r
+{\r
+if (!url)\r
+return url;\r
+if (/^[^/]+:/.exec(url)) // See if url has schema.\r
+return url;\r
+var baseURL = location.protocol + "//" + location.hostname + location.port;\r
+if (/^\//.exec(url))\r
+return baseURL + url;\r
+return baseURL + location.pathname.replace(/\/[^/]*$/,"/") + url;\r
+}\r
+\r
+function bind(func, thisObject)\r
+{\r
+var args = Array.prototype.slice.call(arguments, 2);\r
+return function() { return func.apply(thisObject, args.concat(Array.prototype.slice.call(arguments, 0))); };\r
+}\r
+\r
+function populateInterfaceClass(interface, implementation)\r
+{\r
+for (var member in implementation) {\r
+if (member.charAt(0) === "_")\r
+continue;\r
+var value = implementation[member];\r
+interface[member] = typeof value === "function" ? bind(value, implementation)\r
+: interface[member] = implementation[member];\r
+}\r
+}\r
+\r
+function declareInterfaceClass(implConstructor)\r
+{\r
+return function()\r
+{\r
+var impl = { __proto__: implConstructor.prototype };\r
+implConstructor.apply(impl, arguments);\r
+populateInterfaceClass(this, impl);\r
+}\r
+}\r
+\r
+var AuditCategory = declareInterfaceClass(AuditCategoryImpl);\r
+var AuditResult = declareInterfaceClass(AuditResultImpl);\r
+var EventSink = declareInterfaceClass(EventSinkImpl);\r
+var ExtensionSidebarPane = declareInterfaceClass(ExtensionSidebarPaneImpl);\r
+var Panel = declareInterfaceClass(PanelImpl);\r
+var PanelWithSidebar = declareInterfaceClass(PanelWithSidebarImpl);\r
+var Resource = declareInterfaceClass(ResourceImpl);\r
+var WatchExpressionSidebarPane = declareInterfaceClass(WatchExpressionSidebarPaneImpl);\r
+\r
+var extensionServer = new ExtensionServerClient();\r
+\r
+webInspector = new InspectorExtensionAPI();\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ExtensionAuditCategory = function(id, displayName, ruleCount)\r
+{\r
+this._id = id;\r
+this._displayName = displayName;\r
+this._ruleCount  = ruleCount;\r
+}\r
+\r
+WebInspector.ExtensionAuditCategory.prototype = {\r
+\r
+get id()\r
+{\r
+return this._id;\r
+},\r
+\r
+get displayName()\r
+{\r
+return this._displayName;\r
+},\r
+\r
+get ruleCount()\r
+{\r
+return this._ruleCount;\r
+},\r
+\r
+run: function(resources, callback)\r
+{\r
+new WebInspector.ExtensionAuditCategoryResults(this, callback);\r
+}\r
+}\r
+\r
+WebInspector.ExtensionAuditCategoryResults = function(category, callback)\r
+{\r
+this._category = category;\r
+this._pendingRules = category.ruleCount;\r
+this._ruleCompletionCallback = callback;\r
+\r
+this.id = category.id + "-" + ++WebInspector.ExtensionAuditCategoryResults._lastId;\r
+WebInspector.extensionServer.startAuditRun(category, this);\r
+}\r
+\r
+WebInspector.ExtensionAuditCategoryResults.prototype = {\r
+get complete()\r
+{\r
+return !this._pendingRules;\r
+},\r
+\r
+cancel: function()\r
+{\r
+while (!this.complete)\r
+this._addResult(null);\r
+},\r
+\r
+addResult: function(displayName, description, severity, details)\r
+{\r
+var result = new WebInspector.AuditRuleResult(displayName);\r
+result.addChild(description);\r
+result.severity = severity;\r
+if (details)\r
+this._addNode(result, details);\r
+this._addResult(result);\r
+},\r
+\r
+_addNode: function(parent, node)\r
+{\r
+var addedNode = parent.addChild(node.contents, node.expanded);\r
+if (node.children) {\r
+for (var i = 0; i < node.children.length; ++i)\r
+this._addNode(addedNode, node.children[i]);\r
+}\r
+},\r
+\r
+_addResult: function(result)\r
+{\r
+this._ruleCompletionCallback(result);\r
+this._pendingRules--;\r
+if (!this._pendingRules)\r
+WebInspector.extensionServer.stopAuditRun(this);\r
+}\r
+}\r
+\r
+WebInspector.ExtensionAuditCategoryResults._lastId = 0;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.commonExtensionSymbols = function(apiPrivate)\r
+{\r
+\r
+if (!apiPrivate.audits)\r
+apiPrivate.audits = {};\r
+\r
+apiPrivate.audits.Severity = {\r
+Info: "info",\r
+Warning: "warning",\r
+Severe: "severe"\r
+};\r
+}\r
+\r
+WebInspector.extensionAPI = {};\r
+\r
+WebInspector.commonExtensionSymbols(WebInspector.extensionAPI);\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ExtensionServer = function()\r
+{\r
+this._clientObjects = {};\r
+this._handlers = {};\r
+this._subscribers = {};\r
+this._extraHeaders = {};\r
+this._status = new WebInspector.ExtensionStatus();\r
+\r
+this._registerHandler("addRequestHeaders", this._onAddRequestHeaders.bind(this));\r
+this._registerHandler("addAuditCategory", this._onAddAuditCategory.bind(this));\r
+this._registerHandler("addAuditResult", this._onAddAuditResult.bind(this));\r
+this._registerHandler("createPanel", this._onCreatePanel.bind(this));\r
+this._registerHandler("createSidebarPane", this._onCreateSidebar.bind(this));\r
+this._registerHandler("createWatchExpressionSidebarPane", this._onCreateWatchExpressionSidebarPane.bind(this));\r
+this._registerHandler("evaluateOnInspectedPage", this._onEvaluateOnInspectedPage.bind(this));\r
+this._registerHandler("getHAR", this._onGetHAR.bind(this));\r
+this._registerHandler("getResourceContent", this._onGetResourceContent.bind(this));\r
+this._registerHandler("log", this._onLog.bind(this));\r
+this._registerHandler("reload", this._onReload.bind(this));\r
+this._registerHandler("setSidebarHeight", this._onSetSidebarHeight.bind(this));\r
+this._registerHandler("setWatchSidebarContent", this._onSetWatchSidebarContent.bind(this));\r
+this._registerHandler("stopAuditCategoryRun", this._onStopAuditCategoryRun.bind(this));\r
+this._registerHandler("subscribe", this._onSubscribe.bind(this));\r
+this._registerHandler("unsubscribe", this._onUnsubscribe.bind(this));\r
+\r
+\r
+window.addEventListener("message", this._onWindowMessage.bind(this), false);\r
+}\r
+\r
+WebInspector.ExtensionServer.prototype = {\r
+notifyPanelShown: function(panelName)\r
+{\r
+this._postNotification("panel-shown-" + panelName);\r
+},\r
+\r
+notifyObjectSelected: function(panelId, objectId)\r
+{\r
+this._postNotification("panel-objectSelected-" + panelId, objectId);\r
+},\r
+\r
+notifyResourceFinished: function(resource)\r
+{\r
+this._postNotification("resource-finished", resource.identifier, (new WebInspector.HAREntry(resource)).build());\r
+},\r
+\r
+notifySearchAction: function(panelId, action, searchString)\r
+{\r
+this._postNotification("panel-search-" + panelId, action, searchString);\r
+},\r
+\r
+notifyPageLoaded: function(milliseconds)\r
+{\r
+this._postNotification("inspectedPageLoaded", milliseconds);\r
+},\r
+\r
+notifyPageDOMContentLoaded: function(milliseconds)\r
+{\r
+this._postNotification("inspectedPageDOMContentLoaded", milliseconds);\r
+},\r
+\r
+notifyInspectedURLChanged: function()\r
+{\r
+this._postNotification("inspectedURLChanged");\r
+},\r
+\r
+notifyInspectorReset: function()\r
+{\r
+this._postNotification("reset");\r
+},\r
+\r
+notifyExtensionWatchSidebarUpdated: function(id)\r
+{\r
+this._postNotification("watch-sidebar-updated-" + id);\r
+},\r
+\r
+startAuditRun: function(category, auditRun)\r
+{\r
+this._clientObjects[auditRun.id] = auditRun;\r
+this._postNotification("audit-started-" + category.id, auditRun.id);\r
+},\r
+\r
+stopAuditRun: function(auditRun)\r
+{\r
+delete this._clientObjects[auditRun.id];\r
+},\r
+\r
+_postNotification: function(type, details)\r
+{\r
+var subscribers = this._subscribers[type];\r
+if (!subscribers)\r
+return;\r
+var message = {\r
+command: "notify-" + type,\r
+arguments: Array.prototype.slice.call(arguments, 1)\r
+};\r
+for (var i = 0; i < subscribers.length; ++i)\r
+subscribers[i].postMessage(message);\r
+},\r
+\r
+_onSubscribe: function(message, port)\r
+{\r
+var subscribers = this._subscribers[message.type];\r
+if (subscribers)\r
+subscribers.push(port);\r
+else\r
+this._subscribers[message.type] = [ port ];\r
+},\r
+\r
+_onUnsubscribe: function(message, port)\r
+{\r
+var subscribers = this._subscribers[message.type];\r
+if (!subscribers)\r
+return;\r
+subscribers.remove(port);\r
+if (!subscribers.length)\r
+delete this._subscribers[message.type];\r
+},\r
+\r
+_onAddRequestHeaders: function(message)\r
+{\r
+var id = message.extensionId;\r
+if (typeof id !== "string")\r
+return this._status.E_BADARGTYPE("extensionId", typeof id, "string");\r
+var extensionHeaders = this._extraHeaders[id];\r
+if (!extensionHeaders) {\r
+extensionHeaders = {};\r
+this._extraHeaders[id] = extensionHeaders;\r
+}\r
+for (name in message.headers)\r
+extensionHeaders[name] = message.headers[name];\r
+var allHeaders = {};\r
+for (extension in this._extraHeaders) {\r
+var headers = this._extraHeaders[extension];\r
+for (name in headers) {\r
+if (typeof headers[name] === "string")\r
+allHeaders[name] = headers[name];\r
+}\r
+}\r
+InspectorBackend.setExtraHeaders(allHeaders);\r
+},\r
+\r
+_onCreatePanel: function(message, port)\r
+{\r
+var id = message.id;\r
+\r
+\r
+if (id in this._clientObjects || id in WebInspector.panels)\r
+return this._status.E_EXISTS(id);\r
+var panel = new WebInspector.ExtensionPanel(id, message.title, message.icon);\r
+this._clientObjects[id] = panel;\r
+\r
+var toolbarElement = document.getElementById("toolbar");\r
+var lastToolbarItem = WebInspector.panelOrder[WebInspector.panelOrder.length - 1].toolbarItem;\r
+WebInspector.addPanelToolbarIcon(toolbarElement, panel, lastToolbarItem);\r
+WebInspector.panels[id] = panel;\r
+var iframe = this._createClientIframe(panel.element, message.url);\r
+iframe.style.height = "100%";\r
+return this._status.OK();\r
+},\r
+\r
+_onCreateSidebar: function(message)\r
+{\r
+var sidebar = this._createSidebar(message, WebInspector.SidebarPane);\r
+if (sidebar.isError)\r
+return sidebar;\r
+this._createClientIframe(sidebar.bodyElement, message.url);\r
+return this._status.OK();\r
+},\r
+\r
+_onCreateWatchExpressionSidebarPane: function(message)\r
+{\r
+var sidebar = this._createSidebar(message, WebInspector.ExtensionWatchSidebarPane);\r
+return sidebar.isError ? sidebar : this._status.OK();\r
+},\r
+\r
+_createSidebar: function(message, constructor)\r
+{\r
+var panel = WebInspector.panels[message.panel];\r
+if (!panel)\r
+return this._status.E_NOTFOUND(message.panel);\r
+if (!panel.sidebarElement || !panel.sidebarPanes)\r
+return this._status.E_NOTSUPPORTED();\r
+var id = message.id;\r
+var sidebar = new constructor(message.title, message.id);\r
+this._clientObjects[id] = sidebar;\r
+panel.sidebarPanes[id] = sidebar;\r
+panel.sidebarElement.appendChild(sidebar.element);\r
+\r
+return sidebar;\r
+},\r
+\r
+_createClientIframe: function(parent, url, requestId, port)\r
+{\r
+var iframe = document.createElement("iframe");\r
+iframe.src = url;\r
+iframe.style.width = "100%";\r
+parent.appendChild(iframe);\r
+return iframe;\r
+},\r
+\r
+_onSetSidebarHeight: function(message)\r
+{\r
+var sidebar = this._clientObjects[message.id];\r
+if (!sidebar)\r
+return this._status.E_NOTFOUND(message.id);\r
+sidebar.bodyElement.firstChild.style.height = message.height;\r
+},\r
+\r
+_onSetWatchSidebarContent: function(message)\r
+{\r
+var sidebar = this._clientObjects[message.id];\r
+if (!sidebar)\r
+return this._status.E_NOTFOUND(message.id);\r
+if (message.evaluateOnPage)\r
+sidebar.setExpression(message.expression, message.rootTitle);\r
+else\r
+sidebar.setObject(message.expression, message.rootTitle);\r
+},\r
+\r
+_onLog: function(message)\r
+{\r
+WebInspector.log(message.message);\r
+},\r
+\r
+_onReload: function()\r
+{\r
+InspectorBackend.reloadPage();\r
+return this._status.OK();\r
+},\r
+\r
+_onEvaluateOnInspectedPage: function(message, port)\r
+{\r
+function callback(resultPayload)\r
+{\r
+var resultObject = WebInspector.RemoteObject.fromPayload(resultPayload);\r
+var result = {};\r
+if (resultObject.isError())\r
+result.isException = true;\r
+result.value = resultObject.description;\r
+this._dispatchCallback(message.requestId, port, result);\r
+}\r
+var evalExpression = "JSON.stringify(eval('" +\r
+"with (window.console._commandLineAPI) with (window) {' + unescape('" + escape(message.expression) +\r
+"') + '}'));";\r
+InjectedScriptAccess.getDefault().evaluate(evalExpression, callback.bind(this));\r
+},\r
+\r
+_onRevealAndSelect: function(message)\r
+{\r
+if (message.panelId === "resources" && type === "resource")\r
+return this._onRevealAndSelectResource(message);\r
+else\r
+return this._status.E_NOTSUPPORTED(message.panelId, message.type);\r
+},\r
+\r
+_onRevealAndSelectResource: function(message)\r
+{\r
+var id = message.id;\r
+var resource = null;\r
+\r
+resource = WebInspector.networkResources[id] || WebInspector.resourceForURL(id);\r
+if (!resource)\r
+return this._status.E_NOTFOUND(typeof id + ": " + id);\r
+\r
+WebInspector.panels.resources.showResource(resource, message.line);\r
+WebInspector.showPanel("resources");\r
+},\r
+\r
+_dispatchCallback: function(requestId, port, result)\r
+{\r
+port.postMessage({ command: "callback", requestId: requestId, result: result });\r
+},\r
+\r
+_onGetHAR: function(request)\r
+{\r
+var harLog = new WebInspector.HARLog();\r
+harLog.includeResourceIds = true;\r
+return harLog.build();\r
+},\r
+\r
+_onGetResourceContent: function(message, port)\r
+{\r
+function onContentAvailable(content, encoded)\r
+{\r
+var response = {\r
+encoding: encoded ? "base64" : "",\r
+content: content\r
+};\r
+this._dispatchCallback(message.requestId, port, response);\r
+}\r
+var resource = WebInspector.networkResources[message.id];\r
+if (!resource)\r
+return this._status.E_NOTFOUND(message.id);\r
+resource.requestContent(onContentAvailable.bind(this));\r
+},\r
+\r
+_onAddAuditCategory: function(request)\r
+{\r
+var category = new WebInspector.ExtensionAuditCategory(request.id, request.displayName, request.resultCount);\r
+if (WebInspector.panels.audits.getCategory(category.id))\r
+return this._status.E_EXISTS(category.id);\r
+this._clientObjects[request.id] = category;\r
+WebInspector.panels.audits.addCategory(category);\r
+},\r
+\r
+_onAddAuditResult: function(request)\r
+{\r
+var auditResult = this._clientObjects[request.resultId];\r
+if (!auditResult)\r
+return this._status.E_NOTFOUND(request.resultId);\r
+try {\r
+auditResult.addResult(request.displayName, request.description, request.severity, request.details);\r
+} catch (e) {\r
+return e;\r
+}\r
+return this._status.OK();\r
+},\r
+\r
+_onStopAuditCategoryRun: function(request)\r
+{\r
+var auditRun = this._clientObjects[request.resultId];\r
+if (!auditRun)\r
+return this._status.E_NOTFOUND(request.resultId);\r
+auditRun.cancel();\r
+},\r
+\r
+initExtensions: function()\r
+{\r
+InspectorExtensionRegistry.getExtensionsAsync();\r
+},\r
+\r
+_addExtensions: function(extensions)\r
+{\r
+\r
+InspectorFrontendHost.setExtensionAPI(this._buildExtensionAPIInjectedScript());\r
+for (var i = 0; i < extensions.length; ++i) {\r
+var extension = extensions[i];\r
+try {\r
+if (!extension.startPage)\r
+return;\r
+var iframe = document.createElement("iframe");\r
+iframe.src = extension.startPage;\r
+iframe.style.display = "none";\r
+document.body.appendChild(iframe);\r
+} catch (e) {\r
+console.error("Failed to initialize extension " + extension.startPage + ":" + e);\r
+}\r
+}\r
+},\r
+\r
+_buildExtensionAPIInjectedScript: function()\r
+{\r
+var resourceTypes = {};\r
+var resourceTypeProperties = Object.getOwnPropertyNames(WebInspector.Resource.Type);\r
+for (var i = 0; i < resourceTypeProperties.length; ++i) {\r
+var propName = resourceTypeProperties[i];\r
+var propValue = WebInspector.Resource.Type[propName];\r
+if (typeof propValue === "number")\r
+resourceTypes[propName] = WebInspector.Resource.Type.toString(propValue);\r
+}\r
+var platformAPI = WebInspector.buildPlatformExtensionAPI ? WebInspector.buildPlatformExtensionAPI() : "";\r
+return "(function(){ " +\r
+"var apiPrivate = {};" +\r
+"(" + WebInspector.commonExtensionSymbols.toString() + ")(apiPrivate);" +\r
+"(" + WebInspector.injectedExtensionAPI.toString() + ").apply(this, arguments);" +\r
+"webInspector.resources.Types = " + JSON.stringify(resourceTypes) + ";" +\r
+platformAPI +\r
+"})";\r
+},\r
+\r
+_onWindowMessage: function(event)\r
+{\r
+if (event.data !== "registerExtension")\r
+return;\r
+var port = event.ports[0];\r
+port.addEventListener("message", this._onmessage.bind(this), false);\r
+port.start();\r
+},\r
+\r
+_onmessage: function(event)\r
+{\r
+var request = event.data;\r
+var result;\r
+\r
+if (request.command in this._handlers)\r
+result = this._handlers[request.command](request, event.target);\r
+else\r
+result = this._status.E_NOTSUPPORTED(request.command);\r
+\r
+if (result && request.requestId)\r
+this._dispatchCallback(request.requestId, event.target, result);\r
+},\r
+\r
+_registerHandler: function(command, callback)\r
+{\r
+this._handlers[command] = callback;\r
+}\r
+}\r
+\r
+WebInspector.ExtensionServer._statuses =\r
+{\r
+OK: "",\r
+E_EXISTS: "Object already exists: %s",\r
+E_BADARG: "Invalid argument %s: %s",\r
+E_BADARGTYPE: "Invalid type for argument %s: got %s, expected %s",\r
+E_NOTFOUND: "Object not found: %s",\r
+E_NOTSUPPORTED: "Object does not support requested operation: %s",\r
+}\r
+\r
+WebInspector.ExtensionStatus = function()\r
+{\r
+function makeStatus(code)\r
+{\r
+var description = WebInspector.ExtensionServer._statuses[code] || code;\r
+var details = Array.prototype.slice.call(arguments, 1);\r
+var status = { code: code, description: description, details: details };\r
+if (code !== "OK") {\r
+status.isError = true;\r
+console.log("Extension server error: " + String.vsprintf(description, details));\r
+}\r
+return status;\r
+}\r
+for (status in WebInspector.ExtensionServer._statuses)\r
+this[status] = makeStatus.bind(null, status);\r
+}\r
+\r
+WebInspector.addExtensions = function(extensions)\r
+{\r
+WebInspector.extensionServer._addExtensions(extensions);\r
+}\r
+\r
+WebInspector.extensionServer = new WebInspector.ExtensionServer();\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ExtensionPanel = function(id, label, iconURL, options)\r
+{\r
+this.toolbarItemLabel = label;\r
+this._addStyleRule(".toolbar-item." + id + " .toolbar-icon", "background-image: url(" + iconURL + ");");\r
+WebInspector.Panel.call(this, id);\r
+}\r
+\r
+WebInspector.ExtensionPanel.prototype = {\r
+get defaultFocusedElement()\r
+{\r
+return this.sidebarTreeElement || this.element;\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this.bodyElement.style.left = width + "px";\r
+this.resize();\r
+},\r
+\r
+searchCanceled: function(startingNewSearch)\r
+{\r
+WebInspector.extensionServer.notifySearchAction(this._id, "cancelSearch");\r
+WebInspector.Panel.prototype.searchCanceled.apply(this, arguments);\r
+},\r
+\r
+performSearch: function(query)\r
+{\r
+WebInspector.extensionServer.notifySearchAction(this._id, "performSearch", query);\r
+WebInspector.Panel.prototype.performSearch.apply(this, arguments);\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+WebInspector.extensionServer.notifySearchAction(this._id, "nextSearchResult");\r
+WebInspector.Panel.prototype.jumpToNextSearchResult.call(this);\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+WebInspector.extensionServer.notifySearchAction(this._id, "previousSearchResult");\r
+WebInspector.Panel.prototype.jumpToPreviousSearchResult.call(this);\r
+},\r
+\r
+_addStyleRule: function(selector, body)\r
+{\r
+var style = document.createElement("style");\r
+style.textContent = selector + " { " + body + " }";\r
+document.head.appendChild(style);\r
+}\r
+}\r
+\r
+WebInspector.ExtensionPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+WebInspector.ExtensionWatchSidebarPane = function(title, id)\r
+{\r
+WebInspector.SidebarPane.call(this, title);\r
+this._id = id;\r
+}\r
+\r
+WebInspector.ExtensionWatchSidebarPane.prototype = {\r
+setObject: function(object, title)\r
+{\r
+this._setObject(WebInspector.RemoteObject.fromLocalObject(object), title);\r
+},\r
+\r
+setExpression: function(expression, title)\r
+{\r
+InjectedScriptAccess.getDefault().evaluate(expression, this._onEvaluate.bind(this, title));\r
+},\r
+\r
+_onEvaluate: function(title, result)\r
+{\r
+this._setObject(WebInspector.RemoteObject.fromPayload(result), title);\r
+},\r
+\r
+_setObject: function(object, title)\r
+{\r
+this.bodyElement.removeChildren();\r
+var section = new WebInspector.ObjectPropertiesSection(object, title, null, true);\r
+if (!title)\r
+section.headerElement.addStyleClass("hidden");\r
+section.expanded = true;\r
+this.bodyElement.appendChild(section.element);\r
+WebInspector.extensionServer.notifyExtensionWatchSidebarUpdated(this._id);\r
+}\r
+}\r
+\r
+WebInspector.ExtensionWatchSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.AuditsPanel = function()\r
+{\r
+WebInspector.Panel.call(this, "audits");\r
+\r
+this.createSidebar();\r
+this.auditsTreeElement = new WebInspector.SidebarSectionTreeElement("", {}, true);\r
+this.sidebarTree.appendChild(this.auditsTreeElement);\r
+this.auditsTreeElement.listItemElement.addStyleClass("hidden");\r
+this.auditsTreeElement.expand();\r
+\r
+this.auditsItemTreeElement = new WebInspector.AuditsSidebarTreeElement();\r
+this.auditsTreeElement.appendChild(this.auditsItemTreeElement);\r
+\r
+this.auditResultsTreeElement = new WebInspector.SidebarSectionTreeElement(WebInspector.UIString("RESULTS"), {}, true);\r
+this.sidebarTree.appendChild(this.auditResultsTreeElement);\r
+this.auditResultsTreeElement.expand();\r
+\r
+this.clearResultsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear audit results."), "clear-status-bar-item");\r
+this.clearResultsButton.addEventListener("click", this._clearButtonClicked.bind(this), false);\r
+\r
+this.viewsContainerElement = document.createElement("div");\r
+this.viewsContainerElement.id = "audit-views";\r
+this.element.appendChild(this.viewsContainerElement);\r
+\r
+this._constructCategories();\r
+\r
+this._launcherView = new WebInspector.AuditLauncherView(this.initiateAudit.bind(this));\r
+for (id in this.categoriesById)\r
+this._launcherView.addCategory(this.categoriesById[id]);\r
+}\r
+\r
+WebInspector.AuditsPanel.prototype = {\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Audits");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this.clearResultsButton.element];\r
+},\r
+\r
+get mainResourceLoadTime()\r
+{\r
+return this._mainResourceLoadTime;\r
+},\r
+\r
+set mainResourceLoadTime(x)\r
+{\r
+this._mainResourceLoadTime = x;\r
+this._didMainResourceLoad();\r
+},\r
+\r
+get mainResourceDOMContentTime()\r
+{\r
+return this._mainResourceDOMContentTime;\r
+},\r
+\r
+set mainResourceDOMContentTime(x)\r
+{\r
+this._mainResourceDOMContentTime = x;\r
+},\r
+\r
+get categoriesById()\r
+{\r
+return this._auditCategoriesById;\r
+},\r
+\r
+resourceStarted: function(resource)\r
+{\r
+this._launcherView.resourceStarted(resource);\r
+},\r
+\r
+resourceFinished: function(resource)\r
+{\r
+this._launcherView.resourceFinished(resource);\r
+},\r
+\r
+addCategory: function(category)\r
+{\r
+this.categoriesById[category.id] = category;\r
+this._launcherView.addCategory(category);\r
+},\r
+\r
+getCategory: function(id)\r
+{\r
+return this.categoriesById[id];\r
+},\r
+\r
+_constructCategories: function()\r
+{\r
+this._auditCategoriesById = {};\r
+for (var categoryCtorID in WebInspector.AuditCategories) {\r
+var auditCategory = new WebInspector.AuditCategories[categoryCtorID]();\r
+auditCategory._id = categoryCtorID;\r
+this.categoriesById[categoryCtorID] = auditCategory;\r
+}\r
+},\r
+\r
+_executeAudit: function(categories, resultCallback)\r
+{\r
+var resources = [];\r
+for (var id in WebInspector.networkResources)\r
+resources.push(WebInspector.networkResources[id]);\r
+\r
+var rulesRemaining = 0;\r
+for (var i = 0; i < categories.length; ++i)\r
+rulesRemaining += categories[i].ruleCount;\r
+\r
+var results = [];\r
+var mainResourceURL = WebInspector.mainResource.url;\r
+\r
+function ruleResultReadyCallback(categoryResult, ruleResult)\r
+{\r
+if (ruleResult && ruleResult.children)\r
+categoryResult.addRuleResult(ruleResult);\r
+\r
+--rulesRemaining;\r
+\r
+if (!rulesRemaining && resultCallback)\r
+resultCallback(mainResourceURL, results);\r
+}\r
+\r
+if (!rulesRemaining) {\r
+resultCallback(mainResourceURL, results);\r
+return;\r
+}\r
+\r
+for (var i = 0; i < categories.length; ++i) {\r
+var category = categories[i];\r
+var result = new WebInspector.AuditCategoryResult(category);\r
+results.push(result);\r
+category.run(resources, ruleResultReadyCallback.bind(null, result));\r
+}\r
+},\r
+\r
+_auditFinishedCallback: function(launcherCallback, mainResourceURL, results)\r
+{\r
+var children = this.auditResultsTreeElement.children;\r
+var ordinal = 1;\r
+for (var i = 0; i < children.length; ++i) {\r
+if (children[i].mainResourceURL === mainResourceURL)\r
+ordinal++;\r
+}\r
+\r
+var resultTreeElement = new WebInspector.AuditResultSidebarTreeElement(results, mainResourceURL, ordinal);\r
+this.auditResultsTreeElement.appendChild(resultTreeElement);\r
+resultTreeElement.reveal();\r
+resultTreeElement.select();\r
+if (launcherCallback)\r
+launcherCallback();\r
+},\r
+\r
+initiateAudit: function(categoryIds, runImmediately, launcherCallback)\r
+{\r
+if (!categoryIds || !categoryIds.length)\r
+return;\r
+\r
+var categories = [];\r
+for (var i = 0; i < categoryIds.length; ++i)\r
+categories.push(this.categoriesById[categoryIds[i]]);\r
+\r
+function initiateAuditCallback(categories, launcherCallback)\r
+{\r
+this._executeAudit(categories, this._auditFinishedCallback.bind(this, launcherCallback));\r
+}\r
+\r
+if (runImmediately)\r
+initiateAuditCallback.call(this, categories, launcherCallback);\r
+else\r
+this._reloadResources(initiateAuditCallback.bind(this, categories, launcherCallback));\r
+},\r
+\r
+_reloadResources: function(callback)\r
+{\r
+this._pageReloadCallback = callback;\r
+InspectorBackend.reloadPage();\r
+},\r
+\r
+_didMainResourceLoad: function()\r
+{\r
+if (this._pageReloadCallback) {\r
+var callback = this._pageReloadCallback;\r
+delete this._pageReloadCallback;\r
+callback();\r
+}\r
+},\r
+\r
+showResults: function(categoryResults)\r
+{\r
+if (!categoryResults._resultView)\r
+categoryResults._resultView = new WebInspector.AuditResultView(categoryResults);\r
+\r
+this.visibleView = categoryResults._resultView;\r
+},\r
+\r
+showLauncherView: function()\r
+{\r
+this.visibleView = this._launcherView;\r
+},\r
+\r
+get visibleView()\r
+{\r
+return this._visibleView;\r
+},\r
+\r
+set visibleView(x)\r
+{\r
+if (this._visibleView === x)\r
+return;\r
+\r
+if (this._visibleView)\r
+this._visibleView.hide();\r
+\r
+this._visibleView = x;\r
+\r
+if (x)\r
+x.show(this.viewsContainerElement);\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+this._updateLauncherViewControls(!WebInspector.panels.resources || WebInspector.panels.resources.resourceTrackingEnabled);\r
+},\r
+\r
+reset: function()\r
+{\r
+this._launcherView.reset();\r
+},\r
+\r
+attach: function()\r
+{\r
+WebInspector.Panel.prototype.attach.call(this);\r
+\r
+this.auditsItemTreeElement.select();\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this.viewsContainerElement.style.left = width + "px";\r
+},\r
+\r
+_updateLauncherViewControls: function(isTracking)\r
+{\r
+if (this._launcherView)\r
+this._launcherView.updateResourceTrackingState(isTracking);\r
+},\r
+\r
+_clearButtonClicked: function()\r
+{\r
+this.auditsItemTreeElement.reveal();\r
+this.auditsItemTreeElement.select();\r
+this.auditResultsTreeElement.removeChildren();\r
+}\r
+}\r
+\r
+WebInspector.AuditsPanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+\r
+\r
+WebInspector.AuditCategory = function(displayName)\r
+{\r
+this._displayName = displayName;\r
+this._rules = [];\r
+}\r
+\r
+WebInspector.AuditCategory.prototype = {\r
+get id()\r
+{\r
+\r
+return this._id;\r
+},\r
+\r
+get displayName()\r
+{\r
+return this._displayName;\r
+},\r
+\r
+get ruleCount()\r
+{\r
+this._ensureInitialized();\r
+return this._rules.length;\r
+},\r
+\r
+addRule: function(rule, severity)\r
+{\r
+rule.severity = severity;\r
+this._rules.push(rule);\r
+},\r
+\r
+run: function(resources, callback)\r
+{\r
+this._ensureInitialized();\r
+for (var i = 0; i < this._rules.length; ++i)\r
+this._rules[i].run(resources, callback);\r
+},\r
+\r
+_ensureInitialized: function()\r
+{\r
+if (!this._initialized) {\r
+if ("initialize" in this)\r
+this.initialize();\r
+this._initialized = true;\r
+}\r
+}\r
+}\r
+\r
+\r
+WebInspector.AuditRule = function(id, displayName)\r
+{\r
+this._id = id;\r
+this._displayName = displayName;\r
+}\r
+\r
+WebInspector.AuditRule.Severity = {\r
+Info: "info",\r
+Warning: "warning",\r
+Severe: "severe"\r
+}\r
+\r
+WebInspector.AuditRule.SeverityOrder = {\r
+"info": 3,\r
+"warning": 2,\r
+"severe": 1\r
+}\r
+\r
+WebInspector.AuditRule.prototype = {\r
+get id()\r
+{\r
+return this._id;\r
+},\r
+\r
+get displayName()\r
+{\r
+return this._displayName;\r
+},\r
+\r
+set severity(severity)\r
+{\r
+this._severity = severity;\r
+},\r
+\r
+run: function(resources, callback)\r
+{\r
+var result = new WebInspector.AuditRuleResult(this.displayName);\r
+result.severity = this._severity;\r
+this.doRun(resources, result, callback);\r
+},\r
+\r
+doRun: function(resources, result, callback)\r
+{\r
+throw new Error("doRun() not implemented");\r
+}\r
+}\r
+\r
+WebInspector.AuditCategoryResult = function(category)\r
+{\r
+this.title = category.displayName;\r
+this.ruleResults = [];\r
+}\r
+\r
+WebInspector.AuditCategoryResult.prototype = {\r
+addRuleResult: function(ruleResult)\r
+{\r
+this.ruleResults.push(ruleResult);\r
+}\r
+}\r
+\r
+WebInspector.AuditRuleResult = function(value, expanded, className)\r
+{\r
+this.value = value;\r
+this.className = className;\r
+this.expanded = expanded;\r
+this.violationCount = 0;\r
+}\r
+\r
+WebInspector.AuditRuleResult.linkifyDisplayName = function(url)\r
+{\r
+return WebInspector.linkifyURL(url, WebInspector.displayNameForURL(url));\r
+}\r
+\r
+WebInspector.AuditRuleResult.resourceDomain = function(domain)\r
+{\r
+return domain || WebInspector.UIString("[empty domain]");\r
+}\r
+\r
+WebInspector.AuditRuleResult.prototype = {\r
+addChild: function(value, expanded, className)\r
+{\r
+if (!this.children)\r
+this.children = [];\r
+var entry = new WebInspector.AuditRuleResult(value, expanded, className);\r
+this.children.push(entry);\r
+return entry;\r
+},\r
+\r
+addURL: function(url)\r
+{\r
+return this.addChild(WebInspector.AuditRuleResult.linkifyDisplayName(url));\r
+},\r
+\r
+addURLs: function(urls)\r
+{\r
+for (var i = 0; i < urls.length; ++i)\r
+this.addURL(urls[i]);\r
+},\r
+\r
+addSnippet: function(snippet)\r
+{\r
+return this.addChild(snippet, false, "source-code");\r
+}\r
+}\r
+\r
+WebInspector.AuditsSidebarTreeElement = function()\r
+{\r
+this.small = false;\r
+\r
+WebInspector.SidebarTreeElement.call(this, "audits-sidebar-tree-item", WebInspector.UIString("Audits"), "", null, false);\r
+}\r
+\r
+WebInspector.AuditsSidebarTreeElement.prototype = {\r
+onattach: function()\r
+{\r
+WebInspector.SidebarTreeElement.prototype.onattach.call(this);\r
+},\r
+\r
+onselect: function()\r
+{\r
+WebInspector.panels.audits.showLauncherView();\r
+},\r
+\r
+get selectable()\r
+{\r
+return true;\r
+},\r
+\r
+refresh: function()\r
+{\r
+this.refreshTitles();\r
+}\r
+}\r
+\r
+WebInspector.AuditsSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;\r
+\r
+\r
+WebInspector.AuditResultSidebarTreeElement = function(results, mainResourceURL, ordinal)\r
+{\r
+this.results = results;\r
+this.mainResourceURL = mainResourceURL;\r
+\r
+WebInspector.SidebarTreeElement.call(this, "audit-result-sidebar-tree-item", String.sprintf("%s (%d)", mainResourceURL, ordinal), "", {}, false);\r
+}\r
+\r
+WebInspector.AuditResultSidebarTreeElement.prototype = {\r
+onselect: function()\r
+{\r
+WebInspector.panels.audits.showResults(this.results);\r
+},\r
+\r
+get selectable()\r
+{\r
+return true;\r
+}\r
+}\r
+\r
+WebInspector.AuditResultSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;\r
+\r
+\r
+WebInspector.AuditRules = {};\r
+\r
+\r
+WebInspector.AuditCategories = {};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.AuditResultView = function(categoryResults)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.className = "audit-result-view";\r
+\r
+function categorySorter(a, b) {\r
+return (a.title || "").localeCompare(b.title || "");\r
+}\r
+categoryResults.sort(categorySorter);\r
+for (var i = 0; i < categoryResults.length; ++i)\r
+this.element.appendChild(new WebInspector.AuditCategoryResultPane(categoryResults[i]).element);\r
+}\r
+\r
+WebInspector.AuditResultView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+WebInspector.AuditCategoryResultPane = function(categoryResult)\r
+{\r
+WebInspector.SidebarPane.call(this, categoryResult.title);\r
+var treeOutlineElement = document.createElement("ol");\r
+this.bodyElement.addStyleClass("audit-result-tree");\r
+this.bodyElement.appendChild(treeOutlineElement);\r
+\r
+this._treeOutline = new TreeOutline(treeOutlineElement);\r
+this._treeOutline.expandTreeElementsWhenArrowing = true;\r
+\r
+function ruleSorter(a, b)\r
+{\r
+var result = WebInspector.AuditRule.SeverityOrder[a.severity || 0] - WebInspector.AuditRule.SeverityOrder[b.severity || 0];\r
+if (!result)\r
+result = (a.value || "").localeCompare(b.value || "");\r
+return result;\r
+}\r
+\r
+categoryResult.ruleResults.sort(ruleSorter);\r
+\r
+for (var i = 0; i < categoryResult.ruleResults.length; ++i) {\r
+var ruleResult = categoryResult.ruleResults[i];\r
+var treeElement = this._appendResult(this._treeOutline, ruleResult);\r
+treeElement.listItemElement.addStyleClass("audit-result");\r
+\r
+if (ruleResult.severity) {\r
+var severityElement = document.createElement("img");\r
+severityElement.className = "severity-" + ruleResult.severity;\r
+treeElement.listItemElement.appendChild(severityElement);\r
+}\r
+}\r
+this.expand();\r
+}\r
+\r
+WebInspector.AuditCategoryResultPane.prototype = {\r
+_appendResult: function(parentTreeElement, result)\r
+{\r
+var title = "";\r
+\r
+if (typeof result.value === "string") {\r
+title = result.value;\r
+if (result.violationCount)\r
+title = String.sprintf("%s (%d)", title, result.violationCount);\r
+}\r
+\r
+var treeElement = new TreeElement(null, null, !!result.children);\r
+treeElement.titleHTML = title;\r
+parentTreeElement.appendChild(treeElement);\r
+\r
+if (result.className)\r
+treeElement.listItemElement.addStyleClass(result.className);\r
+if (typeof result.value !== "string")\r
+treeElement.listItemElement.appendChild(WebInspector.applyFormatters(result.value));\r
+\r
+if (result.children) {\r
+for (var i = 0; i < result.children.length; ++i)\r
+this._appendResult(treeElement, result.children[i]);\r
+}\r
+if (result.expanded) {\r
+treeElement.listItemElement.removeStyleClass("parent");\r
+treeElement.listItemElement.addStyleClass("parent-expanded");\r
+treeElement.expand();\r
+}\r
+return treeElement;\r
+}\r
+}\r
+\r
+WebInspector.AuditCategoryResultPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.AuditLauncherView = function(runnerCallback)\r
+{\r
+WebInspector.View.call(this);\r
+this._runnerCallback = runnerCallback;\r
+this._categoryIdPrefix = "audit-category-item-";\r
+this._auditRunning = false;\r
+\r
+this.element.addStyleClass("audit-launcher-view");\r
+\r
+this._contentElement = document.createElement("div");\r
+this._contentElement.className = "audit-launcher-view-content";\r
+this.element.appendChild(this._contentElement);\r
+this._boundCategoryClickListener = this._categoryClicked.bind(this);\r
+\r
+this._resetResourceCount();\r
+\r
+this._sortedCategories = [];\r
+\r
+this._headerElement = document.createElement("h1");\r
+this._headerElement.className = "no-audits";\r
+this._headerElement.textContent = WebInspector.UIString("No audits to run");\r
+this._contentElement.appendChild(this._headerElement);\r
+}\r
+\r
+WebInspector.AuditLauncherView.prototype = {\r
+updateResourceTrackingState: function(isTracking)\r
+{\r
+if (!this._auditPresentStateLabelElement)\r
+return;\r
+\r
+if (isTracking) {\r
+this._auditPresentStateLabelElement.nodeValue = WebInspector.UIString("Audit Present State");\r
+this._auditPresentStateElement.disabled = false;\r
+this._auditPresentStateElement.parentElement.removeStyleClass("disabled");\r
+} else {\r
+this._resetResourceCount();\r
+this._auditPresentStateLabelElement.nodeValue = WebInspector.UIString("Audit Present State (Resource Tracking must be enabled)");\r
+this._auditPresentStateElement.disabled = true;\r
+this._auditPresentStateElement.parentElement.addStyleClass("disabled");\r
+this.auditReloadedStateElement.checked = true;\r
+}\r
+},\r
+\r
+get totalResources()\r
+{\r
+return this._totalResources;\r
+},\r
+\r
+set totalResources(x)\r
+{\r
+if (this._totalResources === x)\r
+return;\r
+this._totalResources = x;\r
+this._updateResourceProgress();\r
+},\r
+\r
+get loadedResources()\r
+{\r
+return this._loadedResources;\r
+},\r
+\r
+set loadedResources(x)\r
+{\r
+if (this._loadedResources === x)\r
+return;\r
+this._loadedResources = x;\r
+this._updateResourceProgress();\r
+},\r
+\r
+_resetResourceCount: function()\r
+{\r
+this.loadedResources = 0;\r
+\r
+\r
+\r
+this.totalResources = 1;\r
+},\r
+\r
+resourceStarted: function(resource)\r
+{\r
+++this.totalResources;\r
+},\r
+\r
+resourceFinished: function(resource)\r
+{\r
+++this.loadedResources;\r
+},\r
+\r
+reset: function()\r
+{\r
+this._resetResourceCount();\r
+},\r
+\r
+addCategory: function(category)\r
+{\r
+if (!this._sortedCategories.length)\r
+this._createLauncherUI();\r
+\r
+var categoryElement = this._createCategoryElement(category.displayName, category.id);\r
+category._checkboxElement = categoryElement.firstChild;\r
+if (this._selectAllCheckboxElement.checked) {\r
+category._checkboxElement.checked = true;\r
+++this._currentCategoriesCount;\r
+}\r
+\r
+function compareCategories(a, b)\r
+{\r
+var aTitle = a.displayName || "";\r
+var bTitle = b.displayName || "";\r
+return aTitle.localeCompare(bTitle);\r
+}\r
+var insertBefore = insertionIndexForObjectInListSortedByFunction(category, this._sortedCategories, compareCategories);\r
+this._categoriesElement.insertBefore(categoryElement, this._categoriesElement.children[insertBefore]);\r
+this._sortedCategories.splice(insertBefore, 0, category);\r
+this._updateButton();\r
+},\r
+\r
+_setAuditRunning: function(auditRunning)\r
+{\r
+if (this._auditRunning === auditRunning)\r
+return;\r
+this._auditRunning = auditRunning;\r
+this._updateButton();\r
+this._updateResourceProgress();\r
+},\r
+\r
+_launchButtonClicked: function(event)\r
+{\r
+var catIds = [];\r
+var childNodes = this._categoriesElement.childNodes;\r
+for (var category = 0; category < this._sortedCategories.length; ++category) {\r
+if (this._sortedCategories[category]._checkboxElement.checked)\r
+catIds.push(this._sortedCategories[category].id);\r
+}\r
+\r
+this._setAuditRunning(true);\r
+this._runnerCallback(catIds, this._auditPresentStateElement.checked, this._setAuditRunning.bind(this, false));\r
+},\r
+\r
+_selectAllClicked: function(checkCategories)\r
+{\r
+var childNodes = this._categoriesElement.childNodes;\r
+for (var i = 0, length = childNodes.length; i < length; ++i)\r
+childNodes[i].firstChild.checked = checkCategories;\r
+this._currentCategoriesCount = checkCategories ? this._sortedCategories.length : 0;\r
+this._updateButton();\r
+},\r
+\r
+_categoryClicked: function(event)\r
+{\r
+this._currentCategoriesCount += event.target.checked ? 1 : -1;\r
+this._selectAllCheckboxElement.checked = this._currentCategoriesCount === this._sortedCategories.length;\r
+this._updateButton();\r
+},\r
+\r
+_createCategoryElement: function(title, id)\r
+{\r
+var labelElement = document.createElement("label");\r
+labelElement.id = this._categoryIdPrefix + id;\r
+\r
+var element = document.createElement("input");\r
+element.type = "checkbox";\r
+if (id !== "")\r
+element.addEventListener("click", this._boundCategoryClickListener, false);\r
+labelElement.appendChild(element);\r
+labelElement.appendChild(document.createTextNode(title));\r
+\r
+return labelElement;\r
+},\r
+\r
+_createLauncherUI: function()\r
+{\r
+this._headerElement = document.createElement("h1");\r
+this._headerElement.textContent = WebInspector.UIString("Select audits to run");\r
+\r
+for (var child = 0; child < this._contentElement.children.length; ++child)\r
+this._contentElement.removeChild(this._contentElement.children[child]);\r
+\r
+this._contentElement.appendChild(this._headerElement);\r
+\r
+function handleSelectAllClick(event)\r
+{\r
+this._selectAllClicked(event.target.checked);\r
+}\r
+var categoryElement = this._createCategoryElement(WebInspector.UIString("Select All"), "");\r
+categoryElement.id = "audit-launcher-selectall";\r
+this._selectAllCheckboxElement = categoryElement.firstChild;\r
+this._selectAllCheckboxElement.checked = true;\r
+this._selectAllCheckboxElement.addEventListener("click", handleSelectAllClick.bind(this), false);\r
+this._contentElement.appendChild(categoryElement);\r
+\r
+this._categoriesElement = document.createElement("div");\r
+this._categoriesElement.className = "audit-categories-container";\r
+this._contentElement.appendChild(this._categoriesElement);\r
+\r
+this._currentCategoriesCount = 0;\r
+\r
+var flexibleSpaceElement = document.createElement("div");\r
+flexibleSpaceElement.className = "flexible-space";\r
+this._contentElement.appendChild(flexibleSpaceElement);\r
+\r
+this._buttonContainerElement = document.createElement("div");\r
+this._buttonContainerElement.className = "button-container";\r
+\r
+var labelElement = document.createElement("label");\r
+this._auditPresentStateElement = document.createElement("input");\r
+this._auditPresentStateElement.name = "audit-mode";\r
+this._auditPresentStateElement.type = "radio";\r
+this._auditPresentStateElement.checked = true;\r
+this._auditPresentStateLabelElement = document.createTextNode("");\r
+labelElement.appendChild(this._auditPresentStateElement);\r
+labelElement.appendChild(this._auditPresentStateLabelElement);\r
+this._buttonContainerElement.appendChild(labelElement);\r
+\r
+labelElement = document.createElement("label");\r
+this.auditReloadedStateElement = document.createElement("input");\r
+this.auditReloadedStateElement.name = "audit-mode";\r
+this.auditReloadedStateElement.type = "radio";\r
+labelElement.appendChild(this.auditReloadedStateElement);\r
+labelElement.appendChild(document.createTextNode("Reload Page and Audit on Load"));\r
+this._buttonContainerElement.appendChild(labelElement);\r
+\r
+this._launchButton = document.createElement("button");\r
+this._launchButton.type = "button";\r
+this._launchButton.textContent = WebInspector.UIString("Run");\r
+this._launchButton.addEventListener("click", this._launchButtonClicked.bind(this), false);\r
+this._buttonContainerElement.appendChild(this._launchButton);\r
+\r
+this._resourceProgressContainer = document.createElement("span");\r
+this._resourceProgressContainer.className = "resource-progress";\r
+var resourceProgressImage = document.createElement("img");\r
+this._resourceProgressContainer.appendChild(resourceProgressImage);\r
+this._resourceProgressTextElement = document.createElement("span");\r
+this._resourceProgressContainer.appendChild(this._resourceProgressTextElement);\r
+this._buttonContainerElement.appendChild(this._resourceProgressContainer);\r
+\r
+this._contentElement.appendChild(this._buttonContainerElement);\r
+\r
+this._selectAllClicked(this._selectAllCheckboxElement.checked);\r
+this.updateResourceTrackingState();\r
+this._updateButton();\r
+this._updateResourceProgress();\r
+},\r
+\r
+_updateResourceProgress: function()\r
+{\r
+if (!this._resourceProgressContainer)\r
+return;\r
+\r
+if (!this._auditRunning) {\r
+this._resetResourceCount();\r
+this._resourceProgressContainer.addStyleClass("hidden");\r
+} else\r
+this._resourceProgressContainer.removeStyleClass("hidden");\r
+this._resourceProgressTextElement.textContent = WebInspector.UIString("Loading (%d of %d)", this.loadedResources, this.totalResources);\r
+},\r
+\r
+_updateButton: function()\r
+{\r
+this._launchButton.disabled = !this._currentCategoriesCount || this._auditRunning;\r
+}\r
+}\r
+\r
+WebInspector.AuditLauncherView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.AuditRules.IPAddressRegexp = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;\r
+\r
+WebInspector.AuditRules.CacheableResponseCodes =\r
+{\r
+200: true,\r
+203: true,\r
+206: true,\r
+300: true,\r
+301: true,\r
+410: true,\r
+\r
+304: true \r
+}\r
+\r
+WebInspector.AuditRules.getDomainToResourcesMap = function(resources, types, needFullResources)\r
+{\r
+var domainToResourcesMap = {};\r
+for (var i = 0, size = resources.length; i < size; ++i) {\r
+var resource = resources[i];\r
+if (types && types.indexOf(resource.type) === -1)\r
+continue;\r
+var parsedURL = resource.url.asParsedURL();\r
+if (!parsedURL)\r
+continue;\r
+var domain = parsedURL.host;\r
+var domainResources = domainToResourcesMap[domain];\r
+if (domainResources === undefined) {\r
+domainResources = [];\r
+domainToResourcesMap[domain] = domainResources;\r
+}\r
+domainResources.push(needFullResources ? resource : resource.url);\r
+}\r
+return domainToResourcesMap;\r
+}\r
+\r
+WebInspector.AuditRules.evaluateInTargetWindow = function(func, args, callback)\r
+{\r
+InjectedScriptAccess.getDefault().evaluateOnSelf(func.toString(), args, callback);\r
+}\r
+\r
+\r
+WebInspector.AuditRules.GzipRule = function()\r
+{\r
+WebInspector.AuditRule.call(this, "network-gzip", "Enable gzip compression");\r
+}\r
+\r
+WebInspector.AuditRules.GzipRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+var totalSavings = 0;\r
+var compressedSize = 0;\r
+var candidateSize = 0;\r
+var summary = result.addChild("", true);\r
+for (var i = 0, length = resources.length; i < length; ++i) {\r
+var resource = resources[i];\r
+if (this._shouldCompress(resource)) {\r
+var size = resource.resourceSize;\r
+candidateSize += size;\r
+if (this._isCompressed(resource)) {\r
+compressedSize += size;\r
+continue;\r
+}\r
+var savings = 2 * size / 3;\r
+totalSavings += savings;\r
+summary.addChild(String.sprintf("%s could save ~%s", WebInspector.AuditRuleResult.linkifyDisplayName(resource.url), Number.bytesToString(savings, WebInspector.UIString)));\r
+result.violationCount++;\r
+}\r
+}\r
+if (!totalSavings)\r
+return callback(null);\r
+summary.value = String.sprintf("Compressing the following resources with gzip could reduce their transfer size by about two thirds (~%s):", Number.bytesToString(totalSavings, WebInspector.UIString));\r
+callback(result);\r
+},\r
+\r
+_isCompressed: function(resource)\r
+{\r
+var encoding = resource.responseHeaders["Content-Encoding"];\r
+return encoding === "gzip" || encoding === "deflate";\r
+},\r
+\r
+_shouldCompress: function(resource)\r
+{\r
+return WebInspector.Resource.Type.isTextType(resource.type) && resource.domain && resource.resourceSize !== undefined && resource.resourceSize > 150;\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.GzipRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CombineExternalResourcesRule = function(id, name, type, resourceTypeName, allowedPerDomain)\r
+{\r
+WebInspector.AuditRule.call(this, id, name);\r
+this._type = type;\r
+this._resourceTypeName = resourceTypeName;\r
+this._allowedPerDomain = allowedPerDomain;\r
+}\r
+\r
+WebInspector.AuditRules.CombineExternalResourcesRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+var domainToResourcesMap = WebInspector.AuditRules.getDomainToResourcesMap(resources, [this._type]);\r
+var penalizedResourceCount = 0;\r
+\r
+var summary = result.addChild("", true);\r
+for (var domain in domainToResourcesMap) {\r
+var domainResources = domainToResourcesMap[domain];\r
+var extraResourceCount = domainResources.length - this._allowedPerDomain;\r
+if (extraResourceCount <= 0)\r
+continue;\r
+penalizedResourceCount += extraResourceCount - 1;\r
+summary.addChild(String.sprintf("%d %s resources served from %s.", domainResources.length, this._resourceTypeName, WebInspector.AuditRuleResult.resourceDomain(domain)));\r
+result.violationCount += domainResources.length;\r
+}\r
+if (!penalizedResourceCount)\r
+return callback(null);\r
+\r
+summary.value = "There are multiple resources served from same domain. Consider combining them into as few files as possible.";\r
+callback(result);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.CombineExternalResourcesRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CombineJsResourcesRule = function(allowedPerDomain) {\r
+WebInspector.AuditRules.CombineExternalResourcesRule.call(this, "page-externaljs", "Combine external JavaScript", WebInspector.Resource.Type.Script, "JavaScript", allowedPerDomain);\r
+}\r
+\r
+WebInspector.AuditRules.CombineJsResourcesRule.prototype.__proto__ = WebInspector.AuditRules.CombineExternalResourcesRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CombineCssResourcesRule = function(allowedPerDomain) {\r
+WebInspector.AuditRules.CombineExternalResourcesRule.call(this, "page-externalcss", "Combine external CSS", WebInspector.Resource.Type.Stylesheet, "CSS", allowedPerDomain);\r
+}\r
+\r
+WebInspector.AuditRules.CombineCssResourcesRule.prototype.__proto__ = WebInspector.AuditRules.CombineExternalResourcesRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.MinimizeDnsLookupsRule = function(hostCountThreshold) {\r
+WebInspector.AuditRule.call(this, "network-minimizelookups", "Minimize DNS lookups");\r
+this._hostCountThreshold = hostCountThreshold;\r
+}\r
+\r
+WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+var summary = result.addChild("");\r
+var domainToResourcesMap = WebInspector.AuditRules.getDomainToResourcesMap(resources, undefined);\r
+for (var domain in domainToResourcesMap) {\r
+if (domainToResourcesMap[domain].length > 1)\r
+continue;\r
+var parsedURL = domain.asParsedURL();\r
+if (!parsedURL)\r
+continue;\r
+if (!parsedURL.host.search(WebInspector.AuditRules.IPAddressRegexp))\r
+continue; \r
+summary.addSnippet(match[2]);\r
+result.violationCount++;\r
+}\r
+if (!summary.children || summary.children.length <= this._hostCountThreshold)\r
+return callback(null);\r
+\r
+summary.value = "The following domains only serve one resource each. If possible, avoid the extra DNS lookups by serving these resources from existing domains.";\r
+callback(result);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.ParallelizeDownloadRule = function(optimalHostnameCount, minRequestThreshold, minBalanceThreshold)\r
+{\r
+WebInspector.AuditRule.call(this, "network-parallelizehosts", "Parallelize downloads across hostnames");\r
+this._optimalHostnameCount = optimalHostnameCount;\r
+this._minRequestThreshold = minRequestThreshold;\r
+this._minBalanceThreshold = minBalanceThreshold;\r
+}\r
+\r
+\r
+WebInspector.AuditRules.ParallelizeDownloadRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+function hostSorter(a, b)\r
+{\r
+var aCount = domainToResourcesMap[a].length;\r
+var bCount = domainToResourcesMap[b].length;\r
+return (aCount < bCount) ? 1 : (aCount == bCount) ? 0 : -1;\r
+}\r
+\r
+var domainToResourcesMap = WebInspector.AuditRules.getDomainToResourcesMap(\r
+resources,\r
+[WebInspector.Resource.Type.Stylesheet, WebInspector.Resource.Type.Image],\r
+true);\r
+\r
+var hosts = [];\r
+for (var url in domainToResourcesMap)\r
+hosts.push(url);\r
+\r
+if (!hosts.length)\r
+return callback(null); \r
+\r
+hosts.sort(hostSorter);\r
+\r
+var optimalHostnameCount = this._optimalHostnameCount;\r
+if (hosts.length > optimalHostnameCount)\r
+hosts.splice(optimalHostnameCount);\r
+\r
+var busiestHostResourceCount = domainToResourcesMap[hosts[0]].length;\r
+var resourceCountAboveThreshold = busiestHostResourceCount - this._minRequestThreshold;\r
+if (resourceCountAboveThreshold <= 0)\r
+return callback(null);\r
+\r
+var avgResourcesPerHost = 0;\r
+for (var i = 0, size = hosts.length; i < size; ++i)\r
+avgResourcesPerHost += domainToResourcesMap[hosts[i]].length;\r
+\r
+\r
+avgResourcesPerHost /= optimalHostnameCount;\r
+avgResourcesPerHost = Math.max(avgResourcesPerHost, 1);\r
+\r
+var pctAboveAvg = (resourceCountAboveThreshold / avgResourcesPerHost) - 1.0;\r
+var minBalanceThreshold = this._minBalanceThreshold;\r
+if (pctAboveAvg < minBalanceThreshold)\r
+return callback(null);\r
+\r
+var resourcesOnBusiestHost = domainToResourcesMap[hosts[0]];\r
+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);\r
+for (var i = 0; i < resourcesOnBusiestHost.length; ++i)\r
+entry.addURL(resourcesOnBusiestHost[i].url);\r
+\r
+result.violationCount = resourcesOnBusiestHost.length;\r
+callback(result);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.ParallelizeDownloadRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+\r
+\r
+WebInspector.AuditRules.UnusedCssRule = function()\r
+{\r
+WebInspector.AuditRule.call(this, "page-unusedcss", "Remove unused CSS rules");\r
+}\r
+\r
+WebInspector.AuditRules.UnusedCssRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+var self = this;\r
+\r
+function evalCallback(styleSheets) {\r
+if (!styleSheets.length)\r
+return callback(null);\r
+\r
+var pseudoSelectorRegexp = /:hover|:link|:active|:visited|:focus|:before|:after/;\r
+var selectors = [];\r
+var testedSelectors = {};\r
+for (var i = 0; i < styleSheets.length; ++i) {\r
+var styleSheet = styleSheets[i];\r
+for (var curRule = 0; curRule < styleSheet.rules.length; ++curRule) {\r
+var selectorText = styleSheet.rules[curRule].selectorText;\r
+if (selectorText.match(pseudoSelectorRegexp) || testedSelectors[selectorText])\r
+continue;\r
+selectors.push(selectorText);\r
+testedSelectors[selectorText] = 1;\r
+}\r
+}\r
+\r
+function selectorsCallback(callback, styleSheets, testedSelectors, foundSelectors)\r
+{\r
+var inlineBlockOrdinal = 0;\r
+var totalStylesheetSize = 0;\r
+var totalUnusedStylesheetSize = 0;\r
+var summary;\r
+\r
+for (var i = 0; i < styleSheets.length; ++i) {\r
+var styleSheet = styleSheets[i];\r
+var stylesheetSize = 0;\r
+var unusedStylesheetSize = 0;\r
+var unusedRules = [];\r
+for (var curRule = 0; curRule < styleSheet.rules.length; ++curRule) {\r
+var rule = styleSheet.rules[curRule];\r
+\r
+var textLength = (rule.selectorRange && rule.style.properties.endOffset) ? rule.style.properties.endOffset - rule.selectorRange.start + 1 : 0;\r
+if (!textLength && rule.style.cssText)\r
+textLength = rule.style.cssText.length + rule.selectorText.length;\r
+stylesheetSize += textLength;\r
+if (!testedSelectors[rule.selectorText] || foundSelectors[rule.selectorText])\r
+continue;\r
+unusedStylesheetSize += textLength;\r
+unusedRules.push(rule.selectorText);\r
+}\r
+totalStylesheetSize += stylesheetSize;\r
+totalUnusedStylesheetSize += unusedStylesheetSize;\r
+\r
+if (!unusedRules.length)\r
+continue;\r
+\r
+var resource = WebInspector.resourceManager.resourceForURL(styleSheet.sourceURL);\r
+var isInlineBlock = resource && resource.type == WebInspector.Resource.Type.Document;\r
+var url = !isInlineBlock ? WebInspector.AuditRuleResult.linkifyDisplayName(styleSheet.sourceURL) : String.sprintf("Inline block #%d", ++inlineBlockOrdinal);\r
+var pctUnused = Math.round(100 * unusedStylesheetSize / stylesheetSize);\r
+if (!summary)\r
+summary = result.addChild("", true);\r
+var entry = summary.addChild(String.sprintf("%s: %s (%d%%) is not used by the current page.", url, Number.bytesToString(unusedStylesheetSize), pctUnused));\r
+\r
+for (var j = 0; j < unusedRules.length; ++j)\r
+entry.addSnippet(unusedRules[j]);\r
+\r
+result.violationCount += unusedRules.length;\r
+}\r
+\r
+if (!totalUnusedStylesheetSize)\r
+return callback(null);\r
+\r
+var totalUnusedPercent = Math.round(100 * totalUnusedStylesheetSize / totalStylesheetSize);\r
+summary.value = String.sprintf("%s (%d%%) of CSS is not used by the current page.", Number.bytesToString(totalUnusedStylesheetSize), totalUnusedPercent);\r
+\r
+callback(result);\r
+}\r
+\r
+function routine(selectorArray)\r
+{\r
+var result = {};\r
+for (var i = 0; i < selectorArray.length; ++i) {\r
+try {\r
+if (document.querySelector(selectorArray[i]))\r
+result[selectorArray[i]] = true;\r
+} catch(e) {\r
+\r
+}\r
+}\r
+return result;\r
+}\r
+\r
+WebInspector.AuditRules.evaluateInTargetWindow(routine, [selectors], selectorsCallback.bind(null, callback, styleSheets, testedSelectors));\r
+}\r
+\r
+function styleSheetCallback(styleSheets, continuation, styleSheet)\r
+{\r
+if (styleSheet)\r
+styleSheets.push(styleSheet);\r
+if (continuation)\r
+continuation(styleSheets);\r
+}\r
+\r
+function allStylesCallback(styleSheetIds)\r
+{\r
+if (!styleSheetIds || !styleSheetIds.length)\r
+return evalCallback([]);\r
+var styleSheets = [];\r
+for (var i = 0; i < styleSheetIds.length; ++i)\r
+WebInspector.CSSStyleSheet.createForId(styleSheetIds[i], styleSheetCallback.bind(null, styleSheets, i == styleSheetIds.length - 1 ? evalCallback : null));\r
+}\r
+\r
+InspectorBackend.getAllStyles2(allStylesCallback);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.UnusedCssRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CacheControlRule = function(id, name)\r
+{\r
+WebInspector.AuditRule.call(this, id, name);\r
+}\r
+\r
+WebInspector.AuditRules.CacheControlRule.MillisPerMonth = 1000 * 60 * 60 * 24 * 30;\r
+\r
+WebInspector.AuditRules.CacheControlRule.prototype = {\r
+\r
+doRun: function(resources, result, callback)\r
+{\r
+var cacheableAndNonCacheableResources = this._cacheableAndNonCacheableResources(resources);\r
+if (cacheableAndNonCacheableResources[0].length)\r
+this.runChecks(cacheableAndNonCacheableResources[0], result);\r
+this.handleNonCacheableResources(cacheableAndNonCacheableResources[1], result);\r
+\r
+callback(result);\r
+},\r
+\r
+handleNonCacheableResources: function()\r
+{\r
+},\r
+\r
+_cacheableAndNonCacheableResources: function(resources)\r
+{\r
+var processedResources = [[], []];\r
+for (var i = 0; i < resources.length; ++i) {\r
+var resource = resources[i];\r
+if (!this.isCacheableResource(resource))\r
+continue;\r
+if (this._isExplicitlyNonCacheable(resource))\r
+processedResources[1].push(resource);\r
+else\r
+processedResources[0].push(resource);\r
+}\r
+return processedResources;\r
+},\r
+\r
+execCheck: function(messageText, resourceCheckFunction, resources, result)\r
+{\r
+var resourceCount = resources.length;\r
+var urls = [];\r
+for (var i = 0; i < resourceCount; ++i) {\r
+if (resourceCheckFunction.call(this, resources[i]))\r
+urls.push(resources[i].url);\r
+}\r
+if (urls.length) {\r
+var entry = result.addChild(messageText, true);\r
+entry.addURLs(urls);\r
+result.violationCount += urls.length;\r
+}\r
+},\r
+\r
+freshnessLifetimeGreaterThan: function(resource, timeMs)\r
+{\r
+var dateHeader = this.responseHeader(resource, "Date");\r
+if (!dateHeader)\r
+return false;\r
+\r
+var dateHeaderMs = Date.parse(dateHeader);\r
+if (isNaN(dateHeaderMs))\r
+return false;\r
+\r
+var freshnessLifetimeMs;\r
+var maxAgeMatch = this.responseHeaderMatch(resource, "Cache-Control", "max-age=(\\d+)");\r
+\r
+if (maxAgeMatch)\r
+freshnessLifetimeMs = (maxAgeMatch[1]) ? 1000 * maxAgeMatch[1] : 0;\r
+else {\r
+var expiresHeader = this.responseHeader(resource, "Expires");\r
+if (expiresHeader) {\r
+var expDate = Date.parse(expiresHeader);\r
+if (!isNaN(expDate))\r
+freshnessLifetimeMs = expDate - dateHeaderMs;\r
+}\r
+}\r
+\r
+return (isNaN(freshnessLifetimeMs)) ? false : freshnessLifetimeMs > timeMs;\r
+},\r
+\r
+responseHeader: function(resource, header)\r
+{\r
+return resource.responseHeaders[header];\r
+},\r
+\r
+hasResponseHeader: function(resource, header)\r
+{\r
+return resource.responseHeaders[header] !== undefined;\r
+},\r
+\r
+isCompressible: function(resource)\r
+{\r
+return WebInspector.Resource.Type.isTextType(resource.type);\r
+},\r
+\r
+isPubliclyCacheable: function(resource)\r
+{\r
+if (this._isExplicitlyNonCacheable(resource))\r
+return false;\r
+\r
+if (this.responseHeaderMatch(resource, "Cache-Control", "public"))\r
+return true;\r
+\r
+return resource.url.indexOf("?") == -1 && !this.responseHeaderMatch(resource, "Cache-Control", "private");\r
+},\r
+\r
+responseHeaderMatch: function(resource, header, regexp)\r
+{\r
+return resource.responseHeaders[header]\r
+? resource.responseHeaders[header].match(new RegExp(regexp, "im"))\r
+: undefined;\r
+},\r
+\r
+hasExplicitExpiration: function(resource)\r
+{\r
+return this.hasResponseHeader(resource, "Date") &&\r
+(this.hasResponseHeader(resource, "Expires") || this.responseHeaderMatch(resource, "Cache-Control", "max-age"));\r
+},\r
+\r
+_isExplicitlyNonCacheable: function(resource)\r
+{\r
+var hasExplicitExp = this.hasExplicitExpiration(resource);\r
+return this.responseHeaderMatch(resource, "Cache-Control", "(no-cache|no-store|must-revalidate)") ||\r
+this.responseHeaderMatch(resource, "Pragma", "no-cache") ||\r
+(hasExplicitExp && !this.freshnessLifetimeGreaterThan(resource, 0)) ||\r
+(!hasExplicitExp && resource.url && resource.url.indexOf("?") >= 0) ||\r
+(!hasExplicitExp && !this.isCacheableResource(resource));\r
+},\r
+\r
+isCacheableResource: function(resource)\r
+{\r
+return resource.statusCode !== undefined && WebInspector.AuditRules.CacheableResponseCodes[resource.statusCode];\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.CacheControlRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.BrowserCacheControlRule = function()\r
+{\r
+WebInspector.AuditRules.CacheControlRule.call(this, "http-browsercache", "Leverage browser caching");\r
+}\r
+\r
+WebInspector.AuditRules.BrowserCacheControlRule.prototype = {\r
+handleNonCacheableResources: function(resources, result)\r
+{\r
+if (resources.length) {\r
+var entry = result.addChild("The following resources are explicitly non-cacheable. Consider making them cacheable if possible:", true);\r
+result.violationCount += resources.length;\r
+for (var i = 0; i < resources.length; ++i)\r
+entry.addURL(resources[i].url);\r
+}\r
+},\r
+\r
+runChecks: function(resources, result, callback)\r
+{\r
+this.execCheck("The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:",\r
+this._missingExpirationCheck, resources, result);\r
+this.execCheck("The following resources specify a \"Vary\" header that disables caching in most versions of Internet Explorer:",\r
+this._varyCheck, resources, result);\r
+this.execCheck("The following cacheable resources have a short freshness lifetime:",\r
+this._oneMonthExpirationCheck, resources, result);\r
+\r
+\r
+this.execCheck("To further improve cache hit rate, specify an expiration one year in the future for the following cacheable resources:",\r
+this._oneYearExpirationCheck, resources, result);\r
+},\r
+\r
+_missingExpirationCheck: function(resource)\r
+{\r
+return this.isCacheableResource(resource) && !this.hasResponseHeader(resource, "Set-Cookie") && !this.hasExplicitExpiration(resource);\r
+},\r
+\r
+_varyCheck: function(resource)\r
+{\r
+var varyHeader = this.responseHeader(resource, "Vary");\r
+if (varyHeader) {\r
+varyHeader = varyHeader.replace(/User-Agent/gi, "");\r
+varyHeader = varyHeader.replace(/Accept-Encoding/gi, "");\r
+varyHeader = varyHeader.replace(/[, ]*/g, "");\r
+}\r
+return varyHeader && varyHeader.length && this.isCacheableResource(resource) && this.freshnessLifetimeGreaterThan(resource, 0);\r
+},\r
+\r
+_oneMonthExpirationCheck: function(resource)\r
+{\r
+return this.isCacheableResource(resource) &&\r
+!this.hasResponseHeader(resource, "Set-Cookie") &&\r
+!this.freshnessLifetimeGreaterThan(resource, WebInspector.AuditRules.CacheControlRule.MillisPerMonth) &&\r
+this.freshnessLifetimeGreaterThan(resource, 0);\r
+},\r
+\r
+_oneYearExpirationCheck: function(resource)\r
+{\r
+return this.isCacheableResource(resource) &&\r
+!this.hasResponseHeader(resource, "Set-Cookie") &&\r
+!this.freshnessLifetimeGreaterThan(resource, 11 * WebInspector.AuditRules.CacheControlRule.MillisPerMonth) &&\r
+this.freshnessLifetimeGreaterThan(resource, WebInspector.AuditRules.CacheControlRule.MillisPerMonth);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.BrowserCacheControlRule.prototype.__proto__ = WebInspector.AuditRules.CacheControlRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.ProxyCacheControlRule = function() {\r
+WebInspector.AuditRules.CacheControlRule.call(this, "http-proxycache", "Leverage proxy caching");\r
+}\r
+\r
+WebInspector.AuditRules.ProxyCacheControlRule.prototype = {\r
+runChecks: function(resources, result, callback)\r
+{\r
+this.execCheck("Resources with a \"?\" in the URL are not cached by most proxy caching servers:",\r
+this._questionMarkCheck, resources, result);\r
+this.execCheck("Consider adding a \"Cache-Control: public\" header to the following resources:",\r
+this._publicCachingCheck, resources, result);\r
+this.execCheck("The following publicly cacheable resources contain a Set-Cookie header. This security vulnerability can cause cookies to be shared by multiple users.",\r
+this._setCookieCacheableCheck, resources, result);\r
+},\r
+\r
+_questionMarkCheck: function(resource)\r
+{\r
+return resource.url.indexOf("?") >= 0 && !this.hasResponseHeader(resource, "Set-Cookie") && this.isPubliclyCacheable(resource);\r
+},\r
+\r
+_publicCachingCheck: function(resource)\r
+{\r
+return this.isCacheableResource(resource) &&\r
+!this.isCompressible(resource) &&\r
+!this.responseHeaderMatch(resource, "Cache-Control", "public") &&\r
+!this.hasResponseHeader(resource, "Set-Cookie");\r
+},\r
+\r
+_setCookieCacheableCheck: function(resource)\r
+{\r
+return this.hasResponseHeader(resource, "Set-Cookie") && this.isPubliclyCacheable(resource);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.ProxyCacheControlRule.prototype.__proto__ = WebInspector.AuditRules.CacheControlRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.ImageDimensionsRule = function()\r
+{\r
+WebInspector.AuditRule.call(this, "page-imagedims", "Specify image dimensions");\r
+}\r
+\r
+WebInspector.AuditRules.ImageDimensionsRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+function doneCallback(context)\r
+{\r
+var map = context.urlToNoDimensionCount;\r
+for (var url in map) {\r
+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);\r
+var value = WebInspector.AuditRuleResult.linkifyDisplayName(url);\r
+if (map[url] > 1)\r
+value += String.sprintf(" (%d uses)", map[url]);\r
+entry.addChild(value);\r
+result.violationCount++;\r
+}\r
+callback(entry ? result : null);\r
+}\r
+\r
+function imageStylesReady(imageId, context, styles)\r
+{\r
+--context.imagesLeft;\r
+\r
+const node = WebInspector.domAgent.nodeForId(imageId);\r
+var src = node.getAttribute("src");\r
+if (!src.asParsedURL()) {\r
+for (var frameOwnerCandidate = node; frameOwnerCandidate; frameOwnerCandidate = frameOwnerCandidate.parentNode) {\r
+if (frameOwnerCandidate.documentURL) {\r
+var completeSrc = WebInspector.completeURL(frameOwnerCandidate.documentURL, src);\r
+break;\r
+}\r
+}\r
+}\r
+if (completeSrc)\r
+src = completeSrc;\r
+\r
+const computedStyle = styles.computedStyle;\r
+if (computedStyle.getPropertyValue("position") === "absolute") {\r
+if (!context.imagesLeft)\r
+doneCallback(context);\r
+return;\r
+}\r
+\r
+var widthFound = "width" in styles.styleAttributes;\r
+var heightFound = "height" in styles.styleAttributes;\r
+\r
+for (var i = styles.matchedCSSRules.length - 1; i >= 0 && !(widthFound && heightFound); --i) {\r
+var style = styles.matchedCSSRules[i].style;\r
+if (style.getPropertyValue("width") !== "")\r
+widthFound = true;\r
+if (style.getPropertyValue("height") !== "")\r
+heightFound = true;\r
+}\r
+\r
+if (!widthFound || !heightFound) {\r
+if (src in context.urlToNoDimensionCount)\r
+++context.urlToNoDimensionCount[src];\r
+else\r
+context.urlToNoDimensionCount[src] = 1;\r
+}\r
+\r
+if (!context.imagesLeft)\r
+doneCallback(context);\r
+}\r
+\r
+function receivedImages(imageIds)\r
+{\r
+if (!imageIds || !imageIds.length)\r
+return callback(null);\r
+var context = {imagesLeft: imageIds.length, urlToNoDimensionCount: {}};\r
+for (var i = imageIds.length - 1; i >= 0; --i)\r
+WebInspector.cssModel.getStylesAsync(imageIds[i], imageStylesReady.bind(this, imageIds[i], context));\r
+}\r
+\r
+function pushImageNodes()\r
+{\r
+const nodeIds = [];\r
+var nodes = document.getElementsByTagName("img");\r
+for (var i = 0; i < nodes.length; ++i) {\r
+if (!nodes[i].src)\r
+continue;\r
+var nodeId = this.getNodeId(nodes[i]);\r
+nodeIds.push(nodeId);\r
+}\r
+return nodeIds;\r
+}\r
+\r
+WebInspector.AuditRules.evaluateInTargetWindow(pushImageNodes, null, receivedImages);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.ImageDimensionsRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CssInHeadRule = function()\r
+{\r
+WebInspector.AuditRule.call(this, "page-cssinhead", "Put CSS in the document head");\r
+}\r
+\r
+WebInspector.AuditRules.CssInHeadRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+function evalCallback(evalResult)\r
+{\r
+if (!evalResult)\r
+return callback(null);\r
+\r
+var summary = result.addChild("");\r
+\r
+var outputMessages = [];\r
+for (var url in evalResult) {\r
+var urlViolations = evalResult[url];\r
+if (urlViolations[0]) {\r
+result.addChild(String.sprintf("%s style block(s) in the %s body should be moved to the document head.", urlViolations[0], WebInspector.AuditRuleResult.linkifyDisplayName(url)));\r
+result.violationCount += urlViolations[0];\r
+}\r
+for (var i = 0; i < urlViolations[1].length; ++i)\r
+result.addChild(String.sprintf("Link node %s should be moved to the document head in %s", WebInspector.AuditRuleResult.linkifyDisplayName(urlViolations[1][i]), WebInspector.AuditRuleResult.linkifyDisplayName(url)));\r
+result.violationCount += urlViolations[1].length;\r
+}\r
+summary.value = String.sprintf("CSS in the document body adversely impacts rendering performance.");\r
+callback(result);\r
+}\r
+\r
+function routine()\r
+{\r
+function allViews() {\r
+var views = [document.defaultView];\r
+var curView = 0;\r
+while (curView < views.length) {\r
+var view = views[curView];\r
+var frames = view.frames;\r
+for (var i = 0; i < frames.length; ++i) {\r
+if (frames[i] !== view)\r
+views.push(frames[i]);\r
+}\r
+++curView;\r
+}\r
+return views;\r
+}\r
+\r
+var views = allViews();\r
+var urlToViolationsArray = {};\r
+var found = false;\r
+for (var i = 0; i < views.length; ++i) {\r
+var view = views[i];\r
+if (!view.document)\r
+continue;\r
+\r
+var inlineStyles = view.document.querySelectorAll("body style");\r
+var inlineStylesheets = view.document.querySelectorAll("body link[rel~='stylesheet'][href]");\r
+if (!inlineStyles.length && !inlineStylesheets.length)\r
+continue;\r
+\r
+found = true;\r
+var inlineStylesheetHrefs = [];\r
+for (var j = 0; j < inlineStylesheets.length; ++j)\r
+inlineStylesheetHrefs.push(inlineStylesheets[j].href);\r
+urlToViolationsArray[view.location.href] = [inlineStyles.length, inlineStylesheetHrefs];\r
+}\r
+return found ? urlToViolationsArray : null;\r
+}\r
+\r
+WebInspector.AuditRules.evaluateInTargetWindow(routine, null, evalCallback);\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.CssInHeadRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.StylesScriptsOrderRule = function()\r
+{\r
+WebInspector.AuditRule.call(this, "page-stylescriptorder", "Optimize the order of styles and scripts");\r
+}\r
+\r
+WebInspector.AuditRules.StylesScriptsOrderRule.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+function evalCallback(resultValue)\r
+{\r
+if (!resultValue)\r
+return callback(null);\r
+\r
+var lateCssUrls = resultValue[0];\r
+var cssBeforeInlineCount = resultValue[1];\r
+\r
+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);\r
+entry.addURLs(lateCssUrls);\r
+result.violationCount += lateCssUrls.length;\r
+\r
+if (cssBeforeInlineCount) {\r
+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"));\r
+result.violationCount += cssBeforeInlineCount;\r
+}\r
+callback(result);\r
+}\r
+\r
+function routine()\r
+{\r
+var lateStyles = document.querySelectorAll("head script[src] ~ link[rel~='stylesheet'][href]");\r
+var cssBeforeInlineCount = document.querySelectorAll("head link[rel~='stylesheet'][href] ~ script:not([src])").length;\r
+if (!lateStyles.length && !cssBeforeInlineCount)\r
+return null;\r
+\r
+var lateStyleUrls = [];\r
+for (var i = 0; i < lateStyles.length; ++i)\r
+lateStyleUrls.push(lateStyles[i].href);\r
+return [ lateStyleUrls, cssBeforeInlineCount ];\r
+}\r
+\r
+WebInspector.AuditRules.evaluateInTargetWindow(routine, null, evalCallback.bind(this));\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.StylesScriptsOrderRule.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CookieRuleBase = function(id, name)\r
+{\r
+WebInspector.AuditRule.call(this, id, name);\r
+}\r
+\r
+WebInspector.AuditRules.CookieRuleBase.prototype = {\r
+doRun: function(resources, result, callback)\r
+{\r
+var self = this;\r
+function resultCallback(receivedCookies, isAdvanced) {\r
+self.processCookies(isAdvanced ? receivedCookies : [], resources, result);\r
+callback(result);\r
+}\r
+WebInspector.Cookies.getCookiesAsync(resultCallback);\r
+},\r
+\r
+mapResourceCookies: function(resourcesByDomain, allCookies, callback)\r
+{\r
+for (var i = 0; i < allCookies.length; ++i) {\r
+for (var resourceDomain in resourcesByDomain) {\r
+if (WebInspector.Cookies.cookieDomainMatchesResourceDomain(allCookies[i].domain, resourceDomain))\r
+this._callbackForResourceCookiePairs(resourcesByDomain[resourceDomain], allCookies[i], callback);\r
+}\r
+}\r
+},\r
+\r
+_callbackForResourceCookiePairs: function(resources, cookie, callback)\r
+{\r
+if (!resources)\r
+return;\r
+for (var i = 0; i < resources.length; ++i) {\r
+if (WebInspector.Cookies.cookieMatchesResourceURL(cookie, resources[i].url))\r
+callback(resources[i], cookie);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.CookieRuleBase.prototype.__proto__ = WebInspector.AuditRule.prototype;\r
+\r
+\r
+WebInspector.AuditRules.CookieSizeRule = function(avgBytesThreshold)\r
+{\r
+WebInspector.AuditRules.CookieRuleBase.call(this, "http-cookiesize", "Minimize cookie size");\r
+this._avgBytesThreshold = avgBytesThreshold;\r
+this._maxBytesThreshold = 1000;\r
+}\r
+\r
+WebInspector.AuditRules.CookieSizeRule.prototype = {\r
+_average: function(cookieArray)\r
+{\r
+var total = 0;\r
+for (var i = 0; i < cookieArray.length; ++i)\r
+total += cookieArray[i].size;\r
+return cookieArray.length ? Math.round(total / cookieArray.length) : 0;\r
+},\r
+\r
+_max: function(cookieArray)\r
+{\r
+var result = 0;\r
+for (var i = 0; i < cookieArray.length; ++i)\r
+result = Math.max(cookieArray[i].size, result);\r
+return result;\r
+},\r
+\r
+processCookies: function(allCookies, resources, result)\r
+{\r
+function maxSizeSorter(a, b)\r
+{\r
+return b.maxCookieSize - a.maxCookieSize;\r
+}\r
+\r
+function avgSizeSorter(a, b)\r
+{\r
+return b.avgCookieSize - a.avgCookieSize;\r
+}\r
+\r
+var cookiesPerResourceDomain = {};\r
+\r
+function collectorCallback(resource, cookie)\r
+{\r
+var cookies = cookiesPerResourceDomain[resource.domain];\r
+if (!cookies) {\r
+cookies = [];\r
+cookiesPerResourceDomain[resource.domain] = cookies;\r
+}\r
+cookies.push(cookie);\r
+}\r
+\r
+if (!allCookies.length)\r
+return;\r
+\r
+var sortedCookieSizes = [];\r
+\r
+var domainToResourcesMap = WebInspector.AuditRules.getDomainToResourcesMap(resources,\r
+null,\r
+true);\r
+var matchingResourceData = {};\r
+this.mapResourceCookies(domainToResourcesMap, allCookies, collectorCallback.bind(this));\r
+\r
+for (var resourceDomain in cookiesPerResourceDomain) {\r
+var cookies = cookiesPerResourceDomain[resourceDomain];\r
+sortedCookieSizes.push({\r
+domain: resourceDomain,\r
+avgCookieSize: this._average(cookies),\r
+maxCookieSize: this._max(cookies)\r
+});\r
+}\r
+var avgAllCookiesSize = this._average(allCookies);\r
+\r
+var hugeCookieDomains = [];\r
+sortedCookieSizes.sort(maxSizeSorter);\r
+\r
+for (var i = 0, len = sortedCookieSizes.length; i < len; ++i) {\r
+var maxCookieSize = sortedCookieSizes[i].maxCookieSize;\r
+if (maxCookieSize > this._maxBytesThreshold)\r
+hugeCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(sortedCookieSizes[i].domain) + ": " + Number.bytesToString(maxCookieSize, WebInspector.UIString));\r
+}\r
+\r
+var bigAvgCookieDomains = [];\r
+sortedCookieSizes.sort(avgSizeSorter);\r
+for (var i = 0, len = sortedCookieSizes.length; i < len; ++i) {\r
+var domain = sortedCookieSizes[i].domain;\r
+var avgCookieSize = sortedCookieSizes[i].avgCookieSize;\r
+if (avgCookieSize > this._avgBytesThreshold && avgCookieSize < this._maxBytesThreshold)\r
+bigAvgCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(domain) + ": " + Number.bytesToString(avgCookieSize, WebInspector.UIString));\r
+}\r
+result.addChild(String.sprintf("The average cookie size for all requests on this page is %s", Number.bytesToString(avgAllCookiesSize, WebInspector.UIString)));\r
+\r
+var message;\r
+if (hugeCookieDomains.length) {\r
+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);\r
+entry.addURLs(hugeCookieDomains);\r
+result.violationCount += hugeCookieDomains.length;\r
+}\r
+\r
+if (bigAvgCookieDomains.length) {\r
+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);\r
+entry.addURLs(bigAvgCookieDomains);\r
+result.violationCount += bigAvgCookieDomains.length;\r
+}\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.CookieSizeRule.prototype.__proto__ = WebInspector.AuditRules.CookieRuleBase.prototype;\r
+\r
+\r
+WebInspector.AuditRules.StaticCookielessRule = function(minResources)\r
+{\r
+WebInspector.AuditRules.CookieRuleBase.call(this, "http-staticcookieless", "Serve static content from a cookieless domain");\r
+this._minResources = minResources;\r
+}\r
+\r
+WebInspector.AuditRules.StaticCookielessRule.prototype = {\r
+processCookies: function(allCookies, resources, result)\r
+{\r
+var domainToResourcesMap = WebInspector.AuditRules.getDomainToResourcesMap(resources,\r
+[WebInspector.Resource.Type.Stylesheet,\r
+WebInspector.Resource.Type.Image],\r
+true);\r
+var totalStaticResources = 0;\r
+for (var domain in domainToResourcesMap)\r
+totalStaticResources += domainToResourcesMap[domain].length;\r
+if (totalStaticResources < this._minResources)\r
+return;\r
+var matchingResourceData = {};\r
+this.mapResourceCookies(domainToResourcesMap, allCookies, this._collectorCallback.bind(this, matchingResourceData));\r
+\r
+var badUrls = [];\r
+var cookieBytes = 0;\r
+for (var url in matchingResourceData) {\r
+badUrls.push(url);\r
+cookieBytes += matchingResourceData[url]\r
+}\r
+if (badUrls.length < this._minResources)\r
+return;\r
+\r
+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, WebInspector.UIString)), true);\r
+entry.addURLs(badUrls);\r
+result.violationCount = badUrls.length;\r
+},\r
+\r
+_collectorCallback: function(matchingResourceData, resource, cookie)\r
+{\r
+matchingResourceData[resource.url] = (matchingResourceData[resource.url] || 0) + cookie.size;\r
+}\r
+}\r
+\r
+WebInspector.AuditRules.StaticCookielessRule.prototype.__proto__ = WebInspector.AuditRules.CookieRuleBase.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.AuditCategories.PagePerformance = function() {\r
+WebInspector.AuditCategory.call(this, WebInspector.AuditCategories.PagePerformance.AuditCategoryName);\r
+}\r
+\r
+WebInspector.AuditCategories.PagePerformance.AuditCategoryName = "Web Page Performance";\r
+\r
+WebInspector.AuditCategories.PagePerformance.prototype = {\r
+initialize: function()\r
+{\r
+this.addRule(new WebInspector.AuditRules.UnusedCssRule(), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.CssInHeadRule(), WebInspector.AuditRule.Severity.Severe);\r
+this.addRule(new WebInspector.AuditRules.StylesScriptsOrderRule(), WebInspector.AuditRule.Severity.Severe);\r
+}\r
+}\r
+\r
+WebInspector.AuditCategories.PagePerformance.prototype.__proto__ = WebInspector.AuditCategory.prototype;\r
+\r
+WebInspector.AuditCategories.NetworkUtilization = function() {\r
+WebInspector.AuditCategory.call(this, WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName);\r
+}\r
+\r
+WebInspector.AuditCategories.NetworkUtilization.AuditCategoryName = "Network Utilization";\r
+\r
+WebInspector.AuditCategories.NetworkUtilization.prototype = {\r
+initialize: function()\r
+{\r
+this.addRule(new WebInspector.AuditRules.GzipRule(), WebInspector.AuditRule.Severity.Severe);\r
+this.addRule(new WebInspector.AuditRules.ImageDimensionsRule(), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.CookieSizeRule(400), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.StaticCookielessRule(5), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.CombineJsResourcesRule(2), WebInspector.AuditRule.Severity.Severe);\r
+this.addRule(new WebInspector.AuditRules.CombineCssResourcesRule(2), WebInspector.AuditRule.Severity.Severe);\r
+this.addRule(new WebInspector.AuditRules.MinimizeDnsLookupsRule(4), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.ParallelizeDownloadRule(4, 10, 0.5), WebInspector.AuditRule.Severity.Warning);\r
+this.addRule(new WebInspector.AuditRules.BrowserCacheControlRule(), WebInspector.AuditRule.Severity.Severe);\r
+this.addRule(new WebInspector.AuditRules.ProxyCacheControlRule(), WebInspector.AuditRule.Severity.Warning);\r
+}\r
+}\r
+\r
+WebInspector.AuditCategories.NetworkUtilization.prototype.__proto__ = WebInspector.AuditCategory.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.applyFormatters = function(value)\r
+{\r
+var formatter;\r
+var type = typeof value;\r
+var args;\r
+\r
+switch (type) {\r
+case "string":\r
+case "boolean":\r
+case "number":\r
+formatter = WebInspector.AuditFormatters.text;\r
+args = [ value.toString() ];\r
+break;\r
+\r
+case "object":\r
+if (value instanceof Array) {\r
+formatter = WebInspector.AuditFormatters.concat;\r
+args = value;\r
+} else if (value.type && value.arguments) {\r
+formatter = WebInspector.AuditFormatters[value.type];\r
+args = value.arguments;\r
+}\r
+}\r
+if (!formatter)\r
+throw "Invalid value or formatter: " + type + JSON.stringify(value);\r
+\r
+return formatter.apply(null, args);\r
+}\r
+\r
+WebInspector.AuditFormatters = {\r
+text: function(text)\r
+{\r
+return document.createTextNode(text);\r
+},\r
+\r
+snippet: function(snippetText)\r
+{\r
+var div = document.createElement("div");\r
+div.innerText = snippetText;\r
+div.className = "source-code";\r
+return div;\r
+},\r
+\r
+concat: function()\r
+{\r
+var parent = document.createElement("span");\r
+for (var arg = 0; arg < arguments.length; ++arg)\r
+parent.appendChild(WebInspector.applyFormatters(arguments[arg]));\r
+return parent;\r
+},\r
+\r
+url: function(url, displayText, allowExternalNavigation)\r
+{\r
+var a = document.createElement("a");\r
+a.href = url;\r
+a.title = url;\r
+a.textContent = displayText || url;\r
+if (allowExternalNavigation)\r
+a.target = "_blank";\r
+return a;\r
+}\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceHeadersView = function(resource)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.addStyleClass("resource-headers-view");\r
+\r
+this._resource = resource;\r
+\r
+this._headersListElement = document.createElement("ol");\r
+this._headersListElement.className = "outline-disclosure";\r
+this.element.appendChild(this._headersListElement);\r
+\r
+this._headersTreeOutline = new TreeOutline(this._headersListElement);\r
+this._headersTreeOutline.expandTreeElementsWhenArrowing = true;\r
+\r
+this._urlTreeElement = new TreeElement("", null, false);\r
+this._urlTreeElement.selectable = false;\r
+this._headersTreeOutline.appendChild(this._urlTreeElement);\r
+\r
+this._requestMethodTreeElement = new TreeElement("", null, false);\r
+this._requestMethodTreeElement.selectable = false;\r
+this._headersTreeOutline.appendChild(this._requestMethodTreeElement);\r
+\r
+this._statusCodeTreeElement = new TreeElement("", null, false);\r
+this._statusCodeTreeElement.selectable = false;\r
+this._headersTreeOutline.appendChild(this._statusCodeTreeElement);\r
+\r
+this._requestHeadersTreeElement = new TreeElement("", null, true);\r
+this._requestHeadersTreeElement.expanded = true;\r
+this._requestHeadersTreeElement.selectable = false;\r
+this._headersTreeOutline.appendChild(this._requestHeadersTreeElement);\r
+\r
+this._decodeHover = WebInspector.UIString("Double-Click to toggle between URL encoded and decoded formats");\r
+this._decodeRequestParameters = true;\r
+\r
+this._queryStringTreeElement = new TreeElement("", null, true);\r
+this._queryStringTreeElement.expanded = true;\r
+this._queryStringTreeElement.selectable = false;\r
+this._queryStringTreeElement.hidden = true;\r
+this._headersTreeOutline.appendChild(this._queryStringTreeElement);\r
+\r
+this._formDataTreeElement = new TreeElement("", null, true);\r
+this._formDataTreeElement.expanded = true;\r
+this._formDataTreeElement.selectable = false;\r
+this._formDataTreeElement.hidden = true;\r
+this._headersTreeOutline.appendChild(this._formDataTreeElement);\r
+\r
+this._requestPayloadTreeElement = new TreeElement(WebInspector.UIString("Request Payload"), null, true);\r
+this._requestPayloadTreeElement.expanded = true;\r
+this._requestPayloadTreeElement.selectable = false;\r
+this._requestPayloadTreeElement.hidden = true;\r
+this._headersTreeOutline.appendChild(this._requestPayloadTreeElement);\r
+\r
+this._responseHeadersTreeElement = new TreeElement("", null, true);\r
+this._responseHeadersTreeElement.expanded = true;\r
+this._responseHeadersTreeElement.selectable = false;\r
+this._headersTreeOutline.appendChild(this._responseHeadersTreeElement);\r
+\r
+resource.addEventListener("requestHeaders changed", this._refreshRequestHeaders, this);\r
+resource.addEventListener("responseHeaders changed", this._refreshResponseHeaders, this);\r
+resource.addEventListener("finished", this._refreshHTTPInformation, this);\r
+\r
+this._refreshURL();\r
+this._refreshQueryString();\r
+this._refreshRequestHeaders();\r
+this._refreshResponseHeaders();\r
+this._refreshHTTPInformation();\r
+}\r
+\r
+WebInspector.ResourceHeadersView.prototype = {\r
+\r
+_refreshURL: function()\r
+{\r
+this._urlTreeElement.titleHTML = "<div class=\"header-name\">" + WebInspector.UIString("Request URL") + ":</div>" +\r
+"<div class=\"header-value source-code\">" + this._resource.url.escapeHTML() + "</div>";\r
+},\r
+\r
+_refreshQueryString: function()\r
+{\r
+var queryParameters = this._resource.queryParameters;\r
+this._queryStringTreeElement.hidden = !queryParameters;\r
+if (queryParameters)\r
+this._refreshParms(WebInspector.UIString("Query String Parameters"), queryParameters, this._queryStringTreeElement);\r
+},\r
+\r
+_refreshFormData: function()\r
+{\r
+this._formDataTreeElement.hidden = true;\r
+this._requestPayloadTreeElement.hidden = true;\r
+\r
+var formData = this._resource.requestFormData;\r
+if (!formData)\r
+return;\r
+\r
+var formParameters = this._resource.formParameters;\r
+if (formParameters) {\r
+this._formDataTreeElement.hidden = false;\r
+this._refreshParms(WebInspector.UIString("Form Data"), formParameters, this._formDataTreeElement);\r
+} else {\r
+this._requestPayloadTreeElement.hidden = false;\r
+this._refreshRequestPayload(formData);\r
+}\r
+},\r
+\r
+_refreshRequestPayload: function(formData)\r
+{\r
+this._requestPayloadTreeElement.removeChildren();\r
+\r
+var title = "<div class=\"raw-form-data header-value source-code\">" + formData.escapeHTML() + "</div>";\r
+var parmTreeElement = new TreeElement(null, null, false);\r
+parmTreeElement.titleHTML = title;\r
+parmTreeElement.selectable = false;\r
+this._requestPayloadTreeElement.appendChild(parmTreeElement);\r
+},\r
+\r
+_refreshParms: function(title, parms, parmsTreeElement)\r
+{\r
+parmsTreeElement.removeChildren();\r
+\r
+parmsTreeElement.titleHTML = title + "<span class=\"header-count\">" + WebInspector.UIString(" (%d)", parms.length) + "</span>";\r
+\r
+for (var i = 0; i < parms.length; ++i) {\r
+var name = parms[i].name;\r
+var value = parms[i].value;\r
+\r
+var errorDecoding = false;\r
+if (this._decodeRequestParameters) {\r
+if (value.indexOf("%") >= 0) {\r
+try {\r
+value = decodeURIComponent(value);\r
+} catch(e) {\r
+errorDecoding = true;\r
+}\r
+}\r
+\r
+value = value.replace(/\+/g, " ");\r
+}\r
+\r
+valueEscaped = value.escapeHTML();\r
+if (errorDecoding)\r
+valueEscaped += " <span class=\"error-message\">" + WebInspector.UIString("(unable to decode value)").escapeHTML() + "</span>";\r
+\r
+var title = "<div class=\"header-name\">" + name.escapeHTML() + ":</div>";\r
+title += "<div class=\"header-value source-code\">" + valueEscaped + "</div>";\r
+\r
+var parmTreeElement = new TreeElement(null, null, false);\r
+parmTreeElement.titleHTML = title;\r
+parmTreeElement.selectable = false;\r
+parmTreeElement.tooltip = this._decodeHover;\r
+parmTreeElement.ondblclick = this._toggleURLdecoding.bind(this);\r
+parmsTreeElement.appendChild(parmTreeElement);\r
+}\r
+},\r
+\r
+_toggleURLdecoding: function(event)\r
+{\r
+this._decodeRequestParameters = !this._decodeRequestParameters;\r
+this._refreshQueryString();\r
+this._refreshFormData();\r
+},\r
+\r
+_getHeaderValue: function(headers, key)\r
+{\r
+var lowerKey = key.toLowerCase();\r
+for (var testKey in headers) {\r
+if (testKey.toLowerCase() === lowerKey)\r
+return headers[testKey];\r
+}\r
+},\r
+\r
+_refreshRequestHeaders: function()\r
+{\r
+var additionalRow = null;\r
+if (typeof this._resource.webSocketRequestKey3 !== "undefined")\r
+additionalRow = {header: "(Key3)", value: this._resource.webSocketRequestKey3};\r
+this._refreshHeaders(WebInspector.UIString("Request Headers"), this._resource.sortedRequestHeaders, additionalRow, this._requestHeadersTreeElement);\r
+this._refreshFormData();\r
+},\r
+\r
+_refreshResponseHeaders: function()\r
+{\r
+var additionalRow = null;\r
+if (typeof this._resource.webSocketChallengeResponse !== "undefined")\r
+additionalRow = {header: "(Challenge Response)", value: this._resource.webSocketChallengeResponse};\r
+this._refreshHeaders(WebInspector.UIString("Response Headers"), this._resource.sortedResponseHeaders, additionalRow, this._responseHeadersTreeElement);\r
+},\r
+\r
+_refreshHTTPInformation: function()\r
+{\r
+var requestMethodElement = this._requestMethodTreeElement;\r
+requestMethodElement.hidden = !this._resource.statusCode;\r
+var statusCodeElement = this._statusCodeTreeElement;\r
+statusCodeElement.hidden = !this._resource.statusCode;\r
+var statusCodeImage = "";\r
+\r
+if (this._resource.statusCode) {\r
+var statusImageSource = "";\r
+if (this._resource.statusCode < 300)\r
+statusImageSource = "Images/successGreenDot.png";\r
+else if (this._resource.statusCode < 400)\r
+statusImageSource = "Images/warningOrangeDot.png";\r
+else\r
+statusImageSource = "Images/errorRedDot.png";\r
+\r
+var statusTextEscaped = this._resource.statusCode + " " + this._resource.statusText.escapeHTML();\r
+statusCodeImage = "<img class=\"resource-status-image\" src=\"" + statusImageSource + "\" title=\"" + statusTextEscaped + "\">";\r
+\r
+requestMethodElement.titleHTML = "<div class=\"header-name\">" + WebInspector.UIString("Request Method") + ":</div>" +\r
+"<div class=\"header-value source-code\">" + this._resource.requestMethod + "</div>";\r
+\r
+statusCodeElement.titleHTML = "<div class=\"header-name\">" + WebInspector.UIString("Status Code") + ":</div>" +\r
+statusCodeImage + "<div class=\"header-value source-code\">" + statusTextEscaped + "</div>";\r
+}\r
+},\r
+\r
+_refreshHeaders: function(title, headers, additionalRow, headersTreeElement)\r
+{\r
+headersTreeElement.removeChildren();\r
+\r
+var length = headers.length;\r
+headersTreeElement.titleHTML = title.escapeHTML() + "<span class=\"header-count\">" + WebInspector.UIString(" (%d)", length) + "</span>";\r
+headersTreeElement.hidden = !length;\r
+\r
+var length = headers.length;\r
+for (var i = 0; i < length; ++i) {\r
+var title = "<div class=\"header-name\">" + headers[i].header.escapeHTML() + ":</div>";\r
+title += "<div class=\"header-value source-code\">" + headers[i].value.escapeHTML() + "</div>"\r
+\r
+var headerTreeElement = new TreeElement(null, null, false);\r
+headerTreeElement.titleHTML = title;\r
+headerTreeElement.selectable = false;\r
+headersTreeElement.appendChild(headerTreeElement);\r
+}\r
+\r
+if (additionalRow) {\r
+var title = "<div class=\"header-name\">" + additionalRow.header.escapeHTML() + ":</div>";\r
+title += "<div class=\"header-value source-code\">" + additionalRow.value.escapeHTML() + "</div>"\r
+\r
+var headerTreeElement = new TreeElement(null, null, false);\r
+headerTreeElement.titleHTML = title;\r
+headerTreeElement.selectable = false;\r
+headersTreeElement.appendChild(headerTreeElement);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ResourceHeadersView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceCookiesView = function(resource)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.addStyleClass("resource-cookies-view");\r
+\r
+this._resource = resource;\r
+\r
+resource.addEventListener("requestHeaders changed", this.show, this);\r
+resource.addEventListener("responseHeaders changed", this.show, this);\r
+}\r
+\r
+WebInspector.ResourceCookiesView.prototype = {\r
+show: function(parentElement)\r
+{\r
+if (!this._resource.requestCookies && !this._resource.responseCookies) {\r
+if (!this._emptyMsgElement) {\r
+this._emptyMsgElement = document.createElement("div");\r
+this._emptyMsgElement.className = "storage-empty-view";\r
+this._emptyMsgElement.textContent = WebInspector.UIString("This request has no cookies.");\r
+this.element.appendChild(this._emptyMsgElement);\r
+}\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+return;\r
+}\r
+\r
+if (this._emptyMsgElement)\r
+this._emptyMsgElement.parentElement.removeChild(this._emptyMsgElement);\r
+\r
+this._cookiesTable = new WebInspector.CookiesTable(null, true, true);\r
+this._cookiesTable.addCookiesFolder(WebInspector.UIString("Request Cookies"), this._resource.requestCookies);\r
+this._cookiesTable.addCookiesFolder(WebInspector.UIString("Response Cookies"), this._resource.responseCookies);\r
+this.element.appendChild(this._cookiesTable.element);\r
+\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this._cookiesTable.updateWidths();\r
+}\r
+}\r
+\r
+WebInspector.ResourceCookiesView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceTimingView = function(resource)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.addStyleClass("resource-timing-view");\r
+\r
+this._resource = resource;\r
+\r
+resource.addEventListener("timing changed", this._refresh, this);\r
+}\r
+\r
+WebInspector.ResourceTimingView.prototype = {\r
+show: function(parentElement)\r
+{\r
+if (!this._resource.timing) {\r
+if (!this._emptyMsgElement) {\r
+this._emptyMsgElement = document.createElement("div");\r
+this._emptyMsgElement.className = "storage-empty-view";\r
+this._emptyMsgElement.textContent = WebInspector.UIString("This request has no detailed timing info.");\r
+this.element.appendChild(this._emptyMsgElement);\r
+}\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+return;\r
+}\r
+\r
+if (this._emptyMsgElement)\r
+this._emptyMsgElement.parentElement.removeChild(this._emptyMsgElement);\r
+\r
+this._refresh();\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+},\r
+\r
+_refresh: function()\r
+{\r
+if (this._tableElement)\r
+this._tableElement.parentElement.removeChild(this._tableElement);\r
+\r
+this._tableElement = WebInspector.ResourceTimingView.createTimingTable(this._resource);\r
+this.element.appendChild(this._tableElement);\r
+}\r
+}\r
+\r
+WebInspector.ResourceTimingView.createTimingTable = function(resource)\r
+{\r
+var tableElement = document.createElement("table");\r
+var rows = [];\r
+\r
+function addRow(title, className, start, end, color)\r
+{\r
+var row = {};\r
+row.title = title;\r
+row.className = className;\r
+row.start = start;\r
+row.end = end;\r
+rows.push(row);\r
+}\r
+\r
+if (resource.timing.proxyStart !== -1)\r
+addRow(WebInspector.UIString("Proxy"), "proxy", resource.timing.proxyStart, resource.timing.proxyEnd);\r
+\r
+if (resource.timing.dnsStart !== -1)\r
+addRow(WebInspector.UIString("DNS Lookup"), "dns", resource.timing.dnsStart, resource.timing.dnsEnd);\r
+\r
+if (resource.timing.connectStart !== -1) {\r
+if (resource.connectionReused)\r
+addRow(WebInspector.UIString("Blocking"), "connecting", resource.timing.connectStart, resource.timing.connectEnd);\r
+else {\r
+var connectStart = resource.timing.connectStart;\r
+\r
+if (resource.timing.dnsStart !== -1)\r
+connectStart += resource.timing.dnsEnd - resource.timing.dnsStart;\r
+addRow(WebInspector.UIString("Connecting"), "connecting", connectStart, resource.timing.connectEnd);\r
+}\r
+}\r
+\r
+if (resource.timing.sslStart !== -1)\r
+addRow(WebInspector.UIString("SSL"), "ssl", resource.timing.sslStart, resource.timing.sslEnd);\r
+\r
+var sendStart = resource.timing.sendStart;\r
+if (resource.timing.sslStart !== -1)\r
+sendStart += resource.timing.sslEnd - resource.timing.sslStart;\r
+\r
+addRow(WebInspector.UIString("Sending"), "sending", resource.timing.sendStart, resource.timing.sendEnd);\r
+addRow(WebInspector.UIString("Waiting"), "waiting", resource.timing.sendEnd, resource.timing.receiveHeadersEnd);\r
+addRow(WebInspector.UIString("Receiving"), "receiving", (resource.responseReceivedTime - resource.timing.requestTime) * 1000, (resource.endTime - resource.timing.requestTime) * 1000);\r
+\r
+const chartWidth = 200;\r
+var total = (resource.endTime - resource.timing.requestTime) * 1000;\r
+var scale = chartWidth / total;\r
+\r
+for (var i = 0; i < rows.length; ++i) {\r
+var tr = document.createElement("tr");\r
+tableElement.appendChild(tr);\r
+\r
+var td = document.createElement("td");\r
+td.textContent = rows[i].title;\r
+tr.appendChild(td);\r
+\r
+td = document.createElement("td");\r
+td.width = chartWidth + "px";\r
+\r
+var row = document.createElement("div");\r
+row.className = "network-timing-row";\r
+td.appendChild(row);\r
+\r
+var bar = document.createElement("span");\r
+bar.className = "network-timing-bar " + rows[i].className;\r
+bar.style.left = scale * rows[i].start + "px";\r
+bar.style.right = scale * (total - rows[i].end) + "px";\r
+bar.style.backgroundColor = rows[i].color;\r
+bar.textContent = "\u200B"; \r
+row.appendChild(bar);\r
+\r
+var title = document.createElement("span");\r
+title.className = "network-timing-bar-title";\r
+if (total - rows[i].end < rows[i].start)\r
+title.style.right = (scale * (total - rows[i].end) + 3) + "px";\r
+else\r
+title.style.left = (scale * rows[i].start + 3) + "px";\r
+title.textContent = Number.millisToString(rows[i].end - rows[i].start);\r
+row.appendChild(title);\r
+\r
+tr.appendChild(td);\r
+}\r
+return tableElement;\r
+}\r
+\r
+WebInspector.ResourceTimingView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.NetworkItemView = function(resource)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("network-item-view");\r
+\r
+this._headersView = new WebInspector.ResourceHeadersView(resource);\r
+\r
+var contentView = WebInspector.ResourceManager.resourceViewForResource(resource);\r
+\r
+this._tabbedPane = new WebInspector.TabbedPane(this.element);\r
+this._tabbedPane.appendTab("headers", WebInspector.UIString("Headers"), this._headersView);\r
+if (contentView.hasContent()) {\r
+\r
+contentView.visible = false;\r
+this._tabbedPane.appendTab("content", WebInspector.UIString("Content"), contentView);\r
+}\r
+if (Preferences.showCookiesTab) {\r
+this._cookiesView = new WebInspector.ResourceCookiesView(resource);\r
+this._tabbedPane.appendTab("cookies", WebInspector.UIString("Cookies"), this._cookiesView);\r
+}\r
+if (Preferences.showTimingTab) {\r
+var timingView = new WebInspector.ResourceTimingView(resource);\r
+this._tabbedPane.appendTab("timing", WebInspector.UIString("Timing"), timingView);\r
+}\r
+\r
+this._tabbedPane.addEventListener("tab-selected", this._tabSelected, this);\r
+}\r
+\r
+WebInspector.NetworkItemView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this._selectTab();\r
+},\r
+\r
+_selectTab: function(tabId)\r
+{\r
+if (!tabId)\r
+tabId = WebInspector.settings.resourceViewTab;\r
+\r
+if (!this._tabbedPane.selectTab(tabId)) {\r
+this._isInFallbackSelection = true;\r
+this._tabbedPane.selectTab("headers");\r
+delete this._isInFallbackSelection;\r
+}\r
+},\r
+\r
+_tabSelected: function(event)\r
+{\r
+WebInspector.settings.resourceViewTab = event.data.tabId;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._cookiesView && this._cookiesView.visible)\r
+this._cookiesView.resize();\r
+}\r
+}\r
+\r
+WebInspector.NetworkItemView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ResourceView = function(resource)\r
+{\r
+WebInspector.View.call(this);\r
+this.element.addStyleClass("resource-view");\r
+this.resource = resource;\r
+}\r
+\r
+WebInspector.ResourceView.prototype = {\r
+hasContent: function()\r
+{\r
+return false;\r
+}\r
+}\r
+\r
+WebInspector.ResourceView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceFrame = function(parentElement, scripts, canEditScripts)\r
+{\r
+this._parentElement = parentElement;\r
+this._scripts = {};\r
+for (var i = 0; i < scripts.length; ++i)\r
+this._scripts[scripts[i].sourceID] = scripts[i];\r
+this._canEditScripts = canEditScripts;\r
+\r
+this._textModel = new WebInspector.TextEditorModel();\r
+this._textModel.replaceTabsWithSpaces = true;\r
+\r
+this._messages = [];\r
+this._rowMessages = {};\r
+this._messageBubbles = {};\r
+\r
+this._loaded = false;\r
+this._popoverObjectGroup = "popover";\r
+}\r
+\r
+WebInspector.SourceFrame.prototype = {\r
+\r
+set visible(visible)\r
+{\r
+this._visible = visible;\r
+this._createViewerIfNeeded();\r
+\r
+if (visible) {\r
+if (this._textViewer && this._scrollTop)\r
+this._textViewer.element.scrollTop = this._scrollTop;\r
+if (this._textViewer && this._scrollLeft)\r
+this._textViewer.element.scrollLeft = this._scrollLeft;\r
+} else {\r
+this._hidePopup();\r
+if (this._textViewer) {\r
+this._scrollTop = this._textViewer.element.scrollTop;\r
+this._scrollLeft = this._textViewer.element.scrollLeft;\r
+this._textViewer.freeCachedElements();\r
+}\r
+}\r
+},\r
+\r
+get executionLine()\r
+{\r
+return this._executionLine;\r
+},\r
+\r
+set executionLine(x)\r
+{\r
+if (this._executionLine === x)\r
+return;\r
+\r
+var previousLine = this._executionLine;\r
+this._executionLine = x;\r
+\r
+if (this._textViewer)\r
+this._updateExecutionLine(previousLine);\r
+},\r
+\r
+markDiff: function(diffData)\r
+{\r
+if (this._diffLines && this._textViewer)\r
+this._removeDiffDecorations();\r
+\r
+this._diffLines = diffData;\r
+if (this._textViewer)\r
+this._updateDiffDecorations();\r
+},\r
+\r
+revealLine: function(lineNumber)\r
+{\r
+if (this._textViewer)\r
+this._textViewer.revealLine(lineNumber - 1, 0);\r
+else\r
+this._lineNumberToReveal = lineNumber;\r
+},\r
+\r
+addMessage: function(msg)\r
+{\r
+\r
+if (!msg.message || msg.line <= 0 || !msg.isErrorOrWarning())\r
+return;\r
+this._messages.push(msg)\r
+if (this._textViewer)\r
+this._addMessageToSource(msg);\r
+},\r
+\r
+addScript: function(script)\r
+{\r
+this._scripts[script.sourceID] = script;\r
+},\r
+\r
+clearMessages: function()\r
+{\r
+for (var line in this._messageBubbles) {\r
+var bubble = this._messageBubbles[line];\r
+bubble.parentNode.removeChild(bubble);\r
+}\r
+\r
+this._messages = [];\r
+this._rowMessages = {};\r
+this._messageBubbles = {};\r
+if (this._textViewer)\r
+this._textViewer.resize();\r
+},\r
+\r
+sizeToFitContentHeight: function()\r
+{\r
+if (this._textViewer)\r
+this._textViewer.revalidateDecorationsAndPaint();\r
+},\r
+\r
+setContent: function(mimeType, content, url)\r
+{\r
+this._loaded = true;\r
+this._textModel.setText(null, content);\r
+this._mimeType = mimeType;\r
+this._url = url;\r
+this._createViewerIfNeeded();\r
+},\r
+\r
+updateContent: function(content)\r
+{\r
+this._textModel.setText(null, content);\r
+},\r
+\r
+get textModel()\r
+{\r
+return this._textModel;\r
+},\r
+\r
+get scrollTop()\r
+{\r
+return this._textViewer ? this._textViewer.element.scrollTop : 0;\r
+},\r
+\r
+set scrollTop(scrollTop)\r
+{\r
+if (this._textViewer)\r
+this._textViewer.element.scrollTop = scrollTop;\r
+},\r
+\r
+highlightLine: function(line)\r
+{\r
+if (this._textViewer)\r
+this._textViewer.highlightLine(line - 1);\r
+else\r
+this._lineToHighlight = line;\r
+},\r
+\r
+clearLineHighlight: function()\r
+{\r
+if (this._textViewer)\r
+this._textViewer.clearLineHighlight();\r
+else\r
+delete this._lineToHighlight;\r
+},\r
+\r
+_createViewerIfNeeded: function()\r
+{\r
+if (!this._visible || !this._loaded || this._textViewer)\r
+return;\r
+\r
+this._textViewer = new WebInspector.TextViewer(this._textModel, WebInspector.platform, this._url);\r
+var element = this._textViewer.element;\r
+element.addEventListener("contextmenu", this._contextMenu.bind(this), true);\r
+element.addEventListener("mousedown", this._mouseDown.bind(this), true);\r
+element.addEventListener("mousemove", this._mouseMove.bind(this), true);\r
+element.addEventListener("scroll", this._scroll.bind(this), true);\r
+this._parentElement.appendChild(element);\r
+\r
+this._textViewer.beginUpdates();\r
+\r
+this._textViewer.mimeType = this._mimeType;\r
+this._addExistingMessagesToSource();\r
+this._updateExecutionLine();\r
+this._updateDiffDecorations();\r
+this._textViewer.resize();\r
+\r
+if (this._lineNumberToReveal) {\r
+this.revealLine(this._lineNumberToReveal);\r
+delete this._lineNumberToReveal;\r
+}\r
+\r
+if (this._pendingMarkRange) {\r
+var range = this._pendingMarkRange;\r
+this.markAndRevealRange(range);\r
+delete this._pendingMarkRange;\r
+}\r
+\r
+if (this._lineToHighlight) {\r
+this.highlightLine(this._lineToHighlight);\r
+delete this._lineToHighlight;\r
+}\r
+\r
+var breakpoints = this._breakpoints();\r
+for (var i = 0; i < breakpoints.length; ++i)\r
+this._addBreakpoint(breakpoints[i]);\r
+WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointAdded, this._breakpointAdded, this);\r
+\r
+this._textViewer.endUpdates();\r
+\r
+if (this._canEditScripts)\r
+this._textViewer.editCallback = this._editLine.bind(this);\r
+},\r
+\r
+findSearchMatches: function(query)\r
+{\r
+var ranges = [];\r
+\r
+\r
+var regexObject = createSearchRegex(query);\r
+this._collectRegexMatches(regexObject, ranges);\r
+\r
+\r
+try {\r
+if (/^\/.*\/$/.test(query))\r
+this._collectRegexMatches(new RegExp(query.substring(1, query.length - 1)), ranges);\r
+} catch (e) {\r
+\r
+}\r
+return ranges;\r
+},\r
+\r
+_collectRegexMatches: function(regexObject, ranges)\r
+{\r
+for (var i = 0; i < this._textModel.linesCount; ++i) {\r
+var line = this._textModel.line(i);\r
+var offset = 0;\r
+do {\r
+var match = regexObject.exec(line);\r
+if (match) {\r
+ranges.push(new WebInspector.TextRange(i, offset + match.index, i, offset + match.index + match[0].length));\r
+offset += match.index + 1;\r
+line = line.substring(match.index + 1);\r
+}\r
+} while (match)\r
+}\r
+return ranges;\r
+},\r
+\r
+markAndRevealRange: function(range)\r
+{\r
+if (this._textViewer)\r
+this._textViewer.markAndRevealRange(range);\r
+else\r
+this._pendingMarkRange = range;\r
+},\r
+\r
+clearMarkedRange: function()\r
+{\r
+if (this._textViewer) {\r
+this._textViewer.markAndRevealRange(null);\r
+} else\r
+delete this._pendingMarkRange;\r
+},\r
+\r
+_incrementMessageRepeatCount: function(msg, repeatDelta)\r
+{\r
+if (!msg._resourceMessageLineElement)\r
+return;\r
+\r
+if (!msg._resourceMessageRepeatCountElement) {\r
+var repeatedElement = document.createElement("span");\r
+msg._resourceMessageLineElement.appendChild(repeatedElement);\r
+msg._resourceMessageRepeatCountElement = repeatedElement;\r
+}\r
+\r
+msg.repeatCount += repeatDelta;\r
+msg._resourceMessageRepeatCountElement.textContent = WebInspector.UIString(" (repeated %d times)", msg.repeatCount);\r
+},\r
+\r
+_updateExecutionLine: function(previousLine)\r
+{\r
+if (previousLine) {\r
+if (previousLine - 1 < this._textModel.linesCount)\r
+this._textViewer.removeDecoration(previousLine - 1, "webkit-execution-line");\r
+}\r
+\r
+if (!this._executionLine)\r
+return;\r
+\r
+if (this._executionLine < this._textModel.linesCount)\r
+this._textViewer.addDecoration(this._executionLine - 1, "webkit-execution-line");\r
+},\r
+\r
+_updateDiffDecorations: function()\r
+{\r
+if (!this._diffLines)\r
+return;\r
+\r
+function addDecorations(textViewer, lines, className)\r
+{\r
+for (var i = 0; i < lines.length; ++i)\r
+textViewer.addDecoration(lines[i], className);\r
+}\r
+addDecorations(this._textViewer, this._diffLines.added, "webkit-added-line");\r
+addDecorations(this._textViewer, this._diffLines.removed, "webkit-removed-line");\r
+addDecorations(this._textViewer, this._diffLines.changed, "webkit-changed-line");\r
+},\r
+\r
+_removeDiffDecorations: function()\r
+{\r
+function removeDecorations(textViewer, lines, className)\r
+{\r
+for (var i = 0; i < lines.length; ++i)\r
+textViewer.removeDecoration(lines[i], className);\r
+}\r
+removeDecorations(this._textViewer, this._diffLines.added, "webkit-added-line");\r
+removeDecorations(this._textViewer, this._diffLines.removed, "webkit-removed-line");\r
+removeDecorations(this._textViewer, this._diffLines.changed, "webkit-changed-line");\r
+},\r
+\r
+_addExistingMessagesToSource: function()\r
+{\r
+var length = this._messages.length;\r
+for (var i = 0; i < length; ++i)\r
+this._addMessageToSource(this._messages[i]);\r
+},\r
+\r
+_addMessageToSource: function(msg)\r
+{\r
+if (msg.line >= this._textModel.linesCount)\r
+return;\r
+\r
+var messageBubbleElement = this._messageBubbles[msg.line];\r
+if (!messageBubbleElement || messageBubbleElement.nodeType !== Node.ELEMENT_NODE || !messageBubbleElement.hasStyleClass("webkit-html-message-bubble")) {\r
+messageBubbleElement = document.createElement("div");\r
+messageBubbleElement.className = "webkit-html-message-bubble";\r
+this._messageBubbles[msg.line] = messageBubbleElement;\r
+this._textViewer.addDecoration(msg.line - 1, messageBubbleElement);\r
+}\r
+\r
+var rowMessages = this._rowMessages[msg.line];\r
+if (!rowMessages) {\r
+rowMessages = [];\r
+this._rowMessages[msg.line] = rowMessages;\r
+}\r
+\r
+for (var i = 0; i < rowMessages.length; ++i) {\r
+if (rowMessages[i].isEqual(msg)) {\r
+this._incrementMessageRepeatCount(rowMessages[i], msg.repeatDelta);\r
+return;\r
+}\r
+}\r
+\r
+rowMessages.push(msg);\r
+\r
+var imageURL;\r
+switch (msg.level) {\r
+case WebInspector.ConsoleMessage.MessageLevel.Error:\r
+messageBubbleElement.addStyleClass("webkit-html-error-message");\r
+imageURL = "Images/errorIcon.png";\r
+break;\r
+case WebInspector.ConsoleMessage.MessageLevel.Warning:\r
+messageBubbleElement.addStyleClass("webkit-html-warning-message");\r
+imageURL = "Images/warningIcon.png";\r
+break;\r
+}\r
+\r
+var messageLineElement = document.createElement("div");\r
+messageLineElement.className = "webkit-html-message-line";\r
+messageBubbleElement.appendChild(messageLineElement);\r
+\r
+\r
+var image = document.createElement("img");\r
+image.src = imageURL;\r
+image.className = "webkit-html-message-icon";\r
+messageLineElement.appendChild(image);\r
+messageLineElement.appendChild(document.createTextNode(msg.message));\r
+\r
+msg._resourceMessageLineElement = messageLineElement;\r
+},\r
+\r
+_breakpointAdded: function(event)\r
+{\r
+var breakpoint = event.data;\r
+\r
+if (breakpoint.sourceID in this._scripts)\r
+this._addBreakpoint(breakpoint);\r
+},\r
+\r
+_addBreakpoint: function(breakpoint)\r
+{\r
+if (breakpoint.line > this._textModel.linesCount)\r
+return;\r
+\r
+breakpoint.addEventListener("enable-changed", this._breakpointChanged, this);\r
+breakpoint.addEventListener("condition-changed", this._breakpointChanged, this);\r
+breakpoint.addEventListener("removed", this._breakpointRemoved, this);\r
+\r
+breakpoint.sourceText = this._textModel.line(breakpoint.line - 1);\r
+this._setBreakpointDecoration(breakpoint.line, breakpoint.enabled, !!breakpoint.condition);\r
+},\r
+\r
+_breakpointRemoved: function(event)\r
+{\r
+var breakpoint = event.target;\r
+\r
+breakpoint.removeEventListener("enable-changed", null, this);\r
+breakpoint.removeEventListener("condition-changed", null, this);\r
+breakpoint.removeEventListener("removed", null, this);\r
+\r
+this._removeBreakpointDecoration(breakpoint.line);\r
+},\r
+\r
+_breakpointChanged: function(event)\r
+{\r
+var breakpoint = event.target;\r
+this._setBreakpointDecoration(breakpoint.line, breakpoint.enabled, !!breakpoint.condition);\r
+},\r
+\r
+_setBreakpointDecoration: function(lineNumber, enabled, hasCondition)\r
+{\r
+lineNumber -= 1;\r
+this._textViewer.beginUpdates();\r
+this._textViewer.addDecoration(lineNumber, "webkit-breakpoint");\r
+if (enabled)\r
+this._textViewer.removeDecoration(lineNumber, "webkit-breakpoint-disabled");\r
+else\r
+this._textViewer.addDecoration(lineNumber, "webkit-breakpoint-disabled");\r
+if (hasCondition)\r
+this._textViewer.addDecoration(lineNumber, "webkit-breakpoint-conditional");\r
+else\r
+this._textViewer.removeDecoration(lineNumber, "webkit-breakpoint-conditional");\r
+this._textViewer.endUpdates();\r
+},\r
+\r
+_removeBreakpointDecoration: function(lineNumber)\r
+{\r
+lineNumber -= 1;\r
+this._textViewer.beginUpdates();\r
+this._textViewer.removeDecoration(lineNumber, "webkit-breakpoint");\r
+this._textViewer.removeDecoration(lineNumber, "webkit-breakpoint-disabled");\r
+this._textViewer.removeDecoration(lineNumber, "webkit-breakpoint-conditional");\r
+this._textViewer.endUpdates();\r
+},\r
+\r
+_contextMenu: function(event)\r
+{\r
+if (!WebInspector.panels.scripts)\r
+return;\r
+\r
+var target = event.target.enclosingNodeOrSelfWithClass("webkit-line-number");\r
+if (!target)\r
+return;\r
+var lineNumber = target.parentElement.lineNumber + 1;\r
+\r
+var contextMenu = new WebInspector.ContextMenu();\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Continue to Here"), this._continueToLine.bind(this, lineNumber));\r
+\r
+var breakpoint = this._findBreakpoint(lineNumber);\r
+if (!breakpoint) {\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Add Breakpoint"), this._setBreakpoint.bind(this, lineNumber, "", true));\r
+\r
+function addConditionalBreakpoint()\r
+{\r
+this._setBreakpointDecoration(lineNumber, true, true);\r
+function didEditBreakpointCondition(committed, condition)\r
+{\r
+this._removeBreakpointDecoration(lineNumber);\r
+if (committed)\r
+this._setBreakpoint(lineNumber, true, condition);\r
+}\r
+this._editBreakpointCondition(lineNumber, "", didEditBreakpointCondition.bind(this));\r
+}\r
+contextMenu.appendItem(WebInspector.UIString("Add Conditional Breakpoint…"), addConditionalBreakpoint.bind(this));\r
+} else {\r
+\r
+contextMenu.appendItem(WebInspector.UIString("Remove Breakpoint"), breakpoint.remove.bind(breakpoint));\r
+function editBreakpointCondition()\r
+{\r
+function didEditBreakpointCondition(committed, condition)\r
+{\r
+if (committed) {\r
+breakpoint.remove();\r
+this._setBreakpoint(breakpoint.line, breakpoint.enabled, condition);\r
+}\r
+}\r
+this._editBreakpointCondition(lineNumber, breakpoint.condition, didEditBreakpointCondition.bind(this));\r
+}\r
+contextMenu.appendItem(WebInspector.UIString("Edit Breakpoint…"), editBreakpointCondition.bind(this));\r
+function setBreakpointEnabled(enabled)\r
+{\r
+breakpoint.remove();\r
+this._setBreakpoint(breakpoint.line, enabled, breakpoint.condition);\r
+}\r
+if (breakpoint.enabled)\r
+contextMenu.appendItem(WebInspector.UIString("Disable Breakpoint"), setBreakpointEnabled.bind(this, false));\r
+else\r
+contextMenu.appendItem(WebInspector.UIString("Enable Breakpoint"), setBreakpointEnabled.bind(this, true));\r
+}\r
+contextMenu.show(event);\r
+},\r
+\r
+_scroll: function(event)\r
+{\r
+this._hidePopup();\r
+},\r
+\r
+_mouseDown: function(event)\r
+{\r
+this._resetHoverTimer();\r
+this._hidePopup();\r
+if (event.button != 0 || event.altKey || event.ctrlKey || event.metaKey)\r
+return;\r
+var target = event.target.enclosingNodeOrSelfWithClass("webkit-line-number");\r
+if (!target)\r
+return;\r
+var lineNumber = target.parentElement.lineNumber + 1;\r
+\r
+var breakpoint = this._findBreakpoint(lineNumber);\r
+if (breakpoint) {\r
+breakpoint.remove();\r
+if (event.shiftKey)\r
+this._setBreakpoint(breakpoint.line, !breakpoint.enabled, breakpoint.condition);\r
+} else\r
+this._setBreakpoint(lineNumber, true, "");\r
+event.preventDefault();\r
+},\r
+\r
+_mouseMove: function(event)\r
+{\r
+\r
+if (this._hoverElement === event.target || event.target.hasStyleClass("source-frame-eval-expression"))\r
+return;\r
+\r
+this._resetHoverTimer();\r
+\r
+if (this._popup) {\r
+var self = this;\r
+function doHide()\r
+{\r
+self._hidePopup();\r
+delete self._hidePopupTimer;\r
+}\r
+if (!("_hidePopupTimer" in this))\r
+this._hidePopupTimer = setTimeout(doHide, 500);\r
+}\r
+\r
+this._hoverElement = event.target;\r
+\r
+\r
+if (!WebInspector.panels.scripts || !WebInspector.panels.scripts.paused)\r
+return;\r
+\r
+\r
+if (this._hoverElement.hasStyleClass("webkit-javascript-keyword")) {\r
+if (this._hoverElement.textContent !== "this")\r
+return;\r
+} else if (!this._hoverElement.hasStyleClass("webkit-javascript-ident"))\r
+return;\r
+\r
+const toolTipDelay = this._popup ? 600 : 1000;\r
+this._hoverTimer = setTimeout(this._mouseHover.bind(this, this._hoverElement), toolTipDelay);\r
+},\r
+\r
+_resetHoverTimer: function()\r
+{\r
+if (this._hoverTimer) {\r
+clearTimeout(this._hoverTimer);\r
+delete this._hoverTimer;\r
+}\r
+},\r
+\r
+_hidePopup: function()\r
+{\r
+if (!this._popup)\r
+return;\r
+\r
+\r
+var parentElement = this._popup.highlightElement.parentElement;\r
+var child = this._popup.highlightElement.firstChild;\r
+while (child) {\r
+var nextSibling = child.nextSibling;\r
+parentElement.insertBefore(child, this._popup.highlightElement);\r
+child = nextSibling;\r
+}\r
+parentElement.removeChild(this._popup.highlightElement);\r
+\r
+this._popup.hide();\r
+delete this._popup;\r
+InspectorBackend.releaseWrapperObjectGroup(0, this._popoverObjectGroup);\r
+},\r
+\r
+_mouseHover: function(element)\r
+{\r
+delete this._hoverTimer;\r
+\r
+if (!WebInspector.panels.scripts || !WebInspector.panels.scripts.paused)\r
+return;\r
+\r
+var lineRow = element.enclosingNodeOrSelfWithNodeName("tr");\r
+if (!lineRow)\r
+return;\r
+\r
+\r
+var tokens = [ element ];\r
+var token = element.previousSibling;\r
+while (token && (token.className === "webkit-javascript-ident" || token.className === "webkit-javascript-keyword" || token.textContent.trim() === ".")) {\r
+tokens.push(token);\r
+token = token.previousSibling;\r
+}\r
+tokens.reverse();\r
+\r
+\r
+var parentElement = element.parentElement;\r
+var nextElement = element.nextSibling;\r
+var container = document.createElement("span");\r
+for (var i = 0; i < tokens.length; ++i)\r
+container.appendChild(tokens[i]);\r
+parentElement.insertBefore(container, nextElement);\r
+this._showPopup(container);\r
+},\r
+\r
+_showPopup: function(element)\r
+{\r
+function killHidePopupTimer()\r
+{\r
+if (this._hidePopupTimer) {\r
+clearTimeout(this._hidePopupTimer);\r
+delete this._hidePopupTimer;\r
+\r
+\r
+\r
+this._resetHoverTimer();\r
+}\r
+}\r
+\r
+function showObjectPopup(result)\r
+{\r
+if (!WebInspector.panels.scripts.paused)\r
+return;\r
+\r
+var popupContentElement = null;\r
+if (result.type !== "object" && result.type !== "node" && result.type !== "array") {\r
+popupContentElement = document.createElement("span");\r
+popupContentElement.className = "monospace console-formatted-" + result.type;\r
+popupContentElement.style.whiteSpace = "pre";\r
+popupContentElement.textContent = result.description;\r
+if (result.type === "string")\r
+popupContentElement.textContent = "\"" + popupContentElement.textContent + "\"";\r
+this._popup = new WebInspector.Popover(popupContentElement);\r
+this._popup.show(element);\r
+} else {\r
+var popupContentElement = document.createElement("div");\r
+\r
+var titleElement = document.createElement("div");\r
+titleElement.className = "source-frame-popover-title monospace";\r
+titleElement.textContent = result.description;\r
+popupContentElement.appendChild(titleElement);\r
+\r
+var section = new WebInspector.ObjectPropertiesSection(result, "", null, false);\r
+section.expanded = true;\r
+section.element.addStyleClass("source-frame-popover-tree");\r
+section.headerElement.addStyleClass("hidden");\r
+popupContentElement.appendChild(section.element);\r
+\r
+this._popup = new WebInspector.Popover(popupContentElement);\r
+const popupWidth = 300;\r
+const popupHeight = 250;\r
+this._popup.show(element, popupWidth, popupHeight);\r
+}\r
+this._popup.highlightElement = element;\r
+this._popup.highlightElement.addStyleClass("source-frame-eval-expression");\r
+popupContentElement.addEventListener("mousemove", killHidePopupTimer.bind(this), true);\r
+}\r
+\r
+function evaluateCallback(result)\r
+{\r
+if (result.isError())\r
+return;\r
+if (!WebInspector.panels.scripts.paused)\r
+return;\r
+showObjectPopup.call(this, result);\r
+}\r
+WebInspector.panels.scripts.evaluateInSelectedCallFrame(element.textContent, false, this._popoverObjectGroup, evaluateCallback.bind(this));\r
+},\r
+\r
+_editBreakpointCondition: function(lineNumber, condition, callback)\r
+{\r
+lineNumber -= 1;\r
+this._conditionElement = this._createConditionElement(lineNumber);\r
+this._textViewer.addDecoration(lineNumber, this._conditionElement);\r
+\r
+function finishEditing(committed, element, newText)\r
+{\r
+this._textViewer.removeDecoration(lineNumber, this._conditionElement);\r
+delete this._conditionEditorElement;\r
+delete this._conditionElement;\r
+callback(committed, newText);\r
+}\r
+\r
+WebInspector.startEditing(this._conditionEditorElement, {\r
+context: null,\r
+commitHandler: finishEditing.bind(this, true),\r
+cancelHandler: finishEditing.bind(this, false)\r
+});\r
+this._conditionEditorElement.value = condition;\r
+this._conditionEditorElement.select();\r
+},\r
+\r
+_createConditionElement: function(lineNumber)\r
+{\r
+var conditionElement = document.createElement("div");\r
+conditionElement.className = "source-frame-breakpoint-condition";\r
+\r
+var labelElement = document.createElement("label");\r
+labelElement.className = "source-frame-breakpoint-message";\r
+labelElement.htmlFor = "source-frame-breakpoint-condition";\r
+labelElement.appendChild(document.createTextNode(WebInspector.UIString("The breakpoint on line %d will stop only if this expression is true:", lineNumber)));\r
+conditionElement.appendChild(labelElement);\r
+\r
+var editorElement = document.createElement("input");\r
+editorElement.id = "source-frame-breakpoint-condition";\r
+editorElement.className = "monospace";\r
+editorElement.type = "text"\r
+conditionElement.appendChild(editorElement);\r
+this._conditionEditorElement = editorElement;\r
+\r
+return conditionElement;\r
+},\r
+\r
+_evalSelectionInCallFrame: function(event)\r
+{\r
+if (!WebInspector.panels.scripts || !WebInspector.panels.scripts.paused)\r
+return;\r
+\r
+var selection = this.element.contentWindow.getSelection();\r
+if (!selection.rangeCount)\r
+return;\r
+\r
+var expression = selection.getRangeAt(0).toString().trim();\r
+WebInspector.panels.scripts.evaluateInSelectedCallFrame(expression, false, "console", function(result) {\r
+WebInspector.showConsole();\r
+var commandMessage = new WebInspector.ConsoleCommand(expression);\r
+WebInspector.console.addMessage(commandMessage);\r
+WebInspector.console.addMessage(new WebInspector.ConsoleCommandResult(result, commandMessage));\r
+});\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this._textViewer)\r
+this._textViewer.resize();\r
+},\r
+\r
+_continueToLine: function(lineNumber)\r
+{\r
+var sourceID = this._sourceIDForLine(lineNumber);\r
+if (!sourceID)\r
+return;\r
+WebInspector.debuggerModel.continueToLine(sourceID, lineNumber);\r
+},\r
+\r
+_editLine: function(lineNumber, newContent, cancelEditingCallback)\r
+{\r
+lineNumber += 1;\r
+\r
+var lines = [];\r
+for (var i = 0; i < this._textModel.linesCount; ++i) {\r
+if (i === lineNumber - 1)\r
+lines.push(newContent);\r
+else\r
+lines.push(this._textModel.line(i));\r
+}\r
+\r
+var editData = {};\r
+editData.sourceID = this._sourceIDForLine(lineNumber);\r
+editData.content = lines.join("\n");\r
+editData.line = lineNumber;\r
+editData.linesCountToShift = newContent.split("\n").length - 1;\r
+this._doEditLine(editData, cancelEditingCallback);\r
+},\r
+\r
+_revertEditLine: function(editData, contentToRevertTo)\r
+{\r
+var newEditData = {};\r
+newEditData.sourceID = editData.sourceID;\r
+newEditData.content = contentToRevertTo;\r
+newEditData.line = editData.line;\r
+newEditData.linesCountToShift = -editData.linesCountToShift;\r
+this._doEditLine(newEditData);\r
+},\r
+\r
+_doEditLine: function(editData, cancelEditingCallback)\r
+{\r
+var revertEditingCallback = this._revertEditLine.bind(this, editData);\r
+var commitEditingCallback = this._commitEditLine.bind(this, editData, revertEditingCallback);\r
+WebInspector.panels.scripts.editScriptSource(editData, commitEditingCallback, cancelEditingCallback);\r
+},\r
+\r
+_commitEditLine: function(editData, revertEditLineCallback, newContent)\r
+{\r
+var script = this._scripts[editData.sourceID];\r
+script.source = newContent;\r
+if (script.resource)\r
+script.resource.setContent(newContent, revertEditLineCallback);\r
+},\r
+\r
+_setBreakpoint: function(lineNumber, enabled, condition)\r
+{\r
+var sourceID = this._sourceIDForLine(lineNumber);\r
+if (!sourceID)\r
+return;\r
+WebInspector.debuggerModel.setBreakpoint(sourceID, lineNumber, enabled, condition);\r
+if (!WebInspector.panels.scripts.breakpointsActivated)\r
+WebInspector.panels.scripts.toggleBreakpointsClicked();\r
+},\r
+\r
+_breakpoints: function()\r
+{\r
+var scripts = this._scripts;\r
+return WebInspector.debuggerModel.queryBreakpoints(function(b) { return b.sourceID in scripts; });\r
+},\r
+\r
+_findBreakpoint: function(lineNumber)\r
+{\r
+var sourceID = this._sourceIDForLine(lineNumber);\r
+return WebInspector.debuggerModel.findBreakpoint(sourceID, lineNumber);\r
+},\r
+\r
+_sourceIDForLine: function(lineNumber)\r
+{\r
+var sourceIDForLine = null;\r
+var closestStartingLine = 0;\r
+for (var sourceID in this._scripts) {\r
+var script = this._scripts[sourceID];\r
+if (script.startingLine <= lineNumber && script.startingLine >= closestStartingLine) {\r
+closestStartingLine = script.startingLine;\r
+sourceIDForLine = sourceID;\r
+}\r
+}\r
+return sourceIDForLine;\r
+}\r
+}\r
+\r
+WebInspector.SourceFrame.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DOMSyntaxHighlighter = function(mimeType)\r
+{\r
+this._tokenizer = WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer(mimeType);\r
+}\r
+\r
+WebInspector.DOMSyntaxHighlighter.prototype = {\r
+createSpan: function(content, className)\r
+{\r
+var span = document.createElement("span");\r
+span.className = "webkit-" + className;\r
+span.appendChild(document.createTextNode(content));\r
+return span;\r
+},\r
+\r
+syntaxHighlightNode: function(node)\r
+{\r
+this._tokenizer.condition = this._tokenizer.initialCondition;\r
+var lines = node.textContent.split("\n");\r
+node.removeChildren();\r
+\r
+for (var i = lines[0].length ? 0 : 1; i < lines.length; ++i) {\r
+var line = lines[i];\r
+var plainTextStart = 0;\r
+this._tokenizer.line = line;\r
+var column = 0;\r
+do {\r
+var newColumn = this._tokenizer.nextToken(column);\r
+var tokenType = this._tokenizer.tokenType;\r
+if (tokenType) {\r
+if (column > plainTextStart) {\r
+var plainText = line.substring(plainTextStart, column);\r
+node.appendChild(document.createTextNode(plainText));\r
+}\r
+var token = line.substring(column, newColumn);\r
+node.appendChild(this.createSpan(token, tokenType));\r
+plainTextStart = newColumn;\r
+}\r
+column = newColumn;\r
+} while (column < line.length)\r
+\r
+if (plainTextStart < line.length) {\r
+var plainText = line.substring(plainTextStart, line.length);\r
+node.appendChild(document.createTextNode(plainText));\r
+}\r
+if (i < lines.length - 1)\r
+node.appendChild(document.createElement("br"));\r
+}\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TextRange = function(startLine, startColumn, endLine, endColumn)\r
+{\r
+this.startLine = startLine;\r
+this.startColumn = startColumn;\r
+this.endLine = endLine;\r
+this.endColumn = endColumn;\r
+}\r
+\r
+WebInspector.TextRange.prototype = {\r
+isEmpty: function()\r
+{\r
+return this.startLine === this.endLine && this.startColumn === this.endColumn;\r
+},\r
+\r
+get linesCount()\r
+{\r
+return this.endLine - this.startLine;\r
+},\r
+\r
+clone: function()\r
+{\r
+return new WebInspector.TextRange(this.startLine, this.startColumn, this.endLine, this.endColumn); \r
+}\r
+}\r
+\r
+WebInspector.TextEditorModel = function()\r
+{\r
+this._lines = [""];\r
+this._attributes = [];\r
+this._undoStack = [];\r
+this._noPunctuationRegex = /[^ !%&()*+,-.:;<=>?\[\]\^{|}~]+/;\r
+}\r
+\r
+WebInspector.TextEditorModel.prototype = {\r
+set changeListener(changeListener)\r
+{\r
+this._changeListener = changeListener;\r
+},\r
+\r
+get linesCount()\r
+{\r
+return this._lines.length;\r
+},\r
+\r
+line: function(lineNumber)\r
+{\r
+if (lineNumber >= this._lines.length)\r
+throw "Out of bounds:" + lineNumber;\r
+return this._lines[lineNumber];\r
+},\r
+\r
+lineLength: function(lineNumber)\r
+{\r
+return this._lines[lineNumber].length;\r
+},\r
+\r
+setText: function(range, text)\r
+{\r
+if (!range)\r
+range = new WebInspector.TextRange(0, 0, this._lines.length - 1, this._lines[this._lines.length - 1].length);\r
+var command = this._pushUndoableCommand(range, text);\r
+var newRange = this._innerSetText(range, text);\r
+command.range = newRange.clone();\r
+\r
+if (this._changeListener)\r
+this._changeListener(range, newRange, command.text, text);\r
+return newRange;\r
+},\r
+\r
+set replaceTabsWithSpaces(replaceTabsWithSpaces)\r
+{\r
+this._replaceTabsWithSpaces = replaceTabsWithSpaces;\r
+},\r
+\r
+_innerSetText: function(range, text)\r
+{\r
+this._eraseRange(range);\r
+if (text === "")\r
+return new WebInspector.TextRange(range.startLine, range.startColumn, range.startLine, range.startColumn);\r
+\r
+var newLines = text.split("\n");\r
+this._replaceTabsIfNeeded(newLines);\r
+\r
+var prefix = this._lines[range.startLine].substring(0, range.startColumn);\r
+var prefixArguments = this._arguments\r
+var suffix = this._lines[range.startLine].substring(range.startColumn);\r
+\r
+var postCaret = prefix.length;\r
+\r
+if (newLines.length === 1) {\r
+this._setLine(range.startLine, prefix + newLines[0] + suffix);\r
+postCaret += newLines[0].length;\r
+} else {\r
+this._setLine(range.startLine, prefix + newLines[0]);\r
+for (var i = 1; i < newLines.length; ++i)\r
+this._insertLine(range.startLine + i, newLines[i]);\r
+this._setLine(range.startLine + newLines.length - 1, newLines[newLines.length - 1] + suffix);\r
+postCaret = newLines[newLines.length - 1].length;\r
+}\r
+return new WebInspector.TextRange(range.startLine, range.startColumn,\r
+range.startLine + newLines.length - 1, postCaret);\r
+},\r
+\r
+_replaceTabsIfNeeded: function(lines)\r
+{\r
+if (!this._replaceTabsWithSpaces)\r
+return;\r
+var spaces = [ "    ", "   ", "  ", " "];\r
+for (var i = 0; i < lines.length; ++i) {\r
+var line = lines[i];\r
+var index = line.indexOf("\t");\r
+while (index !== -1) {\r
+line = line.substring(0, index) + spaces[index % 4] + line.substring(index + 1);\r
+index = line.indexOf("\t", index + 1);\r
+}\r
+lines[i] = line;\r
+}\r
+},\r
+\r
+_eraseRange: function(range)\r
+{\r
+if (range.isEmpty())\r
+return;\r
+\r
+var prefix = this._lines[range.startLine].substring(0, range.startColumn);\r
+var suffix = this._lines[range.endLine].substring(range.endColumn);\r
+\r
+if (range.endLine > range.startLine)\r
+this._removeLines(range.startLine + 1, range.endLine - range.startLine);\r
+this._setLine(range.startLine, prefix + suffix);\r
+},\r
+\r
+_setLine: function(lineNumber, text)\r
+{\r
+this._lines[lineNumber] = text;\r
+},\r
+\r
+_removeLines: function(fromLine, count)\r
+{\r
+this._lines.splice(fromLine, count);\r
+this._attributes.splice(fromLine, count);\r
+},\r
+\r
+_insertLine: function(lineNumber, text)\r
+{\r
+this._lines.splice(lineNumber, 0, text);\r
+this._attributes.splice(lineNumber, 0, {});\r
+},\r
+\r
+wordRange: function(lineNumber, column)\r
+{\r
+return new WebInspector.TextRange(lineNumber, this.wordStart(lineNumber, column, true), lineNumber, this.wordEnd(lineNumber, column, true));\r
+},\r
+\r
+wordStart: function(lineNumber, column, gapless)\r
+{\r
+var line = this._lines[lineNumber];\r
+var prefix = line.substring(0, column).split("").reverse().join("");\r
+var prefixMatch = this._noPunctuationRegex.exec(prefix);\r
+return prefixMatch && (!gapless || prefixMatch.index === 0) ? column - prefixMatch.index - prefixMatch[0].length : column;\r
+},\r
+\r
+wordEnd: function(lineNumber, column, gapless)\r
+{\r
+var line = this._lines[lineNumber];\r
+var suffix = line.substring(column);\r
+var suffixMatch = this._noPunctuationRegex.exec(suffix);\r
+return suffixMatch && (!gapless || suffixMatch.index === 0) ? column + suffixMatch.index + suffixMatch[0].length : column;\r
+},\r
+\r
+copyRange: function(range)\r
+{\r
+if (!range)\r
+range = new WebInspector.TextRange(0, 0, this._lines.length - 1, this._lines[this._lines.length - 1].length);\r
+\r
+var clip = [];\r
+if (range.startLine === range.endLine) {\r
+clip.push(this._lines[range.startLine].substring(range.startColumn, range.endColumn));\r
+return clip.join("\n");\r
+}\r
+clip.push(this._lines[range.startLine].substring(range.startColumn));\r
+for (var i = range.startLine + 1; i < range.endLine; ++i)\r
+clip.push(this._lines[i]);\r
+clip.push(this._lines[range.endLine].substring(0, range.endColumn));\r
+return clip.join("\n");\r
+},\r
+\r
+setAttribute: function(line, name, value)\r
+{\r
+var attrs = this._attributes[line];\r
+if (!attrs) {\r
+attrs = {};\r
+this._attributes[line] = attrs;\r
+}\r
+attrs[name] = value;\r
+},\r
+\r
+getAttribute: function(line, name)\r
+{\r
+var attrs = this._attributes[line];\r
+return attrs ? attrs[name] : null;\r
+},\r
+\r
+removeAttribute: function(line, name)\r
+{\r
+var attrs = this._attributes[line];\r
+if (attrs)\r
+delete attrs[name];\r
+},\r
+\r
+_pushUndoableCommand: function(range, text)\r
+{\r
+var command = {\r
+text: this.copyRange(range),\r
+startLine: range.startLine,\r
+startColumn: range.startColumn,\r
+endLine: range.startLine,\r
+endColumn: range.startColumn\r
+};\r
+if (this._inUndo)\r
+this._redoStack.push(command);\r
+else {\r
+if (!this._inRedo)\r
+this._redoStack = [];\r
+this._undoStack.push(command);\r
+}\r
+return command;\r
+},\r
+\r
+undo: function()\r
+{\r
+this._markRedoableState();\r
+\r
+this._inUndo = true;\r
+var range = this._doUndo(this._undoStack);\r
+delete this._inUndo;\r
+\r
+return range;\r
+},\r
+\r
+redo: function()\r
+{\r
+this.markUndoableState();\r
+\r
+this._inRedo = true;\r
+var range = this._doUndo(this._redoStack);\r
+delete this._inRedo;\r
+\r
+return range;\r
+},\r
+\r
+_doUndo: function(stack)\r
+{\r
+var range = null;\r
+for (var i = stack.length - 1; i >= 0; --i) {\r
+var command = stack[i];\r
+stack.length = i;\r
+\r
+range = this.setText(command.range, command.text);\r
+if (i > 0 && stack[i - 1].explicit)\r
+return range;\r
+}\r
+return range;\r
+},\r
+\r
+markUndoableState: function()\r
+{\r
+if (this._undoStack.length)\r
+this._undoStack[this._undoStack.length - 1].explicit = true;\r
+},\r
+\r
+_markRedoableState: function()\r
+{\r
+if (this._redoStack.length)\r
+this._redoStack[this._redoStack.length - 1].explicit = true;\r
+},\r
+\r
+resetUndoStack: function()\r
+{\r
+this._undoStack = [];\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TextEditorHighlighter = function(textModel, damageCallback)\r
+{\r
+this._textModel = textModel;\r
+this._tokenizer = WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer("text/html");\r
+this._damageCallback = damageCallback;\r
+this.reset();\r
+}\r
+\r
+WebInspector.TextEditorHighlighter.prototype = {\r
+set mimeType(mimeType)\r
+{\r
+var tokenizer = WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer(mimeType);\r
+if (tokenizer) {\r
+this._tokenizer = tokenizer;\r
+this._tokenizerCondition = this._tokenizer.initialCondition;\r
+}\r
+},\r
+\r
+reset: function()\r
+{\r
+this._lastHighlightedLine = 0;\r
+this._lastHighlightedColumn = 0;\r
+this._tokenizerCondition = this._tokenizer.initialCondition;\r
+},\r
+\r
+highlight: function(endLine)\r
+{\r
+\r
+if (endLine <= this._lastHighlightedLine)\r
+return;\r
+\r
+this._requestedEndLine = endLine;\r
+\r
+if (this._highlightTimer) {\r
+\r
+return;\r
+}\r
+\r
+\r
+this._highlightInChunks(endLine);\r
+\r
+\r
+if (this._lastHighlightedLine < endLine)\r
+this._highlightTimer = setTimeout(this._highlightInChunks.bind(this, endLine), 100);\r
+},\r
+\r
+_highlightInChunks: function(endLine)\r
+{\r
+delete this._highlightTimer;\r
+\r
+\r
+if (this._requestedEndLine <= this._lastHighlightedLine)\r
+return;\r
+\r
+if (this._requestedEndLine !== endLine) {\r
+\r
+this._highlightTimer = setTimeout(this._highlightInChunks.bind(this, this._requestedEndLine), 100);\r
+return;\r
+}\r
+\r
+this._highlightLines(this._requestedEndLine);\r
+\r
+\r
+if (this._lastHighlightedLine < this._requestedEndLine)\r
+this._highlightTimer = setTimeout(this._highlightInChunks.bind(this, this._requestedEndLine), 10);\r
+},\r
+\r
+_highlightLines: function(endLine)\r
+{\r
+\r
+this._tokenizer.condition = this._tokenizerCondition;\r
+var tokensCount = 0;\r
+for (var lineNumber = this._lastHighlightedLine; lineNumber < endLine; ++lineNumber) {\r
+var line = this._textModel.line(lineNumber);\r
+this._tokenizer.line = line;\r
+var attributes = this._textModel.getAttribute(lineNumber, "highlight") || {};\r
+\r
+\r
+do {\r
+var newColumn = this._tokenizer.nextToken(this._lastHighlightedColumn);\r
+var tokenType = this._tokenizer.tokenType;\r
+if (tokenType)\r
+attributes[this._lastHighlightedColumn] = { length: newColumn - this._lastHighlightedColumn, tokenType: tokenType, subTokenizer: this._tokenizer.subTokenizer };\r
+this._lastHighlightedColumn = newColumn;\r
+if (++tokensCount > 1000)\r
+break;\r
+} while (this._lastHighlightedColumn < line.length)\r
+\r
+this._textModel.setAttribute(lineNumber, "highlight", attributes);\r
+if (this._lastHighlightedColumn < line.length) {\r
+\r
+break;\r
+} else\r
+this._lastHighlightedColumn = 0;\r
+}\r
+\r
+this._damageCallback(this._lastHighlightedLine, lineNumber);\r
+this._tokenizerCondition = this._tokenizer.condition;\r
+this._lastHighlightedLine = lineNumber;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TextViewer = function(textModel, platform, url)\r
+{\r
+this._textModel = textModel;\r
+this._textModel.changeListener = this._buildChunks.bind(this);\r
+this._highlighter = new WebInspector.TextEditorHighlighter(this._textModel, this._highlightDataReady.bind(this));\r
+\r
+this.element = document.createElement("div");\r
+this.element.className = "text-editor monospace";\r
+this.element.tabIndex = 0;\r
+\r
+this.element.addEventListener("scroll", this._scroll.bind(this), false);\r
+this.element.addEventListener("keydown", this._handleKeyDown.bind(this), false);\r
+this.element.addEventListener("beforecopy", this._beforeCopy.bind(this), false);\r
+this.element.addEventListener("copy", this._copy.bind(this), false);\r
+this.element.addEventListener("dblclick", this._handleDoubleClick.bind(this), false);\r
+\r
+this._url = url;\r
+\r
+this._linesContainerElement = document.createElement("table");\r
+this._linesContainerElement.className = "text-editor-lines";\r
+this._linesContainerElement.setAttribute("cellspacing", 0);\r
+this._linesContainerElement.setAttribute("cellpadding", 0);\r
+this.element.appendChild(this._linesContainerElement);\r
+\r
+this._defaultChunkSize = 50;\r
+this._paintCoalescingLevel = 0;\r
+\r
+this.freeCachedElements();\r
+this._buildChunks();\r
+}\r
+\r
+WebInspector.TextViewer.prototype = {\r
+set mimeType(mimeType)\r
+{\r
+this._highlighter.mimeType = mimeType;\r
+},\r
+\r
+get textModel()\r
+{\r
+return this._textModel;\r
+},\r
+\r
+revealLine: function(lineNumber)\r
+{\r
+if (lineNumber >= this._textModel.linesCount)\r
+return;\r
+\r
+var chunk = this._makeLineAChunk(lineNumber);\r
+chunk.element.scrollIntoViewIfNeeded();\r
+},\r
+\r
+set editCallback(editCallback)\r
+{\r
+this._editCallback = editCallback;\r
+},\r
+\r
+addDecoration: function(lineNumber, decoration)\r
+{\r
+var chunk = this._makeLineAChunk(lineNumber);\r
+chunk.addDecoration(decoration);\r
+},\r
+\r
+removeDecoration: function(lineNumber, decoration)\r
+{\r
+var chunk = this._makeLineAChunk(lineNumber);\r
+chunk.removeDecoration(decoration);\r
+},\r
+\r
+markAndRevealRange: function(range)\r
+{\r
+if (this._rangeToMark) {\r
+var markedLine = this._rangeToMark.startLine;\r
+this._rangeToMark = null;\r
+this._paintLines(markedLine, markedLine + 1);\r
+}\r
+\r
+if (range) {\r
+this._rangeToMark = range;\r
+this.revealLine(range.startLine);\r
+this._paintLines(range.startLine, range.startLine + 1);\r
+if (this._markedRangeElement)\r
+this._markedRangeElement.scrollIntoViewIfNeeded();\r
+}\r
+delete this._markedRangeElement;\r
+},\r
+\r
+highlightLine: function(lineNumber)\r
+{\r
+this.clearLineHighlight();\r
+this._highlightedLine = lineNumber;\r
+this.revealLine(lineNumber);\r
+var chunk = this._makeLineAChunk(lineNumber);\r
+chunk.addDecoration("webkit-highlighted-line");\r
+},\r
+\r
+clearLineHighlight: function()\r
+{\r
+if (typeof this._highlightedLine === "number") {\r
+var chunk = this._makeLineAChunk(this._highlightedLine);\r
+chunk.removeDecoration("webkit-highlighted-line");\r
+delete this._highlightedLine;\r
+}\r
+},\r
+\r
+freeCachedElements: function()\r
+{\r
+this._cachedSpans = [];\r
+this._cachedTextNodes = [];\r
+this._cachedRows = [];\r
+},\r
+\r
+_buildChunks: function()\r
+{\r
+this._linesContainerElement.removeChildren();\r
+\r
+this._textChunks = [];\r
+for (var i = 0; i < this._textModel.linesCount; i += this._defaultChunkSize) {\r
+var chunk = new WebInspector.TextChunk(this, i, i + this._defaultChunkSize);\r
+this._textChunks.push(chunk);\r
+this._linesContainerElement.appendChild(chunk.element);\r
+}\r
+\r
+this._indexChunks();\r
+this._highlighter.reset();\r
+this._repaintAll();\r
+},\r
+\r
+_makeLineAChunk: function(lineNumber)\r
+{\r
+if (!this._textChunks)\r
+this._buildChunks();\r
+\r
+var chunkNumber = this._chunkNumberForLine(lineNumber);\r
+var oldChunk = this._textChunks[chunkNumber];\r
+if (oldChunk.linesCount === 1)\r
+return oldChunk;\r
+\r
+var wasExpanded = oldChunk.expanded;\r
+oldChunk.expanded = false;\r
+\r
+var insertIndex = oldChunk.chunkNumber + 1;\r
+\r
+\r
+if (lineNumber > oldChunk.startLine) {\r
+var prefixChunk = new WebInspector.TextChunk(this, oldChunk.startLine, lineNumber);\r
+this._textChunks.splice(insertIndex++, 0, prefixChunk);\r
+this._linesContainerElement.insertBefore(prefixChunk.element, oldChunk.element);\r
+}\r
+\r
+\r
+var lineChunk = new WebInspector.TextChunk(this, lineNumber, lineNumber + 1);\r
+this._textChunks.splice(insertIndex++, 0, lineChunk);\r
+this._linesContainerElement.insertBefore(lineChunk.element, oldChunk.element);\r
+\r
+\r
+if (oldChunk.startLine + oldChunk.linesCount > lineNumber + 1) {\r
+var suffixChunk = new WebInspector.TextChunk(this, lineNumber + 1, oldChunk.startLine + oldChunk.linesCount);\r
+this._textChunks.splice(insertIndex, 0, suffixChunk);\r
+this._linesContainerElement.insertBefore(suffixChunk.element, oldChunk.element);\r
+}\r
+\r
+\r
+this._textChunks.splice(oldChunk.chunkNumber, 1);\r
+this._linesContainerElement.removeChild(oldChunk.element);\r
+this._indexChunks();\r
+\r
+if (wasExpanded) {\r
+if (prefixChunk)\r
+prefixChunk.expanded = true;\r
+lineChunk.expanded = true;\r
+if (suffixChunk)\r
+suffixChunk.expanded = true;\r
+}\r
+\r
+return lineChunk;\r
+},\r
+\r
+_indexChunks: function()\r
+{\r
+for (var i = 0; i < this._textChunks.length; ++i)\r
+this._textChunks[i].chunkNumber = i;\r
+},\r
+\r
+_scroll: function()\r
+{\r
+var scrollTop = this.element.scrollTop;\r
+setTimeout(function() {\r
+if (scrollTop === this.element.scrollTop)\r
+this._repaintAll();\r
+}.bind(this), 50);\r
+},\r
+\r
+_handleKeyDown: function()\r
+{\r
+if (this._editingLine || event.metaKey || event.shiftKey || event.ctrlKey || event.altKey)\r
+return;\r
+\r
+var scrollValue = 0;\r
+if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Up.code)\r
+scrollValue = -1;\r
+else if (event.keyCode == WebInspector.KeyboardShortcut.Keys.Down.code)\r
+scrollValue = 1;\r
+\r
+if (scrollValue) {\r
+event.preventDefault();\r
+event.stopPropagation();\r
+this.element.scrollByLines(scrollValue);\r
+return;\r
+}\r
+\r
+scrollValue = 0;\r
+if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Left.code)\r
+scrollValue = -40;\r
+else if (event.keyCode == WebInspector.KeyboardShortcut.Keys.Right.code)\r
+scrollValue = 40;\r
+\r
+if (scrollValue) {\r
+event.preventDefault();\r
+event.stopPropagation();\r
+this.element.scrollLeft += scrollValue;\r
+}\r
+},\r
+\r
+_handleDoubleClick: function(e)\r
+{\r
+if (!this._editCallback)\r
+return;\r
+\r
+var cell = e.target.enclosingNodeOrSelfWithNodeName("TD");\r
+if (!cell)\r
+return;\r
+\r
+var lineRow = cell.parentElement;\r
+if (lineRow.firstChild === cell)\r
+return;  \r
+\r
+var oldContent = lineRow.lastChild.innerHTML;\r
+var cancelEditingCallback = this._cancelEditingLine.bind(this, lineRow.lastChild, oldContent);\r
+var commitEditingCallback = this._commitEditingLine.bind(this, lineRow.lineNumber, lineRow.lastChild, cancelEditingCallback);\r
+this._editingLine = WebInspector.startEditing(lineRow.lastChild, {\r
+context: null,\r
+commitHandler: commitEditingCallback,\r
+cancelHandler: cancelEditingCallback,\r
+multiline: true\r
+});\r
+},\r
+\r
+_commitEditingLine: function(lineNumber, element, cancelEditingCallback)\r
+{\r
+this._editCallback(lineNumber, element.textContent, cancelEditingCallback);\r
+delete this._editingLine;\r
+},\r
+\r
+_cancelEditingLine: function(element, oldContent, e)\r
+{\r
+element.innerHTML = oldContent;\r
+delete this._editingLine;\r
+},\r
+\r
+_beforeCopy: function(e)\r
+{\r
+e.preventDefault();\r
+},\r
+\r
+_copy: function(e)\r
+{\r
+var range = this._getSelection();\r
+var text = this._textModel.copyRange(range);\r
+InspectorFrontendHost.copyText(text);\r
+e.preventDefault();\r
+},\r
+\r
+beginUpdates: function(enabled)\r
+{\r
+this._paintCoalescingLevel++;\r
+},\r
+\r
+endUpdates: function(enabled)\r
+{\r
+this._paintCoalescingLevel--;\r
+if (!this._paintCoalescingLevel)\r
+this._repaintAll();\r
+},\r
+\r
+_chunkForOffset: function(offset)\r
+{\r
+var currentOffset = 0;\r
+var row = this._linesContainerElement.firstChild;\r
+while (row) {\r
+var rowHeight = row.offsetHeight;\r
+if (offset >= currentOffset && offset < currentOffset + rowHeight)\r
+return row.chunkNumber;\r
+row = row.nextSibling;\r
+currentOffset += rowHeight;\r
+}\r
+return this._textChunks.length - 1;\r
+},\r
+\r
+_chunkNumberForLine: function(lineNumber)\r
+{\r
+for (var i = 0; i < this._textChunks.length; ++i) {\r
+var line = this._textChunks[i].startLine;\r
+if (lineNumber >= this._textChunks[i].startLine && lineNumber < this._textChunks[i].startLine + this._textChunks[i].linesCount)\r
+return i;\r
+}\r
+return this._textChunks.length - 1;\r
+},\r
+\r
+_chunkForLine: function(lineNumber)\r
+{\r
+return this._textChunks[this._chunkNumberForLine(lineNumber)];\r
+},\r
+\r
+_chunkStartLine: function(chunkNumber)\r
+{\r
+var lineNumber = 0;\r
+for (var i = 0; i < chunkNumber && i < this._textChunks.length; ++i)\r
+lineNumber += this._textChunks[i].linesCount;\r
+return lineNumber;\r
+},\r
+\r
+_repaintAll: function()\r
+{\r
+if (this._paintCoalescingLevel)\r
+return;\r
+\r
+if (!this._textChunks)\r
+this._buildChunks();\r
+\r
+var visibleFrom = this.element.scrollTop;\r
+var visibleTo = this.element.scrollTop + this.element.clientHeight;\r
+\r
+var offset = 0;\r
+var firstVisibleLine = -1;\r
+var lastVisibleLine = 0;\r
+var toExpand = [];\r
+var toCollapse = [];\r
+for (var i = 0; i < this._textChunks.length; ++i) {\r
+var chunk = this._textChunks[i];\r
+var chunkHeight = chunk.height;\r
+if (offset + chunkHeight > visibleFrom && offset < visibleTo) {\r
+toExpand.push(chunk);\r
+if (firstVisibleLine === -1)\r
+firstVisibleLine = chunk.startLine;\r
+lastVisibleLine = chunk.startLine + chunk.linesCount;\r
+} else {\r
+toCollapse.push(chunk);\r
+if (offset >= visibleTo)\r
+break;\r
+}\r
+offset += chunkHeight;\r
+}\r
+\r
+for (var j = i; j < this._textChunks.length; ++j)\r
+toCollapse.push(this._textChunks[i]);\r
+\r
+var selection = this._getSelection();\r
+\r
+this._muteHighlightListener = true;\r
+this._highlighter.highlight(lastVisibleLine);\r
+delete this._muteHighlightListener;\r
+\r
+for (var i = 0; i < toCollapse.length; ++i)\r
+toCollapse[i].expanded = false;\r
+for (var i = 0; i < toExpand.length; ++i)\r
+toExpand[i].expanded = true;\r
+\r
+this._restoreSelection(selection);\r
+},\r
+\r
+_highlightDataReady: function(fromLine, toLine)\r
+{\r
+if (this._muteHighlightListener)\r
+return;\r
+\r
+var selection;\r
+for (var i = fromLine; i < toLine; ++i) {\r
+var lineRow = this._textModel.getAttribute(i, "line-row");\r
+if (!lineRow || lineRow.highlighted)\r
+continue;\r
+if (!selection)\r
+selection = this._getSelection();\r
+this._paintLine(lineRow, i);\r
+}\r
+this._restoreSelection(selection);\r
+},\r
+\r
+_paintLines: function(fromLine, toLine)\r
+{\r
+for (var i = fromLine; i < toLine; ++i) {\r
+var lineRow = this._textModel.getAttribute(i, "line-row");\r
+if (lineRow)\r
+this._paintLine(lineRow, i);\r
+}\r
+},\r
+\r
+_paintLine: function(lineRow, lineNumber)\r
+{\r
+var element = lineRow.lastChild;\r
+var highlight = this._textModel.getAttribute(lineNumber, "highlight");\r
+if (!highlight) {\r
+if (this._rangeToMark && this._rangeToMark.startLine === lineNumber)\r
+this._markedRangeElement = highlightSearchResult(element, this._rangeToMark.startColumn, this._rangeToMark.endColumn - this._rangeToMark.startColumn);\r
+return;\r
+}\r
+\r
+element.removeChildren();\r
+var line = this._textModel.line(lineNumber);\r
+\r
+var plainTextStart = -1;\r
+for (var j = 0; j < line.length;) {\r
+if (j > 1000) {\r
+\r
+if (plainTextStart === -1)\r
+plainTextStart = j;\r
+break;\r
+}\r
+var attribute = highlight[j];\r
+if (!attribute || !attribute.tokenType) {\r
+if (plainTextStart === -1)\r
+plainTextStart = j;\r
+j++;\r
+} else {\r
+if (plainTextStart !== -1) {\r
+this._appendTextNode(element, line.substring(plainTextStart, j));\r
+plainTextStart = -1;\r
+}\r
+this._appendSpan(element, line.substring(j, j + attribute.length), attribute.tokenType);\r
+j += attribute.length;\r
+}\r
+}\r
+if (plainTextStart !== -1)\r
+this._appendTextNode(element, line.substring(plainTextStart, line.length));\r
+if (this._rangeToMark && this._rangeToMark.startLine === lineNumber)\r
+this._markedRangeElement = highlightSearchResult(element, this._rangeToMark.startColumn, this._rangeToMark.endColumn - this._rangeToMark.startColumn);\r
+if (lineRow.decorationsElement)\r
+element.appendChild(lineRow.decorationsElement);\r
+},\r
+\r
+_releaseLinesHighlight: function(fromLine, toLine)\r
+{\r
+for (var i = fromLine; i < toLine; ++i) {\r
+var lineRow = this._textModel.getAttribute(i, "line-row");\r
+if (!lineRow)\r
+continue;\r
+var element = lineRow.lastChild;\r
+if ("spans" in element) {\r
+var spans = element.spans;\r
+for (var j = 0; j < spans.length; ++j)\r
+this._cachedSpans.push(spans[j]);\r
+delete element.spans;\r
+}\r
+if ("textNodes" in element) {\r
+var textNodes = element.textNodes;\r
+for (var j = 0; j < textNodes.length; ++j)\r
+this._cachedTextNodes.push(textNodes[j]);\r
+delete element.textNodes;\r
+}\r
+}\r
+},\r
+\r
+_getSelection: function()\r
+{\r
+var selection = window.getSelection();\r
+if (selection.isCollapsed)\r
+return null;\r
+var selectionRange = selection.getRangeAt(0);\r
+\r
+if (!this.element.isAncestor(selectionRange.startContainer) || !this.element.isAncestor(selectionRange.endContainer))\r
+return null;\r
+var start = this._selectionToPosition(selectionRange.startContainer, selectionRange.startOffset);\r
+var end = this._selectionToPosition(selectionRange.endContainer, selectionRange.endOffset);\r
+return new WebInspector.TextRange(start.line, start.column, end.line, end.column);\r
+},\r
+\r
+_restoreSelection: function(range)\r
+{\r
+if (!range)\r
+return;\r
+var startRow = this._textModel.getAttribute(range.startLine, "line-row");\r
+if (startRow)\r
+var start = startRow.lastChild.rangeBoundaryForOffset(range.startColumn);\r
+else {\r
+var offset = range.startColumn;\r
+var chunkNumber = this._chunkNumberForLine(range.startLine);\r
+for (var i = this._chunkStartLine(chunkNumber); i < range.startLine; ++i)\r
+offset += this._textModel.line(i).length + 1; \r
+var lineCell = this._textChunks[chunkNumber].element.lastChild;\r
+if (lineCell.firstChild)\r
+var start = { container: lineCell.firstChild, offset: offset };\r
+else\r
+var start = { container: lineCell, offset: 0 };\r
+}\r
+\r
+var endRow = this._textModel.getAttribute(range.endLine, "line-row");\r
+if (endRow)\r
+var end = endRow.lastChild.rangeBoundaryForOffset(range.endColumn);\r
+else {\r
+var offset = range.endColumn;\r
+var chunkNumber = this._chunkNumberForLine(range.endLine);\r
+for (var i = this._chunkStartLine(chunkNumber); i < range.endLine; ++i)\r
+offset += this._textModel.line(i).length + 1; \r
+var lineCell = this._textChunks[chunkNumber].element.lastChild;\r
+if (lineCell.firstChild)\r
+var end = { container: lineCell.firstChild, offset: offset };\r
+else\r
+var end = { container: lineCell, offset: 0 };\r
+}\r
+\r
+var selectionRange = document.createRange();\r
+selectionRange.setStart(start.container, start.offset);\r
+selectionRange.setEnd(end.container, end.offset);\r
+\r
+var selection = window.getSelection();\r
+selection.removeAllRanges();\r
+selection.addRange(selectionRange);\r
+},\r
+\r
+_selectionToPosition: function(container, offset)\r
+{\r
+if (container === this.element && offset === 0)\r
+return { line: 0, column: 0 };\r
+if (container === this.element && offset === 1)\r
+return { line: this._textModel.linesCount - 1, column: this._textModel.lineLength(this._textModel.linesCount - 1) };\r
+\r
+var lineRow = container.enclosingNodeOrSelfWithNodeName("tr");\r
+var lineNumber = lineRow.lineNumber;\r
+if (container.nodeName === "TD" && offset === 0)\r
+return { line: lineNumber, column: 0 };\r
+if (container.nodeName === "TD" && offset === 1)\r
+return { line: lineNumber, column: this._textModel.lineLength(lineNumber) };\r
+\r
+var column = 0;\r
+var node = lineRow.lastChild.traverseNextTextNode(lineRow.lastChild);\r
+while (node && node !== container) {\r
+column += node.textContent.length;\r
+node = node.traverseNextTextNode(lineRow.lastChild);\r
+}\r
+\r
+\r
+if (node === container && offset) {\r
+var text = node.textContent;\r
+for (var i = 0; i < offset; ++i) {\r
+if (text.charAt(i) === "\n") {\r
+lineNumber++;\r
+column = 0;\r
+} else\r
+column++;\r
+}\r
+}\r
+return { line: lineNumber, column: column };\r
+},\r
+\r
+_appendSpan: function(element, content, className)\r
+{\r
+if (className === "html-resource-link" || className === "html-external-link") {\r
+element.appendChild(this._createLink(content, className === "html-external-link"));\r
+return;\r
+}\r
+\r
+var span = this._cachedSpans.pop() || document.createElement("span");\r
+span.className = "webkit-" + className;\r
+span.textContent = content;\r
+element.appendChild(span);\r
+if (!("spans" in element))\r
+element.spans = [];\r
+element.spans.push(span);\r
+},\r
+\r
+_appendTextNode: function(element, text)\r
+{\r
+var textNode = this._cachedTextNodes.pop();\r
+if (textNode) {\r
+textNode.nodeValue = text;\r
+} else\r
+textNode = document.createTextNode(text);\r
+element.appendChild(textNode);\r
+if (!("textNodes" in element))\r
+element.textNodes = [];\r
+element.textNodes.push(textNode);\r
+},\r
+\r
+_createLink: function(content, isExternal)\r
+{\r
+var quote = content.charAt(0);\r
+if (content.length > 1 && (quote === "\"" ||   quote === "'"))\r
+content = content.substring(1, content.length - 1);\r
+else\r
+quote = null;\r
+\r
+var a = WebInspector.linkifyURLAsNode(this._rewriteHref(content), content, null, isExternal);\r
+var span = document.createElement("span");\r
+span.className = "webkit-html-attribute-value";\r
+if (quote)\r
+span.appendChild(document.createTextNode(quote));\r
+span.appendChild(a);\r
+if (quote)\r
+span.appendChild(document.createTextNode(quote));\r
+return span;\r
+},\r
+\r
+_rewriteHref: function(hrefValue, isExternal)\r
+{\r
+if (!this._url || !hrefValue || hrefValue.indexOf("://") > 0)\r
+return hrefValue;\r
+return WebInspector.completeURL(this._url, hrefValue);\r
+},\r
+\r
+resize: function()\r
+{\r
+this._repaintAll();\r
+}\r
+}\r
+\r
+var cachedSpans = [];\r
+\r
+WebInspector.TextChunk = function(textViewer, startLine, endLine)\r
+{\r
+this._textViewer = textViewer;\r
+this.element = document.createElement("tr");\r
+this._textModel = textViewer._textModel;\r
+this.element.chunk = this;\r
+this.element.lineNumber = startLine;\r
+\r
+this.startLine = startLine;\r
+endLine = Math.min(this._textModel.linesCount, endLine);\r
+this.linesCount = endLine - startLine;\r
+\r
+this._lineNumberElement = document.createElement("td");\r
+this._lineNumberElement.className = "webkit-line-number";\r
+this.element.appendChild(this._lineNumberElement);\r
+\r
+this._lineContentElement = document.createElement("td");\r
+this._lineContentElement.className = "webkit-line-content";\r
+this.element.appendChild(this._lineContentElement);\r
+\r
+this._expanded = false;\r
+\r
+var lineNumbers = [];\r
+var lines = [];\r
+for (var i = startLine; i < endLine; ++i) {\r
+lineNumbers.push(i + 1);\r
+lines.push(this._textModel.line(i));\r
+}\r
+if (this.linesCount === 1) {\r
+\r
+\r
+var innerSpan = document.createElement("span");\r
+innerSpan.className = "webkit-line-number-inner";\r
+innerSpan.textContent = startLine + 1;\r
+var outerSpan = document.createElement("div");\r
+outerSpan.className = "webkit-line-number-outer";\r
+outerSpan.appendChild(innerSpan);\r
+this._lineNumberElement.appendChild(outerSpan);\r
+} else\r
+this._lineNumberElement.textContent = lineNumbers.join("\n");\r
+this._lineContentElement.textContent = lines.join("\n");\r
+}\r
+\r
+WebInspector.TextChunk.prototype = {\r
+addDecoration: function(decoration)\r
+{\r
+if (typeof decoration === "string") {\r
+this.element.addStyleClass(decoration);\r
+return;\r
+}\r
+if (!this.element.decorationsElement) {\r
+this.element.decorationsElement = document.createElement("div");\r
+this._lineContentElement.appendChild(this.element.decorationsElement);\r
+}\r
+this.element.decorationsElement.appendChild(decoration);\r
+},\r
+\r
+removeDecoration: function(decoration)\r
+{\r
+if (typeof decoration === "string") {\r
+this.element.removeStyleClass(decoration);\r
+return;\r
+}\r
+if (!this.element.decorationsElement)\r
+return;\r
+this.element.decorationsElement.removeChild(decoration);\r
+},\r
+\r
+get expanded()\r
+{\r
+return this._expanded;\r
+},\r
+\r
+set expanded(expanded)\r
+{\r
+if (this._expanded === expanded)\r
+return;\r
+\r
+this._expanded = expanded;\r
+\r
+if (this.linesCount === 1) {\r
+this._textModel.setAttribute(this.startLine, "line-row", this.element);\r
+if (expanded)\r
+this._textViewer._paintLines(this.startLine, this.startLine + 1);\r
+return;\r
+}\r
+\r
+if (expanded) {\r
+var parentElement = this.element.parentElement;\r
+for (var i = this.startLine; i < this.startLine + this.linesCount; ++i) {\r
+var lineRow = this._createRow(i);\r
+this._textModel.setAttribute(i, "line-row", lineRow);\r
+parentElement.insertBefore(lineRow, this.element);\r
+}\r
+parentElement.removeChild(this.element);\r
+\r
+this._textViewer._paintLines(this.startLine, this.startLine + this.linesCount);\r
+} else {\r
+var firstLine = this._textModel.getAttribute(this.startLine, "line-row");\r
+var parentElement = firstLine.parentElement;\r
+this._textViewer._releaseLinesHighlight(this.startLine, this.startLine + this.linesCount);\r
+\r
+parentElement.insertBefore(this.element, firstLine);\r
+for (var i = this.startLine; i < this.startLine + this.linesCount; ++i) {\r
+var lineRow = this._textModel.getAttribute(i, "line-row");\r
+this._textModel.removeAttribute(i, "line-row");\r
+this._textViewer._cachedRows.push(lineRow);\r
+parentElement.removeChild(lineRow);\r
+}\r
+}\r
+},\r
+\r
+get height()\r
+{\r
+if (!this._expanded)\r
+return this.element.offsetHeight;\r
+var result = 0;\r
+for (var i = this.startLine; i < this.startLine + this.linesCount; ++i) {\r
+var lineRow = this._textModel.getAttribute(i, "line-row");\r
+result += lineRow.offsetHeight;\r
+}\r
+return result;\r
+},\r
+\r
+_createRow: function(lineNumber)\r
+{\r
+var cachedRows = this._textViewer._cachedRows;\r
+if (cachedRows.length) {\r
+var lineRow = cachedRows[cachedRows.length - 1];\r
+cachedRows.length--;\r
+var lineNumberElement = lineRow.firstChild;\r
+var lineContentElement = lineRow.lastChild;\r
+} else {\r
+var lineRow = document.createElement("tr");\r
+\r
+var lineNumberElement = document.createElement("td");\r
+lineNumberElement.className = "webkit-line-number";\r
+lineRow.appendChild(lineNumberElement);\r
+\r
+var lineContentElement = document.createElement("td");\r
+lineContentElement.className = "webkit-line-content";\r
+lineRow.appendChild(lineContentElement);        \r
+}\r
+lineRow.lineNumber = lineNumber;\r
+lineNumberElement.textContent = lineNumber + 1;\r
+lineContentElement.textContent = this._textModel.line(lineNumber);\r
+return lineRow;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceTokenizer = function()\r
+{\r
+}\r
+\r
+WebInspector.SourceTokenizer.prototype = {\r
+set line(line) {\r
+this._line = line;\r
+},\r
+\r
+set condition(condition)\r
+{\r
+this._condition = condition;\r
+},\r
+\r
+get condition()\r
+{\r
+return this._condition;\r
+},\r
+\r
+get subTokenizer()\r
+{\r
+return this._condition.subTokenizer;\r
+},\r
+\r
+getLexCondition: function()\r
+{\r
+return this.condition.lexCondition;\r
+},\r
+\r
+setLexCondition: function(lexCondition)\r
+{\r
+this.condition.lexCondition = lexCondition;\r
+},\r
+\r
+_charAt: function(cursor)\r
+{\r
+return cursor < this._line.length ? this._line.charAt(cursor) : "\n";\r
+}\r
+}\r
+\r
+\r
+WebInspector.SourceTokenizer.Registry = function() {\r
+this._tokenizers = {};\r
+this._tokenizerConstructors = {\r
+"text/css": "SourceCSSTokenizer",\r
+"text/html": "SourceHTMLTokenizer",\r
+"text/javascript": "SourceJavaScriptTokenizer"\r
+};\r
+}\r
+\r
+WebInspector.SourceTokenizer.Registry.getInstance = function()\r
+{\r
+if (!WebInspector.SourceTokenizer.Registry._instance)\r
+WebInspector.SourceTokenizer.Registry._instance = new WebInspector.SourceTokenizer.Registry();\r
+return WebInspector.SourceTokenizer.Registry._instance;\r
+}\r
+\r
+WebInspector.SourceTokenizer.Registry.prototype = {\r
+getTokenizer: function(mimeType)\r
+{\r
+if (!this._tokenizerConstructors[mimeType])\r
+return null;\r
+var tokenizerClass = this._tokenizerConstructors[mimeType];\r
+var tokenizer = this._tokenizers[tokenizerClass];\r
+if (!tokenizer) {\r
+tokenizer = new WebInspector[tokenizerClass]();\r
+this._tokenizers[mimeType] = tokenizer;\r
+}\r
+return tokenizer;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceCSSTokenizer = function()\r
+{\r
+WebInspector.SourceTokenizer.call(this);\r
+\r
+this._propertyKeywords = WebInspector.cssNameCompletions.keySet();\r
+\r
+this._valueKeywords = [\r
+"above", "absolute", "activeborder", "activecaption", "afar", "after-white-space", "ahead", "alias", "all", "all-scroll",\r
+"alternate", "always","amharic", "amharic-abegede", "antialiased", "appworkspace", "aqua", "arabic-indic", "armenian", "asterisks",\r
+"auto", "avoid", "background", "backwards", "baseline", "below", "bidi-override", "binary", "bengali", "black", "blink",\r
+"block", "block-axis", "blue", "bold", "bolder", "border", "border-box", "both", "bottom", "break-all", "break-word", "button",\r
+"button-bevel", "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", "capitalize", "caps-lock-indicator",\r
+"caption", "captiontext", "caret", "cell", "center", "checkbox", "circle", "cjk-earthly-branch", "cjk-heavenly-stem", "cjk-ideographic",\r
+"clear", "clip", "close-quote", "col-resize", "collapse", "compact", "condensed", "contain", "content", "content-box", "context-menu",\r
+"continuous", "copy", "cover", "crop", "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", "decimal-leading-zero", "default",\r
+"default-button", "destination-atop", "destination-in", "destination-out", "destination-over", "devanagari", "disc", "discard", "document",\r
+"dot-dash", "dot-dot-dash", "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", "element",\r
+"ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", "ethiopic-abegede-am-et", "ethiopic-abegede-gez",\r
+"ethiopic-abegede-ti-er", "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", "ethiopic-halehame-aa-et",\r
+"ethiopic-halehame-am-et", "ethiopic-halehame-gez", "ethiopic-halehame-om-et", "ethiopic-halehame-sid-et",\r
+"ethiopic-halehame-so-et", "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig", "ew-resize", "expanded",\r
+"extra-condensed", "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "footnotes", "forwards", "from", "fuchsia", "geometricPrecision",\r
+"georgian", "gray", "graytext", "green", "grey", "groove", "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", "help",\r
+"hidden", "hide", "higher", "highlight", "highlighttext", "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore",\r
+"inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", "infobackground", "infotext", "inherit", "initial", "inline",\r
+"inline-axis", "inline-block", "inline-table", "inset", "inside", "intrinsic", "invert", "italic", "justify", "kannada", "katakana",\r
+"katakana-iroha", "khmer", "landscape", "lao", "large", "larger", "left", "level", "lighter", "lime", "line-through", "linear", "lines",\r
+"list-button", "list-item", "listbox", "listitem", "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", "lower-greek",\r
+"lower-hexadecimal", "lower-latin", "lower-norwegian", "lower-roman", "lowercase", "ltr", "malayalam", "maroon", "match", "media-controls-background",\r
+"media-current-time-display", "media-fullscreen-button", "media-mute-button", "media-play-button", "media-return-to-realtime-button",\r
+"media-rewind-button", "media-seek-back-button", "media-seek-forward-button", "media-slider", "media-sliderthumb", "media-time-remaining-display",\r
+"media-volume-slider", "media-volume-slider-container", "media-volume-sliderthumb", "medium", "menu", "menulist", "menulist-button",\r
+"menulist-text", "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", "mix", "mongolian", "monospace", "move", "multiple",\r
+"myanmar", "n-resize", "narrower", "navy", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", "no-open-quote", "no-repeat", "none",\r
+"normal", "not-allowed", "nowrap", "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "olive", "open-quote", "optimizeLegibility",\r
+"optimizeSpeed", "orange", "oriya", "oromo", "outset", "outside", "overlay", "overline", "padding", "padding-box", "painted", "paused",\r
+"persian", "plus-darker", "plus-lighter", "pointer", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "purple",\r
+"push-button", "radio", "read-only", "read-write", "read-write-plaintext-only", "red", "relative", "repeat", "repeat-x",\r
+"repeat-y", "reset", "reverse", "rgb", "rgba", "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", "s-resize", "sans-serif",\r
+"scroll", "scrollbar", "se-resize", "searchfield", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button",\r
+"searchfield-results-decoration", "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", "silver", "single",\r
+"skip-white-space", "slide", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow",\r
+"small", "small-caps", "small-caption", "smaller", "solid", "somali", "source-atop", "source-in", "source-out", "source-over",\r
+"space", "square", "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub", "subpixel-antialiased", "super",\r
+"sw-resize", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group",\r
+"table-row", "table-row-group", "teal", "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", "thick", "thin",\r
+"threeddarkshadow", "threedface", "threedhighlight", "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", "tigrinya-er-abegede",\r
+"tigrinya-et", "tigrinya-et-abegede", "to", "top", "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", "upper-alpha", "upper-armenian",\r
+"upper-greek", "upper-hexadecimal", "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", "vertical", "vertical-text", "visible",\r
+"visibleFill", "visiblePainted", "visibleStroke", "visual", "w-resize", "wait", "wave", "white", "wider", "window", "windowframe", "windowtext",\r
+"x-large", "x-small", "xor", "xx-large", "xx-small", "yellow", "-wap-marquee", "-webkit-activelink", "-webkit-auto", "-webkit-baseline-middle",\r
+"-webkit-body", "-webkit-box", "-webkit-center", "-webkit-control", "-webkit-focus-ring-color", "-webkit-grab", "-webkit-grabbing",\r
+"-webkit-gradient", "-webkit-inline-box", "-webkit-left", "-webkit-link", "-webkit-marquee", "-webkit-mini-control", "-webkit-nowrap", "-webkit-right",\r
+"-webkit-small-control", "-webkit-text", "-webkit-xxx-large", "-webkit-zoom-in", "-webkit-zoom-out",\r
+].keySet();\r
+\r
+this._mediaTypes = ["all", "aural", "braille", "embossed", "handheld", "import", "print", "projection", "screen", "tty", "tv"].keySet();\r
+\r
+this._lexConditions = {\r
+INITIAL: 0,\r
+COMMENT: 1,\r
+DSTRING: 2,\r
+SSTRING: 3\r
+};\r
+\r
+this._parseConditions = {\r
+INITIAL: 0,\r
+PROPERTY: 1,\r
+PROPERTY_VALUE: 2,\r
+AT_RULE: 3\r
+};\r
+\r
+this.case_INITIAL = 1000;\r
+this.case_COMMENT = 1002;\r
+this.case_DSTRING = 1003;\r
+this.case_SSTRING = 1004;\r
+\r
+this.initialCondition = { lexCondition: this._lexConditions.INITIAL, parseCondition: this._parseConditions.INITIAL }\r
+}\r
+\r
+WebInspector.SourceCSSTokenizer.prototype = {\r
+_stringToken: function(cursor, stringEnds)\r
+{\r
+if (this._isPropertyValue())\r
+this.tokenType = "css-string";\r
+else\r
+this.tokenType = null;\r
+return cursor;\r
+},\r
+\r
+_isPropertyValue: function()\r
+{\r
+return this._condition.parseCondition === this._parseConditions.PROPERTY_VALUE || this._condition.parseCondition === this._parseConditions.AT_RULE;\r
+},\r
+\r
+nextToken: function(cursor)\r
+{\r
+var cursorOnEnter = cursor;\r
+var gotoCase = 1;\r
+while (1) {\r
+switch (gotoCase)\r
+\r
+\r
+{\r
+case 1: var yych;\r
+var yyaccept = 0;\r
+if (this.getLexCondition() < 2) {\r
+if (this.getLexCondition() < 1) {\r
+{ gotoCase = this.case_INITIAL; continue; };\r
+} else {\r
+{ gotoCase = this.case_COMMENT; continue; };\r
+}\r
+} else {\r
+if (this.getLexCondition() < 3) {\r
+{ gotoCase = this.case_DSTRING; continue; };\r
+} else {\r
+{ gotoCase = this.case_SSTRING; continue; };\r
+}\r
+}\r
+\r
+case this.case_COMMENT:\r
+\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 4; continue; };\r
+{ gotoCase = 3; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 4; continue; };\r
+if (yych == '*') { gotoCase = 6; continue; };\r
+{ gotoCase = 3; continue; };\r
+}\r
+case 2:\r
+{ this.tokenType = "css-comment"; return cursor; }\r
+case 3:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 12; continue; };\r
+case 4:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 6:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+if (yych != '/') { gotoCase = 11; continue; };\r
+case 7:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{ this.tokenType = "css-comment"; return cursor; }\r
+case 9:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+if (yych == '/') { gotoCase = 7; continue; };\r
+case 11:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 12:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 2; continue; };\r
+{ gotoCase = 11; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 2; continue; };\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+{ gotoCase = 11; continue; };\r
+}\r
+\r
+case this.case_DSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 17; continue; };\r
+if (yych <= '\f') { gotoCase = 16; continue; };\r
+{ gotoCase = 17; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 16; continue; };\r
+{ gotoCase = 19; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 21; continue; };\r
+{ gotoCase = 16; continue; };\r
+}\r
+}\r
+case 15:\r
+{ return this._stringToken(cursor); }\r
+case 16:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 23; continue; };\r
+case 17:\r
+++cursor;\r
+case 18:\r
+{ this.tokenType = null; return cursor; }\r
+case 19:\r
+++cursor;\r
+case 20:\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{ return this._stringToken(cursor, true); }\r
+case 21:\r
+yych = this._charAt(++cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 22; continue; };\r
+if (yych <= '&') { gotoCase = 18; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 18; continue; };\r
+} else {\r
+if (yych != 'b') { gotoCase = 18; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych >= 'g') { gotoCase = 18; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 22; continue; };\r
+if (yych <= 'q') { gotoCase = 18; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 18; continue; };\r
+} else {\r
+if (yych != 'v') { gotoCase = 18; continue; };\r
+}\r
+}\r
+}\r
+case 22:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 23:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 15; continue; };\r
+if (yych <= '\f') { gotoCase = 22; continue; };\r
+{ gotoCase = 15; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 22; continue; };\r
+{ gotoCase = 26; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 22; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 22; continue; };\r
+if (yych >= '\'') { gotoCase = 22; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych >= '\\') { gotoCase = 22; continue; };\r
+} else {\r
+if (yych == 'b') { gotoCase = 22; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych <= 'f') { gotoCase = 22; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 22; continue; };\r
+if (yych >= 'r') { gotoCase = 22; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych >= 't') { gotoCase = 22; continue; };\r
+} else {\r
+if (yych == 'v') { gotoCase = 22; continue; };\r
+}\r
+}\r
+}\r
+cursor = YYMARKER;\r
+{ gotoCase = 15; continue; };\r
+case 26:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 20; continue; };\r
+\r
+case this.case_INITIAL:\r
+yych = this._charAt(cursor);\r
+if (yych <= ';') {\r
+if (yych <= '\'') {\r
+if (yych <= '"') {\r
+if (yych <= ' ') { gotoCase = 29; continue; };\r
+if (yych <= '!') { gotoCase = 31; continue; };\r
+{ gotoCase = 33; continue; };\r
+} else {\r
+if (yych == '$') { gotoCase = 31; continue; };\r
+if (yych >= '\'') { gotoCase = 34; continue; };\r
+}\r
+} else {\r
+if (yych <= '.') {\r
+if (yych <= ',') { gotoCase = 29; continue; };\r
+if (yych <= '-') { gotoCase = 35; continue; };\r
+{ gotoCase = 36; continue; };\r
+} else {\r
+if (yych <= '/') { gotoCase = 37; continue; };\r
+if (yych <= '9') { gotoCase = 38; continue; };\r
+if (yych <= ':') { gotoCase = 40; continue; };\r
+{ gotoCase = 42; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '^') {\r
+if (yych <= '?') {\r
+if (yych == '=') { gotoCase = 31; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 29; continue; };\r
+if (yych <= ']') { gotoCase = 31; continue; };\r
+}\r
+} else {\r
+if (yych <= 'z') {\r
+if (yych != '`') { gotoCase = 31; continue; };\r
+} else {\r
+if (yych <= '{') { gotoCase = 44; continue; };\r
+if (yych == '}') { gotoCase = 46; continue; };\r
+}\r
+}\r
+}\r
+case 29:\r
+++cursor;\r
+case 30:\r
+{ this.tokenType = null; return cursor; }\r
+case 31:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 49; continue; };\r
+case 32:\r
+{\r
+var token = this._line.substring(cursorOnEnter, cursor);\r
+if (this._condition.parseCondition === this._parseConditions.INITIAL) {\r
+if (token === "@import" || token === "@media") {\r
+this.tokenType = "css-at-rule";\r
+this._condition.parseCondition = this._parseConditions.AT_RULE;\r
+} else if (token.indexOf("@") === 0)\r
+this.tokenType = "css-at-rule";\r
+else\r
+this.tokenType = "css-selector";\r
+}\r
+else if (this._condition.parseCondition === this._parseConditions.AT_RULE && token in this._mediaTypes)\r
+this.tokenType = "css-keyword";\r
+else if (this._condition.parseCondition === this._parseConditions.PROPERTY && token in this._propertyKeywords)\r
+this.tokenType = "css-property";\r
+else if (this._isPropertyValue() && token in this._valueKeywords)\r
+this.tokenType = "css-keyword";\r
+else if (token === "!important")\r
+this.tokenType = "css-important";\r
+else\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+case 33:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '-') {\r
+if (yych <= '!') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 32; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 32; continue; };\r
+if (yych <= ' ') { gotoCase = 124; continue; };\r
+{ gotoCase = 122; continue; };\r
+}\r
+} else {\r
+if (yych <= '$') {\r
+if (yych <= '"') { gotoCase = 114; continue; };\r
+if (yych <= '#') { gotoCase = 124; continue; };\r
+{ gotoCase = 122; continue; };\r
+} else {\r
+if (yych == '\'') { gotoCase = 122; continue; };\r
+if (yych <= ',') { gotoCase = 124; continue; };\r
+{ gotoCase = 122; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '<') {\r
+if (yych <= '.') { gotoCase = 124; continue; };\r
+if (yych <= '9') { gotoCase = 122; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych <= '=') { gotoCase = 122; continue; };\r
+if (yych <= '?') { gotoCase = 124; continue; };\r
+{ gotoCase = 122; continue; };\r
+}\r
+} else {\r
+if (yych <= '^') {\r
+if (yych <= '\\') { gotoCase = 126; continue; };\r
+if (yych <= ']') { gotoCase = 122; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych == '`') { gotoCase = 124; continue; };\r
+if (yych <= 'z') { gotoCase = 122; continue; };\r
+{ gotoCase = 124; continue; };\r
+}\r
+}\r
+}\r
+case 34:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '-') {\r
+if (yych <= '"') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 32; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 32; continue; };\r
+if (yych <= ' ') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+} else {\r
+if (yych <= '&') {\r
+if (yych == '$') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '\'') { gotoCase = 114; continue; };\r
+if (yych <= ',') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '<') {\r
+if (yych <= '.') { gotoCase = 116; continue; };\r
+if (yych <= '9') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '=') { gotoCase = 112; continue; };\r
+if (yych <= '?') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+} else {\r
+if (yych <= '^') {\r
+if (yych <= '\\') { gotoCase = 118; continue; };\r
+if (yych <= ']') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych == '`') { gotoCase = 116; continue; };\r
+if (yych <= 'z') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+}\r
+}\r
+}\r
+case 35:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '.') { gotoCase = 65; continue; };\r
+if (yych <= '/') { gotoCase = 49; continue; };\r
+if (yych <= '9') { gotoCase = 50; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 36:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 30; continue; };\r
+if (yych <= '9') { gotoCase = 68; continue; };\r
+{ gotoCase = 30; continue; };\r
+case 37:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '*') { gotoCase = 104; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 38:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+switch (yych) {\r
+case '!':\r
+case '"':\r
+case '$':\r
+case '\'':\r
+case '-':\r
+case '/':\r
+case '=':\r
+case '@':\r
+case 'A':\r
+case 'B':\r
+case 'C':\r
+case 'D':\r
+case 'E':\r
+case 'F':\r
+case 'G':\r
+case 'I':\r
+case 'J':\r
+case 'K':\r
+case 'L':\r
+case 'M':\r
+case 'N':\r
+case 'O':\r
+case 'P':\r
+case 'Q':\r
+case 'R':\r
+case 'S':\r
+case 'T':\r
+case 'U':\r
+case 'V':\r
+case 'W':\r
+case 'X':\r
+case 'Y':\r
+case 'Z':\r
+case '[':\r
+case ']':\r
+case 'a':\r
+case 'b':\r
+case 'f':\r
+case 'h':\r
+case 'j':\r
+case 'l':\r
+case 'n':\r
+case 'o':\r
+case 'q':\r
+case 'u':\r
+case 'v':\r
+case 'w':\r
+case 'x':\r
+case 'y':\r
+case 'z':    { gotoCase = 48; continue; };\r
+case '%':    { gotoCase = 67; continue; };\r
+case '.':    { gotoCase = 65; continue; };\r
+case '0':\r
+case '1':\r
+case '2':\r
+case '3':\r
+case '4':\r
+case '5':\r
+case '6':\r
+case '7':\r
+case '8':\r
+case '9':    { gotoCase = 50; continue; };\r
+case 'H':    { gotoCase = 52; continue; };\r
+case '_':    { gotoCase = 53; continue; };\r
+case 'c':    { gotoCase = 54; continue; };\r
+case 'd':    { gotoCase = 55; continue; };\r
+case 'e':    { gotoCase = 56; continue; };\r
+case 'g':    { gotoCase = 57; continue; };\r
+case 'i':    { gotoCase = 58; continue; };\r
+case 'k':    { gotoCase = 59; continue; };\r
+case 'm':    { gotoCase = 60; continue; };\r
+case 'p':    { gotoCase = 61; continue; };\r
+case 'r':    { gotoCase = 62; continue; };\r
+case 's':    { gotoCase = 63; continue; };\r
+case 't':    { gotoCase = 64; continue; };\r
+default:    { gotoCase = 39; continue; };\r
+}\r
+case 39:\r
+{\r
+if (this._isPropertyValue())\r
+this.tokenType = "css-number";\r
+else\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+case 40:\r
+++cursor;\r
+{\r
+this.tokenType = null;\r
+if (this._condition.parseCondition === this._parseConditions.PROPERTY)\r
+this._condition.parseCondition = this._parseConditions.PROPERTY_VALUE;\r
+return cursor;\r
+}\r
+case 42:\r
+++cursor;\r
+{\r
+this.tokenType = null;\r
+if (this._condition.parseCondition === this._parseConditions.AT_RULE)\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+else\r
+this._condition.parseCondition = this._parseConditions.PROPERTY;\r
+return cursor;\r
+}\r
+case 44:\r
+++cursor;\r
+{\r
+this.tokenType = null;\r
+if (this._condition.parseCondition === this._parseConditions.AT_RULE)\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+else\r
+this._condition.parseCondition = this._parseConditions.PROPERTY;\r
+return cursor;\r
+}\r
+case 46:\r
+++cursor;\r
+{\r
+this.tokenType = null;\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+return cursor;\r
+}\r
+case 48:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 49:\r
+if (yych <= '9') {\r
+if (yych <= '&') {\r
+if (yych <= '"') {\r
+if (yych <= ' ') { gotoCase = 32; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych == '$') { gotoCase = 48; continue; };\r
+{ gotoCase = 32; continue; };\r
+}\r
+} else {\r
+if (yych <= ',') {\r
+if (yych <= '\'') { gotoCase = 48; continue; };\r
+{ gotoCase = 32; continue; };\r
+} else {\r
+if (yych == '.') { gotoCase = 32; continue; };\r
+{ gotoCase = 48; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '=') {\r
+if (yych <= '<') { gotoCase = 32; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '?') { gotoCase = 32; continue; };\r
+if (yych <= '[') { gotoCase = 48; continue; };\r
+{ gotoCase = 32; continue; };\r
+}\r
+} else {\r
+if (yych <= '_') {\r
+if (yych == '^') { gotoCase = 32; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '`') { gotoCase = 32; continue; };\r
+if (yych <= 'z') { gotoCase = 48; continue; };\r
+{ gotoCase = 32; continue; };\r
+}\r
+}\r
+}\r
+case 50:\r
+yyaccept = 1;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+switch (yych) {\r
+case '!':\r
+case '"':\r
+case '$':\r
+case '\'':\r
+case '-':\r
+case '/':\r
+case '=':\r
+case '@':\r
+case 'A':\r
+case 'B':\r
+case 'C':\r
+case 'D':\r
+case 'E':\r
+case 'F':\r
+case 'G':\r
+case 'I':\r
+case 'J':\r
+case 'K':\r
+case 'L':\r
+case 'M':\r
+case 'N':\r
+case 'O':\r
+case 'P':\r
+case 'Q':\r
+case 'R':\r
+case 'S':\r
+case 'T':\r
+case 'U':\r
+case 'V':\r
+case 'W':\r
+case 'X':\r
+case 'Y':\r
+case 'Z':\r
+case '[':\r
+case ']':\r
+case 'a':\r
+case 'b':\r
+case 'f':\r
+case 'h':\r
+case 'j':\r
+case 'l':\r
+case 'n':\r
+case 'o':\r
+case 'q':\r
+case 'u':\r
+case 'v':\r
+case 'w':\r
+case 'x':\r
+case 'y':\r
+case 'z':    { gotoCase = 48; continue; };\r
+case '%':    { gotoCase = 67; continue; };\r
+case '.':    { gotoCase = 65; continue; };\r
+case '0':\r
+case '1':\r
+case '2':\r
+case '3':\r
+case '4':\r
+case '5':\r
+case '6':\r
+case '7':\r
+case '8':\r
+case '9':    { gotoCase = 50; continue; };\r
+case 'H':    { gotoCase = 52; continue; };\r
+case '_':    { gotoCase = 53; continue; };\r
+case 'c':    { gotoCase = 54; continue; };\r
+case 'd':    { gotoCase = 55; continue; };\r
+case 'e':    { gotoCase = 56; continue; };\r
+case 'g':    { gotoCase = 57; continue; };\r
+case 'i':    { gotoCase = 58; continue; };\r
+case 'k':    { gotoCase = 59; continue; };\r
+case 'm':    { gotoCase = 60; continue; };\r
+case 'p':    { gotoCase = 61; continue; };\r
+case 'r':    { gotoCase = 62; continue; };\r
+case 's':    { gotoCase = 63; continue; };\r
+case 't':    { gotoCase = 64; continue; };\r
+default:    { gotoCase = 39; continue; };\r
+}\r
+case 52:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'z') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 53:\r
+yych = this._charAt(++cursor);\r
+if (yych == '_') { gotoCase = 101; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 54:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 55:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'e') { gotoCase = 100; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 56:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 63; continue; };\r
+if (yych == 'x') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 57:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'r') { gotoCase = 98; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 58:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'n') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 59:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'H') { gotoCase = 97; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 60:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 63; continue; };\r
+if (yych == 's') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 61:\r
+yych = this._charAt(++cursor);\r
+if (yych <= 's') {\r
+if (yych == 'c') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+} else {\r
+if (yych <= 't') { gotoCase = 63; continue; };\r
+if (yych == 'x') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+}\r
+case 62:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'a') { gotoCase = 95; continue; };\r
+if (yych == 'e') { gotoCase = 96; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 63:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '9') {\r
+if (yych <= '&') {\r
+if (yych <= '"') {\r
+if (yych <= ' ') { gotoCase = 39; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych == '$') { gotoCase = 48; continue; };\r
+{ gotoCase = 39; continue; };\r
+}\r
+} else {\r
+if (yych <= ',') {\r
+if (yych <= '\'') { gotoCase = 48; continue; };\r
+{ gotoCase = 39; continue; };\r
+} else {\r
+if (yych == '.') { gotoCase = 39; continue; };\r
+{ gotoCase = 48; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '=') {\r
+if (yych <= '<') { gotoCase = 39; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '?') { gotoCase = 39; continue; };\r
+if (yych <= '[') { gotoCase = 48; continue; };\r
+{ gotoCase = 39; continue; };\r
+}\r
+} else {\r
+if (yych <= '_') {\r
+if (yych == '^') { gotoCase = 39; continue; };\r
+{ gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '`') { gotoCase = 39; continue; };\r
+if (yych <= 'z') { gotoCase = 48; continue; };\r
+{ gotoCase = 39; continue; };\r
+}\r
+}\r
+}\r
+case 64:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'u') { gotoCase = 93; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 65:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 66; continue; };\r
+if (yych <= '9') { gotoCase = 68; continue; };\r
+case 66:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 32; continue; };\r
+} else {\r
+{ gotoCase = 39; continue; };\r
+}\r
+case 67:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 39; continue; };\r
+case 68:\r
+yyaccept = 1;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'f') {\r
+if (yych <= 'H') {\r
+if (yych <= '/') {\r
+if (yych == '%') { gotoCase = 67; continue; };\r
+{ gotoCase = 39; continue; };\r
+} else {\r
+if (yych <= '9') { gotoCase = 68; continue; };\r
+if (yych <= 'G') { gotoCase = 39; continue; };\r
+{ gotoCase = 80; continue; };\r
+}\r
+} else {\r
+if (yych <= 'b') {\r
+if (yych == '_') { gotoCase = 72; continue; };\r
+{ gotoCase = 39; continue; };\r
+} else {\r
+if (yych <= 'c') { gotoCase = 74; continue; };\r
+if (yych <= 'd') { gotoCase = 77; continue; };\r
+if (yych >= 'f') { gotoCase = 39; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'm') {\r
+if (yych <= 'i') {\r
+if (yych <= 'g') { gotoCase = 78; continue; };\r
+if (yych <= 'h') { gotoCase = 39; continue; };\r
+{ gotoCase = 76; continue; };\r
+} else {\r
+if (yych == 'k') { gotoCase = 81; continue; };\r
+if (yych <= 'l') { gotoCase = 39; continue; };\r
+{ gotoCase = 75; continue; };\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych == 'p') { gotoCase = 73; continue; };\r
+{ gotoCase = 39; continue; };\r
+} else {\r
+if (yych <= 'r') { gotoCase = 71; continue; };\r
+if (yych <= 's') { gotoCase = 67; continue; };\r
+if (yych <= 't') { gotoCase = 79; continue; };\r
+{ gotoCase = 39; continue; };\r
+}\r
+}\r
+}\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 67; continue; };\r
+if (yych == 'x') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 71:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'a') { gotoCase = 91; continue; };\r
+if (yych == 'e') { gotoCase = 92; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 72:\r
+yych = this._charAt(++cursor);\r
+if (yych == '_') { gotoCase = 88; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 73:\r
+yych = this._charAt(++cursor);\r
+if (yych <= 's') {\r
+if (yych == 'c') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+} else {\r
+if (yych <= 't') { gotoCase = 67; continue; };\r
+if (yych == 'x') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+case 74:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 75:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 67; continue; };\r
+if (yych == 's') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 76:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'n') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 77:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'e') { gotoCase = 87; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 78:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'r') { gotoCase = 85; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 79:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'u') { gotoCase = 83; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 80:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'z') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 81:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'H') { gotoCase = 66; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'z') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 83:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'r') { gotoCase = 66; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'n') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 85:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'a') { gotoCase = 66; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'd') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 87:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'g') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 88:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'q') { gotoCase = 66; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych != 'e') { gotoCase = 66; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 91:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'd') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 92:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 67; continue; };\r
+{ gotoCase = 66; continue; };\r
+case 93:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'r') { gotoCase = 49; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'n') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 95:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'd') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 96:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 97:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'z') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 98:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'a') { gotoCase = 49; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'd') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 100:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'g') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 101:\r
+yych = this._charAt(++cursor);\r
+if (yych != 'q') { gotoCase = 49; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych != 'e') { gotoCase = 49; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == 'm') { gotoCase = 63; continue; };\r
+{ gotoCase = 49; continue; };\r
+case 104:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 108; continue; };\r
+{ gotoCase = 104; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 108; continue; };\r
+if (yych != '*') { gotoCase = 104; continue; };\r
+}\r
+case 106:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '*') { gotoCase = 106; continue; };\r
+if (yych == '/') { gotoCase = 110; continue; };\r
+{ gotoCase = 104; continue; };\r
+case 108:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.COMMENT);\r
+{ this.tokenType = "css-comment"; return cursor; }\r
+case 110:\r
+++cursor;\r
+{ this.tokenType = "css-comment"; return cursor; }\r
+case 112:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '-') {\r
+if (yych <= '"') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 32; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 32; continue; };\r
+if (yych <= ' ') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+} else {\r
+if (yych <= '&') {\r
+if (yych == '$') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '\'') { gotoCase = 114; continue; };\r
+if (yych <= ',') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '<') {\r
+if (yych <= '.') { gotoCase = 116; continue; };\r
+if (yych <= '9') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych <= '=') { gotoCase = 112; continue; };\r
+if (yych <= '?') { gotoCase = 116; continue; };\r
+{ gotoCase = 112; continue; };\r
+}\r
+} else {\r
+if (yych <= '^') {\r
+if (yych <= '\\') { gotoCase = 118; continue; };\r
+if (yych <= ']') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych == '`') { gotoCase = 116; continue; };\r
+if (yych <= 'z') { gotoCase = 112; continue; };\r
+{ gotoCase = 116; continue; };\r
+}\r
+}\r
+}\r
+case 114:\r
+++cursor;\r
+if ((yych = this._charAt(cursor)) <= '9') {\r
+if (yych <= '&') {\r
+if (yych <= '"') {\r
+if (yych >= '!') { gotoCase = 48; continue; };\r
+} else {\r
+if (yych == '$') { gotoCase = 48; continue; };\r
+}\r
+} else {\r
+if (yych <= ',') {\r
+if (yych <= '\'') { gotoCase = 48; continue; };\r
+} else {\r
+if (yych != '.') { gotoCase = 48; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '=') {\r
+if (yych >= '=') { gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '?') { gotoCase = 115; continue; };\r
+if (yych <= '[') { gotoCase = 48; continue; };\r
+}\r
+} else {\r
+if (yych <= '_') {\r
+if (yych != '^') { gotoCase = 48; continue; };\r
+} else {\r
+if (yych <= '`') { gotoCase = 115; continue; };\r
+if (yych <= 'z') { gotoCase = 48; continue; };\r
+}\r
+}\r
+}\r
+case 115:\r
+{ return this._stringToken(cursor, true); }\r
+case 116:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 66; continue; };\r
+if (yych <= '\f') { gotoCase = 116; continue; };\r
+{ gotoCase = 66; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 116; continue; };\r
+{ gotoCase = 121; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 116; continue; };\r
+}\r
+}\r
+case 118:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 66; continue; };\r
+} else {\r
+if (yych != '\r') { gotoCase = 66; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 116; continue; };\r
+if (yych <= '&') { gotoCase = 66; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 116; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 116; continue; };\r
+if (yych <= 'e') { gotoCase = 66; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 116; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 66; continue; };\r
+{ gotoCase = 116; continue; };\r
+} else {\r
+if (yych == 'v') { gotoCase = 116; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+}\r
+}\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.SSTRING);\r
+{ return this._stringToken(cursor); }\r
+case 121:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 115; continue; };\r
+case 122:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '-') {\r
+if (yych <= '!') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 32; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 32; continue; };\r
+if (yych >= '!') { gotoCase = 122; continue; };\r
+}\r
+} else {\r
+if (yych <= '$') {\r
+if (yych <= '"') { gotoCase = 114; continue; };\r
+if (yych >= '$') { gotoCase = 122; continue; };\r
+} else {\r
+if (yych == '\'') { gotoCase = 122; continue; };\r
+if (yych >= '-') { gotoCase = 122; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '<') {\r
+if (yych <= '.') { gotoCase = 124; continue; };\r
+if (yych <= '9') { gotoCase = 122; continue; };\r
+} else {\r
+if (yych <= '=') { gotoCase = 122; continue; };\r
+if (yych >= '@') { gotoCase = 122; continue; };\r
+}\r
+} else {\r
+if (yych <= '^') {\r
+if (yych <= '\\') { gotoCase = 126; continue; };\r
+if (yych <= ']') { gotoCase = 122; continue; };\r
+} else {\r
+if (yych == '`') { gotoCase = 124; continue; };\r
+if (yych <= 'z') { gotoCase = 122; continue; };\r
+}\r
+}\r
+}\r
+case 124:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 66; continue; };\r
+if (yych <= '\f') { gotoCase = 124; continue; };\r
+{ gotoCase = 66; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 124; continue; };\r
+{ gotoCase = 121; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 124; continue; };\r
+}\r
+}\r
+case 126:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 66; continue; };\r
+} else {\r
+if (yych != '\r') { gotoCase = 66; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 124; continue; };\r
+if (yych <= '&') { gotoCase = 66; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 124; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 124; continue; };\r
+if (yych <= 'e') { gotoCase = 66; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 124; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 66; continue; };\r
+{ gotoCase = 124; continue; };\r
+} else {\r
+if (yych == 'v') { gotoCase = 124; continue; };\r
+{ gotoCase = 66; continue; };\r
+}\r
+}\r
+}\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DSTRING);\r
+{ return this._stringToken(cursor); }\r
+\r
+case this.case_SSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 133; continue; };\r
+if (yych <= '\f') { gotoCase = 132; continue; };\r
+{ gotoCase = 133; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 132; continue; };\r
+{ gotoCase = 135; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 137; continue; };\r
+{ gotoCase = 132; continue; };\r
+}\r
+}\r
+case 131:\r
+{ return this._stringToken(cursor); }\r
+case 132:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 139; continue; };\r
+case 133:\r
+++cursor;\r
+case 134:\r
+{ this.tokenType = null; return cursor; }\r
+case 135:\r
+++cursor;\r
+case 136:\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{ return this._stringToken(cursor, true); }\r
+case 137:\r
+yych = this._charAt(++cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 138; continue; };\r
+if (yych <= '&') { gotoCase = 134; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 134; continue; };\r
+} else {\r
+if (yych != 'b') { gotoCase = 134; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych >= 'g') { gotoCase = 134; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 138; continue; };\r
+if (yych <= 'q') { gotoCase = 134; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 134; continue; };\r
+} else {\r
+if (yych != 'v') { gotoCase = 134; continue; };\r
+}\r
+}\r
+}\r
+case 138:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 139:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 131; continue; };\r
+if (yych <= '\f') { gotoCase = 138; continue; };\r
+{ gotoCase = 131; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 138; continue; };\r
+{ gotoCase = 142; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 138; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 138; continue; };\r
+if (yych >= '\'') { gotoCase = 138; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych >= '\\') { gotoCase = 138; continue; };\r
+} else {\r
+if (yych == 'b') { gotoCase = 138; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych <= 'f') { gotoCase = 138; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 138; continue; };\r
+if (yych >= 'r') { gotoCase = 138; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych >= 't') { gotoCase = 138; continue; };\r
+} else {\r
+if (yych == 'v') { gotoCase = 138; continue; };\r
+}\r
+}\r
+}\r
+cursor = YYMARKER;\r
+{ gotoCase = 131; continue; };\r
+case 142:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 136; continue; };\r
+}\r
+\r
+}\r
+}\r
+}\r
+\r
+WebInspector.SourceCSSTokenizer.prototype.__proto__ = WebInspector.SourceTokenizer.prototype;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceHTMLTokenizer = function()\r
+{\r
+WebInspector.SourceTokenizer.call(this);\r
+\r
+\r
+this._lexConditions = {\r
+INITIAL: 0,\r
+COMMENT: 1,\r
+DOCTYPE: 2,\r
+TAG: 3,\r
+DSTRING: 4,\r
+SSTRING: 5\r
+};\r
+this.case_INITIAL = 1000;\r
+this.case_COMMENT = 1001;\r
+this.case_DOCTYPE = 1002;\r
+this.case_TAG = 1003;\r
+this.case_DSTRING = 1004;\r
+this.case_SSTRING = 1005;\r
+\r
+this._parseConditions = {\r
+INITIAL: 0,\r
+ATTRIBUTE: 1,\r
+ATTRIBUTE_VALUE: 2,\r
+LINKIFY: 4,\r
+A_NODE: 8,\r
+SCRIPT: 16\r
+};\r
+\r
+this.initialCondition = { lexCondition: this._lexConditions.INITIAL, parseCondition: this._parseConditions.INITIAL };\r
+this.condition = this.initialCondition;\r
+}\r
+\r
+WebInspector.SourceHTMLTokenizer.prototype = {\r
+set line(line) {\r
+if (this._internalJavaScriptTokenizer) {\r
+var match = /<\/script/i.exec(line);\r
+if (match) {\r
+this._internalJavaScriptTokenizer.line = line.substring(0, match.index);\r
+} else\r
+this._internalJavaScriptTokenizer.line = line;\r
+}\r
+this._line = line;\r
+},\r
+\r
+_isExpectingAttribute: function()\r
+{\r
+return this._condition.parseCondition & this._parseConditions.ATTRIBUTE;\r
+},\r
+\r
+_isExpectingAttributeValue: function()\r
+{\r
+return this._condition.parseCondition & this._parseConditions.ATTRIBUTE_VALUE;\r
+},\r
+\r
+_setExpectingAttribute: function()\r
+{\r
+if (this._isExpectingAttributeValue())\r
+this._condition.parseCondition ^= this._parseConditions.ATTRIBUTE_VALUE;\r
+this._condition.parseCondition |= this._parseConditions.ATTRIBUTE;\r
+},\r
+\r
+_setExpectingAttributeValue: function()\r
+{\r
+if (this._isExpectingAttribute())\r
+this._condition.parseCondition ^= this._parseConditions.ATTRIBUTE;\r
+this._condition.parseCondition |= this._parseConditions.ATTRIBUTE_VALUE;\r
+},\r
+\r
+_stringToken: function(cursor, stringEnds)\r
+{\r
+if (!this._isExpectingAttributeValue()) {\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+this.tokenType = this._attrValueTokenType();\r
+if (stringEnds)\r
+this._setExpectingAttribute();\r
+return cursor;\r
+},\r
+\r
+_attrValueTokenType: function()\r
+{\r
+if (this._condition.parseCondition & this._parseConditions.LINKIFY) {\r
+if (this._condition.parseCondition & this._parseConditions.A_NODE)\r
+return "html-external-link";\r
+return "html-resource-link";\r
+}\r
+return "html-attribute-value";\r
+},\r
+\r
+nextToken: function(cursor)\r
+{\r
+if (this._internalJavaScriptTokenizer) {\r
+\r
+this.line = this._line;\r
+if (cursor !== this._internalJavaScriptTokenizer._line.length) {\r
+\r
+this._internalJavaScriptTokenizer.condition = this._condition.internalJavaScriptTokenizerCondition;\r
+var result = this._internalJavaScriptTokenizer.nextToken(cursor);\r
+this.tokenType = this._internalJavaScriptTokenizer.tokenType;\r
+this._condition.internalJavaScriptTokenizerCondition = this._internalJavaScriptTokenizer.condition;\r
+return result;\r
+} else if (cursor !== this._line.length)\r
+delete this._internalJavaScriptTokenizer;\r
+}\r
+\r
+var cursorOnEnter = cursor;\r
+var gotoCase = 1;\r
+while (1) {\r
+switch (gotoCase)\r
+\r
+\r
+{\r
+case 1: var yych;\r
+var yyaccept = 0;\r
+if (this.getLexCondition() < 3) {\r
+if (this.getLexCondition() < 1) {\r
+{ gotoCase = this.case_INITIAL; continue; };\r
+} else {\r
+if (this.getLexCondition() < 2) {\r
+{ gotoCase = this.case_COMMENT; continue; };\r
+} else {\r
+{ gotoCase = this.case_DOCTYPE; continue; };\r
+}\r
+}\r
+} else {\r
+if (this.getLexCondition() < 4) {\r
+{ gotoCase = this.case_TAG; continue; };\r
+} else {\r
+if (this.getLexCondition() < 5) {\r
+{ gotoCase = this.case_DSTRING; continue; };\r
+} else {\r
+{ gotoCase = this.case_SSTRING; continue; };\r
+}\r
+}\r
+}\r
+\r
+case this.case_COMMENT:\r
+\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 4; continue; };\r
+{ gotoCase = 3; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 4; continue; };\r
+if (yych == '-') { gotoCase = 6; continue; };\r
+{ gotoCase = 3; continue; };\r
+}\r
+case 2:\r
+{ this.tokenType = "html-comment"; return cursor; }\r
+case 3:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 9; continue; };\r
+case 4:\r
+++cursor;\r
+case 5:\r
+{ this.tokenType = null; return cursor; }\r
+case 6:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych != '-') { gotoCase = 5; continue; };\r
+case 7:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '>') { gotoCase = 10; continue; };\r
+case 8:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 9:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 2; continue; };\r
+{ gotoCase = 8; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 2; continue; };\r
+if (yych == '-') { gotoCase = 12; continue; };\r
+{ gotoCase = 8; continue; };\r
+}\r
+case 10:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{ this.tokenType = "html-comment"; return cursor; }\r
+case 12:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '-') { gotoCase = 7; continue; };\r
+cursor = YYMARKER;\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 2; continue; };\r
+} else {\r
+{ gotoCase = 5; continue; };\r
+}\r
+\r
+case this.case_DOCTYPE:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 18; continue; };\r
+{ gotoCase = 17; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 18; continue; };\r
+if (yych == '>') { gotoCase = 20; continue; };\r
+{ gotoCase = 17; continue; };\r
+}\r
+case 16:\r
+{ this.tokenType = "html-doctype"; return cursor; }\r
+case 17:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 23; continue; };\r
+case 18:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 20:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{ this.tokenType = "html-doctype"; return cursor; }\r
+case 22:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 23:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 16; continue; };\r
+{ gotoCase = 22; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 16; continue; };\r
+if (yych == '>') { gotoCase = 16; continue; };\r
+{ gotoCase = 22; continue; };\r
+}\r
+\r
+case this.case_DSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 28; continue; };\r
+{ gotoCase = 27; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 28; continue; };\r
+if (yych == '"') { gotoCase = 30; continue; };\r
+{ gotoCase = 27; continue; };\r
+}\r
+case 26:\r
+{ return this._stringToken(cursor); }\r
+case 27:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 34; continue; };\r
+case 28:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 30:\r
+++cursor;\r
+case 31:\r
+this.setLexCondition(this._lexConditions.TAG);\r
+{ return this._stringToken(cursor, true); }\r
+case 32:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 31; continue; };\r
+case 33:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 34:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 26; continue; };\r
+{ gotoCase = 33; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 26; continue; };\r
+if (yych == '"') { gotoCase = 32; continue; };\r
+{ gotoCase = 33; continue; };\r
+}\r
+\r
+case this.case_INITIAL:\r
+yych = this._charAt(cursor);\r
+if (yych == '<') { gotoCase = 39; continue; };\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 39:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '/') {\r
+if (yych == '!') { gotoCase = 44; continue; };\r
+if (yych >= '/') { gotoCase = 41; continue; };\r
+} else {\r
+if (yych <= 'S') {\r
+if (yych >= 'S') { gotoCase = 42; continue; };\r
+} else {\r
+if (yych == 's') { gotoCase = 42; continue; };\r
+}\r
+}\r
+case 40:\r
+this.setLexCondition(this._lexConditions.TAG);\r
+{\r
+if (this._condition.parseCondition & this._parseConditions.SCRIPT) {\r
+\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+this.tokenType = "html-tag";\r
+return cursor;\r
+}\r
+case 41:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == 'S') { gotoCase = 68; continue; };\r
+if (yych == 's') { gotoCase = 68; continue; };\r
+{ gotoCase = 40; continue; };\r
+case 42:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'C') { gotoCase = 62; continue; };\r
+if (yych == 'c') { gotoCase = 62; continue; };\r
+case 43:\r
+cursor = YYMARKER;\r
+{ gotoCase = 40; continue; };\r
+case 44:\r
+yych = this._charAt(++cursor);\r
+if (yych <= 'C') {\r
+if (yych != '-') { gotoCase = 43; continue; };\r
+} else {\r
+if (yych <= 'D') { gotoCase = 46; continue; };\r
+if (yych == 'd') { gotoCase = 46; continue; };\r
+{ gotoCase = 43; continue; };\r
+}\r
+yych = this._charAt(++cursor);\r
+if (yych == '-') { gotoCase = 54; continue; };\r
+{ gotoCase = 43; continue; };\r
+case 46:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'O') { gotoCase = 47; continue; };\r
+if (yych != 'o') { gotoCase = 43; continue; };\r
+case 47:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'C') { gotoCase = 48; continue; };\r
+if (yych != 'c') { gotoCase = 43; continue; };\r
+case 48:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'T') { gotoCase = 49; continue; };\r
+if (yych != 't') { gotoCase = 43; continue; };\r
+case 49:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'Y') { gotoCase = 50; continue; };\r
+if (yych != 'y') { gotoCase = 43; continue; };\r
+case 50:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'P') { gotoCase = 51; continue; };\r
+if (yych != 'p') { gotoCase = 43; continue; };\r
+case 51:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'E') { gotoCase = 52; continue; };\r
+if (yych != 'e') { gotoCase = 43; continue; };\r
+case 52:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DOCTYPE);\r
+{ this.tokenType = "html-doctype"; return cursor; }\r
+case 54:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 57; continue; };\r
+{ gotoCase = 54; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 57; continue; };\r
+if (yych != '-') { gotoCase = 54; continue; };\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '-') { gotoCase = 59; continue; };\r
+{ gotoCase = 43; continue; };\r
+case 57:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.COMMENT);\r
+{ this.tokenType = "html-comment"; return cursor; }\r
+case 59:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych != '>') { gotoCase = 54; continue; };\r
+++cursor;\r
+{ this.tokenType = "html-comment"; return cursor; }\r
+case 62:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'R') { gotoCase = 63; continue; };\r
+if (yych != 'r') { gotoCase = 43; continue; };\r
+case 63:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'I') { gotoCase = 64; continue; };\r
+if (yych != 'i') { gotoCase = 43; continue; };\r
+case 64:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'P') { gotoCase = 65; continue; };\r
+if (yych != 'p') { gotoCase = 43; continue; };\r
+case 65:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'T') { gotoCase = 66; continue; };\r
+if (yych != 't') { gotoCase = 43; continue; };\r
+case 66:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.TAG);\r
+{\r
+if (this._condition.parseCondition & this._parseConditions.SCRIPT) {\r
+\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+this.tokenType = "html-tag";\r
+this._condition.parseCondition = this._parseConditions.SCRIPT;\r
+this._setExpectingAttribute();\r
+return cursor;\r
+}\r
+case 68:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'C') { gotoCase = 69; continue; };\r
+if (yych != 'c') { gotoCase = 43; continue; };\r
+case 69:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'R') { gotoCase = 70; continue; };\r
+if (yych != 'r') { gotoCase = 43; continue; };\r
+case 70:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'I') { gotoCase = 71; continue; };\r
+if (yych != 'i') { gotoCase = 43; continue; };\r
+case 71:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'P') { gotoCase = 72; continue; };\r
+if (yych != 'p') { gotoCase = 43; continue; };\r
+case 72:\r
+yych = this._charAt(++cursor);\r
+if (yych == 'T') { gotoCase = 73; continue; };\r
+if (yych != 't') { gotoCase = 43; continue; };\r
+case 73:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.TAG);\r
+{\r
+this.tokenType = "html-tag";\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+return cursor;\r
+}\r
+\r
+case this.case_SSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 79; continue; };\r
+{ gotoCase = 78; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 79; continue; };\r
+if (yych == '\'') { gotoCase = 81; continue; };\r
+{ gotoCase = 78; continue; };\r
+}\r
+case 77:\r
+{ return this._stringToken(cursor); }\r
+case 78:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 85; continue; };\r
+case 79:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 81:\r
+++cursor;\r
+case 82:\r
+this.setLexCondition(this._lexConditions.TAG);\r
+{ return this._stringToken(cursor, true); }\r
+case 83:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 82; continue; };\r
+case 84:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 85:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 77; continue; };\r
+{ gotoCase = 84; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 77; continue; };\r
+if (yych == '\'') { gotoCase = 83; continue; };\r
+{ gotoCase = 84; continue; };\r
+}\r
+\r
+case this.case_TAG:\r
+yych = this._charAt(cursor);\r
+if (yych <= '&') {\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 90; continue; };\r
+if (yych >= '\r') { gotoCase = 90; continue; };\r
+} else {\r
+if (yych <= ' ') {\r
+if (yych >= ' ') { gotoCase = 90; continue; };\r
+} else {\r
+if (yych == '"') { gotoCase = 92; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= '>') {\r
+if (yych <= ';') {\r
+if (yych <= '\'') { gotoCase = 93; continue; };\r
+} else {\r
+if (yych <= '<') { gotoCase = 90; continue; };\r
+if (yych <= '=') { gotoCase = 94; continue; };\r
+{ gotoCase = 96; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych >= '[') { gotoCase = 90; continue; };\r
+} else {\r
+if (yych == ']') { gotoCase = 90; continue; };\r
+}\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 109; continue; };\r
+case 89:\r
+{\r
+if (this._condition.parseCondition === this._parseConditions.SCRIPT) {\r
+\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+\r
+if (this._condition.parseCondition === this._parseConditions.INITIAL) {\r
+this.tokenType = "html-tag";\r
+this._setExpectingAttribute();\r
+var token = this._line.substring(cursorOnEnter, cursor);\r
+if (token === "a")\r
+this._condition.parseCondition |= this._parseConditions.A_NODE;\r
+else if (this._condition.parseCondition & this._parseConditions.A_NODE)\r
+this._condition.parseCondition ^= this._parseConditions.A_NODE;\r
+} else if (this._isExpectingAttribute()) {\r
+var token = this._line.substring(cursorOnEnter, cursor);\r
+if (token === "href" || token === "src")\r
+this._condition.parseCondition |= this._parseConditions.LINKIFY;\r
+else if (this._condition.parseCondition |= this._parseConditions.LINKIFY)\r
+this._condition.parseCondition ^= this._parseConditions.LINKIFY;\r
+this.tokenType = "html-attribute-name";\r
+} else if (this._isExpectingAttributeValue())\r
+this.tokenType = this._attrValueTokenType();\r
+else\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+case 90:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 92:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 105; continue; };\r
+case 93:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 99; continue; };\r
+case 94:\r
+++cursor;\r
+{\r
+if (this._isExpectingAttribute())\r
+this._setExpectingAttributeValue();\r
+this.tokenType = null;\r
+return cursor;\r
+}\r
+case 96:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.INITIAL);\r
+{\r
+this.tokenType = "html-tag";\r
+if (this._condition.parseCondition & this._parseConditions.SCRIPT) {\r
+if (!this._internalJavaScriptTokenizer) {\r
+this._internalJavaScriptTokenizer = WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer("text/javascript");\r
+this._condition.internalJavaScriptTokenizerCondition = this._internalJavaScriptTokenizer.initialCondition;\r
+}\r
+\r
+return cursor;\r
+}\r
+\r
+this._condition.parseCondition = this._parseConditions.INITIAL;\r
+return cursor;\r
+}\r
+case 98:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 99:\r
+if (yych <= '\f') {\r
+if (yych != '\n') { gotoCase = 98; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 100; continue; };\r
+if (yych == '\'') { gotoCase = 102; continue; };\r
+{ gotoCase = 98; continue; };\r
+}\r
+case 100:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.SSTRING);\r
+{ return this._stringToken(cursor); }\r
+case 102:\r
+++cursor;\r
+{ return this._stringToken(cursor, true); }\r
+case 104:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 105:\r
+if (yych <= '\f') {\r
+if (yych != '\n') { gotoCase = 104; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 106; continue; };\r
+if (yych == '"') { gotoCase = 102; continue; };\r
+{ gotoCase = 104; continue; };\r
+}\r
+case 106:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DSTRING);\r
+{ return this._stringToken(cursor); }\r
+case 108:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 109:\r
+if (yych <= '"') {\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 89; continue; };\r
+if (yych <= '\f') { gotoCase = 108; continue; };\r
+{ gotoCase = 89; continue; };\r
+} else {\r
+if (yych == ' ') { gotoCase = 89; continue; };\r
+if (yych <= '!') { gotoCase = 108; continue; };\r
+{ gotoCase = 89; continue; };\r
+}\r
+} else {\r
+if (yych <= '>') {\r
+if (yych == '\'') { gotoCase = 89; continue; };\r
+if (yych <= ';') { gotoCase = 108; continue; };\r
+{ gotoCase = 89; continue; };\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= 'Z') { gotoCase = 108; continue; };\r
+{ gotoCase = 89; continue; };\r
+} else {\r
+if (yych == ']') { gotoCase = 89; continue; };\r
+{ gotoCase = 108; continue; };\r
+}\r
+}\r
+}\r
+}\r
+\r
+}\r
+}\r
+}\r
+\r
+WebInspector.SourceHTMLTokenizer.prototype.__proto__ = WebInspector.SourceTokenizer.prototype;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceJavaScriptTokenizer = function()\r
+{\r
+WebInspector.SourceTokenizer.call(this);\r
+\r
+this._keywords = [\r
+"null", "true", "false", "break", "case", "catch", "const", "default", "finally", "for",\r
+"instanceof", "new", "var", "continue", "function", "return", "void", "delete", "if",\r
+"this", "do", "while", "else", "in", "switch", "throw", "try", "typeof", "debugger",\r
+"class", "enum", "export", "extends", "import", "super", "get", "set", "with"\r
+].keySet();\r
+\r
+this._lexConditions = {\r
+DIV: 0,\r
+NODIV: 1,\r
+COMMENT: 2,\r
+DSTRING: 3,\r
+SSTRING: 4,\r
+REGEX: 5\r
+};\r
+\r
+this.case_DIV = 1000;\r
+this.case_NODIV = 1001;\r
+this.case_COMMENT = 1002;\r
+this.case_DSTRING = 1003;\r
+this.case_SSTRING = 1004;\r
+this.case_REGEX = 1005;\r
+\r
+this.initialCondition = { lexCondition: this._lexConditions.NODIV }\r
+this.condition = this.initialCondition;\r
+}\r
+\r
+WebInspector.SourceJavaScriptTokenizer.prototype = {\r
+nextToken: function(cursor)\r
+{\r
+var cursorOnEnter = cursor;\r
+var gotoCase = 1;\r
+while (1) {\r
+switch (gotoCase)\r
+\r
+\r
+{\r
+case 1: var yych;\r
+var yyaccept = 0;\r
+if (this.getLexCondition() < 3) {\r
+if (this.getLexCondition() < 1) {\r
+{ gotoCase = this.case_DIV; continue; };\r
+} else {\r
+if (this.getLexCondition() < 2) {\r
+{ gotoCase = this.case_NODIV; continue; };\r
+} else {\r
+{ gotoCase = this.case_COMMENT; continue; };\r
+}\r
+}\r
+} else {\r
+if (this.getLexCondition() < 4) {\r
+{ gotoCase = this.case_DSTRING; continue; };\r
+} else {\r
+if (this.getLexCondition() < 5) {\r
+{ gotoCase = this.case_SSTRING; continue; };\r
+} else {\r
+{ gotoCase = this.case_REGEX; continue; };\r
+}\r
+}\r
+}\r
+\r
+case this.case_COMMENT:\r
+\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 4; continue; };\r
+{ gotoCase = 3; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 4; continue; };\r
+if (yych == '*') { gotoCase = 6; continue; };\r
+{ gotoCase = 3; continue; };\r
+}\r
+case 2:\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 3:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 12; continue; };\r
+case 4:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 6:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+if (yych != '/') { gotoCase = 11; continue; };\r
+case 7:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 9:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+if (yych == '/') { gotoCase = 7; continue; };\r
+case 11:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 12:\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 2; continue; };\r
+{ gotoCase = 11; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 2; continue; };\r
+if (yych == '*') { gotoCase = 9; continue; };\r
+{ gotoCase = 11; continue; };\r
+}\r
+\r
+case this.case_DIV:\r
+yych = this._charAt(cursor);\r
+if (yych <= '9') {\r
+if (yych <= '(') {\r
+if (yych <= '#') {\r
+if (yych <= ' ') { gotoCase = 15; continue; };\r
+if (yych <= '!') { gotoCase = 17; continue; };\r
+if (yych <= '"') { gotoCase = 19; continue; };\r
+} else {\r
+if (yych <= '%') {\r
+if (yych <= '$') { gotoCase = 20; continue; };\r
+{ gotoCase = 22; continue; };\r
+} else {\r
+if (yych <= '&') { gotoCase = 23; continue; };\r
+if (yych <= '\'') { gotoCase = 24; continue; };\r
+{ gotoCase = 25; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= ',') {\r
+if (yych <= ')') { gotoCase = 26; continue; };\r
+if (yych <= '*') { gotoCase = 28; continue; };\r
+if (yych <= '+') { gotoCase = 29; continue; };\r
+{ gotoCase = 25; continue; };\r
+} else {\r
+if (yych <= '.') {\r
+if (yych <= '-') { gotoCase = 30; continue; };\r
+{ gotoCase = 31; continue; };\r
+} else {\r
+if (yych <= '/') { gotoCase = 32; continue; };\r
+if (yych <= '0') { gotoCase = 34; continue; };\r
+{ gotoCase = 36; continue; };\r
+}\r
+}\r
+}\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '>') {\r
+if (yych <= ';') { gotoCase = 25; continue; };\r
+if (yych <= '<') { gotoCase = 37; continue; };\r
+if (yych <= '=') { gotoCase = 38; continue; };\r
+{ gotoCase = 39; continue; };\r
+} else {\r
+if (yych <= '@') {\r
+if (yych <= '?') { gotoCase = 25; continue; };\r
+} else {\r
+if (yych <= 'Z') { gotoCase = 20; continue; };\r
+if (yych <= '[') { gotoCase = 25; continue; };\r
+{ gotoCase = 40; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'z') {\r
+if (yych <= '^') {\r
+if (yych <= ']') { gotoCase = 25; continue; };\r
+{ gotoCase = 41; continue; };\r
+} else {\r
+if (yych != '`') { gotoCase = 20; continue; };\r
+}\r
+} else {\r
+if (yych <= '|') {\r
+if (yych <= '{') { gotoCase = 25; continue; };\r
+{ gotoCase = 42; continue; };\r
+} else {\r
+if (yych <= '~') { gotoCase = 25; continue; };\r
+if (yych >= 0x80) { gotoCase = 20; continue; };\r
+}\r
+}\r
+}\r
+}\r
+case 15:\r
+++cursor;\r
+case 16:\r
+{ this.tokenType = null; return cursor; }\r
+case 17:\r
+++cursor;\r
+if ((yych = this._charAt(cursor)) == '=') { gotoCase = 115; continue; };\r
+case 18:\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = null; return cursor; }\r
+case 19:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '\n') { gotoCase = 16; continue; };\r
+if (yych == '\r') { gotoCase = 16; continue; };\r
+{ gotoCase = 107; continue; };\r
+case 20:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 50; continue; };\r
+case 21:\r
+{\r
+var token = this._line.substring(cursorOnEnter, cursor);\r
+if (token in this._keywords)\r
+this.tokenType = "javascript-keyword";\r
+else\r
+this.tokenType = "javascript-ident";\r
+return cursor;\r
+}\r
+case 22:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 23:\r
+yych = this._charAt(++cursor);\r
+if (yych == '&') { gotoCase = 43; continue; };\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 24:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '\n') { gotoCase = 16; continue; };\r
+if (yych == '\r') { gotoCase = 16; continue; };\r
+{ gotoCase = 96; continue; };\r
+case 25:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 18; continue; };\r
+case 26:\r
+++cursor;\r
+{ this.tokenType = null; return cursor; }\r
+case 28:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 29:\r
+yych = this._charAt(++cursor);\r
+if (yych == '+') { gotoCase = 43; continue; };\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 30:\r
+yych = this._charAt(++cursor);\r
+if (yych == '-') { gotoCase = 43; continue; };\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 31:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 18; continue; };\r
+if (yych <= '9') { gotoCase = 89; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 32:\r
+yyaccept = 2;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '.') {\r
+if (yych == '*') { gotoCase = 78; continue; };\r
+} else {\r
+if (yych <= '/') { gotoCase = 80; continue; };\r
+if (yych == '=') { gotoCase = 77; continue; };\r
+}\r
+case 33:\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = null; return cursor; }\r
+case 34:\r
+yyaccept = 3;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= 'E') {\r
+if (yych <= '/') {\r
+if (yych == '.') { gotoCase = 63; continue; };\r
+} else {\r
+if (yych <= '7') { gotoCase = 72; continue; };\r
+if (yych >= 'E') { gotoCase = 62; continue; };\r
+}\r
+} else {\r
+if (yych <= 'd') {\r
+if (yych == 'X') { gotoCase = 74; continue; };\r
+} else {\r
+if (yych <= 'e') { gotoCase = 62; continue; };\r
+if (yych == 'x') { gotoCase = 74; continue; };\r
+}\r
+}\r
+case 35:\r
+{ this.tokenType = "javascript-number"; return cursor; }\r
+case 36:\r
+yyaccept = 3;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '9') {\r
+if (yych == '.') { gotoCase = 63; continue; };\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+{ gotoCase = 60; continue; };\r
+} else {\r
+if (yych <= 'E') {\r
+if (yych <= 'D') { gotoCase = 35; continue; };\r
+{ gotoCase = 62; continue; };\r
+} else {\r
+if (yych == 'e') { gotoCase = 62; continue; };\r
+{ gotoCase = 35; continue; };\r
+}\r
+}\r
+case 37:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ';') { gotoCase = 18; continue; };\r
+if (yych <= '<') { gotoCase = 59; continue; };\r
+if (yych <= '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 38:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 58; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 39:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '<') { gotoCase = 18; continue; };\r
+if (yych <= '=') { gotoCase = 43; continue; };\r
+if (yych <= '>') { gotoCase = 56; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 40:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == 'u') { gotoCase = 44; continue; };\r
+{ gotoCase = 16; continue; };\r
+case 41:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 42:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+if (yych != '|') { gotoCase = 18; continue; };\r
+case 43:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 18; continue; };\r
+case 44:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 46; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 46; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 46; continue; };\r
+}\r
+case 45:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 1) {\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 16; continue; };\r
+} else {\r
+{ gotoCase = 21; continue; };\r
+}\r
+} else {\r
+if (yyaccept <= 2) {\r
+{ gotoCase = 33; continue; };\r
+} else {\r
+{ gotoCase = 35; continue; };\r
+}\r
+}\r
+case 46:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 47; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 47:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 48; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 48:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 49; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 49:\r
+yyaccept = 1;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 50:\r
+if (yych <= '[') {\r
+if (yych <= '/') {\r
+if (yych == '$') { gotoCase = 49; continue; };\r
+{ gotoCase = 21; continue; };\r
+} else {\r
+if (yych <= '9') { gotoCase = 49; continue; };\r
+if (yych <= '@') { gotoCase = 21; continue; };\r
+if (yych <= 'Z') { gotoCase = 49; continue; };\r
+{ gotoCase = 21; continue; };\r
+}\r
+} else {\r
+if (yych <= '_') {\r
+if (yych <= '\\') { gotoCase = 51; continue; };\r
+if (yych <= '^') { gotoCase = 21; continue; };\r
+{ gotoCase = 49; continue; };\r
+} else {\r
+if (yych <= '`') { gotoCase = 21; continue; };\r
+if (yych <= 'z') { gotoCase = 49; continue; };\r
+if (yych <= 0x7F) { gotoCase = 21; continue; };\r
+{ gotoCase = 49; continue; };\r
+}\r
+}\r
+case 51:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych != 'u') { gotoCase = 45; continue; };\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 53; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 53:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 54; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 54:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 55; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 55:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 49; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 49; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 49; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 56:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '<') { gotoCase = 18; continue; };\r
+if (yych <= '=') { gotoCase = 43; continue; };\r
+if (yych >= '?') { gotoCase = 18; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 58:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 59:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+case 60:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '9') {\r
+if (yych == '.') { gotoCase = 63; continue; };\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+{ gotoCase = 60; continue; };\r
+} else {\r
+if (yych <= 'E') {\r
+if (yych <= 'D') { gotoCase = 35; continue; };\r
+} else {\r
+if (yych != 'e') { gotoCase = 35; continue; };\r
+}\r
+}\r
+case 62:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych == '+') { gotoCase = 69; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 69; continue; };\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 70; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 63:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'D') {\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 63; continue; };\r
+{ gotoCase = 35; continue; };\r
+} else {\r
+if (yych <= 'E') { gotoCase = 65; continue; };\r
+if (yych != 'e') { gotoCase = 35; continue; };\r
+}\r
+case 65:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych != '+') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 66; continue; };\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 67; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 66:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+case 67:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 67; continue; };\r
+{ gotoCase = 35; continue; };\r
+case 69:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+case 70:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 70; continue; };\r
+{ gotoCase = 35; continue; };\r
+case 72:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '7') { gotoCase = 72; continue; };\r
+{ gotoCase = 35; continue; };\r
+case 74:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 75; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 75:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 75; continue; };\r
+{ gotoCase = 35; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 75; continue; };\r
+if (yych <= '`') { gotoCase = 35; continue; };\r
+if (yych <= 'f') { gotoCase = 75; continue; };\r
+{ gotoCase = 35; continue; };\r
+}\r
+case 77:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 33; continue; };\r
+case 78:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 85; continue; };\r
+{ gotoCase = 78; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 85; continue; };\r
+if (yych == '*') { gotoCase = 83; continue; };\r
+{ gotoCase = 78; continue; };\r
+}\r
+case 80:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 82; continue; };\r
+if (yych != '\r') { gotoCase = 80; continue; };\r
+case 82:\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 83:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '*') { gotoCase = 83; continue; };\r
+if (yych == '/') { gotoCase = 87; continue; };\r
+{ gotoCase = 78; continue; };\r
+case 85:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.COMMENT);\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 87:\r
+++cursor;\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 89:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'D') {\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 89; continue; };\r
+{ gotoCase = 35; continue; };\r
+} else {\r
+if (yych <= 'E') { gotoCase = 91; continue; };\r
+if (yych != 'e') { gotoCase = 35; continue; };\r
+}\r
+case 91:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych != '+') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 92; continue; };\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 93; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 92:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+case 93:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 35; continue; };\r
+if (yych <= '9') { gotoCase = 93; continue; };\r
+{ gotoCase = 35; continue; };\r
+case 95:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 96:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 45; continue; };\r
+if (yych <= '\f') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 95; continue; };\r
+{ gotoCase = 98; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 95; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 45; continue; };\r
+{ gotoCase = 101; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 101; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 95; continue; };\r
+if (yych <= '&') { gotoCase = 45; continue; };\r
+{ gotoCase = 95; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 95; continue; };\r
+if (yych <= 'e') { gotoCase = 45; continue; };\r
+{ gotoCase = 95; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 45; continue; };\r
+{ gotoCase = 95; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 100; continue; };\r
+if (yych <= 'v') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+}\r
+}\r
+case 98:\r
+++cursor;\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 100:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 103; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 103; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 103; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 101:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.SSTRING);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 103:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 104; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 104:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 105; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 105:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 95; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 95; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 106:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 107:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 45; continue; };\r
+if (yych <= '\f') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 106; continue; };\r
+{ gotoCase = 98; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 106; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 45; continue; };\r
+{ gotoCase = 110; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 110; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 106; continue; };\r
+if (yych <= '&') { gotoCase = 45; continue; };\r
+{ gotoCase = 106; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 106; continue; };\r
+if (yych <= 'e') { gotoCase = 45; continue; };\r
+{ gotoCase = 106; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 45; continue; };\r
+{ gotoCase = 106; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 109; continue; };\r
+if (yych <= 'v') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+}\r
+}\r
+case 109:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 112; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 112; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 112; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 110:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DSTRING);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 112:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 113; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 113:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych >= ':') { gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 114; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych >= 'g') { gotoCase = 45; continue; };\r
+}\r
+case 114:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 45; continue; };\r
+if (yych <= '9') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 106; continue; };\r
+if (yych <= '`') { gotoCase = 45; continue; };\r
+if (yych <= 'f') { gotoCase = 106; continue; };\r
+{ gotoCase = 45; continue; };\r
+}\r
+case 115:\r
+++cursor;\r
+if ((yych = this._charAt(cursor)) == '=') { gotoCase = 43; continue; };\r
+{ gotoCase = 18; continue; };\r
+\r
+case this.case_DSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 120; continue; };\r
+if (yych <= '\f') { gotoCase = 119; continue; };\r
+{ gotoCase = 120; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 119; continue; };\r
+{ gotoCase = 122; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 124; continue; };\r
+{ gotoCase = 119; continue; };\r
+}\r
+}\r
+case 118:\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 119:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 126; continue; };\r
+case 120:\r
+++cursor;\r
+case 121:\r
+{ this.tokenType = null; return cursor; }\r
+case 122:\r
+++cursor;\r
+case 123:\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 124:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 125; continue; };\r
+if (yych <= '&') { gotoCase = 121; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 121; continue; };\r
+} else {\r
+if (yych != 'b') { gotoCase = 121; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych >= 'g') { gotoCase = 121; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 125; continue; };\r
+if (yych <= 'q') { gotoCase = 121; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 121; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 127; continue; };\r
+if (yych >= 'w') { gotoCase = 121; continue; };\r
+}\r
+}\r
+}\r
+case 125:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 126:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 118; continue; };\r
+if (yych <= '\f') { gotoCase = 125; continue; };\r
+{ gotoCase = 118; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 125; continue; };\r
+{ gotoCase = 133; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 132; continue; };\r
+{ gotoCase = 125; continue; };\r
+}\r
+}\r
+case 127:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 128; continue; };\r
+if (yych <= '9') { gotoCase = 129; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 129; continue; };\r
+if (yych <= '`') { gotoCase = 128; continue; };\r
+if (yych <= 'f') { gotoCase = 129; continue; };\r
+}\r
+case 128:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 118; continue; };\r
+} else {\r
+{ gotoCase = 121; continue; };\r
+}\r
+case 129:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 128; continue; };\r
+if (yych >= ':') { gotoCase = 128; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 130; continue; };\r
+if (yych <= '`') { gotoCase = 128; continue; };\r
+if (yych >= 'g') { gotoCase = 128; continue; };\r
+}\r
+case 130:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 128; continue; };\r
+if (yych >= ':') { gotoCase = 128; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 131; continue; };\r
+if (yych <= '`') { gotoCase = 128; continue; };\r
+if (yych >= 'g') { gotoCase = 128; continue; };\r
+}\r
+case 131:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 128; continue; };\r
+if (yych <= '9') { gotoCase = 125; continue; };\r
+{ gotoCase = 128; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 125; continue; };\r
+if (yych <= '`') { gotoCase = 128; continue; };\r
+if (yych <= 'f') { gotoCase = 125; continue; };\r
+{ gotoCase = 128; continue; };\r
+}\r
+case 132:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 125; continue; };\r
+if (yych <= '&') { gotoCase = 128; continue; };\r
+{ gotoCase = 125; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 128; continue; };\r
+{ gotoCase = 125; continue; };\r
+} else {\r
+if (yych == 'b') { gotoCase = 125; continue; };\r
+{ gotoCase = 128; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych <= 'f') { gotoCase = 125; continue; };\r
+{ gotoCase = 128; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 125; continue; };\r
+if (yych <= 'q') { gotoCase = 128; continue; };\r
+{ gotoCase = 125; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 128; continue; };\r
+{ gotoCase = 125; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 127; continue; };\r
+if (yych <= 'v') { gotoCase = 125; continue; };\r
+{ gotoCase = 128; continue; };\r
+}\r
+}\r
+}\r
+case 133:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 123; continue; };\r
+\r
+case this.case_NODIV:\r
+yych = this._charAt(cursor);\r
+if (yych <= '9') {\r
+if (yych <= '(') {\r
+if (yych <= '#') {\r
+if (yych <= ' ') { gotoCase = 136; continue; };\r
+if (yych <= '!') { gotoCase = 138; continue; };\r
+if (yych <= '"') { gotoCase = 140; continue; };\r
+} else {\r
+if (yych <= '%') {\r
+if (yych <= '$') { gotoCase = 141; continue; };\r
+{ gotoCase = 143; continue; };\r
+} else {\r
+if (yych <= '&') { gotoCase = 144; continue; };\r
+if (yych <= '\'') { gotoCase = 145; continue; };\r
+{ gotoCase = 146; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= ',') {\r
+if (yych <= ')') { gotoCase = 147; continue; };\r
+if (yych <= '*') { gotoCase = 149; continue; };\r
+if (yych <= '+') { gotoCase = 150; continue; };\r
+{ gotoCase = 146; continue; };\r
+} else {\r
+if (yych <= '.') {\r
+if (yych <= '-') { gotoCase = 151; continue; };\r
+{ gotoCase = 152; continue; };\r
+} else {\r
+if (yych <= '/') { gotoCase = 153; continue; };\r
+if (yych <= '0') { gotoCase = 154; continue; };\r
+{ gotoCase = 156; continue; };\r
+}\r
+}\r
+}\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '>') {\r
+if (yych <= ';') { gotoCase = 146; continue; };\r
+if (yych <= '<') { gotoCase = 157; continue; };\r
+if (yych <= '=') { gotoCase = 158; continue; };\r
+{ gotoCase = 159; continue; };\r
+} else {\r
+if (yych <= '@') {\r
+if (yych <= '?') { gotoCase = 146; continue; };\r
+} else {\r
+if (yych <= 'Z') { gotoCase = 141; continue; };\r
+if (yych <= '[') { gotoCase = 146; continue; };\r
+{ gotoCase = 160; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'z') {\r
+if (yych <= '^') {\r
+if (yych <= ']') { gotoCase = 146; continue; };\r
+{ gotoCase = 161; continue; };\r
+} else {\r
+if (yych != '`') { gotoCase = 141; continue; };\r
+}\r
+} else {\r
+if (yych <= '|') {\r
+if (yych <= '{') { gotoCase = 146; continue; };\r
+{ gotoCase = 162; continue; };\r
+} else {\r
+if (yych <= '~') { gotoCase = 146; continue; };\r
+if (yych >= 0x80) { gotoCase = 141; continue; };\r
+}\r
+}\r
+}\r
+}\r
+case 136:\r
+++cursor;\r
+case 137:\r
+{ this.tokenType = null; return cursor; }\r
+case 138:\r
+++cursor;\r
+if ((yych = this._charAt(cursor)) == '=') { gotoCase = 260; continue; };\r
+case 139:\r
+{ this.tokenType = null; return cursor; }\r
+case 140:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '\n') { gotoCase = 137; continue; };\r
+if (yych == '\r') { gotoCase = 137; continue; };\r
+{ gotoCase = 252; continue; };\r
+case 141:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 170; continue; };\r
+case 142:\r
+this.setLexCondition(this._lexConditions.DIV);\r
+{\r
+var token = this._line.substring(cursorOnEnter, cursor);\r
+if (token in this._keywords)\r
+this.tokenType = "javascript-keyword";\r
+else\r
+this.tokenType = "javascript-ident";\r
+return cursor;\r
+}\r
+case 143:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 144:\r
+yych = this._charAt(++cursor);\r
+if (yych == '&') { gotoCase = 163; continue; };\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 145:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == '\n') { gotoCase = 137; continue; };\r
+if (yych == '\r') { gotoCase = 137; continue; };\r
+{ gotoCase = 241; continue; };\r
+case 146:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 139; continue; };\r
+case 147:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DIV);\r
+{ this.tokenType = null; return cursor; }\r
+case 149:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 150:\r
+yych = this._charAt(++cursor);\r
+if (yych == '+') { gotoCase = 163; continue; };\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 151:\r
+yych = this._charAt(++cursor);\r
+if (yych == '-') { gotoCase = 163; continue; };\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 152:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 139; continue; };\r
+if (yych <= '9') { gotoCase = 234; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 153:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 137; continue; };\r
+{ gotoCase = 197; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 137; continue; };\r
+if (yych <= ')') { gotoCase = 197; continue; };\r
+{ gotoCase = 202; continue; };\r
+}\r
+} else {\r
+if (yych <= 'Z') {\r
+if (yych == '/') { gotoCase = 204; continue; };\r
+{ gotoCase = 197; continue; };\r
+} else {\r
+if (yych <= '[') { gotoCase = 200; continue; };\r
+if (yych <= '\\') { gotoCase = 199; continue; };\r
+if (yych <= ']') { gotoCase = 137; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+}\r
+case 154:\r
+yyaccept = 2;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= 'E') {\r
+if (yych <= '/') {\r
+if (yych == '.') { gotoCase = 183; continue; };\r
+} else {\r
+if (yych <= '7') { gotoCase = 192; continue; };\r
+if (yych >= 'E') { gotoCase = 182; continue; };\r
+}\r
+} else {\r
+if (yych <= 'd') {\r
+if (yych == 'X') { gotoCase = 194; continue; };\r
+} else {\r
+if (yych <= 'e') { gotoCase = 182; continue; };\r
+if (yych == 'x') { gotoCase = 194; continue; };\r
+}\r
+}\r
+case 155:\r
+this.setLexCondition(this._lexConditions.DIV);\r
+{ this.tokenType = "javascript-number"; return cursor; }\r
+case 156:\r
+yyaccept = 2;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '9') {\r
+if (yych == '.') { gotoCase = 183; continue; };\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+{ gotoCase = 180; continue; };\r
+} else {\r
+if (yych <= 'E') {\r
+if (yych <= 'D') { gotoCase = 155; continue; };\r
+{ gotoCase = 182; continue; };\r
+} else {\r
+if (yych == 'e') { gotoCase = 182; continue; };\r
+{ gotoCase = 155; continue; };\r
+}\r
+}\r
+case 157:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ';') { gotoCase = 139; continue; };\r
+if (yych <= '<') { gotoCase = 179; continue; };\r
+if (yych <= '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 158:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 178; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 159:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '<') { gotoCase = 139; continue; };\r
+if (yych <= '=') { gotoCase = 163; continue; };\r
+if (yych <= '>') { gotoCase = 176; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 160:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych == 'u') { gotoCase = 164; continue; };\r
+{ gotoCase = 137; continue; };\r
+case 161:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 162:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+if (yych != '|') { gotoCase = 139; continue; };\r
+case 163:\r
+yych = this._charAt(++cursor);\r
+{ gotoCase = 139; continue; };\r
+case 164:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 166; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 166; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 166; continue; };\r
+}\r
+case 165:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 1) {\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 137; continue; };\r
+} else {\r
+{ gotoCase = 142; continue; };\r
+}\r
+} else {\r
+if (yyaccept <= 2) {\r
+{ gotoCase = 155; continue; };\r
+} else {\r
+{ gotoCase = 217; continue; };\r
+}\r
+}\r
+case 166:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 167; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 167:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 168; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 168:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 169; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 169:\r
+yyaccept = 1;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 170:\r
+if (yych <= '[') {\r
+if (yych <= '/') {\r
+if (yych == '$') { gotoCase = 169; continue; };\r
+{ gotoCase = 142; continue; };\r
+} else {\r
+if (yych <= '9') { gotoCase = 169; continue; };\r
+if (yych <= '@') { gotoCase = 142; continue; };\r
+if (yych <= 'Z') { gotoCase = 169; continue; };\r
+{ gotoCase = 142; continue; };\r
+}\r
+} else {\r
+if (yych <= '_') {\r
+if (yych <= '\\') { gotoCase = 171; continue; };\r
+if (yych <= '^') { gotoCase = 142; continue; };\r
+{ gotoCase = 169; continue; };\r
+} else {\r
+if (yych <= '`') { gotoCase = 142; continue; };\r
+if (yych <= 'z') { gotoCase = 169; continue; };\r
+if (yych <= 0x7F) { gotoCase = 142; continue; };\r
+{ gotoCase = 169; continue; };\r
+}\r
+}\r
+case 171:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych != 'u') { gotoCase = 165; continue; };\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 173; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 173:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 174; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 174:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 175; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 175:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 169; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 169; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 169; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 176:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '<') { gotoCase = 139; continue; };\r
+if (yych <= '=') { gotoCase = 163; continue; };\r
+if (yych >= '?') { gotoCase = 139; continue; };\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 178:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 179:\r
+yych = this._charAt(++cursor);\r
+if (yych == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+case 180:\r
+yyaccept = 2;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '9') {\r
+if (yych == '.') { gotoCase = 183; continue; };\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+{ gotoCase = 180; continue; };\r
+} else {\r
+if (yych <= 'E') {\r
+if (yych <= 'D') { gotoCase = 155; continue; };\r
+} else {\r
+if (yych != 'e') { gotoCase = 155; continue; };\r
+}\r
+}\r
+case 182:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych == '+') { gotoCase = 189; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 189; continue; };\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 190; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 183:\r
+yyaccept = 2;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'D') {\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 183; continue; };\r
+{ gotoCase = 155; continue; };\r
+} else {\r
+if (yych <= 'E') { gotoCase = 185; continue; };\r
+if (yych != 'e') { gotoCase = 155; continue; };\r
+}\r
+case 185:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych != '+') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 186; continue; };\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 187; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 186:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+case 187:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 187; continue; };\r
+{ gotoCase = 155; continue; };\r
+case 189:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+case 190:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 190; continue; };\r
+{ gotoCase = 155; continue; };\r
+case 192:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '7') { gotoCase = 192; continue; };\r
+{ gotoCase = 155; continue; };\r
+case 194:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 195; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 195:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 195; continue; };\r
+{ gotoCase = 155; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 195; continue; };\r
+if (yych <= '`') { gotoCase = 155; continue; };\r
+if (yych <= 'f') { gotoCase = 195; continue; };\r
+{ gotoCase = 155; continue; };\r
+}\r
+case 197:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '.') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 197; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 165; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '/') { gotoCase = 220; continue; };\r
+if (yych <= 'Z') { gotoCase = 197; continue; };\r
+{ gotoCase = 228; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 227; continue; };\r
+if (yych <= ']') { gotoCase = 165; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+}\r
+case 199:\r
+yych = this._charAt(++cursor);\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych == '\r') { gotoCase = 165; continue; };\r
+{ gotoCase = 197; continue; };\r
+case 200:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 200; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 200; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych == '/') { gotoCase = 165; continue; };\r
+{ gotoCase = 200; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 215; continue; };\r
+if (yych <= ']') { gotoCase = 213; continue; };\r
+{ gotoCase = 200; continue; };\r
+}\r
+}\r
+case 202:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 209; continue; };\r
+{ gotoCase = 202; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 209; continue; };\r
+if (yych == '*') { gotoCase = 207; continue; };\r
+{ gotoCase = 202; continue; };\r
+}\r
+case 204:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 206; continue; };\r
+if (yych != '\r') { gotoCase = 204; continue; };\r
+case 206:\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 207:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '*') { gotoCase = 207; continue; };\r
+if (yych == '/') { gotoCase = 211; continue; };\r
+{ gotoCase = 202; continue; };\r
+case 209:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.COMMENT);\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 211:\r
+++cursor;\r
+{ this.tokenType = "javascript-comment"; return cursor; }\r
+case 213:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 213; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 213; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+} else {\r
+if (yych <= 'Z') {\r
+if (yych == '/') { gotoCase = 220; continue; };\r
+{ gotoCase = 213; continue; };\r
+} else {\r
+if (yych <= '[') { gotoCase = 218; continue; };\r
+if (yych <= '\\') { gotoCase = 216; continue; };\r
+{ gotoCase = 213; continue; };\r
+}\r
+}\r
+case 215:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych == '\r') { gotoCase = 165; continue; };\r
+{ gotoCase = 200; continue; };\r
+case 216:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 217; continue; };\r
+if (yych != '\r') { gotoCase = 213; continue; };\r
+case 217:\r
+this.setLexCondition(this._lexConditions.REGEX);\r
+{ this.tokenType = "javascript-regexp"; return cursor; }\r
+case 218:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 218; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 218; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych == '/') { gotoCase = 165; continue; };\r
+{ gotoCase = 218; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 225; continue; };\r
+if (yych <= ']') { gotoCase = 223; continue; };\r
+{ gotoCase = 218; continue; };\r
+}\r
+}\r
+case 220:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'h') {\r
+if (yych == 'g') { gotoCase = 220; continue; };\r
+} else {\r
+if (yych <= 'i') { gotoCase = 220; continue; };\r
+if (yych == 'm') { gotoCase = 220; continue; };\r
+}\r
+{ this.tokenType = "javascript-regexp"; return cursor; }\r
+case 223:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 223; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 223; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+} else {\r
+if (yych <= 'Z') {\r
+if (yych == '/') { gotoCase = 220; continue; };\r
+{ gotoCase = 223; continue; };\r
+} else {\r
+if (yych <= '[') { gotoCase = 218; continue; };\r
+if (yych <= '\\') { gotoCase = 226; continue; };\r
+{ gotoCase = 223; continue; };\r
+}\r
+}\r
+case 225:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych == '\r') { gotoCase = 165; continue; };\r
+{ gotoCase = 218; continue; };\r
+case 226:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 217; continue; };\r
+if (yych == '\r') { gotoCase = 217; continue; };\r
+{ gotoCase = 223; continue; };\r
+case 227:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 217; continue; };\r
+if (yych == '\r') { gotoCase = 217; continue; };\r
+{ gotoCase = 197; continue; };\r
+case 228:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 228; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 228; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych == '/') { gotoCase = 165; continue; };\r
+{ gotoCase = 228; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 232; continue; };\r
+if (yych >= '^') { gotoCase = 228; continue; };\r
+}\r
+}\r
+case 230:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+{ gotoCase = 230; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 165; continue; };\r
+if (yych <= ')') { gotoCase = 230; continue; };\r
+{ gotoCase = 197; continue; };\r
+}\r
+} else {\r
+if (yych <= 'Z') {\r
+if (yych == '/') { gotoCase = 220; continue; };\r
+{ gotoCase = 230; continue; };\r
+} else {\r
+if (yych <= '[') { gotoCase = 228; continue; };\r
+if (yych <= '\\') { gotoCase = 233; continue; };\r
+{ gotoCase = 230; continue; };\r
+}\r
+}\r
+case 232:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych == '\r') { gotoCase = 165; continue; };\r
+{ gotoCase = 228; continue; };\r
+case 233:\r
+yyaccept = 3;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 217; continue; };\r
+if (yych == '\r') { gotoCase = 217; continue; };\r
+{ gotoCase = 230; continue; };\r
+case 234:\r
+yyaccept = 2;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'D') {\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 234; continue; };\r
+{ gotoCase = 155; continue; };\r
+} else {\r
+if (yych <= 'E') { gotoCase = 236; continue; };\r
+if (yych != 'e') { gotoCase = 155; continue; };\r
+}\r
+case 236:\r
+yych = this._charAt(++cursor);\r
+if (yych <= ',') {\r
+if (yych != '+') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= '-') { gotoCase = 237; continue; };\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 238; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 237:\r
+yych = this._charAt(++cursor);\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+case 238:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '/') { gotoCase = 155; continue; };\r
+if (yych <= '9') { gotoCase = 238; continue; };\r
+{ gotoCase = 155; continue; };\r
+case 240:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 241:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych <= '\f') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 240; continue; };\r
+{ gotoCase = 243; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 240; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 165; continue; };\r
+{ gotoCase = 246; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 246; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 240; continue; };\r
+if (yych <= '&') { gotoCase = 165; continue; };\r
+{ gotoCase = 240; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 240; continue; };\r
+if (yych <= 'e') { gotoCase = 165; continue; };\r
+{ gotoCase = 240; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 165; continue; };\r
+{ gotoCase = 240; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 245; continue; };\r
+if (yych <= 'v') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+}\r
+}\r
+case 243:\r
+++cursor;\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 245:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 248; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 248; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 248; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 246:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.SSTRING);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 248:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 249; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 249:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 250; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 250:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 240; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 240; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 251:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 252:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 165; continue; };\r
+if (yych <= '\f') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= '"') {\r
+if (yych <= '!') { gotoCase = 251; continue; };\r
+{ gotoCase = 243; continue; };\r
+} else {\r
+if (yych != '\\') { gotoCase = 251; continue; };\r
+}\r
+}\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'a') {\r
+if (yych <= '!') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 165; continue; };\r
+{ gotoCase = 255; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 255; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '"') { gotoCase = 251; continue; };\r
+if (yych <= '&') { gotoCase = 165; continue; };\r
+{ gotoCase = 251; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'q') {\r
+if (yych <= 'f') {\r
+if (yych <= 'b') { gotoCase = 251; continue; };\r
+if (yych <= 'e') { gotoCase = 165; continue; };\r
+{ gotoCase = 251; continue; };\r
+} else {\r
+if (yych == 'n') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych == 's') { gotoCase = 165; continue; };\r
+{ gotoCase = 251; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 254; continue; };\r
+if (yych <= 'v') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+}\r
+}\r
+case 254:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 257; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 257; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 257; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 255:\r
+++cursor;\r
+this.setLexCondition(this._lexConditions.DSTRING);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 257:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 258; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 258:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych >= ':') { gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 259; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych >= 'g') { gotoCase = 165; continue; };\r
+}\r
+case 259:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 165; continue; };\r
+if (yych <= '9') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 251; continue; };\r
+if (yych <= '`') { gotoCase = 165; continue; };\r
+if (yych <= 'f') { gotoCase = 251; continue; };\r
+{ gotoCase = 165; continue; };\r
+}\r
+case 260:\r
+++cursor;\r
+if ((yych = this._charAt(cursor)) == '=') { gotoCase = 163; continue; };\r
+{ gotoCase = 139; continue; };\r
+\r
+case this.case_REGEX:\r
+yych = this._charAt(cursor);\r
+if (yych <= '.') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 264; continue; };\r
+{ gotoCase = 265; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 265; continue; };\r
+{ gotoCase = 264; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '/') { gotoCase = 267; continue; };\r
+if (yych <= 'Z') { gotoCase = 264; continue; };\r
+{ gotoCase = 269; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 270; continue; };\r
+if (yych <= ']') { gotoCase = 265; continue; };\r
+{ gotoCase = 264; continue; };\r
+}\r
+}\r
+case 263:\r
+{ this.tokenType = "javascript-regexp"; return cursor; }\r
+case 264:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 272; continue; };\r
+case 265:\r
+++cursor;\r
+case 266:\r
+{ this.tokenType = null; return cursor; }\r
+case 267:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 278; continue; };\r
+case 268:\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = "javascript-regexp"; return cursor; }\r
+case 269:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 266; continue; };\r
+if (yych <= '\f') { gotoCase = 276; continue; };\r
+{ gotoCase = 266; continue; };\r
+} else {\r
+if (yych <= '*') {\r
+if (yych <= ')') { gotoCase = 276; continue; };\r
+{ gotoCase = 266; continue; };\r
+} else {\r
+if (yych == '/') { gotoCase = 266; continue; };\r
+{ gotoCase = 276; continue; };\r
+}\r
+}\r
+case 270:\r
+yych = this._charAt(++cursor);\r
+if (yych == '\n') { gotoCase = 266; continue; };\r
+if (yych == '\r') { gotoCase = 266; continue; };\r
+case 271:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 272:\r
+if (yych <= '.') {\r
+if (yych <= '\n') {\r
+if (yych <= '\t') { gotoCase = 271; continue; };\r
+{ gotoCase = 263; continue; };\r
+} else {\r
+if (yych == '\r') { gotoCase = 263; continue; };\r
+{ gotoCase = 271; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych <= '/') { gotoCase = 277; continue; };\r
+if (yych <= 'Z') { gotoCase = 271; continue; };\r
+{ gotoCase = 275; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 273; continue; };\r
+if (yych <= ']') { gotoCase = 263; continue; };\r
+{ gotoCase = 271; continue; };\r
+}\r
+}\r
+case 273:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 274; continue; };\r
+if (yych != '\r') { gotoCase = 271; continue; };\r
+case 274:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 263; continue; };\r
+} else {\r
+{ gotoCase = 266; continue; };\r
+}\r
+case 275:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 276:\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 274; continue; };\r
+{ gotoCase = 275; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 274; continue; };\r
+if (yych <= ')') { gotoCase = 275; continue; };\r
+{ gotoCase = 274; continue; };\r
+}\r
+} else {\r
+if (yych <= '[') {\r
+if (yych == '/') { gotoCase = 274; continue; };\r
+{ gotoCase = 275; continue; };\r
+} else {\r
+if (yych <= '\\') { gotoCase = 281; continue; };\r
+if (yych <= ']') { gotoCase = 279; continue; };\r
+{ gotoCase = 275; continue; };\r
+}\r
+}\r
+case 277:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+case 278:\r
+if (yych <= 'h') {\r
+if (yych == 'g') { gotoCase = 277; continue; };\r
+{ gotoCase = 268; continue; };\r
+} else {\r
+if (yych <= 'i') { gotoCase = 277; continue; };\r
+if (yych == 'm') { gotoCase = 277; continue; };\r
+{ gotoCase = 268; continue; };\r
+}\r
+case 279:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '*') {\r
+if (yych <= '\f') {\r
+if (yych == '\n') { gotoCase = 263; continue; };\r
+{ gotoCase = 279; continue; };\r
+} else {\r
+if (yych <= '\r') { gotoCase = 263; continue; };\r
+if (yych <= ')') { gotoCase = 279; continue; };\r
+{ gotoCase = 271; continue; };\r
+}\r
+} else {\r
+if (yych <= 'Z') {\r
+if (yych == '/') { gotoCase = 277; continue; };\r
+{ gotoCase = 279; continue; };\r
+} else {\r
+if (yych <= '[') { gotoCase = 275; continue; };\r
+if (yych <= '\\') { gotoCase = 282; continue; };\r
+{ gotoCase = 279; continue; };\r
+}\r
+}\r
+case 281:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 274; continue; };\r
+if (yych == '\r') { gotoCase = 274; continue; };\r
+{ gotoCase = 275; continue; };\r
+case 282:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych == '\n') { gotoCase = 274; continue; };\r
+if (yych == '\r') { gotoCase = 274; continue; };\r
+{ gotoCase = 279; continue; };\r
+\r
+case this.case_SSTRING:\r
+yych = this._charAt(cursor);\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 287; continue; };\r
+if (yych <= '\f') { gotoCase = 286; continue; };\r
+{ gotoCase = 287; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 286; continue; };\r
+{ gotoCase = 289; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 291; continue; };\r
+{ gotoCase = 286; continue; };\r
+}\r
+}\r
+case 285:\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 286:\r
+yyaccept = 0;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+{ gotoCase = 293; continue; };\r
+case 287:\r
+++cursor;\r
+case 288:\r
+{ this.tokenType = null; return cursor; }\r
+case 289:\r
+++cursor;\r
+case 290:\r
+this.setLexCondition(this._lexConditions.NODIV);\r
+{ this.tokenType = "javascript-string"; return cursor; }\r
+case 291:\r
+yyaccept = 1;\r
+yych = this._charAt(YYMARKER = ++cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 292; continue; };\r
+if (yych <= '&') { gotoCase = 288; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 288; continue; };\r
+} else {\r
+if (yych != 'b') { gotoCase = 288; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych >= 'g') { gotoCase = 288; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 292; continue; };\r
+if (yych <= 'q') { gotoCase = 288; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 288; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 294; continue; };\r
+if (yych >= 'w') { gotoCase = 288; continue; };\r
+}\r
+}\r
+}\r
+case 292:\r
+yyaccept = 0;\r
+YYMARKER = ++cursor;\r
+yych = this._charAt(cursor);\r
+case 293:\r
+if (yych <= '\r') {\r
+if (yych == '\n') { gotoCase = 285; continue; };\r
+if (yych <= '\f') { gotoCase = 292; continue; };\r
+{ gotoCase = 285; continue; };\r
+} else {\r
+if (yych <= '\'') {\r
+if (yych <= '&') { gotoCase = 292; continue; };\r
+{ gotoCase = 300; continue; };\r
+} else {\r
+if (yych == '\\') { gotoCase = 299; continue; };\r
+{ gotoCase = 292; continue; };\r
+}\r
+}\r
+case 294:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 295; continue; };\r
+if (yych <= '9') { gotoCase = 296; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 296; continue; };\r
+if (yych <= '`') { gotoCase = 295; continue; };\r
+if (yych <= 'f') { gotoCase = 296; continue; };\r
+}\r
+case 295:\r
+cursor = YYMARKER;\r
+if (yyaccept <= 0) {\r
+{ gotoCase = 285; continue; };\r
+} else {\r
+{ gotoCase = 288; continue; };\r
+}\r
+case 296:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 295; continue; };\r
+if (yych >= ':') { gotoCase = 295; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 297; continue; };\r
+if (yych <= '`') { gotoCase = 295; continue; };\r
+if (yych >= 'g') { gotoCase = 295; continue; };\r
+}\r
+case 297:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 295; continue; };\r
+if (yych >= ':') { gotoCase = 295; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 298; continue; };\r
+if (yych <= '`') { gotoCase = 295; continue; };\r
+if (yych >= 'g') { gotoCase = 295; continue; };\r
+}\r
+case 298:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= '@') {\r
+if (yych <= '/') { gotoCase = 295; continue; };\r
+if (yych <= '9') { gotoCase = 292; continue; };\r
+{ gotoCase = 295; continue; };\r
+} else {\r
+if (yych <= 'F') { gotoCase = 292; continue; };\r
+if (yych <= '`') { gotoCase = 295; continue; };\r
+if (yych <= 'f') { gotoCase = 292; continue; };\r
+{ gotoCase = 295; continue; };\r
+}\r
+case 299:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+if (yych <= 'e') {\r
+if (yych <= '\'') {\r
+if (yych == '"') { gotoCase = 292; continue; };\r
+if (yych <= '&') { gotoCase = 295; continue; };\r
+{ gotoCase = 292; continue; };\r
+} else {\r
+if (yych <= '\\') {\r
+if (yych <= '[') { gotoCase = 295; continue; };\r
+{ gotoCase = 292; continue; };\r
+} else {\r
+if (yych == 'b') { gotoCase = 292; continue; };\r
+{ gotoCase = 295; continue; };\r
+}\r
+}\r
+} else {\r
+if (yych <= 'r') {\r
+if (yych <= 'm') {\r
+if (yych <= 'f') { gotoCase = 292; continue; };\r
+{ gotoCase = 295; continue; };\r
+} else {\r
+if (yych <= 'n') { gotoCase = 292; continue; };\r
+if (yych <= 'q') { gotoCase = 295; continue; };\r
+{ gotoCase = 292; continue; };\r
+}\r
+} else {\r
+if (yych <= 't') {\r
+if (yych <= 's') { gotoCase = 295; continue; };\r
+{ gotoCase = 292; continue; };\r
+} else {\r
+if (yych <= 'u') { gotoCase = 294; continue; };\r
+if (yych <= 'v') { gotoCase = 292; continue; };\r
+{ gotoCase = 295; continue; };\r
+}\r
+}\r
+}\r
+case 300:\r
+++cursor;\r
+yych = this._charAt(cursor);\r
+{ gotoCase = 290; continue; };\r
+}\r
+\r
+}\r
+}\r
+}\r
+\r
+WebInspector.SourceJavaScriptTokenizer.prototype.__proto__ = WebInspector.SourceTokenizer.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.SourceView = function(resource)\r
+{\r
+WebInspector.ResourceView.call(this, resource);\r
+\r
+this.element.addStyleClass("source");\r
+\r
+var scripts = WebInspector.debuggerModel.scriptsForURL(resource.url);\r
+var canEditScripts = WebInspector.panels.scripts.canEditScripts() && resource.type === WebInspector.Resource.Type.Script;\r
+this.sourceFrame = new WebInspector.SourceFrame(this.element, scripts, canEditScripts);\r
+resource.addEventListener("finished", this._resourceLoadingFinished, this);\r
+this._frameNeedsSetup = true;\r
+}\r
+\r
+\r
+\r
+WebInspector.SourceView.DefaultMIMETypeForResourceType = {\r
+0: "text/html",\r
+1: "text/css",\r
+4: "text/javascript"\r
+}\r
+\r
+WebInspector.SourceView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.ResourceView.prototype.show.call(this, parentElement);\r
+this.setupSourceFrameIfNeeded();\r
+this.sourceFrame.visible = true;\r
+this.resize();\r
+},\r
+\r
+hide: function()\r
+{\r
+this.sourceFrame.visible = false;\r
+if (!this._frameNeedsSetup)\r
+this.sourceFrame.clearLineHighlight();\r
+WebInspector.View.prototype.hide.call(this);\r
+this._currentSearchResultIndex = -1;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this.sourceFrame)\r
+this.sourceFrame.resize();\r
+},\r
+\r
+get scrollTop()\r
+{\r
+return this.sourceFrame.scrollTop;\r
+},\r
+\r
+set scrollTop(scrollTop)\r
+{\r
+this.sourceFrame.scrollTop = scrollTop;\r
+},\r
+\r
+\r
+setupSourceFrameIfNeeded: function()\r
+{\r
+if (!this._frameNeedsSetup)\r
+return;\r
+\r
+delete this._frameNeedsSetup;\r
+this.resource.requestContent(this._contentLoaded.bind(this));\r
+},\r
+\r
+hasContent: function()\r
+{\r
+return true;\r
+},\r
+\r
+_contentLoaded: function(content)\r
+{\r
+var mimeType = this._canonicalMimeType(this.resource);\r
+this.sourceFrame.setContent(mimeType, content, this.resource.url);\r
+this._sourceFrameSetupFinished();\r
+},\r
+\r
+_canonicalMimeType: function(resource)\r
+{\r
+return WebInspector.SourceView.DefaultMIMETypeForResourceType[resource.type] || resource.mimeType;\r
+},\r
+\r
+_resourceLoadingFinished: function(event)\r
+{\r
+this._frameNeedsSetup = true;\r
+this._sourceFrameSetup = false;\r
+if (this.visible)\r
+this.setupSourceFrameIfNeeded();\r
+this.resource.removeEventListener("finished", this._resourceLoadingFinished, this);\r
+},\r
+\r
+\r
+\r
+\r
+searchCanceled: function()\r
+{\r
+this._currentSearchResultIndex = -1;\r
+this._searchResults = [];\r
+this.sourceFrame.clearMarkedRange();\r
+delete this._delayedFindSearchMatches;\r
+},\r
+\r
+performSearch: function(query, finishedCallback)\r
+{\r
+\r
+this.searchCanceled();\r
+\r
+this._searchFinishedCallback = finishedCallback;\r
+\r
+function findSearchMatches(query, finishedCallback)\r
+{\r
+this._searchResults = this.sourceFrame.findSearchMatches(query);\r
+if (this._searchResults)\r
+finishedCallback(this, this._searchResults.length);\r
+}\r
+\r
+if (!this._sourceFrameSetup) {\r
+\r
+this._delayedFindSearchMatches = findSearchMatches.bind(this, query, finishedCallback);\r
+this.setupSourceFrameIfNeeded();\r
+return;\r
+}\r
+\r
+findSearchMatches.call(this, query, finishedCallback);\r
+},\r
+\r
+jumpToFirstSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+this._currentSearchResultIndex = 0;\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToLastSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+if (++this._currentSearchResultIndex >= this._searchResults.length)\r
+this._currentSearchResultIndex = 0;\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+if (--this._currentSearchResultIndex < 0)\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+showingFirstSearchResult: function()\r
+{\r
+return (this._currentSearchResultIndex === 0);\r
+},\r
+\r
+showingLastSearchResult: function()\r
+{\r
+return (this._searchResults && this._currentSearchResultIndex === (this._searchResults.length - 1));\r
+},\r
+\r
+revealLine: function(lineNumber)\r
+{\r
+this.setupSourceFrameIfNeeded();\r
+this.sourceFrame.revealLine(lineNumber);\r
+},\r
+\r
+highlightLine: function(lineNumber)\r
+{\r
+this.setupSourceFrameIfNeeded();\r
+this.sourceFrame.highlightLine(lineNumber);\r
+},\r
+\r
+addMessage: function(msg)\r
+{\r
+this.sourceFrame.addMessage(msg);\r
+},\r
+\r
+clearMessages: function()\r
+{\r
+this.sourceFrame.clearMessages();\r
+},\r
+\r
+_jumpToSearchResult: function(index)\r
+{\r
+var foundRange = this._searchResults[index];\r
+if (!foundRange)\r
+return;\r
+\r
+this.sourceFrame.markAndRevealRange(foundRange);\r
+},\r
+\r
+_sourceFrameSetupFinished: function()\r
+{\r
+this._sourceFrameSetup = true;\r
+this.resize();\r
+if (this._delayedFindSearchMatches) {\r
+this._delayedFindSearchMatches();\r
+delete this._delayedFindSearchMatches;\r
+}\r
+}\r
+}\r
+\r
+WebInspector.SourceView.prototype.__proto__ = WebInspector.ResourceView.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.FontView = function(resource)\r
+{\r
+WebInspector.ResourceView.call(this, resource);\r
+\r
+this.element.addStyleClass("font");\r
+}\r
+\r
+WebInspector.FontView.prototype = {\r
+hasContent: function()\r
+{\r
+return true;\r
+},\r
+\r
+_createContentIfNeeded: function()\r
+{\r
+if (this.fontPreviewElement)\r
+return;\r
+\r
+var uniqueFontName = "WebInspectorFontPreview" + this.resource.identifier;\r
+\r
+this.fontStyleElement = document.createElement("style");\r
+this.fontStyleElement.textContent = "@font-face { font-family: \"" + uniqueFontName + "\"; src: url(" + this.resource.url + "); }";\r
+document.head.appendChild(this.fontStyleElement);\r
+\r
+this.fontPreviewElement = document.createElement("div");\r
+this.element.appendChild(this.fontPreviewElement);\r
+\r
+this.fontPreviewElement.style.setProperty("font-family", uniqueFontName, null);\r
+this.fontPreviewElement.innerHTML = "ABCDEFGHIJKLM<br>NOPQRSTUVWXYZ<br>abcdefghijklm<br>nopqrstuvwxyz<br>1234567890";\r
+this._lineCount = this.fontPreviewElement.getElementsByTagName("br").length + 1;\r
+\r
+this.updateFontPreviewSize();\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.ResourceView.prototype.show.call(this, parentElement);\r
+this._createContentIfNeeded();\r
+this.updateFontPreviewSize();\r
+},\r
+\r
+resize: function()\r
+{\r
+this.updateFontPreviewSize();\r
+WebInspector.ResourceView.prototype.resize.call(this);\r
+},\r
+\r
+updateFontPreviewSize: function()\r
+{\r
+if (!this.fontPreviewElement || !this.visible)\r
+return;\r
+\r
+const measureFontSize = 50;\r
+this.fontPreviewElement.style.setProperty("font-size", measureFontSize + "px", null);\r
+this.fontPreviewElement.style.setProperty("position", "absolute", null);\r
+this.fontPreviewElement.style.removeProperty("height");\r
+\r
+const height = this.fontPreviewElement.offsetHeight;\r
+const width = this.fontPreviewElement.offsetWidth;\r
+\r
+\r
+const containerWidth = this.element.offsetWidth - 50;\r
+\r
+if (!height || !width || !containerWidth) {\r
+this.fontPreviewElement.style.removeProperty("font-size");\r
+this.fontPreviewElement.style.removeProperty("position");\r
+return;\r
+}\r
+\r
+var realLineHeight = Math.floor(height / this._lineCount);\r
+var fontSizeLineRatio = measureFontSize / realLineHeight;\r
+var widthRatio = containerWidth / width;\r
+var finalFontSize = Math.floor(realLineHeight * widthRatio * fontSizeLineRatio) - 2;\r
+\r
+this.fontPreviewElement.style.setProperty("font-size", finalFontSize + "px", null);\r
+this.fontPreviewElement.style.setProperty("height", this.fontPreviewElement.offsetHeight + "px", null);\r
+this.fontPreviewElement.style.removeProperty("position");\r
+}\r
+}\r
+\r
+WebInspector.FontView.prototype.__proto__ = WebInspector.ResourceView.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ImageView = function(resource)\r
+{\r
+WebInspector.ResourceView.call(this, resource);\r
+\r
+this.element.addStyleClass("image");\r
+}\r
+\r
+WebInspector.ImageView.prototype = {\r
+hasContent: function()\r
+{\r
+return true;\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.ResourceView.prototype.show.call(this, parentElement);\r
+this._createContentIfNeeded();\r
+},\r
+\r
+_createContentIfNeeded: function()\r
+{\r
+if (this._container)\r
+return;\r
+\r
+var imageContainer = document.createElement("div");\r
+imageContainer.className = "image";\r
+this.element.appendChild(imageContainer);\r
+\r
+var imagePreviewElement = document.createElement("img");\r
+imagePreviewElement.addStyleClass("resource-image-view");\r
+imageContainer.appendChild(imagePreviewElement);\r
+\r
+this._container = document.createElement("div");\r
+this._container.className = "info";\r
+this.element.appendChild(this._container);\r
+\r
+var imageNameElement = document.createElement("h1");\r
+imageNameElement.className = "title";\r
+imageNameElement.textContent = this.resource.displayName;\r
+this._container.appendChild(imageNameElement);\r
+\r
+var infoListElement = document.createElement("dl");\r
+infoListElement.className = "infoList";\r
+\r
+function onResourceContent(element, content)\r
+{\r
+imagePreviewElement.setAttribute("src", this.resource.contentURL);\r
+}\r
+this.resource.requestContent(onResourceContent.bind(this));\r
+\r
+\r
+function onImageLoad()\r
+{\r
+var content = this.resource.content;\r
+if (content)\r
+var resourceSize = this._base64ToSize(content);\r
+else\r
+var resourceSize = this.resource.resourceSize;\r
+\r
+var imageProperties = [\r
+{ name: WebInspector.UIString("Dimensions"), value: WebInspector.UIString("%d × %d", imagePreviewElement.naturalWidth, imagePreviewElement.naturalHeight) },\r
+{ name: WebInspector.UIString("File size"), value: Number.bytesToString(resourceSize, WebInspector.UIString) },\r
+{ name: WebInspector.UIString("MIME type"), value: this.resource.mimeType }\r
+];\r
+\r
+infoListElement.removeChildren();\r
+for (var i = 0; i < imageProperties.length; ++i) {\r
+var dt = document.createElement("dt");\r
+dt.textContent = imageProperties[i].name;\r
+infoListElement.appendChild(dt);\r
+var dd = document.createElement("dd");\r
+dd.textContent = imageProperties[i].value;\r
+infoListElement.appendChild(dd);\r
+}\r
+this._container.appendChild(infoListElement);\r
+}\r
+imagePreviewElement.addEventListener("load", onImageLoad.bind(this), false);\r
+},\r
+\r
+_base64ToSize: function(content)\r
+{\r
+if (!content.length)\r
+return 0;\r
+var size = (content.length || 0) * 3 / 4;\r
+if (content.length > 0 && content[content.length - 1] === "=")\r
+size--;\r
+if (content.length > 1 && content[content.length - 2] === "=")\r
+size--;\r
+return size;\r
+}\r
+}\r
+\r
+WebInspector.ImageView.prototype.__proto__ = WebInspector.ResourceView.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DatabaseTableView = function(database, tableName)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.database = database;\r
+this.tableName = tableName;\r
+\r
+this.element.addStyleClass("storage-view");\r
+this.element.addStyleClass("table");\r
+\r
+this.refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");\r
+this.refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);\r
+}\r
+\r
+WebInspector.DatabaseTableView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.update();\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this.refreshButton.element];\r
+},\r
+\r
+update: function()\r
+{\r
+this.database.executeSql("SELECT * FROM " + this.tableName, this._queryFinished.bind(this), this._queryError.bind(this));\r
+},\r
+\r
+_queryFinished: function(columnNames, values)\r
+{\r
+this.element.removeChildren();\r
+\r
+var dataGrid = WebInspector.panels.resources.dataGridForResult(columnNames, values);\r
+if (!dataGrid) {\r
+var emptyMsgElement = document.createElement("div");\r
+emptyMsgElement.className = "storage-empty-view";\r
+emptyMsgElement.textContent = WebInspector.UIString("The “%s”\ntable is empty.", this.tableName);\r
+this.element.appendChild(emptyMsgElement);\r
+return;\r
+}\r
+\r
+this.element.appendChild(dataGrid.element);\r
+dataGrid.autoSizeColumns(5);\r
+},\r
+\r
+_queryError: function(error)\r
+{\r
+this.element.removeChildren();\r
+\r
+var errorMsgElement = document.createElement("div");\r
+errorMsgElement.className = "storage-table-error";\r
+errorMsgElement.textContent = WebInspector.UIString("An error occurred trying to\nread the “%s” table.", this.tableName);\r
+this.element.appendChild(errorMsgElement);\r
+},\r
+\r
+_refreshButtonClicked: function(event)\r
+{\r
+this.update();\r
+}\r
+}\r
+\r
+WebInspector.DatabaseTableView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DatabaseQueryView = function(database)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.database = database;\r
+\r
+this.element.addStyleClass("storage-view");\r
+this.element.addStyleClass("query");\r
+this.element.addStyleClass("monospace");\r
+this.element.tabIndex = 0;\r
+\r
+this.element.addEventListener("selectstart", this._selectStart.bind(this), false);\r
+\r
+this.promptElement = document.createElement("div");\r
+this.promptElement.className = "database-query-prompt";\r
+this.promptElement.appendChild(document.createElement("br"));\r
+this.promptElement.addEventListener("keydown", this._promptKeyDown.bind(this), true);\r
+this.element.appendChild(this.promptElement);\r
+\r
+this.prompt = new WebInspector.TextPrompt(this.promptElement, this.completions.bind(this), " ");\r
+}\r
+\r
+WebInspector.DatabaseQueryView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+\r
+function moveBackIfOutside()\r
+{\r
+if (!this.prompt.isCaretInsidePrompt() && window.getSelection().isCollapsed)\r
+this.prompt.moveCaretToEndOfPrompt();\r
+}\r
+\r
+setTimeout(moveBackIfOutside.bind(this), 0);\r
+},\r
+\r
+completions: function(wordRange, bestMatchOnly, completionsReadyCallback)\r
+{\r
+var prefix = wordRange.toString().toLowerCase();\r
+if (!prefix.length)\r
+return;\r
+\r
+var results = [];\r
+\r
+function accumulateMatches(textArray)\r
+{\r
+if (bestMatchOnly && results.length)\r
+return;\r
+for (var i = 0; i < textArray.length; ++i) {\r
+var text = textArray[i].toLowerCase();\r
+if (text.length < prefix.length)\r
+continue;\r
+if (text.indexOf(prefix) !== 0)\r
+continue;\r
+results.push(textArray[i]);\r
+if (bestMatchOnly)\r
+return;\r
+}\r
+}\r
+\r
+function tableNamesCallback(tableNames)\r
+{\r
+accumulateMatches(tableNames.map(function(name) { return name + " " }));\r
+accumulateMatches(["SELECT ", "FROM ", "WHERE ", "LIMIT ", "DELETE FROM ", "CREATE ", "DROP ", "TABLE ", "INDEX ", "UPDATE ", "INSERT INTO ", "VALUES ("]);\r
+\r
+completionsReadyCallback(results);\r
+}\r
+this.database.getTableNames(tableNamesCallback);\r
+},\r
+\r
+_promptKeyDown: function(event)\r
+{\r
+if (isEnterKey(event)) {\r
+this._enterKeyPressed(event);\r
+return;\r
+}\r
+},\r
+\r
+_selectStart: function(event)\r
+{\r
+if (this._selectionTimeout)\r
+clearTimeout(this._selectionTimeout);\r
+\r
+this.prompt.clearAutoComplete();\r
+\r
+function moveBackIfOutside()\r
+{\r
+delete this._selectionTimeout;\r
+if (!this.prompt.isCaretInsidePrompt() && window.getSelection().isCollapsed)\r
+this.prompt.moveCaretToEndOfPrompt();\r
+this.prompt.autoCompleteSoon();\r
+}\r
+\r
+this._selectionTimeout = setTimeout(moveBackIfOutside.bind(this), 100);\r
+},\r
+\r
+_enterKeyPressed: function(event)\r
+{\r
+event.preventDefault();\r
+event.stopPropagation();\r
+\r
+this.prompt.clearAutoComplete(true);\r
+\r
+var query = this.prompt.text;\r
+if (!query.length)\r
+return;\r
+\r
+this.prompt.history.push(query);\r
+this.prompt.historyOffset = 0;\r
+this.prompt.text = "";\r
+\r
+this.database.executeSql(query, this._queryFinished.bind(this, query), this._queryError.bind(this, query));\r
+},\r
+\r
+_queryFinished: function(query, columnNames, values)\r
+{\r
+var dataGrid = WebInspector.panels.resources.dataGridForResult(columnNames, values);\r
+var trimmedQuery = query.trim();\r
+\r
+if (dataGrid) {\r
+dataGrid.element.addStyleClass("inline");\r
+this._appendQueryResult(trimmedQuery, dataGrid.element);\r
+dataGrid.autoSizeColumns(5);            \r
+}\r
+\r
+if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i))\r
+WebInspector.panels.resources.updateDatabaseTables(this.database);\r
+},\r
+\r
+_queryError: function(query, error)\r
+{\r
+if (error.message)\r
+var message = error.message;\r
+else if (error.code == 2)\r
+var message = WebInspector.UIString("Database no longer has expected version.");\r
+else\r
+var message = WebInspector.UIString("An unexpected error %s occurred.", error.code);\r
+\r
+this._appendQueryResult(query, message, "error");\r
+},\r
+\r
+_appendQueryResult: function(query, result, resultClassName)\r
+{\r
+var element = document.createElement("div");\r
+element.className = "database-user-query";\r
+\r
+var commandTextElement = document.createElement("span");\r
+commandTextElement.className = "database-query-text";\r
+commandTextElement.textContent = query;\r
+element.appendChild(commandTextElement);\r
+\r
+var resultElement = document.createElement("div");\r
+resultElement.className = "database-query-result";\r
+\r
+if (resultClassName)\r
+resultElement.addStyleClass(resultClassName);\r
+\r
+if (typeof result === "string" || result instanceof String)\r
+resultElement.textContent = result;\r
+else if (result && result.nodeName)\r
+resultElement.appendChild(result);\r
+\r
+if (resultElement.childNodes.length)\r
+element.appendChild(resultElement);\r
+\r
+this.element.insertBefore(element, this.promptElement);\r
+this.promptElement.scrollIntoView(false);\r
+}\r
+}\r
+\r
+WebInspector.DatabaseQueryView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ScriptView = function(script)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("script-view");\r
+\r
+this.script = script;\r
+this.script.addEventListener(WebInspector.Script.Events.SourceChanged, this._scriptSourceChanged, this);\r
+\r
+this._frameNeedsSetup = true;\r
+this._sourceFrameSetup = false;\r
+this.sourceFrame = new WebInspector.SourceFrame(this.element, [script], WebInspector.panels.scripts.canEditScripts());\r
+}\r
+\r
+WebInspector.ScriptView.prototype = {\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.setupSourceFrameIfNeeded();\r
+this.sourceFrame.visible = true;\r
+this.resize();\r
+},\r
+\r
+setupSourceFrameIfNeeded: function()\r
+{\r
+if (!this._frameNeedsSetup)\r
+return;\r
+delete this._frameNeedsSetup;\r
+\r
+this.attach();\r
+\r
+if (this.script.source)\r
+this._sourceFrameSetupFinished();\r
+else\r
+InspectorBackend.getScriptSource(this.script.sourceID, this._didGetScriptSource.bind(this));\r
+},\r
+\r
+_didGetScriptSource: function(source)\r
+{\r
+this.script.source = source || WebInspector.UIString("<source is not available>");\r
+this._sourceFrameSetupFinished();\r
+},\r
+\r
+_sourceFrameSetupFinished: function()\r
+{\r
+this.sourceFrame.setContent("text/javascript", this._prependWhitespace(this.script.source));\r
+this._sourceFrameSetup = true;\r
+},\r
+\r
+_prependWhitespace: function(content) {\r
+var prefix = "";\r
+for (var i = 0; i < this.script.startingLine - 1; ++i)\r
+prefix += "\n";\r
+return prefix + content;\r
+},\r
+\r
+attach: function()\r
+{\r
+if (!this.element.parentNode)\r
+document.getElementById("script-resource-views").appendChild(this.element);\r
+},\r
+\r
+_scriptSourceChanged: function(event)\r
+{\r
+this.sourceFrame.updateContent(this._prependWhitespace(this.script.source));\r
+},\r
+\r
+\r
+\r
+\r
+hide: WebInspector.SourceView.prototype.hide,\r
+revealLine: WebInspector.SourceView.prototype.revealLine,\r
+highlightLine: WebInspector.SourceView.prototype.highlightLine,\r
+addMessage: WebInspector.SourceView.prototype.addMessage,\r
+clearMessages: WebInspector.SourceView.prototype.clearMessages,\r
+searchCanceled: WebInspector.SourceView.prototype.searchCanceled,\r
+performSearch: WebInspector.SourceView.prototype.performSearch,\r
+jumpToFirstSearchResult: WebInspector.SourceView.prototype.jumpToFirstSearchResult,\r
+jumpToLastSearchResult: WebInspector.SourceView.prototype.jumpToLastSearchResult,\r
+jumpToNextSearchResult: WebInspector.SourceView.prototype.jumpToNextSearchResult,\r
+jumpToPreviousSearchResult: WebInspector.SourceView.prototype.jumpToPreviousSearchResult,\r
+showingFirstSearchResult: WebInspector.SourceView.prototype.showingFirstSearchResult,\r
+showingLastSearchResult: WebInspector.SourceView.prototype.showingLastSearchResult,\r
+_jumpToSearchResult: WebInspector.SourceView.prototype._jumpToSearchResult,\r
+resize: WebInspector.SourceView.prototype.resize\r
+}\r
+\r
+WebInspector.ScriptView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ProfileDataGridNode = function(profileView, profileNode, owningTree, hasChildren)\r
+{\r
+this.profileView = profileView;\r
+this.profileNode = profileNode;\r
+\r
+WebInspector.DataGridNode.call(this, null, hasChildren);\r
+\r
+this.addEventListener("populate", this._populate, this);\r
+\r
+this.tree = owningTree;\r
+\r
+this.childrenByCallUID = {};\r
+this.lastComparator = null;\r
+\r
+this.callUID = profileNode.callUID;\r
+this.selfTime = profileNode.selfTime;\r
+this.totalTime = profileNode.totalTime;\r
+this.functionName = profileNode.functionName;\r
+this.numberOfCalls = profileNode.numberOfCalls;\r
+this.url = profileNode.url;\r
+}\r
+\r
+WebInspector.ProfileDataGridNode.prototype = {\r
+get data()\r
+{\r
+function formatMilliseconds(time)\r
+{\r
+return Number.secondsToString(time / 1000, WebInspector.UIString, !Preferences.samplingCPUProfiler);\r
+}\r
+\r
+var data = {};\r
+\r
+data["function"] = this.functionName;\r
+data["calls"] = this.numberOfCalls;\r
+\r
+if (this.profileView.showSelfTimeAsPercent)\r
+data["self"] = WebInspector.UIString("%.2f%%", this.selfPercent);\r
+else\r
+data["self"] = formatMilliseconds(this.selfTime);\r
+\r
+if (this.profileView.showTotalTimeAsPercent)\r
+data["total"] = WebInspector.UIString("%.2f%%", this.totalPercent);\r
+else\r
+data["total"] = formatMilliseconds(this.totalTime);\r
+\r
+if (this.profileView.showAverageTimeAsPercent)\r
+data["average"] = WebInspector.UIString("%.2f%%", this.averagePercent);\r
+else\r
+data["average"] = formatMilliseconds(this.averageTime);\r
+\r
+return data;\r
+},\r
+\r
+createCell: function(columnIdentifier)\r
+{\r
+var cell = WebInspector.DataGridNode.prototype.createCell.call(this, columnIdentifier);\r
+\r
+if (columnIdentifier === "self" && this._searchMatchedSelfColumn)\r
+cell.addStyleClass("highlight");\r
+else if (columnIdentifier === "total" && this._searchMatchedTotalColumn)\r
+cell.addStyleClass("highlight");\r
+else if (columnIdentifier === "average" && this._searchMatchedAverageColumn)\r
+cell.addStyleClass("highlight");\r
+else if (columnIdentifier === "calls" && this._searchMatchedCallsColumn)\r
+cell.addStyleClass("highlight");\r
+\r
+if (columnIdentifier !== "function")\r
+return cell;\r
+\r
+if (this.profileNode._searchMatchedFunctionColumn)\r
+cell.addStyleClass("highlight");\r
+\r
+if (this.profileNode.url) {\r
+var lineNumber;\r
+if (this.profileNode.lineNumber > 0)\r
+lineNumber = this.profileNode.lineNumber;\r
+var urlElement = WebInspector.linkifyResourceAsNode(this.profileNode.url, "scripts", lineNumber, "profile-node-file");\r
+cell.insertBefore(urlElement, cell.firstChild);\r
+}\r
+\r
+return cell;\r
+},\r
+\r
+select: function(supressSelectedEvent)\r
+{\r
+WebInspector.DataGridNode.prototype.select.call(this, supressSelectedEvent);\r
+this.profileView._dataGridNodeSelected(this);\r
+},\r
+\r
+deselect: function(supressDeselectedEvent)\r
+{\r
+WebInspector.DataGridNode.prototype.deselect.call(this, supressDeselectedEvent);\r
+this.profileView._dataGridNodeDeselected(this);\r
+},\r
+\r
+sort: function(  comparator,   force)\r
+{\r
+var gridNodeGroups = [[this]];\r
+\r
+for (var gridNodeGroupIndex = 0; gridNodeGroupIndex < gridNodeGroups.length; ++gridNodeGroupIndex) {\r
+var gridNodes = gridNodeGroups[gridNodeGroupIndex];\r
+var count = gridNodes.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+var gridNode = gridNodes[index];\r
+\r
+\r
+\r
+if (!force && (!gridNode.expanded || gridNode.lastComparator === comparator)) {\r
+if (gridNode.children.length)\r
+gridNode.shouldRefreshChildren = true;\r
+continue;\r
+}\r
+\r
+gridNode.lastComparator = comparator;\r
+\r
+var children = gridNode.children;\r
+var childCount = children.length;\r
+\r
+if (childCount) {\r
+children.sort(comparator);\r
+\r
+for (var childIndex = 0; childIndex < childCount; ++childIndex)\r
+children[childIndex]._recalculateSiblings(childIndex);\r
+\r
+gridNodeGroups.push(children);\r
+}\r
+}\r
+}\r
+},\r
+\r
+insertChild: function(  profileDataGridNode, index)\r
+{\r
+WebInspector.DataGridNode.prototype.insertChild.call(this, profileDataGridNode, index);\r
+\r
+this.childrenByCallUID[profileDataGridNode.callUID] = profileDataGridNode;\r
+},\r
+\r
+removeChild: function(  profileDataGridNode)\r
+{\r
+WebInspector.DataGridNode.prototype.removeChild.call(this, profileDataGridNode);\r
+\r
+delete this.childrenByCallUID[profileDataGridNode.callUID];\r
+},\r
+\r
+removeChildren: function(  profileDataGridNode)\r
+{\r
+WebInspector.DataGridNode.prototype.removeChildren.call(this);\r
+\r
+this.childrenByCallUID = {};\r
+},\r
+\r
+findChild: function(  node)\r
+{\r
+if (!node)\r
+return null;\r
+return this.childrenByCallUID[node.callUID];\r
+},\r
+\r
+get averageTime()\r
+{\r
+return this.selfTime / Math.max(1, this.numberOfCalls);\r
+},\r
+\r
+get averagePercent()\r
+{\r
+return this.averageTime / this.tree.totalTime * 100.0;\r
+},\r
+\r
+get selfPercent()\r
+{\r
+return this.selfTime / this.tree.totalTime * 100.0;\r
+},\r
+\r
+get totalPercent()\r
+{\r
+return this.totalTime / this.tree.totalTime * 100.0;\r
+},\r
+\r
+get _parent()\r
+{\r
+return this.parent !== this.dataGrid ? this.parent : this.tree;\r
+},\r
+\r
+_populate: function(event)\r
+{\r
+this._sharedPopulate();\r
+\r
+if (this._parent) {\r
+var currentComparator = this._parent.lastComparator;\r
+\r
+if (currentComparator)\r
+this.sort(currentComparator, true);\r
+}\r
+\r
+if (this.removeEventListener)\r
+this.removeEventListener("populate", this._populate, this);\r
+},\r
+\r
+\r
+\r
+_save: function()\r
+{\r
+if (this._savedChildren)\r
+return;\r
+\r
+this._savedSelfTime = this.selfTime;\r
+this._savedTotalTime = this.totalTime;\r
+this._savedNumberOfCalls = this.numberOfCalls;\r
+\r
+this._savedChildren = this.children.slice();\r
+},\r
+\r
+\r
+\r
+_restore: function()\r
+{\r
+if (!this._savedChildren)\r
+return;\r
+\r
+this.selfTime = this._savedSelfTime;\r
+this.totalTime = this._savedTotalTime;\r
+this.numberOfCalls = this._savedNumberOfCalls;\r
+\r
+this.removeChildren();\r
+\r
+var children = this._savedChildren;\r
+var count = children.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+children[index]._restore();\r
+this.appendChild(children[index]);\r
+}\r
+},\r
+\r
+_merge: function(child, shouldAbsorb)\r
+{\r
+this.selfTime += child.selfTime;\r
+\r
+if (!shouldAbsorb) {\r
+this.totalTime += child.totalTime;\r
+this.numberOfCalls += child.numberOfCalls;\r
+}\r
+\r
+var children = this.children.slice();\r
+\r
+this.removeChildren();\r
+\r
+var count = children.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+if (!shouldAbsorb || children[index] !== child)\r
+this.appendChild(children[index]);\r
+}\r
+\r
+children = child.children.slice();\r
+count = children.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+var orphanedChild = children[index],\r
+existingChild = this.childrenByCallUID[orphanedChild.callUID];\r
+\r
+if (existingChild)\r
+existingChild._merge(orphanedChild, false);\r
+else\r
+this.appendChild(orphanedChild);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.ProfileDataGridNode.prototype.__proto__ = WebInspector.DataGridNode.prototype;\r
+\r
+WebInspector.ProfileDataGridTree = function(profileView, profileNode)\r
+{\r
+this.tree = this;\r
+this.children = [];\r
+\r
+this.profileView = profileView;\r
+\r
+this.totalTime = profileNode.totalTime;\r
+this.lastComparator = null;\r
+\r
+this.childrenByCallUID = {};\r
+}\r
+\r
+WebInspector.ProfileDataGridTree.prototype = {\r
+get expanded()\r
+{\r
+return true;\r
+},\r
+\r
+appendChild: function(child)\r
+{\r
+this.insertChild(child, this.children.length);\r
+},\r
+\r
+insertChild: function(child, index)\r
+{\r
+this.children.splice(index, 0, child);\r
+this.childrenByCallUID[child.callUID] = child;\r
+},\r
+\r
+removeChildren: function()\r
+{\r
+this.children = [];\r
+this.childrenByCallUID = {};\r
+},\r
+\r
+findChild: WebInspector.ProfileDataGridNode.prototype.findChild,\r
+sort: WebInspector.ProfileDataGridNode.prototype.sort,\r
+\r
+_save: function()\r
+{\r
+if (this._savedChildren)\r
+return;\r
+\r
+this._savedTotalTime = this.totalTime;\r
+this._savedChildren = this.children.slice();\r
+},\r
+\r
+restore: function()\r
+{\r
+if (!this._savedChildren)\r
+return;\r
+\r
+this.children = this._savedChildren;\r
+this.totalTime = this._savedTotalTime;\r
+\r
+var children = this.children;\r
+var count = children.length;\r
+\r
+for (var index = 0; index < count; ++index)\r
+children[index]._restore();\r
+\r
+this._savedChildren = null;\r
+}\r
+}\r
+\r
+WebInspector.ProfileDataGridTree.propertyComparators = [{}, {}];\r
+\r
+WebInspector.ProfileDataGridTree.propertyComparator = function(  property,   isAscending)\r
+{\r
+var comparator = this.propertyComparators[(isAscending ? 1 : 0)][property];\r
+\r
+if (!comparator) {\r
+if (isAscending) {\r
+comparator = function(lhs, rhs)\r
+{\r
+if (lhs[property] < rhs[property])\r
+return -1;\r
+\r
+if (lhs[property] > rhs[property])\r
+return 1;\r
+\r
+return 0;\r
+}\r
+} else {\r
+comparator = function(lhs, rhs)\r
+{\r
+if (lhs[property] > rhs[property])\r
+return -1;\r
+\r
+if (lhs[property] < rhs[property])\r
+return 1;\r
+\r
+return 0;\r
+}\r
+}\r
+\r
+this.propertyComparators[(isAscending ? 1 : 0)][property] = comparator;\r
+}\r
+\r
+return comparator;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.BottomUpProfileDataGridNode = function(  profileView,   profileNode,   owningTree)\r
+{\r
+WebInspector.ProfileDataGridNode.call(this, profileView, profileNode, owningTree, this._willHaveChildren(profileNode));\r
+\r
+this._remainingNodeInfos = [];\r
+}\r
+\r
+WebInspector.BottomUpProfileDataGridNode.prototype = {\r
+_takePropertiesFromProfileDataGridNode: function(  profileDataGridNode)\r
+{\r
+this._save();\r
+\r
+this.selfTime = profileDataGridNode.selfTime;\r
+this.totalTime = profileDataGridNode.totalTime;\r
+this.numberOfCalls = profileDataGridNode.numberOfCalls;\r
+},\r
+\r
+\r
+_keepOnlyChild: function(  child)\r
+{\r
+this._save();\r
+\r
+this.removeChildren();\r
+this.appendChild(child);\r
+},\r
+\r
+_exclude: function(aCallUID)\r
+{\r
+if (this._remainingNodeInfos)\r
+this._populate();\r
+\r
+this._save();\r
+\r
+var children = this.children;\r
+var index = this.children.length;\r
+\r
+while (index--)\r
+children[index]._exclude(aCallUID);\r
+\r
+var child = this.childrenByCallUID[aCallUID];\r
+\r
+if (child)\r
+this._merge(child, true);\r
+},\r
+\r
+_restore: function()\r
+{\r
+WebInspector.ProfileDataGridNode.prototype._restore();\r
+\r
+if (!this.children.length)\r
+this.hasChildren = this._willHaveChildren();\r
+},\r
+\r
+_merge: function(  child,   shouldAbsorb)\r
+{\r
+this.selfTime -= child.selfTime;\r
+\r
+WebInspector.ProfileDataGridNode.prototype._merge.call(this, child, shouldAbsorb);\r
+},\r
+\r
+_sharedPopulate: function()\r
+{\r
+var remainingNodeInfos = this._remainingNodeInfos;\r
+var count = remainingNodeInfos.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+var nodeInfo = remainingNodeInfos[index];\r
+var ancestor = nodeInfo.ancestor;\r
+var focusNode = nodeInfo.focusNode;\r
+var child = this.findChild(ancestor);\r
+\r
+\r
+if (child) {\r
+var totalTimeAccountedFor = nodeInfo.totalTimeAccountedFor;\r
+\r
+child.selfTime += focusNode.selfTime;\r
+child.numberOfCalls += focusNode.numberOfCalls;\r
+\r
+if (!totalTimeAccountedFor)\r
+child.totalTime += focusNode.totalTime;\r
+} else {\r
+\r
+\r
+var child = new WebInspector.BottomUpProfileDataGridNode(this.profileView, ancestor, this.tree);\r
+\r
+if (ancestor !== focusNode) {\r
+\r
+child.selfTime = focusNode.selfTime;\r
+child.totalTime = focusNode.totalTime;\r
+child.numberOfCalls = focusNode.numberOfCalls;\r
+}\r
+\r
+this.appendChild(child);\r
+}\r
+\r
+var parent = ancestor.parent;\r
+if (parent && parent.parent) {\r
+nodeInfo.ancestor = parent;\r
+child._remainingNodeInfos.push(nodeInfo);\r
+}\r
+}\r
+\r
+delete this._remainingNodeInfos;\r
+},\r
+\r
+_willHaveChildren: function(profileNode)\r
+{\r
+profileNode = profileNode || this.profileNode;\r
+\r
+\r
+return !!(profileNode.parent && profileNode.parent.parent);\r
+}\r
+}\r
+\r
+WebInspector.BottomUpProfileDataGridNode.prototype.__proto__ = WebInspector.ProfileDataGridNode.prototype;\r
+\r
+WebInspector.BottomUpProfileDataGridTree = function(  aProfileView,   aProfileNode)\r
+{\r
+WebInspector.ProfileDataGridTree.call(this, aProfileView, aProfileNode);\r
+\r
+\r
+var profileNodeUIDs = 0;\r
+var profileNodeGroups = [[], [aProfileNode]];\r
+var visitedProfileNodesForCallUID = {};\r
+\r
+this._remainingNodeInfos = [];\r
+\r
+for (var profileNodeGroupIndex = 0; profileNodeGroupIndex < profileNodeGroups.length; ++profileNodeGroupIndex) {\r
+var parentProfileNodes = profileNodeGroups[profileNodeGroupIndex];\r
+var profileNodes = profileNodeGroups[++profileNodeGroupIndex];\r
+var count = profileNodes.length;\r
+\r
+for (var index = 0; index < count; ++index) {\r
+var profileNode = profileNodes[index];\r
+\r
+if (!profileNode.UID)\r
+profileNode.UID = ++profileNodeUIDs;\r
+\r
+if (profileNode.head && profileNode !== profileNode.head) {\r
+\r
+var visitedNodes = visitedProfileNodesForCallUID[profileNode.callUID];\r
+var totalTimeAccountedFor = false;\r
+\r
+if (!visitedNodes) {\r
+visitedNodes = {}\r
+visitedProfileNodesForCallUID[profileNode.callUID] = visitedNodes;\r
+} else {\r
+\r
+\r
+var parentCount = parentProfileNodes.length;\r
+for (var parentIndex = 0; parentIndex < parentCount; ++parentIndex) {\r
+if (visitedNodes[parentProfileNodes[parentIndex].UID]) {\r
+totalTimeAccountedFor = true;\r
+break;\r
+}\r
+}\r
+}\r
+\r
+visitedNodes[profileNode.UID] = true;\r
+\r
+this._remainingNodeInfos.push({ ancestor:profileNode, focusNode:profileNode, totalTimeAccountedFor:totalTimeAccountedFor });\r
+}\r
+\r
+var children = profileNode.children;\r
+if (children.length) {\r
+profileNodeGroups.push(parentProfileNodes.concat([profileNode]))\r
+profileNodeGroups.push(children);\r
+}\r
+}\r
+}\r
+\r
+\r
+WebInspector.BottomUpProfileDataGridNode.prototype._populate.call(this);\r
+\r
+return this;\r
+}\r
+\r
+WebInspector.BottomUpProfileDataGridTree.prototype = {\r
+\r
+focus: function(  profileDataGridNode)\r
+{\r
+if (!profileDataGridNode)\r
+return;\r
+\r
+this._save();\r
+\r
+var currentNode = profileDataGridNode;\r
+var focusNode = profileDataGridNode;\r
+\r
+while (currentNode.parent && (currentNode instanceof WebInspector.ProfileDataGridNode)) {\r
+currentNode._takePropertiesFromProfileDataGridNode(profileDataGridNode);\r
+\r
+focusNode = currentNode;\r
+currentNode = currentNode.parent;\r
+\r
+if (currentNode instanceof WebInspector.ProfileDataGridNode)\r
+currentNode._keepOnlyChild(focusNode);\r
+}\r
+\r
+this.children = [focusNode];\r
+this.totalTime = profileDataGridNode.totalTime;\r
+},\r
+\r
+exclude: function(  profileDataGridNode)\r
+{\r
+if (!profileDataGridNode)\r
+return;\r
+\r
+this._save();\r
+\r
+var excludedCallUID = profileDataGridNode.callUID;\r
+var excludedTopLevelChild = this.childrenByCallUID[excludedCallUID];\r
+\r
+\r
+\r
+if (excludedTopLevelChild)\r
+this.children.remove(excludedTopLevelChild);\r
+\r
+var children = this.children;\r
+var count = children.length;\r
+\r
+for (var index = 0; index < count; ++index)\r
+children[index]._exclude(excludedCallUID);\r
+\r
+if (this.lastComparator)\r
+this.sort(this.lastComparator, true);\r
+},\r
+\r
+_sharedPopulate: WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate\r
+}\r
+\r
+WebInspector.BottomUpProfileDataGridTree.prototype.__proto__ = WebInspector.ProfileDataGridTree.prototype;\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TopDownProfileDataGridNode = function(  profileView,   profileNode,   owningTree)\r
+{\r
+var hasChildren = (profileNode.children && profileNode.children.length);\r
+\r
+WebInspector.ProfileDataGridNode.call(this, profileView, profileNode, owningTree, hasChildren);\r
+\r
+this._remainingChildren = profileNode.children;\r
+}\r
+\r
+WebInspector.TopDownProfileDataGridNode.prototype = {\r
+_sharedPopulate: function()\r
+{\r
+var children = this._remainingChildren;\r
+var childrenLength = children.length;\r
+\r
+for (var i = 0; i < childrenLength; ++i)\r
+this.appendChild(new WebInspector.TopDownProfileDataGridNode(this.profileView, children[i], this.tree));\r
+\r
+this._remainingChildren = null;\r
+},\r
+\r
+_exclude: function(aCallUID)\r
+{\r
+if (this._remainingChildren)\r
+this._populate();\r
+\r
+this._save();\r
+\r
+var children = this.children;\r
+var index = this.children.length;\r
+\r
+while (index--)\r
+children[index]._exclude(aCallUID);\r
+\r
+var child = this.childrenByCallUID[aCallUID];\r
+\r
+if (child)\r
+this._merge(child, true);\r
+}\r
+}\r
+\r
+WebInspector.TopDownProfileDataGridNode.prototype.__proto__ = WebInspector.ProfileDataGridNode.prototype;\r
+\r
+WebInspector.TopDownProfileDataGridTree = function(  profileView,   profileNode)\r
+{\r
+WebInspector.ProfileDataGridTree.call(this, profileView, profileNode);\r
+\r
+this._remainingChildren = profileNode.children;\r
+\r
+WebInspector.TopDownProfileDataGridNode.prototype._populate.call(this);\r
+}\r
+\r
+WebInspector.TopDownProfileDataGridTree.prototype = {\r
+focus: function(  profileDataGrideNode)\r
+{\r
+if (!profileDataGrideNode)\r
+return;\r
+\r
+this._save();\r
+profileDataGrideNode.savePosition();\r
+\r
+this.children = [profileDataGrideNode];\r
+this.totalTime = profileDataGrideNode.totalTime;\r
+},\r
+\r
+exclude: function(  profileDataGrideNode)\r
+{\r
+if (!profileDataGrideNode)\r
+return;\r
+\r
+this._save();\r
+\r
+var excludedCallUID = profileDataGrideNode.callUID;\r
+\r
+WebInspector.TopDownProfileDataGridNode.prototype._exclude.call(this, excludedCallUID);\r
+\r
+if (this.lastComparator)\r
+this.sort(this.lastComparator, true);\r
+},\r
+\r
+restore: function()\r
+{\r
+if (!this._savedChildren)\r
+return;\r
+\r
+this.children[0].restorePosition();\r
+\r
+WebInspector.ProfileDataGridTree.prototype.restore.call(this);\r
+},\r
+\r
+_merge: WebInspector.TopDownProfileDataGridNode.prototype._merge,\r
+\r
+_sharedPopulate: WebInspector.TopDownProfileDataGridNode.prototype._sharedPopulate\r
+}\r
+\r
+WebInspector.TopDownProfileDataGridTree.prototype.__proto__ = WebInspector.ProfileDataGridTree.prototype;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CPUProfileView = function(profile)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("profile-view");\r
+\r
+this.showSelfTimeAsPercent = true;\r
+this.showTotalTimeAsPercent = true;\r
+this.showAverageTimeAsPercent = true;\r
+\r
+var columns = { "self": { title: WebInspector.UIString("Self"), width: "72px", sort: "descending", sortable: true },\r
+"total": { title: WebInspector.UIString("Total"), width: "72px", sortable: true },\r
+"average": { title: WebInspector.UIString("Average"), width: "72px", sortable: true },\r
+"calls": { title: WebInspector.UIString("Calls"), width: "54px", sortable: true },\r
+"function": { title: WebInspector.UIString("Function"), disclosure: true, sortable: true } };\r
+\r
+if (Preferences.samplingCPUProfiler) {\r
+delete columns.average;\r
+delete columns.calls;\r
+}\r
+\r
+this.dataGrid = new WebInspector.DataGrid(columns);\r
+this.dataGrid.addEventListener("sorting changed", this._sortData, this);\r
+this.dataGrid.element.addEventListener("mousedown", this._mouseDownInDataGrid.bind(this), true);\r
+this.element.appendChild(this.dataGrid.element);\r
+\r
+this.viewSelectElement = document.createElement("select");\r
+this.viewSelectElement.className = "status-bar-item";\r
+this.viewSelectElement.addEventListener("change", this._changeView.bind(this), false);\r
+this.view = "Heavy";\r
+\r
+var heavyViewOption = document.createElement("option");\r
+heavyViewOption.label = WebInspector.UIString("Heavy (Bottom Up)");\r
+var treeViewOption = document.createElement("option");\r
+treeViewOption.label = WebInspector.UIString("Tree (Top Down)");\r
+this.viewSelectElement.appendChild(heavyViewOption);\r
+this.viewSelectElement.appendChild(treeViewOption);\r
+\r
+this.percentButton = new WebInspector.StatusBarButton("", "percent-time-status-bar-item");\r
+this.percentButton.addEventListener("click", this._percentClicked.bind(this), false);\r
+\r
+this.focusButton = new WebInspector.StatusBarButton(WebInspector.UIString("Focus selected function."), "focus-profile-node-status-bar-item");\r
+this.focusButton.disabled = true;\r
+this.focusButton.addEventListener("click", this._focusClicked.bind(this), false);\r
+\r
+this.excludeButton = new WebInspector.StatusBarButton(WebInspector.UIString("Exclude selected function."), "exclude-profile-node-status-bar-item");\r
+this.excludeButton.disabled = true;\r
+this.excludeButton.addEventListener("click", this._excludeClicked.bind(this), false);\r
+\r
+this.resetButton = new WebInspector.StatusBarButton(WebInspector.UIString("Restore all functions."), "reset-profile-status-bar-item");\r
+this.resetButton.visible = false;\r
+this.resetButton.addEventListener("click", this._resetClicked.bind(this), false);\r
+\r
+this.profile = profile;\r
+\r
+var self = this;\r
+function profileCallback(profile)\r
+{\r
+self.profile.head = profile.head;\r
+self._assignParentsInProfile();\r
+\r
+self.profileDataGridTree = self.bottomUpProfileDataGridTree;\r
+self.profileDataGridTree.sort(WebInspector.ProfileDataGridTree.propertyComparator("selfTime", false));\r
+\r
+self.refresh();\r
+\r
+self._updatePercentButton();\r
+}\r
+\r
+InspectorBackend.getProfile(this.profile.typeId, this.profile.uid, profileCallback);\r
+}\r
+\r
+WebInspector.CPUProfileView.prototype = {\r
+get statusBarItems()\r
+{\r
+return [this.viewSelectElement, this.percentButton.element, this.focusButton.element, this.excludeButton.element, this.resetButton.element];\r
+},\r
+\r
+get profile()\r
+{\r
+return this._profile;\r
+},\r
+\r
+set profile(profile)\r
+{\r
+this._profile = profile;\r
+},\r
+\r
+get bottomUpProfileDataGridTree()\r
+{\r
+if (!this._bottomUpProfileDataGridTree)\r
+this._bottomUpProfileDataGridTree = new WebInspector.BottomUpProfileDataGridTree(this, this.profile.head);\r
+return this._bottomUpProfileDataGridTree;\r
+},\r
+\r
+get topDownProfileDataGridTree()\r
+{\r
+if (!this._topDownProfileDataGridTree)\r
+this._topDownProfileDataGridTree = new WebInspector.TopDownProfileDataGridTree(this, this.profile.head);\r
+return this._topDownProfileDataGridTree;\r
+},\r
+\r
+get currentTree()\r
+{\r
+return this._currentTree;\r
+},\r
+\r
+set currentTree(tree)\r
+{\r
+this._currentTree = tree;\r
+this.refresh();\r
+},\r
+\r
+get topDownTree()\r
+{\r
+if (!this._topDownTree) {\r
+this._topDownTree = WebInspector.TopDownTreeFactory.create(this.profile.head);\r
+this._sortProfile(this._topDownTree);\r
+}\r
+\r
+return this._topDownTree;\r
+},\r
+\r
+get bottomUpTree()\r
+{\r
+if (!this._bottomUpTree) {\r
+this._bottomUpTree = WebInspector.BottomUpTreeFactory.create(this.profile.head);\r
+this._sortProfile(this._bottomUpTree);\r
+}\r
+\r
+return this._bottomUpTree;\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.dataGrid.updateWidths();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.View.prototype.hide.call(this);\r
+this._currentSearchResultIndex = -1;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this.dataGrid)\r
+this.dataGrid.updateWidths();\r
+},\r
+\r
+refresh: function()\r
+{\r
+var selectedProfileNode = this.dataGrid.selectedNode ? this.dataGrid.selectedNode.profileNode : null;\r
+\r
+this.dataGrid.removeChildren();\r
+\r
+var children = this.profileDataGridTree.children;\r
+var count = children.length;\r
+\r
+for (var index = 0; index < count; ++index)\r
+this.dataGrid.appendChild(children[index]);\r
+\r
+if (selectedProfileNode)\r
+selectedProfileNode.selected = true;\r
+},\r
+\r
+refreshVisibleData: function()\r
+{\r
+var child = this.dataGrid.children[0];\r
+while (child) {\r
+child.refresh();\r
+child = child.traverseNextNode(false, null, true);\r
+}\r
+},\r
+\r
+refreshShowAsPercents: function()\r
+{\r
+this._updatePercentButton();\r
+this.refreshVisibleData();\r
+},\r
+\r
+searchCanceled: function()\r
+{\r
+if (this._searchResults) {\r
+for (var i = 0; i < this._searchResults.length; ++i) {\r
+var profileNode = this._searchResults[i].profileNode;\r
+\r
+delete profileNode._searchMatchedSelfColumn;\r
+delete profileNode._searchMatchedTotalColumn;\r
+delete profileNode._searchMatchedCallsColumn;\r
+delete profileNode._searchMatchedFunctionColumn;\r
+\r
+profileNode.refresh();\r
+}\r
+}\r
+\r
+delete this._searchFinishedCallback;\r
+this._currentSearchResultIndex = -1;\r
+this._searchResults = [];\r
+},\r
+\r
+performSearch: function(query, finishedCallback)\r
+{\r
+\r
+this.searchCanceled();\r
+\r
+query = query.trim();\r
+\r
+if (!query.length)\r
+return;\r
+\r
+this._searchFinishedCallback = finishedCallback;\r
+\r
+var greaterThan = (query.indexOf(">") === 0);\r
+var lessThan = (query.indexOf("<") === 0);\r
+var equalTo = (query.indexOf("=") === 0 || ((greaterThan || lessThan) && query.indexOf("=") === 1));\r
+var percentUnits = (query.lastIndexOf("%") === (query.length - 1));\r
+var millisecondsUnits = (query.length > 2 && query.lastIndexOf("ms") === (query.length - 2));\r
+var secondsUnits = (!millisecondsUnits && query.lastIndexOf("s") === (query.length - 1));\r
+\r
+var queryNumber = parseFloat(query);\r
+if (greaterThan || lessThan || equalTo) {\r
+if (equalTo && (greaterThan || lessThan))\r
+queryNumber = parseFloat(query.substring(2));\r
+else\r
+queryNumber = parseFloat(query.substring(1));\r
+}\r
+\r
+var queryNumberMilliseconds = (secondsUnits ? (queryNumber * 1000) : queryNumber);\r
+\r
+\r
+if (!isNaN(queryNumber) && !(greaterThan || lessThan))\r
+equalTo = true;\r
+\r
+function matchesQuery(  profileDataGridNode)\r
+{\r
+delete profileDataGridNode._searchMatchedSelfColumn;\r
+delete profileDataGridNode._searchMatchedTotalColumn;\r
+delete profileDataGridNode._searchMatchedAverageColumn;\r
+delete profileDataGridNode._searchMatchedCallsColumn;\r
+delete profileDataGridNode._searchMatchedFunctionColumn;\r
+\r
+if (percentUnits) {\r
+if (lessThan) {\r
+if (profileDataGridNode.selfPercent < queryNumber)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalPercent < queryNumber)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averagePercent < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+} else if (greaterThan) {\r
+if (profileDataGridNode.selfPercent > queryNumber)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalPercent > queryNumber)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averagePercent < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+}\r
+\r
+if (equalTo) {\r
+if (profileDataGridNode.selfPercent == queryNumber)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalPercent == queryNumber)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averagePercent < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+}\r
+} else if (millisecondsUnits || secondsUnits) {\r
+if (lessThan) {\r
+if (profileDataGridNode.selfTime < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalTime < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averageTime < queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+} else if (greaterThan) {\r
+if (profileDataGridNode.selfTime > queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalTime > queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averageTime > queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+}\r
+\r
+if (equalTo) {\r
+if (profileDataGridNode.selfTime == queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedSelfColumn = true;\r
+if (profileDataGridNode.totalTime == queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedTotalColumn = true;\r
+if (profileDataGridNode.averageTime == queryNumberMilliseconds)\r
+profileDataGridNode._searchMatchedAverageColumn = true;\r
+}\r
+} else {\r
+if (equalTo && profileDataGridNode.numberOfCalls == queryNumber)\r
+profileDataGridNode._searchMatchedCallsColumn = true;\r
+if (greaterThan && profileDataGridNode.numberOfCalls > queryNumber)\r
+profileDataGridNode._searchMatchedCallsColumn = true;\r
+if (lessThan && profileDataGridNode.numberOfCalls < queryNumber)\r
+profileDataGridNode._searchMatchedCallsColumn = true;\r
+}\r
+\r
+if (profileDataGridNode.functionName.hasSubstring(query, true) || profileDataGridNode.url.hasSubstring(query, true))\r
+profileDataGridNode._searchMatchedFunctionColumn = true;\r
+\r
+if (profileDataGridNode._searchMatchedSelfColumn ||\r
+profileDataGridNode._searchMatchedTotalColumn ||\r
+profileDataGridNode._searchMatchedAverageColumn ||\r
+profileDataGridNode._searchMatchedCallsColumn ||\r
+profileDataGridNode._searchMatchedFunctionColumn)\r
+{\r
+profileDataGridNode.refresh();\r
+return true;\r
+}\r
+\r
+return false;\r
+}\r
+\r
+var current = this.profileDataGridTree.children[0];\r
+\r
+while (current) {\r
+if (matchesQuery(current)) {\r
+this._searchResults.push({ profileNode: current });\r
+}\r
+\r
+current = current.traverseNextNode(false, null, false);\r
+}\r
+\r
+finishedCallback(this, this._searchResults.length);\r
+},\r
+\r
+jumpToFirstSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+this._currentSearchResultIndex = 0;\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToLastSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToNextSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+if (++this._currentSearchResultIndex >= this._searchResults.length)\r
+this._currentSearchResultIndex = 0;\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+jumpToPreviousSearchResult: function()\r
+{\r
+if (!this._searchResults || !this._searchResults.length)\r
+return;\r
+if (--this._currentSearchResultIndex < 0)\r
+this._currentSearchResultIndex = (this._searchResults.length - 1);\r
+this._jumpToSearchResult(this._currentSearchResultIndex);\r
+},\r
+\r
+showingFirstSearchResult: function()\r
+{\r
+return (this._currentSearchResultIndex === 0);\r
+},\r
+\r
+showingLastSearchResult: function()\r
+{\r
+return (this._searchResults && this._currentSearchResultIndex === (this._searchResults.length - 1));\r
+},\r
+\r
+_jumpToSearchResult: function(index)\r
+{\r
+var searchResult = this._searchResults[index];\r
+if (!searchResult)\r
+return;\r
+\r
+var profileNode = searchResult.profileNode;\r
+profileNode.reveal();\r
+profileNode.select();\r
+},\r
+\r
+_changeView: function(event)\r
+{\r
+if (!event || !this.profile)\r
+return;\r
+\r
+if (event.target.selectedIndex == 1 && this.view == "Heavy") {\r
+this.profileDataGridTree = this.topDownProfileDataGridTree;\r
+this._sortProfile();\r
+this.view = "Tree";\r
+} else if (event.target.selectedIndex == 0 && this.view == "Tree") {\r
+this.profileDataGridTree = this.bottomUpProfileDataGridTree;\r
+this._sortProfile();\r
+this.view = "Heavy";\r
+}\r
+\r
+if (!this.currentQuery || !this._searchFinishedCallback || !this._searchResults)\r
+return;\r
+\r
+\r
+\r
+\r
+this._searchFinishedCallback(this, -this._searchResults.length);\r
+this.performSearch(this.currentQuery, this._searchFinishedCallback);\r
+},\r
+\r
+_percentClicked: function(event)\r
+{\r
+var currentState = this.showSelfTimeAsPercent && this.showTotalTimeAsPercent && this.showAverageTimeAsPercent;\r
+this.showSelfTimeAsPercent = !currentState;\r
+this.showTotalTimeAsPercent = !currentState;\r
+this.showAverageTimeAsPercent = !currentState;\r
+this.refreshShowAsPercents();\r
+},\r
+\r
+_updatePercentButton: function()\r
+{\r
+if (this.showSelfTimeAsPercent && this.showTotalTimeAsPercent && this.showAverageTimeAsPercent) {\r
+this.percentButton.title = WebInspector.UIString("Show absolute total and self times.");\r
+this.percentButton.toggled = true;\r
+} else {\r
+this.percentButton.title = WebInspector.UIString("Show total and self times as percentages.");\r
+this.percentButton.toggled = false;\r
+}\r
+},\r
+\r
+_focusClicked: function(event)\r
+{\r
+if (!this.dataGrid.selectedNode)\r
+return;\r
+\r
+this.resetButton.visible = true;\r
+this.profileDataGridTree.focus(this.dataGrid.selectedNode);\r
+this.refresh();\r
+this.refreshVisibleData();\r
+},\r
+\r
+_excludeClicked: function(event)\r
+{\r
+var selectedNode = this.dataGrid.selectedNode\r
+\r
+if (!selectedNode)\r
+return;\r
+\r
+selectedNode.deselect();\r
+\r
+this.resetButton.visible = true;\r
+this.profileDataGridTree.exclude(selectedNode);\r
+this.refresh();\r
+this.refreshVisibleData();\r
+},\r
+\r
+_resetClicked: function(event)\r
+{\r
+this.resetButton.visible = false;\r
+this.profileDataGridTree.restore();\r
+this.refresh();\r
+this.refreshVisibleData();\r
+},\r
+\r
+_dataGridNodeSelected: function(node)\r
+{\r
+this.focusButton.disabled = false;\r
+this.excludeButton.disabled = false;\r
+},\r
+\r
+_dataGridNodeDeselected: function(node)\r
+{\r
+this.focusButton.disabled = true;\r
+this.excludeButton.disabled = true;\r
+},\r
+\r
+_sortData: function(event)\r
+{\r
+this._sortProfile(this.profile);\r
+},\r
+\r
+_sortProfile: function()\r
+{\r
+var sortAscending = this.dataGrid.sortOrder === "ascending";\r
+var sortColumnIdentifier = this.dataGrid.sortColumnIdentifier;\r
+var sortProperty = {\r
+"average": "averageTime",\r
+"self": "selfTime",\r
+"total": "totalTime",\r
+"calls": "numberOfCalls",\r
+"function": "functionName"\r
+}[sortColumnIdentifier];\r
+\r
+this.profileDataGridTree.sort(WebInspector.ProfileDataGridTree.propertyComparator(sortProperty, sortAscending));\r
+\r
+this.refresh();\r
+},\r
+\r
+_mouseDownInDataGrid: function(event)\r
+{\r
+if (event.detail < 2)\r
+return;\r
+\r
+var cell = event.target.enclosingNodeOrSelfWithNodeName("td");\r
+if (!cell || (!cell.hasStyleClass("total-column") && !cell.hasStyleClass("self-column") && !cell.hasStyleClass("average-column")))\r
+return;\r
+\r
+if (cell.hasStyleClass("total-column"))\r
+this.showTotalTimeAsPercent = !this.showTotalTimeAsPercent;\r
+else if (cell.hasStyleClass("self-column"))\r
+this.showSelfTimeAsPercent = !this.showSelfTimeAsPercent;\r
+else if (cell.hasStyleClass("average-column"))\r
+this.showAverageTimeAsPercent = !this.showAverageTimeAsPercent;\r
+\r
+this.refreshShowAsPercents();\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+},\r
+\r
+_assignParentsInProfile: function()\r
+{\r
+var head = this.profile.head;\r
+head.parent = null;\r
+head.head = null;\r
+var nodesToTraverse = [ { parent: head, children: head.children } ];\r
+while (nodesToTraverse.length > 0) {\r
+var pair = nodesToTraverse.shift();\r
+var parent = pair.parent;\r
+var children = pair.children;\r
+var length = children.length;\r
+for (var i = 0; i < length; ++i) {\r
+children[i].head = head;\r
+children[i].parent = parent;\r
+if (children[i].children.length > 0)\r
+nodesToTraverse.push({ parent: children[i], children: children[i].children });\r
+}\r
+}\r
+}\r
+}\r
+\r
+WebInspector.CPUProfileView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+WebInspector.CPUProfileType = function()\r
+{\r
+WebInspector.ProfileType.call(this, WebInspector.CPUProfileType.TypeId, WebInspector.UIString("CPU PROFILES"));\r
+this._recording = false;\r
+}\r
+\r
+WebInspector.CPUProfileType.TypeId = "CPU";\r
+\r
+WebInspector.CPUProfileType.prototype = {\r
+get buttonTooltip()\r
+{\r
+return this._recording ? WebInspector.UIString("Stop profiling.") : WebInspector.UIString("Start profiling.");\r
+},\r
+\r
+get buttonStyle()\r
+{\r
+return this._recording ? "record-profile-status-bar-item status-bar-item toggled-on" : "record-profile-status-bar-item status-bar-item";\r
+},\r
+\r
+buttonClicked: function()\r
+{\r
+this._recording = !this._recording;\r
+\r
+if (this._recording)\r
+InspectorBackend.startProfiling();\r
+else\r
+InspectorBackend.stopProfiling();\r
+},\r
+\r
+get welcomeMessage()\r
+{\r
+return WebInspector.UIString("Control CPU profiling by pressing the %s button on the status bar.");\r
+},\r
+\r
+setRecordingProfile: function(isProfiling)\r
+{\r
+this._recording = isProfiling;\r
+},\r
+\r
+createSidebarTreeElementForProfile: function(profile)\r
+{\r
+return new WebInspector.ProfileSidebarTreeElement(profile, WebInspector.UIString("Profile %d"), "profile-sidebar-tree-item");\r
+},\r
+\r
+createView: function(profile)\r
+{\r
+return new WebInspector.CPUProfileView(profile);\r
+}\r
+}\r
+\r
+WebInspector.CPUProfileType.prototype.__proto__ = WebInspector.ProfileType.prototype;\r
+\r
+\r
+\r
+\r
+WebInspector.HeapSnapshotEdgesIterator = function(snapshot, edges)\r
+{\r
+this._snapshot = snapshot;\r
+this._edges = edges;\r
+this._edgeIndex = 0;\r
+}\r
+\r
+WebInspector.HeapSnapshotEdgesIterator.prototype = {\r
+get done()\r
+{\r
+return this._edgeIndex >= this._edges.length;\r
+},\r
+\r
+get isElement()\r
+{\r
+return this._getType() === this._snapshot._edgeElementType;\r
+},\r
+\r
+get isHidden()\r
+{\r
+return this._getType() === this._snapshot._edgeHiddenType;\r
+},\r
+\r
+get name()\r
+{\r
+return this.isElement || this.isHidden ? this._getNameOrIndex() : this._snapshot._strings[this._getNameOrIndex()];\r
+},\r
+\r
+next: function()\r
+{\r
+this._edgeIndex += this._snapshot._edgeFieldsCount;\r
+},\r
+\r
+get node()\r
+{\r
+return new WebInspector.HeapSnapshotNodeWrapper(this._snapshot, this.nodeIndex);\r
+},\r
+\r
+get nodeIndex()\r
+{\r
+return this._edges[this._edgeIndex + this._snapshot._edgeToNodeOffset];\r
+},\r
+\r
+_getNameOrIndex: function()\r
+{\r
+return this._edges[this._edgeIndex + this._snapshot._edgeNameOffset];\r
+},\r
+\r
+_getType: function()\r
+{\r
+return this._edges[this._edgeIndex + this._snapshot._edgeTypeOffset];\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshotNodeWrapper = function(snapshot, nodeIndex)\r
+{\r
+this._snapshot = snapshot;\r
+this._nodes = snapshot._nodes;\r
+this._nodeIndex = nodeIndex;\r
+}\r
+\r
+WebInspector.HeapSnapshotNodeWrapper.prototype = {\r
+get edges()\r
+{\r
+return new WebInspector.HeapSnapshotEdgesIterator(this._snapshot, this._getEdges());\r
+},\r
+\r
+get edgesCount()\r
+{\r
+return this._nodes[this._nodeIndex + this._snapshot._edgesCountOffset];\r
+},\r
+\r
+get instancesCount()\r
+{\r
+return this._nodes[this._nodeIndex + this._snapshot._nodeInstancesCountOffset];\r
+},\r
+\r
+get isHidden()\r
+{\r
+return this._getType() === this._snapshot._nodeHiddenType;\r
+},\r
+\r
+get name()\r
+{\r
+return this._snapshot._strings[this._getName()];\r
+},\r
+\r
+get selfSize()\r
+{\r
+return this._nodes[this._nodeIndex + this._snapshot._nodeSelfSizeOffset]; \r
+},\r
+\r
+_getName: function()\r
+{\r
+return this._nodes[this._nodeIndex + this._snapshot._nodeNameOffset]; \r
+},\r
+\r
+_getEdges: function()\r
+{\r
+var firstEdgeIndex = this._nodeIndex + this._snapshot._firstEdgeOffset;\r
+return this._nodes.slice(firstEdgeIndex, firstEdgeIndex + this.edgesCount * this._snapshot._edgeFieldsCount);\r
+},\r
+\r
+_getType: function()\r
+{\r
+return this._nodes[this._nodeIndex + this._snapshot._nodeTypeOffset];\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshot = function(profile)\r
+{\r
+this._profile = profile;\r
+this._nodes = profile.nodes;\r
+this._strings = profile.strings;\r
+\r
+this._init();\r
+}\r
+\r
+WebInspector.HeapSnapshot.prototype = {\r
+_init: function()\r
+{\r
+this._metaNodeIndex = 0;\r
+this._rootNodeIndex = 1;\r
+var meta = this._nodes[this._metaNodeIndex];\r
+this._nodeTypeOffset = meta.fields.indexOf("type");\r
+this._nodeNameOffset = meta.fields.indexOf("name");\r
+this._nodeIdOffset = meta.fields.indexOf("id");\r
+this._nodeInstancesCountOffset = this._nodeIdOffset;\r
+this._nodeSelfSizeOffset = meta.fields.indexOf("self_size");\r
+this._edgesCountOffset = meta.fields.indexOf("children_count");\r
+this._firstEdgeOffset = meta.fields.indexOf("children");\r
+this._nodeTypes = meta.types[this._nodeTypeOffset];\r
+this._nodeHiddenType = this._nodeTypes.indexOf("hidden");\r
+var edgesMeta = meta.types[this._firstEdgeOffset];\r
+this._edgeFieldsCount = edgesMeta.fields.length;\r
+this._edgeTypeOffset = edgesMeta.fields.indexOf("type");\r
+this._edgeNameOffset = edgesMeta.fields.indexOf("name_or_index");\r
+this._edgeToNodeOffset = edgesMeta.fields.indexOf("to_node");\r
+this._edgeTypes = edgesMeta.types[this._edgeTypeOffset];\r
+this._edgeElementType = this._edgeTypes.indexOf("element");\r
+this._edgeHiddenType = this._edgeTypes.indexOf("hidden");\r
+},\r
+\r
+get rootEdges()\r
+{\r
+return (new WebInspector.HeapSnapshotNodeWrapper(this, this._rootNodeIndex)).edges;\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshotView = function(parent, profile)\r
+{\r
+WebInspector.View.call(this);\r
+\r
+this.element.addStyleClass("heap-snapshot-view");\r
+\r
+this.parent = parent;\r
+this.parent.addEventListener("profile added", this._updateBaseOptions, this);\r
+\r
+this.showCountAsPercent = false;\r
+this.showSizeAsPercent = false;\r
+this.showCountDeltaAsPercent = false;\r
+this.showSizeDeltaAsPercent = false;\r
+\r
+this.categories = {\r
+code: new WebInspector.ResourceCategory("code", WebInspector.UIString("Code"), "rgb(255,121,0)"),\r
+data: new WebInspector.ResourceCategory("data", WebInspector.UIString("Objects"), "rgb(47,102,236)")\r
+};\r
+\r
+var summaryContainer = document.createElement("div");\r
+summaryContainer.id = "heap-snapshot-summary-container";\r
+\r
+this.countsSummaryBar = new WebInspector.SummaryBar(this.categories);\r
+this.countsSummaryBar.element.className = "heap-snapshot-summary";\r
+this.countsSummaryBar.calculator = new WebInspector.HeapSummaryCountCalculator();\r
+var countsLabel = document.createElement("div");\r
+countsLabel.className = "heap-snapshot-summary-label";\r
+countsLabel.textContent = WebInspector.UIString("Count");\r
+this.countsSummaryBar.element.appendChild(countsLabel);\r
+summaryContainer.appendChild(this.countsSummaryBar.element);\r
+\r
+this.sizesSummaryBar = new WebInspector.SummaryBar(this.categories);\r
+this.sizesSummaryBar.element.className = "heap-snapshot-summary";\r
+this.sizesSummaryBar.calculator = new WebInspector.HeapSummarySizeCalculator();\r
+var sizesLabel = document.createElement("label");\r
+sizesLabel.className = "heap-snapshot-summary-label";\r
+sizesLabel.textContent = WebInspector.UIString("Size");\r
+this.sizesSummaryBar.element.appendChild(sizesLabel);\r
+summaryContainer.appendChild(this.sizesSummaryBar.element);\r
+\r
+this.element.appendChild(summaryContainer);\r
+\r
+var columns = {\r
+cons: { title: WebInspector.UIString("Constructor"), disclosure: true, sortable: true },\r
+count: { title: WebInspector.UIString("Count"), width: "54px", sortable: true },\r
+size: { title: WebInspector.UIString("Size"), width: "72px", sort: "descending", sortable: true },\r
+\r
+countDelta: { title: WebInspector.UIString("\xb1 Count"), width: "72px", sortable: true },\r
+sizeDelta: { title: WebInspector.UIString("\xb1 Size"), width: "72px", sortable: true }\r
+};\r
+\r
+this.dataGrid = new WebInspector.DataGrid(columns);\r
+this.dataGrid.addEventListener("sorting changed", this._sortData, this);\r
+this.dataGrid.element.addEventListener("mousedown", this._mouseDownInDataGrid.bind(this), true);\r
+this.element.appendChild(this.dataGrid.element);\r
+\r
+this.profile = profile;\r
+\r
+this.baseSelectElement = document.createElement("select");\r
+this.baseSelectElement.className = "status-bar-item";\r
+this.baseSelectElement.addEventListener("change", this._changeBase.bind(this), false);\r
+this._updateBaseOptions();\r
+\r
+this.percentButton = new WebInspector.StatusBarButton("", "percent-time-status-bar-item status-bar-item");\r
+this.percentButton.addEventListener("click", this._percentClicked.bind(this), false);\r
+\r
+this._loadProfile(this.profile, profileCallback.bind(this));\r
+\r
+function profileCallback(profile)\r
+{\r
+var list = this._getProfiles();\r
+var profileIndex;\r
+for (var i = 0; i < list.length; ++i)\r
+if (list[i].uid === profile.uid) {\r
+profileIndex = i;\r
+break;\r
+}\r
+if (profileIndex > 0)\r
+this.baseSelectElement.selectedIndex = profileIndex - 1;\r
+else\r
+this.baseSelectElement.selectedIndex = profileIndex;\r
+this._resetDataGridList(resetCompleted.bind(this));\r
+}\r
+\r
+function resetCompleted()\r
+{\r
+this.refresh();\r
+this._updatePercentButton();\r
+}\r
+}\r
+\r
+WebInspector.HeapSnapshotView.prototype = {\r
+get statusBarItems()\r
+{\r
+return [this.baseSelectElement, this.percentButton.element];\r
+},\r
+\r
+get profile()\r
+{\r
+return this._profile;\r
+},\r
+\r
+set profile(profile)\r
+{\r
+this._profile = profile;\r
+},\r
+\r
+show: function(parentElement)\r
+{\r
+WebInspector.View.prototype.show.call(this, parentElement);\r
+this.dataGrid.updateWidths();\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.View.prototype.hide.call(this);\r
+this._currentSearchResultIndex = -1;\r
+},\r
+\r
+resize: function()\r
+{\r
+if (this.dataGrid)\r
+this.dataGrid.updateWidths();\r
+},\r
+\r
+refresh: function()\r
+{\r
+this.dataGrid.removeChildren();\r
+\r
+var children = this.snapshotDataGridList.children;\r
+var count = children.length;\r
+for (var index = 0; index < count; ++index)\r
+this.dataGrid.appendChild(children[index]);\r
+\r
+this._updateSummaryGraph();\r
+},\r
+\r
+refreshShowAsPercents: function()\r
+{\r
+this._updatePercentButton();\r
+this.refreshVisibleData();\r
+},\r
+\r
+_deleteSearchMatchedFlags: function(node)\r
+{\r
+delete node._searchMatchedConsColumn;\r
+delete node._searchMatchedCountColumn;\r
+delete node._searchMatchedSizeColumn;\r
+delete node._searchMatchedCountDeltaColumn;\r
+delete node._searchMatchedSizeDeltaColumn;\r
+},\r
+\r
+searchCanceled: function()\r
+{\r
+if (this._searchResults) {\r
+for (var i = 0; i < this._searchResults.length; ++i) {\r
+var profileNode = this._searchResults[i].profileNode;\r
+this._deleteSearchMatchedFlags(profileNode);\r
+profileNode.refresh();\r
+}\r
+}\r
+\r
+delete this._searchFinishedCallback;\r
+this._currentSearchResultIndex = -1;\r
+this._searchResults = [];\r
+},\r
+\r
+performSearch: function(query, finishedCallback)\r
+{\r
+\r
+this.searchCanceled();\r
+\r
+query = query.trim();\r
+\r
+if (!query.length)\r
+return;\r
+\r
+this._searchFinishedCallback = finishedCallback;\r
+\r
+var helper = WebInspector.HeapSnapshotView.SearchHelper;\r
+\r
+var operationAndNumber = helper.parseOperationAndNumber(query);\r
+var operation = operationAndNumber[0];\r
+var queryNumber = operationAndNumber[1];\r
+\r
+var percentUnits = helper.percents.test(query);\r
+var megaBytesUnits = helper.megaBytes.test(query);\r
+var kiloBytesUnits = helper.kiloBytes.test(query);\r
+var bytesUnits = helper.bytes.test(query);\r
+\r
+var queryNumberBytes = (megaBytesUnits ? (queryNumber * 1024 * 1024) : (kiloBytesUnits ? (queryNumber * 1024) : queryNumber));\r
+\r
+function matchesQuery(heapSnapshotDataGridNode)\r
+{\r
+WebInspector.HeapSnapshotView.prototype._deleteSearchMatchedFlags(heapSnapshotDataGridNode);\r
+\r
+if (percentUnits) {\r
+heapSnapshotDataGridNode._searchMatchedCountColumn = operation(heapSnapshotDataGridNode.countPercent, queryNumber);\r
+heapSnapshotDataGridNode._searchMatchedSizeColumn = operation(heapSnapshotDataGridNode.sizePercent, queryNumber);\r
+heapSnapshotDataGridNode._searchMatchedCountDeltaColumn = operation(heapSnapshotDataGridNode.countDeltaPercent, queryNumber);\r
+heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn = operation(heapSnapshotDataGridNode.sizeDeltaPercent, queryNumber);\r
+} else if (megaBytesUnits || kiloBytesUnits || bytesUnits) {\r
+heapSnapshotDataGridNode._searchMatchedSizeColumn = operation(heapSnapshotDataGridNode.size, queryNumberBytes);\r
+heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn = operation(heapSnapshotDataGridNode.sizeDelta, queryNumberBytes);\r
+} else {\r
+heapSnapshotDataGridNode._searchMatchedCountColumn = operation(heapSnapshotDataGridNode.count, queryNumber);\r
+heapSnapshotDataGridNode._searchMatchedCountDeltaColumn = operation(heapSnapshotDataGridNode.countDelta, queryNumber);\r
+}\r
+\r
+if (heapSnapshotDataGridNode.constructorName.hasSubstring(query, true))\r
+heapSnapshotDataGridNode._searchMatchedConsColumn = true;\r
+\r
+if (heapSnapshotDataGridNode._searchMatchedConsColumn ||\r
+heapSnapshotDataGridNode._searchMatchedCountColumn ||\r
+heapSnapshotDataGridNode._searchMatchedSizeColumn ||\r
+heapSnapshotDataGridNode._searchMatchedCountDeltaColumn ||\r
+heapSnapshotDataGridNode._searchMatchedSizeDeltaColumn) {\r
+heapSnapshotDataGridNode.refresh();\r
+return true;\r
+}\r
+\r
+return false;\r
+}\r
+\r
+var current = this.snapshotDataGridList.children[0];\r
+var depth = 0;\r
+var info = {};\r
+\r
+\r
+\r
+\r
+const maxDepth = 2;\r
+\r
+while (current) {\r
+if (matchesQuery(current))\r
+this._searchResults.push({ profileNode: current });\r
+current = current.traverseNextNode(false, null, (depth >= maxDepth), info);\r
+depth += info.depthChange;\r
+}\r
+\r
+finishedCallback(this, this._searchResults.length);\r
+},\r
+\r
+\r
+jumpToFirstSearchResult: WebInspector.CPUProfileView.prototype.jumpToFirstSearchResult,\r
+jumpToLastSearchResult: WebInspector.CPUProfileView.prototype.jumpToLastSearchResult,\r
+jumpToNextSearchResult: WebInspector.CPUProfileView.prototype.jumpToNextSearchResult,\r
+jumpToPreviousSearchResult: WebInspector.CPUProfileView.prototype.jumpToPreviousSearchResult,\r
+showingFirstSearchResult: WebInspector.CPUProfileView.prototype.showingFirstSearchResult,\r
+showingLastSearchResult: WebInspector.CPUProfileView.prototype.showingLastSearchResult,\r
+_jumpToSearchResult: WebInspector.CPUProfileView.prototype._jumpToSearchResult,\r
+\r
+refreshVisibleData: function()\r
+{\r
+var child = this.dataGrid.children[0];\r
+while (child) {\r
+child.refresh();\r
+child = child.traverseNextNode(false, null, true);\r
+}\r
+this._updateSummaryGraph();\r
+},\r
+\r
+_changeBase: function()\r
+{\r
+if (this.baseSnapshot.uid === this._getProfiles()[this.baseSelectElement.selectedIndex].uid)\r
+return;\r
+\r
+this._resetDataGridList(resetCompleted.bind(this));\r
+\r
+function resetCompleted() {\r
+this.refresh();\r
+\r
+if (!this.currentQuery || !this._searchFinishedCallback || !this._searchResults)\r
+return;\r
+\r
+\r
+\r
+\r
+this._searchFinishedCallback(this, -this._searchResults.length);\r
+this.performSearch(this.currentQuery, this._searchFinishedCallback);\r
+}\r
+},\r
+\r
+_createSnapshotDataGridList: function()\r
+{\r
+if (this._snapshotDataGridList)\r
+delete this._snapshotDataGridList;\r
+\r
+this._snapshotDataGridList = new WebInspector.HeapSnapshotDataGridList(this, this.baseSnapshot.entries, this.profile.entries);\r
+return this._snapshotDataGridList;\r
+},\r
+\r
+_getProfiles: function()\r
+{\r
+return WebInspector.panels.profiles.getProfiles(WebInspector.HeapSnapshotProfileType.TypeId);\r
+},\r
+\r
+_loadProfile: function(profile, callback)\r
+{\r
+WebInspector.panels.profiles.loadHeapSnapshot(profile.uid, callback);\r
+},\r
+\r
+processLoadedSnapshot: function(profile, loadedSnapshot)\r
+{\r
+var snapshot = WebInspector.HeapSnapshotView.prototype._convertSnapshot(loadedSnapshot);\r
+profile.children = snapshot.children;\r
+profile.entries = snapshot.entries;\r
+profile.lowlevels = snapshot.lowlevels;\r
+WebInspector.HeapSnapshotView.prototype._prepareProfile(profile);\r
+},\r
+\r
+_mouseDownInDataGrid: function(event)\r
+{\r
+if (event.detail < 2)\r
+return;\r
+\r
+var cell = event.target.enclosingNodeOrSelfWithNodeName("td");\r
+if (!cell || (!cell.hasStyleClass("count-column") && !cell.hasStyleClass("size-column") && !cell.hasStyleClass("countDelta-column") && !cell.hasStyleClass("sizeDelta-column")))\r
+return;\r
+\r
+if (cell.hasStyleClass("count-column"))\r
+this.showCountAsPercent = !this.showCountAsPercent;\r
+else if (cell.hasStyleClass("size-column"))\r
+this.showSizeAsPercent = !this.showSizeAsPercent;\r
+else if (cell.hasStyleClass("countDelta-column"))\r
+this.showCountDeltaAsPercent = !this.showCountDeltaAsPercent;\r
+else if (cell.hasStyleClass("sizeDelta-column"))\r
+this.showSizeDeltaAsPercent = !this.showSizeDeltaAsPercent;\r
+\r
+this.refreshShowAsPercents();\r
+\r
+event.preventDefault();\r
+event.stopPropagation();\r
+},\r
+\r
+get _isShowingAsPercent()\r
+{\r
+return this.showCountAsPercent && this.showSizeAsPercent && this.showCountDeltaAsPercent && this.showSizeDeltaAsPercent;\r
+},\r
+\r
+_percentClicked: function(event)\r
+{\r
+var currentState = this._isShowingAsPercent;\r
+this.showCountAsPercent = !currentState;\r
+this.showSizeAsPercent = !currentState;\r
+this.showCountDeltaAsPercent = !currentState;\r
+this.showSizeDeltaAsPercent = !currentState;\r
+this.refreshShowAsPercents();\r
+},\r
+\r
+_convertSnapshot: function(loadedSnapshot)\r
+{\r
+var snapshot = new WebInspector.HeapSnapshot(loadedSnapshot);\r
+var result = {lowlevels: {}, entries: {}, children: {}};\r
+for (var rootEdges = snapshot.rootEdges; !rootEdges.done; rootEdges.next()) {\r
+var node = rootEdges.node;\r
+if (node.isHidden)\r
+result.lowlevels[node.name] = {count: node.instancesCount, size: node.selfSize, type: node.name};\r
+else if (node.instancesCount)\r
+result.entries[node.name] = {constructorName: node.name, count: node.instancesCount, size: node.selfSize};\r
+else {\r
+var entry = {constructorName: node.name};\r
+for (var edges = node.edges; !edges.done; edges.next())\r
+entry[edges.nodeIndex] = {constructorName: edges.node.name, count: edges.name};\r
+result.children[rootEdges.nodeIndex] = entry;\r
+}\r
+}\r
+return result;\r
+},\r
+\r
+_prepareProfile: function(profile)\r
+{\r
+for (var profileEntry in profile.entries)\r
+profile.entries[profileEntry].retainers = {};\r
+profile.clusters = {};\r
+\r
+for (var addr in profile.children) {\r
+var retainer = profile.children[addr];\r
+var retainerId = retainer.constructorName + ":" + addr;\r
+for (var childAddr in retainer) {\r
+if (childAddr === "constructorName") continue;\r
+var item = retainer[childAddr];\r
+var itemId = item.constructorName + ":" + childAddr;\r
+if ((item.constructorName === "Object" || item.constructorName === "Array")) {\r
+if (!(itemId in profile.clusters))\r
+profile.clusters[itemId] = { constructorName: itemId, retainers: {} };\r
+mergeRetainers(profile.clusters[itemId], item);\r
+}\r
+mergeRetainers(profile.entries[item.constructorName], item);\r
+}\r
+}\r
+\r
+function mergeRetainers(entry, item)\r
+{\r
+if (!(retainer.constructorName in entry.retainers))\r
+entry.retainers[retainer.constructorName] = { constructorName: retainer.constructorName, count: 0, clusters: {} };\r
+var retainerEntry = entry.retainers[retainer.constructorName];\r
+retainerEntry.count += item.count;\r
+if (retainer.constructorName === "Object" || retainer.constructorName === "Array")\r
+retainerEntry.clusters[retainerId] = true;\r
+}\r
+},\r
+\r
+_resetDataGridList: function(callback)\r
+{\r
+this._loadProfile(this._getProfiles()[this.baseSelectElement.selectedIndex], profileLoaded.bind(this));\r
+\r
+function profileLoaded(profile)\r
+{\r
+this.baseSnapshot = profile;\r
+var lastComparator = WebInspector.HeapSnapshotDataGridList.propertyComparator("size", false);\r
+if (this.snapshotDataGridList)\r
+lastComparator = this.snapshotDataGridList.lastComparator;\r
+this.snapshotDataGridList = this._createSnapshotDataGridList();\r
+this.snapshotDataGridList.sort(lastComparator, true);\r
+callback();\r
+}\r
+},\r
+\r
+_sortData: function()\r
+{\r
+var sortAscending = this.dataGrid.sortOrder === "ascending";\r
+var sortColumnIdentifier = this.dataGrid.sortColumnIdentifier;\r
+var sortProperty = {\r
+cons: ["constructorName", null],\r
+count: ["count", null],\r
+size: ["size", "count"],\r
+countDelta: this.showCountDeltaAsPercent ? ["countDeltaPercent", null] : ["countDelta", null],\r
+sizeDelta: this.showSizeDeltaAsPercent ? ["sizeDeltaPercent", "countDeltaPercent"] : ["sizeDelta", "sizeDeltaPercent"]\r
+}[sortColumnIdentifier];\r
+\r
+this.snapshotDataGridList.sort(WebInspector.HeapSnapshotDataGridList.propertyComparator(sortProperty[0], sortProperty[1], sortAscending));\r
+\r
+this.refresh();\r
+},\r
+\r
+_updateBaseOptions: function()\r
+{\r
+var list = this._getProfiles();\r
+\r
+if (this.baseSelectElement.length === list.length)\r
+return;\r
+\r
+for (var i = this.baseSelectElement.length, n = list.length; i < n; ++i) {\r
+var baseOption = document.createElement("option");\r
+var title = list[i].title;\r
+if (!title.indexOf(UserInitiatedProfileName))\r
+title = WebInspector.UIString("Snapshot %d", title.substring(UserInitiatedProfileName.length + 1));\r
+baseOption.label = WebInspector.UIString("Compared to %s", title);\r
+this.baseSelectElement.appendChild(baseOption);\r
+}\r
+},\r
+\r
+_updatePercentButton: function()\r
+{\r
+if (this._isShowingAsPercent) {\r
+this.percentButton.title = WebInspector.UIString("Show absolute counts and sizes.");\r
+this.percentButton.toggled = true;\r
+} else {\r
+this.percentButton.title = WebInspector.UIString("Show counts and sizes as percentages.");\r
+this.percentButton.toggled = false;\r
+}\r
+},\r
+\r
+_updateSummaryGraph: function()\r
+{\r
+this.countsSummaryBar.calculator.showAsPercent = this._isShowingAsPercent;\r
+this.countsSummaryBar.update(this.profile.lowlevels);\r
+\r
+this.sizesSummaryBar.calculator.showAsPercent = this._isShowingAsPercent;\r
+this.sizesSummaryBar.update(this.profile.lowlevels);\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshotView.prototype.__proto__ = WebInspector.View.prototype;\r
+\r
+WebInspector.HeapSnapshotView.SearchHelper = {\r
+\r
+operations: {\r
+LESS: function (a, b) { return a !== null && a < b; },\r
+LESS_OR_EQUAL: function (a, b) { return a !== null && a <= b; },\r
+EQUAL: function (a, b) { return a !== null && a === b; },\r
+GREATER_OR_EQUAL: function (a, b) { return a !== null && a >= b; },\r
+GREATER: function (a, b) { return a !== null && a > b; }\r
+},\r
+\r
+operationParsers: {\r
+LESS: /^<(\d+)/,\r
+LESS_OR_EQUAL: /^<=(\d+)/,\r
+GREATER_OR_EQUAL: /^>=(\d+)/,\r
+GREATER: /^>(\d+)/\r
+},\r
+\r
+parseOperationAndNumber: function(query)\r
+{\r
+var operations = WebInspector.HeapSnapshotView.SearchHelper.operations;\r
+var parsers = WebInspector.HeapSnapshotView.SearchHelper.operationParsers;\r
+for (var operation in parsers) {\r
+var match = query.match(parsers[operation]);\r
+if (match !== null)\r
+return [operations[operation], parseFloat(match[1])];\r
+}\r
+return [operations.EQUAL, parseFloat(query)];\r
+},\r
+\r
+percents: /%$/,\r
+\r
+megaBytes: /MB$/i,\r
+\r
+kiloBytes: /KB$/i,\r
+\r
+bytes: /B$/i\r
+}\r
+\r
+WebInspector.HeapSummaryCalculator = function(lowLevelField)\r
+{\r
+this.total = 1;\r
+this.lowLevelField = lowLevelField;\r
+}\r
+\r
+WebInspector.HeapSummaryCalculator.prototype = {\r
+computeSummaryValues: function(lowLevels)\r
+{\r
+var highLevels = { data: 0, code: 0 };\r
+this.total = 0;\r
+for (var item in lowLevels) {\r
+var highItem = this._highFromLow(item);\r
+if (highItem) {\r
+var value = lowLevels[item][this.lowLevelField];\r
+highLevels[highItem] += value;\r
+this.total += value;\r
+}\r
+}\r
+var result = { categoryValues: highLevels };\r
+if (!this.showAsPercent)\r
+result.total = this.total;\r
+return result;\r
+},\r
+\r
+formatValue: function(value)\r
+{\r
+if (this.showAsPercent)\r
+return WebInspector.UIString("%.2f%%", value / this.total * 100.0);\r
+else\r
+return this._valueToString(value);\r
+},\r
+\r
+get showAsPercent()\r
+{\r
+return this._showAsPercent;\r
+},\r
+\r
+set showAsPercent(x)\r
+{\r
+this._showAsPercent = x;\r
+}\r
+}\r
+\r
+WebInspector.HeapSummaryCountCalculator = function()\r
+{\r
+WebInspector.HeapSummaryCalculator.call(this, "count");\r
+}\r
+\r
+WebInspector.HeapSummaryCountCalculator.prototype = {\r
+_highFromLow: function(type)\r
+{\r
+if (type === "CODE_TYPE" || type === "SHARED_FUNCTION_INFO_TYPE" || type === "SCRIPT_TYPE") return "code";\r
+if (type === "STRING_TYPE" || type === "HEAP_NUMBER_TYPE" || type.match(/^JS_/)) return "data";\r
+return null;\r
+},\r
+\r
+_valueToString: function(value)\r
+{\r
+return value.toString();\r
+}\r
+}\r
+\r
+WebInspector.HeapSummaryCountCalculator.prototype.__proto__ = WebInspector.HeapSummaryCalculator.prototype;\r
+\r
+WebInspector.HeapSummarySizeCalculator = function()\r
+{\r
+WebInspector.HeapSummaryCalculator.call(this, "size");\r
+}\r
+\r
+WebInspector.HeapSummarySizeCalculator.prototype = {\r
+_highFromLow: function(type)\r
+{\r
+if (type === "CODE_TYPE" || type === "SHARED_FUNCTION_INFO_TYPE" || type === "SCRIPT_TYPE")\r
+return "code";\r
+if (type === "STRING_TYPE" || type === "HEAP_NUMBER_TYPE" || type.match(/^JS_/) || type.match(/_ARRAY_TYPE$/))\r
+return "data";\r
+return null;\r
+},\r
+\r
+_valueToString: Number.bytesToString\r
+}\r
+\r
+WebInspector.HeapSummarySizeCalculator.prototype.__proto__ = WebInspector.HeapSummaryCalculator.prototype;\r
+\r
+WebInspector.HeapSnapshotDataGridNodeWithRetainers = function(owningTree)\r
+{\r
+this.tree = owningTree;\r
+\r
+WebInspector.DataGridNode.call(this, null, this._hasRetainers);\r
+\r
+this.addEventListener("populate", this._populate, this);\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype = {\r
+isEmptySet: function(set)\r
+{\r
+for (var x in set)\r
+return false;\r
+return true;\r
+},\r
+\r
+get _hasRetainers()\r
+{\r
+return !this.isEmptySet(this.retainers);\r
+},\r
+\r
+get _parent()\r
+{\r
+\r
+return this.parent !== this.dataGrid ? this.parent : this.tree;\r
+},\r
+\r
+_populate: function(event)\r
+{\r
+function appendDiffEntry(baseItem, snapshotItem)\r
+{\r
+this.appendChild(new WebInspector.HeapSnapshotDataGridRetainerNode(this.snapshotView, baseItem, snapshotItem, this.tree));\r
+}\r
+\r
+this.produceDiff(this.baseRetainers, this.retainers, appendDiffEntry.bind(this));\r
+\r
+if (this._parent) {\r
+var currentComparator = this._parent.lastComparator;\r
+if (currentComparator)\r
+this.sort(currentComparator, true);\r
+}\r
+\r
+this.removeEventListener("populate", this._populate, this);\r
+},\r
+\r
+produceDiff: function(baseEntries, currentEntries, callback)\r
+{\r
+for (var item in currentEntries)\r
+callback(baseEntries[item], currentEntries[item]);\r
+\r
+for (item in baseEntries) {\r
+if (!(item in currentEntries))\r
+callback(baseEntries[item], null);\r
+}\r
+},\r
+\r
+sort: function(comparator, force) {\r
+if (!force && this.lastComparator === comparator)\r
+return;\r
+\r
+this.children.sort(comparator);\r
+var childCount = this.children.length;\r
+for (var childIndex = 0; childIndex < childCount; ++childIndex)\r
+this.children[childIndex]._recalculateSiblings(childIndex);\r
+for (var i = 0; i < this.children.length; ++i) {\r
+var child = this.children[i];\r
+if (!force && (!child.expanded || child.lastComparator === comparator))\r
+continue;\r
+child.sort(comparator, force);\r
+}\r
+this.lastComparator = comparator;\r
+},\r
+\r
+signForDelta: function(delta) {\r
+if (delta === 0)\r
+return "";\r
+if (delta > 0)\r
+return "+";\r
+else\r
+return "\u2212";  \r
+},\r
+\r
+showDeltaAsPercent: function(value)\r
+{\r
+if (value === Number.POSITIVE_INFINITY)\r
+return WebInspector.UIString("new");\r
+else if (value === Number.NEGATIVE_INFINITY)\r
+return WebInspector.UIString("deleted");\r
+if (value > 1000.0)\r
+return WebInspector.UIString("%s >1000%%", this.signForDelta(value));\r
+return WebInspector.UIString("%s%.2f%%", this.signForDelta(value), Math.abs(value));\r
+},\r
+\r
+getTotalCount: function()\r
+{\r
+if (!this._count) {\r
+this._count = 0;\r
+for (var i = 0, n = this.children.length; i < n; ++i)\r
+this._count += this.children[i].count;\r
+}\r
+return this._count;\r
+},\r
+\r
+getTotalSize: function()\r
+{\r
+if (!this._size) {\r
+this._size = 0;\r
+for (var i = 0, n = this.children.length; i < n; ++i)\r
+this._size += this.children[i].size;\r
+}\r
+return this._size;\r
+},\r
+\r
+get countPercent()\r
+{\r
+return this.count / this._parent.getTotalCount() * 100.0;\r
+},\r
+\r
+get sizePercent()\r
+{\r
+return this.size / this._parent.getTotalSize() * 100.0;\r
+},\r
+\r
+get countDeltaPercent()\r
+{\r
+if (this.baseCount > 0) {\r
+if (this.count > 0)\r
+return this.countDelta / this.baseCount * 100.0;\r
+else\r
+return Number.NEGATIVE_INFINITY;\r
+} else\r
+return Number.POSITIVE_INFINITY;\r
+},\r
+\r
+get sizeDeltaPercent()\r
+{\r
+if (this.baseSize > 0) {\r
+if (this.size > 0)\r
+return this.sizeDelta / this.baseSize * 100.0;\r
+else\r
+return Number.NEGATIVE_INFINITY;\r
+} else\r
+return Number.POSITIVE_INFINITY;\r
+},\r
+\r
+get data()\r
+{\r
+var data = {};\r
+\r
+data["cons"] = this.constructorName;\r
+\r
+if (this.snapshotView.showCountAsPercent)\r
+data["count"] = WebInspector.UIString("%.2f%%", this.countPercent);\r
+else\r
+data["count"] = this.count;\r
+\r
+if (this.size !== null) {\r
+if (this.snapshotView.showSizeAsPercent)\r
+data["size"] = WebInspector.UIString("%.2f%%", this.sizePercent);\r
+else\r
+data["size"] = Number.bytesToString(this.size);\r
+} else\r
+data["size"] = "";\r
+\r
+if (this.snapshotView.showCountDeltaAsPercent)\r
+data["countDelta"] = this.showDeltaAsPercent(this.countDeltaPercent);\r
+else\r
+data["countDelta"] = WebInspector.UIString("%s%d", this.signForDelta(this.countDelta), Math.abs(this.countDelta));\r
+\r
+if (this.sizeDelta !== null) {\r
+if (this.snapshotView.showSizeDeltaAsPercent)\r
+data["sizeDelta"] = this.showDeltaAsPercent(this.sizeDeltaPercent);\r
+else\r
+data["sizeDelta"] = WebInspector.UIString("%s%s", this.signForDelta(this.sizeDelta), Number.bytesToString(Math.abs(this.sizeDelta)));\r
+} else\r
+data["sizeDelta"] = "";\r
+\r
+return data;\r
+},\r
+\r
+createCell: function(columnIdentifier)\r
+{\r
+var cell = WebInspector.DataGridNode.prototype.createCell.call(this, columnIdentifier);\r
+\r
+if ((columnIdentifier === "cons" && this._searchMatchedConsColumn) ||\r
+(columnIdentifier === "count" && this._searchMatchedCountColumn) ||\r
+(columnIdentifier === "size" && this._searchMatchedSizeColumn) ||\r
+(columnIdentifier === "countDelta" && this._searchMatchedCountDeltaColumn) ||\r
+(columnIdentifier === "sizeDelta" && this._searchMatchedSizeDeltaColumn))\r
+cell.addStyleClass("highlight");\r
+\r
+return cell;\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.__proto__ = WebInspector.DataGridNode.prototype;\r
+\r
+WebInspector.HeapSnapshotDataGridNode = function(snapshotView, baseEntry, snapshotEntry, owningTree)\r
+{\r
+this.snapshotView = snapshotView;\r
+\r
+if (!snapshotEntry)\r
+snapshotEntry = { constructorName: baseEntry.constructorName, count: 0, size: 0, retainers: {} };\r
+this.constructorName = snapshotEntry.constructorName;\r
+this.count = snapshotEntry.count;\r
+this.size = snapshotEntry.size;\r
+this.retainers = snapshotEntry.retainers;\r
+\r
+if (!baseEntry)\r
+baseEntry = { count: 0, size: 0, retainers: {} };\r
+this.baseCount = baseEntry.count;\r
+this.countDelta = this.count - this.baseCount;\r
+this.baseSize = baseEntry.size;\r
+this.sizeDelta = this.size - this.baseSize;\r
+this.baseRetainers = baseEntry.retainers;\r
+\r
+WebInspector.HeapSnapshotDataGridNodeWithRetainers.call(this, owningTree);\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridNode.prototype.__proto__ = WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype;\r
+\r
+WebInspector.HeapSnapshotDataGridList = function(snapshotView, baseEntries, snapshotEntries)\r
+{\r
+this.tree = this;\r
+this.snapshotView = snapshotView;\r
+this.children = [];\r
+this.lastComparator = null;\r
+this.populateChildren(baseEntries, snapshotEntries);\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridList.prototype = {\r
+appendChild: function(child)\r
+{\r
+this.insertChild(child, this.children.length);\r
+},\r
+\r
+insertChild: function(child, index)\r
+{\r
+this.children.splice(index, 0, child);\r
+},\r
+\r
+removeChildren: function()\r
+{\r
+this.children = [];\r
+},\r
+\r
+populateChildren: function(baseEntries, snapshotEntries)\r
+{\r
+function appendListEntry(baseItem, snapshotItem)\r
+{\r
+this.appendChild(new WebInspector.HeapSnapshotDataGridNode(this.snapshotView, baseItem, snapshotItem, this));\r
+}\r
+this.produceDiff(baseEntries, snapshotEntries, appendListEntry.bind(this));\r
+},\r
+\r
+produceDiff: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.produceDiff,\r
+sort: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.sort,\r
+getTotalCount: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.getTotalCount,\r
+getTotalSize: WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype.getTotalSize\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridList.propertyComparators = [{}, {}];\r
+\r
+WebInspector.HeapSnapshotDataGridList.propertyComparator = function(property, property2, isAscending)\r
+{\r
+var propertyHash = property + "#" + property2;\r
+var comparator = this.propertyComparators[(isAscending ? 1 : 0)][propertyHash];\r
+if (!comparator) {\r
+comparator = function(lhs, rhs) {\r
+var l = lhs[property], r = rhs[property];\r
+if ((l === null || r === null) && property2 !== null)\r
+l = lhs[property2], r = rhs[property2];\r
+var result = l < r ? -1 : (l > r ? 1 : 0);\r
+return isAscending ? result : -result;\r
+};\r
+this.propertyComparators[(isAscending ? 1 : 0)][propertyHash] = comparator;\r
+}\r
+return comparator;\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridRetainerNode = function(snapshotView, baseEntry, snapshotEntry, owningTree)\r
+{\r
+this.snapshotView = snapshotView;\r
+\r
+if (!snapshotEntry)\r
+snapshotEntry = { constructorName: baseEntry.constructorName, count: 0, clusters: {} };\r
+this.constructorName = snapshotEntry.constructorName;\r
+this.count = snapshotEntry.count;\r
+this.retainers = this._calculateRetainers(this.snapshotView.profile, snapshotEntry.clusters);\r
+\r
+if (!baseEntry)\r
+baseEntry = { count: 0, clusters: {} };\r
+this.baseCount = baseEntry.count;\r
+this.countDelta = this.count - this.baseCount;\r
+this.baseRetainers = this._calculateRetainers(this.snapshotView.baseSnapshot, baseEntry.clusters);\r
+\r
+this.size = null;\r
+this.sizeDelta = null;\r
+\r
+WebInspector.HeapSnapshotDataGridNodeWithRetainers.call(this, owningTree);\r
+}\r
+\r
+WebInspector.HeapSnapshotDataGridRetainerNode.prototype = {\r
+get sizePercent()\r
+{\r
+return null;\r
+},\r
+\r
+get sizeDeltaPercent()\r
+{\r
+return null;\r
+},\r
+\r
+_calculateRetainers: function(snapshot, clusters)\r
+{\r
+var retainers = {};\r
+if (this.isEmptySet(clusters)) {\r
+if (this.constructorName in snapshot.entries)\r
+return snapshot.entries[this.constructorName].retainers;\r
+} else {\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+for (var clusterName in clusters) {\r
+if (clusterName in snapshot.clusters) {\r
+var clusterRetainers = snapshot.clusters[clusterName].retainers;\r
+for (var clusterRetainer in clusterRetainers) {\r
+var clusterRetainerEntry = clusterRetainers[clusterRetainer];\r
+if (!(clusterRetainer in retainers))\r
+retainers[clusterRetainer] = { constructorName: clusterRetainerEntry.constructorName, count: 0, clusters: {} };\r
+retainers[clusterRetainer].count += clusterRetainerEntry.count;\r
+for (var clusterRetainerCluster in clusterRetainerEntry.clusters)\r
+retainers[clusterRetainer].clusters[clusterRetainerCluster] = true;\r
+}\r
+}\r
+}\r
+}\r
+return retainers;\r
+}\r
+};\r
+\r
+WebInspector.HeapSnapshotDataGridRetainerNode.prototype.__proto__ = WebInspector.HeapSnapshotDataGridNodeWithRetainers.prototype;\r
+\r
+\r
+WebInspector.HeapSnapshotProfileType = function()\r
+{\r
+WebInspector.ProfileType.call(this, WebInspector.HeapSnapshotProfileType.TypeId, WebInspector.UIString("HEAP SNAPSHOTS"));\r
+}\r
+\r
+WebInspector.HeapSnapshotProfileType.TypeId = "HEAP";\r
+\r
+WebInspector.HeapSnapshotProfileType.prototype = {\r
+get buttonTooltip()\r
+{\r
+return WebInspector.UIString("Take heap snapshot.");\r
+},\r
+\r
+get buttonStyle()\r
+{\r
+return "heap-snapshot-status-bar-item status-bar-item";\r
+},\r
+\r
+buttonClicked: function()\r
+{\r
+InspectorBackend.takeHeapSnapshot();\r
+},\r
+\r
+get welcomeMessage()\r
+{\r
+return WebInspector.UIString("Get a heap snapshot by pressing the %s button on the status bar.");\r
+},\r
+\r
+createSidebarTreeElementForProfile: function(profile)\r
+{\r
+return new WebInspector.ProfileSidebarTreeElement(profile, WebInspector.UIString("Snapshot %d"), "heap-snapshot-sidebar-tree-item");\r
+},\r
+\r
+createView: function(profile)\r
+{\r
+return new WebInspector.HeapSnapshotView(WebInspector.panels.profiles, profile);\r
+}\r
+}\r
+\r
+WebInspector.HeapSnapshotProfileType.prototype.__proto__ = WebInspector.ProfileType.prototype;\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DebuggerModel = function()\r
+{\r
+InspectorBackend.registerDomainDispatcher("Debugger", this);\r
+\r
+this._paused = false;\r
+this._breakpoints = {};\r
+this._sourceIDAndLineToBreakpointId = {};\r
+this._scripts = {};\r
+}\r
+\r
+WebInspector.DebuggerModel.Events = {\r
+DebuggerPaused: "debugger-paused",\r
+DebuggerResumed: "debugger-resumed",\r
+ParsedScriptSource: "parsed-script-source",\r
+FailedToParseScriptSource: "failed-to-parse-script-source",\r
+BreakpointAdded: "breakpoint-added",\r
+BreakpointRemoved: "breakpoint-removed"\r
+}\r
+\r
+WebInspector.DebuggerModel.prototype = {\r
+continueToLine: function(sourceID, lineNumber)\r
+{\r
+function didSetBreakpoint(breakpointId, actualLineNumber)\r
+{\r
+if (!breakpointId)\r
+return;\r
+if (this.findBreakpoint(sourceID, actualLineNumber)) {\r
+InspectorBackend.removeBreakpoint(breakpointId);\r
+return;\r
+}\r
+if ("_continueToLineBreakpointId" in this)\r
+InspectorBackend.removeBreakpoint(this._continueToLineBreakpointId);\r
+this._continueToLineBreakpointId = breakpointId;\r
+}\r
+InspectorBackend.setBreakpoint(sourceID, lineNumber, "", true, didSetBreakpoint.bind(this));\r
+if (this._paused)\r
+InspectorBackend.resume();\r
+},\r
+\r
+setBreakpoint: function(sourceID, lineNumber, enabled, condition)\r
+{\r
+function didSetBreakpoint(breakpointId, actualLineNumber)\r
+{\r
+if (breakpointId)\r
+this._breakpointSetOnBackend(breakpointId, sourceID, actualLineNumber, condition, enabled, lineNumber, false);\r
+}\r
+InspectorBackend.setBreakpoint(sourceID, lineNumber, condition, enabled, didSetBreakpoint.bind(this));\r
+},\r
+\r
+removeBreakpoint: function(breakpointId)\r
+{\r
+InspectorBackend.removeBreakpoint(breakpointId);\r
+var breakpoint = this._breakpoints[breakpointId];\r
+delete this._breakpoints[breakpointId];\r
+delete this._sourceIDAndLineToBreakpointId[this._encodeSourceIDAndLine(breakpoint.sourceID, breakpoint.line)];\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointRemoved, breakpointId);\r
+},\r
+\r
+breakpointResolved: function(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber)\r
+{\r
+this._breakpointSetOnBackend(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber, true);\r
+},\r
+\r
+_breakpointSetOnBackend: function(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber, restored)\r
+{\r
+var sourceIDAndLine = this._encodeSourceIDAndLine(sourceID, lineNumber);\r
+if (sourceIDAndLine in this._sourceIDAndLineToBreakpointId) {\r
+InspectorBackend.removeBreakpoint(breakpointId);\r
+return;\r
+}\r
+\r
+var url = this._scripts[sourceID].sourceURL;\r
+var breakpoint = new WebInspector.Breakpoint(this, breakpointId, sourceID, url, lineNumber, enabled, condition);\r
+breakpoint.restored = restored;\r
+breakpoint.originalLineNumber = originalLineNumber;\r
+this._breakpoints[breakpointId] = breakpoint;\r
+this._sourceIDAndLineToBreakpointId[sourceIDAndLine] = breakpointId;\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointAdded, breakpoint);\r
+},\r
+\r
+queryBreakpoints: function(filter)\r
+{\r
+var breakpoints = [];\r
+for (var id in this._breakpoints) {\r
+var breakpoint = this._breakpoints[id];\r
+if (filter(breakpoint))\r
+breakpoints.push(breakpoint);\r
+}\r
+return breakpoints;\r
+},\r
+\r
+findBreakpoint: function(sourceID, lineNumber)\r
+{\r
+var sourceIDAndLine = this._encodeSourceIDAndLine(sourceID, lineNumber);\r
+var breakpointId = this._sourceIDAndLineToBreakpointId[sourceIDAndLine];\r
+return this._breakpoints[breakpointId];\r
+},\r
+\r
+_encodeSourceIDAndLine: function(sourceID, lineNumber)\r
+{\r
+return sourceID + ":" + lineNumber;\r
+},\r
+\r
+reset: function()\r
+{\r
+this._paused = false;\r
+this._breakpoints = {};\r
+delete this._oneTimeBreakpoint;\r
+this._sourceIDAndLineToBreakpointId = {};\r
+this._scripts = {};\r
+},\r
+\r
+scriptForSourceID: function(sourceID)\r
+{\r
+return this._scripts[sourceID];\r
+},\r
+\r
+scriptsForURL: function(url)\r
+{\r
+return this.queryScripts(function(s) { return s.sourceURL === url; });\r
+},\r
+\r
+queryScripts: function(filter)\r
+{\r
+var scripts = [];\r
+for (var sourceID in this._scripts) {\r
+var script = this._scripts[sourceID];\r
+if (filter(script))\r
+scripts.push(script);\r
+}\r
+return scripts;\r
+},\r
+\r
+\r
+\r
+pausedScript: function(details)\r
+{\r
+this._paused = true;\r
+if ("_continueToLineBreakpointId" in this) {\r
+InspectorBackend.removeBreakpoint(this._continueToLineBreakpointId);\r
+delete this._continueToLineBreakpointId;\r
+}\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerPaused, details);\r
+\r
+if (details.eventType === WebInspector.DebuggerEventTypes.JavaScriptPause || details.eventType === WebInspector.DebuggerEventTypes.NativeBreakpoint)\r
+return;\r
+\r
+var breakpoint = this.findBreakpoint(details.callFrames[0].sourceID, details.callFrames[0].line);\r
+if (!breakpoint)\r
+return;\r
+breakpoint.hit = true;\r
+this._lastHitBreakpoint = breakpoint;\r
+},\r
+\r
+resumedScript: function()\r
+{\r
+this._paused = false;\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerResumed);\r
+\r
+if (!this._lastHitBreakpoint)\r
+return;\r
+this._lastHitBreakpoint.hit = false;\r
+delete this._lastHitBreakpoint;\r
+},\r
+\r
+attachDebuggerWhenShown: function()\r
+{\r
+WebInspector.panels.scripts.attachDebuggerWhenShown();\r
+},\r
+\r
+debuggerWasEnabled: function()\r
+{\r
+WebInspector.panels.scripts.debuggerWasEnabled();\r
+},\r
+\r
+debuggerWasDisabled: function()\r
+{\r
+WebInspector.panels.scripts.debuggerWasDisabled();\r
+},\r
+\r
+parsedScriptSource: function(sourceID, sourceURL, source, startingLine, scriptWorldType)\r
+{\r
+var script = new WebInspector.Script(sourceID, sourceURL, source, startingLine, undefined, undefined, scriptWorldType);\r
+this._scripts[sourceID] = script;\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.ParsedScriptSource, sourceID);\r
+},\r
+\r
+failedToParseScriptSource: function(sourceURL, source, startingLine, errorLine, errorMessage)\r
+{\r
+var script = new WebInspector.Script(null, sourceURL, source, startingLine, errorLine, errorMessage, undefined);\r
+this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, script);\r
+},\r
+\r
+didCreateWorker: function()\r
+{\r
+var workersPane = WebInspector.panels.scripts.sidebarPanes.workers;\r
+workersPane.addWorker.apply(workersPane, arguments);\r
+},\r
+\r
+didDestroyWorker: function()\r
+{\r
+var workersPane = WebInspector.panels.scripts.sidebarPanes.workers;\r
+workersPane.removeWorker.apply(workersPane, arguments);\r
+}\r
+}\r
+\r
+WebInspector.DebuggerModel.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+WebInspector.DebuggerEventTypes = {\r
+JavaScriptPause: 0,\r
+JavaScriptBreakpoint: 1,\r
+NativeBreakpoint: 2\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.DOMNode = function(doc, payload) {\r
+this.ownerDocument = doc;\r
+\r
+this.id = payload.id;\r
+this.nodeType = payload.nodeType;\r
+this.nodeName = payload.nodeName;\r
+this.localName = payload.localName;\r
+this._nodeValue = payload.nodeValue;\r
+this.textContent = this.nodeValue;\r
+\r
+this.attributes = [];\r
+this._attributesMap = {};\r
+if (payload.attributes)\r
+this._setAttributesPayload(payload.attributes);\r
+\r
+this._childNodeCount = payload.childNodeCount;\r
+this.children = null;\r
+\r
+this.nextSibling = null;\r
+this.prevSibling = null;\r
+this.firstChild = null;\r
+this.lastChild = null;\r
+this.parentNode = null;\r
+\r
+if (payload.children)\r
+this._setChildrenPayload(payload.children);\r
+\r
+this._computedStyle = null;\r
+this.style = null;\r
+this._matchedCSSRules = [];\r
+\r
+this.breakpoints = {};\r
+\r
+if (this.nodeType === Node.ELEMENT_NODE) {\r
+\r
+if (!this.ownerDocument.documentElement && this.nodeName === "HTML")\r
+this.ownerDocument.documentElement = this;\r
+if (!this.ownerDocument.body && this.nodeName === "BODY")\r
+this.ownerDocument.body = this;\r
+if (payload.documentURL)\r
+this.documentURL = payload.documentURL;\r
+} else if (this.nodeType === Node.DOCUMENT_TYPE_NODE) {\r
+this.publicId = payload.publicId;\r
+this.systemId = payload.systemId;\r
+this.internalSubset = payload.internalSubset;\r
+} else if (this.nodeType === Node.DOCUMENT_NODE) {\r
+this.documentURL = payload.documentURL;\r
+} else if (this.nodeType === Node.ATTRIBUTE_NODE) {\r
+this.name = payload.name;\r
+this.value = payload.value;\r
+}\r
+}\r
+\r
+WebInspector.DOMNode.prototype = {\r
+hasAttributes: function()\r
+{\r
+return this.attributes.length > 0;\r
+},\r
+\r
+hasChildNodes: function()\r
+{\r
+return this._childNodeCount > 0;\r
+},\r
+\r
+get nodeValue() {\r
+return this._nodeValue;\r
+},\r
+\r
+set nodeValue(value) {\r
+if (this.nodeType != Node.TEXT_NODE)\r
+return;\r
+this.ownerDocument._domAgent.setTextNodeValueAsync(this, value, function() {});\r
+},\r
+\r
+getAttribute: function(name)\r
+{\r
+var attr = this._attributesMap[name];\r
+return attr ? attr.value : undefined;\r
+},\r
+\r
+setAttribute: function(name, value)\r
+{\r
+var self = this;\r
+var callback = function()\r
+{\r
+var attr = self._attributesMap[name];\r
+if (attr)\r
+attr.value = value;\r
+else\r
+attr = self._addAttribute(name, value);\r
+};\r
+this.ownerDocument._domAgent.setAttributeAsync(this, name, value, callback);\r
+},\r
+\r
+removeAttribute: function(name)\r
+{\r
+var self = this;\r
+var callback = function()\r
+{\r
+delete self._attributesMap[name];\r
+for (var i = 0;  i < self.attributes.length; ++i) {\r
+if (self.attributes[i].name == name) {\r
+self.attributes.splice(i, 1);\r
+break;\r
+}\r
+}\r
+};\r
+this.ownerDocument._domAgent.removeAttributeAsync(this, name, callback);\r
+},\r
+\r
+path: function()\r
+{\r
+var path = [];\r
+var node = this;\r
+while (node && "index" in node && node.nodeName.length) {\r
+path.push([node.index, node.nodeName]);\r
+node = node.parentNode;\r
+}\r
+path.reverse();\r
+return path.join(",");\r
+},\r
+\r
+_setAttributesPayload: function(attrs)\r
+{\r
+this.attributes = [];\r
+this._attributesMap = {};\r
+for (var i = 0; i < attrs.length; i += 2)\r
+this._addAttribute(attrs[i], attrs[i + 1]);\r
+},\r
+\r
+_insertChild: function(prev, payload)\r
+{\r
+var node = new WebInspector.DOMNode(this.ownerDocument, payload);\r
+if (!prev) {\r
+if (!this.children) {\r
+\r
+this.children = [ node ];\r
+} else\r
+this.children.unshift(node);\r
+} else\r
+this.children.splice(this.children.indexOf(prev) + 1, 0, node);\r
+this._renumber();\r
+return node;\r
+},\r
+\r
+removeChild_: function(node)\r
+{\r
+this.children.splice(this.children.indexOf(node), 1);\r
+node.parentNode = null;\r
+this._renumber();\r
+},\r
+\r
+_setChildrenPayload: function(payloads)\r
+{\r
+this.children = [];\r
+for (var i = 0; i < payloads.length; ++i) {\r
+var payload = payloads[i];\r
+var node = new WebInspector.DOMNode(this.ownerDocument, payload);\r
+this.children.push(node);\r
+}\r
+this._renumber();\r
+},\r
+\r
+_renumber: function()\r
+{\r
+this._childNodeCount = this.children.length;\r
+if (this._childNodeCount == 0) {\r
+this.firstChild = null;\r
+this.lastChild = null;\r
+return;\r
+}\r
+this.firstChild = this.children[0];\r
+this.lastChild = this.children[this._childNodeCount - 1];\r
+for (var i = 0; i < this._childNodeCount; ++i) {\r
+var child = this.children[i];\r
+child.index = i;\r
+child.nextSibling = i + 1 < this._childNodeCount ? this.children[i + 1] : null;\r
+child.prevSibling = i - 1 >= 0 ? this.children[i - 1] : null;\r
+child.parentNode = this;\r
+}\r
+},\r
+\r
+_addAttribute: function(name, value)\r
+{\r
+var attr = {\r
+"name": name,\r
+"value": value,\r
+"_node": this\r
+};\r
+this._attributesMap[name] = attr;\r
+this.attributes.push(attr);\r
+}\r
+}\r
+\r
+WebInspector.DOMDocument = function(domAgent, defaultView, payload)\r
+{\r
+WebInspector.DOMNode.call(this, this, payload);\r
+this._listeners = {};\r
+this._domAgent = domAgent;\r
+this.defaultView = defaultView;\r
+}\r
+\r
+WebInspector.DOMDocument.prototype = {\r
+\r
+addEventListener: function(name, callback)\r
+{\r
+var listeners = this._listeners[name];\r
+if (!listeners) {\r
+listeners = [];\r
+this._listeners[name] = listeners;\r
+}\r
+listeners.push(callback);\r
+},\r
+\r
+removeEventListener: function(name, callback)\r
+{\r
+var listeners = this._listeners[name];\r
+if (!listeners)\r
+return;\r
+\r
+var index = listeners.indexOf(callback);\r
+if (index != -1)\r
+listeners.splice(index, 1);\r
+},\r
+\r
+_fireDomEvent: function(name, event)\r
+{\r
+var listeners = this._listeners[name];\r
+if (!listeners)\r
+return;\r
+\r
+for (var i = 0; i < listeners.length; ++i) {\r
+var listener = listeners[i];\r
+listener.call(this, event);\r
+}\r
+}\r
+}\r
+\r
+WebInspector.DOMDocument.prototype.__proto__ = WebInspector.DOMNode.prototype;\r
+\r
+\r
+WebInspector.DOMWindow = function(domAgent)\r
+{\r
+this._domAgent = domAgent;\r
+}\r
+\r
+WebInspector.DOMWindow.prototype = {\r
+get document()\r
+{\r
+return this._domAgent.document;\r
+},\r
+\r
+get Node()\r
+{\r
+return WebInspector.DOMNode;\r
+},\r
+\r
+get Element()\r
+{\r
+return WebInspector.DOMNode;\r
+},\r
+\r
+Object: function()\r
+{\r
+}\r
+}\r
+\r
+WebInspector.DOMAgent = function() {\r
+this._window = new WebInspector.DOMWindow(this);\r
+this._idToDOMNode = null;\r
+this.document = null;\r
+InspectorBackend.registerDomainDispatcher("DOM", this);\r
+}\r
+\r
+WebInspector.DOMAgent.prototype = {\r
+get domWindow()\r
+{\r
+return this._window;\r
+},\r
+\r
+getChildNodesAsync: function(parent, callback)\r
+{\r
+var children = parent.children;\r
+if (children) {\r
+callback(children);\r
+return;\r
+}\r
+function mycallback() {\r
+callback(parent.children);\r
+}\r
+InspectorBackend.getChildNodes(parent.id, mycallback);\r
+},\r
+\r
+setAttributeAsync: function(node, name, value, callback)\r
+{\r
+var mycallback = this._didApplyDomChange.bind(this, node, callback);\r
+InspectorBackend.setAttribute(node.id, name, value, mycallback);\r
+},\r
+\r
+removeAttributeAsync: function(node, name, callback)\r
+{\r
+var mycallback = this._didApplyDomChange.bind(this, node, callback);\r
+InspectorBackend.removeAttribute(node.id, name, mycallback);\r
+},\r
+\r
+setTextNodeValueAsync: function(node, text, callback)\r
+{\r
+var mycallback = this._didApplyDomChange.bind(this, node, callback);\r
+InspectorBackend.setTextNodeValue(node.id, text, mycallback);\r
+},\r
+\r
+_didApplyDomChange: function(node, callback, success)\r
+{\r
+if (!success)\r
+return;\r
+callback();\r
+\r
+var elem = WebInspector.panels.elements.treeOutline.findTreeElement(node);\r
+if (elem)\r
+elem.updateTitle();\r
+},\r
+\r
+attributesUpdated: function(nodeId, attrsArray)\r
+{\r
+var node = this._idToDOMNode[nodeId];\r
+node._setAttributesPayload(attrsArray);\r
+var event = {target: node};\r
+this.document._fireDomEvent("DOMAttrModified", event);\r
+},\r
+\r
+characterDataModified: function(nodeId, newValue)\r
+{\r
+var node = this._idToDOMNode[nodeId];\r
+node._nodeValue = newValue;\r
+node.textContent = newValue;\r
+var event = { target : node };\r
+this.document._fireDomEvent("DOMCharacterDataModified", event);\r
+},\r
+\r
+nodeForId: function(nodeId)\r
+{\r
+return this._idToDOMNode[nodeId];\r
+},\r
+\r
+didCommitLoad: function()\r
+{\r
+\r
+this.setDocument(null);\r
+},\r
+\r
+setDocument: function(payload)\r
+{\r
+this._idToDOMNode = {};\r
+if (payload && "id" in payload) {\r
+this.document = new WebInspector.DOMDocument(this, this._window, payload);\r
+this._idToDOMNode[payload.id] = this.document;\r
+this._bindNodes(this.document.children);\r
+WebInspector.breakpointManager.restoreDOMBreakpoints();\r
+} else\r
+this.document = null;\r
+WebInspector.panels.elements.setDocument(this.document);\r
+},\r
+\r
+setDetachedRoot: function(payload)\r
+{\r
+var root = new WebInspector.DOMNode(this.document, payload);\r
+this._idToDOMNode[payload.id] = root;\r
+},\r
+\r
+setChildNodes: function(parentId, payloads)\r
+{\r
+var parent = this._idToDOMNode[parentId];\r
+parent._setChildrenPayload(payloads);\r
+this._bindNodes(parent.children);\r
+},\r
+\r
+_bindNodes: function(children)\r
+{\r
+for (var i = 0; i < children.length; ++i) {\r
+var child = children[i];\r
+this._idToDOMNode[child.id] = child;\r
+if (child.children)\r
+this._bindNodes(child.children);\r
+}\r
+},\r
+\r
+childNodeCountUpdated: function(nodeId, newValue)\r
+{\r
+var node = this._idToDOMNode[nodeId];\r
+node._childNodeCount = newValue;\r
+var outline = WebInspector.panels.elements.treeOutline;\r
+var treeElement = outline.findTreeElement(node);\r
+if (treeElement)\r
+treeElement.hasChildren = newValue;\r
+},\r
+\r
+childNodeInserted: function(parentId, prevId, payload)\r
+{\r
+var parent = this._idToDOMNode[parentId];\r
+var prev = this._idToDOMNode[prevId];\r
+var node = parent._insertChild(prev, payload);\r
+this._idToDOMNode[node.id] = node;\r
+var event = { target : node, relatedNode : parent };\r
+this.document._fireDomEvent("DOMNodeInserted", event);\r
+},\r
+\r
+childNodeRemoved: function(parentId, nodeId)\r
+{\r
+var parent = this._idToDOMNode[parentId];\r
+var node = this._idToDOMNode[nodeId];\r
+parent.removeChild_(node);\r
+var event = { target : node, relatedNode : parent };\r
+this.document._fireDomEvent("DOMNodeRemoved", event);\r
+delete this._idToDOMNode[nodeId];\r
+this._removeBreakpoints(node);\r
+},\r
+\r
+_removeBreakpoints: function(node)\r
+{\r
+for (var type in node.breakpoints)\r
+node.breakpoints[type].remove();\r
+if (!node.children)\r
+return;\r
+for (var i = 0; i < node.children.length; ++i)\r
+this._removeBreakpoints(node.children[i]);\r
+}\r
+}\r
+\r
+WebInspector.ApplicationCache = {}\r
+\r
+WebInspector.ApplicationCache.getApplicationCachesAsync = function(callback)\r
+{\r
+function mycallback(applicationCaches)\r
+{\r
+\r
+if (applicationCaches)\r
+callback(applicationCaches);\r
+}\r
+\r
+InspectorBackend.getApplicationCaches(mycallback);\r
+}\r
+\r
+WebInspector.Cookies = {}\r
+\r
+WebInspector.Cookies.getCookiesAsync = function(callback)\r
+{\r
+function mycallback(cookies, cookiesString)\r
+{\r
+if (cookiesString)\r
+callback(WebInspector.Cookies.buildCookiesFromString(cookiesString), false);\r
+else\r
+callback(cookies, true);\r
+}\r
+\r
+InspectorBackend.getCookies(mycallback);\r
+}\r
+\r
+WebInspector.Cookies.buildCookiesFromString = function(rawCookieString)\r
+{\r
+var rawCookies = rawCookieString.split(/;\s*/);\r
+var cookies = [];\r
+\r
+if (!(/^\s*$/.test(rawCookieString))) {\r
+for (var i = 0; i < rawCookies.length; ++i) {\r
+var cookie = rawCookies[i];\r
+var delimIndex = cookie.indexOf("=");\r
+var name = cookie.substring(0, delimIndex);\r
+var value = cookie.substring(delimIndex + 1);\r
+var size = name.length + value.length;\r
+cookies.push({ name: name, value: value, size: size });\r
+}\r
+}\r
+\r
+return cookies;\r
+}\r
+\r
+WebInspector.Cookies.cookieMatchesResourceURL = function(cookie, resourceURL)\r
+{\r
+var url = resourceURL.asParsedURL();\r
+if (!url || !this.cookieDomainMatchesResourceDomain(cookie.domain, url.host))\r
+return false;\r
+return (url.path.indexOf(cookie.path) === 0\r
+&& (!cookie.port || url.port == cookie.port)\r
+&& (!cookie.secure || url.scheme === "https"));\r
+}\r
+\r
+WebInspector.Cookies.cookieDomainMatchesResourceDomain = function(cookieDomain, resourceDomain)\r
+{\r
+if (cookieDomain.charAt(0) !== '.')\r
+return resourceDomain === cookieDomain;\r
+return !!resourceDomain.match(new RegExp("^([^\\.]+\\.)?" + cookieDomain.substring(1).escapeForRegExp() + "$"), "i");\r
+}\r
+\r
+WebInspector.EventListeners = {}\r
+\r
+WebInspector.EventListeners.getEventListenersForNodeAsync = function(node, callback)\r
+{\r
+if (!node)\r
+return;\r
+InspectorBackend.getEventListenersForNode(node.id, callback);\r
+}\r
+\r
+\r
+\r
+\r
+\r
+var injectedScriptConstructor = (function (InjectedScriptHost, inspectedWindow, injectedScriptId) {\r
+\r
+var InjectedScript = function()\r
+{\r
+this._lastBoundObjectId = 1;\r
+this._idToWrappedObject = {};\r
+this._objectGroups = {};\r
+}\r
+\r
+InjectedScript.prototype = {\r
+wrapObjectForConsole: function(object, canAccessInspectedWindow)\r
+{\r
+if (canAccessInspectedWindow)\r
+return this._wrapObject(object, "console");\r
+var result = {};\r
+result.type = typeof object;\r
+result.description = this._toString(object);\r
+return result;\r
+},\r
+\r
+_wrapObject: function(object, objectGroupName, abbreviate)\r
+{\r
+try {\r
+var objectId;\r
+if (typeof object === "object" || typeof object === "function" || this._isHTMLAllCollection(object)) {\r
+var id = this._lastBoundObjectId++;\r
+this._idToWrappedObject[id] = object;\r
+\r
+var group = this._objectGroups[objectGroupName];\r
+if (!group) {\r
+group = [];\r
+this._objectGroups[objectGroupName] = group;\r
+}\r
+group.push(id);\r
+objectId = this._serializeObjectId(id, objectGroupName);\r
+}\r
+return InjectedScript.RemoteObject.fromObject(object, objectId, abbreviate);\r
+} catch (e) {\r
+return InjectedScript.RemoteObject.fromObject("[ Exception: " + e.toString() + " ]");\r
+}\r
+},\r
+\r
+_serializeObjectId: function(id, groupName)\r
+{\r
+return injectedScriptId + ":" + id + ":" + groupName;\r
+},\r
+\r
+_parseObjectId: function(objectId)\r
+{\r
+var tokens = objectId.split(":");\r
+var parsedObjectId = {};\r
+parsedObjectId.id = parseInt(tokens[1]);\r
+parsedObjectId.groupName = tokens[2];\r
+return parsedObjectId;\r
+},\r
+\r
+releaseWrapperObjectGroup: function(objectGroupName)\r
+{\r
+var group = this._objectGroups[objectGroupName];\r
+if (!group)\r
+return;\r
+for (var i = 0; i < group.length; i++)\r
+delete this._idToWrappedObject[group[i]];\r
+delete this._objectGroups[objectGroupName];\r
+},\r
+\r
+dispatch: function(methodName, args)\r
+{\r
+var argsArray = eval("(" + args + ")");\r
+var result = this[methodName].apply(this, argsArray);\r
+if (typeof result === "undefined") {\r
+inspectedWindow.console.error("Web Inspector error: InjectedScript.%s returns undefined", methodName);\r
+result = null;\r
+}\r
+return result;\r
+},\r
+\r
+getPrototypes: function(nodeId)\r
+{\r
+this.releaseWrapperObjectGroup("prototypes");\r
+var node = this._nodeForId(nodeId);\r
+if (!node)\r
+return false;\r
+\r
+var result = [];\r
+var prototype = node;\r
+do {\r
+result.push(this._wrapObject(prototype, "prototypes"));\r
+prototype = prototype.__proto__;\r
+} while (prototype)\r
+return result;\r
+},\r
+\r
+getProperties: function(objectId, ignoreHasOwnProperty, abbreviate)\r
+{\r
+var parsedObjectId = this._parseObjectId(objectId);\r
+var object = this._objectForId(parsedObjectId);\r
+if (!this._isDefined(object))\r
+return false;\r
+var properties = [];\r
+\r
+var propertyNames = ignoreHasOwnProperty ? this._getPropertyNames(object) : Object.getOwnPropertyNames(object);\r
+if (!ignoreHasOwnProperty && object.__proto__)\r
+propertyNames.push("__proto__");\r
+\r
+\r
+for (var i = 0; i < propertyNames.length; ++i) {\r
+var propertyName = propertyNames[i];\r
+\r
+var property = {};\r
+property.name = propertyName + "";\r
+var isGetter = object["__lookupGetter__"] && object.__lookupGetter__(propertyName);\r
+if (!isGetter) {\r
+try {\r
+property.value = this._wrapObject(object[propertyName], parsedObjectId.groupName, abbreviate);\r
+} catch(e) {\r
+property.value = new InjectedScript.RemoteObject.fromException(e);\r
+}\r
+} else {\r
+\r
+property.value = new InjectedScript.RemoteObject.fromObject("\u2014"); \r
+property.isGetter = true;\r
+}\r
+properties.push(property);\r
+}\r
+return properties;\r
+},\r
+\r
+setPropertyValue: function(objectId, propertyName, expression)\r
+{\r
+var parsedObjectId = this._parseObjectId(objectId);\r
+var object = this._objectForId(parsedObjectId);\r
+if (!this._isDefined(object))\r
+return false;\r
+\r
+var expressionLength = expression.length;\r
+if (!expressionLength) {\r
+delete object[propertyName];\r
+return !(propertyName in object);\r
+}\r
+\r
+try {\r
+\r
+\r
+\r
+\r
+\r
+\r
+var result = inspectedWindow.eval("(" + expression + ")");\r
+\r
+object[propertyName] = result;\r
+return true;\r
+} catch(e) {\r
+try {\r
+var result = inspectedWindow.eval("\"" + expression.replace(/"/g, "\\\"") + "\"");\r
+object[propertyName] = result;\r
+return true;\r
+} catch(e) {\r
+return false;\r
+}\r
+}\r
+},\r
+\r
+_populatePropertyNames: function(object, resultSet)\r
+{\r
+for (var o = object; o; o = o.__proto__) {\r
+try {\r
+var names = Object.getOwnPropertyNames(o);\r
+for (var i = 0; i < names.length; ++i)\r
+resultSet[names[i]] = true;\r
+} catch (e) {\r
+}\r
+}\r
+},\r
+\r
+_getPropertyNames: function(object, resultSet)\r
+{\r
+var propertyNameSet = {};\r
+this._populatePropertyNames(object, propertyNameSet);\r
+return Object.keys(propertyNameSet);\r
+},\r
+\r
+getCompletions: function(expression, includeInspectorCommandLineAPI, callFrameId)\r
+{\r
+var props = {};\r
+try {\r
+var expressionResult;\r
+\r
+if (typeof callFrameId === "number") {\r
+var callFrame = this._callFrameForId(callFrameId);\r
+if (!callFrame)\r
+return props;\r
+if (expression)\r
+expressionResult = this._evaluateOn(callFrame.evaluate, callFrame, expression, true);\r
+else {\r
+\r
+var scopeChain = callFrame.scopeChain;\r
+for (var i = 0; i < scopeChain.length; ++i)\r
+this._populatePropertyNames(scopeChain[i], props);\r
+}\r
+} else {\r
+if (!expression)\r
+expression = "this";\r
+expressionResult = this._evaluateOn(inspectedWindow.eval, inspectedWindow, expression, false);\r
+}\r
+if (typeof expressionResult === "object")\r
+this._populatePropertyNames(expressionResult, props);\r
+\r
+if (includeInspectorCommandLineAPI) {\r
+for (var prop in this._commandLineAPI)\r
+props[prop] = true;\r
+}\r
+} catch(e) {\r
+}\r
+return props;\r
+},\r
+\r
+evaluate: function(expression, objectGroup)\r
+{\r
+return this._evaluateAndWrap(inspectedWindow.eval, inspectedWindow, expression, objectGroup, false);\r
+},\r
+\r
+_evaluateAndWrap: function(evalFunction, object, expression, objectGroup, isEvalOnCallFrame)\r
+{\r
+try {\r
+return this._wrapObject(this._evaluateOn(evalFunction, object, expression, isEvalOnCallFrame), objectGroup);\r
+} catch (e) {\r
+return InjectedScript.RemoteObject.fromException(e);\r
+}\r
+},\r
+\r
+_evaluateOn: function(evalFunction, object, expression, isEvalOnCallFrame)\r
+{\r
+\r
+\r
+\r
+inspectedWindow.console._commandLineAPI = this._commandLineAPI;\r
+\r
+\r
+if (!isEvalOnCallFrame)\r
+expression = "with (window) {\n" + expression + "\n} ";\r
+expression = "with (window ? window.console._commandLineAPI : {}) {\n" + expression + "\n}";\r
+var value = evalFunction.call(object, expression);\r
+\r
+delete inspectedWindow.console._commandLineAPI;\r
+\r
+\r
+if (this._type(value) === "error")\r
+throw value.toString();\r
+\r
+return value;\r
+},\r
+\r
+getNodeId: function(node)\r
+{\r
+return InjectedScriptHost.pushNodePathToFrontend(node, false, false);\r
+},\r
+\r
+callFrames: function()\r
+{\r
+var callFrame = InjectedScriptHost.currentCallFrame();\r
+if (!callFrame)\r
+return false;\r
+\r
+injectedScript.releaseWrapperObjectGroup("backtrace");\r
+var result = [];\r
+var depth = 0;\r
+do {\r
+result.push(new InjectedScript.CallFrameProxy(depth++, callFrame));\r
+callFrame = callFrame.caller;\r
+} while (callFrame);\r
+return result;\r
+},\r
+\r
+evaluateInCallFrame: function(callFrameId, code, objectGroup)\r
+{\r
+var callFrame = this._callFrameForId(callFrameId);\r
+if (!callFrame)\r
+return false;\r
+return this._evaluateAndWrap(callFrame.evaluate, callFrame, code, objectGroup, true);\r
+},\r
+\r
+_callFrameForId: function(id)\r
+{\r
+var callFrame = InjectedScriptHost.currentCallFrame();\r
+while (--id >= 0 && callFrame)\r
+callFrame = callFrame.caller;\r
+return callFrame;\r
+},\r
+\r
+_nodeForId: function(nodeId)\r
+{\r
+if (!nodeId)\r
+return null;\r
+return InjectedScriptHost.nodeForId(nodeId);\r
+},\r
+\r
+_objectForId: function(parsedObjectId)\r
+{\r
+return this._idToWrappedObject[parsedObjectId.id];\r
+},\r
+\r
+resolveNode: function(nodeId)\r
+{\r
+var node = this._nodeForId(nodeId);\r
+if (!node)\r
+return false;\r
+\r
+return this._wrapObject(node, "prototype");\r
+},\r
+\r
+getNodeProperties: function(nodeId, properties)\r
+{\r
+var node = this._nodeForId(nodeId);\r
+if (!node)\r
+return false;\r
+var result = {};\r
+for (var i = 0; i < properties.length; ++i)\r
+result[properties[i]] = node[properties[i]];\r
+return result;\r
+},\r
+\r
+pushNodeToFrontend: function(objectId)\r
+{\r
+var parsedObjectId = this._parseObjectId(objectId);\r
+var object = this._objectForId(parsedObjectId);\r
+if (!object || this._type(object) !== "node")\r
+return false;\r
+return InjectedScriptHost.pushNodePathToFrontend(object, false, false);\r
+},\r
+\r
+evaluateOnSelf: function(funcBody, args)\r
+{\r
+var func = window.eval("(" + funcBody + ")");\r
+return func.apply(this, args || []);\r
+},\r
+\r
+_isDefined: function(object)\r
+{\r
+return object || this._isHTMLAllCollection(object);\r
+},\r
+\r
+_isHTMLAllCollection: function(object)\r
+{\r
+\r
+return (typeof object === "undefined") && inspectedWindow.HTMLAllCollection && object instanceof inspectedWindow.HTMLAllCollection;\r
+},\r
+\r
+_type: function(obj)\r
+{\r
+if (obj === null)\r
+return "null";\r
+\r
+var type = typeof obj;\r
+if (type !== "object" && type !== "function") {\r
+\r
+if (this._isHTMLAllCollection(obj))\r
+return "array";\r
+return type;\r
+}\r
+\r
+\r
+\r
+if (!inspectedWindow.document)\r
+return type;\r
+\r
+if (obj instanceof inspectedWindow.Node)\r
+return (obj.nodeType === undefined ? type : "node");\r
+if (obj instanceof inspectedWindow.String)\r
+return "string";\r
+if (obj instanceof inspectedWindow.Array)\r
+return "array";\r
+if (obj instanceof inspectedWindow.Boolean)\r
+return "boolean";\r
+if (obj instanceof inspectedWindow.Number)\r
+return "number";\r
+if (obj instanceof inspectedWindow.Date)\r
+return "date";\r
+if (obj instanceof inspectedWindow.RegExp)\r
+return "regexp";\r
+\r
+if (isFinite(obj.length) && typeof obj.splice === "function")\r
+return "array";\r
+if (isFinite(obj.length) && typeof obj.callee === "function") \r
+return "array";\r
+if (obj instanceof inspectedWindow.NodeList)\r
+return "array";\r
+if (obj instanceof inspectedWindow.HTMLCollection)\r
+return "array";\r
+if (obj instanceof inspectedWindow.Error)\r
+return "error";\r
+return type;\r
+},\r
+\r
+_describe: function(obj, abbreviated)\r
+{\r
+var type = this._type(obj);\r
+\r
+switch (type) {\r
+case "object":\r
+case "node":\r
+var result = InjectedScriptHost.internalConstructorName(obj);\r
+if (result === "Object") {\r
+\r
+\r
+var constructorName = obj.constructor && obj.constructor.name;\r
+if (constructorName)\r
+return constructorName;\r
+}\r
+return result;\r
+case "array":\r
+var className = InjectedScriptHost.internalConstructorName(obj);\r
+if (typeof obj.length === "number")\r
+className += "[" + obj.length + "]";\r
+return className;\r
+case "string":\r
+if (!abbreviated)\r
+return obj;\r
+if (obj.length > 100)\r
+return "\"" + obj.substring(0, 100) + "\u2026\"";\r
+return "\"" + obj + "\"";\r
+case "function":\r
+var objectText = this._toString(obj);\r
+if (abbreviated)\r
+objectText = /.*/.exec(objectText)[0].replace(/ +$/g, "");\r
+return objectText;\r
+default:\r
+return this._toString(obj);\r
+}\r
+},\r
+\r
+_toString: function(obj)\r
+{\r
+\r
+return "" + obj;\r
+},\r
+\r
+_logEvent: function(event)\r
+{\r
+console.log(event.type, event);\r
+},\r
+\r
+_normalizeEventTypes: function(types)\r
+{\r
+if (typeof types === "undefined")\r
+types = [ "mouse", "key", "load", "unload", "abort", "error", "select", "change", "submit", "reset", "focus", "blur", "resize", "scroll" ];\r
+else if (typeof types === "string")\r
+types = [ types ];\r
+\r
+var result = [];\r
+for (var i = 0; i < types.length; i++) {\r
+if (types[i] === "mouse")\r
+result.splice(0, 0, "mousedown", "mouseup", "click", "dblclick", "mousemove", "mouseover", "mouseout");\r
+else if (types[i] === "key")\r
+result.splice(0, 0, "keydown", "keyup", "keypress");\r
+else\r
+result.push(types[i]);\r
+}\r
+return result;\r
+},\r
+\r
+_inspectedNode: function(num)\r
+{\r
+var nodeId = InjectedScriptHost.inspectedNode(num);\r
+return this._nodeForId(nodeId);\r
+},\r
+\r
+_bindToScript: function(func)\r
+{\r
+var args = Array.prototype.slice.call(arguments, 1);\r
+function bound()\r
+{\r
+return func.apply(injectedScript, args.concat(Array.prototype.slice.call(arguments)));\r
+}\r
+bound.toString = function() {\r
+return "bound: " + func;\r
+};\r
+return bound;\r
+}\r
+}\r
+\r
+var injectedScript = new InjectedScript();\r
+\r
+InjectedScript.RemoteObject = function(objectId, type, description, hasChildren)\r
+{\r
+this.objectId = objectId;\r
+this.type = type;\r
+this.description = description;\r
+this.hasChildren = hasChildren;\r
+}\r
+\r
+InjectedScript.RemoteObject.fromException = function(e)\r
+{\r
+return new InjectedScript.RemoteObject(null, "error", e.toString());\r
+}\r
+\r
+InjectedScript.RemoteObject.fromObject = function(object, objectId, abbreviate)\r
+{\r
+var type = injectedScript._type(object);\r
+var rawType = typeof object;\r
+var hasChildren = (rawType === "object" && object !== null && (Object.getOwnPropertyNames(object).length || !!object.__proto__)) || rawType === "function";\r
+var description = "";\r
+try {\r
+var description = injectedScript._describe(object, abbreviate);\r
+return new InjectedScript.RemoteObject(objectId, type, description, hasChildren);\r
+} catch (e) {\r
+return InjectedScript.RemoteObject.fromException(e);\r
+}\r
+}\r
+\r
+InjectedScript.CallFrameProxy = function(id, callFrame)\r
+{\r
+this.id = id;\r
+this.type = callFrame.type;\r
+this.functionName = (this.type === "function" ? callFrame.functionName : "");\r
+this.sourceID = callFrame.sourceID;\r
+this.line = callFrame.line;\r
+this.scopeChain = this._wrapScopeChain(callFrame);\r
+this.worldId = injectedScriptId;\r
+}\r
+\r
+InjectedScript.CallFrameProxy.prototype = {\r
+_wrapScopeChain: function(callFrame)\r
+{\r
+const GLOBAL_SCOPE = 0;\r
+const LOCAL_SCOPE = 1;\r
+const WITH_SCOPE = 2;\r
+const CLOSURE_SCOPE = 3;\r
+const CATCH_SCOPE = 4;\r
+\r
+var scopeChain = callFrame.scopeChain;\r
+var scopeChainProxy = [];\r
+var foundLocalScope = false;\r
+for (var i = 0; i < scopeChain.length; i++) {\r
+var scopeType = callFrame.scopeType(i);\r
+var scopeObject = scopeChain[i];\r
+var scopeObjectProxy = injectedScript._wrapObject(scopeObject, "backtrace", true);\r
+\r
+switch(scopeType) {\r
+case LOCAL_SCOPE: {\r
+foundLocalScope = true;\r
+scopeObjectProxy.isLocal = true;\r
+scopeObjectProxy.thisObject = injectedScript._wrapObject(callFrame.thisObject, "backtrace", true);\r
+break;\r
+}\r
+case CLOSURE_SCOPE: {\r
+scopeObjectProxy.isClosure = true;\r
+break;\r
+}\r
+case WITH_SCOPE:\r
+case CATCH_SCOPE: {\r
+if (foundLocalScope && scopeObject instanceof inspectedWindow.Element)\r
+scopeObjectProxy.isElement = true;\r
+else if (foundLocalScope && scopeObject instanceof inspectedWindow.Document)\r
+scopeObjectProxy.isDocument = true;\r
+else\r
+scopeObjectProxy.isWithBlock = true;\r
+break;\r
+}\r
+}\r
+scopeChainProxy.push(scopeObjectProxy);\r
+}\r
+return scopeChainProxy;\r
+}\r
+}\r
+\r
+function CommandLineAPI()\r
+{\r
+for (var i = 0; i < 5; ++i)\r
+this.__defineGetter__("$" + i, injectedScript._bindToScript(injectedScript._inspectedNode, i));\r
+}\r
+\r
+CommandLineAPI.prototype = {\r
+\r
+\r
+$: function()\r
+{\r
+return document.getElementById.apply(document, arguments)\r
+},\r
+\r
+$$: function()\r
+{\r
+return document.querySelectorAll.apply(document, arguments)\r
+},\r
+\r
+$x: function(xpath, context)\r
+{\r
+var nodes = [];\r
+try {\r
+var doc = context || document;\r
+var results = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null);\r
+var node;\r
+while (node = results.iterateNext())\r
+nodes.push(node);\r
+} catch (e) {\r
+}\r
+return nodes;\r
+},\r
+\r
+dir: function()\r
+{\r
+return console.dir.apply(console, arguments)\r
+},\r
+\r
+dirxml: function()\r
+{\r
+return console.dirxml.apply(console, arguments)\r
+},\r
+\r
+keys: function(object)\r
+{\r
+return Object.keys(object);\r
+},\r
+\r
+values: function(object)\r
+{\r
+var result = [];\r
+for (var key in object)\r
+result.push(object[key]);\r
+return result;\r
+},\r
+\r
+profile: function()\r
+{\r
+return console.profile.apply(console, arguments)\r
+},\r
+\r
+profileEnd: function()\r
+{\r
+return console.profileEnd.apply(console, arguments)\r
+},\r
+\r
+monitorEvents: function(object, types)\r
+{\r
+if (!object || !object.addEventListener || !object.removeEventListener)\r
+return;\r
+types = injectedScript._normalizeEventTypes(types);\r
+for (var i = 0; i < types.length; ++i) {\r
+object.removeEventListener(types[i], injectedScript._logEvent, false);\r
+object.addEventListener(types[i], injectedScript._logEvent, false);\r
+}\r
+},\r
+\r
+unmonitorEvents: function(object, types)\r
+{\r
+if (!object || !object.addEventListener || !object.removeEventListener)\r
+return;\r
+types = injectedScript._normalizeEventTypes(types);\r
+for (var i = 0; i < types.length; ++i)\r
+object.removeEventListener(types[i], injectedScript._logEvent, false);\r
+},\r
+\r
+inspect: function(object)\r
+{\r
+if (arguments.length === 0)\r
+return;\r
+\r
+inspectedWindow.console.log(object);\r
+if (injectedScript._type(object) === "node")\r
+InjectedScriptHost.pushNodePathToFrontend(object, false, true);\r
+else {\r
+switch (injectedScript._describe(object)) {\r
+case "Database":\r
+InjectedScriptHost.selectDatabase(object);\r
+break;\r
+case "Storage":\r
+InjectedScriptHost.selectDOMStorage(object);\r
+break;\r
+}\r
+}\r
+},\r
+\r
+copy: function(object)\r
+{\r
+if (injectedScript._type(object) === "node")\r
+object = object.outerHTML;\r
+InjectedScriptHost.copyText(object);\r
+},\r
+\r
+clear: function()\r
+{\r
+InjectedScriptHost.clearConsoleMessages();\r
+}\r
+}\r
+\r
+injectedScript._commandLineAPI = new CommandLineAPI();\r
+return injectedScript;\r
+});\r
+\r
+\r
+\r
+\r
+\r
+function InjectedScriptAccess(worldId) {\r
+this._worldId = worldId;\r
+}\r
+\r
+InjectedScriptAccess.get = function(worldId)\r
+{\r
+if (typeof worldId === "number")\r
+return new InjectedScriptAccess(worldId);\r
+\r
+console.assert(false, "Access to injected script with no id");\r
+}\r
+\r
+InjectedScriptAccess.getForNode = function(node)\r
+{\r
+\r
+return InjectedScriptAccess.get(-node.id);\r
+}\r
+\r
+InjectedScriptAccess.getForObjectId = function(objectId)\r
+{\r
+\r
+var tokens = objectId.split(":");\r
+return InjectedScriptAccess.get(parseInt(tokens[0]));\r
+}\r
+\r
+InjectedScriptAccess.getDefault = function()\r
+{\r
+return InjectedScriptAccess.get(0);\r
+}\r
+\r
+InjectedScriptAccess.prototype = {};\r
+\r
+InjectedScriptAccess._installHandler = function(methodName, async)\r
+{\r
+InjectedScriptAccess.prototype[methodName] = function()\r
+{\r
+var allArgs = Array.prototype.slice.call(arguments);\r
+var callback = allArgs[allArgs.length - 1];\r
+var argsString = JSON.stringify(Array.prototype.slice.call(allArgs, 0, allArgs.length - 1));\r
+\r
+function myCallback(result, isException)\r
+{\r
+if (!isException)\r
+callback(result);\r
+else\r
+WebInspector.console.addMessage(WebInspector.ConsoleMessage.createTextMessage("Error dispatching: " + methodName));\r
+}\r
+InspectorBackend.dispatchOnInjectedScript(this._worldId, methodName, argsString, myCallback);\r
+};\r
+}\r
+\r
+\r
+\r
+\r
+\r
+InjectedScriptAccess._installHandler("evaluate");\r
+InjectedScriptAccess._installHandler("evaluateInCallFrame");\r
+InjectedScriptAccess._installHandler("evaluateOnSelf");\r
+InjectedScriptAccess._installHandler("getCompletions");\r
+InjectedScriptAccess._installHandler("getProperties");\r
+InjectedScriptAccess._installHandler("getPrototypes");\r
+InjectedScriptAccess._installHandler("pushNodeToFrontend");\r
+InjectedScriptAccess._installHandler("resolveNode");\r
+InjectedScriptAccess._installHandler("getNodeProperties");\r
+InjectedScriptAccess._installHandler("setPropertyValue");\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TimelineAgent = function() {\r
+\r
+}\r
+\r
+\r
+WebInspector.TimelineAgent.RecordType = {\r
+EventDispatch : 0,\r
+Layout : 1,\r
+RecalculateStyles : 2,\r
+Paint : 3,\r
+ParseHTML : 4,\r
+TimerInstall : 5,\r
+TimerRemove : 6,\r
+TimerFire : 7,\r
+XHRReadyStateChange : 8,\r
+XHRLoad : 9,\r
+EvaluateScript : 10,\r
+MarkTimeline : 11,\r
+ResourceSendRequest : 12,\r
+ResourceReceiveResponse : 13,\r
+ResourceFinish : 14,\r
+FunctionCall : 15,\r
+ResourceReceiveData: 16,\r
+GCEvent : 17,\r
+MarkDOMContentEventType : 18,\r
+MarkLoadEventType : 19,\r
+ScheduleResourceRequest : 20\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TimelinePanel = function()\r
+{\r
+WebInspector.Panel.call(this, "timeline");\r
+\r
+this.element.appendChild(this._createTopPane());\r
+this.element.tabIndex = 0;\r
+\r
+this._sidebarBackgroundElement = document.createElement("div");\r
+this._sidebarBackgroundElement.className = "sidebar timeline-sidebar-background";\r
+this.element.appendChild(this._sidebarBackgroundElement);\r
+\r
+this._containerElement = document.createElement("div");\r
+this._containerElement.id = "timeline-container";\r
+this._containerElement.addEventListener("scroll", this._onScroll.bind(this), false);\r
+this.element.appendChild(this._containerElement);\r
+\r
+this.createSidebar(this._containerElement, this._containerElement);\r
+var itemsTreeElement = new WebInspector.SidebarSectionTreeElement(WebInspector.UIString("RECORDS"), {}, true);\r
+itemsTreeElement.expanded = true;\r
+this.sidebarTree.appendChild(itemsTreeElement);\r
+\r
+this._sidebarListElement = document.createElement("div");\r
+this.sidebarElement.appendChild(this._sidebarListElement);\r
+\r
+this._containerContentElement = document.createElement("div");\r
+this._containerContentElement.id = "resources-container-content";\r
+this._containerElement.appendChild(this._containerContentElement);\r
+\r
+this._timelineGrid = new WebInspector.TimelineGrid();\r
+this._itemsGraphsElement = this._timelineGrid.itemsGraphsElement;\r
+this._itemsGraphsElement.id = "timeline-graphs";\r
+this._containerContentElement.appendChild(this._timelineGrid.element);\r
+\r
+this._topGapElement = document.createElement("div");\r
+this._topGapElement.className = "timeline-gap";\r
+this._itemsGraphsElement.appendChild(this._topGapElement);\r
+\r
+this._graphRowsElement = document.createElement("div");\r
+this._itemsGraphsElement.appendChild(this._graphRowsElement);\r
+\r
+this._bottomGapElement = document.createElement("div");\r
+this._bottomGapElement.className = "timeline-gap";\r
+this._itemsGraphsElement.appendChild(this._bottomGapElement);\r
+\r
+this._expandElements = document.createElement("div");\r
+this._expandElements.id = "orphan-expand-elements";\r
+this._itemsGraphsElement.appendChild(this._expandElements);\r
+\r
+this._rootRecord = this._createRootRecord();\r
+this._sendRequestRecords = {};\r
+this._scheduledResourceRequests = {};\r
+this._timerRecords = {};\r
+\r
+this._calculator = new WebInspector.TimelineCalculator();\r
+this._calculator._showShortEvents = false;\r
+var shortRecordThresholdTitle = Number.secondsToString(WebInspector.TimelinePanel.shortRecordThreshold, WebInspector.UIString);\r
+this._showShortRecordsTitleText = WebInspector.UIString("Show the records that are shorter than %s", shortRecordThresholdTitle);\r
+this._hideShortRecordsTitleText = WebInspector.UIString("Hide the records that are shorter than %s", shortRecordThresholdTitle);\r
+this._createStatusbarButtons();\r
+\r
+this._boundariesAreValid = true;\r
+this._scrollTop = 0;\r
+\r
+this._popoverHelper = new WebInspector.PopoverHelper(this._containerElement, this._getPopoverAnchor.bind(this), this._showPopover.bind(this), true);\r
+\r
+\r
+this.toggleFilterButton.toggled = true;\r
+this._calculator._showShortEvents = this.toggleFilterButton.toggled;\r
+this._markTimelineRecords = [];\r
+this._expandOffset = 15;\r
+\r
+InspectorBackend.registerDomainDispatcher("Timeline", this);\r
+}\r
+\r
+\r
+WebInspector.TimelinePanel.rowHeight = 18;\r
+WebInspector.TimelinePanel.shortRecordThreshold = 0.015;\r
+\r
+WebInspector.TimelinePanel.prototype = {\r
+_createTopPane: function() {\r
+var topPaneElement = document.createElement("div");\r
+topPaneElement.id = "timeline-overview-panel";\r
+\r
+this._topPaneSidebarElement = document.createElement("div");\r
+this._topPaneSidebarElement.id = "timeline-overview-sidebar";\r
+\r
+var overviewTreeElement = document.createElement("ol");\r
+overviewTreeElement.className = "sidebar-tree";\r
+this._topPaneSidebarElement.appendChild(overviewTreeElement);\r
+topPaneElement.appendChild(this._topPaneSidebarElement);\r
+\r
+var topPaneSidebarTree = new TreeOutline(overviewTreeElement);\r
+var timelinesOverviewItem = new WebInspector.SidebarTreeElement("resources-time-graph-sidebar-item", WebInspector.UIString("Timelines"));\r
+topPaneSidebarTree.appendChild(timelinesOverviewItem);\r
+timelinesOverviewItem.onselect = this._timelinesOverviewItemSelected.bind(this);\r
+timelinesOverviewItem.select(true);\r
+\r
+var memoryOverviewItem = new WebInspector.SidebarTreeElement("resources-size-graph-sidebar-item", WebInspector.UIString("Memory"));\r
+topPaneSidebarTree.appendChild(memoryOverviewItem);\r
+memoryOverviewItem.onselect = this._memoryOverviewItemSelected.bind(this);\r
+\r
+this._overviewPane = new WebInspector.TimelineOverviewPane(this.categories);\r
+this._overviewPane.addEventListener("window changed", this._windowChanged, this);\r
+this._overviewPane.addEventListener("filter changed", this._refresh, this);\r
+topPaneElement.appendChild(this._overviewPane.element);\r
+\r
+var separatorElement = document.createElement("div");\r
+separatorElement.id = "timeline-overview-separator";\r
+topPaneElement.appendChild(separatorElement);\r
+return topPaneElement;\r
+},\r
+\r
+get toolbarItemLabel()\r
+{\r
+return WebInspector.UIString("Timeline");\r
+},\r
+\r
+get statusBarItems()\r
+{\r
+return [this.toggleFilterButton.element, this.toggleTimelineButton.element, this.clearButton.element, this._overviewPane.statusBarFilters];\r
+},\r
+\r
+get categories()\r
+{\r
+if (!this._categories) {\r
+this._categories = {\r
+loading: new WebInspector.TimelineCategory("loading", WebInspector.UIString("Loading"), "rgb(47,102,236)"),\r
+scripting: new WebInspector.TimelineCategory("scripting", WebInspector.UIString("Scripting"), "rgb(157,231,119)"),\r
+rendering: new WebInspector.TimelineCategory("rendering", WebInspector.UIString("Rendering"), "rgb(164,60,255)")\r
+};\r
+}\r
+return this._categories;\r
+},\r
+\r
+get defaultFocusedElement()\r
+{\r
+return this.element;\r
+},\r
+\r
+get _recordStyles()\r
+{\r
+if (!this._recordStylesArray) {\r
+var recordTypes = WebInspector.TimelineAgent.RecordType;\r
+var recordStyles = {};\r
+recordStyles[recordTypes.EventDispatch] = { title: WebInspector.UIString("Event"), category: this.categories.scripting };\r
+recordStyles[recordTypes.Layout] = { title: WebInspector.UIString("Layout"), category: this.categories.rendering };\r
+recordStyles[recordTypes.RecalculateStyles] = { title: WebInspector.UIString("Recalculate Style"), category: this.categories.rendering };\r
+recordStyles[recordTypes.Paint] = { title: WebInspector.UIString("Paint"), category: this.categories.rendering };\r
+recordStyles[recordTypes.ParseHTML] = { title: WebInspector.UIString("Parse"), category: this.categories.loading };\r
+recordStyles[recordTypes.TimerInstall] = { title: WebInspector.UIString("Install Timer"), category: this.categories.scripting };\r
+recordStyles[recordTypes.TimerRemove] = { title: WebInspector.UIString("Remove Timer"), category: this.categories.scripting };\r
+recordStyles[recordTypes.TimerFire] = { title: WebInspector.UIString("Timer Fired"), category: this.categories.scripting };\r
+recordStyles[recordTypes.XHRReadyStateChange] = { title: WebInspector.UIString("XHR Ready State Change"), category: this.categories.scripting };\r
+recordStyles[recordTypes.XHRLoad] = { title: WebInspector.UIString("XHR Load"), category: this.categories.scripting };\r
+recordStyles[recordTypes.EvaluateScript] = { title: WebInspector.UIString("Evaluate Script"), category: this.categories.scripting };\r
+recordStyles[recordTypes.MarkTimeline] = { title: WebInspector.UIString("Mark"), category: this.categories.scripting };\r
+recordStyles[recordTypes.ResourceSendRequest] = { title: WebInspector.UIString("Send Request"), category: this.categories.loading };\r
+recordStyles[recordTypes.ResourceReceiveResponse] = { title: WebInspector.UIString("Receive Response"), category: this.categories.loading };\r
+recordStyles[recordTypes.ResourceFinish] = { title: WebInspector.UIString("Finish Loading"), category: this.categories.loading };\r
+recordStyles[recordTypes.FunctionCall] = { title: WebInspector.UIString("Function Call"), category: this.categories.scripting };\r
+recordStyles[recordTypes.ResourceReceiveData] = { title: WebInspector.UIString("Receive Data"), category: this.categories.loading };\r
+recordStyles[recordTypes.GCEvent] = { title: WebInspector.UIString("GC Event"), category: this.categories.scripting };\r
+recordStyles[recordTypes.MarkDOMContentEventType] = { title: WebInspector.UIString("DOMContent event"), category: this.categories.scripting };\r
+recordStyles[recordTypes.MarkLoadEventType] = { title: WebInspector.UIString("Load event"), category: this.categories.scripting };\r
+recordStyles[recordTypes.ScheduleResourceRequest] = { title: WebInspector.UIString("Schedule Request"), category: this.categories.loading };\r
+this._recordStylesArray = recordStyles;\r
+}\r
+return this._recordStylesArray;\r
+},\r
+\r
+_createStatusbarButtons: function()\r
+{\r
+this.toggleTimelineButton = new WebInspector.StatusBarButton(WebInspector.UIString("Record"), "record-profile-status-bar-item");\r
+this.toggleTimelineButton.addEventListener("click", this._toggleTimelineButtonClicked.bind(this), false);\r
+\r
+this.clearButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear"), "clear-status-bar-item");\r
+this.clearButton.addEventListener("click", this._clearPanel.bind(this), false);\r
+\r
+this.toggleFilterButton = new WebInspector.StatusBarButton(this._hideShortRecordsTitleText, "timeline-filter-status-bar-item");\r
+this.toggleFilterButton.addEventListener("click", this._toggleFilterButtonClicked.bind(this), false);\r
+\r
+this.recordsCounter = document.createElement("span");\r
+this.recordsCounter.className = "timeline-records-counter";\r
+},\r
+\r
+_updateRecordsCounter: function()\r
+{\r
+this.recordsCounter.textContent = WebInspector.UIString("%d of %d captured records are visible", this._rootRecord._visibleRecordsCount, this._rootRecord._allRecordsCount);\r
+},\r
+\r
+_updateEventDividers: function()\r
+{\r
+this._timelineGrid.removeEventDividers();\r
+var clientWidth = this._graphRowsElement.offsetWidth - this._expandOffset;\r
+var dividers = [];\r
+for (var i = 0; i < this._markTimelineRecords.length; ++i) {\r
+var record = this._markTimelineRecords[i];\r
+var positions = this._calculator.computeBarGraphWindowPosition(record, clientWidth);\r
+var dividerPosition = Math.round(positions.left);\r
+if (dividerPosition < 0 || dividerPosition >= clientWidth || dividers[dividerPosition])\r
+continue;\r
+var divider = this._createEventDivider(record);\r
+divider.style.left = (dividerPosition + this._expandOffset) + "px";\r
+dividers[dividerPosition] = divider;\r
+}\r
+this._timelineGrid.addEventDividers(dividers);\r
+this._overviewPane.updateEventDividers(this._markTimelineRecords, this._createEventDivider.bind(this));\r
+},\r
+\r
+_createEventDivider: function(record)\r
+{\r
+var eventDivider = document.createElement("div");\r
+eventDivider.className = "resources-event-divider";\r
+var recordTypes = WebInspector.TimelineAgent.RecordType;\r
+\r
+var eventDividerPadding = document.createElement("div");\r
+eventDividerPadding.className = "resources-event-divider-padding";\r
+eventDividerPadding.title = record.title;\r
+\r
+if (record.type === recordTypes.MarkDOMContentEventType)\r
+eventDivider.className += " resources-blue-divider";\r
+else if (record.type === recordTypes.MarkLoadEventType)\r
+eventDivider.className += " resources-red-divider";\r
+else if (record.type === recordTypes.MarkTimeline) {\r
+eventDivider.className += " resources-orange-divider";\r
+eventDividerPadding.title = record.data.message;\r
+}\r
+eventDividerPadding.appendChild(eventDivider);\r
+return eventDividerPadding;\r
+},\r
+\r
+_timelinesOverviewItemSelected: function(event) {\r
+this._overviewPane.showTimelines();\r
+},\r
+\r
+_memoryOverviewItemSelected: function(event) {\r
+this._overviewPane.showMemoryGraph(this._rootRecord.children);\r
+},\r
+\r
+_toggleTimelineButtonClicked: function()\r
+{\r
+if (this.toggleTimelineButton.toggled)\r
+InspectorBackend.stopTimelineProfiler();\r
+else {\r
+this._clearPanel();\r
+InspectorBackend.startTimelineProfiler();\r
+}\r
+},\r
+\r
+_toggleFilterButtonClicked: function()\r
+{\r
+this.toggleFilterButton.toggled = !this.toggleFilterButton.toggled;\r
+this._calculator._showShortEvents = this.toggleFilterButton.toggled;\r
+this.toggleFilterButton.element.title = this._calculator._showShortEvents ? this._hideShortRecordsTitleText : this._showShortRecordsTitleText;\r
+this._scheduleRefresh(true);\r
+},\r
+\r
+timelineProfilerWasStarted: function()\r
+{\r
+this.toggleTimelineButton.toggled = true;\r
+},\r
+\r
+timelineProfilerWasStopped: function()\r
+{\r
+this.toggleTimelineButton.toggled = false;\r
+},\r
+\r
+addRecordToTimeline: function(record)\r
+{\r
+if (record.type == WebInspector.TimelineAgent.RecordType.ResourceSendRequest && record.data.isMainResource) {\r
+if (this._mainResourceIdentifier != record.data.identifier) {\r
+\r
+\r
+\r
+this._mainResourceIdentifier = record.data.identifier;\r
+this._clearPanel();\r
+}\r
+}\r
+this._innerAddRecordToTimeline(record, this._rootRecord);\r
+this._scheduleRefresh();\r
+},\r
+\r
+_findParentRecord: function(record)\r
+{\r
+var recordTypes = WebInspector.TimelineAgent.RecordType;\r
+var parentRecord;\r
+if (record.type === recordTypes.ResourceReceiveResponse ||\r
+record.type === recordTypes.ResourceFinish ||\r
+record.type === recordTypes.ResourceReceiveData)\r
+parentRecord = this._sendRequestRecords[record.data.identifier];\r
+else if (record.type === recordTypes.TimerFire)\r
+parentRecord = this._timerRecords[record.data.timerId];\r
+else if (record.type === recordTypes.ResourceSendRequest)\r
+parentRecord = this._scheduledResourceRequests[record.data.url];\r
+return parentRecord;\r
+},\r
+\r
+_innerAddRecordToTimeline: function(record, parentRecord)\r
+{\r
+var connectedToOldRecord = false;\r
+var recordTypes = WebInspector.TimelineAgent.RecordType;\r
+if (record.type === recordTypes.MarkDOMContentEventType || record.type === recordTypes.MarkLoadEventType)\r
+parentRecord = null; \r
+else if (parentRecord === this._rootRecord) {\r
+var newParentRecord = this._findParentRecord(record);\r
+if (newParentRecord) {\r
+parentRecord = newParentRecord;\r
+connectedToOldRecord = true;\r
+}\r
+}\r
+\r
+if (record.type == recordTypes.TimerFire && record.children && record.children.length) {\r
+var childRecord = record.children[0];\r
+if (childRecord.type === recordTypes.FunctionCall) {\r
+record.data.scriptName = childRecord.data.scriptName;\r
+record.data.scriptLine = childRecord.data.scriptLine;\r
+record.children.shift();\r
+record.children = childRecord.children.concat(record.children);\r
+}\r
+}\r
+\r
+var formattedRecord = new WebInspector.TimelinePanel.FormattedRecord(record, parentRecord, this);\r
+\r
+if (record.type === recordTypes.MarkDOMContentEventType || record.type === recordTypes.MarkLoadEventType) {\r
+this._markTimelineRecords.push(formattedRecord);\r
+return;\r
+}\r
+\r
+++this._rootRecord._allRecordsCount;\r
+formattedRecord.collapsed = (parentRecord === this._rootRecord);\r
+\r
+var childrenCount = record.children ? record.children.length : 0;\r
+for (var i = 0; i < childrenCount; ++i)\r
+this._innerAddRecordToTimeline(record.children[i], formattedRecord);\r
+\r
+formattedRecord._calculateAggregatedStats(this.categories);\r
+\r
+if (connectedToOldRecord) {\r
+var record = formattedRecord;\r
+do {\r
+var parent = record.parent;\r
+parent._cpuTime += formattedRecord._cpuTime;\r
+if (parent._lastChildEndTime < record._lastChildEndTime)\r
+parent._lastChildEndTime = record._lastChildEndTime;\r
+for (var category in formattedRecord._aggregatedStats)\r
+parent._aggregatedStats[category] += formattedRecord._aggregatedStats[category];\r
+record = parent;\r
+} while (record.parent);\r
+} else\r
+if (parentRecord !== this._rootRecord)\r
+parentRecord._selfTime -= formattedRecord.endTime - formattedRecord.startTime;\r
+\r
+\r
+if (record.type === recordTypes.MarkTimeline)\r
+this._markTimelineRecords.push(formattedRecord);\r
+},\r
+\r
+setSidebarWidth: function(width)\r
+{\r
+WebInspector.Panel.prototype.setSidebarWidth.call(this, width);\r
+this._sidebarBackgroundElement.style.width = width + "px";\r
+this._topPaneSidebarElement.style.width = width + "px";\r
+},\r
+\r
+updateMainViewWidth: function(width)\r
+{\r
+this._containerContentElement.style.left = width + "px";\r
+this._scheduleRefresh();\r
+this._overviewPane.updateMainViewWidth(width);\r
+},\r
+\r
+resize: function()\r
+{\r
+this._closeRecordDetails();\r
+this._scheduleRefresh();\r
+},\r
+\r
+_createRootRecord: function()\r
+{\r
+var rootRecord = {};\r
+rootRecord.children = [];\r
+rootRecord._visibleRecordsCount = 0;\r
+rootRecord._allRecordsCount = 0;\r
+rootRecord._aggregatedStats = {};\r
+return rootRecord;\r
+},\r
+\r
+_clearPanel: function()\r
+{\r
+this._markTimelineRecords = [];\r
+this._sendRequestRecords = {};\r
+this._scheduledResourceRequests = {};\r
+this._timerRecords = {};\r
+this._rootRecord = this._createRootRecord();\r
+this._boundariesAreValid = false;\r
+this._overviewPane.reset();\r
+this._adjustScrollPosition(0);\r
+this._refresh();\r
+this._closeRecordDetails();\r
+},\r
+\r
+show: function()\r
+{\r
+WebInspector.Panel.prototype.show.call(this);\r
+if (typeof this._scrollTop === "number")\r
+this._containerElement.scrollTop = this._scrollTop;\r
+this._refresh();\r
+WebInspector.drawer.currentPanelCounters = this.recordsCounter;\r
+},\r
+\r
+hide: function()\r
+{\r
+WebInspector.Panel.prototype.hide.call(this);\r
+this._closeRecordDetails();\r
+WebInspector.drawer.currentPanelCounters = null;\r
+},\r
+\r
+_onScroll: function(event)\r
+{\r
+this._closeRecordDetails();\r
+var scrollTop = this._containerElement.scrollTop;\r
+var dividersTop = Math.max(0, scrollTop);\r
+this._timelineGrid.setScrollAndDividerTop(scrollTop, dividersTop);\r
+this._scheduleRefresh(true);\r
+},\r
+\r
+_windowChanged: function()\r
+{\r
+this._closeRecordDetails();\r
+this._scheduleRefresh();\r
+},\r
+\r
+_scheduleRefresh: function(preserveBoundaries)\r
+{\r
+this._closeRecordDetails();\r
+this._boundariesAreValid &= preserveBoundaries;\r
+\r
+if (!this.visible)\r
+return;\r
+\r
+if (preserveBoundaries)\r
+this._refresh();\r
+else\r
+if (!this._refreshTimeout)\r
+this._refreshTimeout = setTimeout(this._refresh.bind(this), 100);\r
+},\r
+\r
+_refresh: function()\r
+{\r
+if (this._refreshTimeout) {\r
+clearTimeout(this._refreshTimeout);\r
+delete this._refreshTimeout;\r
+}\r
+\r
+this._overviewPane.update(this._rootRecord.children, this._calculator._showShortEvents);\r
+this._refreshRecords(!this._boundariesAreValid);\r
+this._updateRecordsCounter();\r
+if(!this._boundariesAreValid)\r
+this._updateEventDividers();\r
+this._boundariesAreValid = true;\r
+},\r
+\r
+_updateBoundaries: function()\r
+{\r
+this._calculator.reset();\r
+this._calculator.windowLeft = this._overviewPane.windowLeft;\r
+this._calculator.windowRight = this._overviewPane.windowRight;\r
+\r
+for (var i = 0; i < this._rootRecord.children.length; ++i)\r
+this._calculator.updateBoundaries(this._rootRecord.children[i]);\r
+\r
+this._calculator.calculateWindow();\r
+},\r
+\r
+_addToRecordsWindow: function(record, recordsWindow, parentIsCollapsed)\r
+{\r
+if (!this._calculator._showShortEvents && !record.isLong())\r
+return;\r
+var percentages = this._calculator.computeBarGraphPercentages(record);\r
+if (percentages.start < 100 && percentages.endWithChildren >= 0 && !record.category.hidden) {\r
+++this._rootRecord._visibleRecordsCount;\r
+++record.parent._invisibleChildrenCount;\r
+if (!parentIsCollapsed)\r
+recordsWindow.push(record);\r
+}\r
+\r
+var index = recordsWindow.length;\r
+record._invisibleChildrenCount = 0;\r
+for (var i = 0; i < record.children.length; ++i)\r
+this._addToRecordsWindow(record.children[i], recordsWindow, parentIsCollapsed || record.collapsed);\r
+record._visibleChildrenCount = recordsWindow.length - index;\r
+},\r
+\r
+_filterRecords: function()\r
+{\r
+var recordsInWindow = [];\r
+this._rootRecord._visibleRecordsCount = 0;\r
+for (var i = 0; i < this._rootRecord.children.length; ++i)\r
+this._addToRecordsWindow(this._rootRecord.children[i], recordsInWindow);\r
+return recordsInWindow;\r
+},\r
+\r
+_refreshRecords: function(updateBoundaries)\r
+{\r
+if (updateBoundaries)\r
+this._updateBoundaries();\r
+\r
+var recordsInWindow = this._filterRecords();\r
+\r
+\r
+this._scrollTop = this._containerElement.scrollTop;\r
+var visibleTop = this._scrollTop;\r
+var visibleBottom = visibleTop + this._containerElement.clientHeight;\r
+\r
+const rowHeight = WebInspector.TimelinePanel.rowHeight;\r
+\r
+\r
+var startIndex = Math.max(0, Math.min(Math.floor(visibleTop / rowHeight) - 1, recordsInWindow.length - 1));\r
+var endIndex = Math.min(recordsInWindow.length, Math.ceil(visibleBottom / rowHeight));\r
+\r
+\r
+const top = (startIndex * rowHeight) + "px";\r
+this._topGapElement.style.height = top;\r
+this.sidebarElement.style.top = top;\r
+this.sidebarResizeElement.style.top = top;\r
+this._bottomGapElement.style.height = (recordsInWindow.length - endIndex) * rowHeight + "px";\r
+\r
+\r
+var listRowElement = this._sidebarListElement.firstChild;\r
+var width = this._graphRowsElement.offsetWidth;\r
+this._itemsGraphsElement.removeChild(this._graphRowsElement);\r
+var graphRowElement = this._graphRowsElement.firstChild;\r
+var scheduleRefreshCallback = this._scheduleRefresh.bind(this, true);\r
+this._itemsGraphsElement.removeChild(this._expandElements);\r
+this._expandElements.removeChildren();\r
+\r
+for (var i = 0; i < endIndex; ++i) {\r
+var record = recordsInWindow[i];\r
+var isEven = !(i % 2);\r
+\r
+if (i < startIndex) {\r
+var lastChildIndex = i + record._visibleChildrenCount;\r
+if (lastChildIndex >= startIndex && lastChildIndex < endIndex) {\r
+var expandElement = new WebInspector.TimelineExpandableElement(this._expandElements);\r
+expandElement._update(record, i, this._calculator.computeBarGraphWindowPosition(record, width - this._expandOffset));\r
+}\r
+} else {\r
+if (!listRowElement) {\r
+listRowElement = new WebInspector.TimelineRecordListRow().element;\r
+this._sidebarListElement.appendChild(listRowElement);\r
+}\r
+if (!graphRowElement) {\r
+graphRowElement = new WebInspector.TimelineRecordGraphRow(this._itemsGraphsElement, scheduleRefreshCallback, rowHeight).element;\r
+this._graphRowsElement.appendChild(graphRowElement);\r
+}\r
+\r
+listRowElement.row.update(record, isEven, this._calculator, visibleTop);\r
+graphRowElement.row.update(record, isEven, this._calculator, width, this._expandOffset, i);\r
+\r
+listRowElement = listRowElement.nextSibling;\r
+graphRowElement = graphRowElement.nextSibling;\r
+}\r
+}\r
+\r
+\r
+while (listRowElement) {\r
+var nextElement = listRowElement.nextSibling;\r
+listRowElement.row.dispose();\r
+listRowElement = nextElement;\r
+}\r
+while (graphRowElement) {\r
+var nextElement = graphRowElement.nextSibling;\r
+graphRowElement.row.dispose();\r
+graphRowElement = nextElement;\r
+}\r
+\r
+this._itemsGraphsElement.insertBefore(this._graphRowsElement, this._bottomGapElement);\r
+this._itemsGraphsElement.appendChild(this._expandElements);\r
+this.sidebarResizeElement.style.height = this.sidebarElement.clientHeight + "px";\r
+\r
+var timelinePaddingLeft = this._calculator.windowLeft === 0 ? this._expandOffset : 0;\r
+if (updateBoundaries)\r
+this._timelineGrid.updateDividers(true, this._calculator, timelinePaddingLeft);\r
+this._adjustScrollPosition((recordsInWindow.length + 1) * rowHeight);\r
+},\r
+\r
+_adjustScrollPosition: function(totalHeight)\r
+{\r
+\r
+if ((this._containerElement.scrollTop + this._containerElement.offsetHeight) > totalHeight + 1)\r
+this._containerElement.scrollTop = (totalHeight - this._containerElement.offsetHeight);\r
+},\r
+\r
+_getPopoverAnchor: function(element)\r
+{\r
+return element.enclosingNodeOrSelfWithClass("timeline-graph-bar") || element.enclosingNodeOrSelfWithClass("timeline-tree-item");\r
+},\r
+\r
+_showPopover: function(anchor)\r
+{\r
+var record = anchor.row._record;\r
+var popover = new WebInspector.Popover(record._generatePopupContent(this._calculator, this.categories));\r
+popover.show(anchor);\r
+return popover;\r
+},\r
+\r
+_closeRecordDetails: function()\r
+{\r
+this._popoverHelper.hidePopup();\r
+}\r
+}\r
+\r
+WebInspector.TimelinePanel.prototype.__proto__ = WebInspector.Panel.prototype;\r
+\r
+WebInspector.TimelineCategory = function(name, title, color)\r
+{\r
+this.name = name;\r
+this.title = title;\r
+this.color = color;\r
+}\r
+\r
+WebInspector.TimelineCalculator = function()\r
+{\r
+this.reset();\r
+this.windowLeft = 0.0;\r
+this.windowRight = 1.0;\r
+}\r
+\r
+WebInspector.TimelineCalculator.prototype = {\r
+computeBarGraphPercentages: function(record)\r
+{\r
+var start = (record.startTime - this.minimumBoundary) / this.boundarySpan * 100;\r
+var end = (record.startTime + record._selfTime - this.minimumBoundary) / this.boundarySpan * 100;\r
+var endWithChildren = (record._lastChildEndTime - this.minimumBoundary) / this.boundarySpan * 100;\r
+var cpuWidth = record._cpuTime / this.boundarySpan * 100;\r
+return {start: start, end: end, endWithChildren: endWithChildren, cpuWidth: cpuWidth};\r
+},\r
+\r
+computeBarGraphWindowPosition: function(record, clientWidth)\r
+{\r
+const minWidth = 5;\r
+const borderWidth = 4;\r
+var workingArea = clientWidth - minWidth - borderWidth;\r
+var percentages = this.computeBarGraphPercentages(record);\r
+var left = percentages.start / 100 * workingArea;\r
+var width = (percentages.end - percentages.start) / 100 * workingArea + minWidth;\r
+var widthWithChildren =  (percentages.endWithChildren - percentages.start) / 100 * workingArea;\r
+var cpuWidth = percentages.cpuWidth / 100 * workingArea + minWidth;\r
+if (percentages.endWithChildren > percentages.end)\r
+widthWithChildren += borderWidth + minWidth;\r
+return {left: left, width: width, widthWithChildren: widthWithChildren, cpuWidth: cpuWidth};\r
+},\r
+\r
+calculateWindow: function()\r
+{\r
+this.minimumBoundary = this._absoluteMinimumBoundary + this.windowLeft * (this._absoluteMaximumBoundary - this._absoluteMinimumBoundary);\r
+this.maximumBoundary = this._absoluteMinimumBoundary + this.windowRight * (this._absoluteMaximumBoundary - this._absoluteMinimumBoundary);\r
+this.boundarySpan = this.maximumBoundary - this.minimumBoundary;\r
+},\r
+\r
+reset: function()\r
+{\r
+this._absoluteMinimumBoundary = -1;\r
+this._absoluteMaximumBoundary = -1;\r
+},\r
+\r
+updateBoundaries: function(record)\r
+{\r
+var lowerBound = record.startTime;\r
+if (this._absoluteMinimumBoundary === -1 || lowerBound < this._absoluteMinimumBoundary)\r
+this._absoluteMinimumBoundary = lowerBound;\r
+\r
+const minimumTimeFrame = 0.1;\r
+const minimumDeltaForZeroSizeEvents = 0.01;\r
+var upperBound = Math.max(record._lastChildEndTime + minimumDeltaForZeroSizeEvents, lowerBound + minimumTimeFrame);\r
+if (this._absoluteMaximumBoundary === -1 || upperBound > this._absoluteMaximumBoundary)\r
+this._absoluteMaximumBoundary = upperBound;\r
+},\r
+\r
+formatValue: function(value)\r
+{\r
+return Number.secondsToString(value + this.minimumBoundary - this._absoluteMinimumBoundary, WebInspector.UIString);\r
+}\r
+}\r
+\r
+\r
+WebInspector.TimelineRecordListRow = function()\r
+{\r
+this.element = document.createElement("div");\r
+this.element.row = this;\r
+this.element.style.cursor = "pointer";\r
+var iconElement = document.createElement("span");\r
+iconElement.className = "timeline-tree-icon";\r
+this.element.appendChild(iconElement);\r
+\r
+this._typeElement = document.createElement("span");\r
+this._typeElement.className = "type";\r
+this.element.appendChild(this._typeElement);\r
+\r
+var separatorElement = document.createElement("span");\r
+separatorElement.className = "separator";\r
+separatorElement.textContent = " ";\r
+\r
+this._dataElement = document.createElement("span");\r
+this._dataElement.className = "data dimmed";\r
+\r
+this.element.appendChild(separatorElement);\r
+this.element.appendChild(this._dataElement);\r
+}\r
+\r
+WebInspector.TimelineRecordListRow.prototype = {\r
+update: function(record, isEven, calculator, offset)\r
+{\r
+this._record = record;\r
+this._calculator = calculator;\r
+this._offset = offset;\r
+\r
+this.element.className = "timeline-tree-item timeline-category-" + record.category.name + (isEven ? " even" : "");\r
+this._typeElement.textContent = record.title;\r
+\r
+if (this._dataElement.firstChild)\r
+this._dataElement.removeChildren();\r
+if (record.details) {\r
+var detailsContainer = document.createElement("span");\r
+if (typeof record.details === "object") {\r
+detailsContainer.appendChild(document.createTextNode("("));\r
+detailsContainer.appendChild(record.details);\r
+detailsContainer.appendChild(document.createTextNode(")"));\r
+} else\r
+detailsContainer.textContent = "(" + record.details + ")";\r
+this._dataElement.appendChild(detailsContainer);\r
+}\r
+},\r
+\r
+dispose: function()\r
+{\r
+this.element.parentElement.removeChild(this.element);\r
+}\r
+}\r
+\r
+WebInspector.TimelineRecordGraphRow = function(graphContainer, scheduleRefresh)\r
+{\r
+this.element = document.createElement("div");\r
+this.element.row = this;\r
+\r
+this._barAreaElement = document.createElement("div");\r
+this._barAreaElement.className = "timeline-graph-bar-area";\r
+this.element.appendChild(this._barAreaElement);\r
+\r
+this._barWithChildrenElement = document.createElement("div");\r
+this._barWithChildrenElement.className = "timeline-graph-bar with-children";\r
+this._barWithChildrenElement.row = this;\r
+this._barAreaElement.appendChild(this._barWithChildrenElement);\r
+\r
+this._barCpuElement = document.createElement("div");\r
+this._barCpuElement.className = "timeline-graph-bar cpu"\r
+this._barCpuElement.row = this;\r
+this._barAreaElement.appendChild(this._barCpuElement);\r
+\r
+this._barElement = document.createElement("div");\r
+this._barElement.className = "timeline-graph-bar";\r
+this._barElement.row = this;\r
+this._barAreaElement.appendChild(this._barElement);\r
+\r
+this._expandElement = new WebInspector.TimelineExpandableElement(graphContainer);\r
+this._expandElement._element.addEventListener("click", this._onClick.bind(this));\r
+\r
+this._scheduleRefresh = scheduleRefresh;\r
+}\r
+\r
+WebInspector.TimelineRecordGraphRow.prototype = {\r
+update: function(record, isEven, calculator, clientWidth, expandOffset, index)\r
+{\r
+this._record = record;\r
+this.element.className = "timeline-graph-side timeline-category-" + record.category.name + (isEven ? " even" : "");\r
+var barPosition = calculator.computeBarGraphWindowPosition(record, clientWidth - expandOffset);\r
+this._barWithChildrenElement.style.left = barPosition.left + expandOffset + "px";\r
+this._barWithChildrenElement.style.width = barPosition.widthWithChildren + "px";\r
+this._barElement.style.left = barPosition.left + expandOffset + "px";\r
+this._barElement.style.width =  barPosition.width + "px";\r
+this._barCpuElement.style.left = barPosition.left + expandOffset + "px";\r
+this._barCpuElement.style.width = barPosition.cpuWidth + "px";\r
+this._expandElement._update(record, index, barPosition);\r
+},\r
+\r
+_onClick: function(event)\r
+{\r
+this._record.collapsed = !this._record.collapsed;\r
+this._scheduleRefresh();\r
+},\r
+\r
+dispose: function()\r
+{\r
+this.element.parentElement.removeChild(this.element);\r
+this._expandElement._dispose();\r
+}\r
+}\r
+\r
+WebInspector.TimelinePanel.FormattedRecord = function(record, parentRecord, panel)\r
+{\r
+var recordTypes = WebInspector.TimelineAgent.RecordType;\r
+var style = panel._recordStyles[record.type];\r
+\r
+this.parent = parentRecord;\r
+if (parentRecord)\r
+parentRecord.children.push(this);\r
+this.category = style.category;\r
+this.title = style.title;\r
+this.startTime = record.startTime / 1000;\r
+this.data = record.data;\r
+this.type = record.type;\r
+this.endTime = (typeof record.endTime !== "undefined") ? record.endTime / 1000 : this.startTime;\r
+this._selfTime = this.endTime - this.startTime;\r
+this._lastChildEndTime = this.endTime;\r
+this.originalRecordForTests = record;\r
+if (record.stackTrace && record.stackTrace.length)\r
+this.stackTrace = record.stackTrace;\r
+this.totalHeapSize = record.totalHeapSize;\r
+this.usedHeapSize = record.usedHeapSize;\r
+\r
+\r
+if (record.type === recordTypes.ResourceSendRequest) {\r
+panel._sendRequestRecords[record.data.identifier] = this;\r
+} else if (record.type === recordTypes.ScheduleResourceRequest) {\r
+panel._scheduledResourceRequests[record.data.url] = this;\r
+} else if (record.type === recordTypes.ResourceReceiveResponse) {\r
+var sendRequestRecord = panel._sendRequestRecords[record.data.identifier];\r
+if (sendRequestRecord) { \r
+record.data.url = sendRequestRecord.data.url;\r
+\r
+sendRequestRecord.details = this._getRecordDetails(sendRequestRecord, panel._sendRequestRecords);\r
+if (sendRequestRecord.parent !== panel._rootRecord && sendRequestRecord.parent.type === recordTypes.ScheduleResourceRequest)\r
+sendRequestRecord.parent.details = this._getRecordDetails(sendRequestRecord, panel._sendRequestRecords);\r
+}\r
+} else if (record.type === recordTypes.ResourceReceiveData) {\r
+var sendRequestRecord = panel._sendRequestRecords[record.data.identifier];\r
+if (sendRequestRecord) \r
+record.data.url = sendRequestRecord.data.url;\r
+} else if (record.type === recordTypes.ResourceFinish) {\r
+var sendRequestRecord = panel._sendRequestRecords[record.data.identifier];\r
+if (sendRequestRecord) \r
+record.data.url = sendRequestRecord.data.url;\r
+} else if (record.type === recordTypes.TimerInstall) {\r
+this.timeout = record.data.timeout;\r
+this.singleShot = record.data.singleShot;\r
+panel._timerRecords[record.data.timerId] = this;\r
+} else if (record.type === recordTypes.TimerFire) {\r
+var timerInstalledRecord = panel._timerRecords[record.data.timerId];\r
+if (timerInstalledRecord) {\r
+this.callSiteStackTrace = timerInstalledRecord.stackTrace;\r
+this.timeout = timerInstalledRecord.timeout;\r
+this.singleShot = timerInstalledRecord.singleShot;\r
+}\r
+}\r
+this.details = this._getRecordDetails(record, panel._sendRequestRecords);\r
+}\r
+\r
+WebInspector.TimelinePanel.FormattedRecord.prototype = {\r
+isLong: function()\r
+{\r
+return (this._lastChildEndTime - this.startTime) > WebInspector.TimelinePanel.shortRecordThreshold;\r
+},\r
+\r
+get children()\r
+{\r
+if (!this._children)\r
+this._children = [];\r
+return this._children;\r
+},\r
+\r
+_generateAggregatedInfo: function()\r
+{\r
+var cell = document.createElement("span");\r
+cell.className = "timeline-aggregated-info";\r
+for (var index in this._aggregatedStats) {\r
+var label = document.createElement("div");\r
+label.className = "timeline-aggregated-category timeline-" + index;\r
+cell.appendChild(label);\r
+var text = document.createElement("span");\r
+text.textContent = Number.secondsToString(this._aggregatedStats[index] + 0.0001, WebInspector.UIString);\r
+cell.appendChild(text);\r
+}\r
+return cell;\r
+},\r
+\r
+_generatePopupContent: function(calculator, categories)\r
+{\r
+var contentHelper = new WebInspector.TimelinePanel.PopupContentHelper(this.title);\r
+\r
+if (this._children && this._children.length) {\r
+contentHelper._appendTextRow(WebInspector.UIString("Self Time"), Number.secondsToString(this._selfTime + 0.0001, WebInspector.UIString));\r
+contentHelper._appendElementRow(WebInspector.UIString("Aggregated Time"), this._generateAggregatedInfo());\r
+}\r
+var text = WebInspector.UIString("%s (at %s)", Number.secondsToString(this._lastChildEndTime - this.startTime, WebInspector.UIString),\r
+calculator.formatValue(this.startTime - calculator.minimumBoundary));\r
+contentHelper._appendTextRow(WebInspector.UIString("Duration"), text);\r
+\r
+const recordTypes = WebInspector.TimelineAgent.RecordType;\r
+\r
+switch (this.type) {\r
+case recordTypes.GCEvent:\r
+contentHelper._appendTextRow(WebInspector.UIString("Collected"), Number.bytesToString(this.data.usedHeapSizeDelta, WebInspector.UIString));\r
+break;\r
+case recordTypes.TimerInstall:\r
+case recordTypes.TimerFire:\r
+case recordTypes.TimerRemove:\r
+contentHelper._appendTextRow(WebInspector.UIString("Timer ID"), this.data.timerId);\r
+if (typeof this.timeout === "number") {\r
+contentHelper._appendTextRow(WebInspector.UIString("Timeout"), Number.secondsToString(this.timeout / 1000, WebInspector.UIString));\r
+contentHelper._appendTextRow(WebInspector.UIString("Repeats"), !this.singleShot);\r
+}\r
+break;\r
+case recordTypes.FunctionCall:\r
+contentHelper._appendLinkRow(WebInspector.UIString("Location"), this.data.scriptName, this.data.scriptLine);\r
+break;\r
+case recordTypes.ScheduleResourceRequest:\r
+case recordTypes.ResourceSendRequest:\r
+case recordTypes.ResourceReceiveResponse:\r
+case recordTypes.ResourceReceiveData:\r
+case recordTypes.ResourceFinish:\r
+contentHelper._appendLinkRow(WebInspector.UIString("Resource"), this.data.url);\r
+if (this.data.requestMethod)\r
+contentHelper._appendTextRow(WebInspector.UIString("Request Method"), this.data.requestMethod);\r
+if (typeof this.data.statusCode === "number")\r
+contentHelper._appendTextRow(WebInspector.UIString("Status Code"), this.data.statusCode);\r
+if (this.data.mimeType)\r
+contentHelper._appendTextRow(WebInspector.UIString("MIME Type"), this.data.mimeType);\r
+if (typeof this.data.expectedContentLength === "number" && this.data.expectedContentLength !== -1)\r
+contentHelper._appendTextRow(WebInspector.UIString("Expected Content Length"), this.data.expectedContentLength);\r
+break;\r
+case recordTypes.EvaluateScript:\r
+if (this.data && this.data.url)\r
+contentHelper._appendLinkRow(WebInspector.UIString("Script"), this.data.url, this.data.lineNumber);\r
+break;\r
+case recordTypes.Paint:\r
+contentHelper._appendTextRow(WebInspector.UIString("Location"), WebInspector.UIString("(%d, %d)", this.data.x, this.data.y));\r
+contentHelper._appendTextRow(WebInspector.UIString("Dimensions"), WebInspector.UIString("%d × %d", this.data.width, this.data.height));\r
+case recordTypes.RecalculateStyles: \r
+break;\r
+default:\r
+if (this.details)\r
+contentHelper._appendTextRow(WebInspector.UIString("Details"), this.details);\r
+break;\r
+}\r
+\r
+if (this.data.scriptName && this.type !== recordTypes.FunctionCall)\r
+contentHelper._appendLinkRow(WebInspector.UIString("Function Call"), this.data.scriptName, this.data.scriptLine);\r
+\r
+if (this.usedHeapSize)\r
+contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"), WebInspector.UIString("%s of %s", Number.bytesToString(this.usedHeapSize, WebInspector.UIString), Number.bytesToString(this.totalHeapSize, WebInspector.UIString)));\r
+\r
+if (this.callSiteStackTrace && this.callSiteStackTrace.length)\r
+contentHelper._appendStackTrace(WebInspector.UIString("Call Site stack"), this.callSiteStackTrace);\r
+\r
+if (this.stackTrace)\r
+contentHelper._appendStackTrace(WebInspector.UIString("Call Stack"), this.stackTrace);\r
+\r
+return contentHelper._contentTable;\r
+},\r
+\r
+_getRecordDetails: function(record, sendRequestRecords)\r
+{\r
+switch (record.type) {\r
+case WebInspector.TimelineAgent.RecordType.GCEvent:\r
+return WebInspector.UIString("%s collected", Number.bytesToString(record.data.usedHeapSizeDelta, WebInspector.UIString));\r
+case WebInspector.TimelineAgent.RecordType.TimerFire:\r
+return record.data.scriptName ? WebInspector.linkifyResourceAsNode(record.data.scriptName, "scripts", record.data.scriptLine, "", "") : record.data.timerId;\r
+case WebInspector.TimelineAgent.RecordType.FunctionCall:\r
+return record.data.scriptName ? WebInspector.linkifyResourceAsNode(record.data.scriptName, "scripts", record.data.scriptLine, "", "") : null;\r
+case WebInspector.TimelineAgent.RecordType.EventDispatch:\r
+return record.data ? record.data.type : null;\r
+case WebInspector.TimelineAgent.RecordType.Paint:\r
+return record.data.width + "\u2009\u00d7\u2009" + record.data.height;\r
+case WebInspector.TimelineAgent.RecordType.TimerInstall:\r
+case WebInspector.TimelineAgent.RecordType.TimerRemove:\r
+return this.stackTrace ? WebInspector.linkifyResourceAsNode(this.stackTrace[0].scriptName, "scripts", this.stackTrace[0].lineNumber, "", "") : record.data.timerId;\r
+case WebInspector.TimelineAgent.RecordType.ParseHTML:\r
+case WebInspector.TimelineAgent.RecordType.RecalculateStyles:\r
+return this.stackTrace ? WebInspector.linkifyResourceAsNode(this.stackTrace[0].scriptName, "scripts", this.stackTrace[0].lineNumber, "", "") : null;\r
+case WebInspector.TimelineAgent.RecordType.EvaluateScript:\r
+return record.data.url ? WebInspector.linkifyResourceAsNode(record.data.url, "scripts", record.data.lineNumber, "", "") : null;\r
+case WebInspector.TimelineAgent.RecordType.XHRReadyStateChange:\r
+case WebInspector.TimelineAgent.RecordType.XHRLoad:\r
+case WebInspector.TimelineAgent.RecordType.ScheduleResourceRequest:\r
+case WebInspector.TimelineAgent.RecordType.ResourceSendRequest:\r
+case WebInspector.TimelineAgent.RecordType.ResourceReceiveData:\r
+case WebInspector.TimelineAgent.RecordType.ResourceReceiveResponse:\r
+case WebInspector.TimelineAgent.RecordType.ResourceFinish:\r
+return WebInspector.displayNameForURL(record.data.url);\r
+case WebInspector.TimelineAgent.RecordType.MarkTimeline:\r
+return record.data.message;\r
+default:\r
+return null;\r
+}\r
+},\r
+\r
+_calculateAggregatedStats: function(categories)\r
+{\r
+this._aggregatedStats = {};\r
+for (var category in categories)\r
+this._aggregatedStats[category] = 0;\r
+this._cpuTime = this._selfTime;\r
+\r
+if (this._children) {\r
+for (var index = this._children.length; index; --index) {\r
+var child = this._children[index - 1];\r
+this._aggregatedStats[child.category.name] += child._selfTime;\r
+for (var category in categories)\r
+this._aggregatedStats[category] += child._aggregatedStats[category];\r
+}\r
+for (var category in this._aggregatedStats)\r
+this._cpuTime += this._aggregatedStats[category];\r
+}\r
+}\r
+}\r
+\r
+WebInspector.TimelinePanel.PopupContentHelper = function(title)\r
+{\r
+this._contentTable = document.createElement("table");;\r
+var titleCell = this._createCell(WebInspector.UIString("%s - Details", title), "timeline-details-title");\r
+titleCell.colSpan = 2;\r
+var titleRow = document.createElement("tr");\r
+titleRow.appendChild(titleCell);\r
+this._contentTable.appendChild(titleRow);\r
+}\r
+\r
+WebInspector.TimelinePanel.PopupContentHelper.prototype = {\r
+_createCell: function(content, styleName)\r
+{\r
+var text = document.createElement("label");\r
+text.appendChild(document.createTextNode(content));\r
+var cell = document.createElement("td");\r
+cell.className = "timeline-details";\r
+if (styleName)\r
+cell.className += " " + styleName;\r
+cell.textContent = content;\r
+return cell;\r
+},\r
+\r
+_appendTextRow: function(title, content)\r
+{\r
+var row = document.createElement("tr");\r
+row.appendChild(this._createCell(title, "timeline-details-row-title"));\r
+row.appendChild(this._createCell(content, "timeline-details-row-data"));\r
+this._contentTable.appendChild(row);\r
+},\r
+\r
+_appendElementRow: function(title, content, titleStyle)\r
+{\r
+var row = document.createElement("tr");\r
+var titleCell = this._createCell(title, "timeline-details-row-title");\r
+if (titleStyle)\r
+titleCell.addStyleClass(titleStyle);\r
+row.appendChild(titleCell);\r
+var cell = document.createElement("td");\r
+cell.className = "timeline-details";\r
+cell.appendChild(content);\r
+row.appendChild(cell);\r
+this._contentTable.appendChild(row);\r
+},\r
+\r
+_appendLinkRow: function(title, scriptName, scriptLine)\r
+{\r
+var link = WebInspector.linkifyResourceAsNode(scriptName, "scripts", scriptLine, "timeline-details");\r
+this._appendElementRow(title, link);\r
+},\r
+\r
+_appendStackTrace: function(title, stackTrace)\r
+{\r
+this._appendTextRow("", "");\r
+var framesTable = document.createElement("table");\r
+for (var i = 0; i < stackTrace.length; ++i) {\r
+var stackFrame = stackTrace[i];\r
+var row = document.createElement("tr");\r
+row.className = "timeline-details";\r
+row.appendChild(this._createCell(stackFrame.functionName ? stackFrame.functionName : WebInspector.UIString("(anonymous function)"), "timeline-function-name"));\r
+row.appendChild(this._createCell(" @ "));\r
+var linkCell = document.createElement("td");\r
+linkCell.appendChild(WebInspector.linkifyResourceAsNode(stackFrame.scriptName, "scripts", stackFrame.lineNumber, "timeline-details"));\r
+row.appendChild(linkCell);\r
+framesTable.appendChild(row);\r
+}\r
+this._appendElementRow(title, framesTable, "timeline-stacktrace-title");\r
+}\r
+}\r
+\r
+WebInspector.TimelineExpandableElement = function(container)\r
+{\r
+this._element = document.createElement("div");\r
+this._element.className = "timeline-expandable";\r
+\r
+var leftBorder = document.createElement("div");\r
+leftBorder.className = "timeline-expandable-left";\r
+this._element.appendChild(leftBorder);\r
+\r
+container.appendChild(this._element);\r
+}\r
+\r
+WebInspector.TimelineExpandableElement.prototype = {\r
+_update: function(record, index, barPosition)\r
+{\r
+const rowHeight = WebInspector.TimelinePanel.rowHeight;\r
+if (record._visibleChildrenCount || record._invisibleChildrenCount) {\r
+this._element.style.top = index * rowHeight + "px";\r
+this._element.style.left = barPosition.left + "px";\r
+this._element.style.width = Math.max(12, barPosition.width + 25) + "px";\r
+if (!record.collapsed) {\r
+this._element.style.height = (record._visibleChildrenCount + 1) * rowHeight + "px";\r
+this._element.addStyleClass("timeline-expandable-expanded");\r
+this._element.removeStyleClass("timeline-expandable-collapsed");\r
+} else {\r
+this._element.style.height = rowHeight + "px";\r
+this._element.addStyleClass("timeline-expandable-collapsed");\r
+this._element.removeStyleClass("timeline-expandable-expanded");\r
+}\r
+this._element.removeStyleClass("hidden");\r
+} else\r
+this._element.addStyleClass("hidden");\r
+},\r
+\r
+_dispose: function()\r
+{\r
+this._element.parentElement.removeChild(this._element);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TimelineOverviewPane = function(categories)\r
+{\r
+this._categories = categories;\r
+\r
+this.statusBarFilters = document.createElement("div");\r
+this.statusBarFilters.className = "status-bar-items";\r
+for (var categoryName in this._categories) {\r
+var category = this._categories[categoryName];\r
+this.statusBarFilters.appendChild(this._createTimelineCategoryStatusBarCheckbox(category, this._onCheckboxClicked.bind(this, category)));\r
+}\r
+\r
+this._overviewGrid = new WebInspector.TimelineGrid();\r
+this._overviewGrid.element.id = "timeline-overview-grid";\r
+this._overviewGrid.itemsGraphsElement.id = "timeline-overview-timelines";\r
+this._overviewGrid.element.addEventListener("mousedown", this._dragWindow.bind(this), true);\r
+\r
+this._heapGraph = new WebInspector.HeapGraph();\r
+this._heapGraph.element.id = "timeline-overview-memory";\r
+this._overviewGrid.element.insertBefore(this._heapGraph.element, this._overviewGrid.itemsGraphsElement);\r
+\r
+this.element = this._overviewGrid.element;\r
+\r
+this._categoryGraphs = {};\r
+var i = 0;\r
+for (var category in this._categories) {\r
+var categoryGraph = new WebInspector.TimelineCategoryGraph(this._categories[category], i++ % 2);\r
+this._categoryGraphs[category] = categoryGraph;\r
+this._overviewGrid.itemsGraphsElement.appendChild(categoryGraph.graphElement);\r
+}\r
+this._overviewGrid.setScrollAndDividerTop(0, 0);\r
+\r
+this._overviewWindowElement = document.createElement("div");\r
+this._overviewWindowElement.id = "timeline-overview-window";\r
+this._overviewGrid.element.appendChild(this._overviewWindowElement);\r
+\r
+this._overviewWindowBordersElement = document.createElement("div");\r
+this._overviewWindowBordersElement.className = "timeline-overview-window-rulers";\r
+this._overviewGrid.element.appendChild(this._overviewWindowBordersElement);\r
+\r
+var overviewDividersBackground = document.createElement("div");\r
+overviewDividersBackground.className = "timeline-overview-dividers-background";\r
+this._overviewGrid.element.appendChild(overviewDividersBackground);\r
+\r
+this._leftResizeElement = document.createElement("div");\r
+this._leftResizeElement.className = "timeline-window-resizer";\r
+this._leftResizeElement.style.left = 0;\r
+this._overviewGrid.element.appendChild(this._leftResizeElement);\r
+\r
+this._rightResizeElement = document.createElement("div");\r
+this._rightResizeElement.className = "timeline-window-resizer timeline-window-resizer-right";\r
+this._rightResizeElement.style.right = 0;\r
+this._overviewGrid.element.appendChild(this._rightResizeElement);\r
+\r
+this._overviewCalculator = new WebInspector.TimelineOverviewCalculator();\r
+\r
+this.windowLeft = 0.0;\r
+this.windowRight = 1.0;\r
+}\r
+\r
+WebInspector.TimelineOverviewPane.minSelectableSize = 12;\r
+\r
+WebInspector.TimelineOverviewPane.prototype = {\r
+showTimelines: function(event) {\r
+this._heapGraph.hide();\r
+this._overviewGrid.itemsGraphsElement.removeStyleClass("hidden");\r
+},\r
+\r
+showMemoryGraph: function(records) {\r
+this._heapGraph.show();\r
+this._heapGraph.update(records);\r
+this._overviewGrid.itemsGraphsElement.addStyleClass("hidden");\r
+},\r
+\r
+_onCheckboxClicked: function (category, event) {\r
+if (event.target.checked)\r
+category.hidden = false;\r
+else\r
+category.hidden = true;\r
+this._categoryGraphs[category.name].dimmed = !event.target.checked;\r
+this.dispatchEventToListeners("filter changed");\r
+},\r
+\r
+_forAllRecords: function(recordsArray, callback)\r
+{\r
+if (!recordsArray)\r
+return;\r
+for (var i = 0; i < recordsArray.length; ++i) {\r
+callback(recordsArray[i]);\r
+this._forAllRecords(recordsArray[i].children, callback);\r
+}\r
+},\r
+\r
+update: function(records, showShortEvents)\r
+{\r
+this._showShortEvents = showShortEvents;\r
+\r
+var timelines = {};\r
+for (var category in this._categories) {\r
+timelines[category] = [];\r
+this._categoryGraphs[category].clearChunks();\r
+}\r
+\r
+\r
+this._overviewCalculator.reset();\r
+this._forAllRecords(records, this._overviewCalculator.updateBoundaries.bind(this._overviewCalculator));\r
+\r
+function markTimeline(record)\r
+{\r
+if (!(this._showShortEvents || record.isLong()))\r
+return;\r
+var percentages = this._overviewCalculator.computeBarGraphPercentages(record);\r
+\r
+var end = Math.round(percentages.end);\r
+var categoryName = record.category.name;\r
+for (var j = Math.round(percentages.start); j <= end; ++j)\r
+timelines[categoryName][j] = true;\r
+}\r
+this._forAllRecords(records, markTimeline.bind(this));\r
+\r
+\r
+for (var category in this._categories) {\r
+var timeline = timelines[category];\r
+window.timelineSaved = timeline;\r
+var chunkStart = -1;\r
+for (var j = 0; j < 101; ++j) {\r
+if (timeline[j]) {\r
+if (chunkStart === -1)\r
+chunkStart = j;\r
+} else {\r
+if (chunkStart !== -1) {\r
+this._categoryGraphs[category].addChunk(chunkStart, j);\r
+chunkStart = -1;\r
+}\r
+}\r
+}\r
+if (chunkStart !== -1) {\r
+this._categoryGraphs[category].addChunk(chunkStart, 100);\r
+chunkStart = -1;\r
+}\r
+}\r
+\r
+this._heapGraph.setSize(this._overviewGrid.element.offsetWidth, 60);\r
+if (this._heapGraph.visible)\r
+this._heapGraph.update(records);\r
+\r
+this._overviewGrid.updateDividers(true, this._overviewCalculator);\r
+},\r
+\r
+updateEventDividers: function(records, dividerConstructor)\r
+{\r
+this._overviewGrid.removeEventDividers();\r
+var dividers = [];\r
+for (var i = 0; i < records.length; ++i) {\r
+var record = records[i];\r
+var positions = this._overviewCalculator.computeBarGraphPercentages(record);\r
+var dividerPosition = Math.round(positions.start * 10);\r
+if (dividers[dividerPosition])\r
+continue;\r
+var divider = dividerConstructor(record);\r
+divider.style.left = positions.start + "%";\r
+dividers[dividerPosition] = divider;\r
+}\r
+this._overviewGrid.addEventDividers(dividers);\r
+},\r
+\r
+updateMainViewWidth: function(width, records)\r
+{\r
+this._overviewGrid.element.style.left = width + "px";\r
+this.statusBarFilters.style.left = Math.max(155, width) + "px";\r
+},\r
+\r
+reset: function()\r
+{\r
+this.windowLeft = 0.0;\r
+this.windowRight = 1.0;\r
+this._overviewWindowElement.style.left = "0%";\r
+this._overviewWindowElement.style.width = "100%";\r
+this._overviewWindowBordersElement.style.left = "0%";\r
+this._overviewWindowBordersElement.style.right = "0%";\r
+this._leftResizeElement.style.left = "0%";\r
+this._rightResizeElement.style.left = "100%";\r
+this._overviewCalculator.reset();\r
+this._overviewGrid.updateDividers(true, this._overviewCalculator);\r
+},\r
+\r
+_resizeWindow: function(resizeElement, event)\r
+{\r
+WebInspector.elementDragStart(resizeElement, this._windowResizeDragging.bind(this, resizeElement), this._endWindowDragging.bind(this), event, "col-resize");\r
+},\r
+\r
+_windowResizeDragging: function(resizeElement, event)\r
+{\r
+if (resizeElement === this._leftResizeElement)\r
+this._resizeWindowLeft(event.pageX - this._overviewGrid.element.offsetLeft);\r
+else\r
+this._resizeWindowRight(event.pageX - this._overviewGrid.element.offsetLeft);\r
+event.preventDefault();\r
+},\r
+\r
+_dragWindow: function(event)\r
+{\r
+var node = event.target;\r
+while (node) {\r
+if (node === this._overviewGrid._dividersLabelBarElement) {\r
+WebInspector.elementDragStart(this._overviewWindowElement, this._windowDragging.bind(this, event.pageX,\r
+this._leftResizeElement.offsetLeft, this._rightResizeElement.offsetLeft), this._endWindowDragging.bind(this), event, "ew-resize");\r
+break;\r
+} else if (node === this._overviewGrid.element) {\r
+var position = event.pageX - this._overviewGrid.element.offsetLeft;\r
+this._overviewWindowSelector = new WebInspector.TimelinePanel.WindowSelector(this._overviewGrid.element, position, event);\r
+WebInspector.elementDragStart(null, this._windowSelectorDragging.bind(this), this._endWindowSelectorDragging.bind(this), event, "col-resize");\r
+break;\r
+} else if (node === this._leftResizeElement || node === this._rightResizeElement) {\r
+this._resizeWindow(node, event);\r
+break;\r
+}\r
+node = node.parentNode;\r
+}\r
+},\r
+\r
+_windowSelectorDragging: function(event)\r
+{\r
+this._overviewWindowSelector._updatePosition(event.pageX - this._overviewGrid.element.offsetLeft);\r
+event.preventDefault();\r
+},\r
+\r
+_endWindowSelectorDragging: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+var window = this._overviewWindowSelector._close(event.pageX - this._overviewGrid.element.offsetLeft);\r
+delete this._overviewWindowSelector;\r
+if (window.end - window.start < WebInspector.TimelineOverviewPane.minSelectableSize)\r
+if (this._overviewGrid.itemsGraphsElement.offsetWidth - window.end > WebInspector.TimelineOverviewPane.minSelectableSize)\r
+window.end = window.start + WebInspector.TimelineOverviewPane.minSelectableSize;\r
+else\r
+window.start = window.end - WebInspector.TimelineOverviewPane.minSelectableSize;\r
+this._setWindowPosition(window.start, window.end);\r
+},\r
+\r
+_windowDragging: function(startX, windowLeft, windowRight, event)\r
+{\r
+var delta = event.pageX - startX;\r
+var start = windowLeft + delta;\r
+var end = windowRight + delta;\r
+var windowSize = windowRight - windowLeft;\r
+\r
+if (start < 0) {\r
+start = 0;\r
+end = windowSize;\r
+}\r
+\r
+if (end > this._overviewGrid.element.clientWidth) {\r
+end = this._overviewGrid.element.clientWidth;\r
+start = end - windowSize;\r
+}\r
+this._setWindowPosition(start, end);\r
+\r
+event.preventDefault();\r
+},\r
+\r
+_resizeWindowLeft: function(start)\r
+{\r
+\r
+if (start < 10)\r
+start = 0;\r
+else if (start > this._rightResizeElement.offsetLeft -  4)\r
+start = this._rightResizeElement.offsetLeft - 4;\r
+this._setWindowPosition(start, null);\r
+},\r
+\r
+_resizeWindowRight: function(end)\r
+{\r
+\r
+if (end > this._overviewGrid.element.clientWidth - 10)\r
+end = this._overviewGrid.element.clientWidth;\r
+else if (end < this._leftResizeElement.offsetLeft + WebInspector.TimelineOverviewPane.minSelectableSize)\r
+end = this._leftResizeElement.offsetLeft + WebInspector.TimelineOverviewPane.minSelectableSize;\r
+this._setWindowPosition(null, end);\r
+},\r
+\r
+_setWindowPosition: function(start, end)\r
+{\r
+const rulerAdjustment = 1 / this._overviewGrid.element.clientWidth;\r
+if (typeof start === "number") {\r
+this.windowLeft = start / this._overviewGrid.element.clientWidth;\r
+this._leftResizeElement.style.left = this.windowLeft * 100 + "%";\r
+this._overviewWindowElement.style.left = this.windowLeft * 100 + "%";\r
+this._overviewWindowBordersElement.style.left = (this.windowLeft - rulerAdjustment) * 100 + "%";\r
+}\r
+if (typeof end === "number") {\r
+this.windowRight = end / this._overviewGrid.element.clientWidth;\r
+this._rightResizeElement.style.left = this.windowRight * 100 + "%";\r
+}\r
+this._overviewWindowElement.style.width = (this.windowRight - this.windowLeft) * 100 + "%";\r
+this._overviewWindowBordersElement.style.right = (1 - this.windowRight + 2 * rulerAdjustment) * 100 + "%";\r
+this.dispatchEventToListeners("window changed");\r
+},\r
+\r
+_endWindowDragging: function(event)\r
+{\r
+WebInspector.elementDragEnd(event);\r
+},\r
+\r
+_createTimelineCategoryStatusBarCheckbox: function(category, onCheckboxClicked)\r
+{\r
+var labelContainer = document.createElement("div");\r
+labelContainer.addStyleClass("timeline-category-statusbar-item");\r
+labelContainer.addStyleClass("timeline-category-" + category.name);\r
+labelContainer.addStyleClass("status-bar-item");\r
+\r
+var label = document.createElement("label");\r
+var checkElement = document.createElement("input");\r
+checkElement.type = "checkbox";\r
+checkElement.className = "timeline-category-checkbox";\r
+checkElement.checked = true;\r
+checkElement.addEventListener("click", onCheckboxClicked);\r
+label.appendChild(checkElement);\r
+\r
+var typeElement = document.createElement("span");\r
+typeElement.className = "type";\r
+typeElement.textContent = category.title;\r
+label.appendChild(typeElement);\r
+\r
+labelContainer.appendChild(label);\r
+return labelContainer;\r
+}\r
+\r
+}\r
+\r
+WebInspector.TimelineOverviewPane.prototype.__proto__ = WebInspector.Object.prototype;\r
+\r
+\r
+WebInspector.TimelineOverviewCalculator = function()\r
+{\r
+}\r
+\r
+WebInspector.TimelineOverviewCalculator.prototype = {\r
+computeBarGraphPercentages: function(record)\r
+{\r
+var start = (record.startTime - this.minimumBoundary) / this.boundarySpan * 100;\r
+var end = (record.endTime - this.minimumBoundary) / this.boundarySpan * 100;\r
+return {start: start, end: end};\r
+},\r
+\r
+reset: function()\r
+{\r
+delete this.minimumBoundary;\r
+delete this.maximumBoundary;\r
+},\r
+\r
+updateBoundaries: function(record)\r
+{\r
+if (typeof this.minimumBoundary === "undefined" || record.startTime < this.minimumBoundary) {\r
+this.minimumBoundary = record.startTime;\r
+return true;\r
+}\r
+if (typeof this.maximumBoundary === "undefined" || record.endTime > this.maximumBoundary) {\r
+this.maximumBoundary = record.endTime;\r
+return true;\r
+}\r
+return false;\r
+},\r
+\r
+get boundarySpan()\r
+{\r
+return this.maximumBoundary - this.minimumBoundary;\r
+},\r
+\r
+formatValue: function(value)\r
+{\r
+return Number.secondsToString(value, WebInspector.UIString);\r
+}\r
+}\r
+\r
+\r
+WebInspector.TimelineCategoryGraph = function(category, isEven)\r
+{\r
+this._category = category;\r
+\r
+this._graphElement = document.createElement("div");\r
+this._graphElement.className = "timeline-graph-side timeline-overview-graph-side" + (isEven ? " even" : "");\r
+\r
+this._barAreaElement = document.createElement("div");\r
+this._barAreaElement.className = "timeline-graph-bar-area timeline-category-" + category.name;\r
+this._graphElement.appendChild(this._barAreaElement);\r
+}\r
+\r
+WebInspector.TimelineCategoryGraph.prototype = {\r
+get graphElement()\r
+{\r
+return this._graphElement;\r
+},\r
+\r
+addChunk: function(start, end)\r
+{\r
+var chunk = document.createElement("div");\r
+chunk.className = "timeline-graph-bar";\r
+this._barAreaElement.appendChild(chunk);\r
+chunk.style.setProperty("left", start + "%");\r
+chunk.style.setProperty("width", (end - start) + "%");\r
+},\r
+\r
+clearChunks: function()\r
+{\r
+this._barAreaElement.removeChildren();\r
+},\r
+\r
+set dimmed(dimmed)\r
+{\r
+if (dimmed)\r
+this._barAreaElement.removeStyleClass("timeline-category-" + this._category.name);\r
+else\r
+this._barAreaElement.addStyleClass("timeline-category-" + this._category.name);\r
+}\r
+}\r
+\r
+WebInspector.TimelinePanel.WindowSelector = function(parent, position, event)\r
+{\r
+this._startPosition = position;\r
+this._width = parent.offsetWidth;\r
+this._windowSelector = document.createElement("div");\r
+this._windowSelector.className = "timeline-window-selector";\r
+this._windowSelector.style.left = this._startPosition + "px";\r
+this._windowSelector.style.right = this._width - this._startPosition +  + "px";\r
+parent.appendChild(this._windowSelector);\r
+}\r
+\r
+WebInspector.TimelinePanel.WindowSelector.prototype = {\r
+_createSelectorElement: function(parent, left, width, height)\r
+{\r
+var selectorElement = document.createElement("div");\r
+selectorElement.className = "timeline-window-selector";\r
+selectorElement.style.left = left + "px";\r
+selectorElement.style.width = width + "px";\r
+selectorElement.style.top = "0px";\r
+selectorElement.style.height = height + "px";\r
+parent.appendChild(selectorElement);\r
+return selectorElement;\r
+},\r
+\r
+_close: function(position)\r
+{\r
+position = Math.max(0, Math.min(position, this._width));\r
+this._windowSelector.parentNode.removeChild(this._windowSelector);\r
+return this._startPosition < position ? {start: this._startPosition, end: position} : {start: position, end: this._startPosition};\r
+},\r
+\r
+_updatePosition: function(position)\r
+{\r
+position = Math.max(0, Math.min(position, this._width));\r
+if (position < this._startPosition) {\r
+this._windowSelector.style.left = position + "px";\r
+this._windowSelector.style.right = this._width - this._startPosition + "px";\r
+} else {\r
+this._windowSelector.style.left = this._startPosition + "px";\r
+this._windowSelector.style.right = this._width - position + "px";\r
+}\r
+}\r
+}\r
+\r
+WebInspector.HeapGraph = function() {\r
+this._canvas = document.createElement("canvas");\r
+\r
+this._maxHeapSizeLabel = document.createElement("div");\r
+this._maxHeapSizeLabel.addStyleClass("memory-graph-label");\r
+\r
+this._element = document.createElement("div");\r
+this._element.addStyleClass("hidden");\r
+this._element.appendChild(this._canvas);\r
+this._element.appendChild(this._maxHeapSizeLabel);\r
+}\r
+\r
+WebInspector.HeapGraph.prototype = {\r
+get element() {\r
+\r
+return this._element;\r
+},\r
+\r
+get visible() {\r
+return !this.element.hasStyleClass("hidden");\r
+},\r
+\r
+show: function() {\r
+this.element.removeStyleClass("hidden");\r
+},\r
+\r
+hide: function() {\r
+this.element.addStyleClass("hidden");\r
+},\r
+\r
+setSize: function(w, h) {\r
+this._canvas.width = w;\r
+this._canvas.height = h - 5;\r
+},\r
+\r
+update: function(records)\r
+{\r
+if (!records.length)\r
+return;\r
+\r
+var maxTotalHeapSize = 0;\r
+var minTime;\r
+var maxTime;\r
+this._forAllRecords(records, function(r) {\r
+if (r.totalHeapSize && r.totalHeapSize > maxTotalHeapSize)\r
+maxTotalHeapSize = r.totalHeapSize;\r
+\r
+if (typeof minTime === "undefined" || r.startTime < minTime)\r
+minTime = r.startTime;\r
+if (typeof maxTime === "undefined" || r.endTime > maxTime)\r
+maxTime = r.endTime;\r
+});\r
+\r
+var width = this._canvas.width;\r
+var height = this._canvas.height;\r
+var xFactor = width / (maxTime - minTime);\r
+var yFactor = height / maxTotalHeapSize;\r
+\r
+var histogram = new Array(width);\r
+this._forAllRecords(records, function(r) {\r
+if (!r.usedHeapSize)\r
+return;\r
+var x = Math.round((r.endTime - minTime) * xFactor);\r
+var y = Math.round(r.usedHeapSize * yFactor);\r
+histogram[x] = Math.max(histogram[x] || 0, y);\r
+});\r
+\r
+var ctx = this._canvas.getContext("2d");\r
+this._clear(ctx);\r
+\r
+\r
+height = height + 1;\r
+\r
+ctx.beginPath();\r
+var initialY = 0;\r
+for (var k = 0; k < histogram.length; k++) {\r
+if (histogram[k]) {\r
+initialY = histogram[k];\r
+break;\r
+}\r
+}\r
+ctx.moveTo(0, height - initialY);\r
+\r
+for (var x = 0; x < histogram.length; x++) {\r
+if (!histogram[x])\r
+continue;\r
+ctx.lineTo(x, height - histogram[x]);\r
+}\r
+\r
+ctx.lineWidth = 0.5;\r
+ctx.strokeStyle = "rgba(20,0,0,0.8)";\r
+ctx.stroke();\r
+\r
+ctx.fillStyle = "rgba(214,225,254, 0.8);";\r
+ctx.lineTo(width, 60);\r
+ctx.lineTo(0, 60);\r
+ctx.lineTo(0, height - initialY);\r
+ctx.fill();\r
+ctx.closePath();\r
+\r
+this._maxHeapSizeLabel.textContent = Number.bytesToString(maxTotalHeapSize);\r
+},\r
+\r
+_clear: function(ctx) {\r
+ctx.fillStyle = "rgba(255,255,255,0.8)";\r
+ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\r
+},\r
+\r
+_forAllRecords: WebInspector.TimelineOverviewPane.prototype._forAllRecords\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.TestController = function(callId)\r
+{\r
+this._callId = callId;\r
+this._waitUntilDone = false;\r
+this.results = [];\r
+}\r
+\r
+WebInspector.TestController.prototype = {\r
+waitUntilDone: function()\r
+{\r
+this._waitUntilDone = true;\r
+},\r
+\r
+notifyDone: function(result)\r
+{\r
+if (typeof result === "undefined" && this.results.length)\r
+result = this.results;\r
+var message = typeof result === "undefined" ? "\"<undefined>\"" : JSON.stringify(result);\r
+InspectorBackend.didEvaluateForTestInFrontend(this._callId, message);\r
+},\r
+\r
+runAfterPendingDispatches: function(callback)\r
+{\r
+if (WebInspector.pendingDispatches === 0) {\r
+callback();\r
+return;\r
+}\r
+setTimeout(this.runAfterPendingDispatches.bind(this), 0, callback);\r
+}\r
+}\r
+\r
+WebInspector.evaluateForTestInFrontend = function(callId, script)\r
+{\r
+var controller = new WebInspector.TestController(callId);\r
+function invokeMethod()\r
+{\r
+try {\r
+var result;\r
+if (window[script] && typeof window[script] === "function")\r
+result = window[script].call(WebInspector, controller);\r
+else\r
+result = window.eval(script);\r
+\r
+if (!controller._waitUntilDone)\r
+controller.notifyDone(result);\r
+} catch (e) {\r
+controller.notifyDone(e.toString());\r
+}\r
+}\r
+controller.runAfterPendingDispatches(invokeMethod);\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.HelpScreen = function(title)\r
+{\r
+this._element = document.createElement("div");\r
+this._element.className = "help-window-outer";\r
+this._element.addEventListener("keydown", this._onKeyDown.bind(this), false);\r
+\r
+var mainWindow = this._element.createChild("div", "help-window-main");\r
+var captionWindow = mainWindow.createChild("div", "help-window-caption");\r
+var closeButton = captionWindow.createChild("button", "help-close-button");\r
+this.contentElement = mainWindow.createChild("div", "help-content");\r
+this.contentElement.tabIndex = 0;\r
+this.contentElement.addEventListener("blur", this._onBlur.bind(this), false);\r
+captionWindow.createChild("h1", "help-window-title").innerText = title;\r
+\r
+closeButton.innerText = "\u2716"; \r
+closeButton.addEventListener("click", this._hide.bind(this), false);\r
+this._closeKeys = [\r
+WebInspector.KeyboardShortcut.Keys.Enter.code,\r
+WebInspector.KeyboardShortcut.Keys.Esc.code,\r
+WebInspector.KeyboardShortcut.Keys.Space.code,\r
+];\r
+document.body.appendChild(this._element);\r
+}\r
+\r
+WebInspector.HelpScreen.prototype = {\r
+show: function()\r
+{\r
+if (this._isShown)\r
+return;\r
+\r
+this._element.style.visibility = "visible";\r
+this._isShown = true;\r
+this._previousFocusElement = WebInspector.currentFocusElement;\r
+WebInspector.currentFocusElement = this.contentElement;\r
+},\r
+\r
+_hide: function()\r
+{\r
+this._isShown = false;\r
+this._element.style.visibility = "hidden";\r
+WebInspector.currentFocusElement = this._previousFocusElement;\r
+},\r
+\r
+_onKeyDown: function(event)\r
+{\r
+if (this._isShown && this._closeKeys.indexOf(event.keyCode) >= 0) {\r
+this._hide();\r
+event.stopPropagation();\r
+}\r
+},\r
+\r
+_onBlur: function()\r
+{\r
+\r
+if (this._isShown)\r
+WebInspector.currentFocusElement = this.contentElement;\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.GoToLineDialog = function(view)\r
+{\r
+this._element = document.createElement("div");\r
+this._element.className = "go-to-line-dialog";\r
+this._element.addEventListener("keydown", this._onKeyDown.bind(this), false);\r
+this._closeKeys = [\r
+WebInspector.KeyboardShortcut.Keys.Enter.code,\r
+WebInspector.KeyboardShortcut.Keys.Esc.code,\r
+];\r
+\r
+var dialogWindow = this._element;\r
+\r
+dialogWindow.createChild("label").innerText = WebInspector.UIString("Go to line: ");\r
+\r
+this._input = dialogWindow.createChild("input");\r
+this._input.setAttribute("type", "text");\r
+this._input.setAttribute("size", 6);\r
+var linesCount = view.sourceFrame.textModel.linesCount;\r
+if (linesCount)\r
+this._input.setAttribute("title", WebInspector.UIString("1 - %d", linesCount));\r
+var blurHandler = this._onBlur.bind(this);\r
+this._input.addEventListener("blur", blurHandler, false);\r
+\r
+\r
+var go = dialogWindow.createChild("button");\r
+go.innerText = WebInspector.UIString("Go");\r
+go.addEventListener("click", this._onClick.bind(this), false);\r
+go.addEventListener("mousedown", function(e) {\r
+\r
+\r
+this._input.removeEventListener("blur", blurHandler, false);\r
+}.bind(this), false);\r
+\r
+this._view = view;\r
+view.element.appendChild(this._element);\r
+\r
+this._previousFocusElement = WebInspector.currentFocusElement;\r
+WebInspector.currentFocusElement = this._input;\r
+this._input.select();\r
+}\r
+\r
+WebInspector.GoToLineDialog.show = function(sourceView)\r
+{\r
+if (this._instance)\r
+return;\r
+this._instance = new WebInspector.GoToLineDialog(sourceView);\r
+}\r
+\r
+WebInspector.GoToLineDialog.prototype = {\r
+_hide: function()\r
+{\r
+if (this._isHiding)\r
+return;\r
+this._isHiding = true;\r
+\r
+WebInspector.currentFocusElement = this._previousFocusElement;\r
+WebInspector.GoToLineDialog._instance = null;\r
+this._element.parentElement.removeChild(this._element);\r
+},\r
+\r
+_onBlur: function(event)\r
+{\r
+this._hide();\r
+},\r
+\r
+_onKeyDown: function(event)\r
+{\r
+if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Tab.code) {\r
+event.preventDefault();\r
+return;\r
+}\r
+\r
+if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Enter.code)\r
+this._highlightSelectedLine();\r
+\r
+if (this._closeKeys.indexOf(event.keyCode) >= 0) {\r
+this._hide();\r
+event.stopPropagation();\r
+}\r
+},\r
+\r
+_onClick: function(event)\r
+{\r
+this._highlightSelectedLine();\r
+this._hide();\r
+},\r
+\r
+_highlightSelectedLine: function()\r
+{\r
+var value = this._input.value;\r
+var lineNumber = parseInt(value, 10);\r
+if (!isNaN(lineNumber) && lineNumber > 0) {\r
+lineNumber = Math.min(lineNumber, this._view.sourceFrame.textModel.linesCount);\r
+this._view.highlightLine(lineNumber);\r
+}\r
+}\r
+};\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.ShortcutsHelp = function()\r
+{\r
+this._sections = {};\r
+}\r
+\r
+WebInspector.ShortcutsHelp.prototype = {\r
+section: function(name)\r
+{\r
+var section = this._sections[name];\r
+if (!section)\r
+this._sections[name] = section = new WebInspector.ShortcutsSection(name);\r
+return section;\r
+},\r
+\r
+show: function()\r
+{\r
+if (!this._helpScreen) {\r
+this._helpScreen = new WebInspector.HelpScreen(WebInspector.UIString("Keyboard Shortcuts"));\r
+this._buildTable(this._helpScreen.contentElement, 2);\r
+}\r
+this._helpScreen.show();\r
+},\r
+\r
+_buildTable: function(parent, nColumns)\r
+{\r
+var height = 0;\r
+var orderedSections = [];\r
+for (var section in this._sections) {\r
+height += this._sections[section]._height;\r
+orderedSections.push(this._sections[section])\r
+}\r
+function compareSections(a, b)\r
+{\r
+return a.order - b.order;\r
+}\r
+orderedSections = orderedSections.sort(compareSections);\r
+\r
+const wrapAfter = height / nColumns;\r
+var table = document.createElement("table");\r
+table.className = "help-table";\r
+var row = table.createChild("tr");\r
+\r
+\r
+\r
+for (var section = 0; section < orderedSections.length;) {\r
+var td = row.createChild("td");\r
+td.style.width = (100 / nColumns) + "%";\r
+var column = td.createChild("table");\r
+for (var columnHeight = 0;\r
+columnHeight < wrapAfter && section < orderedSections.length;\r
+columnHeight += orderedSections[section]._height, section++) {\r
+orderedSections[section].renderSection(column);\r
+}\r
+}\r
+parent.appendChild(table);\r
+}\r
+};\r
+\r
+WebInspector.shortcutsHelp = new WebInspector.ShortcutsHelp();\r
+\r
+WebInspector.ShortcutsSection = function(name)\r
+{\r
+this.name = name;\r
+this._lines = [];\r
+this.order = ++WebInspector.ShortcutsSection._sequenceNumber;\r
+};\r
+\r
+WebInspector.ShortcutsSection._sequenceNumber = 0;\r
+\r
+WebInspector.ShortcutsSection.prototype = {\r
+addKey: function(key, description)\r
+{\r
+this.addLine(this._renderKey(key), description);\r
+},\r
+\r
+addRelatedKeys: function(keys, description)\r
+{\r
+this.addLine(this._renderSequence(keys,"/"), description);\r
+},\r
+\r
+addAlternateKeys: function(keys, description)\r
+{\r
+this.addLine(this._renderSequence(keys,WebInspector.UIString("or")), description);\r
+},\r
+\r
+addLine: function(htmlKey, description)\r
+{\r
+this._lines.push({ key: htmlKey, text: description })\r
+},\r
+\r
+renderSection: function(parent)\r
+{\r
+this._renderHeader(parent);\r
+\r
+for (var line = 0; line < this._lines.length; ++line) {\r
+var tr = parent.createChild("tr");\r
+tr.createChild("td", "help-key-cell").innerHTML = this._lines[line].key + " : ";\r
+tr.createChild("td").innerText = this._lines[line].text;\r
+}\r
+},\r
+\r
+_renderHeader: function(parent)\r
+{\r
+var trHead = parent.createChild("tr");\r
+\r
+trHead.createChild("th");\r
+trHead.createChild("th").innerText = this.name;\r
+},\r
+\r
+_renderSequence: function(sequence, delimiter)\r
+{\r
+var delimiterHtml = '<span class="help-key-delimiter">' + delimiter.escapeHTML() + '</span>'\r
+return sequence.map(this._renderKey).join(delimiterHtml);\r
+},\r
+\r
+_renderKey: function(key)\r
+{\r
+function renderLabel(label)\r
+{\r
+return '<span class="help-key monospace">' + label.escapeHTML() + '</span>';\r
+}\r
+return key.split(" + ").map(renderLabel).join('<span class="help-combine-keys">+</span>');\r
+},\r
+\r
+get _height()\r
+{\r
+return this._lines.length + 2; \r
+}\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.HAREntry = function(resource)\r
+{\r
+this._resource = resource;\r
+}\r
+\r
+WebInspector.HAREntry.prototype = {\r
+build: function()\r
+{\r
+return {\r
+pageref: this._resource.documentURL,\r
+startedDateTime: new Date(this._resource.startTime * 1000),\r
+time: WebInspector.HAREntry._toMilliseconds(this._resource.duration),\r
+request: this._buildRequest(),\r
+response: this._buildResponse(),\r
+\r
+timings: this._buildTimings()\r
+};\r
+},\r
+\r
+_buildRequest: function()\r
+{\r
+var res = {\r
+method: this._resource.requestMethod,\r
+url: this._resource.url,\r
+\r
+headers: this._buildHeaders(this._resource.requestHeaders),\r
+headersSize: -1, \r
+bodySize: -1 \r
+};\r
+if (this._resource.queryParameters)\r
+res.queryString = this._buildParameters(this._resource.queryParameters);\r
+if (this._resource.requestFormData)\r
+res.postData = this._buildPostData();\r
+if (this._resource.requestCookies)\r
+res.cookies = this._buildCookies(this._resource.requestCookies);\r
+return res;\r
+},\r
+\r
+_buildResponse: function()\r
+{\r
+var res = {\r
+status: this._resource.statusCode,\r
+statusText: this._resource.statusText,\r
+\r
+headers: this._buildHeaders(this._resource.responseHeaders),\r
+content: this._buildContent(),\r
+redirectURL: this._resource.responseHeaderValue("Location") || "",\r
+headersSize: -1, \r
+bodySize: this._resource.resourceSize\r
+};\r
+if (this._resource.responseCookies)\r
+res.cookies = this._buildCookies(this._resource.responseCookies);\r
+return res;\r
+},\r
+\r
+_buildContent: function()\r
+{\r
+return {\r
+size: this._resource.resourceSize,\r
+\r
+mimeType: this._resource.mimeType,\r
+\r
+};\r
+},\r
+\r
+_buildTimings: function()\r
+{\r
+var waitForConnection = this._interval("connectStart", "connectEnd");\r
+var blocked;\r
+var connect;\r
+var dns = this._interval("dnsStart", "dnsEnd");\r
+var send = this._interval("sendStart", "sendEnd");\r
+var ssl = this._interval("sslStart", "sslEnd");\r
+\r
+if (ssl !== -1 && send !== -1)\r
+send -= ssl;\r
+\r
+if (this._resource.connectionReused) {\r
+connect = -1;\r
+blocked = waitForConnection;\r
+} else {\r
+blocked = 0;\r
+connect = waitForConnection;\r
+if (dns !== -1)\r
+connect -= dns;\r
+}\r
+\r
+return {\r
+blocked: blocked,\r
+dns: dns,\r
+connect: connect,\r
+send: send,\r
+wait: this._interval("sendEnd", "receiveHeadersEnd"),\r
+receive: WebInspector.HAREntry._toMilliseconds(this._resource.receiveDuration),\r
+ssl: ssl\r
+};\r
+},\r
+\r
+_buildHeaders: function(headers)\r
+{\r
+var result = [];\r
+for (var name in headers)\r
+result.push({ name: name, value: headers[name] });\r
+return result;\r
+},\r
+\r
+_buildPostData: function()\r
+{\r
+var res = {\r
+mimeType: this._resource.requestHeaderValue("Content-Type"),\r
+text: this._resource.requestFormData\r
+};\r
+if (this._resource.formParameters)\r
+res.params = this._buildParameters(this._resource.formParameters);\r
+return res;\r
+},\r
+\r
+_buildParameters: function(parameters)\r
+{\r
+return parameters.slice();\r
+},\r
+\r
+_buildCookies: function(cookies)\r
+{\r
+return cookies.map(this._buildCookie.bind(this));\r
+},\r
+\r
+_buildCookie: function(cookie)\r
+{\r
+\r
+return {\r
+name: cookie.name,\r
+value: cookie.value,\r
+path: cookie.path,\r
+domain: cookie.domain,\r
+expires: cookie.expires(new Date(this._resource.startTime * 1000)),\r
+httpOnly: cookie.httpOnly,\r
+secure: cookie.secure\r
+};\r
+},\r
+\r
+_interval: function(start, end)\r
+{\r
+var timing = this._resource.timing;\r
+if (!timing)\r
+return -1;\r
+var startTime = timing[start];\r
+return typeof startTime !== "number" || startTime === -1 ? -1 : Math.round(timing[end] - startTime);\r
+}\r
+}\r
+\r
+WebInspector.HAREntry._toMilliseconds = function(time)\r
+{\r
+return time === -1 ? -1 : Math.round(time * 1000);\r
+}\r
+\r
+WebInspector.HARLog = function()\r
+{\r
+this.includeResourceIds = false;\r
+}\r
+\r
+WebInspector.HARLog.prototype = {\r
+build: function()\r
+{\r
+var webKitVersion = /AppleWebKit\/([^ ]+)/.exec(window.navigator.userAgent);\r
+\r
+return {\r
+version: "1.2",\r
+creator: {\r
+name: "WebInspector",\r
+version: webKitVersion ? webKitVersion[1] : "n/a"\r
+},\r
+pages: this._buildPages(),\r
+entries: Object.keys(WebInspector.networkResources).map(this._convertResource.bind(this))\r
+}\r
+},\r
+\r
+_buildPages: function()\r
+{\r
+return [\r
+{\r
+startedDateTime: new Date(WebInspector.mainResource.startTime * 1000),\r
+id: WebInspector.mainResource.documentURL,\r
+title: "",\r
+pageTimings: this.buildMainResourceTimings()\r
+}\r
+];\r
+},\r
+\r
+buildMainResourceTimings: function()\r
+{\r
+return {\r
+onContentLoad: this._pageEventTime(WebInspector.mainResourceDOMContentTime),\r
+onLoad: this._pageEventTime(WebInspector.mainResourceLoadTime),\r
+}\r
+},\r
+\r
+_convertResource: function(id)\r
+{\r
+var entry = (new WebInspector.HAREntry(WebInspector.networkResources[id])).build();\r
+if (this.includeResourceIds)\r
+entry._resourceId = id;\r
+return entry;\r
+},\r
+\r
+_pageEventTime: function(time)\r
+{\r
+var startTime = WebInspector.mainResource.startTime;\r
+if (time === -1 || startTime === -1)\r
+return -1;\r
+return WebInspector.HAREntry._toMilliseconds(time - startTime);\r
+}\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.CookieParser = function()\r
+{\r
+}\r
+\r
+WebInspector.CookieParser.prototype = {\r
+get cookies()\r
+{\r
+return this._cookies;\r
+},\r
+\r
+parseCookie: function(cookieHeader)\r
+{\r
+if (!this._initialize(cookieHeader))\r
+return;\r
+\r
+for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) {\r
+if (kv.key.charAt(0) === "$" && this._lastCookie)\r
+this._lastCookie.addAttribute(kv.key.slice(1), kv.value);\r
+else if (kv.key.toLowerCase() !== "$version" && typeof kv.value === "string")\r
+this._addCookie(kv, WebInspector.Cookie.Type.Request);\r
+this._advanceAndCheckCookieDelimiter();\r
+}\r
+this._flushCookie();\r
+return this._cookies;\r
+},\r
+\r
+parseSetCookie: function(setCookieHeader)\r
+{\r
+if (!this._initialize(setCookieHeader))\r
+return;\r
+for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) {\r
+if (this._lastCookie)\r
+this._lastCookie.addAttribute(kv.key, kv.value);\r
+else \r
+this._addCookie(kv, WebInspector.Cookie.Type.Response);\r
+if (this._advanceAndCheckCookieDelimiter())\r
+this._flushCookie();\r
+}\r
+this._flushCookie();\r
+return this._cookies;\r
+},\r
+\r
+_initialize: function(headerValue)\r
+{\r
+this._input = headerValue;\r
+if (typeof headerValue !== "string")\r
+return false;\r
+this._cookies = [];\r
+this._lastCookie = null;\r
+this._originalInputLength = this._input.length;\r
+return true;\r
+},\r
+\r
+_flushCookie: function()\r
+{\r
+if (this._lastCookie)\r
+this._lastCookie.size = this._originalInputLength - this._input.length - this._lastCookiePosition;\r
+this._lastCookie = null;\r
+},\r
+\r
+_extractKeyValue: function()\r
+{\r
+if (!this._input || !this._input.length)\r
+return null;\r
+\r
+\r
+\r
+\r
+\r
+var keyValueMatch = /^[ \t]*([^\s=;]+)[ \t]*(?:=[ \t]*([^;\n]*))?/.exec(this._input);\r
+        if (!keyValueMatch) {\r
+            console.log("Failed parsing cookie header before: " + this._input);\r
+            return null;\r
+        }\r
+\r
+        var result = {\r
+            key: keyValueMatch[1],\r
+            value: keyValueMatch[2] && keyValueMatch[2].trim(),\r
+            position: this._originalInputLength - this._input.length\r
+        };\r
+        this._input = this._input.slice(keyValueMatch[0].length);\r
+        return result;\r
+    },\r
+\r
+    _advanceAndCheckCookieDelimiter: function()\r
+    {\r
+        var match = /^\s*[\n;]\s*/.exec(this._input);\r
+if (!match)\r
+return false;\r
+this._input = this._input.slice(match[0].length);\r
+return match[0].match("\n") !== null;\r
+},\r
+\r
+_addCookie: function(keyValue, type)\r
+{\r
+if (this._lastCookie)\r
+this._lastCookie.size = keyValue.position - this._lastCookiePosition;\r
+\r
+\r
+this._lastCookie = keyValue.value ? new WebInspector.Cookie(keyValue.key, keyValue.value, type) :\r
+new WebInspector.Cookie("", keyValue.key, type);\r
+this._lastCookiePosition = keyValue.position;\r
+this._cookies.push(this._lastCookie);\r
+}\r
+};\r
+\r
+WebInspector.CookieParser.parseCookie = function(header)\r
+{\r
+return (new WebInspector.CookieParser()).parseCookie(header);\r
+}\r
+\r
+WebInspector.CookieParser.parseSetCookie = function(header)\r
+{\r
+return (new WebInspector.CookieParser()).parseSetCookie(header);\r
+}\r
+\r
+WebInspector.Cookie = function(name, value, type)\r
+{\r
+this.name = name;\r
+this.value = value;\r
+this.type = type;\r
+this._attributes = {};\r
+}\r
+\r
+WebInspector.Cookie.prototype = {\r
+get httpOnly()\r
+{\r
+return "httponly" in this._attributes;\r
+},\r
+\r
+get secure()\r
+{\r
+return "secure" in this._attributes;\r
+},\r
+\r
+get session()\r
+{\r
+\r
+\r
+return  !("expries" in this._attributes || "max-age" in this._attributes);\r
+},\r
+\r
+get path()\r
+{\r
+return this._attributes.path;\r
+},\r
+\r
+get domain()\r
+{\r
+return this._attributes.domain;\r
+},\r
+\r
+expires: function(requestDate)\r
+{\r
+return this._attributes.expires ? new Date(this._attributes.expires) :\r
+(this._attributes["max-age"] ? new Date(requestDate.getTime() + 1000 * this._attributes["max-age"]) : null);\r
+},\r
+\r
+get attributes()\r
+{\r
+return this._attributes;\r
+},\r
+\r
+addAttribute: function(key, value)\r
+{\r
+this._attributes[key.toLowerCase()] = value;\r
+}\r
+}\r
+\r
+WebInspector.Cookie.Type = {\r
+Request: 0,\r
+Response: 1\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+var context = {};  \r
+\r
+(function () {\r
+Preferences.ignoreWhitespace = false;\r
+Preferences.samplingCPUProfiler = true;\r
+Preferences.heapProfilerPresent = true;\r
+Preferences.debuggerAlwaysEnabled = true;\r
+Preferences.profilerAlwaysEnabled = true;\r
+Preferences.canEditScriptSource = true;\r
+Preferences.onlineDetectionEnabled = false;\r
+Preferences.nativeInstrumentationEnabled = true;\r
+Preferences.fileSystemEnabled = false;\r
+Preferences.resourceExportEnabled = true;\r
+Preferences.showTimingTab = true;\r
+Preferences.showCookiesTab = true;\r
+})();\r
+\r
+var devtools = devtools || {};\r
+\r
+devtools.domContentLoaded = function()\r
+{\r
+WebInspector.setAttachedWindow(WebInspector.queryParamsObject.docked === "true");\r
+if (WebInspector.queryParamsObject.toolbar_color && WebInspector.queryParamsObject.text_color)\r
+WebInspector.setToolbarColors(WebInspector.queryParamsObject.toolbar_color, WebInspector.queryParamsObject.text_color);\r
+}\r
+document.addEventListener("DOMContentLoaded", devtools.domContentLoaded, false);\r
+\r
+\r
+\r
+(function InterceptProfilesPanelEvents()\r
+{\r
+var oldShow = WebInspector.ProfilesPanel.prototype.show;\r
+WebInspector.ProfilesPanel.prototype.show = function()\r
+{\r
+this.enableToggleButton.visible = false;\r
+oldShow.call(this);\r
+\r
+\r
+WebInspector.ProfilesPanel.prototype.show = oldShow;\r
+};\r
+})();\r
+\r
+\r
+\r
+WebInspector.UIString = function(string)\r
+{\r
+return String.vsprintf(string, Array.prototype.slice.call(arguments, 1));\r
+};\r
+\r
+\r
+\r
+(function()\r
+{\r
+var originalDragStart = WebInspector.elementDragStart;\r
+WebInspector.elementDragStart = function(element)\r
+{\r
+if (element) {\r
+var glassPane = document.createElement("div");\r
+glassPane.style.cssText = "position:absolute;width:100%;height:100%;opacity:0;z-index:1";\r
+glassPane.id = "glass-pane-for-drag";\r
+element.parentElement.appendChild(glassPane);\r
+}\r
+\r
+originalDragStart.apply(this, arguments);\r
+};\r
+\r
+var originalDragEnd = WebInspector.elementDragEnd;\r
+WebInspector.elementDragEnd = function()\r
+{\r
+originalDragEnd.apply(this, arguments);\r
+\r
+var glassPane = document.getElementById("glass-pane-for-drag");\r
+if (glassPane)\r
+glassPane.parentElement.removeChild(glassPane);\r
+};\r
+})();\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.runAfterPendingDispatchesQueue = [];\r
+\r
+WebInspector.TestController.prototype.runAfterPendingDispatches = function(callback)\r
+{\r
+WebInspector.runAfterPendingDispatchesQueue.push(callback);\r
+};\r
+\r
+WebInspector.queuesAreEmpty = function()\r
+{\r
+var copy = this.runAfterPendingDispatchesQueue.slice();\r
+this.runAfterPendingDispatchesQueue = [];\r
+for (var i = 0; i < copy.length; ++i)\r
+copy[i].call(this);\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.setToolbarColors = function(backgroundColor, color)\r
+{\r
+if (!WebInspector._themeStyleElement) {\r
+WebInspector._themeStyleElement = document.createElement("style");\r
+document.head.appendChild(WebInspector._themeStyleElement);\r
+}\r
+WebInspector._themeStyleElement.textContent =\r
+"#toolbar {\\r
+             background-image: none !important;\\r
+             background-color: " + backgroundColor + " !important;\\r
+         }\\r
+         \\r
+         .toolbar-label {\\r
+             color: " + color + " !important;\\r
+             text-shadow: none;\\r
+         }";\r
+}\r
+\r
+WebInspector.resetToolbarColors = function()\r
+{\r
+if (WebInspector._themeStyleElement)\r
+WebInspector._themeStyleElement.textContent = "";\r
+\r
+}\r
+\r
+\r
+\r
+\r
+\r
+WebInspector.platformExtensionAPI = function(tabId)\r
+{\r
+function getTabId()\r
+{\r
+return tabId;\r
+}\r
+webInspector.inspectedWindow.__proto__.__defineGetter__("tabId", getTabId);\r
+}\r
+\r
+WebInspector.buildPlatformExtensionAPI = function()\r
+{\r
+return "(" + WebInspector.platformExtensionAPI + ")(" + WebInspector._inspectedTabId + ");";\r
+}\r
+\r
+WebInspector.setInspectedTabId = function(tabId)\r
+{\r
+WebInspector._inspectedTabId = tabId;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+if (window.domAutomationController) {\r
+\r
+var ___interactiveUiTestsMode = true;\r
+\r
+\r
+TestSuite = function()\r
+{\r
+this.controlTaken_ = false;\r
+this.timerId_ = -1;\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.fail = function(message)\r
+{\r
+if (this.controlTaken_)\r
+this.reportFailure_(message);\r
+else\r
+throw message;\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.assertEquals = function(expected, actual, opt_message)\r
+{\r
+if (expected !== actual) {\r
+var message = "Expected: '" + expected + "', but was '" + actual + "'";\r
+if (opt_message)\r
+message = opt_message + "(" + message + ")";\r
+this.fail(message);\r
+}\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.assertTrue = function(value, opt_message)\r
+{\r
+this.assertEquals(true, !!value, opt_message);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.assertContains = function(string, substring)\r
+{\r
+if (string.indexOf(substring) === -1)\r
+this.fail("Expected to: '" + string + "' to contain '" + substring + "'");\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.takeControl = function()\r
+{\r
+this.controlTaken_ = true;\r
+\r
+var self = this;\r
+this.timerId_ = setTimeout(function() {\r
+self.reportFailure_("Timeout exceeded: 20 sec");\r
+}, 20000);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.releaseControl = function()\r
+{\r
+if (this.timerId_ !== -1) {\r
+clearTimeout(this.timerId_);\r
+this.timerId_ = -1;\r
+}\r
+this.reportOk_();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.reportOk_ = function()\r
+{\r
+window.domAutomationController.send("[OK]");\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.reportFailure_ = function(error)\r
+{\r
+if (this.timerId_ !== -1) {\r
+clearTimeout(this.timerId_);\r
+this.timerId_ = -1;\r
+}\r
+window.domAutomationController.send("[FAILED] " + error);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.runTest = function(testName)\r
+{\r
+try {\r
+this[testName]();\r
+if (!this.controlTaken_)\r
+this.reportOk_();\r
+} catch (e) {\r
+this.reportFailure_(e);\r
+}\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.showPanel = function(panelName)\r
+{\r
+\r
+var toolbar = document.getElementById("toolbar");\r
+var button = toolbar.getElementsByClassName(panelName)[0];\r
+button.click();\r
+this.assertEquals(WebInspector.panels[panelName], WebInspector.currentPanel);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.addSniffer = function(receiver, methodName, override, opt_sticky)\r
+{\r
+var orig = receiver[methodName];\r
+if (typeof orig !== "function")\r
+this.fail("Cannot find method to override: " + methodName);\r
+var test = this;\r
+receiver[methodName] = function(var_args) {\r
+try {\r
+var result = orig.apply(this, arguments);\r
+} finally {\r
+if (!opt_sticky)\r
+receiver[methodName] = orig;\r
+}\r
+\r
+try {\r
+override.apply(this, arguments);\r
+} catch (e) {\r
+test.fail("Exception in overriden method '" + methodName + "': " + e);\r
+}\r
+return result;\r
+};\r
+};\r
+\r
+\r
+\r
+\r
+\r
+\r
+TestSuite.prototype.testEnableResourcesTab = function()\r
+{\r
+this.showPanel("resources");\r
+\r
+var test = this;\r
+this.addSniffer(WebInspector, "updateResource",\r
+function(payload) {\r
+test.assertEquals("simple_page.html", payload.lastPathComponent);\r
+WebInspector.panels.resources.refresh();\r
+WebInspector.panels.resources.revealAndSelectItem(WebInspector.resources[payload.id]);\r
+\r
+test.releaseControl();\r
+});\r
+\r
+\r
+\r
+WebInspector.panels.resources._enableResourceTracking();\r
+\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testProfilerTab = function()\r
+{\r
+this.showPanel("profiles");\r
+\r
+var panel = WebInspector.panels.profiles;\r
+var test = this;\r
+\r
+function findDisplayedNode() {\r
+var node = panel.visibleView.profileDataGridTree.children[0];\r
+if (!node) {\r
+\r
+window.setTimeout(findDisplayedNode, 100);\r
+return;\r
+}\r
+\r
+\r
+\r
+\r
+while (node) {\r
+if (node.functionName.indexOf("fib") !== -1)\r
+test.releaseControl();\r
+node = node.traverseNextNode(true, null, true);\r
+}\r
+\r
+test.fail();\r
+}\r
+\r
+function findVisibleView() {\r
+if (!panel.visibleView) {\r
+setTimeout(findVisibleView, 0);\r
+return;\r
+}\r
+setTimeout(findDisplayedNode, 0);\r
+}\r
+\r
+findVisibleView();\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testHeapProfiler = function()\r
+{\r
+this.showPanel("profiles");\r
+\r
+var panel = WebInspector.panels.profiles;\r
+var test = this;\r
+\r
+function findDisplayedNode() {\r
+var node = panel.visibleView.dataGrid.children[0];\r
+if (!node) {\r
+\r
+window.setTimeout(findDisplayedNode, 100);\r
+return;\r
+}\r
+\r
+\r
+\r
+while (node) {\r
+if (node.constructorName.indexOf("A") !== -1) {\r
+test.releaseControl();\r
+return;\r
+}\r
+node = node.traverseNextNode(false, null, true);\r
+}\r
+\r
+test.fail();\r
+}\r
+\r
+function findVisibleView() {\r
+if (!panel.visibleView) {\r
+setTimeout(findVisibleView, 0);\r
+return;\r
+}\r
+setTimeout(findDisplayedNode, 0);\r
+}\r
+\r
+WebInspector.HeapSnapshotProfileType.prototype.buttonClicked();\r
+findVisibleView();\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testShowScriptsTab = function()\r
+{\r
+this.showPanel("scripts");\r
+var test = this;\r
+\r
+this._waitUntilScriptsAreParsed(["debugger_test_page.html"],\r
+function() {\r
+test.releaseControl();\r
+});\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testScriptsTabIsPopulatedOnInspectedPageRefresh = function()\r
+{\r
+var test = this;\r
+this.assertEquals(WebInspector.panels.elements, WebInspector.currentPanel, "Elements panel should be current one.");\r
+\r
+this.addSniffer(WebInspector.panels.scripts, "reset", waitUntilScriptIsParsed);\r
+\r
+\r
+test.evaluateInConsole_(\r
+"window.location.reload(true);",\r
+function(resultText) {});\r
+\r
+function waitUntilScriptIsParsed() {\r
+test.showPanel("scripts");\r
+test._waitUntilScriptsAreParsed(["debugger_test_page.html"],\r
+function() {\r
+test.releaseControl();\r
+});\r
+}\r
+\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testContentScriptIsPresent = function()\r
+{\r
+this.showPanel("scripts");\r
+var test = this;\r
+\r
+test._waitUntilScriptsAreParsed(\r
+["page_with_content_script.html", "simple_content_script.js"],\r
+function() {\r
+test.releaseControl();\r
+});\r
+\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testNoScriptDuplicatesOnPanelSwitch = function()\r
+{\r
+var test = this;\r
+\r
+\r
+\r
+\r
+var expectedScriptsCount = 2;\r
+var parsedScripts = [];\r
+\r
+this.showPanel("scripts");\r
+\r
+\r
+function switchToElementsTab() {\r
+test.showPanel("elements");\r
+setTimeout(switchToScriptsTab, 0);\r
+}\r
+\r
+function switchToScriptsTab() {\r
+test.showPanel("scripts");\r
+setTimeout(checkScriptsPanel, 0);\r
+}\r
+\r
+function checkScriptsPanel() {\r
+test.assertTrue(!!WebInspector.panels.scripts.visibleView, "No visible script view.");\r
+test.assertTrue(test._scriptsAreParsed(["debugger_test_page.html"]), "Some scripts are missing.");\r
+checkNoDuplicates();\r
+test.releaseControl();\r
+}\r
+\r
+function checkNoDuplicates() {\r
+var scriptSelect = document.getElementById("scripts-files");\r
+var options = scriptSelect.options;\r
+for (var i = 0; i < options.length; i++) {\r
+var scriptName = options[i].text;\r
+for (var j = i + 1; j < options.length; j++)\r
+test.assertTrue(scriptName !== options[j].text, "Found script duplicates: " + test.optionsToString_(options));\r
+}\r
+}\r
+\r
+test._waitUntilScriptsAreParsed(\r
+["debugger_test_page.html"],\r
+function() {\r
+checkNoDuplicates();\r
+setTimeout(switchToElementsTab, 0);\r
+});\r
+\r
+\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+\r
+TestSuite.prototype.testPauseWhenLoadingDevTools = function()\r
+{\r
+this.showPanel("scripts");\r
+var test = this;\r
+\r
+var expectations = {\r
+functionsOnStack: ["callDebugger"],\r
+lineNumber: 8,\r
+lineText: "  debugger;"\r
+};\r
+\r
+\r
+\r
+if (WebInspector.currentPanel.paused) {\r
+var callFrame = WebInspector.currentPanel.sidebarPanes.callstack.selectedCallFrame;\r
+this.assertEquals(expectations.functionsOnStack[0], callFrame.functionName);\r
+var callbackInvoked = false;\r
+this._checkSourceFrameWhenLoaded(expectations, function() {\r
+callbackInvoked = true;\r
+if (test.controlTaken_)\r
+test.releaseControl();\r
+});\r
+if (!callbackInvoked) {\r
+test.takeControl();\r
+}\r
+return;\r
+}\r
+\r
+this._waitForScriptPause(\r
+{\r
+functionsOnStack: ["callDebugger"],\r
+lineNumber: 8,\r
+lineText: "  debugger;"\r
+},\r
+function() {\r
+test.releaseControl();\r
+});\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+\r
+TestSuite.prototype.testPauseWhenScriptIsRunning = function()\r
+{\r
+this.showPanel("scripts");\r
+var test = this;\r
+\r
+test.evaluateInConsole_(\r
+'setTimeout("handleClick()" , 0)',\r
+function(resultText) {\r
+test.assertTrue(!isNaN(resultText), "Failed to get timer id: " + resultText);\r
+testScriptPauseAfterDelay();\r
+});\r
+\r
+\r
+\r
+function testScriptPauseAfterDelay() {\r
+setTimeout(testScriptPause, 300);\r
+}\r
+\r
+function testScriptPause() {\r
+\r
+\r
+WebInspector.panels.scripts.pauseButton.click();\r
+\r
+test._waitForScriptPause(\r
+{\r
+functionsOnStack: ["handleClick", ""],\r
+lineNumber: 5,\r
+lineText: "  while(true) {"\r
+},\r
+function() {\r
+test.releaseControl();\r
+});\r
+}\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.optionsToString_ = function(options)\r
+{\r
+var names = [];\r
+for (var i = 0; i < options.length; i++)\r
+names.push('"' + options[i].text + '"');\r
+return names.join(",");\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.showMainPageScriptSource_ = function(scriptName, callback)\r
+{\r
+var test = this;\r
+\r
+var scriptSelect = document.getElementById("scripts-files");\r
+var options = scriptSelect.options;\r
+\r
+test.assertTrue(options.length, "Scripts list is empty");\r
+\r
+\r
+var scriptResource;\r
+if (options[scriptSelect.selectedIndex].text === scriptName)\r
+scriptResource = options[scriptSelect.selectedIndex].representedObject;\r
+else {\r
+var pageScriptIndex = -1;\r
+for (var i = 0; i < options.length; i++) {\r
+if (options[i].text === scriptName) {\r
+pageScriptIndex = i;\r
+break;\r
+}\r
+}\r
+test.assertTrue(-1 !== pageScriptIndex, "Script with url " + scriptName + " not found among " + test.optionsToString_(options));\r
+scriptResource = options[pageScriptIndex].representedObject;\r
+\r
+\r
+WebInspector.currentPanel._showScriptOrResource(scriptResource);\r
+test.assertEquals(pageScriptIndex, scriptSelect.selectedIndex, "Unexpected selected option index.");\r
+}\r
+\r
+test.assertTrue(scriptResource instanceof WebInspector.Resource,\r
+"Unexpected resource class.");\r
+test.assertTrue(!!scriptResource.url, "Resource URL is null.");\r
+test.assertTrue(scriptResource.url.search(scriptName + "$") !== -1, "Main HTML resource should be selected.");\r
+\r
+var scriptsPanel = WebInspector.panels.scripts;\r
+\r
+var view = scriptsPanel.visibleView;\r
+test.assertTrue(view instanceof WebInspector.SourceView);\r
+\r
+if (!view.sourceFrame._loaded) {\r
+test.addSniffer(view, "_sourceFrameSetupFinished", function(event) {\r
+callback(view, scriptResource.url);\r
+});\r
+} else\r
+callback(view, scriptResource.url);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.evaluateInConsole_ = function(code, callback)\r
+{\r
+WebInspector.showConsole();\r
+WebInspector.console.prompt.text = code;\r
+WebInspector.console.promptElement.dispatchEvent( TestSuite.createKeyEvent("Enter"));\r
+\r
+this.addSniffer(WebInspector.ConsoleView.prototype, "addMessage",\r
+function(commandResult) {\r
+callback(commandResult.toMessageElement().textContent);\r
+});\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testCompletionOnPause = function()\r
+{\r
+this.showPanel("scripts");\r
+var test = this;\r
+this._executeCodeWhenScriptsAreParsed("handleClick()", ["completion_on_pause.html"]);\r
+\r
+this._waitForScriptPause(\r
+{\r
+functionsOnStack: ["innerFunction", "handleClick", ""],\r
+lineNumber: 9,\r
+lineText: "    debugger;"\r
+},\r
+showConsole);\r
+\r
+function showConsole() {\r
+if (WebInspector.currentFocusElement === WebInspector.console.promptElement)\r
+testLocalsCompletion();\r
+else {\r
+test.addSniffer(WebInspector.console, "afterShow", testLocalsCompletion);\r
+WebInspector.showConsole();\r
+}\r
+}\r
+\r
+function testLocalsCompletion() {\r
+checkCompletions("th", ["parameter1", "closureLocal", "p", "createClosureLocal"], testThisCompletion);\r
+}\r
+\r
+function testThisCompletion() {\r
+checkCompletions("this.", ["field1", "field2", "m"], testFieldCompletion);\r
+}\r
+\r
+function testFieldCompletion() {\r
+checkCompletions("this.field1.", ["id", "name"], function() { test.releaseControl(); });\r
+}\r
+\r
+function checkCompletions(expression, expectedProperties, callback) {\r
+test.addSniffer(WebInspector.console, "_reportCompletions",\r
+function(bestMatchOnly, completionsReadyCallback, dotNotation, bracketNotation, prefix, result, isException) {\r
+test.assertTrue(!isException, "Exception while collecting completions");\r
+for (var i = 0; i < expectedProperties.length; i++) {\r
+var name = expectedProperties[i];\r
+test.assertTrue(result[name], "Name " + name + " not found among the completions: " + JSON.stringify(result));\r
+}\r
+setTimeout(callback, 0);\r
+});\r
+WebInspector.console.prompt.text = expression;\r
+WebInspector.console.prompt.autoCompleteSoon();\r
+}\r
+\r
+this.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._checkExecutionLine = function(sourceFrame, lineNumber, lineContent)\r
+{\r
+this.assertEquals(lineNumber, sourceFrame.executionLine, "Unexpected execution line number.");\r
+this.assertEquals(lineContent, sourceFrame._textModel.line(lineNumber - 1), "Unexpected execution line text.");\r
+}\r
+\r
+\r
+\r
+TestSuite.prototype._scriptsAreParsed = function(expected)\r
+{\r
+var scriptSelect = document.getElementById("scripts-files");\r
+var options = scriptSelect.options;\r
+\r
+\r
+var missing = expected.slice(0);\r
+for (var i = 0 ; i < options.length; i++) {\r
+for (var j = 0; j < missing.length; j++) {\r
+if (options[i].text.search(missing[j]) !== -1) {\r
+missing.splice(j, 1);\r
+break;\r
+}\r
+}\r
+}\r
+return missing.length === 0;\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._waitForScriptPause = function(expectations, callback)\r
+{\r
+var test = this;\r
+\r
+test.addSniffer(\r
+WebInspector.debuggerModel,\r
+"pausedScript",\r
+function(details) {\r
+var callFrames = details.callFrames;\r
+var functionsOnStack = [];\r
+for (var i = 0; i < callFrames.length; i++)\r
+functionsOnStack.push(callFrames[i].functionName);\r
+\r
+test.assertEquals(expectations.functionsOnStack.join(","), functionsOnStack.join(","), "Unexpected stack.");\r
+\r
+\r
+\r
+test._checkSourceFrameWhenLoaded(expectations, callback);\r
+});\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._checkSourceFrameWhenLoaded = function(expectations, callback)\r
+{\r
+var test = this;\r
+\r
+var frame = WebInspector.currentPanel.visibleView.sourceFrame;\r
+if (frame._loaded)\r
+checkExecLine();\r
+else {\r
+setTimeout(function() {\r
+test._checkSourceFrameWhenLoaded(expectations, callback);\r
+}, 100);\r
+}\r
+function checkExecLine() {\r
+test._checkExecutionLine(frame, expectations.lineNumber, expectations.lineText);\r
+callback();\r
+}\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._executeCodeWhenScriptsAreParsed = function(code, expectedScripts)\r
+{\r
+var test = this;\r
+\r
+function executeFunctionInInspectedPage() {\r
+\r
+\r
+test.evaluateInConsole_(\r
+'setTimeout("' + code + '" , 0)',\r
+function(resultText) {\r
+test.assertTrue(!isNaN(resultText), "Failed to get timer id: " + resultText + ". Code: " + code);\r
+});\r
+}\r
+\r
+test._waitUntilScriptsAreParsed(expectedScripts, executeFunctionInInspectedPage);\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._waitUntilScriptsAreParsed = function(expectedScripts, callback)\r
+{\r
+var test = this;\r
+\r
+function waitForAllScripts() {\r
+if (test._scriptsAreParsed(expectedScripts))\r
+callback();\r
+else\r
+test.addSniffer(WebInspector.debuggerModel, "parsedScriptSource", waitForAllScripts);\r
+}\r
+\r
+waitForAllScripts();\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype._hookGetPropertiesCallback = function(hook, code)\r
+{\r
+var accessor = InjectedScriptAccess.prototype;\r
+var orig = accessor.getProperties;\r
+accessor.getProperties = function(objectProxy, ignoreHasOwnProperty, abbreviate, callback) {\r
+orig.call(this, objectProxy, ignoreHasOwnProperty, abbreviate,\r
+function() {\r
+callback.apply(this, arguments);\r
+hook();\r
+});\r
+};\r
+try {\r
+code();\r
+} finally {\r
+accessor.getProperties = orig;\r
+}\r
+};\r
+\r
+\r
+\r
+TestSuite.prototype.testPauseInEval = function()\r
+{\r
+this.showPanel("scripts");\r
+\r
+var test = this;\r
+\r
+var pauseButton = document.getElementById("scripts-pause");\r
+pauseButton.click();\r
+\r
+devtools.tools.evaluateJavaScript("fib(10)");\r
+\r
+this.addSniffer(WebInspector.debuggerModel, "pausedScript",\r
+function() {\r
+test.releaseControl();\r
+});\r
+\r
+test.takeControl();\r
+};\r
+\r
+\r
+\r
+TestSuite.createKeyEvent = function(keyIdentifier)\r
+{\r
+var evt = document.createEvent("KeyboardEvent");\r
+evt.initKeyboardEvent("keydown", true  , true  , null  , keyIdentifier, "");\r
+return evt;\r
+};\r
+\r
+\r
+\r
+var uiTests = {};\r
+\r
+\r
+\r
+uiTests.runAllTests = function()\r
+{\r
+\r
+for (var name in TestSuite.prototype) {\r
+if (name.substring(0, 4) === "test" && typeof TestSuite.prototype[name] === "function")\r
+uiTests.runTest(name);\r
+}\r
+};\r
+\r
+\r
+\r
+uiTests.runTest = function(name)\r
+{\r
+if (uiTests._populatedInterface)\r
+new TestSuite().runTest(name);\r
+else\r
+uiTests._pendingTestName = name;\r
+};\r
+\r
+(function() {\r
+\r
+function runTests()\r
+{\r
+uiTests._populatedInterface = true;\r
+var name = uiTests._pendingTestName;\r
+delete uiTests._pendingTestName;\r
+if (name)\r
+new TestSuite().runTest(name);\r
+}\r
+\r
+var oldShowElementsPanel = WebInspector.showElementsPanel;\r
+WebInspector.showElementsPanel = function()\r
+{\r
+oldShowElementsPanel.call(this);\r
+runTests();\r
+}\r
+\r
+var oldShowPanel = WebInspector.showPanel;\r
+WebInspector.showPanel = function(name)\r
+{\r
+oldShowPanel.call(this, name);\r
+runTests();\r
+}\r
+\r
+})();\r
+\r
+}\r
+\r
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ElementsPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ElementsPanel.js
deleted file mode 100644 (file)
index 51256fa..0000000
+++ /dev/null
@@ -1,1134 +0,0 @@
-WebInspector.CSSNamedFlowCollectionsView=function()
-{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)
-return;WebInspector.cssModel.getNamedFlowCollectionAsync(this._document.id,this._resetNamedFlows.bind(this));},_setDocument:function(document)
-{this._document=document;this.reset();},_documentUpdated:function(event)
-{var document=(event.data);this._setDocument(document);},_setSidebarHasContent:function(hasContent)
-{if(hasContent){if(!this._emptyElement.parentNode)
-return;this._sidebarContentElement.removeChild(this._emptyElement);this._sidebarContentElement.appendChild(this._flowListElement);}else{if(!this._flowListElement.parentNode)
-return;this._sidebarContentElement.removeChild(this._flowListElement);this._sidebarContentElement.appendChild(this._emptyElement);}},_appendNamedFlow:function(flow)
-{var flowHash=this._hashNamedFlow(flow.documentNodeId,flow.name);var flowContainer={flow:flow,flowHash:flowHash};for(var i=0;i<flow.content.length;++i)
-this._contentNodes[flow.content[i]]=flowHash;for(var i=0;i<flow.regions.length;++i)
-this._regionNodes[flow.regions[i].nodeId]=flowHash;var flowTreeItem=new WebInspector.FlowTreeElement(flowContainer);flowTreeItem.onselect=this._selectNamedFlowTab.bind(this,flowHash);flowContainer.flowTreeItem=flowTreeItem;this._namedFlows[flowHash]=flowContainer;if(!this._flowTree.children.length)
-this._setSidebarHasContent(true);this._flowTree.appendChild(flowTreeItem);},_removeNamedFlow:function(flowHash)
-{var flowContainer=this._namedFlows[flowHash];if(this._tabbedPane._tabsById[flowHash])
-this._tabbedPane.closeTab(flowHash);this._flowTree.removeChild(flowContainer.flowTreeItem);var flow=flowContainer.flow;for(var i=0;i<flow.content.length;++i)
-delete this._contentNodes[flow.content[i]];for(var i=0;i<flow.regions.length;++i)
-delete this._regionNodes[flow.regions[i].nodeId];delete this._namedFlows[flowHash];if(!this._flowTree.children.length)
-this._setSidebarHasContent(false);},_updateNamedFlow:function(flow)
-{var flowHash=this._hashNamedFlow(flow.documentNodeId,flow.name);var flowContainer=this._namedFlows[flowHash];if(!flowContainer)
-return;var oldFlow=flowContainer.flow;flowContainer.flow=flow;for(var i=0;i<oldFlow.content.length;++i)
-delete this._contentNodes[oldFlow.content[i]];for(var i=0;i<oldFlow.regions.length;++i)
-delete this._regionNodes[oldFlow.regions[i].nodeId];for(var i=0;i<flow.content.length;++i)
-this._contentNodes[flow.content[i]]=flowHash;for(var i=0;i<flow.regions.length;++i)
-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?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)
-{if(event.data.documentNodeId!==this._document.id)
-return;var flow=(event.data);this._appendNamedFlow(flow);},_namedFlowRemoved:function(event)
-{if(event.data.documentNodeId!==this._document.id)
-return;this._removeNamedFlow(this._hashNamedFlow(event.data.documentNodeId,event.data.flowName));},_regionLayoutUpdated:function(event)
-{if(event.data.documentNodeId!==this._document.id)
-return;var flow=(event.data);this._updateNamedFlow(flow);},_regionOversetChanged:function(event)
-{if(event.data.documentNodeId!==this._document.id)
-return;var flow=(event.data);this._updateNamedFlow(flow);},_hashNamedFlow:function(documentNodeId,flowName)
-{return documentNodeId+"|"+flowName;},_showNamedFlow:function(flowHash)
-{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 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)
-{if(!node)
-return;if(this._regionNodes[node.id]){this._showNamedFlow(this._regionNodes[node.id]);return;}
-while(node){if(this._contentNodes[node.id]){this._showNamedFlow(this._contentNodes[node.id]);return;}
-node=node.parentNode;}},wasShown:function()
-{WebInspector.SidebarView.prototype.wasShown.call(this);WebInspector.domAgent.requestDocument(this._setDocument.bind(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._documentUpdated,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated,this._namedFlowCreated,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved,this._namedFlowRemoved,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated,this._regionLayoutUpdated,this);WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged,this._regionOversetChanged,this);WebInspector.panel("elements").treeOutline.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._selectedNodeChanged,this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabClosed,this._tabClosed,this);},willHide:function()
-{WebInspector.domAgent.removeEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._documentUpdated,this);WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated,this._namedFlowCreated,this);WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved,this._namedFlowRemoved,this);WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated,this._regionLayoutUpdated,this);WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged,this._regionOversetChanged,this);WebInspector.panel("elements").treeOutline.removeEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._selectedNodeChanged,this);this._tabbedPane.removeEventListener(WebInspector.TabbedPane.EventTypes.TabSelected,this._tabSelected,this);this._tabbedPane.removeEventListener(WebInspector.TabbedPane.EventTypes.TabClosed,this._tabClosed,this);},__proto__:WebInspector.SidebarView.prototype}
-WebInspector.FlowTreeElement=function(flowContainer)
-{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.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.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.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.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.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;}
-if(oldContent[oldContentIndex]===newContent[newContentIndex]){++oldContentIndex;++newContentIndex;++contentTreeChildIndex;continue;}
-if(nodeIdSet[oldContent[oldContentIndex]]){this._insertContentNode(newContent[newContentIndex],contentTreeChildIndex);++newContentIndex;++contentTreeChildIndex;continue;}
-this._contentTreeItem.removeChildAtIndex(contentTreeChildIndex);++oldContentIndex;}},_mergeRegions:function(oldRegions,newRegions)
-{var nodeIdSet={};for(var i=0;i<newRegions.length;++i)
-nodeIdSet[newRegions[i].nodeId]=true;var oldRegionsIndex=0;var newRegionsIndex=0;var regionsTreeChildIndex=0;while(oldRegionsIndex<oldRegions.length||newRegionsIndex<newRegions.length){if(oldRegionsIndex===oldRegions.length){this._insertRegion(newRegions[newRegionsIndex]);++newRegionsIndex;continue;}
-if(newRegionsIndex===newRegions.length){this._regionsTreeItem.removeChildAtIndex(regionsTreeChildIndex);++oldRegionsIndex;continue;}
-if(oldRegions[oldRegionsIndex].nodeId===newRegions[newRegionsIndex].nodeId){if(oldRegions[oldRegionsIndex].regionOverset!==newRegions[newRegionsIndex].regionOverset)
-this._updateRegionOverset(this._regionsTreeItem.children[regionsTreeChildIndex],newRegions[newRegionsIndex].regionOverset,oldRegions[oldRegionsIndex].regionOverset);++oldRegionsIndex;++newRegionsIndex;++regionsTreeChildIndex;continue;}
-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.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)
-{RuntimeAgent.releaseObjectGroup(WebInspector.EventListenersSidebarPane._objectGroupName);this._linkifier.reset();var body=this.bodyElement;body.removeChildren();this.sections=[];var self=this;function callback(error,eventListeners){if(error)
-return;var selectedNodeOnly="selected"===WebInspector.settings.eventListenersFilter.get();var sectionNames=[];var sectionMap={};for(var i=0;i<eventListeners.length;++i){var eventListener=eventListeners[i];if(selectedNodeOnly&&(node.id!==eventListener.nodeId))
-continue;eventListener.node=WebInspector.domAgent.nodeForId(eventListener.nodeId);delete eventListener.nodeId;if(/^function _inspectorCommandLineAPI_logEvent\(/.test(eventListener.handlerBody.toString()))
-continue;var type=eventListener.type;var section=sectionMap[type];if(!section){section=new WebInspector.EventListenersSection(type,node.id,self._linkifier);sectionMap[type]=section;sectionNames.push(type);self.sections.push(section);}
-section.addListener(eventListener);}
-if(sectionNames.length===0){var div=document.createElement("div");div.className="info";div.textContent=WebInspector.UIString("No Event Listeners");body.appendChild(div);return;}
-sectionNames.sort();for(var i=0;i<sectionNames.length;++i){var section=sectionMap[sectionNames[i]];body.appendChild(section.element);}}
-if(node)
-node.eventListeners(WebInspector.EventListenersSidebarPane._objectGroupName,callback);this._selectedNode=node;},willHide:function()
-{delete this._selectedNode;},_changeSetting:function()
-{var selectedOption=this.settingsSelectElement[this.settingsSelectElement.selectedIndex];WebInspector.settings.eventListenersFilter.set(selectedOption.value);this.update(this._selectedNode);},__proto__:WebInspector.SidebarPane.prototype}
-WebInspector.EventListenersSection=function(title,nodeId,linkifier)
-{this.eventListeners=[];this._nodeId=nodeId;this._linkifier=linkifier;WebInspector.PropertiesSection.call(this,title);this.propertiesElement.remove();delete this.propertiesElement;delete this.propertiesTreeOutline;this._eventBars=document.createElement("div");this._eventBars.className="event-bars";this.element.appendChild(this._eventBars);}
-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.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)
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("type",this.eventListener.type));if(typeof this.eventListener.useCapture!=="undefined")
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("useCapture",this.eventListener.useCapture));if(typeof this.eventListener.isAttribute!=="undefined")
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("isAttribute",this.eventListener.isAttribute));if(nodeObject)
-properties.push(new WebInspector.RemoteObjectProperty("node",nodeObject));if(typeof this.eventListener.handler!=="undefined"){var remoteObject=WebInspector.RemoteObject.fromPayload(this.eventListener.handler);properties.push(new WebInspector.RemoteObjectProperty("handler",remoteObject));}
-if(typeof this.eventListener.handlerBody!=="undefined")
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("listenerBody",this.eventListener.handlerBody));if(this.eventListener.sourceName)
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("sourceName",this.eventListener.sourceName));if(this.eventListener.location)
-properties.push(WebInspector.RemoteObjectProperty.fromPrimitiveValue("lineNumber",this.eventListener.location.lineNumber+1));this.updateProperties(properties);}
-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=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.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameResized,this._frameResized,this);}
-WebInspector.MetricsSidebarPane.prototype={update:function(node)
-{if(node)
-this.node=node;this._innerUpdate();},_innerUpdate:function()
-{if(this._isEditingMetrics)
-return;var node=this.node;if(!node||node.nodeType()!==Node.ELEMENT_NODE){this.bodyElement.removeChildren();return;}
-function callback(style)
-{if(!style||this.node!==node)
-return;this._updateMetrics(style);}
-WebInspector.cssModel.getComputedStyleAsync(node.id,callback.bind(this));function inlineStyleCallback(style)
-{if(!style||this.node!==node)
-return;this.inlineStyle=style;}
-WebInspector.cssModel.getInlineStylesAsync(node.id,inlineStyleCallback.bind(this));},_styleSheetOrMediaQueryResultChanged:function()
-{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)
-{var suffix=componentName==="border"?"-width":"";var left=this._getPropertyValueAsPx(computedStyle,componentName+"-left"+suffix);var top=this._getPropertyValueAsPx(computedStyle,componentName+"-top"+suffix);var right=this._getPropertyValueAsPx(computedStyle,componentName+"-right"+suffix);var bottom=this._getPropertyValueAsPx(computedStyle,componentName+"-bottom"+suffix);return{left:left,top:top,right:right,bottom:bottom};},_highlightDOMNode:function(showHighlight,mode,event)
-{event.consume();var nodeId=showHighlight&&this.node?this.node.id:0;if(nodeId){if(this._highlightMode===mode)
-return;this._highlightMode=mode;WebInspector.domAgent.highlightDOMNode(nodeId,mode);}else{delete this._highlightMode;WebInspector.domAgent.hideDOMNodeHighlight();}
-for(var i=0;this._boxElements&&i<this._boxElements.length;++i){var element=this._boxElements[i];if(!nodeId||mode==="all"||element._name===mode)
-element.style.backgroundColor=element._backgroundColor;else
-element.style.backgroundColor="";}},_updateMetrics:function(style)
-{var metricsElement=document.createElement("div");metricsElement.className="metrics";var self=this;function createBoxPartElement(style,name,side,suffix)
-{var propertyName=(name!=="position"?name+"-":"")+side+suffix;var value=style.getPropertyValue(propertyName);if(value===""||(name!=="position"&&value==="0px"))
-value="\u2012";else if(name==="position"&&value==="auto")
-value="\u2012";value=value.replace(/px$/,"");value=Number.toFixedIfFloating(value);var element=document.createElement("div");element.className=side;element.textContent=value;element.addEventListener("dblclick",this.startEditing.bind(this,element,name,propertyName,style),false);return element;}
-function getContentAreaWidthPx(style)
-{var width=style.getPropertyValue("width").replace(/px$/,"");if(!isNaN(width)&&style.getPropertyValue("box-sizing")==="border-box"){var borderBox=self._getBox(style,"border");var paddingBox=self._getBox(style,"padding");width=width-borderBox.left-borderBox.right-paddingBox.left-paddingBox.right;}
-return Number.toFixedIfFloating(width);}
-function getContentAreaHeightPx(style)
-{var height=style.getPropertyValue("height").replace(/px$/,"");if(!isNaN(height)&&style.getPropertyValue("box-sizing")==="border-box"){var borderBox=self._getBox(style,"border");var paddingBox=self._getBox(style,"padding");height=height-borderBox.top-borderBox.bottom-paddingBox.top-paddingBox.bottom;}
-return Number.toFixedIfFloating(height);}
-var noMarginDisplayType={"table-cell":true,"table-column":true,"table-column-group":true,"table-footer-group":true,"table-header-group":true,"table-row":true,"table-row-group":true};var noPaddingDisplayType={"table-column":true,"table-column-group":true,"table-footer-group":true,"table-header-group":true,"table-row":true,"table-row-group":true};var noPositionType={"static":true};var boxes=["content","padding","border","margin","position"];var boxColors=[WebInspector.Color.PageHighlight.Content,WebInspector.Color.PageHighlight.Padding,WebInspector.Color.PageHighlight.Border,WebInspector.Color.PageHighlight.Margin,WebInspector.Color.fromRGBA([0,0,0,0])];var boxLabels=[WebInspector.UIString("content"),WebInspector.UIString("padding"),WebInspector.UIString("border"),WebInspector.UIString("margin"),WebInspector.UIString("position")];var previousBox=null;this._boxElements=[];for(var i=0;i<boxes.length;++i){var name=boxes[i];if(name==="margin"&&noMarginDisplayType[style.getPropertyValue("display")])
-continue;if(name==="padding"&&noPaddingDisplayType[style.getPropertyValue("display")])
-continue;if(name==="position"&&noPositionType[style.getPropertyValue("position")])
-continue;var boxElement=document.createElement("div");boxElement.className=name;boxElement._backgroundColor=boxColors[i].toString(WebInspector.Color.Format.RGBA);boxElement._name=name;boxElement.style.backgroundColor=boxElement._backgroundColor;boxElement.addEventListener("mouseover",this._highlightDOMNode.bind(this,true,name==="position"?"all":name),false);this._boxElements.push(boxElement);if(name==="content"){var widthElement=document.createElement("span");widthElement.textContent=getContentAreaWidthPx(style);widthElement.addEventListener("dblclick",this.startEditing.bind(this,widthElement,"width","width",style),false);var heightElement=document.createElement("span");heightElement.textContent=getContentAreaHeightPx(style);heightElement.addEventListener("dblclick",this.startEditing.bind(this,heightElement,"height","height",style),false);boxElement.appendChild(widthElement);boxElement.appendChild(document.createTextNode(" \u00D7 "));boxElement.appendChild(heightElement);}else{var suffix=(name==="border"?"-width":"");var labelElement=document.createElement("div");labelElement.className="label";labelElement.textContent=boxLabels[i];boxElement.appendChild(labelElement);boxElement.appendChild(createBoxPartElement.call(this,style,name,"top",suffix));boxElement.appendChild(document.createElement("br"));boxElement.appendChild(createBoxPartElement.call(this,style,name,"left",suffix));if(previousBox)
-boxElement.appendChild(previousBox);boxElement.appendChild(createBoxPartElement.call(this,style,name,"right",suffix));boxElement.appendChild(document.createElement("br"));boxElement.appendChild(createBoxPartElement.call(this,style,name,"bottom",suffix));}
-previousBox=boxElement;}
-metricsElement.appendChild(previousBox);metricsElement.addEventListener("mouseover",this._highlightDOMNode.bind(this,false,""),false);this.bodyElement.removeChildren();this.bodyElement.appendChild(metricsElement);},startEditing:function(targetElement,box,styleProperty,computedStyle)
-{if(WebInspector.isBeingEdited(targetElement))
-return;var context={box:box,styleProperty:styleProperty,computedStyle:computedStyle};var boundKeyDown=this._handleKeyDown.bind(this,context,styleProperty);context.keyDownHandler=boundKeyDown;targetElement.addEventListener("keydown",boundKeyDown,false);this._isEditingMetrics=true;var config=new WebInspector.EditingConfig(this.editingCommitted.bind(this),this.editingCancelled.bind(this),context);WebInspector.startEditing(targetElement,config);window.getSelection().setBaseAndExtent(targetElement,0,targetElement,1);},_handleKeyDown:function(context,styleProperty,event)
-{var element=event.currentTarget;function finishHandler(originalValue,replacementString)
-{this._applyUserInput(element,replacementString,originalValue,context,false);}
-function customNumberHandler(number)
-{if(styleProperty!=="margin"&&number<0)
-number=0;return number;}
-WebInspector.handleElementValueModifications(event,element,finishHandler.bind(this),undefined,customNumberHandler);},editingEnded:function(element,context)
-{delete this.originalPropertyData;delete this.previousPropertyDataCandidate;element.removeEventListener("keydown",context.keyDownHandler,false);delete this._isEditingMetrics;},editingCancelled:function(element,context)
-{if("originalPropertyData"in this&&this.inlineStyle){if(!this.originalPropertyData){var pastLastSourcePropertyIndex=this.inlineStyle.pastLastSourcePropertyIndex();if(pastLastSourcePropertyIndex)
-this.inlineStyle.allProperties[pastLastSourcePropertyIndex-1].setText("",false);}else
-this.inlineStyle.allProperties[this.originalPropertyData.index].setText(this.originalPropertyData.propertyText,false);}
-this.editingEnded(element,context);this.update();},_applyUserInput:function(element,userInput,previousContent,context,commitEditor)
-{if(!this.inlineStyle){return this.editingCancelled(element,context);}
-if(commitEditor&&userInput===previousContent)
-return this.editingCancelled(element,context);if(context.box!=="position"&&(!userInput||userInput==="\u2012"))
-userInput="0px";else if(context.box==="position"&&(!userInput||userInput==="\u2012"))
-userInput="auto";userInput=userInput.toLowerCase();if(/^\d+$/.test(userInput))
-userInput+="px";var styleProperty=context.styleProperty;var computedStyle=context.computedStyle;if(computedStyle.getPropertyValue("box-sizing")==="border-box"&&(styleProperty==="width"||styleProperty==="height")){if(!userInput.match(/px$/)){WebInspector.log("For elements with box-sizing: border-box, only absolute content area dimensions can be applied",WebInspector.ConsoleMessage.MessageLevel.Error,true);return;}
-var borderBox=this._getBox(computedStyle,"border");var paddingBox=this._getBox(computedStyle,"padding");var userValuePx=Number(userInput.replace(/px$/,""));if(isNaN(userValuePx))
-return;if(styleProperty==="width")
-userValuePx+=borderBox.left+borderBox.right+paddingBox.left+paddingBox.right;else
-userValuePx+=borderBox.top+borderBox.bottom+paddingBox.top+paddingBox.bottom;userInput=userValuePx+"px";}
-this.previousPropertyDataCandidate=null;var self=this;var callback=function(style){if(!style)
-return;self.inlineStyle=style;if(!("originalPropertyData"in self))
-self.originalPropertyData=self.previousPropertyDataCandidate;if(typeof self._highlightMode!=="undefined"){WebInspector.domAgent.highlightDOMNode(self.node.id,self._highlightMode);}
-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.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)
-{if(!node){delete this._node;return;}
-this._node=node;this._innerUpdate();},_innerUpdate:function()
-{if(this._innerUpdateTimeout){clearTimeout(this._innerUpdateTimeout);delete this._innerUpdateTimeout;}
-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._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)
-{var body=this.bodyElement;if(!node){body.removeChildren();this.sections=[];return;}
-WebInspector.RemoteObject.resolveNode(node,WebInspector.PropertiesSidebarPane._objectGroupName,nodeResolved.bind(this));function nodeResolved(object)
-{if(!object)
-return;function protoList()
-{var proto=this;var result={};var counter=1;while(proto){result[counter++]=proto;proto=proto.__proto__;}
-return result;}
-object.callFunction(protoList,undefined,nodePrototypesReady.bind(this));object.release();}
-function nodePrototypesReady(object,wasThrown)
-{if(!object||wasThrown)
-return;object.getOwnProperties(fillSection.bind(this));}
-function fillSection(prototypes)
-{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.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)
-{const cf=WebInspector.Color.Format;var format;var formatSetting=WebInspector.settings.colorFormat.get();if(formatSetting===cf.Original)
-format=cf.Original;else if(formatSetting===cf.RGB)
-format=(color.hasAlpha()?cf.RGBA:cf.RGB);else if(formatSetting===cf.HSL)
-format=(color.hasAlpha()?cf.HSLA:cf.HSL);else if(!color.hasAlpha())
-format=(color.canBeShortHex()?cf.ShortHEX:cf.HEX);else
-format=cf.RGBA;return format;}
-WebInspector.StylesSidebarPane._ignoreErrorsForProperty=function(property){function hasUnknownVendorPrefix(string)
-{return!string.startsWith("-webkit-")&&/^[-_][\w\d]+-\w/.test(string);}
-var name=property.name.toLowerCase();if(name.charAt(0)==="_")
-return true;if(name==="filter")
-return true;if(name.startsWith("scrollbar-"))
-return true;if(hasUnknownVendorPrefix(name))
-return true;var value=property.value.toLowerCase();if(value.endsWith("\9"))
-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()
-{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.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)
-delete this.node;if(!forceUpdate&&(node===this.node))
-refresh=true;if(node&&node.nodeType()===Node.TEXT_NODE&&node.parentNode)
-node=node.parentNode;if(node&&node.nodeType()!==Node.ELEMENT_NODE)
-node=null;if(node)
-this.node=node;else
-node=this.node;this._updateForcedPseudoStateInputs();if(refresh)
-this._refreshUpdate();else
-this._rebuildUpdate();},_refreshUpdate:function(editedSection,forceFetchComputedStyle,userCallback)
-{if(this._refreshUpdateInProgress){this._lastNodeForInnerRefresh=this.node;return;}
-var node=this._validateNode(userCallback);if(!node)
-return;function computedStyleCallback(computedStyle)
-{delete this._refreshUpdateInProgress;if(this._lastNodeForInnerRefresh){delete this._lastNodeForInnerRefresh;this._refreshUpdate(editedSection,forceFetchComputedStyle,userCallback);return;}
-if(this.node===node&&computedStyle)
-this._innerRefreshUpdate(node,computedStyle,editedSection);if(userCallback)
-userCallback();}
-if(this._computedStylePane.isShowing()||forceFetchComputedStyle){this._refreshUpdateInProgress=true;WebInspector.cssModel.getComputedStyleAsync(node.id,computedStyleCallback.bind(this));}else{this._innerRefreshUpdate(node,null,editedSection);if(userCallback)
-userCallback();}},_rebuildUpdate:function()
-{if(this._rebuildUpdateInProgress){this._lastNodeForInnerRebuild=this.node;return;}
-var node=this._validateNode();if(!node)
-return;this._rebuildUpdateInProgress=true;var resultStyles={};function stylesCallback(matchedResult)
-{delete this._rebuildUpdateInProgress;var lastNodeForRebuild=this._lastNodeForInnerRebuild;if(lastNodeForRebuild){delete this._lastNodeForInnerRebuild;if(lastNodeForRebuild!==this.node){this._rebuildUpdate();return;}}
-if(matchedResult&&this.node===node){resultStyles.matchedCSSRules=matchedResult.matchedCSSRules;resultStyles.pseudoElements=matchedResult.pseudoElements;resultStyles.inherited=matchedResult.inherited;this._innerRebuildUpdate(node,resultStyles);}
-if(lastNodeForRebuild){this._rebuildUpdate();return;}}
-function inlineCallback(inlineStyle,attributesStyle)
-{resultStyles.inlineStyle=inlineStyle;resultStyles.attributesStyle=attributesStyle;}
-function computedCallback(computedStyle)
-{resultStyles.computedStyle=computedStyle;}
-if(this._computedStylePane.isShowing())
-WebInspector.cssModel.getComputedStyleAsync(node.id,computedCallback.bind(this));WebInspector.cssModel.getInlineStylesAsync(node.id,inlineCallback.bind(this));WebInspector.cssModel.getMatchedStylesAsync(node.id,true,true,stylesCallback.bind(this));},_validateNode:function(userCallback)
-{if(!this.node){this._sectionsContainer.removeChildren();this._computedStylePane.bodyElement.removeChildren();this.sections={};if(userCallback)
-userCallback();return null;}
-return this.node;},_styleSheetOrMediaQueryResultChanged:function()
-{if(this._userOperation||this._isEditingStyle)
-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)
-{return this.node&&(this.node===node||node.parentNode===this.node.parentNode||node.isAncestor(this.node));},_innerRefreshUpdate:function(node,computedStyle,editedSection)
-{for(var pseudoId in this.sections){var styleRules=this._refreshStyleRules(this.sections[pseudoId],computedStyle);var usedProperties={};this._markUsedProperties(styleRules,usedProperties);this._refreshSectionsForStyleRules(styleRules,usedProperties,editedSection);}
-if(computedStyle)
-this.sections[0][0].rebuildComputedTrace(this.sections[0]);this._nodeStylesUpdatedForTest(node,false);},_innerRebuildUpdate:function(node,styles)
-{this._sectionsContainer.removeChildren();this._computedStylePane.bodyElement.removeChildren();this._linkifier.reset();var styleRules=this._rebuildStyleRules(node,styles);var usedProperties={};this._markUsedProperties(styleRules,usedProperties);this.sections[0]=this._rebuildSectionsForStyleRules(styleRules,usedProperties,null);var anchorElement=this.sections[0].inheritedPropertiesSeparatorElement;if(styles.computedStyle)
-this.sections[0][0].rebuildComputedTrace(this.sections[0]);for(var i=0;i<styles.pseudoElements.length;++i){var pseudoElementCSSRules=styles.pseudoElements[i];styleRules=[];var pseudoId=pseudoElementCSSRules.pseudoId;var entry={isStyleSeparator:true,pseudoId:pseudoId};styleRules.push(entry);for(var j=pseudoElementCSSRules.rules.length-1;j>=0;--j){var rule=pseudoElementCSSRules.rules[j];styleRules.push({style:rule.style,selectorText:rule.selectorText,media:rule.media,sourceURL:rule.resourceURL(),rule:rule,editable:!!(rule.style&&rule.style.id)});}
-usedProperties={};this._markUsedProperties(styleRules,usedProperties);this.sections[pseudoId]=this._rebuildSectionsForStyleRules(styleRules,usedProperties,anchorElement);}
-this._nodeStylesUpdatedForTest(node,true);},_nodeStylesUpdatedForTest:function(node,rebuild)
-{},_refreshStyleRules:function(sections,computedStyle)
-{var nodeComputedStyle=computedStyle;var styleRules=[];for(var i=0;sections&&i<sections.length;++i){var section=sections[i];if(section.isBlank)
-continue;if(section.computedStyle)
-section.styleRule.style=nodeComputedStyle;var styleRule={section:section,style:section.styleRule.style,computedStyle:section.computedStyle,rule:section.rule,editable:!!(section.styleRule.style&&section.styleRule.style.id),isAttribute:section.styleRule.isAttribute,isInherited:section.styleRule.isInherited,parentNode:section.styleRule.parentNode};styleRules.push(styleRule);}
-return styleRules;},_rebuildStyleRules:function(node,styles)
-{var nodeComputedStyle=styles.computedStyle;this.sections={};var styleRules=[];function addAttributesStyle()
-{if(!styles.attributesStyle)
-return;var attrStyle={style:styles.attributesStyle,editable:false};attrStyle.selectorText=node.nodeNameInCorrectCase()+"["+WebInspector.UIString("Attributes Style")+"]";styleRules.push(attrStyle);}
-styleRules.push({computedStyle:true,selectorText:"",style:nodeComputedStyle,editable:false});if(!!node.pseudoType())
-styleRules.push({isStyleSeparator:true,isPlaceholder:true});if(styles.inlineStyle&&node.nodeType()===Node.ELEMENT_NODE){var inlineStyle={selectorText:"element.style",style:styles.inlineStyle,isAttribute:true};styleRules.push(inlineStyle);}
-var addedAttributesStyle;for(var i=styles.matchedCSSRules.length-1;i>=0;--i){var rule=styles.matchedCSSRules[i];if((rule.isUser||rule.isUserAgent)&&!addedAttributesStyle){addedAttributesStyle=true;addAttributesStyle();}
-styleRules.push({style:rule.style,selectorText:rule.selectorText,media:rule.media,sourceURL:rule.resourceURL(),rule:rule,editable:!!(rule.style&&rule.style.id)});}
-if(!addedAttributesStyle)
-addAttributesStyle();var parentNode=node.parentNode;function insertInheritedNodeSeparator(node)
-{var entry={};entry.isStyleSeparator=true;entry.node=node;styleRules.push(entry);}
-for(var parentOrdinal=0;parentOrdinal<styles.inherited.length;++parentOrdinal){var parentStyles=styles.inherited[parentOrdinal];var separatorInserted=false;if(parentStyles.inlineStyle){if(this._containsInherited(parentStyles.inlineStyle)){var inlineStyle={selectorText:WebInspector.UIString("Style Attribute"),style:parentStyles.inlineStyle,isAttribute:true,isInherited:true,parentNode:parentNode};if(!separatorInserted){insertInheritedNodeSeparator(parentNode);separatorInserted=true;}
-styleRules.push(inlineStyle);}}
-for(var i=parentStyles.matchedCSSRules.length-1;i>=0;--i){var rulePayload=parentStyles.matchedCSSRules[i];if(!this._containsInherited(rulePayload.style))
-continue;var rule=rulePayload;if(!separatorInserted){insertInheritedNodeSeparator(parentNode);separatorInserted=true;}
-styleRules.push({style:rule.style,selectorText:rule.selectorText,media:rule.media,sourceURL:rule.resourceURL(),rule:rule,isInherited:true,parentNode:parentNode,editable:!!(rule.style&&rule.style.id)});}
-parentNode=parentNode.parentNode;}
-return styleRules;},_markUsedProperties:function(styleRules,usedProperties)
-{var foundImportantProperties={};var propertyToEffectiveRule={};var inheritedPropertyToNode={};for(var i=0;i<styleRules.length;++i){var styleRule=styleRules[i];if(styleRule.computedStyle||styleRule.isStyleSeparator)
-continue;if(styleRule.section&&styleRule.section.noAffect)
-continue;styleRule.usedProperties={};var style=styleRule.style;var allProperties=style.allProperties;for(var j=0;j<allProperties.length;++j){var property=allProperties[j];if(!property.isLive||!property.parsedOk)
-continue;if(styleRule.isInherited&&!WebInspector.CSSMetadata.isPropertyInherited(property.name))
-continue;var canonicalName=WebInspector.CSSMetadata.canonicalPropertyName(property.name);if(foundImportantProperties.hasOwnProperty(canonicalName))
-continue;var isImportant=property.priority.length;if(!isImportant&&usedProperties.hasOwnProperty(canonicalName))
-continue;var isKnownProperty=propertyToEffectiveRule.hasOwnProperty(canonicalName);if(!isKnownProperty&&styleRule.isInherited&&!inheritedPropertyToNode[canonicalName])
-inheritedPropertyToNode[canonicalName]=styleRule.parentNode;if(isImportant){if(styleRule.isInherited&&isKnownProperty&&styleRule.parentNode!==inheritedPropertyToNode[canonicalName])
-continue;foundImportantProperties[canonicalName]=true;if(isKnownProperty)
-delete propertyToEffectiveRule[canonicalName].usedProperties[canonicalName];}
-styleRule.usedProperties[canonicalName]=true;usedProperties[canonicalName]=true;propertyToEffectiveRule[canonicalName]=styleRule;}}},_refreshSectionsForStyleRules:function(styleRules,usedProperties,editedSection)
-{for(var i=0;i<styleRules.length;++i){var styleRule=styleRules[i];var section=styleRule.section;if(styleRule.computedStyle){section._usedProperties=usedProperties;section.update();}else{section._usedProperties=styleRule.usedProperties;section.update(section===editedSection);}}},_rebuildSectionsForStyleRules:function(styleRules,usedProperties,anchorElement)
-{var sections=[];for(var i=0;i<styleRules.length;++i){var styleRule=styleRules[i];if(styleRule.isStyleSeparator){var separatorElement=document.createElement("div");if(styleRule.isPlaceholder){separatorElement.className="styles-sidebar-placeholder";this._sectionsContainer.insertBefore(separatorElement,anchorElement);continue;}
-separatorElement.className="sidebar-separator";if(styleRule.node){var link=WebInspector.DOMPresentationUtils.linkifyNodeReference(styleRule.node);separatorElement.appendChild(document.createTextNode(WebInspector.UIString("Inherited from")+" "));separatorElement.appendChild(link);if(!sections.inheritedPropertiesSeparatorElement)
-sections.inheritedPropertiesSeparatorElement=separatorElement;}else if("pseudoId"in styleRule){var pseudoName=WebInspector.StylesSidebarPane.PseudoIdNames[styleRule.pseudoId];if(pseudoName)
-separatorElement.textContent=WebInspector.UIString("Pseudo ::%s element",pseudoName);else
-separatorElement.textContent=WebInspector.UIString("Pseudo element");}else
-separatorElement.textContent=styleRule.text;this._sectionsContainer.insertBefore(separatorElement,anchorElement);continue;}
-var computedStyle=styleRule.computedStyle;var editable=styleRule.editable;if(typeof editable==="undefined")
-editable=true;if(computedStyle)
-var section=new WebInspector.ComputedStylePropertiesSection(this,styleRule,usedProperties);else{var section=new WebInspector.StylePropertiesSection(this,styleRule,editable,styleRule.isInherited);section._markSelectorMatches();}
-section.expanded=true;if(computedStyle)
-this._computedStylePane.bodyElement.appendChild(section.element);else
-this._sectionsContainer.insertBefore(section.element,anchorElement);sections.push(section);}
-return sections;},_containsInherited:function(style)
-{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)
-{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?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.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)
-return;this._setPseudoClassCallback(node.id,event.target.state,event.target.checked);}
-function createCheckbox(state)
-{var td=document.createElement("td");var label=document.createElement("label");var input=document.createElement("input");input.type="checkbox";input.state=state;input.addEventListener("click",clickListener.bind(this),false);inputs.push(input);label.appendChild(input);label.appendChild(document.createTextNode(":"+state));td.appendChild(label);return td;}
-var tr=document.createElement("tr");tr.appendChild(createCheckbox.call(this,"active"));tr.appendChild(createCheckbox.call(this,"hover"));table.appendChild(tr);tr=document.createElement("tr");tr.appendChild(createCheckbox.call(this,"focus"));tr.appendChild(createCheckbox.call(this,"visited"));table.appendChild(tr);this._elementStatePane.appendChild(table);},_showUserAgentStylesSettingChanged:function(event)
-{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.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.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.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"));}
-WebInspector.ComputedStyleSidebarPane.prototype={wasShown:function()
-{WebInspector.SidebarPane.prototype.wasShown.call(this);if(!this._hasFreshContent)
-this.prepareContent();},prepareContent:function(callback)
-{function wrappedCallback(){this._hasFreshContent=true;if(callback)
-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.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);}
-anchor.preferredPanel="sources";anchor.style.float="right";refElement.appendChild(anchor);}
-var mediaTextElement=mediaDataElement.createChild("span");mediaTextElement.textContent=mediaText;mediaTextElement.title=media.text;}}
-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.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.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)
-{if(this.isInherited){return!WebInspector.CSSMetadata.isPropertyInherited(propertyName);}
-return false;},isPropertyOverloaded:function(propertyName,isShorthand)
-{if(!this._usedProperties||this.noAffect)
-return false;if(this.isInherited&&!WebInspector.CSSMetadata.isPropertyInherited(propertyName)){return false;}
-var canonicalName=WebInspector.CSSMetadata.canonicalPropertyName(propertyName);var used=(canonicalName in this._usedProperties);if(used||!isShorthand)
-return!used;var longhandProperties=this.styleRule.style.longhandProperties(propertyName);for(var j=0;j<longhandProperties.length;++j){var individualProperty=longhandProperties[j];if(WebInspector.CSSMetadata.canonicalPropertyName(individualProperty.name)in this._usedProperties)
-return false;}
-return true;},nextEditableSibling:function()
-{var curSection=this;do{curSection=curSection.nextSibling;}while(curSection&&!curSection.editable);if(!curSection){curSection=this.firstSibling;while(curSection&&!curSection.editable)
-curSection=curSection.nextSibling;}
-return(curSection&&curSection.editable)?curSection:null;},previousEditableSibling:function()
-{var curSection=this;do{curSection=curSection.previousSibling;}while(curSection&&!curSection.editable);if(!curSection){curSection=this.lastSibling;while(curSection&&!curSection.editable)
-curSection=curSection.previousSibling;}
-return(curSection&&curSection.editable)?curSection:null;},update:function(full)
-{if(this.styleRule.selectorText)
-this._selectorElement.textContent=this.styleRule.selectorText;this._markSelectorMatches();if(full){this.propertiesTreeOutline.removeChildren();this.populated=false;}else{var child=this.propertiesTreeOutline.children[0];while(child){child.overloaded=this.isPropertyOverloaded(child.name,child.isShorthand);child=child.traverseNextTreeElement(false,null,true);}}
-this.afterUpdate();},afterUpdate:function()
-{if(this._afterUpdate){this._afterUpdate(this);delete this._afterUpdate;}},onpopulate:function()
-{var style=this.styleRule.style;var allProperties=style.allProperties;this.uniqueProperties=[];var styleHasEditableSource=this.editable&&!!style.range;if(styleHasEditableSource){for(var i=0;i<allProperties.length;++i){var property=allProperties[i];this.uniqueProperties.push(property);if(property.styleBased)
-continue;var isShorthand=!!WebInspector.CSSMetadata.cssPropertiesMetainfo.longhands(property.name);var inherited=this.isPropertyInherited(property.name);var overloaded=property.inactive||this.isPropertyOverloaded(property.name);var item=new WebInspector.StylePropertyTreeElement(this._parentPane,this.styleRule,style,property,isShorthand,inherited,overloaded);this.propertiesTreeOutline.appendChild(item);}
-return;}
-var generatedShorthands={};for(var i=0;i<allProperties.length;++i){var property=allProperties[i];this.uniqueProperties.push(property);var isShorthand=!!WebInspector.CSSMetadata.cssPropertiesMetainfo.longhands(property.name);var shorthands=isShorthand?null:WebInspector.CSSMetadata.cssPropertiesMetainfo.shorthands(property.name);var shorthandPropertyAvailable=false;for(var j=0;shorthands&&!shorthandPropertyAvailable&&j<shorthands.length;++j){var shorthand=shorthands[j];if(shorthand in generatedShorthands){shorthandPropertyAvailable=true;continue;}
-if(style.getLiveProperty(shorthand)){shorthandPropertyAvailable=true;continue;}
-if(!style.shorthandValue(shorthand)){shorthandPropertyAvailable=false;continue;}
-var shorthandProperty=new WebInspector.CSSProperty(style,style.allProperties.length,shorthand,style.shorthandValue(shorthand),"","style",true,true);var overloaded=property.inactive||this.isPropertyOverloaded(property.name,true);var item=new WebInspector.StylePropertyTreeElement(this._parentPane,this.styleRule,style,shorthandProperty,true,false,overloaded);this.propertiesTreeOutline.appendChild(item);generatedShorthands[shorthand]=shorthandProperty;shorthandPropertyAvailable=true;}
-if(shorthandPropertyAvailable)
-continue;var inherited=this.isPropertyInherited(property.name);var overloaded=property.inactive||this.isPropertyOverloaded(property.name,isShorthand);var item=new WebInspector.StylePropertyTreeElement(this._parentPane,this.styleRule,style,property,isShorthand,inherited,overloaded);this.propertiesTreeOutline.appendChild(item);}},_markSelectorMatches:function()
-{var rule=this.styleRule.rule;if(!rule)
-return;var matchingSelectors=rule.matchingSelectors;if(this.noAffect||matchingSelectors)
-this._selectorElement.className="selector";if(!matchingSelectors)
-return;var selectors=rule.selectors;var fragment=document.createDocumentFragment();var currentMatch=0;for(var i=0;i<selectors.length;++i){if(i)
-fragment.appendChild(document.createTextNode(", "));var isSelectorMatching=matchingSelectors[currentMatch]===i;if(isSelectorMatching)
-++currentMatch;var rawLocation=new WebInspector.CSSLocation(rule.sourceURL,rule.lineNumberInSource(i),rule.columnNumberInSource(i));var matchingSelectorClass=isSelectorMatching?" selector-matches":"";var selectorElement=document.createElement("span");selectorElement.className="simple-selector"+matchingSelectorClass;if(rule.id)
-selectorElement._selectorIndex=i;selectorElement.textContent=selectors[i].value;fragment.appendChild(selectorElement);}
-this._selectorElement.removeChildren();this._selectorElement.appendChild(fragment);},_checkWillCancelEditing:function()
-{var willCauseCancelEditing=this._willCauseCancelEditing;delete this._willCauseCancelEditing;return willCauseCancelEditing;},_handleSelectorContainerClick:function(event)
-{if(this._checkWillCancelEditing()||!this.editable)
-return;if(event.target===this._selectorContainer)
-this.addNewBlankProperty(0).startEditing();},addNewBlankProperty:function(index)
-{var style=this.styleRule.style;var property=style.newBlankProperty(index);var item=new WebInspector.StylePropertyTreeElement(this._parentPane,this.styleRule,style,property,false,false,false);index=property.index;this.propertiesTreeOutline.insertChild(item,index);item.listItemElement.textContent="";item._newProperty=true;item.updateTitle();return item;},_createRuleOriginNode:function()
-{function linkifyUncopyable(url,line)
-{var link=WebInspector.linkifyResourceAsNode(url,line,"",url+":"+(line+1));link.preferredPanel="sources";link.classList.add("webkit-html-resource-link");link.setAttribute("data-uncopyable",link.textContent);link.textContent="";return link;}
-if(this.styleRule.sourceURL){var firstMatchingIndex=this.styleRule.rule.matchingSelectors&&this.rule.matchingSelectors.length?this.rule.matchingSelectors[0]:0;var matchingSelectorLocation=new WebInspector.CSSLocation(this.styleRule.sourceURL,this.rule.lineNumberInSource(firstMatchingIndex),this.rule.columnNumberInSource(firstMatchingIndex));return this._parentPane._linkifier.linkifyCSSLocation(this.rule.id.styleSheetId,matchingSelectorLocation)||linkifyUncopyable(this.styleRule.sourceURL,this.rule.lineNumberInSource());}
-if(!this.rule)
-return document.createTextNode("");if(this.rule.isUserAgent)
-return document.createTextNode(WebInspector.UIString("user agent stylesheet"));if(this.rule.isUser)
-return document.createTextNode(WebInspector.UIString("user stylesheet"));if(this.rule.isViaInspector)
-return document.createTextNode(WebInspector.UIString("via inspector"));return document.createTextNode("");},_handleEmptySpaceMouseDown:function()
-{this._willCauseCancelEditing=this._parentPane._isEditingStyle;},_handleEmptySpaceClick:function(event)
-{if(!this.editable)
-return;if(!window.getSelection().isCollapsed)
-return;if(this._checkWillCancelEditing())
-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.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)
-return;if(!this.rule&&this.propertiesTreeOutline.children.length===0){this.expand();this.addNewBlankProperty().startEditing();return;}
-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);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)
-{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.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());},_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,"");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()
-{this._expandedPropertyNames={};for(var name in this._propertyTreeElements){if(this._propertyTreeElements[name].expanded)
-this._expandedPropertyNames[name]=true;}
-this._propertyTreeElements={};this.propertiesTreeOutline.removeChildren();this.populated=false;},onpopulate:function()
-{function sorter(a,b)
-{return a.name.compareTo(b.name);}
-var style=this.styleRule.style;if(!style)
-return;var uniqueProperties=[];var allProperties=style.allProperties;for(var i=0;i<allProperties.length;++i)
-uniqueProperties.push(allProperties[i]);uniqueProperties.sort(sorter);this._propertyTreeElements={};for(var i=0;i<uniqueProperties.length;++i){var property=uniqueProperties[i];var inherited=this._isPropertyInherited(property.name);var item=new WebInspector.ComputedStylePropertyTreeElement(this._stylesPane,this.styleRule,style,property,inherited);this.propertiesTreeOutline.appendChild(item);this._propertyTreeElements[property.name]=item;}},rebuildComputedTrace:function(sections)
-{for(var i=0;i<sections.length;++i){var section=sections[i];if(section.computedStyle||section.isBlank)
-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.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.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.classList.add("no-affect");}
-this._updateRuleOrigin();this.expand();if(this.element.parentElement)
-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._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()
-{return null;},editablePane:function()
-{return null;},get inherited()
-{return this._inherited;},hasIgnorableError:function()
-{return!this.parsedOk&&WebInspector.StylesSidebarPane._ignoreErrorsForProperty(this.property);},set inherited(x)
-{if(x===this._inherited)
-return;this._inherited=x;this.updateState();},get overloaded()
-{return this._overloaded;},set overloaded(x)
-{if(x===this._overloaded)
-return;this._overloaded=x;this.updateState();},get disabled()
-{return this.property.disabled;},get name()
-{if(!this.disabled||!this.property.text)
-return this.property.name;var text=this.property.text;var index=text.indexOf(":");if(index<1)
-return this.property.name;text=text.substring(0,index).trim();if(text.startsWith("/*"))
-text=text.substring(2).trim();return text;},get priority()
-{if(this.disabled)
-return"";return this.property.priority;},get value()
-{if(!this.disabled||!this.property.text)
-return this.property.value;var match=this.property.text.match(/(.*);\s*/);if(!match||!match[1])
-return this.property.value;var text=match[1];var index=text.indexOf(":");if(index<1)
-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;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)
-container.appendChild(processedNode);}}
-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(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=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&&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)
-{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");}}
-var colorValueElement=document.createElement("span");colorValueElement.textContent=color.toString(format);function nextFormat(curFormat)
-{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()
-{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;},updateState:function()
-{if(!this.listItemElement)
-return;if(this.style.isPropertyImplicit(this.name))
-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()
-{return this._stylesPane.node;},editablePane:function()
-{return null;},__proto__:WebInspector.StylePropertyTreeElementBase.prototype}
-WebInspector.StylePropertyTreeElement=function(stylesPane,styleRule,style,property,isShorthand,inherited,overloaded)
-{WebInspector.StylePropertyTreeElementBase.call(this,styleRule,style,property,inherited,overloaded,isShorthand);this._parentPane=stylesPane;this.isShorthand=isShorthand;}
-WebInspector.StylePropertyTreeElement.prototype={node:function()
-{return this._parentPane.node;},editablePane:function()
-{return this._parentPane;},section:function()
-{return this.treeOutline&&this.treeOutline.section;},_updatePane:function(userCallback)
-{var section=this.section();if(section&&section.pane)
-section.pane._refreshUpdate(section,false,userCallback);else{if(userCallback)
-userCallback();}},toggleEnabled:function(event)
-{var disabled=!event.target.checked;function callback(newStyle)
-{if(!newStyle)
-return;newStyle.parentRule=this.style.parentRule;this.style=newStyle;this._styleRule.style=newStyle;var section=this.section();if(section&&section.pane)
-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 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)
-{if(this._parentPane){this._parentPane._mouseDownTreeElement=this;this._parentPane._mouseDownTreeElementIsName=this._isNameElement(event.target);this._parentPane._mouseDownTreeElementIsValue=this._isValueElement(event.target);}},_resetMouseDownElement:function()
-{if(this._parentPane){delete this._parentPane._mouseDownTreeElement;delete this._parentPane._mouseDownTreeElementIsName;delete this._parentPane._mouseDownTreeElementIsValue;}},updateTitle:function()
-{WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.call(this);if(this.parsedOk&&this.section()&&this.parent.root){var enabledCheckboxElement=document.createElement("input");enabledCheckboxElement.className="enabled-button";enabledCheckboxElement.type="checkbox";enabledCheckboxElement.checked=!this.disabled;enabledCheckboxElement.addEventListener("click",this.toggleEnabled.bind(this),false);this.listItemElement.insertBefore(enabledCheckboxElement,this.listItemElement.firstChild);}},_mouseClick:function(event)
-{if(!window.getSelection().isCollapsed)
-return;event.consume(true);if(event.target===this.listItemElement){var section=this.section();if(!section||!section.editable)
-return;if(section._checkWillCancelEditing())
-return;section.addNewBlankProperty(this.property.index+1).startEditing();return;}
-if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&this.section().navigable){this._navigateToSource(event.target);return;}
-this.startEditing(event.target);},_navigateToSource:function(element)
-{console.assert(this.section().navigable);var propertyNameClicked=element===this.nameElement;var uiLocation=this.property.uiLocation(propertyNameClicked);if(!uiLocation)
-return;WebInspector.panel("sources").showUILocation(uiLocation);},_isNameElement:function(element)
-{return element.enclosingNodeOrSelfWithClass("webkit-css-property")===this.nameElement;},_isValueElement:function(element)
-{return!!element.enclosingNodeOrSelfWithClass("value");},startEditing:function(selectElement)
-{if(this.parent.isShorthand)
-return;if(selectElement===this._expandElement)
-return;var section=this.section();if(section&&!section.editable)
-return;if(!selectElement)
-selectElement=this.nameElement;else
-selectElement=selectElement.enclosingNodeOrSelfWithClass("webkit-css-property")||selectElement.enclosingNodeOrSelfWithClass("value");if(WebInspector.isBeingEdited(selectElement))
-return;var isEditingName=selectElement===this.nameElement;if(!isEditingName)
-this.valueElement.textContent=restoreURLs(this.valueElement.textContent,this.value);function restoreURLs(fieldValue,modelValue)
-{const urlRegex=/\b(url\([^)]*\))/g;var splitFieldValue=fieldValue.split(urlRegex);if(splitFieldValue.length===1)
-return fieldValue;var modelUrlRegex=new RegExp(urlRegex);for(var i=1;i<splitFieldValue.length;i+=2){var match=modelUrlRegex.exec(modelValue);if(match)
-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.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;}
-this.property.name=name;this.property.value=value;this.nameElement.textContent=name;this.valueElement.textContent=value;this.nameElement.normalize();this.valueElement.normalize();this.editingCommitted(event.target.textContent,context,"forward");}
-function blurListener(context,event)
-{var treeElement=this._parentPane._mouseDownTreeElement;var moveDirection="";if(treeElement===this){if(isEditingName&&this._parentPane._mouseDownTreeElementIsValue)
-moveDirection="forward";if(!isEditingName&&this._parentPane._mouseDownTreeElementIsName)
-moveDirection="backward";}
-this.editingCommitted(event.target.textContent,context,moveDirection);}
-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),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!=="")
-++i;else if(!openQuote&&(ch==="\""||ch==="'"))
-openQuote=ch;else if(openQuote===ch)
-openQuote="";}
-return!openQuote;}
-var isFieldInputTerminated=(event.keyCode===WebInspector.KeyboardShortcut.Keys.Semicolon.code)&&(isEditingName?event.shiftKey:(!event.shiftKey&&shouldCommitValueSemicolon(event.target.textContent,event.target.selectionLeftOffset())));if(isEnterKey(event)||isFieldInputTerminated){event.preventDefault();result="forward";}else if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code||event.keyIdentifier==="U+001B")
-result="cancel";else if(!isEditingName&&this._newProperty&&event.keyCode===WebInspector.KeyboardShortcut.Keys.Backspace.code){var selection=window.getSelection();if(selection.isCollapsed&&!selection.focusOffset){event.preventDefault();result="backward";}}else if(event.keyIdentifier==="U+0009"){result=event.shiftKey?"backward":"forward";event.preventDefault();}
-if(result){switch(result){case"cancel":this.editingCancelled(null,context);break;case"forward":case"backward":this.editingCommitted(event.target.textContent,context,result);break;}
-event.consume();return;}
-if(!isEditingName)
-this._applyFreeFlowStyleTextEdit(false);},_applyFreeFlowStyleTextEdit:function(now)
-{if(this._applyFreeFlowStyleTextEditTimer)
-clearTimeout(this._applyFreeFlowStyleTextEditTimer);function apply()
-{var valueText=this.valueElement.textContent;if(valueText.indexOf(";")===-1)
-this.applyStyleText(this.nameElement.textContent+": "+valueText,false,false,false);}
-if(now)
-apply.call(this);else
-this._applyFreeFlowStyleTextEditTimer=setTimeout(apply.bind(this),100);},kickFreeFlowStyleEditForTest:function()
-{this._applyFreeFlowStyleTextEdit(true);},editingEnded:function(context)
-{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.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
-this.updateTitle();}},_findSibling:function(moveDirection)
-{var target=this;do{target=(moveDirection==="forward"?target.nextSibling:target.previousSibling);}while(target&&target.inherited);return target;},editingCommitted:function(userInput,context,moveDirection)
-{this._removePrompt();this.editingEnded(context);var isEditingName=context.isEditingName;var createNewProperty,moveToPropertyName,moveToSelector;var isDataPasted="originalName"in context;var isDirtyViaPaste=isDataPasted&&(this.nameElement.textContent!==context.originalName||this.valueElement.textContent!==context.originalValue);var isPropertySplitPaste=isDataPasted&&isEditingName&&this.valueElement.textContent!==context.originalValue;var moveTo=this;var moveToOther=(isEditingName^(moveDirection==="forward"));var abandonNewProperty=this._newProperty&&!userInput&&(moveToOther||isEditingName);if(moveDirection==="forward"&&(!isEditingName||isPropertySplitPaste)||moveDirection==="backward"&&isEditingName){moveTo=moveTo._findSibling(moveDirection);if(moveTo)
-moveToPropertyName=moveTo.name;else if(moveDirection==="forward"&&(!this._newProperty||userInput))
-createNewProperty=true;else if(moveDirection==="backward")
-moveToSelector=true;}
-var moveToIndex=moveTo&&this.treeOutline?this.treeOutline.children.indexOf(moveTo):-1;var blankInput=/^\s*$/.test(userInput);var shouldCommitNewProperty=this._newProperty&&(isPropertySplitPaste||moveToOther||(!moveDirection&&!isEditingName)||(isEditingName&&blankInput));var section=this.section();if(((userInput!==context.previousContent||isDirtyViaPaste)&&!this._newProperty)||shouldCommitNewProperty){section._afterUpdate=moveToNextCallback.bind(this,this._newProperty,!blankInput,section);var propertyText;if(blankInput||(this._newProperty&&/^\s*$/.test(this.valueElement.textContent)))
-propertyText="";else{if(isEditingName)
-propertyText=userInput+": "+this.property.value;else
-propertyText=this.property.name+": "+userInput;}
-this.applyStyleText(propertyText,true,true,false);}else{if(isEditingName)
-this.property.name=userInput;else
-this.property.value=userInput;if(!isDataPasted&&!this._newProperty)
-this.updateTitle();moveToNextCallback.call(this,this._newProperty,false,section);}
-function moveToNextCallback(alreadyNew,valueChanged,section)
-{if(!moveDirection)
-return;if(moveTo&&moveTo.parent){moveTo.startEditing(!isEditingName?moveTo.nameElement:moveTo.valueElement);return;}
-if(moveTo&&!moveTo.parent){var propertyElements=section.propertiesTreeOutline.children;if(moveDirection==="forward"&&blankInput&&!isEditingName)
---moveToIndex;if(moveToIndex>=propertyElements.length&&!this._newProperty)
-createNewProperty=true;else{var treeElement=moveToIndex>=0?propertyElements[moveToIndex]:null;if(treeElement){var elementToEdit=!isEditingName||isPropertySplitPaste?treeElement.nameElement:treeElement.valueElement;if(alreadyNew&&blankInput)
-elementToEdit=moveDirection==="forward"?treeElement.nameElement:treeElement.valueElement;treeElement.startEditing(elementToEdit);return;}else if(!alreadyNew)
-moveToSelector=true;}}
-if(createNewProperty){if(alreadyNew&&!valueChanged&&(isEditingName^(moveDirection==="backward")))
-return;section.addNewBlankProperty().startEditing();return;}
-if(abandonNewProperty){moveTo=this._findSibling(moveDirection);var sectionToEdit=(moveTo||moveDirection==="backward")?section:section.nextEditableSibling();if(sectionToEdit){if(sectionToEdit.rule)
-sectionToEdit.startEditingSelector();else
-sectionToEdit._moveEditorFromSelector(moveDirection);}
-return;}
-if(moveToSelector){if(section.rule)
-section.startEditingSelector();else
-section._moveEditorFromSelector(moveDirection);}}},_removePrompt:function()
-{if(this._prompt){this._prompt.detach();delete this._prompt;}},_hasBeenModifiedIncrementally:function()
-{return typeof this.originalPropertyText==="string"||(!!this.property.propertyText&&this._newProperty);},applyStyleText:function(styleText,updateInterface,majorChange,isRevert)
-{function userOperationFinishedCallback(parentPane,updateInterface)
-{if(updateInterface)
-delete parentPane._userOperation;}
-if(!isRevert&&!updateInterface&&!this._hasBeenModifiedIncrementally()){this.originalPropertyText=this.property.propertyText;}
-if(!this.treeOutline)
-return;var section=this.section();styleText=styleText.replace(/\s/g," ").trim();var styleTextLength=styleText.length;if(!styleTextLength&&updateInterface&&!isRevert&&this._newProperty&&!this._hasBeenModifiedIncrementally()){this.parent.removeChild(this);section.afterUpdate();return;}
-var currentNode=this._parentPane.node;if(updateInterface)
-this._parentPane._userOperation=true;function callback(userCallback,originalPropertyText,newStyle)
-{if(!newStyle){if(updateInterface){this._revertStyleUponEditingCanceled(originalPropertyText);}
-userCallback();return;}
-if(this._newProperty)
-this._newPropertyInStyle=true;newStyle.parentRule=this.style.parentRule;this.style=newStyle;this.property=newStyle.propertyAt(this.property.index);this._styleRule.style=this.style;if(section&&section.pane)
-section.pane.dispatchEventToListeners("style edited");if(updateInterface&&currentNode===this.node()){this._updatePane(userCallback);return;}
-userCallback();}
-if(styleText.length&&!/;\s*$/.test(styleText))
-styleText+=";";var overwriteProperty=!!(!this._newProperty||this._newPropertyInStyle);this.property.setText(styleText,majorChange,overwriteProperty,callback.bind(this,userOperationFinishedCallback.bind(null,this._parentPane,updateInterface),this.originalPropertyText));},ondblclick:function()
-{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;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 true;}
-break;case"Enter":if(this.autoCompleteElement&&!this.autoCompleteElement.textContent.length){this.tabKeyPressed();return true;}
-break;}
-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)
-{function finishHandler(originalValue,replacementString)
-{this._sidebarPane.applyStyleText(this._sidebarPane.nameElement.textContent+": "+this._sidebarPane.valueElement.textContent,false,false,false);}
-if(!this._isEditingName&&WebInspector.handleElementValueModifications(event,this._sidebarPane.valueElement,finishHandler.bind(this),this._isValueSuggestion.bind(this)))
-return true;return false;},_isValueSuggestion:function(word)
-{if(!word)
-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().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;},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();},_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: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()
-{for(var pane in this.sidebarPanes)
-this.sidebarPanes[pane].needsUpdate=true;this.updateStyles(true);this.updateMetrics();this.updatePlatformFonts();this.updateProperties();this.updateEventListeners();},_reset:function()
-{delete this.currentQuery;},_documentUpdatedEvent:function(event)
-{this._documentUpdated(event.data);},_documentUpdated:function(inspectedRootDocument)
-{this._reset();this.searchCanceled();this.treeOutline.rootDOMNode=inspectedRootDocument;if(!inspectedRootDocument){if(this.isShowing())
-WebInspector.domAgent.requestDocument();return;}
-WebInspector.domBreakpointsSidebarPane.restoreBreakpoints();function selectNode(candidateFocusNode)
-{if(!candidateFocusNode)
-candidateFocusNode=inspectedRootDocument.body||inspectedRootDocument.documentElement;if(!candidateFocusNode)
-return;this.selectDOMNode(candidateFocusNode);if(this.treeOutline.selectedTreeElement)
-this.treeOutline.selectedTreeElement.expand();}
-function selectLastSelectedNode(nodeId)
-{if(this.selectedDOMNode()){return;}
-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,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)
-{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)
-{function toggleWordWrap()
-{WebInspector.settings.domWordWrap.set(!WebInspector.settings.domWordWrap.get());}
-var contextMenu=new WebInspector.ContextMenu(event);this.treeOutline.populateContextMenu(contextMenu,event);if(WebInspector.experimentsSettings.cssRegions.isEnabled()){contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"CSS named flows\u2026":"CSS Named Flows\u2026"),this._showNamedFlowCollections.bind(this));}
-contextMenu.appendSeparator();contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Word wrap":"Word Wrap"),toggleWordWrap.bind(this),WebInspector.settings.domWordWrap.get());contextMenu.show();},_showNamedFlowCollections:function()
-{if(!WebInspector.cssNamedFlowCollectionsView)
-WebInspector.cssNamedFlowCollectionsView=new WebInspector.CSSNamedFlowCollectionsView();WebInspector.cssNamedFlowCollectionsView.showInDrawer();},_domWordWrapSettingChanged:function(event)
-{if(event.data)
-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)
-{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)
-return null;anchor.removeAttribute("title");}
-return anchor;},_loadDimensionsForNode:function(treeElement,callback)
-{if(treeElement.treeOutline!==this.treeOutline){callback();return;}
-var node=(treeElement.representedObject);if(!node.nodeName()||node.nodeName().toLowerCase()!=="img"){callback();return;}
-WebInspector.RemoteObject.resolveNode(node,"",resolvedNode);function resolvedNode(object)
-{if(!object){callback();return;}
-object.callFunctionJSON(dimensions,undefined,callback);object.release();function dimensions()
-{return{offsetWidth:this.offsetWidth,offsetHeight:this.offsetHeight,naturalWidth:this.naturalWidth,naturalHeight:this.naturalHeight};}}},_showPopover:function(anchor,popover)
-{var listItem=anchor.enclosingNodeOrSelfWithNodeName("li");if(listItem&&listItem.treeElement)
-this._loadDimensionsForNode(listItem.treeElement,WebInspector.DOMPresentationUtils.buildImagePreviewContents.bind(WebInspector.DOMPresentationUtils,anchor.href,true,showPopover));else
-WebInspector.DOMPresentationUtils.buildImagePreviewContents(anchor.href,true,showPopover);function showPopover(contents)
-{if(!contents)
-return;popover.setCanShrink(false);popover.show(contents,anchor);}},jumpToNextSearchResult:function()
-{if(!this._searchResults)
-return;this._hideSearchHighlights();if(++this._currentSearchResultIndex>=this._searchResults.length)
-this._currentSearchResultIndex=0;this._highlightCurrentSearchResult();},jumpToPreviousSearchResult:function()
-{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){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)
-return;var treeElement=this.treeOutline.findTreeElement(searchResult);if(treeElement)
-treeElement.hideSearchHighlights();},selectedDOMNode:function()
-{return this.treeOutline.selectedDOMNode();},selectDOMNode:function(node,focus)
-{this.treeOutline.selectDOMNode(node,focus);},_updateBreadcrumbIfNeeded:function(event)
-{var nodes=(event.data||[]);if(!nodes.length)
-return;var crumbs=this.crumbsElement;for(var crumb=crumbs.firstChild;crumb;crumb=crumb.nextSibling){if(nodes.indexOf(crumb.representedObject)!==-1){this.updateBreadcrumb(true);return;}}},_stylesPaneEdited:function()
-{this.sidebarPanes.metrics.needsUpdate=true;this.updateMetrics();this.sidebarPanes.platformFonts.needsUpdate=true;this.updatePlatformFonts();},_metricsPaneEdited:function()
-{this.sidebarPanes.styles.needsUpdate=true;this.updateStyles(true);},_mouseMovedInCrumbs:function(event)
-{var nodeUnderMouse=document.elementFromPoint(event.pageX,event.pageY);var crumbElement=nodeUnderMouse.enclosingNodeOrSelfWithClass("crumb");WebInspector.domAgent.highlightDOMNode(crumbElement?crumbElement.representedObject.id:0);if("_mouseOutOfCrumbsTimeout"in this){clearTimeout(this._mouseOutOfCrumbsTimeout);delete this._mouseOutOfCrumbsTimeout;}},_mouseMovedOutOfCrumbs:function(event)
-{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.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.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;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.classList.add("selected");if(!crumbs.childNodes.length)
-crumb.classList.add("end");crumbs.insertBefore(crumb,crumbs.firstChild);}
-if(crumbs.hasChildNodes())
-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.classList.contains("selected")){selectedCrumb=crumb;selectedIndex=i;}
-if(crumb===focusedCrumb)
-focusedIndex=i;if(crumb!==crumbs.lastChild)
-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)
-{if(!significantCrumb)
-significantCrumb=(focusedCrumb||selectedCrumb);if(significantCrumb===selectedCrumb)
-var significantIndex=selectedIndex;else if(significantCrumb===focusedCrumb)
-var significantIndex=focusedIndex;else{var significantIndex=0;for(var i=0;i<crumbs.childNodes.length;++i){if(crumbs.childNodes[i]===significantCrumb){significantIndex=i;break;}}}
-function shrinkCrumbAtIndex(index)
-{var shrinkCrumb=crumbs.childNodes[index];if(shrinkCrumb&&shrinkCrumb!==significantCrumb)
-shrinkingFunction(shrinkCrumb);if(crumbsAreSmallerThanContainer())
-return true;return false;}
-if(direction){var index=(direction>0?0:crumbs.childNodes.length-1);while(index!==significantIndex){if(shrinkCrumbAtIndex(index))
-return true;index+=(direction>0?1:-1);}}else{var startIndex=0;var endIndex=crumbs.childNodes.length-1;while(startIndex!=significantIndex||endIndex!=significantIndex){var startDistance=significantIndex-startIndex;var endDistance=endIndex-significantIndex;if(startDistance>=endDistance)
-var index=startIndex++;else
-var index=endIndex--;if(shrinkCrumbAtIndex(index))
-return true;}}
-return false;}
-function coalesceCollapsedCrumbs()
-{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.classList.add("end");}}else
-collapsedRun=true;crumb=crumb.nextSibling;}
-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.classList.contains("hidden"))
-return;crumb.classList.add("compact");}
-function collapse(crumb,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))
-return;}
-if(makeCrumbsSmaller(compact,(focusedCrumb?BothSides:AncestorSide)))
-return;if(makeCrumbsSmaller(collapse,(focusedCrumb?BothSides:AncestorSide)))
-return;if(!selectedCrumb)
-return;compact(selectedCrumb);if(crumbsAreSmallerThanContainer())
-return;collapse(selectedCrumb,true);},updateStyles:function(forceUpdate)
-{if(!WebInspector.cssModel.isEnabled())
-return;var stylesSidebarPane=this.sidebarPanes.styles;var computedStylePane=this.sidebarPanes.computedStyle;if((!stylesSidebarPane.isShowing()&&!computedStylePane.isShowing())||!stylesSidebarPane.needsUpdate)
-return;stylesSidebarPane.update(this.selectedDOMNode(),forceUpdate);stylesSidebarPane.needsUpdate=false;},updateMetrics:function()
-{if(!WebInspector.cssModel.isEnabled())
-return;var metricsSidebarPane=this.sidebarPanes.metrics;if(!metricsSidebarPane.isShowing()||!metricsSidebarPane.needsUpdate)
-return;metricsSidebarPane.update(this.selectedDOMNode());metricsSidebarPane.needsUpdate=false;},updatePlatformFonts:function()
-{if(!WebInspector.cssModel.isEnabled())
-return;var platformFontsSidebar=this.sidebarPanes.platformFonts;if(!platformFontsSidebar.isShowing()||!platformFontsSidebar.needsUpdate)
-return;platformFontsSidebar.update(this.selectedDOMNode());platformFontsSidebar.needsUpdate=false;},updateProperties:function()
-{var propertiesSidebarPane=this.sidebarPanes.properties;if(!propertiesSidebarPane.isShowing()||!propertiesSidebarPane.needsUpdate)
-return;propertiesSidebarPane.update(this.selectedDOMNode());propertiesSidebarPane.needsUpdate=false;},updateEventListeners:function()
-{var eventListenersSidebarPane=this.sidebarPanes.eventListeners;if(!eventListenersSidebarPane.isShowing()||!eventListenersSidebarPane.needsUpdate)
-return;eventListenersSidebarPane.update(this.selectedDOMNode());eventListenersSidebarPane.needsUpdate=false;},handleShortcut:function(event)
-{function handleUndoRedo()
-{if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&!event.shiftKey&&event.keyIdentifier==="U+005A"){WebInspector.domAgent.undo(this._updateSidebars.bind(this));event.handled=true;return;}
-var isRedoKey=WebInspector.isMac()?event.metaKey&&event.shiftKey&&event.keyIdentifier==="U+005A":event.ctrlKey&&event.keyIdentifier==="U+0059";if(isRedoKey){DOMAgent.redo(this._updateSidebars.bind(this));event.handled=true;}}
-if(!this.treeOutline.editing()){handleUndoRedo.call(this);if(event.handled)
-return;}
-this.treeOutline.handleShortcut(event);},handleCopyEvent:function(event)
-{var currentFocusElement=WebInspector.currentFocusElement();if(currentFocusElement&&WebInspector.isBeingEdited(currentFocusElement))
-return;if(!window.getSelection().isCollapsed)
-return;event.clipboardData.clearData();event.preventDefault();this.selectedDOMNode().copyNode();},sidebarResized:function(event)
-{this.treeOutline.updateSelection();},revealAndSelectNode:function(nodeId)
-{WebInspector.inspectorView.setCurrentPanel(this);var node=WebInspector.domAgent.nodeForId(nodeId);if(!node)
-return;while(!WebInspector.ElementsTreeOutline.showShadowDOM()&&node&&node.isInShadowTree())
-node=node.parentNode;WebInspector.domAgent.highlightDOMNodeForTwoSeconds(nodeId);this.selectDOMNode(node,true);},appendApplicableItems:function(event,contextMenu,target)
-{function selectNode(nodeId)
-{if(nodeId)
-WebInspector.domAgent.inspectElement(nodeId);}
-function revealElement(remoteObject)
-{remoteObject.pushNodeToFrontend(selectNode);}
-var commandCallback;if(target instanceof WebInspector.RemoteObject){var remoteObject=(target);if(remoteObject.subtype==="node")
-commandCallback=revealElement.bind(this,remoteObject);}else if(target instanceof WebInspector.DOMNode){var domNode=(target);if(domNode.id)
-commandCallback=WebInspector.domAgent.inspectElement.bind(WebInspector.domAgent,domNode.id);}
-if(!commandCallback)
-return;if(this.treeOutline.element.isAncestor(event.target))
-return;contextMenu.appendItem(WebInspector.useLowerCaseMenuTitles()?"Reveal in Elements panel":"Reveal in Elements Panel",commandCallback);},_sidebarContextMenuEventFired:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.show();},_dockSideChanged:function()
-{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.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=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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/HeapSnapshotWorker.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/HeapSnapshotWorker.js
deleted file mode 100644 (file)
index 8a7428d..0000000
+++ /dev/null
@@ -1,820 +0,0 @@
-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)
-{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.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.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.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");}}
-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;},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)
-{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.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.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()
-{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.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)
-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.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;}
-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);}
-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.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.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;}
-Object.values=function(obj)
-{var result=Object.keys(obj);var length=result.length;for(var i=0;i<length;++i)
-result[i]=obj[result[i]];return result;}
-String.prototype.findAll=function(string)
-{var matches=[];var i=this.indexOf(string);while(i!==-1){matches.push(i);i=this.indexOf(string,i+string.length);}
-return matches;}
-String.prototype.lineEndings=function()
-{if(!this._lineEndings){this._lineEndings=this.findAll("\n");this._lineEndings.push(this.length);}
-return this._lineEndings;}
-String.prototype.escapeCharacters=function(chars)
-{var foundChar=false;for(var i=0;i<chars.length;++i){if(this.indexOf(chars.charAt(i))!==-1){foundChar=true;break;}}
-if(!foundChar)
-return String(this);var result="";for(var i=0;i<this.length;++i){if(chars.indexOf(this.charAt(i))!==-1)
-result+="\\";result+=this.charAt(i);}
-return result;}
-String.regexSpecialCharacters=function()
-{return"^[]{}()\\.$*+?|-,";}
-String.prototype.escapeForRegExp=function()
-{return this.escapeCharacters(String.regexSpecialCharacters());}
-String.prototype.escapeHTML=function()
-{return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");}
-String.prototype.collapseWhitespace=function()
-{return this.replace(/[\s\xA0]+/g," ");}
-String.prototype.trimMiddle=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);var leftHalf=maxLength>>1;var rightHalf=maxLength-leftHalf-1;return this.substr(0,leftHalf)+"\u2026"+this.substr(this.length-rightHalf,rightHalf);}
-String.prototype.trimEnd=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);return this.substr(0,maxLength-1)+"\u2026";}
-String.prototype.trimURL=function(baseURLDomain)
-{var result=this.replace(/^(https|http|file):\/\//i,"");if(baseURLDomain)
-result=result.replace(new RegExp("^"+baseURLDomain.escapeForRegExp(),"i"),"");return result;}
-String.prototype.toTitleCase=function()
-{return this.substring(0,1).toUpperCase()+this.substring(1);}
-String.prototype.compareTo=function(other)
-{if(this>other)
-return 1;if(this<other)
-return-1;return 0;}
-function sanitizeHref(href)
-{return href&&href.trim().toLowerCase().startsWith("javascript:")?null:href;}
-String.prototype.removeURLFragment=function()
-{var fragmentIndex=this.indexOf("#");if(fragmentIndex==-1)
-fragmentIndex=this.length;return this.substring(0,fragmentIndex);}
-String.prototype.startsWith=function(substring)
-{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)
-return-1;else
-return 0;}
-chunka=a.match(chunk)[0];chunkb=b.match(chunk)[0];anum=!isNaN(chunka);bnum=!isNaN(chunkb);if(anum&&!bnum)
-return-1;if(bnum&&!anum)
-return 1;if(anum&&bnum){var diff=chunka-chunkb;if(diff)
-return diff;if(chunka.length!==chunkb.length){if(!+chunka&&!+chunkb)
-return chunka.length-chunkb.length;else
-return chunkb.length-chunka.length;}}else if(chunka!==chunkb)
-return(chunka<chunkb)?-1:1;a=a.substring(chunka.length);b=b.substring(chunkb.length);}}
-Number.constrain=function(num,min,max)
-{if(num<min)
-num=min;else if(num>max)
-num=max;return num;}
-Number.gcd=function(a,b)
-{if(b===0)
-return a;else
-return Number.gcd(b,a%b);}
-Number.toFixedIfFloating=function(value)
-{if(!value||isNaN(value))
-return value;var number=Number(value);return number%1?number.toFixed(3):String(number);}
-Date.prototype.toISO8601Compact=function()
-{function leadZero(x)
-{return(x>9?"":"0")+x;}
-return this.getFullYear()+
-leadZero(this.getMonth()+1)+
-leadZero(this.getDate())+"T"+
-leadZero(this.getHours())+
-leadZero(this.getMinutes())+
-leadZero(this.getSeconds());}
-Object.defineProperty(Array.prototype,"remove",{value:function(value,onlyFirst)
-{if(onlyFirst){var index=this.indexOf(value);if(index!==-1)
-this.splice(index,1);return;}
-var length=this.length;for(var i=0;i<length;++i){if(this[i]===value)
-this.splice(i,1);}}});Object.defineProperty(Array.prototype,"keySet",{value:function()
-{var keys={};for(var i=0;i<this.length;++i)
-keys[this[i]]=true;return keys;}});Object.defineProperty(Array.prototype,"rotate",{value:function(index)
-{var result=[];for(var i=index;i<index+this.length;++i)
-result.push(this[i%this.length]);return result;}});Object.defineProperty(Uint32Array.prototype,"sort",{value:Array.prototype.sort});(function(){var partition={value:function(comparator,left,right,pivotIndex)
-{function swap(array,i1,i2)
-{var temp=array[i1];array[i1]=array[i2];array[i2]=temp;}
-var pivotValue=this[pivotIndex];swap(this,right,pivotIndex);var storeIndex=left;for(var i=left;i<right;++i){if(comparator(this[i],pivotValue)<0){swap(this,storeIndex,i);++storeIndex;}}
-swap(this,right,storeIndex);return storeIndex;}};Object.defineProperty(Array.prototype,"partition",partition);Object.defineProperty(Uint32Array.prototype,"partition",partition);var sortRange={value:function(comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight)
-{function quickSortRange(array,comparator,left,right,sortWindowLeft,sortWindowRight)
-{if(right<=left)
-return;var pivotIndex=Math.floor(Math.random()*(right-left))+left;var pivotNewIndex=array.partition(comparator,left,right,pivotIndex);if(sortWindowLeft<pivotNewIndex)
-quickSortRange(array,comparator,left,pivotNewIndex-1,sortWindowLeft,sortWindowRight);if(pivotNewIndex<sortWindowRight)
-quickSortRange(array,comparator,pivotNewIndex+1,right,sortWindowLeft,sortWindowRight);}
-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,"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;}
-var low=0;var high=this.length-1;for(;;){var pivotPosition=this.partition(comparator,low,high,Math.floor((high+low)/2));if(pivotPosition===k)
-return this[k];else if(pivotPosition>k)
-high=pivotPosition-1;else
-low=pivotPosition+1;}}});Object.defineProperty(Array.prototype,"lowerBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"upperBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>=0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"binaryIndexOf",{value:function(value,comparator)
-{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(){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);}
-String.sprintf=function(format,var_arg)
-{return String.vsprintf(format,Array.prototype.slice.call(arguments,1));}
-String.tokenizeFormatString=function(format,formatters)
-{var tokens=[];var substitutionIndex=0;function addStringToken(str)
-{tokens.push({type:"string",value:str});}
-function addSpecifierToken(specifier,precision,substitutionIndex)
-{tokens.push({type:"specifier",specifier:specifier,precision:precision,substitutionIndex:substitutionIndex});}
-function isDigit(c)
-{return!!/[0-9]/.exec(c);}
-var index=0;for(var precentIndex=format.indexOf("%",index);precentIndex!==-1;precentIndex=format.indexOf("%",index)){addStringToken(format.substring(index,precentIndex));index=precentIndex+1;if(isDigit(format[index])){var number=parseInt(format.substring(index),10);while(isDigit(format[index]))
-++index;if(number>0&&format[index]==="$"){substitutionIndex=(number-1);++index;}}
-var precision=-1;if(format[index]==="."){++index;precision=parseInt(format.substring(index),10);if(isNaN(precision))
-precision=0;while(isDigit(format[index]))
-++index;}
-if(!(format[index]in formatters)){addStringToken(format.substring(precentIndex,index+1));++index;continue;}
-addSpecifierToken(format[index],precision,substitutionIndex);++substitutionIndex;++index;}
-addStringToken(format.substring(index));return tokens;}
-String.standardFormatters={d:function(substitution)
-{return!isNaN(substitution)?substitution:0;},f:function(substitution,token)
-{if(substitution&&token.precision>-1)
-substitution=substitution.toFixed(token.precision);return!isNaN(substitution)?substitution:(token.precision>-1?Number(0).toFixed(token.precision):0);},s:function(substitution)
-{return substitution;}}
-String.vsprintf=function(format,substitutions)
-{return String.format(format,substitutions,String.standardFormatters,"",function(a,b){return a+b;}).formattedResult;}
-String.format=function(format,substitutions,formatters,initialValue,append)
-{if(!format||!substitutions||!substitutions.length)
-return{formattedResult:append(initialValue,format),unusedSubstitutions:substitutions};function prettyFunctionName()
-{return"String.format(\""+format+"\", \""+substitutions.join("\", \"")+"\")";}
-function warn(msg)
-{console.warn(prettyFunctionName()+": "+msg);}
-function error(msg)
-{console.error(prettyFunctionName()+": "+msg);}
-var result=initialValue;var tokens=String.tokenizeFormatString(format,formatters);var usedSubstitutionIndexes={};for(var i=0;i<tokens.length;++i){var token=tokens[i];if(token.type==="string"){result=append(result,token.value);continue;}
-if(token.type!=="specifier"){error("Unknown token type \""+token.type+"\" found.");continue;}
-if(token.substitutionIndex>=substitutions.length){error("not enough substitution arguments. Had "+substitutions.length+" but needed "+(token.substitutionIndex+1)+", so substitution was skipped.");result=append(result,"%"+(token.precision>-1?token.precision:"")+token.specifier);continue;}
-usedSubstitutionIndexes[token.substitutionIndex]=true;if(!(token.specifier in formatters)){warn("unsupported format character \u201C"+token.specifier+"\u201D. Treating as a string.");result=append(result,substitutions[token.substitutionIndex]);continue;}
-result=append(result,formatters[token.specifier](substitutions[token.substitutionIndex],token));}
-var unusedSubstitutions=[];for(var i=0;i<substitutions.length;++i){if(i in usedSubstitutionIndexes)
-continue;unusedSubstitutions.push(substitutions[i]);}
-return{formattedResult:result,unusedSubstitutions:unusedSubstitutions};}
-function createSearchRegex(query,caseSensitive,isRegex)
-{var regexFlags=caseSensitive?"g":"gi";var regexObject;if(isRegex){try{regexObject=new RegExp(query,regexFlags);}catch(e){}}
-if(!regexObject)
-regexObject=createPlainTextSearchRegex(query,regexFlags);return regexObject;}
-function createPlainTextSearchRegex(query,flags)
-{var regexSpecialCharacters=String.regexSpecialCharacters();var regex="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(regexSpecialCharacters.indexOf(c)!=-1)
-regex+="\\";regex+=c;}
-return new RegExp(regex,flags||"");}
-function countRegexMatches(regex,content)
-{var text=content;var result=0;var match;while(text&&(match=regex.exec(text))){if(match[0].length>0)
-++result;text=text.substring(match.index+1);}
-return result;}
-function numberToStringWithSpacesPadding(value,symbolsCount)
-{var numberString=value.toString();var paddingLength=Math.max(0,symbolsCount-numberString.length);var paddingString=Array(paddingLength+1).join("\u00a0");return paddingString+numberString;}
-var createObjectIdentifier=function()
-{return"_"+ ++createObjectIdentifier._last;}
-createObjectIdentifier._last=0;var Set=function()
-{this._set={};this._size=0;}
-Set.prototype={add:function(item)
-{var objectIdentifier=item.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();item.__identifier=objectIdentifier;}
-if(!this._set[objectIdentifier])
-++this._size;this._set[objectIdentifier]=item;},remove:function(item)
-{if(this._set[item.__identifier]){--this._size;delete this._set[item.__identifier];return true;}
-return false;},items:function()
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._set)
-result[i++]=this._set[objectIdentifier];return result;},hasItem:function(item)
-{return!!this._set[item.__identifier];},size:function()
-{return this._size;},clear:function()
-{this._set={};this._size=0;}}
-var Map=function()
-{this._map={};this._size=0;}
-Map.prototype={put:function(key,value)
-{var objectIdentifier=key.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();key.__identifier=objectIdentifier;}
-if(!this._map[objectIdentifier])
-++this._size;this._map[objectIdentifier]=[key,value];},remove:function(key)
-{var result=this._map[key.__identifier];if(!result)
-return undefined;--this._size;delete this._map[key.__identifier];return result[1];},keys:function()
-{return this._list(0);},values:function()
-{return this._list(1);},_list:function(index)
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._map)
-result[i++]=this._map[objectIdentifier][index];return result;},get:function(key)
-{var entry=this._map[key.__identifier];return entry?entry[1]:undefined;},contains:function(key)
-{var entry=this._map[key.__identifier];return!!entry;},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;}}
-var StringMap=function()
-{this._map={};this._size=0;}
-StringMap.prototype={put:function(key,value)
-{if(key==="__proto__"){if(!this._hasProtoKey){++this._size;this._hasProtoKey=true;}
-this._protoValue=value;return;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-++this._size;this._map[key]=value;},remove:function(key)
-{var result;if(key==="__proto__"){if(!this._hasProtoKey)
-return undefined;--this._size;delete this._hasProtoKey;result=this._protoValue;delete this._protoValue;return result;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;--this._size;result=this._map[key];delete this._map[key];return result;},keys:function()
-{var result=Object.keys(this._map)||[];if(this._hasProtoKey)
-result.push("__proto__");return result;},values:function()
-{var result=Object.values(this._map);if(this._hasProtoKey)
-result.push(this._protoValue);return result;},get:function(key)
-{if(key==="__proto__")
-return this._protoValue;if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;return this._map[key];},contains:function(key)
-{var result;if(key==="__proto__")
-return this._hasProtoKey;return Object.prototype.hasOwnProperty.call(this._map,key);},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;delete this._hasProtoKey;delete this._protoValue;}}
-function loadXHR(url,async,callback)
-{function onReadyStateChanged()
-{if(xhr.readyState!==XMLHttpRequest.DONE)
-return;if(xhr.status===200){callback(xhr.responseText);return;}
-callback(null);}
-var xhr=new XMLHttpRequest();xhr.open("GET",url,async);if(async)
-xhr.onreadystatechange=onReadyStateChanged;xhr.send(null);if(!async){if(xhr.status===200)
-return xhr.responseText;return null;}
-return null;}
-function StringPool()
-{this.reset();}
-StringPool.prototype={intern:function(string)
-{if(string==="__proto__")
-return"__proto__";var result=this._strings[string];if(result===undefined){this._strings[string]=string;result=string;}
-return result;},reset:function()
-{this._strings=Object.create(null);},internObjectStrings:function(obj,depthLimit)
-{if(typeof depthLimit!=="number")
-depthLimit=100;else if(--depthLimit<0)
-throw"recursion depth limit reached in StringPool.deepIntern(), perhaps attempting to traverse cyclical references?";for(var field in obj){switch(typeof obj[field]){case"string":obj[field]=this.intern(obj[field]);break;case"object":this.internObjectStrings(obj[field],depthLimit);break;}}}}
-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 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)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.createCallback() is called after CallbackBarrier.callWhenDone()");++this._pendingIncomingCallbacksCount;return this._incomingCallback.bind(this,userCallback);},callWhenDone:function(callback)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.callWhenDone() is called multiple times");this._outgoingCallback=callback;if(!this._pendingIncomingCallbacksCount)
-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 postMessageWrapper(message)
-{postMessage(message);}
-var dispatcher=new WebInspector.HeapSnapshotWorkerDispatcher(this,postMessageWrapper);addEventListener("message",dispatcher.dispatchMessage.bind(dispatcher),false);
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/addIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/addIcon.png
deleted file mode 100644 (file)
index f48f0ab..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/addIcon.png and /dev/null differ
index 254fd5b..50bad87 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/applicationCache.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/applicationCache.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/auditsIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/auditsIcon.png
new file mode 100644 (file)
index 0000000..ebeafdc
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/auditsIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index b1c0c19..9363960
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/back.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/back.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2.png
deleted file mode 100644 (file)
index 6d87745..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2_2x.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2_2x.png
deleted file mode 100644 (file)
index f77370d..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpoint2_2x.png and /dev/null differ
index f15e02f..0b1b550 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointBorder.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointBorder.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2.png
deleted file mode 100644 (file)
index 87bbc0e..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2_2x.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2_2x.png
deleted file mode 100644 (file)
index e2aa575..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditional2_2x.png and /dev/null differ
index 4bd5806..430e37e 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalBorder.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalBorder.png differ
index 897b7a0..b4a5030 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalCounterBorder.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointConditionalCounterBorder.png differ
index 0b3ea14..8b77b61 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointCounterBorder.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointCounterBorder.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsActivateButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsActivateButtonGlyph.png
new file mode 100644 (file)
index 0000000..ce49aac
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsActivateButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsDeactivateButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsDeactivateButtonGlyph.png
new file mode 100644 (file)
index 0000000..5c5fcf6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/breakpointsDeactivateButtonGlyph.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 816a4ec..8349908
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/checker.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/checker.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/clearConsoleButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/clearConsoleButtonGlyph.png
new file mode 100755 (executable)
index 0000000..b1f9465
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/clearConsoleButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/closeButtons.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/closeButtons.png
new file mode 100755 (executable)
index 0000000..28158a4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/closeButtons.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleButtonGlyph.png
new file mode 100755 (executable)
index 0000000..d10d43c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleIcon.png
new file mode 100644 (file)
index 0000000..94ffa95
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/consoleIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 846db58..90c3c15
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/cookie.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/cookie.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 39a8506..339efa6
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/database.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/database.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 5508174..3718708
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/databaseTable.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/databaseTable.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerContinue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerContinue.png
new file mode 100755 (executable)
index 0000000..d90a855
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerContinue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerPause.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerPause.png
new file mode 100755 (executable)
index 0000000..97f958a
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerPause.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepInto.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepInto.png
new file mode 100755 (executable)
index 0000000..277f126
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepInto.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOut.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOut.png
new file mode 100755 (executable)
index 0000000..3032e32
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOut.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOver.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOver.png
new file mode 100755 (executable)
index 0000000..7d47245
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/debuggerStepOver.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/deleteIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/deleteIcon.png
deleted file mode 100644 (file)
index f0dd0db..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/deleteIcon.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDown.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDown.png
new file mode 100755 (executable)
index 0000000..cffc835
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDown.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownBlack.png
new file mode 100755 (executable)
index 0000000..4b49c13
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownWhite.png
new file mode 100755 (executable)
index 0000000..aebae12
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallDownWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRight.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRight.png
new file mode 100755 (executable)
index 0000000..a3102ea
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRight.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightBlack.png
new file mode 100755 (executable)
index 0000000..2c45859
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDown.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDown.png
new file mode 100755 (executable)
index 0000000..035c069
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDown.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownBlack.png
new file mode 100755 (executable)
index 0000000..86f67bd
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownWhite.png
new file mode 100755 (executable)
index 0000000..972d794
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightDownWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightWhite.png
new file mode 100755 (executable)
index 0000000..a10168f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/disclosureTriangleSmallRightWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/dockButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/dockButtonGlyph.png
new file mode 100755 (executable)
index 0000000..7052f4b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/dockButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/domain.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/domain.png
deleted file mode 100644 (file)
index 68c75f3..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/domain.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/elementsIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/elementsIcon.png
new file mode 100755 (executable)
index 0000000..fde3db9
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/elementsIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableOutlineButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableOutlineButtonGlyph.png
new file mode 100755 (executable)
index 0000000..85e0bd6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableOutlineButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableSolidButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableSolidButtonGlyph.png
new file mode 100755 (executable)
index 0000000..25b2e96
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/enableSolidButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorIcon.png
new file mode 100755 (executable)
index 0000000..c697263
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorMediumIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorMediumIcon.png
new file mode 100755 (executable)
index 0000000..6ca32bb
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorMediumIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorRedDot.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorRedDot.png
new file mode 100644 (file)
index 0000000..6f0b164
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/errorRedDot.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/excludeButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/excludeButtonGlyph.png
new file mode 100755 (executable)
index 0000000..5128576
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/excludeButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/fileSystem.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/fileSystem.png
deleted file mode 100644 (file)
index f801ce6..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/fileSystem.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/focusButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/focusButtonGlyph.png
new file mode 100755 (executable)
index 0000000..b71807c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/focusButtonGlyph.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 843392b..ad70f3e
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/forward.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/forward.png differ
index e17c829..0d1953c 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/frame.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/frame.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/gearButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/gearButtonGlyph.png
new file mode 100644 (file)
index 0000000..19659c9
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/gearButtonGlyph.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 6b77999..6cbefb7
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeader.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeader.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 9a64b7c..1153506
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderPressed.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderPressed.png differ
old mode 100644 (file)
new mode 100755 (executable)
index f7d615c..71d5af6
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelected.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelected.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 75d37fb..7047dbe
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelectedPressed.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/glossyHeaderSelectedPressed.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/goArrow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/goArrow.png
new file mode 100755 (executable)
index 0000000..f318a56
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/goArrow.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 29fc042..6426dbd
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutLeft.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutLeft.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 6c56a2b..8c87eae
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutRight.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/graphLabelCalloutRight.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDB.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDB.png
deleted file mode 100644 (file)
index d9b3c02..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDB.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBIndex.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBIndex.png
deleted file mode 100644 (file)
index b58959c..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBIndex.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBObjectStore.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBObjectStore.png
deleted file mode 100644 (file)
index ce2396b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/indexedDBObjectStore.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/largerResourcesButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/largerResourcesButtonGlyph.png
new file mode 100755 (executable)
index 0000000..71256d6
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/largerResourcesButtonGlyph.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 003ac5d..44a3019
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/localStorage.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/localStorage.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/namedFlowOverflow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/namedFlowOverflow.png
deleted file mode 100644 (file)
index f966b1a..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/namedFlowOverflow.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls.png
deleted file mode 100644 (file)
index c314171..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls_2x.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls_2x.png
deleted file mode 100644 (file)
index ae3f51f..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/navigationControls_2x.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/networkIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/networkIcon.png
new file mode 100644 (file)
index 0000000..ba10bba
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/networkIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/nodeSearchButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/nodeSearchButtonGlyph.png
new file mode 100755 (executable)
index 0000000..faf5df2
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/nodeSearchButtonGlyph.png differ
index ff25b0f..f1c0047 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneAddButtons.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneAddButtons.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrow.png
new file mode 100755 (executable)
index 0000000..d55b865
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrow.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrowActive.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrowActive.png
new file mode 100755 (executable)
index 0000000..ef3f259
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneBottomGrowActive.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneElementStateButtons.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneElementStateButtons.png
deleted file mode 100644 (file)
index af8dac0..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneElementStateButtons.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneFilterButtons.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneFilterButtons.png
deleted file mode 100644 (file)
index 6c52820..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneFilterButtons.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneGrowHandleLine.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneGrowHandleLine.png
new file mode 100755 (executable)
index 0000000..4eaf61b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneGrowHandleLine.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneRefreshButtons.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneRefreshButtons.png
deleted file mode 100644 (file)
index 92ff209..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneRefreshButtons.png and /dev/null differ
old mode 100644 (file)
new mode 100755 (executable)
index cb4f090..36a6244
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneSettingsButtons.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/paneSettingsButtons.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/pauseOnExceptionButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/pauseOnExceptionButtonGlyph.png
new file mode 100755 (executable)
index 0000000..c3cec5f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/pauseOnExceptionButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/percentButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/percentButtonGlyph.png
new file mode 100755 (executable)
index 0000000..0ace3b7
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/percentButtonGlyph.png differ
index 8b98caf..ccefa16 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverArrows.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverArrows.png differ
index 5ebac2b..f20c988 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverBackground.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/popoverBackground.png differ
old mode 100644 (file)
new mode 100755 (executable)
index ff78cb4..44616d4
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileGroupIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileGroupIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index c0c4600..8008f9b
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index e5c4ad5..7935520
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileSmallIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profileSmallIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesIcon.png
new file mode 100755 (executable)
index 0000000..ecd5b04
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesSilhouette.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesSilhouette.png
new file mode 100755 (executable)
index 0000000..42bb966
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/profilesSilhouette.png differ
index 10b0250..fed2f3e 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/programCounterBorder.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/programCounterBorder.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 5d50890..609878f
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/radioDot.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/radioDot.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordButtonGlyph.png
new file mode 100755 (executable)
index 0000000..bfdad1a
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordToggledButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordToggledButtonGlyph.png
new file mode 100755 (executable)
index 0000000..2c22f87
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/recordToggledButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionEmpty.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionEmpty.png
deleted file mode 100644 (file)
index ed64c22..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionEmpty.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionFit.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionFit.png
deleted file mode 100644 (file)
index 90d4d50..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionFit.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionOverset.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionOverset.png
deleted file mode 100644 (file)
index 0738f1b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/regionOverset.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/reloadButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/reloadButtonGlyph.png
new file mode 100755 (executable)
index 0000000..28e047a
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/reloadButtonGlyph.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 18828d0..aead6a7
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceCSSIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceCSSIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index fdc10e4..1683a09
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 64d9735..468ced9
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIconSmall.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceDocumentIconSmall.png differ
old mode 100644 (file)
new mode 100755 (executable)
index c1b7218..9ef6ed0
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceJSIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourceJSIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 8c82a4c..0ed37b6
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 0349c0d..0fa967d
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIconSmall.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcePlainIconSmall.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesIcon.png
new file mode 100755 (executable)
index 0000000..982424d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesSizeGraphIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesSizeGraphIcon.png
new file mode 100755 (executable)
index 0000000..e60dbe5
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesSizeGraphIcon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 87de550..c6953e9
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesTimeGraphIcon.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/resourcesTimeGraphIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsIcon.png
new file mode 100755 (executable)
index 0000000..213b31e
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsSilhouette.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsSilhouette.png
new file mode 100755 (executable)
index 0000000..206396f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/scriptsSilhouette.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchNext.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchNext.png
deleted file mode 100644 (file)
index 69e519e..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchNext.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchPrev.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchPrev.png
deleted file mode 100644 (file)
index 733d40b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchPrev.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBlue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBlue.png
new file mode 100755 (executable)
index 0000000..9c990f4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBlue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBrightBlue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBrightBlue.png
new file mode 100755 (executable)
index 0000000..b1d8055
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallBrightBlue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallGray.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallGray.png
new file mode 100755 (executable)
index 0000000..4f3c068
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallGray.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallWhite.png
new file mode 100755 (executable)
index 0000000..85f430d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/searchSmallWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segment.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segment.png
new file mode 100755 (executable)
index 0000000..759266e
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segment.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentChromium.png
new file mode 100755 (executable)
index 0000000..f4248e1
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentEnd.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentEnd.png
new file mode 100755 (executable)
index 0000000..72672ff
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentEnd.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHover.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHover.png
new file mode 100755 (executable)
index 0000000..c5017f4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHover.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverChromium.png
new file mode 100755 (executable)
index 0000000..0a743d9
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEnd.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEnd.png
new file mode 100755 (executable)
index 0000000..d51363d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEnd.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEndChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEndChromium.png
new file mode 100755 (executable)
index 0000000..cf62072
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentHoverEndChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelected.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelected.png
new file mode 100755 (executable)
index 0000000..c92f584
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelected.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedChromium.png
new file mode 100755 (executable)
index 0000000..a1f7251
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEnd.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEnd.png
new file mode 100755 (executable)
index 0000000..be5e085
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEnd.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEndChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEndChromium.png
new file mode 100755 (executable)
index 0000000..07641db
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/segmentSelectedEndChromium.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 732536f..4d50e35
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/sessionStorage.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/sessionStorage.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove.png
deleted file mode 100644 (file)
index 315daab..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove_2x.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove_2x.png
deleted file mode 100644 (file)
index 32eca10..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/settingsListRemove_2x.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActive.gif b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActive.gif
deleted file mode 100644 (file)
index b75745c..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActive.gif and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActiveSelected.gif b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActiveSelected.gif
deleted file mode 100644 (file)
index 1ffb18b..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerActiveSelected.gif and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactive.gif b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactive.gif
deleted file mode 100644 (file)
index 309cca0..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactive.gif and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactiveSelected.gif b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactiveSelected.gif
deleted file mode 100644 (file)
index 40bc274..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/spinnerInactiveSelected.gif and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDimple.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDimple.png
new file mode 100755 (executable)
index 0000000..584ffd4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDimple.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDividerBackground.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDividerBackground.png
new file mode 100755 (executable)
index 0000000..1120a7f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/splitviewDividerBackground.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackground.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackground.png
new file mode 100755 (executable)
index 0000000..b466a49
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackground.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackgroundChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackgroundChromium.png
new file mode 100755 (executable)
index 0000000..7a760c1
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBackgroundChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackground.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackground.png
new file mode 100755 (executable)
index 0000000..fb5c9e4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackground.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackgroundChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackgroundChromium.png
new file mode 100755 (executable)
index 0000000..e3bc944
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarBottomBackgroundChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs.png
deleted file mode 100644 (file)
index 9abb072..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs2x.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs2x.png
deleted file mode 100644 (file)
index 18d1cf5..0000000
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonGlyphs2x.png and /dev/null differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtons.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtons.png
new file mode 100755 (executable)
index 0000000..e8090cb
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtons.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonsChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonsChromium.png
new file mode 100755 (executable)
index 0000000..136d5a8
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarButtonsChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButton.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButton.png
new file mode 100755 (executable)
index 0000000..9b3abdd
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButton.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonChromium.png
new file mode 100755 (executable)
index 0000000..5ff61d9
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonChromium.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelected.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelected.png
new file mode 100755 (executable)
index 0000000..8189c43
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelected.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelectedChromium.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelectedChromium.png
new file mode 100755 (executable)
index 0000000..3c0aeec
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarMenuButtonSelectedChromium.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 674b895..56deeab
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerHorizontal.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerHorizontal.png differ
old mode 100644 (file)
new mode 100755 (executable)
index bf84d1e..7fc1452
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerVertical.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/statusbarResizerVertical.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/successGreenDot.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/successGreenDot.png
new file mode 100644 (file)
index 0000000..8b9319c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/successGreenDot.png differ
index 492c53f..a6ee561 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveHoriz.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveHoriz.png differ
index 96d0745..a3eabe8 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveVert.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbActiveVert.png differ
index caed321..c16559a 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoriz.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoriz.png differ
index 6942e23..0fe8d6a 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverHoriz.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverHoriz.png differ
index 125bf79..30e315a 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverVert.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbHoverVert.png differ
index b90e94a..61fbc06 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbVert.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/thumbVert.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarBlue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarBlue.png
new file mode 100644 (file)
index 0000000..22641b5
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarBlue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGray.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGray.png
new file mode 100644 (file)
index 0000000..f66cf43
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGray.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGreen.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGreen.png
new file mode 100644 (file)
index 0000000..cc59082
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarGreen.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarOrange.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarOrange.png
new file mode 100644 (file)
index 0000000..e5ae6f5
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarOrange.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarPurple.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarPurple.png
new file mode 100644 (file)
index 0000000..f891252
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarPurple.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarRed.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarRed.png
new file mode 100644 (file)
index 0000000..b850037
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarRed.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarYellow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarYellow.png
new file mode 100644 (file)
index 0000000..2b3e9a7
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineBarYellow.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineCheckmarks.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineCheckmarks.png
new file mode 100644 (file)
index 0000000..9afa9bb
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineCheckmarks.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineDots.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineDots.png
new file mode 100644 (file)
index 0000000..e9ba4d3
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineDots.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillBlue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillBlue.png
new file mode 100755 (executable)
index 0000000..c7c273b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillBlue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGray.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGray.png
new file mode 100755 (executable)
index 0000000..9ff37ef
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGray.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGreen.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGreen.png
new file mode 100755 (executable)
index 0000000..cc5a8f3
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillGreen.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillOrange.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillOrange.png
new file mode 100755 (executable)
index 0000000..08a81e4
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillOrange.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillPurple.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillPurple.png
new file mode 100755 (executable)
index 0000000..565a05c
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillPurple.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillRed.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillRed.png
new file mode 100755 (executable)
index 0000000..c3a1b9b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillRed.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillYellow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillYellow.png
new file mode 100755 (executable)
index 0000000..780045b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineHollowPillYellow.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineIcon.png
new file mode 100755 (executable)
index 0000000..09bcf30
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelineIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillBlue.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillBlue.png
new file mode 100755 (executable)
index 0000000..c897faa
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillBlue.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGray.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGray.png
new file mode 100755 (executable)
index 0000000..2128896
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGray.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGreen.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGreen.png
new file mode 100755 (executable)
index 0000000..9b66125
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillGreen.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillOrange.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillOrange.png
new file mode 100755 (executable)
index 0000000..dd944fb
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillOrange.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillPurple.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillPurple.png
new file mode 100755 (executable)
index 0000000..21b96f7
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillPurple.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillRed.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillRed.png
new file mode 100755 (executable)
index 0000000..f5e213b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillRed.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillYellow.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillYellow.png
new file mode 100755 (executable)
index 0000000..ae2a5a2
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/timelinePillYellow.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 505daf2..bd681f1
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/toolbarItemSelected.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/toolbarItemSelected.png differ
index d5356d3..517d306 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackHoriz.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackHoriz.png differ
index e9eddfb..d49620d 100644 (file)
Binary files a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackVert.png and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/trackVert.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleBlack.png
new file mode 100755 (executable)
index 0000000..0821112
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleWhite.png
new file mode 100755 (executable)
index 0000000..1667b51
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeDownTriangleWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleBlack.png
new file mode 100755 (executable)
index 0000000..90de820
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleWhite.png
new file mode 100755 (executable)
index 0000000..2b6a82f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeRightTriangleWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleBlack.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleBlack.png
new file mode 100755 (executable)
index 0000000..ef69dbc
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleBlack.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleWhite.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleWhite.png
new file mode 100755 (executable)
index 0000000..43ce4be
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/treeUpTriangleWhite.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/undockButtonGlyph.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/undockButtonGlyph.png
new file mode 100755 (executable)
index 0000000..eed2b65
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/undockButtonGlyph.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputIcon.png
new file mode 100755 (executable)
index 0000000..325023f
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputPreviousIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputPreviousIcon.png
new file mode 100755 (executable)
index 0000000..068d572
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputPreviousIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputResultIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputResultIcon.png
new file mode 100755 (executable)
index 0000000..794a5ca
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/userInputResultIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningIcon.png
new file mode 100755 (executable)
index 0000000..d5e4c82
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningMediumIcon.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningMediumIcon.png
new file mode 100755 (executable)
index 0000000..291e111
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningMediumIcon.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningOrangeDot.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningOrangeDot.png
new file mode 100644 (file)
index 0000000..8c8b635
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningOrangeDot.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningsErrors.png b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningsErrors.png
new file mode 100755 (executable)
index 0000000..878b593
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/Images/warningsErrors.png differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/LayersPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/LayersPanel.js
deleted file mode 100644 (file)
index b3d3cb2..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-WebInspector.LayerTreeModel=function()
-{WebInspector.Object.call(this);this._layersById={};this._lastPaintRectByLayerId={};InspectorBackend.registerLayerTreeDispatcher(new WebInspector.LayerTreeDispatcher(this));WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._onDocumentUpdated,this);}
-WebInspector.LayerTreeModel.Events={LayerTreeChanged:"LayerTreeChanged",LayerPainted:"LayerPainted",}
-WebInspector.LayerTreeModel.prototype={disable:function()
-{if(!this._enabled)
-return;this._enabled=false;LayerTreeAgent.disable();},enable:function(callback)
-{if(this._enabled)
-return;this._enabled=true;WebInspector.domAgent.requestDocument(onDocumentAvailable.bind(this));function onDocumentAvailable()
-{if(!this._enabled)
-return;LayerTreeAgent.enable();}},root:function()
-{return this._root;},contentRoot:function()
-{return this._contentRoot;},forEachLayer:function(callback,root)
-{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]||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())
-this._contentRoot=layer;var lastPaintRect=this._lastPaintRectByLayerId[layerId];if(lastPaintRect)
-layer._lastPaintRect=lastPaintRect;if(parentId){var parent=this._layersById[parentId];if(!parent)
-console.assert(parent,"missing parent "+parentId+" for layer "+layerId);parent.addChild(layer);}else{if(this._root)
-console.assert(false,"Multiple root layers");this._root=layer;}}
-this._lastPaintRectByLayerId={};},_layerTreeChanged:function(payload)
-{this._root=null;this._contentRoot=null;if(payload)
-this._repopulate(payload);this.dispatchEventToListeners(WebInspector.LayerTreeModel.Events.LayerTreeChanged);},_layerPainted:function(layerId,clipRect)
-{var layer=this._layersById[layerId];if(!layer){this._lastPaintRectByLayerId[layerId]=clipRect;return;}
-layer._didPaint(clipRect);this.dispatchEventToListeners(WebInspector.LayerTreeModel.Events.LayerPainted,layer);},_onDocumentUpdated:function()
-{this.disable();this.enable();},__proto__:WebInspector.Object.prototype}
-WebInspector.Layer=function(layerPayload)
-{this._reset(layerPayload);}
-WebInspector.Layer.prototype={id:function()
-{return this._layerPayload.layerId;},parentId:function()
-{return this._layerPayload.parentLayerId;},parent:function()
-{return this._parent;},isRoot:function()
-{return!this.parentId();},children:function()
-{return this._children;},addChild:function(child)
-{if(child._parent)
-console.assert(false,"Child already has a parent");this._children.push(child);child._parent=this;},nodeId:function()
-{return this._layerPayload.nodeId;},nodeIdForSelfOrAncestor:function()
-{for(var layer=this;layer;layer=layer._parent){var nodeId=layer._layerPayload.nodeId;if(nodeId)
-return nodeId;}
-return null;},offsetX:function()
-{return this._layerPayload.offsetX;},offsetY:function()
-{return this._layerPayload.offsetY;},width:function()
-{return this._layerPayload.width;},height:function()
-{return this._layerPayload.height;},transform:function()
-{return this._layerPayload.transform;},anchorPoint:function()
-{return[this._layerPayload.anchorX||0,this._layerPayload.anchorY||0,this._layerPayload.anchorZ||0,];},invisible:function()
-{return this._layerPayload.invisible;},paintCount:function()
-{return this._paintCount||this._layerPayload.paintCount;},lastPaintRect:function()
-{return this._lastPaintRect;},requestCompositingReasons:function(callback)
-{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)
-{this._layerTreeModel._layerTreeChanged(payload);},layerPainted:function(layerId,clipRect)
-{this._layerTreeModel._layerPainted(layerId,clipRect);}};WebInspector.LayerTree=function(model,treeOutline)
-{WebInspector.Object.call(this);this._model=model;this._treeOutline=treeOutline;this._treeOutline.childrenListElement.addEventListener("mousemove",this._onMouseMove.bind(this),false);this._treeOutline.childrenListElement.addEventListener("mouseout",this._onMouseMove.bind(this),false);this._treeOutline.childrenListElement.addEventListener("contextmenu",this._onContextMenu.bind(this),true);this._model.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged,this._update.bind(this));this._lastHoveredNode=null;}
-WebInspector.LayerTree.Events={LayerHovered:"LayerHovered",LayerSelected:"LayerSelected"}
-WebInspector.LayerTree.prototype={selectLayer:function(layer)
-{this.hoverLayer(null);var node=layer&&this._treeOutline.getCachedTreeElement(layer);if(node)
-node.revealAndSelect(true);else if(this._treeOutline.selectedTreeElement)
-this._treeOutline.selectedTreeElement.deselect();},hoverLayer:function(layer)
-{var node=layer&&this._treeOutline.getCachedTreeElement(layer);if(node===this._lastHoveredNode)
-return;if(this._lastHoveredNode)
-this._lastHoveredNode.setHovered(false);if(node)
-node.setHovered(true);this._lastHoveredNode=node;},_update:function()
-{var seenLayers={};function updateLayer(layer)
-{var id=layer.id();if(seenLayers[id])
-console.assert(false,"Duplicate layer id: "+id);seenLayers[id]=true;var node=this._treeOutline.getCachedTreeElement(layer);var parent=layer===this._model.contentRoot()?this._treeOutline:this._treeOutline.getCachedTreeElement(layer.parent());if(!parent)
-console.assert(false,"Parent is not in the tree");if(!node){node=new WebInspector.LayerTreeElement(this,layer);parent.appendChild(node);}else{var oldParentId=node.parent.representedObject&&node.parent.representedObject.id();if(oldParentId!==layer.parentId()){(node.parent||this._treeOutline).removeChild(node);parent.appendChild(node);}
-node._update();}}
-if(this._model.contentRoot())
-this._model.forEachLayer(updateLayer.bind(this),this._model.contentRoot());for(var node=(this._treeOutline.children[0]);node&&!node.root;){if(seenLayers[node.representedObject.id()]){node=node.traverseNextTreeElement(false);}else{var nextNode=node.nextSibling||node.parent;node.parent.removeChild(node);if(node===this._lastHoveredNode)
-this._lastHoveredNode=null;node=nextNode;}}},_onMouseMove:function(event)
-{var node=this._treeOutline.treeElementFromPoint(event.pageX,event.pageY);if(node===this._lastHoveredNode)
-return;this.dispatchEventToListeners(WebInspector.LayerTree.Events.LayerHovered,node&&node.representedObject);},_selectedNodeChanged:function(node)
-{var layer=(node.representedObject);this.dispatchEventToListeners(WebInspector.LayerTree.Events.LayerSelected,layer);},_onContextMenu:function(event)
-{var node=this._treeOutline.treeElementFromPoint(event.pageX,event.pageY);if(!node||!node.representedObject)
-return;var layer=(node.representedObject);if(!layer)
-return;var nodeId=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();},__proto__:WebInspector.Object.prototype}
-WebInspector.LayerTreeElement=function(tree,layer)
-{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):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("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",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.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);},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
-stylesheetTextNode.nodeValue=stylesheetContent;var element=this._elementForLayer(root);element.style.webkitTransform="scale3d("+this._scale+","+this._scale+","+this._scale+")";element.style.webkitTransformOrigin="";element.style.left=((this._clientWidth-root.width()*this._scale)>>1)+"px";element.style.top=((this._clientHeight-root.height()*this._scale)>>1)+"px";},_update:function()
-{if(!this.isShowing()){this._needsUpdate=true;return;}
-if(!this._model.contentRoot()){this._emptyView.show(this.element);this._rotatingContainerElement.removeChildren();return;}
-this._emptyView.detach();function updateLayer(layer)
-{this._updateLayerElement(this._elementForLayer(layer));}
-this._clientWidth=this.element.clientWidth;this._clientHeight=this.element.clientHeight;for(var layerId in this._elementsByLayerId){if(this._model.layerById(layerId))
-continue;this._elementsByLayerId[layerId].remove();delete this._elementsByLayerId[layerId];}
-this._scaleToFit();this._model.forEachLayer(updateLayer.bind(this),this._model.contentRoot());this._needsUpdate=false;},_onLayerPainted:function(event)
-{var layer=(event.data);this._updatePaintRect(this._elementForLayer(layer));},_elementForLayer:function(layer)
-{var element=this._elementsByLayerId[layer.id()];if(element){element.__layerDetails.layer=layer;return element;}
-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){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)";}
-element.style.backgroundColor=color;},_onMouseDown:function(event)
-{if(event.which!==1)
-return;this._setReferencePoint(event);},_setReferencePoint:function(event)
-{this._originX=event.clientX;this._originY=event.clientY;this._oldRotateX=this._rotateX;this._oldRotateY=this._rotateY;},_resetReferencePoint:function()
-{delete this._originX;delete this._originY;delete this._oldRotateX;delete this._oldRotateY;},_onMouseUp:function(event)
-{if(event.which!==1)
-return;this._resetReferencePoint();},_layerFromEventPoint:function(event)
-{var element=this.element.ownerDocument.elementFromPoint(event.pageX,event.pageY);if(!element)
-return null;element=element.enclosingNodeOrSelfWithClass("layer-container");return element&&element.__layerDetails&&element.__layerDetails.layer;},_onMouseMove:function(event)
-{if(!event.which){this.dispatchEventToListeners(WebInspector.Layers3DView.Events.LayerHovered,this._layerFromEventPoint(event));return;}
-if(event.which===1){if(typeof this._originX!=="number")
-this._setReferencePoint(event);this._rotateX=this._oldRotateX+(this._originY-event.clientY)/2;this._rotateY=this._oldRotateY-(this._originX-event.clientX)/4;this._rotatingContainerElement.style.webkitTransform="translateZ(10000px) rotateX("+this._rotateX+"deg) rotateY("+this._rotateY+"deg)";}},_onContextMenu:function(event)
-{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));},_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(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);},__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);},_onLayerSelected:function(event)
-{var layer=(event.data);this._selectLayer(layer);},_onLayerHovered:function(event)
-{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.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
-WebInspector.domAgent.hideDOMNodeHighlight();this._layerTree.hoverLayer(layer);this._layers3DView.hoverLayer(layer);},__proto__:WebInspector.Panel.prototype}
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/NetworkPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/NetworkPanel.js
deleted file mode 100644 (file)
index 544e358..0000000
+++ /dev/null
@@ -1,566 +0,0 @@
-WebInspector.RequestView=function(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)
-{if(request.type.isTextType())
-return true;if(request.type===WebInspector.resourceTypes.Other||request.hasErrorStatusCode())
-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.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;}
-WebInspector.NetworkItemView.prototype={wasShown:function()
-{WebInspector.TabbedPane.prototype.wasShown.call(this);this._selectTab();},_selectTab:function(tabId)
-{if(!tabId)
-tabId=WebInspector.settings.resourceViewTab.get();if(!this.selectTab(tabId)){this._isInFallbackSelection=true;this.selectTab("headers");delete this._isInFallbackSelection;}},_tabSelected:function(event)
-{if(!event.data.isUserGesture)
-return;WebInspector.settings.resourceViewTab.set(event.data.tabId);WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.NetworkRequestTabSelected,tab:event.data.tabId,url:this._request.url});},request:function()
-{return this._request;},__proto__:WebInspector.TabbedPane.prototype}
-WebInspector.RequestContentView=function(request)
-{WebInspector.RequestView.call(this,request);}
-WebInspector.RequestContentView.prototype={hasContent:function()
-{return true;},get innerView()
-{return this._innerView;},set innerView(innerView)
-{this._innerView=innerView;},wasShown:function()
-{this._ensureInnerViewShown();},_ensureInnerViewShown:function()
-{if(this._innerViewShowRequested)
-return;this._innerViewShowRequested=true;function callback(content)
-{this._innerViewShowRequested=false;this.contentLoaded();}
-this.request.requestContent(callback.bind(this));},contentLoaded:function()
-{},canHighlightPosition:function()
-{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.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;}
-if(!this._cookiesTable)
-this._buildCookiesTable();},willHide:function()
-{this._request.removeEventListener(WebInspector.NetworkRequest.Events.RequestHeadersChanged,this._refreshCookies,this);this._request.removeEventListener(WebInspector.NetworkRequest.Events.ResponseHeadersChanged,this._refreshCookies,this);},get _gotCookies()
-{return(this._request.requestCookies&&this._request.requestCookies.length)||(this._request.responseCookies&&this._request.responseCookies.length);},_buildCookiesTable:function()
-{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.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._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;}}}
-var div=document.createElement("div");div.className=className;if(errorDecoding)
-div.createChild("span","error-message").textContent=WebInspector.UIString("(unable to decode value)");else
-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);},_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)
-{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)
-{var treeElement=this._requestPayloadTreeElement;treeElement.removeChildren();var listItem=this._requestPayloadTreeElement.listItemElement;listItem.removeChildren();listItem.appendChild(document.createTextNode(this._requestPayloadTreeElement.title));function toggleViewSource(event)
-{treeElement._viewSource=!treeElement._viewSource;this._refreshRequestJSONPayload(parsedObject,sourceText);}
-listItem.appendChild(this._createViewSourceToggle(treeElement._viewSource,toggleViewSource.bind(this)));if(treeElement._viewSource){this._populateTreeElementWithSourceText(this._requestPayloadTreeElement,sourceText);}else{var object=WebInspector.RemoteObject.fromLocalObject(parsedObject);var section=new WebInspector.ObjectPropertiesSection(object,object.description);section.expand();section.editable=false;listItem.appendChild(section.element);}},_createViewSourceToggle:function(viewSource,handler)
-{var viewSourceToggleTitle=viewSource?WebInspector.UIString("view parsed"):WebInspector.UIString("view source");var viewSourceToggleButton=this._createToggleButton(viewSourceToggleTitle);viewSourceToggleButton.addEventListener("click",handler,false);return viewSourceToggleButton;},_toggleURLDecoding:function(event)
-{this._decodeRequestParameters=!this._decodeRequestParameters;this._refreshQueryString();this._refreshFormData();},_refreshRequestHeaders:function()
-{var treeElement=this._requestHeadersTreeElement;var headers=this._request.requestHeaders();headers=headers.slice();headers.sort(function(a,b){return a.name.toLowerCase().compareTo(b.name.toLowerCase())});var headersText=this._request.requestHeadersText();if(this._showRequestHeadersText&&headersText)
-this._refreshHeadersText(WebInspector.UIString("Request Headers"),headers.length,headersText,treeElement);else
-this._refreshHeaders(WebInspector.UIString("Request Headers"),headers,treeElement);if(headersText===undefined){var caution=WebInspector.UIString(" CAUTION: Provisional headers are shown.");treeElement.listItemElement.createChild("span","caution").textContent=caution;}
-if(headersText){var toggleButton=this._createHeadersToggleButton(this._showRequestHeadersText);toggleButton.addEventListener("click",this._toggleRequestHeadersText.bind(this),false);treeElement.listItemElement.appendChild(toggleButton);}
-this._refreshFormData();},_refreshResponseHeaders:function()
-{var treeElement=this._responseHeadersTreeElement;var headers=this._request.sortedResponseHeaders;var headersText=this._request.responseHeadersText;if(this._showResponseHeadersText)
-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.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(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.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.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.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;}}
-WebInspector.RequestJSONView.parseJSONP=function(text)
-{var start=text.indexOf("(");var end=text.lastIndexOf(")");if(start==-1||end==-1||end<start)
-return;var prefix=text.substring(0,start+1);var suffix=text.substring(end);text=text.substring(start+1,end);try{return new WebInspector.ParsedJSON(JSON.parse(text),prefix,suffix);}catch(e){return;}}
-WebInspector.RequestJSONView.prototype={hasContent:function()
-{return true;},wasShown:function()
-{this._initialize();},_initialize:function()
-{if(this._initialized)
-return;this._initialized=true;var obj=WebInspector.RemoteObject.fromLocalObject(this._parsedJSON.data);var title=this._parsedJSON.prefix+obj.description+this._parsedJSON.suffix;var section=new WebInspector.ObjectPropertiesSection(obj,title);section.expand();section.editable=false;this.element.appendChild(section.element);},__proto__:WebInspector.RequestView.prototype}
-WebInspector.ParsedJSON=function(data,prefix,suffix)
-{this.data=data;this.prefix=prefix;this.suffix=suffix;};WebInspector.RequestPreviewView=function(request,responseView)
-{WebInspector.RequestContentView.call(this,request);this._responseView=responseView;}
-WebInspector.RequestPreviewView.prototype={contentLoaded:function()
-{if(!this.request.content){if(!this._emptyView){this._emptyView=this._createEmptyView();this._emptyView.show(this.element);this.innerView=this._emptyView;}}else{if(this._emptyView){this._emptyView.detach();delete this._emptyView;}
-if(!this._previewView)
-this._previewView=this._createPreviewView();this._previewView.show(this.element);this.innerView=this._previewView;}},_createEmptyView:function()
-{return new WebInspector.EmptyView(WebInspector.UIString("This request has no preview available."));},_jsonView:function()
-{var parsedJSON=WebInspector.RequestJSONView.parseJSON(this.request.content);if(parsedJSON)
-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){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;}
-if(this.request.type===WebInspector.resourceTypes.XHR){var jsonView=this._jsonView();if(jsonView)
-return jsonView;}
-if(this.request.type===WebInspector.resourceTypes.XHR&&this.request.mimeType==="text/html"){var htmlView=this._htmlView();if(htmlView)
-return htmlView;}}
-if(this._responseView.sourceView)
-return this._responseView.sourceView;if(this.request.type===WebInspector.resourceTypes.Other)
-return this._createEmptyView();return WebInspector.RequestView.nonSourceViewForRequest(this.request);},__proto__:WebInspector.RequestContentView.prototype};WebInspector.RequestResponseView=function(request)
-{WebInspector.RequestContentView.call(this,request);}
-WebInspector.RequestResponseView._maxFormattedResourceSize=100000;WebInspector.RequestResponseView.prototype={get sourceView()
-{if(this._sourceView||!WebInspector.RequestView.hasTextContent(this.request))
-return this._sourceView;if(this.request.resourceSize>=WebInspector.RequestResponseView._maxFormattedResourceSize){this._sourceView=new WebInspector.ResourceSourceFrameFallback(this.request);return this._sourceView;}
-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.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;}
-if(this._emptyView){this._emptyView.detach();delete this._emptyView;}
-this._refresh();},willHide:function()
-{this._request.removeEventListener(WebInspector.NetworkRequest.Events.TimingChanged,this._refresh,this);},_refresh:function()
-{if(this._tableElement)
-this._tableElement.remove();this._tableElement=WebInspector.RequestTimingView.createTimingTable(this._request);this.element.appendChild(this._tableElement);},__proto__:WebInspector.View.prototype}
-WebInspector.RequestTimingView.createTimingTable=function(request)
-{var tableElement=document.createElement("table");tableElement.className="network-timing-table";var rows=[];function addRow(title,className,start,end)
-{var row={};row.title=title;row.className=className;row.start=start;row.end=end;rows.push(row);}
-var timing=request.timing;var blocking=timing.dnsStart>0?timing.dnsStart:timing.connectStart>0?timing.connectStart:timing.sendStart;if(blocking>0)
-addRow(WebInspector.UIString("Blocking"),"blocking",0,blocking);if(timing.proxyStart!==-1)
-addRow(WebInspector.UIString("Proxy"),"proxy",timing.proxyStart,timing.proxyEnd);if(timing.dnsStart!==-1)
-addRow(WebInspector.UIString("DNS Lookup"),"dns",timing.dnsStart,timing.dnsEnd);if(timing.connectStart!==-1)
-addRow(WebInspector.UIString("Connecting"),"connecting",timing.connectStart,timing.connectEnd);if(timing.sslStart!==-1)
-addRow(WebInspector.UIString("SSL"),"ssl",timing.sslStart,timing.sslEnd);addRow(WebInspector.UIString("Sending"),"sending",timing.sendStart,timing.sendEnd);addRow(WebInspector.UIString("Waiting"),"waiting",timing.sendEnd,timing.receiveHeadersEnd);addRow(WebInspector.UIString("Receiving"),"receiving",(request.responseReceivedTime-timing.requestTime)*1000,(request.endTime-timing.requestTime)*1000);const chartWidth=200;var total=(request.endTime-timing.requestTime)*1000;var scale=chartWidth/total;for(var i=0;i<rows.length;++i){var tr=document.createElement("tr");tableElement.appendChild(tr);var td=document.createElement("td");td.textContent=rows[i].title;tr.appendChild(td);td=document.createElement("td");td.width=chartWidth+"px";var row=document.createElement("div");row.className="network-timing-row";td.appendChild(row);var bar=document.createElement("span");bar.className="network-timing-bar "+rows[i].className;bar.style.left=Math.floor(scale*rows[i].start)+"px";bar.style.right=Math.floor(scale*(total-rows[i].end))+"px";bar.style.backgroundColor=rows[i].color;bar.textContent="\u200B";row.appendChild(bar);var title=document.createElement("span");title.className="network-timing-bar-title";if(total-rows[i].end<rows[i].start)
-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.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;}
-row.data=WebInspector.UIString("%s (Opcode %d%s)",opcodeMeaning,payload.opcode,(payload.mask?", mask":""));}
-var node=new WebInspector.DataGridNode(row,false);this._dataGrid.rootNode().appendChild(node);if(rowClass)
-node.element.classList.add("resource-websocket-row-"+rowClass);},refresh:function()
-{this._dataGrid.rootNode().removeChildren();var frames=this.resource.frames();for(var i=frames.length-1;i>=0;i--){this.appendFrame(frames[i]);}},show:function(parentElement,insertBefore)
-{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.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);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._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.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.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()
-{this._removeAllNodeHighlights();var columnIdentifier=this._dataGrid.sortColumnIdentifier();if(columnIdentifier==="timeline"){this._sortByTimeline();return;}
-var sortingFunction=this._sortingFunctions[columnIdentifier];if(!sortingFunction)
-return;this._dataGrid.sortNodes(sortingFunction,!this._dataGrid.isSortOrderAscending());this._timelineSortSelector.selectedIndex=0;this._updateOffscreenRows();this.searchCanceled();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.NetworkSort,column:columnIdentifier,sortOrder:this._dataGrid.sortOrder()});},_sortByTimeline:function()
-{this._removeAllNodeHighlights();var selectedIndex=this._timelineSortSelector.selectedIndex;if(!selectedIndex)
-selectedIndex=1;var selectedOption=this._timelineSortSelector[selectedIndex];var value=selectedOption.value;var sortingFunction=this._sortingFunctions[value];this._dataGrid.sortNodes(sortingFunction);this.calculator=this._calculators[value];if(this.calculator.startAtZero)
-this._timelineGrid.hideEventDividers();else
-this._timelineGrid.showEventDividers();this._dataGrid.markColumnAsSortedBy("timeline",WebInspector.DataGrid.Order.Ascending);this._updateOffscreenRows();},_createStatusBarItems:function()
-{this._progressBarContainer=document.createElement("div");this._progressBarContainer.className="status-bar-item";},_updateSummaryBar:function()
-{var requestsNumber=this._requests.length;if(!requestsNumber){if(this._summaryBarElement._isDisplayingWarning)
-return;this._summaryBarElement._isDisplayingWarning=true;this._summaryBarElement.removeChildren();this._summaryBarElement.createChild("div","warning-icon-small");var text=WebInspector.UIString("No requests captured. Reload the page to see detailed information on the network activity.");this._summaryBarElement.appendChild(document.createTextNode(text));this._summaryBarElement.title=text;return;}
-delete this._summaryBarElement._isDisplayingWarning;var transferSize=0;var selectedRequestsNumber=0;var selectedTransferSize=0;var baseTime=-1;var maxTime=-1;for(var i=0;i<this._requests.length;++i){var request=this._requests[i];var requestTransferSize=request.transferSize;transferSize+=requestTransferSize;if(!this._filteredOutRequests.get(request)){selectedRequestsNumber++;selectedTransferSize+=requestTransferSize;}
-if(request.url===WebInspector.inspectedPageURL)
-baseTime=request.startTime;if(request.endTime>maxTime)
-maxTime=request.endTime;}
-var text="";if(selectedRequestsNumber!==requestsNumber){text+=String.sprintf(WebInspector.UIString("%d / %d requests"),selectedRequestsNumber,requestsNumber);text+="  \u2758  "+String.sprintf(WebInspector.UIString("%s / %s transferred"),Number.bytesToString(selectedTransferSize),Number.bytesToString(transferSize));}else{text+=String.sprintf(WebInspector.UIString("%d requests"),requestsNumber);text+="  \u2758  "+String.sprintf(WebInspector.UIString("%s transferred"),Number.bytesToString(transferSize));}
-if(baseTime!==-1&&this._mainRequestLoadTime!==-1&&this._mainRequestDOMContentLoadedTime!==-1&&this._mainRequestDOMContentLoadedTime>baseTime){text+="  \u2758  "+String.sprintf(WebInspector.UIString("%s (load: %s, DOMContentLoaded: %s)"),Number.secondsToString(maxTime-baseTime),Number.secondsToString(this._mainRequestLoadTime-baseTime),Number.secondsToString(this._mainRequestDOMContentLoadedTime-baseTime));}
-this._summaryBarElement.textContent=text;this._summaryBarElement.title=text;},_scheduleRefresh:function()
-{if(this._needsRefresh)
-return;this._needsRefresh=true;if(this.isShowing()&&!this._refreshTimeout)
-this._refreshTimeout=setTimeout(this.refresh.bind(this),WebInspector.NetworkLogView._defaultRefreshDelay);},_updateDividersIfNeeded:function()
-{if(!this._dataGrid)
-return;var timelineColumn=this._dataGrid.columns.timeline;for(var i=0;i<this._dataGrid.resizers.length;++i){if(timelineColumn.ordinal===this._dataGrid.resizers[i].rightNeighboringColumnIndex){this._timelineGrid.element.style.left=this._dataGrid.resizers[i].style.left;}}
-var proceed=true;if(!this.isShowing()){this._scheduleRefresh();proceed=false;}else{this.calculator.setDisplayWindow(this._timelineGrid.dividersElement.clientWidth);proceed=this._timelineGrid.updateDividers(this.calculator);}
-if(!proceed)
-return;if(this.calculator.startAtZero||!this.calculator.computePercentageFromEventTime){return;}
-this._timelineGrid.removeEventDividers();if(this._mainRequestLoadTime!==-1){var percent=this.calculator.computePercentageFromEventTime(this._mainRequestLoadTime);var loadDivider=document.createElement("div");loadDivider.className="network-event-divider network-red-divider";var loadDividerPadding=document.createElement("div");loadDividerPadding.className="network-event-divider-padding";loadDividerPadding.title=WebInspector.UIString("Load event fired");loadDividerPadding.appendChild(loadDivider);loadDividerPadding.style.left=percent+"%";this._timelineGrid.addEventDivider(loadDividerPadding);}
-if(this._mainRequestDOMContentLoadedTime!==-1){var percent=this.calculator.computePercentageFromEventTime(this._mainRequestDOMContentLoadedTime);var domContentLoadedDivider=document.createElement("div");domContentLoadedDivider.className="network-event-divider network-blue-divider";var domContentLoadedDividerPadding=document.createElement("div");domContentLoadedDividerPadding.className="network-event-divider-padding";domContentLoadedDividerPadding.title=WebInspector.UIString("DOMContentLoaded event fired");domContentLoadedDividerPadding.appendChild(domContentLoadedDivider);domContentLoadedDividerPadding.style.left=percent+"%";this._timelineGrid.addEventDivider(domContentLoadedDividerPadding);}},_refreshIfNeeded:function()
-{if(this._needsRefresh)
-this.refresh();},_invalidateAllItems:function()
-{for(var i=0;i<this._requests.length;++i){var request=this._requests[i];this._staleRequests[request.requestId]=request;}},get calculator()
-{return this._calculator;},set calculator(x)
-{if(!x||this._calculator===x)
-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._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;}
-this._removeAllNodeHighlights();var wasScrolledToLastRow=this._dataGrid.isScrolledToLastRow();var boundariesChanged=false;if(this.calculator.updateBoundariesForEventTime){boundariesChanged=this.calculator.updateBoundariesForEventTime(this._mainRequestLoadTime)||boundariesChanged;boundariesChanged=this.calculator.updateBoundariesForEventTime(this._mainRequestDOMContentLoadedTime)||boundariesChanged;}
-for(var requestId in this._staleRequests){var request=this._staleRequests[requestId];var node=this._requestGridNode(request);if(!node){node=this._createRequestGridNode(request);this._dataGrid.rootNode().appendChild(node);}
-node.refreshRequest();this._applyFilter(node);if(this.calculator.updateBoundaries(request))
-boundariesChanged=true;if(!node.isFilteredOut())
-this._updateHighlightIfMatched(request);}
-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();},_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)
-{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)
-{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.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.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.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)
-{var stackTrace=request.initiator.stackTrace;var framesTable=document.createElement("table");for(var i=0;i<stackTrace.length;++i){var stackFrame=stackTrace[i];var row=document.createElement("tr");row.createChild("td").textContent=stackFrame.functionName||WebInspector.UIString("(anonymous function)");row.createChild("td").textContent=" @ ";row.createChild("td").appendChild(this._linkifier.linkifyLocation(stackFrame.url,stackFrame.lineNumber-1,stackFrame.columnNumber-1));framesTable.appendChild(row);}
-return framesTable;},_updateColumns:function()
-{var columnsVisibility=this._coulmnsVisibilitySetting.get();var detailedMode=!!this._detailedMode;for(var columnIdentifier in columnsVisibility){var visible=detailedMode&&columnsVisibility[columnIdentifier];this._dataGrid.setColumnVisible(columnIdentifier,visible);}
-this._dataGrid.setColumnVisible("timeline",detailedMode);this._dataGrid.applyColumnWeights();},_toggleColumnVisibility:function(columnIdentifier)
-{var columnsVisibility=this._coulmnsVisibilitySetting.get();columnsVisibility[columnIdentifier]=!columnsVisibility[columnIdentifier];this._coulmnsVisibilitySetting.set(columnsVisibility);this._updateColumns();},_getConfigurableColumnIDs:function()
-{if(this._configurableColumnIDs)
-return this._configurableColumnIDs;var columns=this._dataGrid.columns;function compare(id1,id2)
-{return columns[id1].title.compareTo(columns[id2].title);}
-var columnIDs=Object.keys(this._coulmnsVisibilitySetting.get());this._configurableColumnIDs=columnIDs.sort(compare);return this._configurableColumnIDs;},_contextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);if(this._detailedMode&&event.target.isSelfOrDescendant(this._dataGrid.headerTableBody)){var columnsVisibility=this._coulmnsVisibilitySetting.get();var columnIDs=this._getConfigurableColumnIDs();for(var i=0;i<columnIDs.length;++i){var columnIdentifier=columnIDs[i];var column=this._dataGrid.columns[columnIdentifier];contextMenu.appendCheckboxItem(column.title,this._toggleColumnVisibility.bind(this,columnIdentifier),!!columnsVisibility[columnIdentifier]);}
-contextMenu.show();return;}
-var gridNode=this._dataGrid.dataGridNodeFromNode(event.target);var request=gridNode&&gridNode._request;if(request){contextMenu.appendItem(WebInspector.openLinkExternallyLabel(),WebInspector.openResource.bind(WebInspector,request.url,false));contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.copyLinkAddressLabel(),this._copyLocation.bind(this,request));if(request.requestHeadersText())
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy request headers":"Copy Request Headers"),this._copyRequestHeaders.bind(this,request));if(request.responseHeadersText)
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy response headers":"Copy Response Headers"),this._copyResponseHeaders.bind(this,request));contextMenu.appendItem(WebInspector.UIString("Copy as cURL"),this._copyCurlCommand.bind(this,request));}
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Copy all as HAR":"Copy All as HAR"),this._copyAll.bind(this));contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Save as HAR with content":"Save as HAR with Content"),this._exportAll.bind(this));contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear browser cache":"Clear Browser Cache"),this._clearBrowserCache.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear browser cookies":"Clear Browser Cookies"),this._clearBrowserCookies.bind(this));if(request&&request.type===WebInspector.resourceTypes.XHR){contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString("Replay XHR"),this._replayXHR.bind(this,request.requestId));contextMenu.appendSeparator();}
-contextMenu.show();},_replayXHR:function(requestId)
-{NetworkAgent.replayXHR(requestId);},_copyAll:function()
-{var harArchive={log:(new WebInspector.HARLog(this._requests.filter(WebInspector.NetworkLogView.HTTPRequestsFilter))).build()};InspectorFrontendHost.copyText(JSON.stringify(harArchive,null,2));},_copyLocation:function(request)
-{InspectorFrontendHost.copyText(request.url);},_copyRequestHeaders:function(request)
-{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(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.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)
-{if(!this._searchRegExp)
-return-1;if(!request.name().match(this._searchRegExp)&&!request.path().match(this._searchRegExp))
-return-1;if(request.requestId in this._matchedRequestsMap)
-return this._matchedRequestsMap[request.requestId];var matchedRequestIndex=this._matchedRequests.length;this._matchedRequestsMap[request.requestId]=matchedRequestIndex;this._matchedRequests.push(request.requestId);return matchedRequestIndex;},_clearSearchMatchedList:function()
-{delete this._searchRegExp;this._matchedRequests=[];this._matchedRequestsMap={};this._removeAllHighlights();},_updateSearchMatchedListAfterRequestIdChanged:function(oldRequestId,newRequestId)
-{var requestIndex=this._matchedRequestsMap[oldRequestId];if(requestIndex){delete this._matchedRequestsMap[oldRequestId];this._matchedRequestsMap[newRequestId]=requestIndex;this._matchedRequests[requestIndex]=newRequestId;}},_updateHighlightIfMatched:function(request)
-{var matchedRequestIndex=this._matchRequest(request);if(matchedRequestIndex===-1)
-return;this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.SearchCountUpdated,this._matchedRequests.length);if(this._currentMatchedRequestIndex!==-1&&this._currentMatchedRequestIndex!==matchedRequestIndex)
-return;this._highlightNthMatchedRequestForSearch(matchedRequestIndex,false);},_removeAllHighlights:function()
-{this._removeAllNodeHighlights();for(var i=0;i<this._highlightedSubstringChanges.length;++i)
-WebInspector.revertDomChanges(this._highlightedSubstringChanges[i]);this._highlightedSubstringChanges=[];},_highlightMatchedRequest:function(request,reveal,regExp)
-{var node=this._requestGridNode(request);if(!node)
-return;var nameMatched=request.name().match(regExp);var pathMatched=request.path().match(regExp);if(!nameMatched&&pathMatched&&!this._largerRequestsButton.toggled)
-this._toggleLargerRequests();var highlightedSubstringChanges=node._highlightMatchedSubstring(regExp);this._highlightedSubstringChanges.push(highlightedSubstringChanges);if(reveal){node.reveal();this._highlightNode(node);}},_highlightNthMatchedRequestForSearch:function(matchedRequestIndex,reveal)
-{var request=this.requestById(this._matchedRequests[matchedRequestIndex]);if(!request)
-return;this._removeAllHighlights();this._highlightMatchedRequest(request,reveal,this._searchRegExp);var node=this._requestGridNode(request);if(node)
-this._currentMatchedRequestIndex=matchedRequestIndex;this.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.SearchIndexUpdated,this._currentMatchedRequestIndex);},performSearch:function(query,shouldJump)
-{var newMatchedRequestIndex=0;var currentMatchedRequestId;if(this._currentMatchedRequestIndex!==-1)
-currentMatchedRequestId=this._matchedRequests[this._currentMatchedRequestIndex];this._clearSearchMatchedList();this._searchRegExp=createPlainTextSearchRegex(query,"i");var childNodes=this._dataGrid.dataTableBody.childNodes;var requestNodes=Array.prototype.slice.call(childNodes,0,childNodes.length-1);for(var i=0;i<requestNodes.length;++i){var dataGridNode=this._dataGrid.dataGridNodeFromNode(requestNodes[i]);if(dataGridNode.isFilteredOut())
-continue;if(this._matchRequest(dataGridNode._request)!==-1&&dataGridNode._request.requestId===currentMatchedRequestId)
-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=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
-this._filteredOutRequests.put(request,true);},_filterRequests:function()
-{this._removeAllHighlights();this._filteredOutRequests.clear();var nodes=this._dataGrid.rootNode().children;for(var i=0;i<nodes.length;++i)
-this._applyFilter(nodes[i]);this._updateSummaryBar();this._updateOffscreenRows();},jumpToPreviousSearchResult:function()
-{if(!this._matchedRequests.length)
-return;this._highlightNthMatchedRequestForSearch((this._currentMatchedRequestIndex+this._matchedRequests.length-1)%this._matchedRequests.length,true);},jumpToNextSearchResult:function()
-{if(!this._matchedRequests.length)
-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.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)
-{function escapeCharacter(x)
-{var code=x.charCodeAt(0);if(code<256){return code<16?"\\x0"+code.toString(16):"\\x"+code.toString(16);}
-code=code.toString(16);return"\\u"+("0000"+code).substr(code.length,4);}
-if(/[^\x20-\x7E]|\'/.test(str)){return"$\'"+str.replace(/\\/g,"\\\\").replace(/\'/g,"\\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[^\x20-\x7E]/g,escapeCharacter)+"'";}else{return"'"+str+"'";}}
-var escapeString=WebInspector.isWin()?escapeStringWin:escapeStringPosix;command.push(escapeString(request.url).replace(/[[{}\]]/g,"\\$&"));var inferredMethod="GET";var data=[];var requestContentType=request.requestContentType();if(requestContentType&&requestContentType.startsWith("application/x-www-form-urlencoded")&&request.requestFormData){data.push("--data");data.push(escapeString(request.requestFormData));ignoredHeaders["content-length"]=true;inferredMethod="POST";}else if(request.requestFormData){data.push("--data-binary");data.push(escapeString(request.requestFormData));ignoredHeaders["content-length"]=true;inferredMethod="POST";}
-if(request.requestMethod!==inferredMethod){command.push("-X");command.push(request.requestMethod);}
-var requestHeaders=request.requestHeaders();for(var i=0;i<requestHeaders.length;i++){var header=requestHeaders[i];var name=header.name.replace(/^:/,"");if(name.toLowerCase()in ignoredHeaders)
-continue;command.push("-H");command.push(escapeString(name+": "+header.value));}
-command=command.concat(data);command.push("--compressed");return command.join(" ");},__proto__:WebInspector.View.prototype}
-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.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();},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()
-{WebInspector.Panel.prototype.wasShown.call(this);},get requests()
-{return this._networkLogView.requests;},requestById:function(id)
-{return this._networkLogView.requestById(id);},_requestByAnchor:function(anchor)
-{return anchor.requestId?this.requestById(anchor.requestId):this._networkLogView._requestsByURL[anchor.href];},showAnchorLocation:function(anchor)
-{var request=this._requestByAnchor(anchor);if(!request)
-return false;this.revealAndHighlightRequest(request)
-WebInspector.inspectorView.setCurrentPanel(this);return true;},revealAndHighlightRequest:function(request)
-{this._toggleGridMode();if(request)
-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)
-{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.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.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()
-{this._networkLogView.searchCanceled();},appendApplicableItems:function(event,contextMenu,target)
-{function reveal(request)
-{WebInspector.inspectorView.setCurrentPanel(this);this.revealAndHighlightRequest(request);}
-function appendRevealItem(request)
-{var revealText=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Reveal in Network panel":"Reveal in Network Panel");contextMenu.appendItem(revealText,reveal.bind(this,request));}
-if(target instanceof WebInspector.Resource){var resource=(target);if(resource.request)
-appendRevealItem.call(this,resource.request);return;}
-if(target instanceof WebInspector.UISourceCode){var uiSourceCode=(target);var resource=WebInspector.resourceForURL(uiSourceCode.url);if(resource&&resource.request)
-appendRevealItem.call(this,resource.request);return;}
-if(!(target instanceof WebInspector.NetworkRequest))
-return;var request=(target);if(this.visibleView&&this.visibleView.isShowing()&&this.visibleView.request()===request)
-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)
-{return(time-this._minimumBoundary)/this.boundarySpan()*this._workingArea;},computeBarGraphPercentages:function(item)
-{return{start:0,middle:0,end:(this._value(item)/this.boundarySpan())*100};},computeBarGraphLabels:function(item)
-{const label=this.formatTime(this._value(item));return{left:label,right:label,tooltip:label};},boundarySpan:function()
-{return this._maximumBoundary-this._minimumBoundary;},updateBoundaries:function(item)
-{this._minimumBoundary=0;var value=this._value(item);if(typeof this._maximumBoundary==="undefined"||value>this._maximumBoundary){this._maximumBoundary=value;return true;}
-return false;},reset:function()
-{delete this._minimumBoundary;delete this._maximumBoundary;},maximumBoundary:function()
-{return this._maximumBoundary;},minimumBoundary:function()
-{return this._minimumBoundary;},zeroTime:function()
-{return this._minimumBoundary;},_value:function(item)
-{return 0;},formatTime:function(value,hires)
-{return value.toString();},setDisplayWindow:function(clientWidth)
-{this._workingArea=clientWidth;this.paddingLeft=0;}}
-WebInspector.NetworkTimeCalculator=function(startAtZero)
-{WebInspector.NetworkBaseCalculator.call(this);this.startAtZero=startAtZero;}
-WebInspector.NetworkTimeCalculator.prototype={computeBarGraphPercentages:function(request)
-{if(request.startTime!==-1)
-var start=((request.startTime-this._minimumBoundary)/this.boundarySpan())*100;else
-var start=0;if(request.responseReceivedTime!==-1)
-var middle=((request.responseReceivedTime-this._minimumBoundary)/this.boundarySpan())*100;else
-var middle=(this.startAtZero?start:100);if(request.endTime!==-1)
-var end=((request.endTime-this._minimumBoundary)/this.boundarySpan())*100;else
-var end=(this.startAtZero?middle:100);if(this.startAtZero){end-=start;middle-=start;start=0;}
-return{start:start,middle:middle,end:end};},computePercentageFromEventTime:function(eventTime)
-{if(eventTime!==-1&&!this.startAtZero)
-return((eventTime-this._minimumBoundary)/this.boundarySpan())*100;return 0;},updateBoundariesForEventTime:function(eventTime)
-{if(eventTime===-1||this.startAtZero)
-return false;if(typeof this._maximumBoundary==="undefined"||eventTime>this._maximumBoundary){this._maximumBoundary=eventTime;return true;}
-return false;},computeBarGraphLabels:function(request)
-{var rightLabel="";if(request.responseReceivedTime!==-1&&request.endTime!==-1)
-rightLabel=this.formatTime(request.endTime-request.responseReceivedTime);var hasLatency=request.latency>0;if(hasLatency)
-var leftLabel=this.formatTime(request.latency);else
-var leftLabel=rightLabel;if(request.timing)
-return{left:leftLabel,right:rightLabel};if(hasLatency&&rightLabel){var total=this.formatTime(request.duration);var tooltip=WebInspector.UIString("%s latency, %s download (%s total)",leftLabel,rightLabel,total);}else if(hasLatency)
-var tooltip=WebInspector.UIString("%s latency",leftLabel);else if(rightLabel)
-var tooltip=WebInspector.UIString("%s download",rightLabel);if(request.cached)
-tooltip=WebInspector.UIString("%s (from cache)",tooltip);return{left:leftLabel,right:rightLabel,tooltip:tooltip};},updateBoundaries:function(request)
-{var didChange=false;var lowerBound;if(this.startAtZero)
-lowerBound=0;else
-lowerBound=this._lowerBound(request);if(lowerBound!==-1&&(typeof this._minimumBoundary==="undefined"||lowerBound<this._minimumBoundary)){this._minimumBoundary=lowerBound;didChange=true;}
-var upperBound=this._upperBound(request);if(upperBound!==-1&&(typeof this._maximumBoundary==="undefined"||upperBound>this._maximumBoundary)){this._maximumBoundary=upperBound;didChange=true;}
-return didChange;},formatTime:function(value)
-{return Number.secondsToString(value);},_lowerBound:function(request)
-{return 0;},_upperBound:function(request)
-{return 0;},__proto__:WebInspector.NetworkBaseCalculator.prototype}
-WebInspector.NetworkTransferTimeCalculator=function()
-{WebInspector.NetworkTimeCalculator.call(this,false);}
-WebInspector.NetworkTransferTimeCalculator.prototype={formatTime:function(value)
-{return Number.secondsToString(value);},_lowerBound:function(request)
-{return request.startTime;},_upperBound:function(request)
-{return request.endTime;},__proto__:WebInspector.NetworkTimeCalculator.prototype}
-WebInspector.NetworkTransferDurationCalculator=function()
-{WebInspector.NetworkTimeCalculator.call(this,true);}
-WebInspector.NetworkTransferDurationCalculator.prototype={formatTime:function(value)
-{return Number.secondsToString(value);},_upperBound:function(request)
-{return request.duration;},__proto__:WebInspector.NetworkTimeCalculator.prototype}
-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.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()
-{if(!this._parentView._allowRequestSelection)
-this.select();},select:function()
-{this._parentView.dispatchEventToListeners(WebInspector.NetworkLogView.EventTypes.RequestSelected,this._request);WebInspector.DataGridNode.prototype.select.apply(this,arguments);WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.NetworkRequestSelected,url:this._request.url});},_highlightMatchedSubstring:function(regexp)
-{var domChanges=[];var matchInfo=this._element.textContent.match(regexp);if(matchInfo)
-WebInspector.highlightSearchResult(this._nameCell,matchInfo.index,matchInfo[0].length,domChanges);return domChanges;},_openInNewTab:function()
-{InspectorFrontendHost.openInNewTab(this._request.url);},get selectable()
-{return this._parentView._allowRequestSelection&&!this.isFilteredOut();},_createDivInTD:function(columnIdentifier)
-{var td=this.createTD(columnIdentifier);var div=td.createChild("div");this._element.appendChild(td);return div;},_createTimelineBar:function(cell)
-{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.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.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.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.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.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.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.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.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)
-return-1;return 0;}
-WebInspector.NetworkDataGridNode.SizeComparator=function(a,b)
-{if(b._request.cached&&!a._request.cached)
-return 1;if(a._request.cached&&!b._request.cached)
-return-1;return a._request.transferSize-b._request.transferSize;}
-WebInspector.NetworkDataGridNode.InitiatorComparator=function(a,b)
-{var aInitiator=a._request.initiatorInfo();var bInitiator=b._request.initiatorInfo();if(aInitiator.type<bInitiator.type)
-return-1;if(aInitiator.type>bInitiator.type)
-return 1;if(aInitiator.source<bInitiator.source)
-return-1;if(aInitiator.source>bInitiator.source)
-return 1;if(aInitiator.lineNumber<bInitiator.lineNumber)
-return-1;if(aInitiator.lineNumber>bInitiator.lineNumber)
-return 1;if(aInitiator.columnNumber<bInitiator.columnNumber)
-return-1;if(aInitiator.columnNumber>bInitiator.columnNumber)
-return 1;return 0;}
-WebInspector.NetworkDataGridNode.RequestCookiesCountComparator=function(a,b)
-{var aScore=a._request.requestCookies?a._request.requestCookies.length:0;var bScore=b._request.requestCookies?b._request.requestCookies.length:0;return aScore-bScore;}
-WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator=function(a,b)
-{var aScore=a._request.responseCookies?a._request.responseCookies.length:0;var bScore=b._request.responseCookies?b._request.responseCookies.length:0;return aScore-bScore;}
-WebInspector.NetworkDataGridNode.RequestPropertyComparator=function(propertyName,revert,a,b)
-{var aValue=a._request[propertyName];var bValue=b._request[propertyName];if(aValue>bValue)
-return revert?-1:1;if(bValue>aValue)
-return revert?1:-1;return 0;}
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ProfilesPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ProfilesPanel.js
deleted file mode 100644 (file)
index 0916a70..0000000
+++ /dev/null
@@ -1,1550 +0,0 @@
-WebInspector.ProfileType=function(id,name)
-{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()
-{return[];},get buttonTooltip()
-{return"";},get id()
-{return this._id;},get treeItemTitle()
-{return this._name;},get name()
-{return this._name;},buttonClicked:function()
-{return false;},get description()
-{return"";},isInstantProfile:function()
-{return false;},isEnabled:function()
-{return true;},getProfiles:function()
-{function isFinished(profile)
-{return this._profileBeingRecorded!==profile;}
-return this._profiles.filter(isFinished.bind(this));},decorationElement:function()
-{return null;},getProfile:function(uid)
-{for(var i=0;i<this._profiles.length;++i){if(this._profiles[i].uid===uid)
-return this._profiles[i];}
-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=[];},__proto__:WebInspector.Object.prototype}
-WebInspector.ProfileHeader=function(profileType,title,uid)
-{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.");},removeTempFile:function()
-{if(this._tempFile)
-this._tempFile.remove();},dispose:function()
-{},load:function(callback)
-{},canSaveToFile:function()
-{return false;},saveToFile:function()
-{throw new Error("Needs implemented");},loadFromFile:function(file)
-{throw new Error("Needs implemented");},fromFile:function()
-{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().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)
-{for(var id in this._profileTypesByIdMap){var type=this._profileTypesByIdMap[id];var extension=type.fileExtension();if(!extension)
-continue;if(fileName.endsWith(type.fileExtension()))
-return type;}
-return null;},_registerShortcuts: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.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.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()
-{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);}
-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.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.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.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;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.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(){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 visibleView=this.visibleView;if(!visibleView)
-return;function finishedCallback(view,searchMatches)
-{if(!searchMatches)
-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;},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(!(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)
-{HeapProfilerAgent.getHeapObjectId(objectId,didReceiveHeapObjectId.bind(this,viewName));}
-function didReceiveHeapObjectId(viewName,error,result)
-{if(WebInspector.inspectorView.currentPanel()!==this)
-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.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();},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)
-{WebInspector.SidebarTreeElement.call(this,"profile-group-sidebar-tree-item",title,subtitle,null,true);this._panel=panel;}
-WebInspector.ProfileGroupSidebarTreeElement.prototype={onselect:function()
-{if(this.children.length>0)
-this._panel._showProfile(this.children[this.children.length-1].profile);},__proto__:WebInspector.SidebarTreeElement.prototype}
-WebInspector.ProfilesSidebarTreeElement=function(panel)
-{this._panel=panel;this.small=false;WebInspector.SidebarTreeElement.call(this,"profile-launcher-view-tree-item",WebInspector.UIString("Profiles"),"",null,false);}
-WebInspector.ProfilesSidebarTreeElement.prototype={onselect:function()
-{this._panel._showLauncherView();},get selectable()
-{return true;},__proto__:WebInspector.SidebarTreeElement.prototype}
-WebInspector.CPUProfilerPanel=function()
-{WebInspector.ProfilesPanel.call(this,"cpu-profiler",new WebInspector.CPUProfileType());}
-WebInspector.CPUProfilerPanel.prototype={__proto__:WebInspector.ProfilesPanel.prototype}
-WebInspector.HeapProfilerPanel=function()
-{var heapSnapshotProfileType=new WebInspector.HeapSnapshotProfileType();WebInspector.ProfilesPanel.call(this,"heap-profiler",heapSnapshotProfileType);this._singleProfileMode=false;this._registerProfileType(new WebInspector.TrackingHeapSnapshotProfileType(this));this._launcherView.addEventListener(WebInspector.MultiProfileLauncherView.EventTypes.ProfileTypeSelected,this._onProfileTypeSelected,this);this._launcherView._profileTypeChanged(heapSnapshotProfileType);}
-WebInspector.HeapProfilerPanel.prototype={_createLauncherView:function()
-{return new WebInspector.MultiProfileLauncherView(this);},__proto__:WebInspector.ProfilesPanel.prototype}
-WebInspector.CanvasProfilerPanel=function()
-{WebInspector.ProfilesPanel.call(this,"canvas-profiler",new WebInspector.CanvasProfileType());}
-WebInspector.CanvasProfilerPanel.prototype={__proto__:WebInspector.ProfilesPanel.prototype}
-WebInspector.ProfileDataGridNode=function(profileNode,owningTree,hasChildren)
-{this.profileNode=profileNode;WebInspector.DataGridNode.call(this,null,hasChildren);this.tree=owningTree;this.childrenByCallUID={};this.lastComparator=null;this.callUID=profileNode.callUID;this.selfTime=profileNode.selfTime;this.totalTime=profileNode.totalTime;this.functionName=profileNode.functionName;this._deoptReason=(!profileNode.deoptReason||profileNode.deoptReason==="no reason")?"":profileNode.deoptReason;this.url=profileNode.url;}
-WebInspector.ProfileDataGridNode.prototype={get data()
-{function formatMilliseconds(time)
-{return WebInspector.UIString("%.1f\u2009ms",time);}
-var data={};if(this._deoptReason){var div=document.createElement("div");var marker=div.createChild("span");marker.className="profile-warn-marker";marker.title=WebInspector.UIString("Not optimized: %s",this._deoptReason);var functionName=div.createChild("span");functionName.textContent=this.functionName;data["function"]=div;}else
-data["function"]=this.functionName;if(this.tree.profileView.showSelfTimeAsPercent.get())
-data["self"]=WebInspector.UIString("%.2f%",this.selfPercent);else
-data["self"]=formatMilliseconds(this.selfTime);if(this.tree.profileView.showTotalTimeAsPercent.get())
-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.classList.add("highlight");else if(columnIdentifier==="total"&&this._searchMatchedTotalColumn)
-cell.classList.add("highlight");if(columnIdentifier!=="function")
-return cell;if(this._deoptReason)
-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)
-{WebInspector.DataGridNode.prototype.deselect.call(this,supressDeselectedEvent);this.tree.profileView._dataGridNodeDeselected(this);},sort:function(comparator,force)
-{var gridNodeGroups=[[this]];for(var gridNodeGroupIndex=0;gridNodeGroupIndex<gridNodeGroups.length;++gridNodeGroupIndex){var gridNodes=gridNodeGroups[gridNodeGroupIndex];var count=gridNodes.length;for(var index=0;index<count;++index){var gridNode=gridNodes[index];if(!force&&(!gridNode.expanded||gridNode.lastComparator===comparator)){if(gridNode.children.length)
-gridNode.shouldRefreshChildren=true;continue;}
-gridNode.lastComparator=comparator;var children=gridNode.children;var childCount=children.length;if(childCount){children.sort(comparator);for(var childIndex=0;childIndex<childCount;++childIndex)
-children[childIndex]._recalculateSiblings(childIndex);gridNodeGroups.push(children);}}}},insertChild:function(profileDataGridNode,index)
-{WebInspector.DataGridNode.prototype.insertChild.call(this,profileDataGridNode,index);this.childrenByCallUID[profileDataGridNode.callUID]=profileDataGridNode;},removeChild:function(profileDataGridNode)
-{WebInspector.DataGridNode.prototype.removeChild.call(this,profileDataGridNode);delete this.childrenByCallUID[profileDataGridNode.callUID];},removeChildren:function()
-{WebInspector.DataGridNode.prototype.removeChildren.call(this);this.childrenByCallUID={};},findChild:function(node)
-{if(!node)
-return null;return this.childrenByCallUID[node.callUID];},get selfPercent()
-{return this.selfTime/this.tree.totalTime*100.0;},get totalPercent()
-{return this.totalTime/this.tree.totalTime*100.0;},get _parent()
-{return this.parent!==this.dataGrid?this.parent:this.tree;},populate:function()
-{if(this._populated)
-return;this._populated=true;this._sharedPopulate();var currentComparator=this.tree.lastComparator;if(currentComparator)
-this.sort(currentComparator,true);},_save:function()
-{if(this._savedChildren)
-return;this._savedSelfTime=this.selfTime;this._savedTotalTime=this.totalTime;this._savedChildren=this.children.slice();},_restore:function()
-{if(!this._savedChildren)
-return;this.selfTime=this._savedSelfTime;this.totalTime=this._savedTotalTime;this.removeChildren();var children=this._savedChildren;var count=children.length;for(var index=0;index<count;++index){children[index]._restore();this.appendChild(children[index]);}},_merge:function(child,shouldAbsorb)
-{this.selfTime+=child.selfTime;if(!shouldAbsorb)
-this.totalTime+=child.totalTime;var children=this.children.slice();this.removeChildren();var count=children.length;for(var index=0;index<count;++index){if(!shouldAbsorb||children[index]!==child)
-this.appendChild(children[index]);}
-children=child.children.slice();count=children.length;for(var index=0;index<count;++index){var orphanedChild=children[index],existingChild=this.childrenByCallUID[orphanedChild.callUID];if(existingChild)
-existingChild._merge(orphanedChild,false);else
-this.appendChild(orphanedChild);}},__proto__:WebInspector.DataGridNode.prototype}
-WebInspector.ProfileDataGridTree=function(profileView,rootProfileNode)
-{this.tree=this;this.children=[];this.profileView=profileView;this.totalTime=rootProfileNode.totalTime;this.lastComparator=null;this.childrenByCallUID={};}
-WebInspector.ProfileDataGridTree.prototype={get expanded()
-{return true;},appendChild:function(child)
-{this.insertChild(child,this.children.length);},insertChild:function(child,index)
-{this.children.splice(index,0,child);this.childrenByCallUID[child.callUID]=child;},removeChildren:function()
-{this.children=[];this.childrenByCallUID={};},findChild:WebInspector.ProfileDataGridNode.prototype.findChild,sort:WebInspector.ProfileDataGridNode.prototype.sort,_save:function()
-{if(this._savedChildren)
-return;this._savedTotalTime=this.totalTime;this._savedChildren=this.children.slice();},restore:function()
-{if(!this._savedChildren)
-return;this.children=this._savedChildren;this.totalTime=this._savedTotalTime;var children=this.children;var count=children.length;for(var index=0;index<count;++index)
-children[index]._restore();this._savedChildren=null;}}
-WebInspector.ProfileDataGridTree.propertyComparators=[{},{}];WebInspector.ProfileDataGridTree.propertyComparator=function(property,isAscending)
-{var comparator=WebInspector.ProfileDataGridTree.propertyComparators[(isAscending?1:0)][property];if(!comparator){if(isAscending){comparator=function(lhs,rhs)
-{if(lhs[property]<rhs[property])
-return-1;if(lhs[property]>rhs[property])
-return 1;return 0;}}else{comparator=function(lhs,rhs)
-{if(lhs[property]>rhs[property])
-return-1;if(lhs[property]<rhs[property])
-return 1;return 0;}}
-WebInspector.ProfileDataGridTree.propertyComparators[(isAscending?1:0)][property]=comparator;}
-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)
-{this._save();this.removeChildren();this.appendChild(child);},_exclude:function(aCallUID)
-{if(this._remainingNodeInfos)
-this.populate();this._save();var children=this.children;var index=this.children.length;while(index--)
-children[index]._exclude(aCallUID);var child=this.childrenByCallUID[aCallUID];if(child)
-this._merge(child,true);},_restore:function()
-{WebInspector.ProfileDataGridNode.prototype._restore();if(!this.children.length)
-this.hasChildren=this._willHaveChildren(this.profileNode);},_merge:function(child,shouldAbsorb)
-{this.selfTime-=child.selfTime;WebInspector.ProfileDataGridNode.prototype._merge.call(this,child,shouldAbsorb);},_sharedPopulate:function()
-{var remainingNodeInfos=this._remainingNodeInfos;var count=remainingNodeInfos.length;for(var index=0;index<count;++index){var nodeInfo=remainingNodeInfos[index];var ancestor=nodeInfo.ancestor;var focusNode=nodeInfo.focusNode;var child=this.findChild(ancestor);if(child){var totalTimeAccountedFor=nodeInfo.totalTimeAccountedFor;child.selfTime+=focusNode.selfTime;if(!totalTimeAccountedFor)
-child.totalTime+=focusNode.totalTime;}else{child=new WebInspector.BottomUpProfileDataGridNode(ancestor,this.tree);if(ancestor!==focusNode){child.selfTime=focusNode.selfTime;child.totalTime=focusNode.totalTime;}
-this.appendChild(child);}
-var parent=ancestor.parent;if(parent&&parent.parent){nodeInfo.ancestor=parent;child._remainingNodeInfos.push(nodeInfo);}}
-delete this._remainingNodeInfos;},_willHaveChildren:function(profileNode)
-{return!!(profileNode.parent&&profileNode.parent.parent);},__proto__:WebInspector.ProfileDataGridNode.prototype}
-WebInspector.BottomUpProfileDataGridTree=function(profileView,rootProfileNode)
-{WebInspector.ProfileDataGridTree.call(this,profileView,rootProfileNode);var profileNodeUIDs=0;var profileNodeGroups=[[],[rootProfileNode]];var visitedProfileNodesForCallUID={};this._remainingNodeInfos=[];for(var profileNodeGroupIndex=0;profileNodeGroupIndex<profileNodeGroups.length;++profileNodeGroupIndex){var parentProfileNodes=profileNodeGroups[profileNodeGroupIndex];var profileNodes=profileNodeGroups[++profileNodeGroupIndex];var count=profileNodes.length;for(var index=0;index<count;++index){var profileNode=profileNodes[index];if(!profileNode.UID)
-profileNode.UID=++profileNodeUIDs;if(profileNode.head&&profileNode!==profileNode.head){var visitedNodes=visitedProfileNodesForCallUID[profileNode.callUID];var totalTimeAccountedFor=false;if(!visitedNodes){visitedNodes={}
-visitedProfileNodesForCallUID[profileNode.callUID]=visitedNodes;}else{var parentCount=parentProfileNodes.length;for(var parentIndex=0;parentIndex<parentCount;++parentIndex){if(visitedNodes[parentProfileNodes[parentIndex].UID]){totalTimeAccountedFor=true;break;}}}
-visitedNodes[profileNode.UID]=true;this._remainingNodeInfos.push({ancestor:profileNode,focusNode:profileNode,totalTimeAccountedFor:totalTimeAccountedFor});}
-var children=profileNode.children;if(children.length){profileNodeGroups.push(parentProfileNodes.concat([profileNode]))
-profileNodeGroups.push(children);}}}
-var any=(this);var node=(any);WebInspector.BottomUpProfileDataGridNode.prototype.populate.call(node);return this;}
-WebInspector.BottomUpProfileDataGridTree.prototype={focus:function(profileDataGridNode)
-{if(!profileDataGridNode)
-return;this._save();var currentNode=profileDataGridNode;var focusNode=profileDataGridNode;while(currentNode.parent&&(currentNode instanceof WebInspector.ProfileDataGridNode)){currentNode._takePropertiesFromProfileDataGridNode(profileDataGridNode);focusNode=currentNode;currentNode=currentNode.parent;if(currentNode instanceof WebInspector.ProfileDataGridNode)
-currentNode._keepOnlyChild(focusNode);}
-this.children=[focusNode];this.totalTime=profileDataGridNode.totalTime;},exclude:function(profileDataGridNode)
-{if(!profileDataGridNode)
-return;this._save();var excludedCallUID=profileDataGridNode.callUID;var excludedTopLevelChild=this.childrenByCallUID[excludedCallUID];if(excludedTopLevelChild)
-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.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
-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();},_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()
-{if(!this._topDownProfileDataGridTree)
-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)
-selectedProfileNode.selected=true;},refreshVisibleData:function()
-{var child=this.dataGrid.rootNode().children[0];while(child){child.refresh();child=child.traverseNextNode(false,null,true);}},refreshShowAsPercents:function()
-{this._updatePercentButton();this.refreshVisibleData();},searchCanceled:function()
-{if(this._searchResults){for(var i=0;i<this._searchResults.length;++i){var profileNode=this._searchResults[i].profileNode;delete profileNode._searchMatchedSelfColumn;delete profileNode._searchMatchedTotalColumn;delete profileNode._searchMatchedFunctionColumn;profileNode.refresh();}}
-delete this._searchFinishedCallback;this._currentSearchResultIndex=-1;this._searchResults=[];},performSearch:function(query,finishedCallback)
-{this.searchCanceled();query=query.trim();if(!query.length)
-return;this._searchFinishedCallback=finishedCallback;var greaterThan=(query.startsWith(">"));var lessThan=(query.startsWith("<"));var equalTo=(query.startsWith("=")||((greaterThan||lessThan)&&query.indexOf("=")===1));var percentUnits=(query.lastIndexOf("%")===(query.length-1));var millisecondsUnits=(query.length>2&&query.lastIndexOf("ms")===(query.length-2));var secondsUnits=(!millisecondsUnits&&query.lastIndexOf("s")===(query.length-1));var queryNumber=parseFloat(query);if(greaterThan||lessThan||equalTo){if(equalTo&&(greaterThan||lessThan))
-queryNumber=parseFloat(query.substring(2));else
-queryNumber=parseFloat(query.substring(1));}
-var queryNumberMilliseconds=(secondsUnits?(queryNumber*1000):queryNumber);if(!isNaN(queryNumber)&&!(greaterThan||lessThan))
-equalTo=true;var matcher=createPlainTextSearchRegex(query,"i");function matchesQuery(profileDataGridNode)
-{delete profileDataGridNode._searchMatchedSelfColumn;delete profileDataGridNode._searchMatchedTotalColumn;delete profileDataGridNode._searchMatchedFunctionColumn;if(percentUnits){if(lessThan){if(profileDataGridNode.selfPercent<queryNumber)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalPercent<queryNumber)
-profileDataGridNode._searchMatchedTotalColumn=true;}else if(greaterThan){if(profileDataGridNode.selfPercent>queryNumber)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalPercent>queryNumber)
-profileDataGridNode._searchMatchedTotalColumn=true;}
-if(equalTo){if(profileDataGridNode.selfPercent==queryNumber)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalPercent==queryNumber)
-profileDataGridNode._searchMatchedTotalColumn=true;}}else if(millisecondsUnits||secondsUnits){if(lessThan){if(profileDataGridNode.selfTime<queryNumberMilliseconds)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalTime<queryNumberMilliseconds)
-profileDataGridNode._searchMatchedTotalColumn=true;}else if(greaterThan){if(profileDataGridNode.selfTime>queryNumberMilliseconds)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalTime>queryNumberMilliseconds)
-profileDataGridNode._searchMatchedTotalColumn=true;}
-if(equalTo){if(profileDataGridNode.selfTime==queryNumberMilliseconds)
-profileDataGridNode._searchMatchedSelfColumn=true;if(profileDataGridNode.totalTime==queryNumberMilliseconds)
-profileDataGridNode._searchMatchedTotalColumn=true;}}
-if(profileDataGridNode.functionName.match(matcher)||(profileDataGridNode.url&&profileDataGridNode.url.match(matcher)))
-profileDataGridNode._searchMatchedFunctionColumn=true;if(profileDataGridNode._searchMatchedSelfColumn||profileDataGridNode._searchMatchedTotalColumn||profileDataGridNode._searchMatchedFunctionColumn)
-{profileDataGridNode.refresh();return true;}
-return false;}
-var current=this.profileDataGridTree.children[0];while(current){if(matchesQuery(current)){this._searchResults.push({profileNode:current});}
-current=current.traverseNextNode(false,null,false);}
-finishedCallback(this,this._searchResults.length);},jumpToFirstSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;this._currentSearchResultIndex=0;this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToLastSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;this._currentSearchResultIndex=(this._searchResults.length-1);this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToNextSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;if(++this._currentSearchResultIndex>=this._searchResults.length)
-this._currentSearchResultIndex=0;this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToPreviousSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-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));},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;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)
-return;var uiLocation=script.rawLocationToUILocation(node.lineNumber);if(!uiLocation)
-return;WebInspector.panel("sources").showUILocation(uiLocation);},_changeView:function()
-{if(!this.profile)
-return;switch(this.viewSelectComboBox.selectedOption().value){case WebInspector.CPUProfileView._TypeFlame:this._ensureFlameChartCreated();this.dataGrid.detach();this._flameChart.show(this.element);this._viewType.set(WebInspector.CPUProfileView._TypeFlame);this._statusBarButtonsElement.enableStyleClass("hidden",true);return;case WebInspector.CPUProfileView._TypeTree:this.profileDataGridTree=this._getTopDownProfileDataGridTree();this._sortProfile();this._viewType.set(WebInspector.CPUProfileView._TypeTree);break;case WebInspector.CPUProfileView._TypeHeavy:this.profileDataGridTree=this._getBottomUpProfileDataGridTree();this._sortProfile();this._viewType.set(WebInspector.CPUProfileView._TypeHeavy);break;}
-this._statusBarButtonsElement.enableStyleClass("hidden",false);if(this._flameChart)
-this._flameChart.detach();this.dataGrid.show(this.element);if(!this.currentQuery||!this._searchFinishedCallback||!this._searchResults)
-return;this._searchFinishedCallback(this,-this._searchResults.length);this.performSearch(this.currentQuery,this._searchFinishedCallback);},_percentClicked:function(event)
-{var currentState=this.showSelfTimeAsPercent.get()&&this.showTotalTimeAsPercent.get()&&this.showAverageTimeAsPercent.get();this.showSelfTimeAsPercent.set(!currentState);this.showTotalTimeAsPercent.set(!currentState);this.showAverageTimeAsPercent.set(!currentState);this.refreshShowAsPercents();},_updatePercentButton:function()
-{if(this.showSelfTimeAsPercent.get()&&this.showTotalTimeAsPercent.get()&&this.showAverageTimeAsPercent.get()){this.percentButton.title=WebInspector.UIString("Show absolute total and self times.");this.percentButton.toggled=true;}else{this.percentButton.title=WebInspector.UIString("Show total and self times as percentages.");this.percentButton.toggled=false;}},_focusClicked:function(event)
-{if(!this.dataGrid.selectedNode)
-return;this.resetButton.visible=true;this.profileDataGridTree.focus(this.dataGrid.selectedNode);this.refresh();this.refreshVisibleData();},_excludeClicked:function(event)
-{var selectedNode=this.dataGrid.selectedNode
-if(!selectedNode)
-return;selectedNode.deselect();this.resetButton.visible=true;this.profileDataGridTree.exclude(selectedNode);this.refresh();this.refreshVisibleData();},_resetClicked:function(event)
-{this.resetButton.visible=false;this.profileDataGridTree.restore();this._linkifier.reset();this.refresh();this.refreshVisibleData();},_dataGridNodeSelected:function(node)
-{this.focusButton.setEnabled(true);this.excludeButton.setEnabled(true);},_dataGridNodeDeselected:function(node)
-{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.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;}
-profile.totalHitCount=totalHitCount(profile.head);var durationMs=1000*(profile.endTime-profile.startTime);var samplingInterval=durationMs/profile.totalHitCount;this.samplingIntervalMs=samplingInterval;function calculateTimesForNode(node){node.selfTime=node.hitCount*samplingInterval;var totalHitCount=node.hitCount;for(var i=0;i<node.children.length;i++)
-totalHitCount+=calculateTimesForNode(node.children[i]);node.totalTime=totalHitCount*samplingInterval;return totalHitCount;}
-calculateTimesForNode(profile.head);},_assignParentsInProfile:function()
-{var head=this.profileHead;head.parent=null;head.head=null;var nodesToTraverse=[{parent:head,children:head.children}];while(nodesToTraverse.length>0){var pair=nodesToTraverse.pop();var parent=pair.parent;var children=pair.children;var length=children.length;for(var i=0;i<length;++i){children[i].head=head;children[i].parent=parent;if(children[i].children.length>0)
-nodesToTraverse.push({parent:children[i],children:children[i].children});}}},_buildIdToNodeMap:function()
-{var idToNode=this._idToNode={};var stack=[this.profileHead];while(stack.length){var node=stack.pop();idToNode[node.id]=node;for(var i=0;i<node.children.length;i++)
-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"));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.");},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()
-{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);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");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(){},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!!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;}
-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 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;}
-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(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"),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;},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});},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++;function wrapCallback(remoteResult)
-{callback(remoteResult?new proxyConstructor(this,newObjectId):null);}
-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)
-return;this._checkLongRunningCalls();this._interval=setInterval(this._checkLongRunningCalls.bind(this),300);},_checkLongRunningCalls:function()
-{for(var callId in this._previousCallbacks)
-if(!(callId in this._callbacks))
-delete this._previousCallbacks[callId];var hasLongRunningCalls=false;for(callId in this._previousCallbacks){hasLongRunningCalls=true;break;}
-this.dispatchEventToListeners("wait",hasLongRunningCalls);for(callId in this._callbacks)
-this._previousCallbacks[callId]=true;},_findFunction:function(name)
-{var path=name.split(".");var result=window;for(var i=0;i<path.length;++i)
-result=result[path[i]];return result;},_messageReceived:function(event)
-{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;}
-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}
-WebInspector.HeapSnapshotProxyObject=function(worker,objectId)
-{this._worker=worker;this._objectId=objectId;}
-WebInspector.HeapSnapshotProxyObject.prototype={_callWorker:function(workerMethodName,args)
-{args.splice(1,0,this._objectId);return this._worker[workerMethodName].apply(this._worker,args);},dispose:function()
-{this._worker.disposeObject(this._objectId);},disposeWorker:function()
-{this._worker.dispose();},callFactoryMethod:function(callback,methodName,proxyConstructor,var_args)
-{return this._callWorker("callFactoryMethod",Array.prototype.slice.call(arguments,0));},callGetter:function(callback,getterName)
-{return this._callWorker("callGetter",Array.prototype.slice.call(arguments,0));},callMethod:function(callback,methodName,var_args)
-{return this._callWorker("callMethod",Array.prototype.slice.call(arguments,0));},get worker(){return this._worker;}};WebInspector.HeapSnapshotLoaderProxy=function(worker,objectId,snapshotConstructorName,proxyConstructor)
-{WebInspector.HeapSnapshotProxyObject.call(this,worker,objectId);this._snapshotConstructorName=snapshotConstructorName;this._proxyConstructor=proxyConstructor;this._pendingSnapshotConsumers=[];}
-WebInspector.HeapSnapshotLoaderProxy.prototype={addConsumer:function(callback)
-{this._pendingSnapshotConsumers.push(callback);},write:function(chunk,callback)
-{this.callMethod(callback,"write",chunk);},close:function(callback)
-{function buildSnapshot()
-{if(callback)
-callback();this.callFactoryMethod(updateStaticData.bind(this),"buildSnapshot",this._proxyConstructor,this._snapshotConstructorName);}
-function updateStaticData(snapshotProxy)
-{this.dispose();snapshotProxy.updateStaticData(notifyPendingConsumers.bind(this));}
-function notifyPendingConsumers(snapshotProxy)
-{for(var i=0;i<this._pendingSnapshotConsumers.length;++i)
-this._pendingSnapshotConsumers[i](snapshotProxy);this._pendingSnapshotConsumers=[];}
-this.callMethod(buildSnapshot.bind(this),"close");},__proto__:WebInspector.HeapSnapshotProxyObject.prototype}
-WebInspector.HeapSnapshotProxy=function(worker,objectId)
-{WebInspector.HeapSnapshotProxyObject.call(this,worker,objectId);}
-WebInspector.HeapSnapshotProxy.prototype={aggregates:function(sortedIndexes,key,filter,callback)
-{this.callMethod(callback,"aggregates",sortedIndexes,key,filter);},aggregatesForDiff:function(callback)
-{this.callMethod(callback,"aggregatesForDiff");},calculateSnapshotDiff:function(baseSnapshotId,baseSnapshotAggregates,callback)
-{this.callMethod(callback,"calculateSnapshotDiff",baseSnapshotId,baseSnapshotAggregates);},nodeClassName:function(snapshotObjectId,callback)
-{this.callMethod(callback,"nodeClassName",snapshotObjectId);},dominatorIdsForNode:function(nodeIndex,callback)
-{this.callMethod(callback,"dominatorIdsForNode",nodeIndex);},createEdgesProvider:function(nodeIndex,showHiddenData)
-{return this.callFactoryMethod(null,"createEdgesProvider",WebInspector.HeapSnapshotProviderProxy,nodeIndex,showHiddenData);},createRetainingEdgesProvider:function(nodeIndex,showHiddenData)
-{return this.callFactoryMethod(null,"createRetainingEdgesProvider",WebInspector.HeapSnapshotProviderProxy,nodeIndex,showHiddenData);},createAddedNodesProvider:function(baseSnapshotId,className)
-{return this.callFactoryMethod(null,"createAddedNodesProvider",WebInspector.HeapSnapshotProviderProxy,baseSnapshotId,className);},createDeletedNodesProvider:function(nodeIndexes)
-{return this.callFactoryMethod(null,"createDeletedNodesProvider",WebInspector.HeapSnapshotProviderProxy,nodeIndexes);},createNodesProvider:function(filter)
-{return this.callFactoryMethod(null,"createNodesProvider",WebInspector.HeapSnapshotProviderProxy,filter);},createNodesProviderForClass:function(className,aggregatesKey)
-{return this.callFactoryMethod(null,"createNodesProviderForClass",WebInspector.HeapSnapshotProviderProxy,className,aggregatesKey);},createNodesProviderForDominator:function(nodeIndex)
-{return this.callFactoryMethod(null,"createNodesProviderForDominator",WebInspector.HeapSnapshotProviderProxy,nodeIndex);},maxJsNodeId:function(callback)
-{this.callMethod(callback,"maxJsNodeId");},allocationTracesTops:function(callback)
-{this.callMethod(callback,"allocationTracesTops");},allocationNodeCallers:function(nodeId,callback)
-{this.callMethod(callback,"allocationNodeCallers",nodeId);},dispose:function()
-{this.disposeWorker();},get nodeCount()
-{return this._staticData.nodeCount;},get rootNodeIndex()
-{return this._staticData.rootNodeIndex;},updateStaticData:function(callback)
-{function dataReceived(staticData)
-{this._staticData=staticData;callback(this);}
-this.callMethod(dataReceived.bind(this),"updateStaticData");},get totalSize()
-{return this._staticData.totalSize;},get uid()
-{return this._staticData.uid;},__proto__:WebInspector.HeapSnapshotProxyObject.prototype}
-WebInspector.HeapSnapshotProviderProxy=function(worker,objectId)
-{WebInspector.HeapSnapshotProxyObject.call(this,worker,objectId);}
-WebInspector.HeapSnapshotProviderProxy.prototype={nodePosition:function(snapshotObjectId,callback)
-{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.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.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._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())
-this.helpPopover.hide();},onResize:function()
-{var height=this.retainmentView.element.clientHeight;this._updateRetainmentViewHeight(height);},searchCanceled:function()
-{if(this._searchResults){for(var i=0;i<this._searchResults.length;++i){var node=this._searchResults[i].node;delete node._searchMatched;node.refresh();}}
-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;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(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;}
-finishedCallback(this,this._searchResults.length);},jumpToFirstSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;this._currentSearchResultIndex=0;this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToLastSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;this._currentSearchResultIndex=(this._searchResults.length-1);this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToNextSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;if(++this._currentSearchResultIndex>=this._searchResults.length)
-this._currentSearchResultIndex=0;this._jumpToSearchResult(this._currentSearchResultIndex);},jumpToPreviousSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-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));},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()
-{if(this._baseProfileUid===this._profiles()[this.baseSelect.selectedIndex()].uid)
-return;this._baseProfileUid=this._profiles()[this.baseSelect.selectedIndex()].uid;var dataGrid=(this.dataGrid);if(dataGrid.snapshot)
-this.baseProfile.load(dataGrid.setBaseDataSource.bind(dataGrid));if(!this.currentQuery||!this._searchFinishedCallback||!this._searchResults)
-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.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._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)
-ConsoleAgent.addInspectedHeapObject(selectedNode.snapshotNodeId);},_setRetainmentDataGridSource:function(nodeItem)
-{if(nodeItem&&nodeItem.snapshotNodeIndex)
-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.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;}
-function dataGridContentShown(event)
-{var dataGrid=event.data;dataGrid.removeEventListener(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,dataGridContentShown,this);if(dataGrid===this.dataGrid)
-callback();}
-this.views[viewIndex].grid.addEventListener(WebInspector.HeapSnapshotSortableDataGrid.Events.ContentShown,dataGridContentShown,this);this.viewSelect.setSelectedIndex(viewIndex);this._changeView(viewIndex);},_updateDataSourceAndView:function()
-{var dataGrid=this.dataGrid;if(dataGrid.snapshot)
-return;this.profile.load(didLoadSnapshot.bind(this));function didLoadSnapshot(snapshotProxy)
-{if(this.dataGrid!==dataGrid)
-return;if(dataGrid.snapshot!==snapshotProxy)
-dataGrid.setDataSource(snapshotProxy);if(dataGrid===this.diffDataGrid){if(!this._baseProfileUid)
-this._baseProfileUid=this._profiles()[this.baseSelect.selectedIndex()].uid;this.baseProfile.load(didLoadBaseSnaphot.bind(this));}}
-function didLoadBaseSnaphot(baseSnapshotProxy)
-{if(this.diffDataGrid.baseSnapshot!==baseSnapshotProxy)
-this.diffDataGrid.setBaseDataSource(baseSnapshotProxy);}},_onSelectedViewChanged:function(event)
-{this._changeView(event.target.selectedIndex);},_updateSelectorsVisibility:function()
-{if(this.currentView===this.diffView)
-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)
-{var span=target.enclosingNodeOrSelfWithNodeName("span");if(!span)
-return;var row=target.enclosingNodeOrSelfWithNodeName("tr");if(!row)
-return;span.node=row._dataGridNode;return span;},_resolveObjectForPopover:function(element,showCallback,objectGroupName)
-{if(this.profile.fromFile())
-return;element.node.queryObjectContent(showCallback,objectGroupName);},_startRetainersHeaderDragging:function(event)
-{if(!this.isShowing())
-return false;this._previousDragPosition=event.pageY;return true;},_retainersHeaderDragging:function(event)
-{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.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)
-return;if(!this.filterSelect.size())
-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)
-{this._updateBaseOptions();this._updateFilterOptions();},__proto__:WebInspector.View.prototype}
-WebInspector.HeapProfilerDispatcher=function()
-{this._dispatchers=[];InspectorBackend.registerHeapProfilerDispatcher(this);}
-WebInspector.HeapProfilerDispatcher.prototype={register:function(dispatcher)
-{this._dispatchers.push(dispatcher);},_genericCaller:function(eventName)
-{var args=Array.prototype.slice.call(arguments.callee.caller.arguments);for(var i=0;i<this._dispatchers.length;++i)
-this._dispatchers[i][eventName].apply(this._dispatchers[i],args);},heapStatsUpdate:function(samples)
-{this._genericCaller("heapStatsUpdate");},lastSeenObjectId:function(lastSeenObjectId,timestamp)
-{this._genericCaller("lastSeenObjectId");},addProfileHeader:function(profileHeader)
-{this._genericCaller("addProfileHeader");},addHeapSnapshotChunk:function(uid,chunk)
-{this._genericCaller("addHeapSnapshotChunk");},reportHeapSnapshotProgress:function(done,total)
-{this._genericCaller("reportHeapSnapshotProgress");},resetProfiles:function()
-{this._genericCaller("resetProfiles");}}
-WebInspector.HeapProfilerDispatcher._dispatcher=new WebInspector.HeapProfilerDispatcher();WebInspector.HeapSnapshotProfileType=function()
-{WebInspector.ProfileType.call(this,WebInspector.HeapSnapshotProfileType.TypeId,WebInspector.UIString("Take Heap Snapshot"));WebInspector.HeapProfilerDispatcher._dispatcher.register(this);}
-WebInspector.HeapSnapshotProfileType.TypeId="HEAP";WebInspector.HeapSnapshotProfileType.SnapshotReceived="SnapshotReceived";WebInspector.HeapSnapshotProfileType.prototype={fileExtension:function()
-{return".heapsnapshot";},get buttonTooltip()
-{return WebInspector.UIString("Take heap snapshot.");},isInstantProfile:function()
-{return true;},buttonClicked:function()
-{this._takeHeapSnapshot(function(){});WebInspector.userMetrics.ProfilesHeapProfileTaken.record();return false;},heapStatsUpdate:function(samples)
-{},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.");},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.profileBeingRecorded();if(!profile)
-return;profile.sidebarElement.subtitle=WebInspector.UIString("%.0f%",(done/total)*100);profile.sidebarElement.wait=true;},resetProfiles:function()
-{this._reset();},removeProfile:function(profile)
-{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)
-{if(!this._profileSamples)
-return;var index;for(var i=0;i<samples.length;i+=3){index=samples[i];var count=samples[i+1];var size=samples[i+2];this._profileSamples.sizes[index]=size;if(!this._profileSamples.max[index]||size>this._profileSamples.max[index])
-this._profileSamples.max[index]=size;}
-this._lastUpdatedIndex=index;},lastSeenObjectId:function(lastSeenObjectId,timestamp)
-{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._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()
-{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;},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;this._bufferedWriter=null;}
-WebInspector.HeapProfileHeader.prototype={createSidebarTreeElement:function()
-{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);console.assert(loaderProxy);loaderProxy.addConsumer(callback);},_transferSnapshot:function()
-{function finishTransfer()
-{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.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();}
-this.removeTempFile();},_updateSubtitle:function(value)
-{this.sidebarElement.subtitle=value;},_didCompleteSnapshotTransfer:function()
-{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);worker.startCheckingForLongRunningCalls();this.notifySnapshotReceived();function didGetMaxNodeId(id)
-{this.maxJSObjectId=id;}
-if(this.fromFile())
-snapshotProxy.maxJsNodeId(didGetMaxNodeId.bind(this));},notifySnapshotReceived:function()
-{this._profileType._snapshotReceived(this);},_wasShown:function()
-{},canSaveToFile:function()
-{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)
-{this._numberOfChunks=0;this._savedChunks=0;this._header=header;this._totalNumberOfChunks=0;this._title=title;}
-WebInspector.SnapshotTransferHandler.prototype={transferChunk:function(chunk)
-{++this._numberOfChunks;this._header._receiver.write(chunk,this._didTransferChunk.bind(this));},finishTransfer:function()
-{},_didTransferChunk:function()
-{this._updateProgress(++this._savedChunks,this._totalNumberOfChunks);},_updateProgress:function(value,total)
-{}}
-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._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;}
-WebInspector.HeapSnapshotLoadFromFileDelegate.prototype={onTransferStarted:function()
-{},onChunkTransferred:function(reader)
-{},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._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)
-{this._profileSamples=event.data;this._scheduleUpdate();},_drawOverviewCanvas:function(width,height)
-{if(!this._profileSamples)
-return;var profileSamples=this._profileSamples;var sizes=profileSamples.sizes;var topSizes=profileSamples.max;var timestamps=profileSamples.timestamps;var startTime=timestamps[0];var endTime=timestamps[timestamps.length-1];var scaleFactor=this._xScale.nextScale(width/profileSamples.totalTime);var maxSize=0;function aggregateAndCall(sizes,callback)
-{var size=0;var currentX=0;for(var i=1;i<timestamps.length;++i){var x=Math.floor((timestamps[i]-startTime)*scaleFactor);if(x!==currentX){if(size)
-callback(currentX,size);size=0;currentX=x;}
-size+=sizes[i];}
-callback(currentX,size);}
-function maxSizeCallback(x,size)
-{maxSize=Math.max(maxSize,size);}
-aggregateAndCall(sizes,maxSizeCallback);var yScaleFactor=this._yScale.nextScale(maxSize?height/(maxSize*1.1):0.0);this._overviewCanvas.width=width*window.devicePixelRatio;this._overviewCanvas.height=height*window.devicePixelRatio;this._overviewCanvas.style.width=width+"px";this._overviewCanvas.style.height=height+"px";var context=this._overviewCanvas.getContext("2d");context.scale(window.devicePixelRatio,window.devicePixelRatio);context.beginPath();context.lineWidth=2;context.strokeStyle="rgba(192, 192, 192, 0.6)";var currentX=(endTime-startTime)*scaleFactor;context.moveTo(currentX,height-1);context.lineTo(currentX,0);context.stroke();context.closePath();var gridY;var gridValue;var gridLabelHeight=14;if(yScaleFactor){const maxGridValue=(height-gridLabelHeight)/yScaleFactor;gridValue=Math.pow(1024,Math.floor(Math.log(maxGridValue)/Math.log(1024)));gridValue*=Math.pow(10,Math.floor(Math.log(maxGridValue/gridValue)/Math.LN10));if(gridValue*5<=maxGridValue)
-gridValue*=5;gridY=Math.round(height-gridValue*yScaleFactor-0.5)+0.5;context.beginPath();context.lineWidth=1;context.strokeStyle="rgba(0, 0, 0, 0.2)";context.moveTo(0,gridY);context.lineTo(width,gridY);context.stroke();context.closePath();}
-function drawBarCallback(x,size)
-{context.moveTo(x,height-1);context.lineTo(x,Math.round(height-size*yScaleFactor-1));}
-context.beginPath();context.lineWidth=2;context.strokeStyle="rgba(192, 192, 192, 0.6)";aggregateAndCall(topSizes,drawBarCallback);context.stroke();context.closePath();context.beginPath();context.lineWidth=2;context.strokeStyle="rgba(0, 0, 192, 0.8)";aggregateAndCall(sizes,drawBarCallback);context.stroke();context.closePath();if(gridValue){var label=Number.bytesToString(gridValue);var labelPadding=4;var labelX=0;var labelY=gridY-0.5;var labelWidth=2*labelPadding+context.measureText(label).width;context.beginPath();context.textBaseline="bottom";context.font="10px "+window.getComputedStyle(this.element,null).getPropertyValue("font-family");context.fillStyle="rgba(255, 255, 255, 0.75)";context.fillRect(labelX,labelY-gridLabelHeight,labelWidth,gridLabelHeight);context.fillStyle="rgb(64, 64, 64)";context.fillText(label,labelX+labelPadding,labelY);context.fill();context.closePath();}},onResize:function()
-{this._updateOverviewCanvas=true;this._scheduleUpdate();},_onWindowChanged:function()
-{if(!this._updateGridTimerId)
-this._updateGridTimerId=setTimeout(this._updateGrid.bind(this),10);},_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;},update:function()
-{this._updateTimerId=null;if(!this.isShowing())
-return;this._updateBoundaries();this._overviewCalculator._updateBoundaries(this);this._overviewGrid.updateDividers(this._overviewCalculator);this._drawOverviewCanvas(this._overviewContainer.clientWidth,this._overviewContainer.clientHeight-20);},_updateGrid:function()
-{this._updateGridTimerId=0;this._updateBoundaries();var ids=this._profileSamples.ids;var timestamps=this._profileSamples.timestamps;var sizes=this._profileSamples.sizes;var startTime=timestamps[0];var totalTime=this._profileSamples.totalTime;var timeLeft=startTime+totalTime*this._windowLeft;var timeRight=startTime+totalTime*this._windowRight;var minId=0;var maxId=ids[ids.length-1]+1;var size=0;for(var i=0;i<timestamps.length;++i){if(!timestamps[i])
-continue;if(timestamps[i]>timeRight)
-break;maxId=ids[i];if(timestamps[i]<timeLeft){minId=ids[i];continue;}
-size+=sizes[i];}
-this.dispatchEventToListeners(WebInspector.HeapTrackingOverviewGrid.IdsRangeChanged,{minId:minId,maxId:maxId,size:size});},__proto__:WebInspector.View.prototype}
-WebInspector.HeapTrackingOverviewGrid.SmoothScale=function()
-{this._lastUpdate=0;this._currentScale=0.0;}
-WebInspector.HeapTrackingOverviewGrid.SmoothScale.prototype={nextScale:function(target){target=target||this._currentScale;if(this._currentScale){var now=Date.now();var timeDeltaMs=now-this._lastUpdate;this._lastUpdate=now;var maxChangePerSec=20;var maxChangePerDelta=Math.pow(maxChangePerSec,timeDeltaMs/1000);var scaleChange=target/this._currentScale;this._currentScale*=Number.constrain(scaleChange,1/maxChangePerDelta,maxChangePerDelta);}else
-this._currentScale=target;return this._currentScale;}}
-WebInspector.HeapTrackingOverviewGrid.OverviewCalculator=function()
-{}
-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,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.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.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);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 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();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)
-this.appendChild(new WebInspector.TopDownProfileDataGridNode(children[i],this.tree));this._remainingChildren=null;},_exclude:function(aCallUID)
-{if(this._remainingChildren)
-this.populate();this._save();var children=this.children;var index=this.children.length;while(index--)
-children[index]._exclude(aCallUID);var child=this.childrenByCallUID[aCallUID];if(child)
-this._merge(child,true);},__proto__:WebInspector.ProfileDataGridNode.prototype}
-WebInspector.TopDownProfileDataGridTree=function(profileView,rootProfileNode)
-{WebInspector.ProfileDataGridTree.call(this,profileView,rootProfileNode);this._remainingChildren=rootProfileNode.children;var any=(this);var node=(any);WebInspector.TopDownProfileDataGridNode.prototype.populate.call(node);}
-WebInspector.TopDownProfileDataGridTree.prototype={focus:function(profileDataGridNode)
-{if(!profileDataGridNode)
-return;this._save();profileDataGridNode.savePosition();this.children=[profileDataGridNode];this.totalTime=profileDataGridNode.totalTime;},exclude:function(profileDataGridNode)
-{if(!profileDataGridNode)
-return;this._save();var excludedCallUID=profileDataGridNode.callUID;var any=(this);var node=(any);WebInspector.TopDownProfileDataGridNode.prototype._exclude.call(node,excludedCallUID);if(this.lastComparator)
-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.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()
-{return this._profile;},elementsToRestoreScrollPositionsFor:function()
-{return[this._logGrid.scrollContainer];},_installReplayInfoSidebarWidgets:function(controlsContainer)
-{this._replayInfoResizeWidgetElement=controlsContainer.createChild("div","resizer-widget");this._replayInfoSplitView.installResizer(this._replayInfoResizeWidgetElement);this._toggleReplayStateSidebarButton=new WebInspector.StatusBarButton("","right-sidebar-show-hide-button canvas-sidebar-show-hide-button",3);this._toggleReplayStateSidebarButton.addEventListener("click",clickHandler,this);controlsContainer.appendChild(this._toggleReplayStateSidebarButton.element);this._enableReplayInfoSidebar(false);function clickHandler()
-{this._enableReplayInfoSidebar(this._toggleReplayStateSidebarButton.state==="left");}},_enableReplayInfoSidebar:function(show)
-{if(show){this._toggleReplayStateSidebarButton.state="right";this._toggleReplayStateSidebarButton.title=WebInspector.UIString("Hide sidebar.");this._replayInfoSplitView.showBoth();}else{this._toggleReplayStateSidebarButton.state="left";this._toggleReplayStateSidebarButton.title=WebInspector.UIString("Show sidebar.");this._replayInfoSplitView.showOnlyFirst();}
-this._replayInfoResizeWidgetElement.enableStyleClass("hidden",!show);},_onMouseClick:function(event)
-{var resourceLinkElement=event.target.enclosingNodeOrSelfWithClass("canvas-formatted-resource");if(resourceLinkElement){this._enableReplayInfoSidebar(true);this._replayStateView.selectResource(resourceLinkElement.__resourceId);event.consume(true);return;}
-if(event.target.enclosingNodeOrSelfWithClass("webkit-html-resource-link"))
-event.consume(false);},_createControlButton:function(parent,className,title,clickCallback)
-{var button=new WebInspector.StatusBarButton(title,className+" canvas-replay-button");parent.appendChild(button.element);button.makeLongClickEnabled();button.addEventListener("click",clickCallback,this);button.addEventListener("longClickDown",clickCallback,this);button.addEventListener("longClickPress",clickCallback,this);},_onReplayContextChanged:function()
-{var selectedContextId=this._replayContextSelector.selectedOption().value;function didReceiveResourceState(resourceState)
-{this._enableWaitIcon(false);if(selectedContextId!==this._replayContextSelector.selectedOption().value)
-return;var imageURL=(resourceState&&resourceState.imageURL)||"";this._replayImageElement.src=imageURL;this._replayImageElement.style.visibility=imageURL?"":"hidden";}
-this._enableWaitIcon(true);this._traceLogPlayer.getResourceState(selectedContextId,didReceiveResourceState.bind(this));},_onReplayStepClick:function(forward)
-{var selectedNode=this._logGrid.selectedNode;if(!selectedNode)
-return;var nextNode=selectedNode;do{nextNode=forward?nextNode.traverseNextNode(false):nextNode.traversePreviousNode(false);}while(nextNode&&typeof nextNode.index!=="number");(nextNode||selectedNode).revealAndSelect();},_onReplayDrawingCallClick:function(forward)
-{var selectedNode=this._logGrid.selectedNode;if(!selectedNode)
-return;var nextNode=selectedNode;while(nextNode){var sibling=forward?nextNode.nextSibling:nextNode.previousSibling;if(sibling){nextNode=sibling;if(nextNode.hasChildren||nextNode.call.isDrawingCall)
-break;}else{nextNode=nextNode.parent;if(!forward)
-break;}}
-if(!nextNode&&forward)
-this._onReplayLastStepClick();else
-(nextNode||selectedNode).revealAndSelect();},_onReplayFirstStepClick:function()
-{var firstNode=this._logGrid.rootNode().children[0];if(firstNode)
-firstNode.revealAndSelect();},_onReplayLastStepClick:function()
-{var lastNode=this._logGrid.rootNode().children.peekLast();if(!lastNode)
-return;while(lastNode.expanded){var lastChild=lastNode.children.peekLast();if(!lastChild)
-break;lastNode=lastChild;}
-lastNode.revealAndSelect();},_enableWaitIcon:function(enable)
-{this._spinnerIcon.enableStyleClass("hidden",!enable);this._debugInfoElement.enableStyleClass("hidden",enable);},_replayTraceLog:function()
-{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=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)
-{this._enableWaitIcon(false);if(!traceLog)
-return;var callNodes=[];var calls=traceLog.calls;var index=traceLog.startOffset;for(var i=0,n=calls.length;i<n;++i)
-callNodes.push(this._createCallNode(index++,calls[i]));var contexts=traceLog.contexts;for(var i=0,n=contexts.length;i<n;++i){var contextId=contexts[i].resourceId||"";var description=contexts[i].description||"";if(this._replayContexts[contextId])
-continue;this._replayContexts[contextId]=true;this._replayContextSelector.createOption(description,WebInspector.UIString("Show screenshot of this context's canvas."),contextId);}
-this._appendCallNodes(callNodes);if(traceLog.alive)
-setTimeout(this._requestTraceLog.bind(this,index),WebInspector.CanvasProfileView.TraceLogPollingInterval);else
-this._flattenSingleFrameNode();this._profile._updateCapturingStatus(traceLog);this._onReplayLastStepClick();}
-this._enableWaitIcon(true);this._traceLogPlayer.getTraceLog(offset,undefined,didReceiveTraceLog.bind(this));},_selectedCallIndex:function()
-{var node=this._logGrid.selectedNode;return node?this._peekLastRecursively(node).index:-1;},_peekLastRecursively:function(node)
-{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]=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]=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;}
-var newDrawCallGroup=appendDrawCallGroup();var lastNode;while((lastNode=drawCallGroup.children[splitIndex+1]))
-newDrawCallGroup.appendChild(lastNode);return newDrawCallGroup;}
-var drawCallGroup=frameNode.children.peekLast();var groupHasDrawCall=false;if(drawCallGroup){for(var i=0,n=drawCallGroup.children.length;i<n;++i){if(drawCallGroup.children[i].call.isDrawingCall){groupHasDrawCall=true;break;}}}else
-drawCallGroup=appendDrawCallGroup();for(var i=fromIndex;i<toIndex;++i){var node=callNodes[i];drawCallGroup.appendChild(node);if(node.call.isDrawingCall){if(groupHasDrawCall)
-drawCallGroup=splitDrawCallGroup(drawCallGroup);else
-groupHasDrawCall=true;}}},_createCallNode:function(index,call)
-{var callViewElement=document.createElement("div");var data={};data[0]=index+1;data[1]=callViewElement;data[2]="";if(call.sourceURL){var lineNumber=Math.max(0,call.lineNumber-1)||0;var columnNumber=Math.max(0,call.columnNumber-1)||0;data[2]=this._linkifier.linkifyLocation(call.sourceURL,lineNumber,columnNumber);}
-callViewElement.createChild("span","canvas-function-name").textContent=call.functionName||"context."+call.property;if(call.arguments){callViewElement.createTextChild("(");for(var i=0,n=call.arguments.length;i<n;++i){var argument=(call.arguments[i]);if(i)
-callViewElement.createTextChild(", ");var element=WebInspector.CanvasProfileDataGridHelper.createCallArgumentElement(argument);element.__argumentIndex=i;callViewElement.appendChild(element);}
-callViewElement.createTextChild(")");}else if(call.value){callViewElement.createTextChild(" = ");callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper.createCallArgumentElement(call.value));}
-if(call.result){callViewElement.createTextChild(" => ");callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper.createCallArgumentElement(call.result));}
-var node=new WebInspector.DataGridNode(data);node.index=index;node.selectable=true;node.call=call;return node;},_popoverAnchor:function(element,event)
-{var argumentElement=element.enclosingNodeOrSelfWithClass("canvas-call-argument");if(!argumentElement||argumentElement.__suppressPopover)
-return null;return argumentElement;},_resolveObjectForPopover:function(argumentElement,showCallback,objectGroupName)
-{function showObjectPopover(error,result,resourceState)
-{if(error)
-return;if(!result)
-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")
-argumentIndex=-1;CanvasAgent.evaluateTraceLogCallArgument(this._traceLogId,callIndex,argumentIndex,objectGroupName,showObjectPopover.bind(this));}},_hexNumbersFormatter:function(object)
-{if(object.type==="number"){var str="0000"+Number(object.description).toString(16).toUpperCase();str=str.replace(/^0+(.{4,})$/,"$1");return"0x"+str;}
-return object.description||"";},_onHidePopover:function()
-{if(this._popoverAnchorElement){this._popoverAnchorElement.remove()
-delete this._popoverAnchorElement;}},_flattenSingleFrameNode:function()
-{var rootNode=this._logGrid.rootNode();if(rootNode.children.length!==1)
-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.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())
-return WebInspector.UIString("Capture next canvas frame.");else
-return this._recording?WebInspector.UIString("Stop capturing canvas frames."):WebInspector.UIString("Start capturing canvas frames.");},buttonClicked:function()
-{if(!this._canvasAgentEnabled)
-return false;if(this._recording){this._recording=false;this._stopFrameCapturing();}else if(this._isSingleFrameMode()){this._recording=false;this._runSingleFrameCapturing();}else{this._recording=true;this._startFrameCapturing();}
-return this._recording;},_runSingleFrameCapturing:function()
-{var frameId=this._selectedFrameId();CanvasAgent.captureFrame(frameId,this._didStartCapturingFrame.bind(this,frameId));},_startFrameCapturing:function()
-{var frameId=this._selectedFrameId();CanvasAgent.startCapturing(frameId,this._didStartCapturingFrame.bind(this,frameId));},_stopFrameCapturing:function()
-{if(!this._lastProfileHeader)
-return;var profileHeader=this._lastProfileHeader;var traceLogId=profileHeader.traceLogId();this._lastProfileHeader=null;function didStopCapturing()
-{profileHeader._updateCapturingStatus();}
-CanvasAgent.stopCapturing(traceLogId,didStopCapturing.bind(this));},_didStartCapturingFrame:function(frameId,error,traceLogId)
-{if(error||this._lastProfileHeader&&this._lastProfileHeader.traceLogId()===traceLogId)
-return;var profileHeader=new WebInspector.CanvasProfileHeader(this,WebInspector.UIString("Trace Log %d",this._nextProfileUid),this._nextProfileUid,traceLogId,frameId);++this._nextProfileUid;this._lastProfileHeader=profileHeader;this.addProfile(profileHeader);profileHeader._updateCapturingStatus();},get treeItemTitle()
-{return WebInspector.UIString("CANVAS PROFILE");},get description()
-{return WebInspector.UIString("Canvas calls instrumentation");},decorationElement:function()
-{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;},_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)
-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)
-return;this._canvasAgentEnabled=enable;this._updateDecorationElement(true);this._dispatchViewUpdatedEvent();}
-if(enable)
-CanvasAgent.enable(callback.bind(this));else
-CanvasAgent.disable(callback.bind(this));},_isSingleFrameMode:function()
-{return!this._capturingModeSelector.selectedOption().value;},_frameAdded:function(event)
-{var contextList=(event.data);this._addFrame(contextList);},_addFrame:function(contextList)
-{var frameId=contextList.frameId;var option=document.createElement("option");option.text=contextList.displayName;option.title=contextList.url;option.value=frameId;this._frameOptions[frameId]=option;if(this._framesWithCanvases[frameId]){this._frameSelector.addOption(option);this._dispatchViewUpdatedEvent();}},_frameRemoved:function(event)
-{var contextList=(event.data);var frameId=contextList.frameId;var option=this._frameOptions[frameId];if(option&&this._framesWithCanvases[frameId]){this._frameSelector.removeOption(option);this._dispatchViewUpdatedEvent();}
-delete this._frameOptions[frameId];delete this._framesWithCanvases[frameId];},_contextCreated:function(frameId)
-{if(this._framesWithCanvases[frameId])
-return;this._framesWithCanvases[frameId]=true;var option=this._frameOptions[frameId];if(option){this._frameSelector.addOption(option);this._dispatchViewUpdatedEvent();}},_traceLogsRemoved:function(frameId,traceLogId)
-{var sidebarElementsToDelete=[];var sidebarElements=((this.treeElement&&this.treeElement.children)||[]);for(var i=0,n=sidebarElements.length;i<n;++i){var header=(sidebarElements[i].profile);if(!header)
-continue;if(frameId&&frameId!==header.frameId())
-continue;if(traceLogId&&traceLogId!==header.traceLogId())
-continue;sidebarElementsToDelete.push(sidebarElements[i]);}
-for(var i=0,n=sidebarElementsToDelete.length;i<n;++i)
-sidebarElementsToDelete[i].ondelete();},_selectedFrameId:function()
-{var option=this._frameSelector.selectedOption();return option?option.value:undefined;},_dispatchViewUpdatedEvent:function()
-{this._frameSelector.element.enableStyleClass("hidden",this._frameSelector.size()<=1);this.dispatchEventToListeners(WebInspector.ProfileType.Events.ViewUpdated);},isInstantProfile:function()
-{return this._isSingleFrameMode();},isEnabled:function()
-{return this._canvasAgentEnabled;},__proto__:WebInspector.ProfileType.prototype}
-WebInspector.CanvasDispatcher=function(profileType)
-{this._profileType=profileType;InspectorBackend.registerCanvasDispatcher(this);}
-WebInspector.CanvasDispatcher.prototype={contextCreated:function(frameId)
-{this._profileType._contextCreated(frameId);},traceLogsRemoved:function(frameId,traceLogId)
-{this._profileType._traceLogsRemoved(frameId,traceLogId);}}
-WebInspector.CanvasProfileHeader=function(type,title,uid,traceLogId,frameId)
-{WebInspector.ProfileHeader.call(this,type,title,uid);this._traceLogId=traceLogId||"";this._frameId=frameId;this._alive=true;this._traceLogSize=0;this._traceLogPlayer=traceLogId?new WebInspector.CanvasTraceLogPlayerProxy(traceLogId):null;}
-WebInspector.CanvasProfileHeader.prototype={traceLogId:function()
-{return this._traceLogId;},traceLogPlayer:function()
-{return this._traceLogPlayer;},frameId:function()
-{return this._frameId;},createSidebarTreeElement:function()
-{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)
-{if(!this.sidebarElement||!this._traceLogId)
-return;if(traceLog){this._alive=traceLog.alive;this._traceLogSize=traceLog.totalAvailableCalls;}
-this.sidebarElement.subtitle=this._alive?WebInspector.UIString("Capturing\u2026 %d calls",this._traceLogSize):WebInspector.UIString("Captured %d calls",this._traceLogSize);this.sidebarElement.wait=this._alive;if(this._alive){clearTimeout(this._requestStatusTimer);this._requestStatusTimer=setTimeout(this._requestCapturingStatus.bind(this),WebInspector.CanvasProfileView.TraceLogPollingInterval);}},_requestCapturingStatus:function()
-{function didReceiveTraceLog(traceLog)
-{if(!traceLog)
-return;this._alive=traceLog.alive;this._traceLogSize=traceLog.totalAvailableCalls;this._updateCapturingStatus();}
-this._traceLogPlayer.getTraceLog(0,0,didReceiveTraceLog.bind(this));},__proto__:WebInspector.ProfileHeader.prototype}
-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.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.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)
-{this._traceLogId=traceLogId;this._currentResourceStates={};this._defaultResourceId=null;}
-WebInspector.CanvasTraceLogPlayerProxy.Events={CanvasTraceLogReceived:"CanvasTraceLogReceived",CanvasReplayStateChanged:"CanvasReplayStateChanged",CanvasResourceStateReceived:"CanvasResourceStateReceived",}
-WebInspector.CanvasTraceLogPlayerProxy.prototype={getTraceLog:function(startOffset,maxLength,userCallback)
-{function callback(error,traceLog)
-{if(error||!traceLog){userCallback(null);return;}
-userCallback(traceLog);this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Events.CanvasTraceLogReceived,traceLog);}
-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;}
-var effectiveResourceId=(resourceId);if(this._currentResourceStates[effectiveResourceId]){userCallback(this._currentResourceStates[effectiveResourceId]);return;}
-function callback(error,resourceState)
-{if(error||!resourceState){userCallback(null);return;}
-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){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.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)
-{var button=new WebInspector.StatusBarButton(title,className+" canvas-replay-button");parent.appendChild(button.element);button.makeLongClickEnabled();button.addEventListener("click",clickCallback,this);button.addEventListener("longClickDown",clickCallback,this);button.addEventListener("longClickPress",clickCallback,this);return button;},_onResourceNavigationClick:function(forward)
-{var newOption=forward?this._nextOptionsStack.pop():this._prevOptionsStack.pop();if(!newOption)
-return;(forward?this._prevOptionsStack:this._nextOptionsStack).push(this._currentOption);this._isNavigationButton=true;this.selectResource(newOption.value);delete this._isNavigationButton;this._updateButtonsEnabledState();},_onStateRefreshClick:function()
-{this._traceLogPlayer.clearResourceStates();},_updateButtonsEnabledState:function()
-{this._prevButton.setEnabled(this._prevOptionsStack.length>0);this._nextButton.setEnabled(this._nextOptionsStack.length>0);},_updateCurrentOption:function()
-{const maxStackSize=256;var selectedOption=this._resourceSelector.selectedOption();if(this._currentOption===selectedOption)
-return;if(!this._isNavigationButton){this._prevOptionsStack.push(this._currentOption);this._nextOptionsStack=[];if(this._prevOptionsStack.length>maxStackSize)
-this._prevOptionsStack.shift();this._updateButtonsEnabledState();}
-this._currentOption=selectedOption;},_collectResourcesFromTraceLog:function(traceLog)
-{var collectedResources=[];var calls=traceLog.calls;for(var i=0,n=calls.length;i<n;++i){var call=calls[i];var args=call.arguments||[];for(var j=0;j<args.length;++j)
-this._collectResourceFromCallArgument(args[j],collectedResources);this._collectResourceFromCallArgument(call.result,collectedResources);this._collectResourceFromCallArgument(call.value,collectedResources);}
-var contexts=traceLog.contexts;for(var i=0,n=contexts.length;i<n;++i)
-this._collectResourceFromCallArgument(contexts[i],collectedResources);this._addCollectedResourcesToSelector(collectedResources);},_collectResourcesFromResourceState:function(resourceState)
-{var collectedResources=[];this._collectResourceFromResourceStateDescriptors(resourceState.descriptors,collectedResources);this._addCollectedResourcesToSelector(collectedResources);},_collectResourceFromResourceStateDescriptors:function(descriptors,output)
-{if(!descriptors)
-return;for(var i=0,n=descriptors.length;i<n;++i){var descriptor=descriptors[i];this._collectResourceFromCallArgument(descriptor.value,output);this._collectResourceFromResourceStateDescriptors(descriptor.values,output);}},_collectResourceFromCallArgument:function(argument,output)
-{if(!argument)
-return;var resourceId=argument.resourceId;if(!resourceId||this._resourceIdToDescription[resourceId])
-return;this._resourceIdToDescription[resourceId]=argument.description;output.push(argument);},_addCollectedResourcesToSelector:function(collectedResources)
-{if(!collectedResources.length)
-return;function comparator(arg1,arg2)
-{var a=arg1.description;var b=arg2.description;return String.naturalOrderComparator(a,b);}
-collectedResources.sort(comparator);var selectElement=this._resourceSelector.selectElement();var currentOption=selectElement.firstChild;currentOption=currentOption.nextSibling;for(var i=0,n=collectedResources.length;i<n;++i){var argument=collectedResources[i];while(currentOption&&String.naturalOrderComparator(currentOption.text,argument.description)<0)
-currentOption=currentOption.nextSibling;var option=this._resourceSelector.createOption(argument.description,WebInspector.UIString("Show state of this resource."),argument.resourceId);if(currentOption)
-selectElement.insertBefore(option,currentOption);}},_onReplayResourceChanged:function()
-{this._updateCurrentOption();var selectedResourceId=this._resourceSelector.selectedOption().value;function didReceiveResourceState(resourceState)
-{if(selectedResourceId!==this._resourceSelector.selectedOption().value)
-return;this._showResourceState(resourceState);}
-this._traceLogPlayer.getResourceState(selectedResourceId,didReceiveResourceState.bind(this));},_onCanvasTraceLogReceived:function(event)
-{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)
-return;for(var i=0,child;child=node.children[i];++i){var item={node:child,children:{}};map[child.name]=item;populateNameToNodesMap(item.children,child);}}
-populateNameToNodesMap(nameToOldGridNodes,rootNode);rootNode.removeChildren();function comparator(d1,d2)
-{var hasChildren1=!!d1.values;var hasChildren2=!!d2.values;if(hasChildren1!==hasChildren2)
-return hasChildren1?1:-1;return String.naturalOrderComparator(d1.name,d2.name);}
-function appendResourceStateDescriptors(descriptors,parent,nameToOldChildren)
-{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.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);}}
-processRecursively(this._stateGrid.rootNode(),"");},_saveExpandedState:function()
-{if(!this._currentResourceId)
-return;var expandedState={};var key=this._resourceKindId(this._currentResourceId);this._gridNodesExpandedState[key]=expandedState;function callback(node,key)
-{if(node.expanded)
-expandedState[key]=true;}
-this._forEachGridNode(callback);},_restoreExpandedState:function()
-{if(!this._currentResourceId)
-return;var key=this._resourceKindId(this._currentResourceId);var expandedState=this._gridNodesExpandedState[key];if(!expandedState)
-return;function callback(node,key)
-{if(expandedState[key])
-node.expand();}
-this._forEachGridNode(callback);},_saveScrollState:function()
-{if(!this._currentResourceId)
-return;var key=this._resourceKindId(this._currentResourceId);this._gridScrollPositions[key]={scrollTop:this._stateGrid.scrollContainer.scrollTop,scrollLeft:this._stateGrid.scrollContainer.scrollLeft};},_restoreScrollState:function()
-{if(!this._currentResourceId)
-return;var key=this._resourceKindId(this._currentResourceId);var scrollState=this._gridScrollPositions[key];if(!scrollState)
-return;this._stateGrid.scrollContainer.scrollTop=scrollState.scrollTop;this._stateGrid.scrollContainer.scrollLeft=scrollState.scrollLeft;},_createDataGridNode:function(descriptor)
-{var name=descriptor.name;var callArgument=descriptor.value;var valueElement=callArgument?WebInspector.CanvasProfileDataGridHelper.createCallArgumentElement(callArgument):"";var nameElement=name;if(typeof descriptor.enumValueForName!=="undefined")
-nameElement=WebInspector.CanvasProfileDataGridHelper.createEnumValueElement(name,+descriptor.enumValueForName);if(descriptor.isArray&&descriptor.values){if(typeof nameElement==="string")
-nameElement+="["+descriptor.values.length+"]";else{var element=document.createElement("span");element.appendChild(nameElement);element.createTextChild("["+descriptor.values.length+"]");nameElement=element;}}
-var data={};data[0]=nameElement;data[1]=valueElement;var node=new WebInspector.DataGridNode(data);node.selectable=false;node.name=name;return node;},__proto__:WebInspector.View.prototype};
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ResourcesPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ResourcesPanel.js
deleted file mode 100644 (file)
index 1dc11e6..0000000
+++ /dev/null
@@ -1,590 +0,0 @@
-WebInspector.ApplicationCacheItemsView=function(model,frameId)
-{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()
-{this.deleteButton.visible=false;},_maybeUpdate:function()
-{if(!this.isShowing()||!this._viewDirty)
-return;this._update();this._viewDirty=false;},_markDirty:function()
-{this._viewDirty=true;},updateStatus:function(status)
-{var oldStatus=this._status;this._status=status;var statusInformation={};statusInformation[applicationCache.UNCACHED]={className:"red-ball",text:"UNCACHED"};statusInformation[applicationCache.IDLE]={className:"green-ball",text:"IDLE"};statusInformation[applicationCache.CHECKING]={className:"orange-ball",text:"CHECKING"};statusInformation[applicationCache.DOWNLOADING]={className:"orange-ball",text:"DOWNLOADING"};statusInformation[applicationCache.UPDATEREADY]={className:"green-ball",text:"UPDATEREADY"};statusInformation[applicationCache.OBSOLETE]={className:"red-ball",text:"OBSOLETE"};var info=statusInformation[status]||statusInformation[applicationCache.UNCACHED];this.statusIcon.className="storage-application-cache-status-icon "+info.className;this.statusMessage.textContent=info.text;if(this.isShowing()&&this._status===applicationCache.IDLE&&(oldStatus===applicationCache.UPDATEREADY||!this._resources))
-this._markDirty();this._maybeUpdate();},updateNetworkState:function(isNowOnline)
-{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.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.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]);}
-function localeCompare(field,resource1,resource2)
-{return sortDirection*(resource1[field]+"").localeCompare(resource2[field]+"")}
-var comparator;switch(parseInt(this._dataGrid.sortColumnIdentifier(),10)){case 0:comparator=localeCompare.bind(this,"name");break;case 1:comparator=localeCompare.bind(this,"type");break;case 2:comparator=numberCompare.bind(this,"size");break;default:localeCompare.bind(this,"resource");}
-this._resources.sort(comparator);this._dataGrid.rootNode().removeChildren();var nodeToSelect;for(var i=0;i<this._resources.length;++i){var data={};var resource=this._resources[i];data[0]=resource.url;data[1]=resource.type;data[2]=Number.bytesToString(resource.size);var node=new WebInspector.DataGridNode(data);node.resource=resource;node.selectable=true;this._dataGrid.rootNode().appendChild(node);if(resource===selectedResource){nodeToSelect=node;nodeToSelect.selected=true;}}
-if(!nodeToSelect&&this._dataGrid.rootNode().children.length)
-this._dataGrid.rootNode().children[0].selected=true;},_deleteButtonClicked:function(event)
-{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.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()
-{this.deleteButton.visible=false;},_domStorageItemsCleared:function(event)
-{if(!this.isShowing()||!this._dataGrid)
-return;this._dataGrid.rootNode().removeChildren();this._dataGrid.addCreationNode(false);this.deleteButton.visible=false;event.consume(true);},_domStorageItemRemoved:function(event)
-{if(!this.isShowing()||!this._dataGrid)
-return;var storageData=event.data;var rootNode=this._dataGrid.rootNode();var children=rootNode.children;event.consume(true);for(var i=0;i<children.length;++i){var childNode=children[i];if(childNode.data.key===storageData.key){rootNode.removeChild(childNode);this.deleteButton.visible=(children.length>1);return;}}},_domStorageItemAdded:function(event)
-{if(!this.isShowing()||!this._dataGrid)
-return;var storageData=event.data;var rootNode=this._dataGrid.rootNode();var children=rootNode.children;event.consume(true);this.deleteButton.visible=true;for(var i=0;i<children.length;++i)
-if(children[i].data.key===storageData.key)
-return;var childNode=new WebInspector.DataGridNode({key:storageData.key,value:storageData.value},false);rootNode.insertChild(childNode,children.length-1);},_domStorageItemUpdated:function(event)
-{if(!this.isShowing()||!this._dataGrid)
-return;var storageData=event.data;var rootNode=this._dataGrid.rootNode();var children=rootNode.children;event.consume(true);var keyFound=false;for(var i=0;i<children.length;++i){var childNode=children[i];if(childNode.data.key===storageData.key){if(keyFound){rootNode.removeChild(childNode);return;}
-keyFound=true;if(childNode.data.value!==storageData.value){childNode.data.value=storageData.value;childNode.refresh();childNode.select();childNode.reveal();}
-this.deleteButton.visible=true;}}},_update:function()
-{this.detachChildViews();this.domStorage.getItems(this._showDOMStorageItems.bind(this));},_showDOMStorageItems:function(error,items)
-{if(error)
-return;this._dataGrid=this._dataGridForDOMStorageItems(items);this._dataGrid.show(this.element);this.deleteButton.visible=(this._dataGrid.rootNode().children.length>1);},_dataGridForDOMStorageItems:function(items)
-{var columns=[{id:"key",title:WebInspector.UIString("Key"),editable:true,weight:50},{id:"value",title:WebInspector.UIString("Value"),editable:true,weight:50}];var nodes=[];var keys=[];var length=items.length;for(var i=0;i<items.length;i++){var key=items[i][0];var value=items[i][1];var node=new WebInspector.DataGridNode({key:key,value:value},false);node.selectable=true;nodes.push(node);keys.push(key);}
-var dataGrid=new WebInspector.DataGrid(columns,this._editingCallback.bind(this),this._deleteCallback.bind(this));dataGrid.setName("DOMStorageItemsView");length=nodes.length;for(var i=0;i<length;++i)
-dataGrid.rootNode().appendChild(nodes[i]);dataGrid.addCreationNode(false);if(length>0)
-nodes[0].selected=true;return dataGrid;},_deleteButtonClicked:function(event)
-{if(!this._dataGrid||!this._dataGrid.selectedNode)
-return;this._deleteCallback(this._dataGrid.selectedNode);this._dataGrid.changeNodeAfterDeletion();},_refreshButtonClicked:function(event)
-{this._update();},_editingCallback:function(editingNode,columnIdentifier,oldText,newText)
-{var domStorage=this.domStorage;if("key"===columnIdentifier){if(typeof oldText==="string")
-domStorage.removeItem(oldText);domStorage.setItem(newText,editingNode.data.value||'');this._removeDupes(editingNode);}else
-domStorage.setItem(editingNode.data.key||'',newText);},_removeDupes:function(masterNode)
-{var rootNode=this._dataGrid.rootNode();var children=rootNode.children;for(var i=children.length-1;i>=0;--i){var childNode=children[i];if((childNode.data.key===masterNode.data.key)&&(masterNode!==childNode))
-rootNode.removeChild(childNode);}},_deleteCallback:function(node)
-{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.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)
-this.prompt.moveCaretToEndOfPrompt();},completions:function(proxyElement,wordRange,force,completionsReadyCallback)
-{var prefix=wordRange.toString().toLowerCase();if(!prefix)
-return;var results=[];function accumulateMatches(textArray)
-{for(var i=0;i<textArray.length;++i){var text=textArray[i].toLowerCase();if(text.length<prefix.length)
-continue;if(!text.startsWith(prefix))
-continue;results.push(textArray[i]);}}
-function tableNamesCallback(tableNames)
-{accumulateMatches(tableNames.map(function(name){return name+" "}));accumulateMatches(["SELECT ","FROM ","WHERE ","LIMIT ","DELETE FROM ","CREATE ","DROP ","TABLE ","INDEX ","UPDATE ","INSERT INTO ","VALUES ("]);completionsReadyCallback(results);}
-this.database.getTableNames(tableNamesCallback);},_selectStart:function(event)
-{if(this._selectionTimeout)
-clearTimeout(this._selectionTimeout);this.prompt.clearAutoComplete();function moveBackIfOutside()
-{delete this._selectionTimeout;if(!this.prompt.isCaretInsidePrompt()&&window.getSelection().isCollapsed)
-this.prompt.moveCaretToEndOfPrompt();this.prompt.autoCompleteSoon();}
-this._selectionTimeout=setTimeout(moveBackIfOutside.bind(this),100);},_promptKeyDown:function(event)
-{if(isEnterKey(event)){this._enterKeyPressed(event);return;}},_enterKeyPressed:function(event)
-{event.consume(true);this.prompt.clearAutoComplete(true);var query=this.prompt.text;if(!query.length)
-return;this.prompt.pushHistoryItem(query);this.prompt.text="";this.database.executeSql(query,this._queryFinished.bind(this,query),this._queryError.bind(this,query));},_queryFinished:function(query,columnNames,values)
-{var dataGrid=WebInspector.DataGrid.createSortableDataGrid(columnNames,values);var trimmedQuery=query.trim();if(dataGrid){dataGrid.renderInline();this._appendViewQueryResult(trimmedQuery,dataGrid);dataGrid.autoSizeColumns(5);}
-if(trimmedQuery.match(/^create /i)||trimmedQuery.match(/^drop table /i))
-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.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.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)
-{return tableName.replace(/\"/g,"\"\"");},update:function()
-{this.database.executeSql("SELECT * FROM \""+this._escapeTableName(this.tableName)+"\"",this._queryFinished.bind(this),this._queryError.bind(this));},_queryFinished:function(columnNames,values)
-{this.detachChildViews();this.element.removeChildren();var dataGrid=WebInspector.DataGrid.createSortableDataGrid(columnNames,values);if(!dataGrid){this._emptyView=new WebInspector.EmptyView(WebInspector.UIString("The “%s”\ntable is empty.",this.tableName));this._emptyView.show(this.element);return;}
-dataGrid.show(this.element);dataGrid.autoSizeColumns(5);},_queryError:function(error)
-{this.detachChildViews();this.element.removeChildren();var errorMsgElement=document.createElement("div");errorMsgElement.className="storage-table-error";errorMsgElement.textContent=WebInspector.UIString("An error occurred trying to\nread the “%s” table.",this.tableName);this.element.appendChild(errorMsgElement);},_refreshButtonClicked:function(event)
-{this.update();},__proto__:WebInspector.View.prototype};WebInspector.DirectoryContentView=function()
-{const indexes=WebInspector.DirectoryContentView.columnIndexes;var columns=[{id:indexes.Name,title:WebInspector.UIString("Name"),sortable:true,sort:WebInspector.DataGrid.Order.Ascending,width:"20%"},{id:indexes.URL,title:WebInspector.UIString("URL"),sortable:true,width:"20%"},{id:indexes.Type,title:WebInspector.UIString("Type"),sortable:true,width:"15%"},{id:indexes.Size,title:WebInspector.UIString("Size"),sortable:true,width:"10%"},{id:indexes.ModificationTime,title:WebInspector.UIString("Modification Time"),sortable:true,width:"25%"}];WebInspector.DataGrid.call(this,columns);this.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._sort,this);}
-WebInspector.DirectoryContentView.columnIndexes={Name:"0",URL:"1",Type:"2",Size:"3",ModificationTime:"4"}
-WebInspector.DirectoryContentView.prototype={showEntries:function(entries)
-{const indexes=WebInspector.DirectoryContentView.columnIndexes;this.rootNode().removeChildren();for(var i=0;i<entries.length;++i)
-this.rootNode().appendChild(new WebInspector.DirectoryContentView.Node(entries[i]));},_sort:function()
-{var column=(this.sortColumnIdentifier());this.sortNodes(WebInspector.DirectoryContentView.Node.comparator(column,!this.isSortOrderAscending()),false);},__proto__:WebInspector.DataGrid.prototype}
-WebInspector.DirectoryContentView.Node=function(entry)
-{const indexes=WebInspector.DirectoryContentView.columnIndexes;var data={};data[indexes.Name]=entry.name;data[indexes.URL]=entry.url;data[indexes.Type]=entry.isDirectory?WebInspector.UIString("Directory"):entry.mimeType;data[indexes.Size]="";data[indexes.ModificationTime]="";WebInspector.DataGridNode.call(this,data);this._entry=entry;this._metadata=null;this._entry.requestMetadata(this._metadataReceived.bind(this));}
-WebInspector.DirectoryContentView.Node.comparator=function(column,reverse)
-{var reverseFactor=reverse?-1:1;const indexes=WebInspector.DirectoryContentView.columnIndexes;switch(column){case indexes.Name:case indexes.URL:return function(x,y)
-{return isDirectoryCompare(x,y)||nameCompare(x,y);};case indexes.Type:return function(x,y)
-{return isDirectoryCompare(x,y)||typeCompare(x,y)||nameCompare(x,y);};case indexes.Size:return function(x,y)
-{return isDirectoryCompare(x,y)||sizeCompare(x,y)||nameCompare(x,y);};case indexes.ModificationTime:return function(x,y)
-{return isDirectoryCompare(x,y)||modificationTimeCompare(x,y)||nameCompare(x,y);};}
-function isDirectoryCompare(x,y)
-{if(x._entry.isDirectory!=y._entry.isDirectory)
-return y._entry.isDirectory?1:-1;return 0;}
-function nameCompare(x,y)
-{return reverseFactor*x._entry.name.compareTo(y._entry.name);}
-function typeCompare(x,y)
-{return reverseFactor*(x._entry.mimeType||"").compareTo(y._entry.mimeType||"");}
-function sizeCompare(x,y)
-{return reverseFactor*((x._metadata?x._metadata.size:0)-(y._metadata?y._metadata.size:0));}
-function modificationTimeCompare(x,y)
-{return reverseFactor*((x._metadata?x._metadata.modificationTime:0)-(y._metadata?y._metadata.modificationTime:0));}}
-WebInspector.DirectoryContentView.Node.prototype={_metadataReceived:function(errorCode,metadata)
-{const indexes=WebInspector.DirectoryContentView.columnIndexes;if(errorCode!==0)
-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.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.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)
-{var keyColumnHeaderFragment=document.createDocumentFragment();keyColumnHeaderFragment.appendChild(document.createTextNode(prefix));if(keyPath===null)
-return keyColumnHeaderFragment;keyColumnHeaderFragment.appendChild(document.createTextNode(" ("+WebInspector.UIString("Key path: ")));if(keyPath instanceof Array){keyColumnHeaderFragment.appendChild(document.createTextNode("["));for(var i=0;i<keyPath.length;++i){if(i!=0)
-keyColumnHeaderFragment.appendChild(document.createTextNode(", "));keyColumnHeaderFragment.appendChild(this._keyPathStringFragment(keyPath[i]));}
-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.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)
-{this._objectStore=objectStore;this._index=index;if(this._dataGrid)
-this._dataGrid.detach();this._dataGrid=this._createDataGrid();this._dataGrid.show(this._dataGridContainer);this._skipCount=0;this._updateData(true);},_parseKey:function(keyString)
-{var result;try{result=JSON.parse(keyString);}catch(e){result=keyString;}
-return result;},_stringifyKey:function(key)
-{if(typeof(key)==="string")
-return key;return JSON.stringify(key);},_updateData:function(force)
-{var key=this._parseKey(this._keyInputElement.value);var pageSize=this._pageSize;var skipCount=this._skipCount;this._refreshButton.setEnabled(false);this._clearButton.setEnabled(!this._isIndex);if(!force&&this._lastKey===key&&this._lastPageSize===pageSize&&this._lastSkipCount===skipCount)
-return;if(this._lastKey!==key||this._lastPageSize!==pageSize){skipCount=0;this._skipCount=0;}
-this._lastKey=key;this._lastPageSize=pageSize;this._lastSkipCount=skipCount;function callback(entries,hasMore)
-{this._refreshButton.setEnabled(true);this.clear();this._entries=entries;for(var i=0;i<entries.length;++i){var data={};data["number"]=i+skipCount;data["key"]=entries[i].key;data["primaryKey"]=entries[i].primaryKey;data["value"]=entries[i].value;var primaryKey=JSON.stringify(this._isIndex?entries[i].primaryKey:entries[i].key);var node=new WebInspector.IDBDataGridNode(data);this._dataGrid.rootNode().appendChild(node);}
-this._pageBackButton.disabled=skipCount===0;this._pageForwardButton.disabled=!hasMore;}
-var idbKeyRange=key?window.webkitIDBKeyRange.lowerBound(key):null;if(this._isIndex)
-this._model.loadIndexData(this._databaseId,this._objectStore.name,this._index.name,idbKeyRange,skipCount,pageSize,callback.bind(this));else
-this._model.loadObjectStoreData(this._databaseId,this._objectStore.name,idbKeyRange,skipCount,pageSize,callback.bind(this));},_refreshButtonClicked:function(event)
-{this._updateData(true);},_clearButtonClicked:function(event)
-{function cleared(){this._clearButton.setEnabled(true);this._updateData(true);}
-this._clearButton.setEnabled(false);this._model.clearObjectStore(this._databaseId,this._objectStore.name,cleared.bind(this));},get statusBarItems()
-{return[this._refreshButton.element,this._clearButton.element];},clear:function()
-{this._dataGrid.rootNode().removeChildren();for(var i=0;i<this._entries.length;++i){this._entries[i].key.release();this._entries[i].primaryKey.release();this._entries[i].value.release();}
-this._entries=[];},__proto__:WebInspector.View.prototype}
-WebInspector.IDBDataGridNode=function(data)
-{WebInspector.DataGridNode.call(this,data,false);this.selectable=false;}
-WebInspector.IDBDataGridNode.prototype={createCell:function(columnIdentifier)
-{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.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)
-this._innerView=new WebInspector.EmptyView("");else
-this._innerView=new WebInspector.EmptyView(WebInspector.UIString("Binary File"));this.refresh();}
-this._innerView.show(this.element);},_metadataReceived:function(errorCode,metadata)
-{if(errorCode||!metadata)
-return;if(this._content){if(!this._content.updateMetadata(metadata))
-return;var sourceFrame=(this._innerView);this._content.requestContent(sourceFrame.setContent.bind(sourceFrame));}else{this._innerView.detach();this._content=new WebInspector.FileContentView.FileContentProvider(this._file,metadata);var sourceFrame=new WebInspector.SourceFrame(this._content);sourceFrame.setHighlighterType(this._file.resourceType.canonicalMimeType());this._innerView=sourceFrame;this._innerView.show(this.element);}},refresh:function()
-{if(!this._innerView)
-return;if(this._file.isTextFile)
-this._file.requestMetadata(this._metadataReceived.bind(this));},__proto__:WebInspector.View.prototype}
-WebInspector.FileContentView.FileContentProvider=function(file,metadata)
-{this._file=file;this._metadata=metadata;}
-WebInspector.FileContentView.FileContentProvider.prototype={contentURL:function()
-{return this._file.url;},contentType:function()
-{return this._file.resourceType;},requestContent:function(callback)
-{var size=(this._metadata.size);this._file.requestFileContent(true,0,size,this._charset||"",this._fileContentReceived.bind(this,callback));},_fileContentReceived:function(callback,errorCode,content,base64Encoded,charset)
-{if(errorCode||!content){callback(null);return;}
-this._charset=charset;callback(content);},searchInContent:function(query,caseSensitive,isRegex,callback)
-{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.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;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()
-{this._directoryTree.selectedTreeElement.deleteEntry();},__proto__:WebInspector.SidebarView.prototype}
-WebInspector.FileSystemView.EntryTreeElement=function(fileSystemView,entry)
-{TreeElement.call(this,entry.name,null,entry.isDirectory);this._entry=entry;this._fileSystemView=fileSystemView;}
-WebInspector.FileSystemView.EntryTreeElement.prototype={onattach:function()
-{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();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;}
-if(errorCode!==0||!entries){console.error("Failed to read directory: "+errorCode);return;}
-entries.sort(WebInspector.FileSystemModel.Entry.compare);if(this._view)
-this._view.showEntries(entries);var oldChildren=this.children.slice(0);var newEntryIndex=0;var oldChildIndex=0;var currentTreeItem=0;while(newEntryIndex<entries.length&&oldChildIndex<oldChildren.length){var newEntry=entries[newEntryIndex];var oldChild=oldChildren[oldChildIndex];var order=newEntry.name.compareTo(oldChild._entry.name);if(order===0){if(oldChild._entry.isDirectory)
-oldChild.shouldRefreshChildren=true;else
-oldChild.refresh();++newEntryIndex;++oldChildIndex;++currentTreeItem;continue;}
-if(order<0){this.insertChild(new WebInspector.FileSystemView.EntryTreeElement(this._fileSystemView,newEntry),currentTreeItem);++newEntryIndex;++currentTreeItem;continue;}
-this.removeChildAtIndex(currentTreeItem);++oldChildIndex;}
-for(;newEntryIndex<entries.length;++newEntryIndex)
-this.appendChild(new WebInspector.FileSystemView.EntryTreeElement(this._fileSystemView,entries[newEntryIndex]));for(;oldChildIndex<oldChildren.length;++oldChildIndex)
-this.removeChild(oldChildren[oldChildIndex]);},refresh:function()
-{if(!this._entry.isDirectory){if(this._view&&this._view===this._fileSystemView.visibleView){var fileContentView=(this._view);fileContentView.refresh();}}else
-this._entry.requestDirectoryContent(this._directoryContentReceived.bind(this));},deleteEntry:function()
-{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.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);}
-WebInspector.ResourcesPanel.prototype={canSearch:function()
-{return false;},wasShown:function()
-{WebInspector.Panel.prototype.wasShown.call(this);this._initialize();},_initialize:function()
-{if(!this._initialized&&this.isShowing()&&this._cachedResourcesWereLoaded){this._populateResourceTree();this._populateDOMStorageTree();this._populateApplicationCacheTree();this.indexedDBListTreeElement._initialize();if(WebInspector.experimentsSettings.fileSystemInspection.isEnabled())
-this.fileSystemListTreeElement._initialize();this._initDefaultSelection();this._initialized=true;}},_loadEventFired:function()
-{this._initDefaultSelection();},_initDefaultSelection:function()
-{if(!this._initialized)
-return;var itemURL=WebInspector.settings.resourcesLastSelectedItem.get();if(itemURL){for(var treeElement=this.sidebarTree.children[0];treeElement;treeElement=treeElement.traverseNextTreeElement(false,this.sidebarTree,true)){if(treeElement.itemURL===itemURL){treeElement.revealAndSelect(true);return;}}}
-var mainResource=WebInspector.inspectedPageURL&&this.resourcesListTreeElement&&this.resourcesListTreeElement.expanded&&WebInspector.resourceTreeModel.resourceForURL(WebInspector.inspectedPageURL);if(mainResource)
-this.showResource(mainResource);},_resetWithFrames:function()
-{this.resourcesListTreeElement.removeChildren();this._treeElementForFrameId={};this._reset();},_reset:function()
-{this._domains={};var queryViews=this._databaseQueryViews.values();for(var i=0;i<queryViews.length;++i)
-queryViews[i].removeEventListener(WebInspector.DatabaseQueryView.Events.SchemaUpdated,this._updateDatabaseTables,this);this._databaseTableViews.clear();this._databaseQueryViews.clear();this._databaseTreeElements.clear();this._domStorageViews.clear();this._domStorageTreeElements.clear();this._cookieViews={};this.databasesListTreeElement.removeChildren();this.localStorageListTreeElement.removeChildren();this.sessionStorageListTreeElement.removeChildren();this.cookieListTreeElement.removeChildren();if(this.visibleView&&!(this.visibleView instanceof WebInspector.StorageCategoryView))
-this.visibleView.detach();this.storageViewStatusBarItemsContainer.removeChildren();if(this.sidebarTree.selectedTreeElement)
-this.sidebarTree.selectedTreeElement.deselect();},_populateResourceTree:function()
-{this._treeElementForFrameId={};WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded,this._frameAdded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,this._frameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached,this._frameDetached,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded,this._resourceAdded,this);function populateFrame(frame)
-{this._frameAdded({data:frame});for(var i=0;i<frame.childFrames.length;++i)
-populateFrame.call(this,frame.childFrames[i]);var resources=frame.resources();for(var i=0;i<resources.length;++i)
-this._resourceAdded({data:resources[i]});}
-populateFrame.call(this,WebInspector.resourceTreeModel.mainFrame);},_frameAdded:function(event)
-{var frame=event.data;var parentFrame=frame.parentFrame;var parentTreeElement=parentFrame?this._treeElementForFrameId[parentFrame.id]:this.resourcesListTreeElement;if(!parentTreeElement){console.warn("No frame to route "+frame.url+" to.")
-return;}
-var frameTreeElement=new WebInspector.FrameTreeElement(this,frame);this._treeElementForFrameId[frame.id]=frameTreeElement;parentTreeElement.appendChild(frameTreeElement);},_frameDetached:function(event)
-{var frame=event.data;var frameTreeElement=this._treeElementForFrameId[frame.id];if(!frameTreeElement)
-return;delete this._treeElementForFrameId[frame.id];if(frameTreeElement.parent)
-frameTreeElement.parent.removeChild(frameTreeElement);},_resourceAdded:function(event)
-{var resource=event.data;var frameId=resource.frameId;if(resource.statusCode>=301&&resource.statusCode<=303)
-return;var frameTreeElement=this._treeElementForFrameId[frameId];if(!frameTreeElement){return;}
-frameTreeElement.appendResource(resource);},_frameNavigated:function(event)
-{var frame=event.data;if(!frame.parentFrame)
-this._reset();var frameId=frame.id;var frameTreeElement=this._treeElementForFrameId[frameId];if(frameTreeElement)
-frameTreeElement.frameNavigated(frame);var applicationCacheFrameTreeElement=this._applicationCacheFrameElements[frameId];if(applicationCacheFrameTreeElement)
-applicationCacheFrameTreeElement.frameNavigated(frame);},_cachedResourcesLoaded:function()
-{this._cachedResourcesWereLoaded=true;this._initialize();},_databaseAdded:function(event)
-{var database=(event.data);this._addDatabase(database);},_addDatabase:function(database)
-{var databaseTreeElement=new WebInspector.DatabaseTreeElement(this,database);this._databaseTreeElements.put(database,databaseTreeElement);this.databasesListTreeElement.appendChild(databaseTreeElement);},addDocumentURL:function(url)
-{var parsedURL=url.asParsedURL();if(!parsedURL)
-return;var domain=parsedURL.host;if(!this._domains[domain]){this._domains[domain]=true;var cookieDomainTreeElement=new WebInspector.CookieTreeElement(this,domain);this.cookieListTreeElement.appendChild(cookieDomainTreeElement);}},_domStorageAdded:function(event)
-{var domStorage=(event.data);this._addDOMStorage(domStorage);},_addDOMStorage:function(domStorage)
-{console.assert(!this._domStorageTreeElements.get(domStorage));var domStorageTreeElement=new WebInspector.DOMStorageTreeElement(this,domStorage,(domStorage.isLocalStorage?"local-storage":"session-storage"));this._domStorageTreeElements.put(domStorage,domStorageTreeElement);if(domStorage.isLocalStorage)
-this.localStorageListTreeElement.appendChild(domStorageTreeElement);else
-this.sessionStorageListTreeElement.appendChild(domStorageTreeElement);},_domStorageRemoved:function(event)
-{var domStorage=(event.data);this._removeDOMStorage(domStorage);},_removeDOMStorage:function(domStorage)
-{var treeElement=this._domStorageTreeElements.get(domStorage);if(!treeElement)
-return;var wasSelected=treeElement.selected;var parentListTreeElement=treeElement.parent;parentListTreeElement.removeChild(treeElement);if(wasSelected)
-parentListTreeElement.select();this._domStorageTreeElements.remove(treeElement);this._domStorageViews.remove(domStorage);},selectDatabase:function(database)
-{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;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);}
-return true;},_showResourceView:function(resource)
-{var view=this._resourceViewForResource(resource);if(!view){this.visibleView.detach();return;}
-this._innerShowView(view);},_resourceViewForResource:function(resource)
-{if(WebInspector.ResourceView.hasTextContent(resource)){var treeElement=this._findTreeElementForResource(resource);if(!treeElement)
-return null;return treeElement.sourceView();}
-return WebInspector.ResourceView.nonSourceViewForResource(resource);},_showDatabase:function(database,tableName)
-{if(!database)
-return;var view;if(tableName){var tableViews=this._databaseTableViews.get(database);if(!tableViews){tableViews=({});this._databaseTableViews.put(database,tableViews);}
-view=tableViews[tableName];if(!view){view=new WebInspector.DatabaseTableView(database,tableName);tableViews[tableName]=view;}}else{view=this._databaseQueryViews.get(database);if(!view){view=new WebInspector.DatabaseQueryView(database);this._databaseQueryViews.put(database,view);view.addEventListener(WebInspector.DatabaseQueryView.Events.SchemaUpdated,this._updateDatabaseTables,this);}}
-this._innerShowView(view);},showIndexedDB:function(view)
-{this._innerShowView(view);},_showDOMStorage:function(domStorage)
-{if(!domStorage)
-return;var view;view=this._domStorageViews.get(domStorage);if(!view){view=new WebInspector.DOMStorageItemsView(domStorage);this._domStorageViews.put(domStorage,view);}
-this._innerShowView(view);},showCookies:function(treeElement,cookieDomain)
-{var view=this._cookieViews[cookieDomain];if(!view){view=new WebInspector.CookieItemsView(treeElement,cookieDomain);this._cookieViews[cookieDomain]=view;}
-this._innerShowView(view);},clearCookies:function(cookieDomain)
-{this._cookieViews[cookieDomain].clear();},showApplicationCache:function(frameId)
-{if(!this._applicationCacheViews[frameId])
-this._applicationCacheViews[frameId]=new WebInspector.ApplicationCacheItemsView(this._applicationCacheModel,frameId);this._innerShowView(this._applicationCacheViews[frameId]);},showFileSystem:function(view)
-{this._innerShowView(view);},showCategoryView:function(categoryName)
-{if(!this._categoryView)
-this._categoryView=new WebInspector.StorageCategoryView();this._categoryView.setText(categoryName);this._innerShowView(this._categoryView);},_innerShowView:function(view)
-{if(this.visibleView===view)
-return;if(this.visibleView)
-this.visibleView.detach();view.show(this.storageViews);this.visibleView=view;this.storageViewStatusBarItemsContainer.removeChildren();var statusBarItems=view.statusBarItems||[];for(var i=0;i<statusBarItems.length;++i)
-this.storageViewStatusBarItemsContainer.appendChild(statusBarItems[i]);},closeVisibleView:function()
-{if(!this.visibleView)
-return;this.visibleView.detach();delete this.visibleView;},_updateDatabaseTables:function(event)
-{var database=event.data;if(!database)
-return;var databasesTreeElement=this._databaseTreeElements.get(database);if(!databasesTreeElement)
-return;databasesTreeElement.shouldRefreshChildren=true;var tableViews=this._databaseTableViews.get(database);if(!tableViews)
-return;var tableNamesHash={};var self=this;function tableNamesCallback(tableNames)
-{var tableNamesLength=tableNames.length;for(var i=0;i<tableNamesLength;++i)
-tableNamesHash[tableNames[i]]=true;for(var tableName in tableViews){if(!(tableName in tableNamesHash)){if(self.visibleView===tableViews[tableName])
-self.closeVisibleView();delete tableViews[tableName];}}}
-database.getTableNames(tableNamesCallback);},_populateDOMStorageTree:function()
-{WebInspector.domStorageModel.storages().forEach(this._addDOMStorage.bind(this));WebInspector.domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageAdded,this._domStorageAdded,this);WebInspector.domStorageModel.addEventListener(WebInspector.DOMStorageModel.Events.DOMStorageRemoved,this._domStorageRemoved,this);},_populateApplicationCacheTree:function()
-{this._applicationCacheModel=new WebInspector.ApplicationCacheModel();this._applicationCacheViews={};this._applicationCacheFrameElements={};this._applicationCacheManifestElements={};this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestAdded,this._applicationCacheFrameManifestAdded,this);this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestRemoved,this._applicationCacheFrameManifestRemoved,this);this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestStatusUpdated,this._applicationCacheFrameManifestStatusChanged,this);this._applicationCacheModel.addEventListener(WebInspector.ApplicationCacheModel.EventTypes.NetworkStateChanged,this._applicationCacheNetworkStateChanged,this);},_applicationCacheFrameManifestAdded:function(event)
-{var frameId=event.data;var manifestURL=this._applicationCacheModel.frameManifestURL(frameId);var status=this._applicationCacheModel.frameManifestStatus(frameId)
-var manifestTreeElement=this._applicationCacheManifestElements[manifestURL]
-if(!manifestTreeElement){manifestTreeElement=new WebInspector.ApplicationCacheManifestTreeElement(this,manifestURL);this.applicationCacheListTreeElement.appendChild(manifestTreeElement);this._applicationCacheManifestElements[manifestURL]=manifestTreeElement;}
-var frameTreeElement=new WebInspector.ApplicationCacheFrameTreeElement(this,frameId,manifestURL);manifestTreeElement.appendChild(frameTreeElement);manifestTreeElement.expand();this._applicationCacheFrameElements[frameId]=frameTreeElement;},_applicationCacheFrameManifestRemoved:function(event)
-{var frameId=event.data;var frameTreeElement=this._applicationCacheFrameElements[frameId];if(!frameTreeElement)
-return;var manifestURL=frameTreeElement.manifestURL;delete this._applicationCacheFrameElements[frameId];delete this._applicationCacheViews[frameId];frameTreeElement.parent.removeChild(frameTreeElement);var manifestTreeElement=this._applicationCacheManifestElements[manifestURL];if(manifestTreeElement.children.length!==0)
-return;delete this._applicationCacheManifestElements[manifestURL];manifestTreeElement.parent.removeChild(manifestTreeElement);},_applicationCacheFrameManifestStatusChanged:function(event)
-{var frameId=event.data;var status=this._applicationCacheModel.frameManifestStatus(frameId)
-if(this._applicationCacheViews[frameId])
-this._applicationCacheViews[frameId].updateStatus(status);},_applicationCacheNetworkStateChanged:function(event)
-{var isNowOnline=event.data;for(var manifestURL in this._applicationCacheViews)
-this._applicationCacheViews[manifestURL].updateNetworkState(isNowOnline);},_forAllResourceTreeElements:function(callback)
-{var stop=false;for(var treeElement=this.resourcesListTreeElement;!stop&&treeElement;treeElement=treeElement.traverseNextTreeElement(false,this.resourcesListTreeElement,true)){if(treeElement instanceof WebInspector.FrameResourceTreeElement)
-stop=callback(treeElement);}},_findTreeElementForResource:function(resource)
-{function isAncestor(ancestor,object)
-{return false;}
-function getParent(object)
-{return null;}
-return this.sidebarTree.findTreeElement(resource,isAncestor,getParent);},showView:function(view)
-{if(view)
-this.showResource(view.resource);},_onmousemove:function(event)
-{var nodeUnderMouse=document.elementFromPoint(event.pageX,event.pageY);if(!nodeUnderMouse)
-return;var listNode=nodeUnderMouse.enclosingNodeOrSelfWithNodeName("li");if(!listNode)
-return;var element=listNode.treeElement;if(this._previousHoveredElement===element)
-return;if(this._previousHoveredElement){this._previousHoveredElement.hovered=false;delete this._previousHoveredElement;}
-if(element instanceof WebInspector.FrameTreeElement){this._previousHoveredElement=element;element.hovered=true;}},_onmouseout:function(event)
-{if(this._previousHoveredElement){this._previousHoveredElement.hovered=false;delete this._previousHoveredElement;}},__proto__:WebInspector.Panel.prototype}
-WebInspector.BaseStorageTreeElement=function(storagePanel,representedObject,title,iconClasses,hasChildren,noIcon)
-{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.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()
-{this._displayName=this._titleText||"";if(this._subtitleText)
-this._displayName+=" ("+this._subtitleText+")";},_updateTitle:function()
-{this._updateDisplayName();if(!this.titleElement)
-return;this._titleTextNode.textContent=this._titleText||"";},_updateSubtitle:function()
-{this._updateDisplayName();if(!this.titleElement)
-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 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)
-{this._titleText=titleText;this._updateTitle();},get subtitleText()
-{return this._subtitleText;},set subtitleText(subtitleText)
-{this._subtitleText=subtitleText;this._updateSubtitle();},__proto__:TreeElement.prototype}
-WebInspector.StorageCategoryTreeElement=function(storagePanel,categoryName,settingsKey,iconClasses,noIcon)
-{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);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()
-{WebInspector.settings[this._expandedSettingKey].set(false);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
-WebInspector.FrameTreeElement=function(storagePanel,frame)
-{WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,"",["frame-storage-tree-item"]);this._frame=frame;this.frameNavigated(frame);}
-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.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)
-{var treeElement=this._treeElementForResource[url];return treeElement?treeElement.representedObject:null;},appendChild:function(treeElement)
-{this._insertInPresentationOrder(this,treeElement);},_insertInPresentationOrder:function(parentTreeElement,childTreeElement)
-{function typeWeight(treeElement)
-{if(treeElement instanceof WebInspector.StorageCategoryTreeElement)
-return 2;if(treeElement instanceof WebInspector.FrameTreeElement)
-return 1;return 3;}
-function compare(treeElement1,treeElement2)
-{var typeWeight1=typeWeight(treeElement1);var typeWeight2=typeWeight(treeElement2);var result;if(typeWeight1>typeWeight2)
-result=1;else if(typeWeight1<typeWeight2)
-result=-1;else{var title1=treeElement1.displayName||treeElement1.titleText;var title2=treeElement2.displayName||treeElement2.titleText;result=title1.localeCompare(title2);}
-return result;}
-var children=parentTreeElement.children;var i;for(i=0;i<children.length;++i){if(compare(childTreeElement,children[i])<0)
-break;}
-parentTreeElement.insertChild(childTreeElement,i);},__proto__:WebInspector.BaseStorageTreeElement.prototype}
-WebInspector.FrameResourceTreeElement=function(storagePanel,resource)
-{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);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.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.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)
-this._sourceView.addMessage(msg);this._updateErrorsAndWarningsBubbles();},sourceView:function()
-{if(!this._sourceView){var sourceFrame=new WebInspector.ResourceSourceFrame(this._resource);sourceFrame.setHighlighterType(this._resource.canonicalMimeType());this._sourceView=sourceFrame;if(this._resource.messages){for(var i=0;i<this._resource.messages.length;i++)
-this._sourceView.addMessage(this._resource.messages[i]);}}
-return this._sourceView;},__proto__:WebInspector.BaseStorageTreeElement.prototype}
-WebInspector.DatabaseTreeElement=function(storagePanel,database)
-{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);return false;},onexpand:function()
-{this._updateChildren();},_updateChildren:function()
-{this.removeChildren();function tableNamesCallback(tableNames)
-{var tableNamesLength=tableNames.length;for(var i=0;i<tableNamesLength;++i)
-this.appendChild(new WebInspector.DatabaseTableTreeElement(this._storagePanel,this._database,tableNames[i]));}
-this._database.getTableNames(tableNamesCallback.bind(this));},__proto__:WebInspector.BaseStorageTreeElement.prototype}
-WebInspector.DatabaseTableTreeElement=function(storagePanel,database,tableName)
-{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);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()
-{this._createIndexedDBModel();},onattach:function()
-{WebInspector.StorageCategoryTreeElement.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("Refresh IndexedDB"),this.refreshIndexedDB.bind(this));contextMenu.show();},_createIndexedDBModel:function()
-{this._indexedDBModel=new WebInspector.IndexedDBModel();this._idbDatabaseTreeElements=[];this._indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseAdded,this._indexedDBAdded,this);this._indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseRemoved,this._indexedDBRemoved,this);this._indexedDBModel.addEventListener(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded,this._indexedDBLoaded,this);},refreshIndexedDB:function()
-{if(!this._indexedDBModel){this._createIndexedDBModel();return;}
-this._indexedDBModel.refreshDatabaseNames();},_indexedDBAdded:function(event)
-{var databaseId=(event.data);var idbDatabaseTreeElement=new WebInspector.IDBDatabaseTreeElement(this._storagePanel,this._indexedDBModel,databaseId);this._idbDatabaseTreeElements.push(idbDatabaseTreeElement);this.appendChild(idbDatabaseTreeElement);this._indexedDBModel.refreshDatabase(databaseId);},_indexedDBRemoved:function(event)
-{var databaseId=(event.data);var idbDatabaseTreeElement=this._idbDatabaseTreeElement(databaseId)
-if(!idbDatabaseTreeElement)
-return;idbDatabaseTreeElement.clear();this.removeChild(idbDatabaseTreeElement);this._idbDatabaseTreeElements.remove(idbDatabaseTreeElement);},_indexedDBLoaded:function(event)
-{var database=(event.data);var idbDatabaseTreeElement=this._idbDatabaseTreeElement(database.databaseId)
-if(!idbDatabaseTreeElement)
-return;idbDatabaseTreeElement.update(database);},_idbDatabaseTreeElement:function(databaseId)
-{var index=-1;for(var i=0;i<this._idbDatabaseTreeElements.length;++i){if(this._idbDatabaseTreeElements[i]._databaseId.equals(databaseId)){index=i;break;}}
-if(index!==-1)
-return this._idbDatabaseTreeElements[i];return null;},__proto__:WebInspector.StorageCategoryTreeElement.prototype}
-WebInspector.FileSystemListTreeElement=function(storagePanel)
-{WebInspector.StorageCategoryTreeElement.call(this,storagePanel,WebInspector.UIString("FileSystem"),"FileSystem",["file-system-storage-tree-item"]);}
-WebInspector.FileSystemListTreeElement.prototype={_initialize:function()
-{this._refreshFileSystem();},onattach:function()
-{WebInspector.StorageCategoryTreeElement.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(WebInspector.useLowerCaseMenuTitles()?"Refresh FileSystem list":"Refresh FileSystem List"),this._refreshFileSystem.bind(this));contextMenu.show();},_fileSystemAdded:function(event)
-{var fileSystem=(event.data);var fileSystemTreeElement=new WebInspector.FileSystemTreeElement(this._storagePanel,fileSystem);this.appendChild(fileSystemTreeElement);},_fileSystemRemoved:function(event)
-{var fileSystem=(event.data);var fileSystemTreeElement=this._fileSystemTreeElementByName(fileSystem.name);if(!fileSystemTreeElement)
-return;fileSystemTreeElement.clear();this.removeChild(fileSystemTreeElement);},_fileSystemTreeElementByName:function(fileSystemName)
-{for(var i=0;i<this.children.length;++i){var child=(this.children[i]);if(child.fileSystemName===fileSystemName)
-return this.children[i];}
-return null;},_refreshFileSystem:function()
-{if(!this._fileSystemModel){this._fileSystemModel=new WebInspector.FileSystemModel();this._fileSystemModel.addEventListener(WebInspector.FileSystemModel.EventTypes.FileSystemAdded,this._fileSystemAdded,this);this._fileSystemModel.addEventListener(WebInspector.FileSystemModel.EventTypes.FileSystemRemoved,this._fileSystemRemoved,this);}
-this._fileSystemModel.refreshFileSystemList();},__proto__:WebInspector.StorageCategoryTreeElement.prototype}
-WebInspector.IDBDatabaseTreeElement=function(storagePanel,model,databaseId)
-{WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,databaseId.name+" - "+databaseId.securityOrigin,["indexed-db-storage-tree-item"]);this._model=model;this._databaseId=databaseId;this._idbObjectStoreTreeElements={};}
-WebInspector.IDBDatabaseTreeElement.prototype={get itemURL()
-{return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name;},onattach:function()
-{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("Refresh IndexedDB"),this._refreshIndexedDB.bind(this));contextMenu.show();},_refreshIndexedDB:function()
-{this._model.refreshDatabaseNames();},update:function(database)
-{this._database=database;var objectStoreNames={};for(var objectStoreName in this._database.objectStores){var objectStore=this._database.objectStores[objectStoreName];objectStoreNames[objectStore.name]=true;if(!this._idbObjectStoreTreeElements[objectStore.name]){var idbObjectStoreTreeElement=new WebInspector.IDBObjectStoreTreeElement(this._storagePanel,this._model,this._databaseId,objectStore);this._idbObjectStoreTreeElements[objectStore.name]=idbObjectStoreTreeElement;this.appendChild(idbObjectStoreTreeElement);}
-this._idbObjectStoreTreeElements[objectStore.name].update(objectStore);}
-for(var objectStoreName in this._idbObjectStoreTreeElements){if(!objectStoreNames[objectStoreName])
-this._objectStoreRemoved(objectStoreName);}
-if(this.children.length){this.hasChildren=true;this.expand();}
-if(this._view)
-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);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}
-WebInspector.IDBObjectStoreTreeElement=function(storagePanel,model,databaseId,objectStore)
-{WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,objectStore.name,["indexed-db-object-store-storage-tree-item"]);this._model=model;this._databaseId=databaseId;this._idbIndexTreeElements={};}
-WebInspector.IDBObjectStoreTreeElement.prototype={get itemURL()
-{return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name+"/"+this._objectStore.name;},onattach:function()
-{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._clearObjectStore.bind(this));contextMenu.show();},_clearObjectStore:function()
-{function callback(){this.update(this._objectStore);}
-this._model.clearObjectStore(this._databaseId,this._objectStore.name,callback.bind(this));},update:function(objectStore)
-{this._objectStore=objectStore;var indexNames={};for(var indexName in this._objectStore.indexes){var index=this._objectStore.indexes[indexName];indexNames[index.name]=true;if(!this._idbIndexTreeElements[index.name]){var idbIndexTreeElement=new WebInspector.IDBIndexTreeElement(this._storagePanel,this._model,this._databaseId,this._objectStore,index);this._idbIndexTreeElements[index.name]=idbIndexTreeElement;this.appendChild(idbIndexTreeElement);}
-this._idbIndexTreeElements[index.name].update(index);}
-for(var indexName in this._idbIndexTreeElements){if(!indexNames[indexName])
-this._indexRemoved(indexName);}
-for(var indexName in this._idbIndexTreeElements){if(!indexNames[indexName]){this.removeChild(this._idbIndexTreeElements[indexName]);delete this._idbIndexTreeElements[indexName];}}
-if(this.children.length){this.hasChildren=true;this.expand();}
-if(this._view)
-this._view.update(this._objectStore);this._updateTooltip();},_updateTooltip:function()
-{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);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)
-this._view.clear();},__proto__:WebInspector.BaseStorageTreeElement.prototype}
-WebInspector.IDBIndexTreeElement=function(storagePanel,model,databaseId,objectStore,index)
-{WebInspector.BaseStorageTreeElement.call(this,storagePanel,null,index.name,["indexed-db-index-storage-tree-item"]);this._model=model;this._databaseId=databaseId;this._objectStore=objectStore;this._index=index;}
-WebInspector.IDBIndexTreeElement.prototype={get itemURL()
-{return"indexedDB://"+this._databaseId.securityOrigin+"/"+this._databaseId.name+"/"+this._objectStore.name+"/"+this._index.name;},update:function(index)
-{this._index=index;if(this._view)
-this._view.update(this._index);this._updateTooltip();},_updateTooltip:function()
-{var tooltipLines=[];var keyPathString=this._index.keyPathString;tooltipLines.push(WebInspector.UIString("Key path: ")+keyPathString);if(this._index.unique)
-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);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);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()
-{return"cookies://"+this._cookieDomain;},onattach:function()
-{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);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);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()
-{return"appcache://"+this._manifestURL+"/"+encodeURI(this.displayName);},get frameId()
-{return this._frameId;},get manifestURL()
-{return this._manifestURL;},_refreshTitles:function()
-{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);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);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.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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ScriptFormatterWorker.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/ScriptFormatterWorker.js
deleted file mode 100644 (file)
index 1654837..0000000
+++ /dev/null
@@ -1,796 +0,0 @@
-Object.isEmpty=function(obj)
-{for(var i in obj)
-return false;return true;}
-Object.values=function(obj)
-{var result=Object.keys(obj);var length=result.length;for(var i=0;i<length;++i)
-result[i]=obj[result[i]];return result;}
-String.prototype.findAll=function(string)
-{var matches=[];var i=this.indexOf(string);while(i!==-1){matches.push(i);i=this.indexOf(string,i+string.length);}
-return matches;}
-String.prototype.lineEndings=function()
-{if(!this._lineEndings){this._lineEndings=this.findAll("\n");this._lineEndings.push(this.length);}
-return this._lineEndings;}
-String.prototype.escapeCharacters=function(chars)
-{var foundChar=false;for(var i=0;i<chars.length;++i){if(this.indexOf(chars.charAt(i))!==-1){foundChar=true;break;}}
-if(!foundChar)
-return String(this);var result="";for(var i=0;i<this.length;++i){if(chars.indexOf(this.charAt(i))!==-1)
-result+="\\";result+=this.charAt(i);}
-return result;}
-String.regexSpecialCharacters=function()
-{return"^[]{}()\\.$*+?|-,";}
-String.prototype.escapeForRegExp=function()
-{return this.escapeCharacters(String.regexSpecialCharacters());}
-String.prototype.escapeHTML=function()
-{return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");}
-String.prototype.collapseWhitespace=function()
-{return this.replace(/[\s\xA0]+/g," ");}
-String.prototype.trimMiddle=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);var leftHalf=maxLength>>1;var rightHalf=maxLength-leftHalf-1;return this.substr(0,leftHalf)+"\u2026"+this.substr(this.length-rightHalf,rightHalf);}
-String.prototype.trimEnd=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);return this.substr(0,maxLength-1)+"\u2026";}
-String.prototype.trimURL=function(baseURLDomain)
-{var result=this.replace(/^(https|http|file):\/\//i,"");if(baseURLDomain)
-result=result.replace(new RegExp("^"+baseURLDomain.escapeForRegExp(),"i"),"");return result;}
-String.prototype.toTitleCase=function()
-{return this.substring(0,1).toUpperCase()+this.substring(1);}
-String.prototype.compareTo=function(other)
-{if(this>other)
-return 1;if(this<other)
-return-1;return 0;}
-function sanitizeHref(href)
-{return href&&href.trim().toLowerCase().startsWith("javascript:")?null:href;}
-String.prototype.removeURLFragment=function()
-{var fragmentIndex=this.indexOf("#");if(fragmentIndex==-1)
-fragmentIndex=this.length;return this.substring(0,fragmentIndex);}
-String.prototype.startsWith=function(substring)
-{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)
-return-1;else
-return 0;}
-chunka=a.match(chunk)[0];chunkb=b.match(chunk)[0];anum=!isNaN(chunka);bnum=!isNaN(chunkb);if(anum&&!bnum)
-return-1;if(bnum&&!anum)
-return 1;if(anum&&bnum){var diff=chunka-chunkb;if(diff)
-return diff;if(chunka.length!==chunkb.length){if(!+chunka&&!+chunkb)
-return chunka.length-chunkb.length;else
-return chunkb.length-chunka.length;}}else if(chunka!==chunkb)
-return(chunka<chunkb)?-1:1;a=a.substring(chunka.length);b=b.substring(chunkb.length);}}
-Number.constrain=function(num,min,max)
-{if(num<min)
-num=min;else if(num>max)
-num=max;return num;}
-Number.gcd=function(a,b)
-{if(b===0)
-return a;else
-return Number.gcd(b,a%b);}
-Number.toFixedIfFloating=function(value)
-{if(!value||isNaN(value))
-return value;var number=Number(value);return number%1?number.toFixed(3):String(number);}
-Date.prototype.toISO8601Compact=function()
-{function leadZero(x)
-{return(x>9?"":"0")+x;}
-return this.getFullYear()+
-leadZero(this.getMonth()+1)+
-leadZero(this.getDate())+"T"+
-leadZero(this.getHours())+
-leadZero(this.getMinutes())+
-leadZero(this.getSeconds());}
-Object.defineProperty(Array.prototype,"remove",{value:function(value,onlyFirst)
-{if(onlyFirst){var index=this.indexOf(value);if(index!==-1)
-this.splice(index,1);return;}
-var length=this.length;for(var i=0;i<length;++i){if(this[i]===value)
-this.splice(i,1);}}});Object.defineProperty(Array.prototype,"keySet",{value:function()
-{var keys={};for(var i=0;i<this.length;++i)
-keys[this[i]]=true;return keys;}});Object.defineProperty(Array.prototype,"rotate",{value:function(index)
-{var result=[];for(var i=index;i<index+this.length;++i)
-result.push(this[i%this.length]);return result;}});Object.defineProperty(Uint32Array.prototype,"sort",{value:Array.prototype.sort});(function(){var partition={value:function(comparator,left,right,pivotIndex)
-{function swap(array,i1,i2)
-{var temp=array[i1];array[i1]=array[i2];array[i2]=temp;}
-var pivotValue=this[pivotIndex];swap(this,right,pivotIndex);var storeIndex=left;for(var i=left;i<right;++i){if(comparator(this[i],pivotValue)<0){swap(this,storeIndex,i);++storeIndex;}}
-swap(this,right,storeIndex);return storeIndex;}};Object.defineProperty(Array.prototype,"partition",partition);Object.defineProperty(Uint32Array.prototype,"partition",partition);var sortRange={value:function(comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight)
-{function quickSortRange(array,comparator,left,right,sortWindowLeft,sortWindowRight)
-{if(right<=left)
-return;var pivotIndex=Math.floor(Math.random()*(right-left))+left;var pivotNewIndex=array.partition(comparator,left,right,pivotIndex);if(sortWindowLeft<pivotNewIndex)
-quickSortRange(array,comparator,left,pivotNewIndex-1,sortWindowLeft,sortWindowRight);if(pivotNewIndex<sortWindowRight)
-quickSortRange(array,comparator,pivotNewIndex+1,right,sortWindowLeft,sortWindowRight);}
-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,"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;}
-var low=0;var high=this.length-1;for(;;){var pivotPosition=this.partition(comparator,low,high,Math.floor((high+low)/2));if(pivotPosition===k)
-return this[k];else if(pivotPosition>k)
-high=pivotPosition-1;else
-low=pivotPosition+1;}}});Object.defineProperty(Array.prototype,"lowerBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"upperBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>=0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"binaryIndexOf",{value:function(value,comparator)
-{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(){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);}
-String.sprintf=function(format,var_arg)
-{return String.vsprintf(format,Array.prototype.slice.call(arguments,1));}
-String.tokenizeFormatString=function(format,formatters)
-{var tokens=[];var substitutionIndex=0;function addStringToken(str)
-{tokens.push({type:"string",value:str});}
-function addSpecifierToken(specifier,precision,substitutionIndex)
-{tokens.push({type:"specifier",specifier:specifier,precision:precision,substitutionIndex:substitutionIndex});}
-function isDigit(c)
-{return!!/[0-9]/.exec(c);}
-var index=0;for(var precentIndex=format.indexOf("%",index);precentIndex!==-1;precentIndex=format.indexOf("%",index)){addStringToken(format.substring(index,precentIndex));index=precentIndex+1;if(isDigit(format[index])){var number=parseInt(format.substring(index),10);while(isDigit(format[index]))
-++index;if(number>0&&format[index]==="$"){substitutionIndex=(number-1);++index;}}
-var precision=-1;if(format[index]==="."){++index;precision=parseInt(format.substring(index),10);if(isNaN(precision))
-precision=0;while(isDigit(format[index]))
-++index;}
-if(!(format[index]in formatters)){addStringToken(format.substring(precentIndex,index+1));++index;continue;}
-addSpecifierToken(format[index],precision,substitutionIndex);++substitutionIndex;++index;}
-addStringToken(format.substring(index));return tokens;}
-String.standardFormatters={d:function(substitution)
-{return!isNaN(substitution)?substitution:0;},f:function(substitution,token)
-{if(substitution&&token.precision>-1)
-substitution=substitution.toFixed(token.precision);return!isNaN(substitution)?substitution:(token.precision>-1?Number(0).toFixed(token.precision):0);},s:function(substitution)
-{return substitution;}}
-String.vsprintf=function(format,substitutions)
-{return String.format(format,substitutions,String.standardFormatters,"",function(a,b){return a+b;}).formattedResult;}
-String.format=function(format,substitutions,formatters,initialValue,append)
-{if(!format||!substitutions||!substitutions.length)
-return{formattedResult:append(initialValue,format),unusedSubstitutions:substitutions};function prettyFunctionName()
-{return"String.format(\""+format+"\", \""+substitutions.join("\", \"")+"\")";}
-function warn(msg)
-{console.warn(prettyFunctionName()+": "+msg);}
-function error(msg)
-{console.error(prettyFunctionName()+": "+msg);}
-var result=initialValue;var tokens=String.tokenizeFormatString(format,formatters);var usedSubstitutionIndexes={};for(var i=0;i<tokens.length;++i){var token=tokens[i];if(token.type==="string"){result=append(result,token.value);continue;}
-if(token.type!=="specifier"){error("Unknown token type \""+token.type+"\" found.");continue;}
-if(token.substitutionIndex>=substitutions.length){error("not enough substitution arguments. Had "+substitutions.length+" but needed "+(token.substitutionIndex+1)+", so substitution was skipped.");result=append(result,"%"+(token.precision>-1?token.precision:"")+token.specifier);continue;}
-usedSubstitutionIndexes[token.substitutionIndex]=true;if(!(token.specifier in formatters)){warn("unsupported format character \u201C"+token.specifier+"\u201D. Treating as a string.");result=append(result,substitutions[token.substitutionIndex]);continue;}
-result=append(result,formatters[token.specifier](substitutions[token.substitutionIndex],token));}
-var unusedSubstitutions=[];for(var i=0;i<substitutions.length;++i){if(i in usedSubstitutionIndexes)
-continue;unusedSubstitutions.push(substitutions[i]);}
-return{formattedResult:result,unusedSubstitutions:unusedSubstitutions};}
-function createSearchRegex(query,caseSensitive,isRegex)
-{var regexFlags=caseSensitive?"g":"gi";var regexObject;if(isRegex){try{regexObject=new RegExp(query,regexFlags);}catch(e){}}
-if(!regexObject)
-regexObject=createPlainTextSearchRegex(query,regexFlags);return regexObject;}
-function createPlainTextSearchRegex(query,flags)
-{var regexSpecialCharacters=String.regexSpecialCharacters();var regex="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(regexSpecialCharacters.indexOf(c)!=-1)
-regex+="\\";regex+=c;}
-return new RegExp(regex,flags||"");}
-function countRegexMatches(regex,content)
-{var text=content;var result=0;var match;while(text&&(match=regex.exec(text))){if(match[0].length>0)
-++result;text=text.substring(match.index+1);}
-return result;}
-function numberToStringWithSpacesPadding(value,symbolsCount)
-{var numberString=value.toString();var paddingLength=Math.max(0,symbolsCount-numberString.length);var paddingString=Array(paddingLength+1).join("\u00a0");return paddingString+numberString;}
-var createObjectIdentifier=function()
-{return"_"+ ++createObjectIdentifier._last;}
-createObjectIdentifier._last=0;var Set=function()
-{this._set={};this._size=0;}
-Set.prototype={add:function(item)
-{var objectIdentifier=item.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();item.__identifier=objectIdentifier;}
-if(!this._set[objectIdentifier])
-++this._size;this._set[objectIdentifier]=item;},remove:function(item)
-{if(this._set[item.__identifier]){--this._size;delete this._set[item.__identifier];return true;}
-return false;},items:function()
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._set)
-result[i++]=this._set[objectIdentifier];return result;},hasItem:function(item)
-{return!!this._set[item.__identifier];},size:function()
-{return this._size;},clear:function()
-{this._set={};this._size=0;}}
-var Map=function()
-{this._map={};this._size=0;}
-Map.prototype={put:function(key,value)
-{var objectIdentifier=key.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();key.__identifier=objectIdentifier;}
-if(!this._map[objectIdentifier])
-++this._size;this._map[objectIdentifier]=[key,value];},remove:function(key)
-{var result=this._map[key.__identifier];if(!result)
-return undefined;--this._size;delete this._map[key.__identifier];return result[1];},keys:function()
-{return this._list(0);},values:function()
-{return this._list(1);},_list:function(index)
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._map)
-result[i++]=this._map[objectIdentifier][index];return result;},get:function(key)
-{var entry=this._map[key.__identifier];return entry?entry[1]:undefined;},contains:function(key)
-{var entry=this._map[key.__identifier];return!!entry;},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;}}
-var StringMap=function()
-{this._map={};this._size=0;}
-StringMap.prototype={put:function(key,value)
-{if(key==="__proto__"){if(!this._hasProtoKey){++this._size;this._hasProtoKey=true;}
-this._protoValue=value;return;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-++this._size;this._map[key]=value;},remove:function(key)
-{var result;if(key==="__proto__"){if(!this._hasProtoKey)
-return undefined;--this._size;delete this._hasProtoKey;result=this._protoValue;delete this._protoValue;return result;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;--this._size;result=this._map[key];delete this._map[key];return result;},keys:function()
-{var result=Object.keys(this._map)||[];if(this._hasProtoKey)
-result.push("__proto__");return result;},values:function()
-{var result=Object.values(this._map);if(this._hasProtoKey)
-result.push(this._protoValue);return result;},get:function(key)
-{if(key==="__proto__")
-return this._protoValue;if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;return this._map[key];},contains:function(key)
-{var result;if(key==="__proto__")
-return this._hasProtoKey;return Object.prototype.hasOwnProperty.call(this._map,key);},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;delete this._hasProtoKey;delete this._protoValue;}}
-function loadXHR(url,async,callback)
-{function onReadyStateChanged()
-{if(xhr.readyState!==XMLHttpRequest.DONE)
-return;if(xhr.status===200){callback(xhr.responseText);return;}
-callback(null);}
-var xhr=new XMLHttpRequest();xhr.open("GET",url,async);if(async)
-xhr.onreadystatechange=onReadyStateChanged;xhr.send(null);if(!async){if(xhr.status===200)
-return xhr.responseText;return null;}
-return null;}
-function StringPool()
-{this.reset();}
-StringPool.prototype={intern:function(string)
-{if(string==="__proto__")
-return"__proto__";var result=this._strings[string];if(result===undefined){this._strings[string]=string;result=string;}
-return result;},reset:function()
-{this._strings=Object.create(null);},internObjectStrings:function(obj,depthLimit)
-{if(typeof depthLimit!=="number")
-depthLimit=100;else if(--depthLimit<0)
-throw"recursion depth limit reached in StringPool.deepIntern(), perhaps attempting to traverse cyclical references?";for(var field in obj){switch(typeof obj[field]){case"string":obj[field]=this.intern(obj[field]);break;case"object":this.internObjectStrings(obj[field],depthLimit);break;}}}}
-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 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)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.createCallback() is called after CallbackBarrier.callWhenDone()");++this._pendingIncomingCallbacksCount;return this._incomingCallback.bind(this,userCallback);},callWhenDone:function(callback)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.callWhenDone() is called multiple times");this._outgoingCallback=callback;if(!this._pendingIncomingCallbacksCount)
-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(){"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-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)||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");}
-else if(ch==":"){return ret("operator",ch);}
-else if(/[;{}\[\]\(\)]/.test(ch)){return ret(null,ch);}
-else if(ch=="u"&&stream.match("rl(")){stream.backUp(1);state.tokenize=tokenParenthesized;return ret("property","variable");}
-else{stream.eatWhile(/[\w\\\-]/);return ret("property","variable");}}
-function tokenString(quote,nonInclusive){return function(stream,state){var escaped=false,ch;while((ch=stream.next())!=null){if(ch==quote&&!escaped)
-break;escaped=!escaped&&ch=="\\";}
-if(!escaped){if(nonInclusive)stream.backUp(1);state.tokenize=tokenBase;}
-return ret("string","string");};}
-function tokenParenthesized(stream,state){stream.next();if(!stream.match(/\s*[\"\']/,false))
-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[state.stack.length-1]="@media{";}
-else{var newContext=allowNested?"block":"rule";state.stack.push(newContext);}}
-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[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","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"});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 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;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;}}}
-var cx={state:null,column:null,marked:null,cc:null};function pass(){for(var i=arguments.length-1;i>=0;i--)cx.cc.push(arguments[i]);}
-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;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,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,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 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";}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();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(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(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=="<"){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;}
-stream.next();}
-return style;};}
-function doctype(depth){return function(stream,state){var ch;while((ch=stream.next())!=null){if(ch=="<"){state.tokenize=doctype(depth+1);return state.tokenize(stream,state);}else if(ch==">"){if(depth==1){state.tokenize=inText;break;}else{state.tokenize=doctype(depth-1);return state.tokenize(stream,state);}}}
-return"meta";};}
-var curState,curStream,setStyle;function pass(){for(var i=arguments.length-1;i>=0;i--)curState.cc.push(arguments[i]);}
-function cont(){pass.apply(null,arguments);return true;}
-function pushContext(tagName,startOfLine){var noIndent=Kludges.doNotIndent.hasOwnProperty(tagName)||(curState.context&&curState.context.noIndent);curState.context={prev:curState.context,tagName:tagName,indent:curState.indented,startOfLine:startOfLine,noIndent:noIndent};}
-function popContext(){if(curState.context)curState.context=curState.context.prev;}
-function element(type){if(type=="openTag"){curState.tagName=tagName;curState.tagStart=curStream.column();return cont(attributes,endtag(curState.startOfLine));}else if(type=="closeTag"){var err=false;if(curState.context){if(curState.context.tagName!=tagName){if(Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())){popContext();}
-err=!curState.context||curState.context.tagName!=tagName;}}else{err=true;}
-if(err)setStyle="error";return cont(endclosetag(err));}
-return cont();}
-function endtag(startOfLine){return function(type){var tagName=curState.tagName;curState.tagName=curState.tagStart=null;if(type=="selfcloseTag"||(type=="endTag"&&Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))){maybePopContext(tagName.toLowerCase());return cont();}
-if(type=="endTag"){maybePopContext(tagName.toLowerCase());pushContext(tagName,startOfLine);return cont();}
-return cont();};}
-function endclosetag(err){return function(type){if(err)setStyle="error";if(type=="endTag"){popContext();return cont();}
-setStyle="error";return cont(arguments.callee);};}
-function maybePopContext(nextTagName){var parentTagName;while(true){if(!curState.context){return;}
-parentTagName=curState.context.tagName.toLowerCase();if(!Kludges.contextGrabbers.hasOwnProperty(parentTagName)||!Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)){return;}
-popContext();}}
-function attributes(type){if(type=="word"){setStyle="attribute";return cont(attribute,attributes);}
-if(type=="endTag"||type=="selfcloseTag")return pass();setStyle="error";return cont(attributes);}
-function attribute(type){if(type=="equals")return cont(attvalue,attributes);if(!Kludges.allowMissing)setStyle="error";else if(type=="word"){setStyle="attribute";return cont(attribute,attributes);}
-return(type=="endTag"||type=="selfcloseTag")?pass():cont();}
-function attvalue(type){if(type=="string")return cont(attvaluemaybe);if(type=="word"&&Kludges.allowUnquoted){setStyle="string";return cont();}
-setStyle="error";return(type=="endTag"||type=="selfCloseTag")?pass():cont();}
-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;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
-return state.tagStart+indentUnit*multilineTagIndentFactor;}
-if(alignCDATA&&/<!\[CDATA\[/.test(textAfter))return 0;if(context&&/^<\//.test(textAfter))
-context=context.prev;while(context&&!context.startOfLine)
-context=context.prev;if(context)return context.indent+indentUnit;else return 0;},electricChars:"/",blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:parserConfig.htmlMode?"html":"xml",helperType:parserConfig.htmlMode?"html":"xml"};});CodeMirror.defineMIME("text/xml","xml");CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html"))
-CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});;CodeMirror.defineMode("htmlmixed",function(config,parserConfig){var htmlMode=CodeMirror.getMode(config,{name:"xml",htmlMode:true});var cssMode=CodeMirror.getMode(config,"css");var scriptTypes=[],scriptTypesConf=parserConfig&&parserConfig.scriptTypes;scriptTypes.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:CodeMirror.getMode(config,"javascript")});if(scriptTypesConf)for(var i=0;i<scriptTypesConf.length;++i){var conf=scriptTypesConf[i];scriptTypes.push({matches:conf.matches,mode:conf.mode&&CodeMirror.getMode(config,conf.mode)});}
-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);}
-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));}
-function css(stream,state){if(stream.match(/^<\/\s*style\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);}
-return maybeBackup(stream,/<\/\s*style\s*>/,cssMode.token(stream,state.localState));}
-return{startState:function(){var state=htmlMode.startState();return{token:html,localMode:null,localState:null,htmlState:state};},copyState:function(state){if(state.localState)
-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");;WebInspector={};FormatterWorker={};WebInspector.CodeMirrorUtils={createTokenizer:function(mimeType)
-{var mode=CodeMirror.getMode({indentUnit:2},mimeType);var state=CodeMirror.startState(mode);function tokenize(line,callback)
-{var stream=new CodeMirror.StringStream(line);while(!stream.eol()){var style=mode.token(stream,state);var value=stream.current();callback(value,style,stream.start,stream.start+value.length);stream.start=stream.pos;}}
-return tokenize;},convertTokenType:function(tokenType)
-{if(tokenType.startsWith("js-variable")||tokenType.startsWith("js-property")||tokenType==="js-def")
-return"javascript-ident";if(tokenType==="js-string-2")
-return"javascript-regexp";if(tokenType==="js-number"||tokenType==="js-comment"||tokenType==="js-string"||tokenType==="js-keyword")
-return"javascript-"+tokenType.substring("js-".length);if(tokenType==="css-number")
-return"css-number";return null;},overrideModeWithPrefixedTokens:function(modeName,tokenPrefix)
-{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(null,codeMirrorMode.token);return codeMirrorMode;}
-function tokenOverride(superToken,stream,state)
-{var token=superToken(stream,state);return token?tokenPrefix+token:token;}}}
-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];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=convertedType;}
-processedChunkCharacters+=newColumn-column;if(processedChunkCharacters>=chunkSize){postMessage({chunk:outlineChunk,total:chunkCount,index:currentChunk++});outlineChunk=[];processedChunkCharacters=0;}}
-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;}
-return formattedContent;}
-FormatterWorker._formatCSS=function(content,mapping,offset,formattedOffset,indentString)
-{var formattedContent;try{var builder=new FormatterWorker.CSSFormattedContentBuilder(content,mapping,offset,formattedOffset,indentString);var formatter=new FormatterWorker.CSSFormatter(content,builder);formatter.format();formattedContent=builder.content();}catch(e){formattedContent=content;}
-return formattedContent;}
-FormatterWorker.HTMLFormatter=function(indentString)
-{this._indentString=indentString;}
-FormatterWorker.HTMLFormatter.prototype={format:function(content)
-{this.line=content;this._content=content;this._formattedContent="";this._mapping={original:[0],formatted:[0]};this._position=0;var scriptOpened=false;var styleOpened=false;var tokenizer=WebInspector.CodeMirrorUtils.createTokenizer("text/html");function processToken(tokenValue,tokenType,tokenStart,tokenEnd){if(tokenType!=="xml-tag")
-return;if(tokenValue.toLowerCase()==="<script"){scriptOpened=true;}else if(scriptOpened&&tokenValue===">"){scriptOpened=false;this._scriptStarted(tokenEnd);}else if(tokenValue.toLowerCase()==="</script"){this._scriptEnded(tokenStart);}else if(tokenValue.toLowerCase()==="<style"){styleOpened=true;}else if(styleOpened&&tokenValue===">"){styleOpened=false;this._styleStarted(tokenEnd);}else if(tokenValue.toLowerCase()==="</style"){this._styleEnded(tokenStart);}}
-tokenizer(content,processToken.bind(this));this._formattedContent+=this._content.substring(this._position);return{content:this._formattedContent,mapping:this._mapping};},_scriptStarted:function(cursor)
-{this._handleSubFormatterStart(cursor);},_scriptEnded:function(cursor)
-{this._handleSubFormatterEnd(FormatterWorker._formatScript,cursor);},_styleStarted:function(cursor)
-{this._handleSubFormatterStart(cursor);},_styleEnded:function(cursor)
-{this._handleSubFormatterEnd(FormatterWorker._formatCSS,cursor);},_handleSubFormatterStart:function(cursor)
-{this._formattedContent+=this._content.substring(this._position,cursor);this._formattedContent+="\n";this._position=cursor;},_handleSubFormatterEnd:function(formatFunction,cursor)
-{if(cursor===this._position)
-return;var scriptContent=this._content.substring(this._position,cursor);this._mapping.original.push(this._position);this._mapping.formatted.push(this._formattedContent.length);var formattedScriptContent=formatFunction(scriptContent,this._mapping,this._position,this._formattedContent.length,this._indentString);this._formattedContent+=formattedScriptContent;this._position=cursor;}}
-Array.prototype.keySet=function()
-{var keys={};for(var i=0;i<this.length;++i)
-keys[this[i]]=true;return keys;};function require()
-{return parse;}
-var exports={tokenizer:null};var KEYWORDS=array_to_hash(["break","case","catch","const","continue","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","throw","try","typeof","var","void","while","with"]);var RESERVED_WORDS=array_to_hash(["abstract","boolean","byte","char","class","debugger","double","enum","export","extends","final","float","goto","implements","import","int","interface","long","native","package","private","protected","public","short","static","super","synchronized","throws","transient","volatile"]);var KEYWORDS_BEFORE_EXPRESSION=array_to_hash(["return","new","delete","throw","else","case"]);var KEYWORDS_ATOM=array_to_hash(["false","null","true","undefined"]);var OPERATOR_CHARS=array_to_hash(characters("+-*&%=<>!?|~^"));var RE_HEX_NUMBER=/^0x[0-9a-f]+$/i;var RE_OCT_NUMBER=/^0[0-7]+$/;var RE_DEC_NUMBER=/^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i;var OPERATORS=array_to_hash(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","%=","|=","^=","&=","&&","||"]);var WHITESPACE_CHARS=array_to_hash(characters(" \n\r\t"));var PUNC_BEFORE_EXPRESSION=array_to_hash(characters("[{}(,.;:"));var PUNC_CHARS=array_to_hash(characters("[]{}(),;:"));var REGEXP_MODIFIERS=array_to_hash(characters("gmsiy"));function is_alphanumeric_char(ch){ch=ch.charCodeAt(0);return(ch>=48&&ch<=57)||(ch>=65&&ch<=90)||(ch>=97&&ch<=122);};function is_identifier_char(ch){return is_alphanumeric_char(ch)||ch=="$"||ch=="_";};function is_digit(ch){ch=ch.charCodeAt(0);return ch>=48&&ch<=57;};function parse_js_number(num){if(RE_HEX_NUMBER.test(num)){return parseInt(num.substr(2),16);}else if(RE_OCT_NUMBER.test(num)){return parseInt(num.substr(1),8);}else if(RE_DEC_NUMBER.test(num)){return parseFloat(num);}};function JS_Parse_Error(message,line,col,pos){this.message=message;this.line=line;this.col=col;this.pos=pos;try{({})();}catch(ex){this.stack=ex.stack;};};JS_Parse_Error.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")"+"\n\n"+this.stack;};function js_error(message,line,col,pos){throw new JS_Parse_Error(message,line,col,pos);};function is_token(token,type,val){return token.type==type&&(val==null||token.value==val);};var EX_EOF={};function tokenizer($TEXT){var S={text:$TEXT.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,''),pos:0,tokpos:0,line:0,tokline:0,col:0,tokcol:0,newline_before:false,regex_allowed:false,comments_before:[]};function peek(){return S.text.charAt(S.pos);};function next(signal_eof){var ch=S.text.charAt(S.pos++);if(signal_eof&&!ch)
-throw EX_EOF;if(ch=="\n"){S.newline_before=true;++S.line;S.col=0;}else{++S.col;}
-return ch;};function eof(){return!S.peek();};function find(what,signal_eof){var pos=S.text.indexOf(what,S.pos);if(signal_eof&&pos==-1)throw EX_EOF;return pos;};function start_token(){S.tokline=S.line;S.tokcol=S.col;S.tokpos=S.pos;};function token(type,value,is_comment){S.regex_allowed=((type=="operator"&&!HOP(UNARY_POSTFIX,value))||(type=="keyword"&&HOP(KEYWORDS_BEFORE_EXPRESSION,value))||(type=="punc"&&HOP(PUNC_BEFORE_EXPRESSION,value)));var ret={type:type,value:value,line:S.tokline,col:S.tokcol,pos:S.tokpos,nlb:S.newline_before};if(!is_comment){ret.comments_before=S.comments_before;S.comments_before=[];}
-S.newline_before=false;return ret;};function skip_whitespace(){while(HOP(WHITESPACE_CHARS,peek()))
-next();};function read_while(pred){var ret="",ch=peek(),i=0;while(ch&&pred(ch,i++)){ret+=next();ch=peek();}
-return ret;};function parse_error(err){js_error(err,S.tokline,S.tokcol,S.tokpos);};function read_num(prefix){var has_e=false,after_e=false,has_x=false,has_dot=prefix==".";var num=read_while(function(ch,i){if(ch=="x"||ch=="X"){if(has_x)return false;return has_x=true;}
-if(!has_x&&(ch=="E"||ch=="e")){if(has_e)return false;return has_e=after_e=true;}
-if(ch=="-"){if(after_e||(i==0&&!prefix))return true;return false;}
-if(ch=="+")return after_e;after_e=false;if(ch=="."){if(!has_dot)
-return has_dot=true;return false;}
-return is_alphanumeric_char(ch);});if(prefix)
-num=prefix+num;var valid=parse_js_number(num);if(!isNaN(valid)){return token("num",valid);}else{parse_error("Invalid syntax: "+num);}};function read_escaped_char(){var ch=next(true);switch(ch){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"v":return"\v";case"f":return"\f";case"0":return"\0";case"x":return String.fromCharCode(hex_bytes(2));case"u":return String.fromCharCode(hex_bytes(4));default:return ch;}};function hex_bytes(n){var num=0;for(;n>0;--n){var digit=parseInt(next(true),16);if(isNaN(digit))
-parse_error("Invalid hex-character pattern in string");num=(num<<4)|digit;}
-return num;};function read_string(){return with_eof_error("Unterminated string constant",function(){var quote=next(),ret="";for(;;){var ch=next(true);if(ch=="\\")ch=read_escaped_char();else if(ch==quote)break;ret+=ch;}
-return token("string",ret);});};function read_line_comment(){next();var i=find("\n"),ret;if(i==-1){ret=S.text.substr(S.pos);S.pos=S.text.length;}else{ret=S.text.substring(S.pos,i);S.pos=i;}
-return token("comment1",ret,true);};function read_multiline_comment(){next();return with_eof_error("Unterminated multiline comment",function(){var i=find("*/",true),text=S.text.substring(S.pos,i),tok=token("comment2",text,true);S.pos=i+2;S.line+=text.split("\n").length-1;S.newline_before=text.indexOf("\n")>=0;return tok;});};function read_regexp(){return with_eof_error("Unterminated regular expression",function(){var prev_backslash=false,regexp="",ch,in_class=false;while((ch=next(true)))if(prev_backslash){regexp+="\\"+ch;prev_backslash=false;}else if(ch=="["){in_class=true;regexp+=ch;}else if(ch=="]"&&in_class){in_class=false;regexp+=ch;}else if(ch=="/"&&!in_class){break;}else if(ch=="\\"){prev_backslash=true;}else{regexp+=ch;}
-var mods=read_while(function(ch){return HOP(REGEXP_MODIFIERS,ch);});return token("regexp",[regexp,mods]);});};function read_operator(prefix){function grow(op){if(!peek())return op;var bigger=op+peek();if(HOP(OPERATORS,bigger)){next();return grow(bigger);}else{return op;}};return token("operator",grow(prefix||next()));};function handle_slash(){next();var regex_allowed=S.regex_allowed;switch(peek()){case"/":S.comments_before.push(read_line_comment());S.regex_allowed=regex_allowed;return next_token();case"*":S.comments_before.push(read_multiline_comment());S.regex_allowed=regex_allowed;return next_token();}
-return S.regex_allowed?read_regexp():read_operator("/");};function handle_dot(){next();return is_digit(peek())?read_num("."):token("punc",".");};function read_word(){var word=read_while(is_identifier_char);return!HOP(KEYWORDS,word)?token("name",word):HOP(OPERATORS,word)?token("operator",word):HOP(KEYWORDS_ATOM,word)?token("atom",word):token("keyword",word);};function with_eof_error(eof_error,cont){try{return cont();}catch(ex){if(ex===EX_EOF)parse_error(eof_error);else throw ex;}};function next_token(force_regexp){if(force_regexp)
-return read_regexp();skip_whitespace();start_token();var ch=peek();if(!ch)return token("eof");if(is_digit(ch))return read_num();if(ch=='"'||ch=="'")return read_string();if(HOP(PUNC_CHARS,ch))return token("punc",next());if(ch==".")return handle_dot();if(ch=="/")return handle_slash();if(HOP(OPERATOR_CHARS,ch))return read_operator();if(is_identifier_char(ch))return read_word();parse_error("Unexpected character '"+ch+"'");};next_token.context=function(nc){if(nc)S=nc;return S;};return next_token;};var UNARY_PREFIX=array_to_hash(["typeof","void","delete","--","++","!","~","-","+"]);var UNARY_POSTFIX=array_to_hash(["--","++"]);var ASSIGNMENT=(function(a,ret,i){while(i<a.length){ret[a[i]]=a[i].substr(0,a[i].length-1);i++;}
-return ret;})(["+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&="],{"=":true},0);var PRECEDENCE=(function(a,ret){for(var i=0,n=1;i<a.length;++i,++n){var b=a[i];for(var j=0;j<b.length;++j){ret[b[j]]=n;}}
-return ret;})([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]],{});var STATEMENTS_WITH_LABELS=array_to_hash(["for","do","while","switch"]);var ATOMIC_START_TOKEN=array_to_hash(["atom","num","string","regexp","name"]);function NodeWithToken(str,start,end){this.name=str;this.start=start;this.end=end;};NodeWithToken.prototype.toString=function(){return this.name;};function parse($TEXT,strict_mode,embed_tokens){var S={input:typeof $TEXT=="string"?tokenizer($TEXT,true):$TEXT,token:null,prev:null,peeked:null,in_function:0,in_loop:0,labels:[]};S.token=next();function is(type,value){return is_token(S.token,type,value);};function peek(){return S.peeked||(S.peeked=S.input());};function next(){S.prev=S.token;if(S.peeked){S.token=S.peeked;S.peeked=null;}else{S.token=S.input();}
-return S.token;};function prev(){return S.prev;};function croak(msg,line,col,pos){var ctx=S.input.context();js_error(msg,line!=null?line:ctx.tokline,col!=null?col:ctx.tokcol,pos!=null?pos:ctx.tokpos);};function token_error(token,msg){croak(msg,token.line,token.col);};function unexpected(token){if(token==null)
-token=S.token;token_error(token,"Unexpected token: "+token.type+" ("+token.value+")");};function expect_token(type,val){if(is(type,val)){return next();}
-token_error(S.token,"Unexpected token "+S.token.type+", expected "+type);};function expect(punc){return expect_token("punc",punc);};function can_insert_semicolon(){return!strict_mode&&(S.token.nlb||is("eof")||is("punc","}"));};function semicolon(){if(is("punc",";"))next();else if(!can_insert_semicolon())unexpected();};function as(){return slice(arguments);};function parenthesised(){expect("(");var ex=expression();expect(")");return ex;};function add_tokens(str,start,end){return new NodeWithToken(str,start,end);};var statement=embed_tokens?function(){var start=S.token;var stmt=$statement();stmt[0]=add_tokens(stmt[0],start,prev());return stmt;}:$statement;function $statement(){if(is("operator","/")){S.peeked=null;S.token=S.input(true);}
-switch(S.token.type){case"num":case"string":case"regexp":case"operator":case"atom":return simple_statement();case"name":return is_token(peek(),"punc",":")?labeled_statement(prog1(S.token.value,next,next)):simple_statement();case"punc":switch(S.token.value){case"{":return as("block",block_());case"[":case"(":return simple_statement();case";":next();return as("block");default:unexpected();}
-case"keyword":switch(prog1(S.token.value,next)){case"break":return break_cont("break");case"continue":return break_cont("continue");case"debugger":semicolon();return as("debugger");case"do":return(function(body){expect_token("keyword","while");return as("do",prog1(parenthesised,semicolon),body);})(in_loop(statement));case"for":return for_();case"function":return function_(true);case"if":return if_();case"return":if(S.in_function==0)
-croak("'return' outside of function");return as("return",is("punc",";")?(next(),null):can_insert_semicolon()?null:prog1(expression,semicolon));case"switch":return as("switch",parenthesised(),switch_block_());case"throw":return as("throw",prog1(expression,semicolon));case"try":return try_();case"var":return prog1(var_,semicolon);case"const":return prog1(const_,semicolon);case"while":return as("while",parenthesised(),in_loop(statement));case"with":return as("with",parenthesised(),statement());default:unexpected();}}};function labeled_statement(label){S.labels.push(label);var start=S.token,stat=statement();if(strict_mode&&!HOP(STATEMENTS_WITH_LABELS,stat[0]))
-unexpected(start);S.labels.pop();return as("label",label,stat);};function simple_statement(){return as("stat",prog1(expression,semicolon));};function break_cont(type){var name=is("name")?S.token.value:null;if(name!=null){next();if(!member(name,S.labels))
-croak("Label "+name+" without matching loop or statement");}
-else if(S.in_loop==0)
-croak(type+" not inside a loop or switch");semicolon();return as(type,name);};function for_(){expect("(");var has_var=is("keyword","var");if(has_var)
-next();if(is("name")&&is_token(peek(),"operator","in")){var name=S.token.value;next();next();var obj=expression();expect(")");return as("for-in",has_var,name,obj,in_loop(statement));}else{var init=is("punc",";")?null:has_var?var_():expression();expect(";");var test=is("punc",";")?null:expression();expect(";");var step=is("punc",")")?null:expression();expect(")");return as("for",init,test,step,in_loop(statement));}};function function_(in_statement){var name=is("name")?prog1(S.token.value,next):null;if(in_statement&&!name)
-unexpected();expect("(");return as(in_statement?"defun":"function",name,(function(first,a){while(!is("punc",")")){if(first)first=false;else expect(",");if(!is("name"))unexpected();a.push(S.token.value);next();}
-next();return a;})(true,[]),(function(){++S.in_function;var loop=S.in_loop;S.in_loop=0;var a=block_();--S.in_function;S.in_loop=loop;return a;})());};function if_(){var cond=parenthesised(),body=statement(),belse;if(is("keyword","else")){next();belse=statement();}
-return as("if",cond,body,belse);};function block_(){expect("{");var a=[];while(!is("punc","}")){if(is("eof"))unexpected();a.push(statement());}
-next();return a;};var switch_block_=curry(in_loop,function(){expect("{");var a=[],cur=null;while(!is("punc","}")){if(is("eof"))unexpected();if(is("keyword","case")){next();cur=[];a.push([expression(),cur]);expect(":");}
-else if(is("keyword","default")){next();expect(":");cur=[];a.push([null,cur]);}
-else{if(!cur)unexpected();cur.push(statement());}}
-next();return a;});function try_(){var body=block_(),bcatch,bfinally;if(is("keyword","catch")){next();expect("(");if(!is("name"))
-croak("Name expected");var name=S.token.value;next();expect(")");bcatch=[name,block_()];}
-if(is("keyword","finally")){next();bfinally=block_();}
-if(!bcatch&&!bfinally)
-croak("Missing catch/finally blocks");return as("try",body,bcatch,bfinally);};function vardefs(){var a=[];for(;;){if(!is("name"))
-unexpected();var name=S.token.value;next();if(is("operator","=")){next();a.push([name,expression(false)]);}else{a.push([name]);}
-if(!is("punc",","))
-break;next();}
-return a;};function var_(){return as("var",vardefs());};function const_(){return as("const",vardefs());};function new_(){var newexp=expr_atom(false),args;if(is("punc","(")){next();args=expr_list(")");}else{args=[];}
-return subscripts(as("new",newexp,args),true);};function expr_atom(allow_calls){if(is("operator","new")){next();return new_();}
-if(is("operator")&&HOP(UNARY_PREFIX,S.token.value)){return make_unary("unary-prefix",prog1(S.token.value,next),expr_atom(allow_calls));}
-if(is("punc")){switch(S.token.value){case"(":next();return subscripts(prog1(expression,curry(expect,")")),allow_calls);case"[":next();return subscripts(array_(),allow_calls);case"{":next();return subscripts(object_(),allow_calls);}
-unexpected();}
-if(is("keyword","function")){next();return subscripts(function_(false),allow_calls);}
-if(HOP(ATOMIC_START_TOKEN,S.token.type)){var atom=S.token.type=="regexp"?as("regexp",S.token.value[0],S.token.value[1]):as(S.token.type,S.token.value);return subscripts(prog1(atom,next),allow_calls);}
-unexpected();};function expr_list(closing,allow_trailing_comma,allow_empty){var first=true,a=[];while(!is("punc",closing)){if(first)first=false;else expect(",");if(allow_trailing_comma&&is("punc",closing))break;if(is("punc",",")&&allow_empty){a.push(["atom","undefined"]);}else{a.push(expression(false));}}
-next();return a;};function array_(){return as("array",expr_list("]",!strict_mode,true));};function object_(){var first=true,a=[];while(!is("punc","}")){if(first)first=false;else expect(",");if(!strict_mode&&is("punc","}"))
-break;var type=S.token.type;var name=as_property_name();if(type=="name"&&(name=="get"||name=="set")&&!is("punc",":")){a.push([as_name(),function_(false),name]);}else{expect(":");a.push([name,expression(false)]);}}
-next();return as("object",a);};function as_property_name(){switch(S.token.type){case"num":case"string":return prog1(S.token.value,next);}
-return as_name();};function as_name(){switch(S.token.type){case"name":case"operator":case"keyword":case"atom":return prog1(S.token.value,next);default:unexpected();}};function subscripts(expr,allow_calls){if(is("punc",".")){next();return subscripts(as("dot",expr,as_name()),allow_calls);}
-if(is("punc","[")){next();return subscripts(as("sub",expr,prog1(expression,curry(expect,"]"))),allow_calls);}
-if(allow_calls&&is("punc","(")){next();return subscripts(as("call",expr,expr_list(")")),true);}
-if(allow_calls&&is("operator")&&HOP(UNARY_POSTFIX,S.token.value)){return prog1(curry(make_unary,"unary-postfix",S.token.value,expr),next);}
-return expr;};function make_unary(tag,op,expr){if((op=="++"||op=="--")&&!is_assignable(expr))
-croak("Invalid use of "+op+" operator");return as(tag,op,expr);};function expr_op(left,min_prec){var op=is("operator")?S.token.value:null;var prec=op!=null?PRECEDENCE[op]:null;if(prec!=null&&prec>min_prec){next();var right=expr_op(expr_atom(true),prec);return expr_op(as("binary",op,left,right),min_prec);}
-return left;};function expr_ops(){return expr_op(expr_atom(true),0);};function maybe_conditional(){var expr=expr_ops();if(is("operator","?")){next();var yes=expression(false);expect(":");return as("conditional",expr,yes,expression(false));}
-return expr;};function is_assignable(expr){switch(expr[0]){case"dot":case"sub":return true;case"name":return expr[1]!="this";}};function maybe_assign(){var left=maybe_conditional(),val=S.token.value;if(is("operator")&&HOP(ASSIGNMENT,val)){if(is_assignable(left)){next();return as("assign",ASSIGNMENT[val],left,maybe_assign());}
-croak("Invalid assignment");}
-return left;};function expression(commas){if(arguments.length==0)
-commas=true;var expr=maybe_assign();if(commas&&is("punc",",")){next();return as("seq",expr,expression());}
-return expr;};function in_loop(cont){try{++S.in_loop;return cont();}finally{--S.in_loop;}};return as("toplevel",(function(a){while(!is("eof"))
-a.push(statement());return a;})([]));};function curry(f){var args=slice(arguments,1);return function(){return f.apply(this,args.concat(slice(arguments)));};};function prog1(ret){if(ret instanceof Function)
-ret=ret();for(var i=1,n=arguments.length;--n>0;++i)
-arguments[i]();return ret;};function array_to_hash(a){var ret={};for(var i=0;i<a.length;++i)
-ret[a[i]]=true;return ret;};function slice(a,start){return Array.prototype.slice.call(a,start==null?0:start);};function characters(str){return str.split("");};function member(name,array){for(var i=array.length;--i>=0;)
-if(array[i]===name)
-return true;return false;};function HOP(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);};exports.tokenizer=tokenizer;exports.parse=parse;exports.slice=slice;exports.curry=curry;exports.member=member;exports.array_to_hash=array_to_hash;exports.PRECEDENCE=PRECEDENCE;exports.KEYWORDS_ATOM=KEYWORDS_ATOM;exports.RESERVED_WORDS=RESERVED_WORDS;exports.KEYWORDS=KEYWORDS;exports.ATOMIC_START_TOKEN=ATOMIC_START_TOKEN;exports.OPERATORS=OPERATORS;exports.is_alphanumeric_char=is_alphanumeric_char;exports.is_identifier_char=is_identifier_char;;var parse=exports;FormatterWorker.JavaScriptFormatter=function(tokenizer,builder)
-{this._tokenizer=tokenizer;this._builder=builder;this._token=null;this._nextToken=this._tokenizer.next();}
-FormatterWorker.JavaScriptFormatter.prototype={format:function()
-{this._parseSourceElements(FormatterWorker.JavaScriptTokens.EOS);this._consume(FormatterWorker.JavaScriptTokens.EOS);},_peek:function()
-{return this._nextToken.token;},_next:function()
-{if(this._token&&this._token.token===FormatterWorker.JavaScriptTokens.EOS)
-throw"Unexpected EOS token";this._builder.addToken(this._nextToken);this._token=this._nextToken;this._nextToken=this._tokenizer.next(this._forceRegexp);this._forceRegexp=false;return this._token.token;},_consume:function(token)
-{var next=this._next();if(next!==token)
-throw"Unexpected token in consume: expected "+token+", actual "+next;},_expect:function(token)
-{var next=this._next();if(next!==token)
-throw"Unexpected token: expected "+token+", actual "+next;},_expectSemicolon:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.SEMICOLON)
-this._consume(FormatterWorker.JavaScriptTokens.SEMICOLON);},_hasLineTerminatorBeforeNext:function()
-{return this._nextToken.nlb;},_parseSourceElements:function(endToken)
-{while(this._peek()!==endToken){this._parseStatement();this._builder.addNewLine();}},_parseStatementOrBlock:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.LBRACE){this._builder.addSpace();this._parseBlock();return true;}
-this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseStatement();this._builder.decreaseNestingLevel();},_parseStatement:function()
-{switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACE:return this._parseBlock();case FormatterWorker.JavaScriptTokens.CONST:case FormatterWorker.JavaScriptTokens.VAR:return this._parseVariableStatement();case FormatterWorker.JavaScriptTokens.SEMICOLON:return this._next();case FormatterWorker.JavaScriptTokens.IF:return this._parseIfStatement();case FormatterWorker.JavaScriptTokens.DO:return this._parseDoWhileStatement();case FormatterWorker.JavaScriptTokens.WHILE:return this._parseWhileStatement();case FormatterWorker.JavaScriptTokens.FOR:return this._parseForStatement();case FormatterWorker.JavaScriptTokens.CONTINUE:return this._parseContinueStatement();case FormatterWorker.JavaScriptTokens.BREAK:return this._parseBreakStatement();case FormatterWorker.JavaScriptTokens.RETURN:return this._parseReturnStatement();case FormatterWorker.JavaScriptTokens.WITH:return this._parseWithStatement();case FormatterWorker.JavaScriptTokens.SWITCH:return this._parseSwitchStatement();case FormatterWorker.JavaScriptTokens.THROW:return this._parseThrowStatement();case FormatterWorker.JavaScriptTokens.TRY:return this._parseTryStatement();case FormatterWorker.JavaScriptTokens.FUNCTION:return this._parseFunctionDeclaration();case FormatterWorker.JavaScriptTokens.DEBUGGER:return this._parseDebuggerStatement();default:return this._parseExpressionOrLabelledStatement();}},_parseFunctionDeclaration:function()
-{this._expect(FormatterWorker.JavaScriptTokens.FUNCTION);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);this._parseFunctionLiteral()},_parseBlock:function()
-{this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._parseStatement();this._builder.addNewLine();}
-this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseVariableStatement:function()
-{this._parseVariableDeclarations();this._expectSemicolon();},_parseVariableDeclarations:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.VAR)
-this._consume(FormatterWorker.JavaScriptTokens.VAR);else
-this._consume(FormatterWorker.JavaScriptTokens.CONST)
-this._builder.addSpace();var isFirstVariable=true;do{if(!isFirstVariable){this._consume(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}
-isFirstVariable=false;this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);if(this._peek()===FormatterWorker.JavaScriptTokens.ASSIGN){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.ASSIGN);this._builder.addSpace();this._parseAssignmentExpression();}}while(this._peek()===FormatterWorker.JavaScriptTokens.COMMA);},_parseExpressionOrLabelledStatement:function()
-{this._parseExpression();if(this._peek()===FormatterWorker.JavaScriptTokens.COLON){this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseStatement();}
-this._expectSemicolon();},_parseIfStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.IF);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);var isBlock=this._parseStatementOrBlock();if(this._peek()===FormatterWorker.JavaScriptTokens.ELSE){if(isBlock)
-this._builder.addSpace();else
-this._builder.addNewLine();this._next();if(this._peek()===FormatterWorker.JavaScriptTokens.IF){this._builder.addSpace();this._parseStatement();}else
-this._parseStatementOrBlock();}},_parseContinueStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.CONTINUE);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
-this._expectSemicolon();},_parseBreakStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.BREAK);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
-this._expectSemicolon();},_parseReturnStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.RETURN);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==FormatterWorker.JavaScriptTokens.SEMICOLON&&token!==FormatterWorker.JavaScriptTokens.RBRACE&&token!==FormatterWorker.JavaScriptTokens.EOS){this._builder.addSpace();this._parseExpression();}
-this._expectSemicolon();},_parseWithStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.WITH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseCaseClause:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.CASE){this._expect(FormatterWorker.JavaScriptTokens.CASE);this._builder.addSpace();this._parseExpression();}else
-this._expect(FormatterWorker.JavaScriptTokens.DEFAULT);this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.CASE&&this._peek()!==FormatterWorker.JavaScriptTokens.DEFAULT&&this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._parseStatement();this._builder.addNewLine();}
-this._builder.decreaseNestingLevel();},_parseSwitchStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.SWITCH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE)
-this._parseCaseClause();this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseThrowStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.THROW);this._builder.addSpace();this._parseExpression();this._expectSemicolon();},_parseTryStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.TRY);this._builder.addSpace();this._parseBlock();var token=this._peek();if(token===FormatterWorker.JavaScriptTokens.CATCH){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.CATCH);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._parseBlock();token=this._peek();}
-if(token===FormatterWorker.JavaScriptTokens.FINALLY){this._consume(FormatterWorker.JavaScriptTokens.FINALLY);this._builder.addSpace();this._parseBlock();}},_parseDoWhileStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.DO);var isBlock=this._parseStatementOrBlock();if(isBlock)
-this._builder.addSpace();else
-this._builder.addNewLine();this._expect(FormatterWorker.JavaScriptTokens.WHILE);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._expectSemicolon();},_parseWhileStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.WHILE);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseForStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.FOR);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LPAREN);if(this._peek()!==FormatterWorker.JavaScriptTokens.SEMICOLON){if(this._peek()===FormatterWorker.JavaScriptTokens.VAR||this._peek()===FormatterWorker.JavaScriptTokens.CONST){this._parseVariableDeclarations();if(this._peek()===FormatterWorker.JavaScriptTokens.IN){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.IN);this._builder.addSpace();this._parseExpression();}}else
-this._parseExpression();}
-if(this._peek()!==FormatterWorker.JavaScriptTokens.RPAREN){this._expect(FormatterWorker.JavaScriptTokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==FormatterWorker.JavaScriptTokens.SEMICOLON)
-this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==FormatterWorker.JavaScriptTokens.RPAREN)
-this._parseExpression();}
-this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._parseStatementOrBlock();},_parseExpression:function()
-{this._parseAssignmentExpression();while(this._peek()===FormatterWorker.JavaScriptTokens.COMMA){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();this._parseAssignmentExpression();}},_parseAssignmentExpression:function()
-{this._parseConditionalExpression();var token=this._peek();if(FormatterWorker.JavaScriptTokens.ASSIGN<=token&&token<=FormatterWorker.JavaScriptTokens.ASSIGN_MOD){this._builder.addSpace();this._next();this._builder.addSpace();this._parseAssignmentExpression();}},_parseConditionalExpression:function()
-{this._parseBinaryExpression();if(this._peek()===FormatterWorker.JavaScriptTokens.CONDITIONAL){this._builder.addSpace();this._consume(FormatterWorker.JavaScriptTokens.CONDITIONAL);this._builder.addSpace();this._parseAssignmentExpression();this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();}},_parseBinaryExpression:function()
-{this._parseUnaryExpression();var token=this._peek();while(FormatterWorker.JavaScriptTokens.OR<=token&&token<=FormatterWorker.JavaScriptTokens.IN){this._builder.addSpace();this._next();this._builder.addSpace();this._parseBinaryExpression();token=this._peek();}},_parseUnaryExpression:function()
-{var token=this._peek();if((FormatterWorker.JavaScriptTokens.NOT<=token&&token<=FormatterWorker.JavaScriptTokens.VOID)||token===FormatterWorker.JavaScriptTokens.ADD||token===FormatterWorker.JavaScriptTokens.SUB||token===FormatterWorker.JavaScriptTokens.INC||token===FormatterWorker.JavaScriptTokens.DEC){this._next();if(token===FormatterWorker.JavaScriptTokens.DELETE||token===FormatterWorker.JavaScriptTokens.TYPEOF||token===FormatterWorker.JavaScriptTokens.VOID)
-this._builder.addSpace();this._parseUnaryExpression();}else
-return this._parsePostfixExpression();},_parsePostfixExpression:function()
-{this._parseLeftHandSideExpression();var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&(token===FormatterWorker.JavaScriptTokens.INC||token===FormatterWorker.JavaScriptTokens.DEC))
-this._next();},_parseLeftHandSideExpression:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.NEW)
-this._parseNewExpression();else
-this._parseMemberExpression();while(true){switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACK:this._consume(FormatterWorker.JavaScriptTokens.LBRACK);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);break;case FormatterWorker.JavaScriptTokens.LPAREN:this._parseArguments();break;case FormatterWorker.JavaScriptTokens.PERIOD:this._consume(FormatterWorker.JavaScriptTokens.PERIOD);this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);break;default:return;}}},_parseNewExpression:function()
-{this._expect(FormatterWorker.JavaScriptTokens.NEW);this._builder.addSpace();if(this._peek()===FormatterWorker.JavaScriptTokens.NEW)
-this._parseNewExpression();else
-this._parseMemberExpression();},_parseMemberExpression:function()
-{if(this._peek()===FormatterWorker.JavaScriptTokens.FUNCTION){this._expect(FormatterWorker.JavaScriptTokens.FUNCTION);if(this._peek()===FormatterWorker.JavaScriptTokens.IDENTIFIER){this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);}
-this._parseFunctionLiteral();}else
-this._parsePrimaryExpression();while(true){switch(this._peek()){case FormatterWorker.JavaScriptTokens.LBRACK:this._consume(FormatterWorker.JavaScriptTokens.LBRACK);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);break;case FormatterWorker.JavaScriptTokens.PERIOD:this._consume(FormatterWorker.JavaScriptTokens.PERIOD);this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);break;case FormatterWorker.JavaScriptTokens.LPAREN:this._parseArguments();break;default:return;}}},_parseDebuggerStatement:function()
-{this._expect(FormatterWorker.JavaScriptTokens.DEBUGGER);this._expectSemicolon();},_parsePrimaryExpression:function()
-{switch(this._peek()){case FormatterWorker.JavaScriptTokens.THIS:return this._consume(FormatterWorker.JavaScriptTokens.THIS);case FormatterWorker.JavaScriptTokens.NULL_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.NULL_LITERAL);case FormatterWorker.JavaScriptTokens.TRUE_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.TRUE_LITERAL);case FormatterWorker.JavaScriptTokens.FALSE_LITERAL:return this._consume(FormatterWorker.JavaScriptTokens.FALSE_LITERAL);case FormatterWorker.JavaScriptTokens.IDENTIFIER:return this._consume(FormatterWorker.JavaScriptTokens.IDENTIFIER);case FormatterWorker.JavaScriptTokens.NUMBER:return this._consume(FormatterWorker.JavaScriptTokens.NUMBER);case FormatterWorker.JavaScriptTokens.STRING:return this._consume(FormatterWorker.JavaScriptTokens.STRING);case FormatterWorker.JavaScriptTokens.ASSIGN_DIV:return this._parseRegExpLiteral();case FormatterWorker.JavaScriptTokens.DIV:return this._parseRegExpLiteral();case FormatterWorker.JavaScriptTokens.LBRACK:return this._parseArrayLiteral();case FormatterWorker.JavaScriptTokens.LBRACE:return this._parseObjectLiteral();case FormatterWorker.JavaScriptTokens.LPAREN:this._consume(FormatterWorker.JavaScriptTokens.LPAREN);this._parseExpression();this._expect(FormatterWorker.JavaScriptTokens.RPAREN);return;default:return this._next();}},_parseArrayLiteral:function()
-{this._expect(FormatterWorker.JavaScriptTokens.LBRACK);this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACK){if(this._peek()!==FormatterWorker.JavaScriptTokens.COMMA)
-this._parseAssignmentExpression();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACK){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
-this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACK);},_parseObjectLiteralGetSet:function()
-{var token=this._peek();if(token===FormatterWorker.JavaScriptTokens.IDENTIFIER||token===FormatterWorker.JavaScriptTokens.NUMBER||token===FormatterWorker.JavaScriptTokens.STRING||FormatterWorker.JavaScriptTokens.DELETE<=token&&token<=FormatterWorker.JavaScriptTokens.FALSE_LITERAL||token===FormatterWorker.JavaScriptTokens.INSTANCEOF||token===FormatterWorker.JavaScriptTokens.IN||token===FormatterWorker.JavaScriptTokens.CONST){this._next();this._parseFunctionLiteral();}},_parseObjectLiteral:function()
-{this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.increaseNestingLevel();while(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){var token=this._peek();switch(token){case FormatterWorker.JavaScriptTokens.IDENTIFIER:this._consume(FormatterWorker.JavaScriptTokens.IDENTIFIER);var name=this._token.value;if((name==="get"||name==="set")&&this._peek()!==FormatterWorker.JavaScriptTokens.COLON){this._builder.addSpace();this._parseObjectLiteralGetSet();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._expect(FormatterWorker.JavaScriptTokens.COMMA);}
-continue;}
-break;case FormatterWorker.JavaScriptTokens.STRING:this._consume(FormatterWorker.JavaScriptTokens.STRING);break;case FormatterWorker.JavaScriptTokens.NUMBER:this._consume(FormatterWorker.JavaScriptTokens.NUMBER);break;default:this._next();}
-this._expect(FormatterWorker.JavaScriptTokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();if(this._peek()!==FormatterWorker.JavaScriptTokens.RBRACE){this._expect(FormatterWorker.JavaScriptTokens.COMMA);}}
-this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);},_parseRegExpLiteral:function()
-{if(this._nextToken.type==="regexp")
-this._next();else{this._forceRegexp=true;this._next();}},_parseArguments:function()
-{this._expect(FormatterWorker.JavaScriptTokens.LPAREN);var done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);while(!done){this._parseAssignmentExpression();done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);if(!done){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
-this._expect(FormatterWorker.JavaScriptTokens.RPAREN);},_parseFunctionLiteral:function()
-{this._expect(FormatterWorker.JavaScriptTokens.LPAREN);var done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);while(!done){this._expect(FormatterWorker.JavaScriptTokens.IDENTIFIER);done=(this._peek()===FormatterWorker.JavaScriptTokens.RPAREN);if(!done){this._expect(FormatterWorker.JavaScriptTokens.COMMA);this._builder.addSpace();}}
-this._expect(FormatterWorker.JavaScriptTokens.RPAREN);this._builder.addSpace();this._expect(FormatterWorker.JavaScriptTokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseSourceElements(FormatterWorker.JavaScriptTokens.RBRACE);this._builder.decreaseNestingLevel();this._expect(FormatterWorker.JavaScriptTokens.RBRACE);}}
-FormatterWorker.JavaScriptFormattedContentBuilder=function(content,mapping,originalOffset,formattedOffset,indentString)
-{this._originalContent=content;this._originalOffset=originalOffset;this._lastOriginalPosition=0;this._formattedContent=[];this._formattedContentLength=0;this._formattedOffset=formattedOffset;this._lastFormattedPosition=0;this._mapping=mapping;this._lineNumber=0;this._nestingLevel=0;this._indentString=indentString;this._cachedIndents={};}
-FormatterWorker.JavaScriptFormattedContentBuilder.prototype={addToken:function(token)
-{for(var i=0;i<token.comments_before.length;++i)
-this._addComment(token.comments_before[i]);while(this._lineNumber<token.line){this._addText("\n");this._addIndent();this._needNewLine=false;this._lineNumber+=1;}
-if(this._needNewLine){this._addText("\n");this._addIndent();this._needNewLine=false;}
-this._addMappingIfNeeded(token.pos);this._addText(this._originalContent.substring(token.pos,token.endPos));this._lineNumber=token.endLine;},addSpace:function()
-{this._addText(" ");},addNewLine:function()
-{this._needNewLine=true;},increaseNestingLevel:function()
-{this._nestingLevel+=1;},decreaseNestingLevel:function()
-{this._nestingLevel-=1;},content:function()
-{return this._formattedContent.join("");},_addIndent:function()
-{if(this._cachedIndents[this._nestingLevel]){this._addText(this._cachedIndents[this._nestingLevel]);return;}
-var fullIndent="";for(var i=0;i<this._nestingLevel;++i)
-fullIndent+=this._indentString;this._addText(fullIndent);if(this._nestingLevel<=20)
-this._cachedIndents[this._nestingLevel]=fullIndent;},_addComment:function(comment)
-{if(this._lineNumber<comment.line){for(var j=this._lineNumber;j<comment.line;++j)
-this._addText("\n");this._lineNumber=comment.line;this._needNewLine=false;this._addIndent();}else
-this.addSpace();this._addMappingIfNeeded(comment.pos);if(comment.type==="comment1")
-this._addText("//");else
-this._addText("/*");this._addText(comment.value);if(comment.type!=="comment1"){this._addText("*/");var position;while((position=comment.value.indexOf("\n",position+1))!==-1)
-this._lineNumber+=1;}},_addText:function(text)
-{this._formattedContent.push(text);this._formattedContentLength+=text.length;},_addMappingIfNeeded:function(originalPosition)
-{if(originalPosition-this._lastOriginalPosition===this._formattedContentLength-this._lastFormattedPosition)
-return;this._mapping.original.push(this._originalOffset+originalPosition);this._lastOriginalPosition=originalPosition;this._mapping.formatted.push(this._formattedOffset+this._formattedContentLength);this._lastFormattedPosition=this._formattedContentLength;}}
-FormatterWorker.JavaScriptTokens={};FormatterWorker.JavaScriptTokensByValue={};FormatterWorker.JavaScriptTokens.EOS=0;FormatterWorker.JavaScriptTokens.LPAREN=FormatterWorker.JavaScriptTokensByValue["("]=1;FormatterWorker.JavaScriptTokens.RPAREN=FormatterWorker.JavaScriptTokensByValue[")"]=2;FormatterWorker.JavaScriptTokens.LBRACK=FormatterWorker.JavaScriptTokensByValue["["]=3;FormatterWorker.JavaScriptTokens.RBRACK=FormatterWorker.JavaScriptTokensByValue["]"]=4;FormatterWorker.JavaScriptTokens.LBRACE=FormatterWorker.JavaScriptTokensByValue["{"]=5;FormatterWorker.JavaScriptTokens.RBRACE=FormatterWorker.JavaScriptTokensByValue["}"]=6;FormatterWorker.JavaScriptTokens.COLON=FormatterWorker.JavaScriptTokensByValue[":"]=7;FormatterWorker.JavaScriptTokens.SEMICOLON=FormatterWorker.JavaScriptTokensByValue[";"]=8;FormatterWorker.JavaScriptTokens.PERIOD=FormatterWorker.JavaScriptTokensByValue["."]=9;FormatterWorker.JavaScriptTokens.CONDITIONAL=FormatterWorker.JavaScriptTokensByValue["?"]=10;FormatterWorker.JavaScriptTokens.INC=FormatterWorker.JavaScriptTokensByValue["++"]=11;FormatterWorker.JavaScriptTokens.DEC=FormatterWorker.JavaScriptTokensByValue["--"]=12;FormatterWorker.JavaScriptTokens.ASSIGN=FormatterWorker.JavaScriptTokensByValue["="]=13;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_OR=FormatterWorker.JavaScriptTokensByValue["|="]=14;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_XOR=FormatterWorker.JavaScriptTokensByValue["^="]=15;FormatterWorker.JavaScriptTokens.ASSIGN_BIT_AND=FormatterWorker.JavaScriptTokensByValue["&="]=16;FormatterWorker.JavaScriptTokens.ASSIGN_SHL=FormatterWorker.JavaScriptTokensByValue["<<="]=17;FormatterWorker.JavaScriptTokens.ASSIGN_SAR=FormatterWorker.JavaScriptTokensByValue[">>="]=18;FormatterWorker.JavaScriptTokens.ASSIGN_SHR=FormatterWorker.JavaScriptTokensByValue[">>>="]=19;FormatterWorker.JavaScriptTokens.ASSIGN_ADD=FormatterWorker.JavaScriptTokensByValue["+="]=20;FormatterWorker.JavaScriptTokens.ASSIGN_SUB=FormatterWorker.JavaScriptTokensByValue["-="]=21;FormatterWorker.JavaScriptTokens.ASSIGN_MUL=FormatterWorker.JavaScriptTokensByValue["*="]=22;FormatterWorker.JavaScriptTokens.ASSIGN_DIV=FormatterWorker.JavaScriptTokensByValue["/="]=23;FormatterWorker.JavaScriptTokens.ASSIGN_MOD=FormatterWorker.JavaScriptTokensByValue["%="]=24;FormatterWorker.JavaScriptTokens.COMMA=FormatterWorker.JavaScriptTokensByValue[","]=25;FormatterWorker.JavaScriptTokens.OR=FormatterWorker.JavaScriptTokensByValue["||"]=26;FormatterWorker.JavaScriptTokens.AND=FormatterWorker.JavaScriptTokensByValue["&&"]=27;FormatterWorker.JavaScriptTokens.BIT_OR=FormatterWorker.JavaScriptTokensByValue["|"]=28;FormatterWorker.JavaScriptTokens.BIT_XOR=FormatterWorker.JavaScriptTokensByValue["^"]=29;FormatterWorker.JavaScriptTokens.BIT_AND=FormatterWorker.JavaScriptTokensByValue["&"]=30;FormatterWorker.JavaScriptTokens.SHL=FormatterWorker.JavaScriptTokensByValue["<<"]=31;FormatterWorker.JavaScriptTokens.SAR=FormatterWorker.JavaScriptTokensByValue[">>"]=32;FormatterWorker.JavaScriptTokens.SHR=FormatterWorker.JavaScriptTokensByValue[">>>"]=33;FormatterWorker.JavaScriptTokens.ADD=FormatterWorker.JavaScriptTokensByValue["+"]=34;FormatterWorker.JavaScriptTokens.SUB=FormatterWorker.JavaScriptTokensByValue["-"]=35;FormatterWorker.JavaScriptTokens.MUL=FormatterWorker.JavaScriptTokensByValue["*"]=36;FormatterWorker.JavaScriptTokens.DIV=FormatterWorker.JavaScriptTokensByValue["/"]=37;FormatterWorker.JavaScriptTokens.MOD=FormatterWorker.JavaScriptTokensByValue["%"]=38;FormatterWorker.JavaScriptTokens.EQ=FormatterWorker.JavaScriptTokensByValue["=="]=39;FormatterWorker.JavaScriptTokens.NE=FormatterWorker.JavaScriptTokensByValue["!="]=40;FormatterWorker.JavaScriptTokens.EQ_STRICT=FormatterWorker.JavaScriptTokensByValue["==="]=41;FormatterWorker.JavaScriptTokens.NE_STRICT=FormatterWorker.JavaScriptTokensByValue["!=="]=42;FormatterWorker.JavaScriptTokens.LT=FormatterWorker.JavaScriptTokensByValue["<"]=43;FormatterWorker.JavaScriptTokens.GT=FormatterWorker.JavaScriptTokensByValue[">"]=44;FormatterWorker.JavaScriptTokens.LTE=FormatterWorker.JavaScriptTokensByValue["<="]=45;FormatterWorker.JavaScriptTokens.GTE=FormatterWorker.JavaScriptTokensByValue[">="]=46;FormatterWorker.JavaScriptTokens.INSTANCEOF=FormatterWorker.JavaScriptTokensByValue["instanceof"]=47;FormatterWorker.JavaScriptTokens.IN=FormatterWorker.JavaScriptTokensByValue["in"]=48;FormatterWorker.JavaScriptTokens.NOT=FormatterWorker.JavaScriptTokensByValue["!"]=49;FormatterWorker.JavaScriptTokens.BIT_NOT=FormatterWorker.JavaScriptTokensByValue["~"]=50;FormatterWorker.JavaScriptTokens.DELETE=FormatterWorker.JavaScriptTokensByValue["delete"]=51;FormatterWorker.JavaScriptTokens.TYPEOF=FormatterWorker.JavaScriptTokensByValue["typeof"]=52;FormatterWorker.JavaScriptTokens.VOID=FormatterWorker.JavaScriptTokensByValue["void"]=53;FormatterWorker.JavaScriptTokens.BREAK=FormatterWorker.JavaScriptTokensByValue["break"]=54;FormatterWorker.JavaScriptTokens.CASE=FormatterWorker.JavaScriptTokensByValue["case"]=55;FormatterWorker.JavaScriptTokens.CATCH=FormatterWorker.JavaScriptTokensByValue["catch"]=56;FormatterWorker.JavaScriptTokens.CONTINUE=FormatterWorker.JavaScriptTokensByValue["continue"]=57;FormatterWorker.JavaScriptTokens.DEBUGGER=FormatterWorker.JavaScriptTokensByValue["debugger"]=58;FormatterWorker.JavaScriptTokens.DEFAULT=FormatterWorker.JavaScriptTokensByValue["default"]=59;FormatterWorker.JavaScriptTokens.DO=FormatterWorker.JavaScriptTokensByValue["do"]=60;FormatterWorker.JavaScriptTokens.ELSE=FormatterWorker.JavaScriptTokensByValue["else"]=61;FormatterWorker.JavaScriptTokens.FINALLY=FormatterWorker.JavaScriptTokensByValue["finally"]=62;FormatterWorker.JavaScriptTokens.FOR=FormatterWorker.JavaScriptTokensByValue["for"]=63;FormatterWorker.JavaScriptTokens.FUNCTION=FormatterWorker.JavaScriptTokensByValue["function"]=64;FormatterWorker.JavaScriptTokens.IF=FormatterWorker.JavaScriptTokensByValue["if"]=65;FormatterWorker.JavaScriptTokens.NEW=FormatterWorker.JavaScriptTokensByValue["new"]=66;FormatterWorker.JavaScriptTokens.RETURN=FormatterWorker.JavaScriptTokensByValue["return"]=67;FormatterWorker.JavaScriptTokens.SWITCH=FormatterWorker.JavaScriptTokensByValue["switch"]=68;FormatterWorker.JavaScriptTokens.THIS=FormatterWorker.JavaScriptTokensByValue["this"]=69;FormatterWorker.JavaScriptTokens.THROW=FormatterWorker.JavaScriptTokensByValue["throw"]=70;FormatterWorker.JavaScriptTokens.TRY=FormatterWorker.JavaScriptTokensByValue["try"]=71;FormatterWorker.JavaScriptTokens.VAR=FormatterWorker.JavaScriptTokensByValue["var"]=72;FormatterWorker.JavaScriptTokens.WHILE=FormatterWorker.JavaScriptTokensByValue["while"]=73;FormatterWorker.JavaScriptTokens.WITH=FormatterWorker.JavaScriptTokensByValue["with"]=74;FormatterWorker.JavaScriptTokens.NULL_LITERAL=FormatterWorker.JavaScriptTokensByValue["null"]=75;FormatterWorker.JavaScriptTokens.TRUE_LITERAL=FormatterWorker.JavaScriptTokensByValue["true"]=76;FormatterWorker.JavaScriptTokens.FALSE_LITERAL=FormatterWorker.JavaScriptTokensByValue["false"]=77;FormatterWorker.JavaScriptTokens.NUMBER=78;FormatterWorker.JavaScriptTokens.STRING=79;FormatterWorker.JavaScriptTokens.IDENTIFIER=80;FormatterWorker.JavaScriptTokens.CONST=FormatterWorker.JavaScriptTokensByValue["const"]=81;FormatterWorker.JavaScriptTokensByType={"eof":FormatterWorker.JavaScriptTokens.EOS,"name":FormatterWorker.JavaScriptTokens.IDENTIFIER,"num":FormatterWorker.JavaScriptTokens.NUMBER,"regexp":FormatterWorker.JavaScriptTokens.DIV,"string":FormatterWorker.JavaScriptTokens.STRING};FormatterWorker.JavaScriptTokenizer=function(content)
-{this._readNextToken=parse.tokenizer(content);this._state=this._readNextToken.context();}
-FormatterWorker.JavaScriptTokenizer.prototype={content:function()
-{return this._state.text;},next:function(forceRegexp)
-{var uglifyToken=this._readNextToken(forceRegexp);uglifyToken.endPos=this._state.pos;uglifyToken.endLine=this._state.line;uglifyToken.token=this._convertUglifyToken(uglifyToken);return uglifyToken;},_convertUglifyToken:function(uglifyToken)
-{var token=FormatterWorker.JavaScriptTokensByType[uglifyToken.type];if(typeof token==="number")
-return token;token=FormatterWorker.JavaScriptTokensByValue[uglifyToken.value];if(typeof token==="number")
-return token;throw"Unknown token type "+uglifyToken.type;}};FormatterWorker.CSSFormatter=function(content,builder)
-{this._content=content;this._builder=builder;this._lastLine=-1;this._state={};}
-FormatterWorker.CSSFormatter.prototype={format:function()
-{this._lineEndings=this._lineEndings(this._content);var tokenize=WebInspector.CodeMirrorUtils.createTokenizer("text/css");var lines=this._content.split("\n");for(var i=0;i<lines.length;++i){var line=lines[i];tokenize(line,this._tokenCallback.bind(this,i));}
-this._builder.flushNewLines(true);},_lineEndings:function(text)
-{var lineEndings=[];var i=text.indexOf("\n");while(i!==-1){lineEndings.push(i);i=text.indexOf("\n",i+1);}
-lineEndings.push(text.length);return lineEndings;},_tokenCallback:function(startLine,token,type,startColumn)
-{if(startLine!==this._lastLine)
-this._state.eatWhitespace=true;if(/^css-property/.test(type)&&!this._state.inPropertyValue)
-this._state.seenProperty=true;this._lastLine=startLine;var isWhitespace=/^\s+$/.test(token);if(isWhitespace){if(!this._state.eatWhitespace)
-this._builder.addSpace();return;}
-this._state.eatWhitespace=false;if(token==="\n")
-return;if(token!=="}"){if(this._state.afterClosingBrace)
-this._builder.addNewLine();this._state.afterClosingBrace=false;}
-var startPosition=(startLine?this._lineEndings[startLine-1]:0)+startColumn;if(token==="}"){if(this._state.inPropertyValue)
-this._builder.addNewLine();this._builder.decreaseNestingLevel();this._state.afterClosingBrace=true;this._state.inPropertyValue=false;}else if(token===":"&&!this._state.inPropertyValue&&this._state.seenProperty){this._builder.addToken(token,startPosition,startLine,startColumn);this._builder.addSpace();this._state.eatWhitespace=true;this._state.inPropertyValue=true;this._state.seenProperty=false;return;}else if(token==="{"){this._builder.addSpace();this._builder.addToken(token,startPosition,startLine,startColumn);this._builder.addNewLine();this._builder.increaseNestingLevel();return;}
-this._builder.addToken(token,startPosition,startLine,startColumn);if(type==="css-comment"&&!this._state.inPropertyValue&&!this._state.seenProperty)
-this._builder.addNewLine();if(token===";"&&this._state.inPropertyValue){this._state.inPropertyValue=false;this._builder.addNewLine();}else if(token==="}"){this._builder.addNewLine();}}}
-FormatterWorker.CSSFormattedContentBuilder=function(content,mapping,originalOffset,formattedOffset,indentString)
-{this._originalContent=content;this._originalOffset=originalOffset;this._lastOriginalPosition=0;this._formattedContent=[];this._formattedContentLength=0;this._formattedOffset=formattedOffset;this._lastFormattedPosition=0;this._mapping=mapping;this._lineNumber=0;this._nestingLevel=0;this._needNewLines=0;this._atLineStart=true;this._indentString=indentString;this._cachedIndents={};}
-FormatterWorker.CSSFormattedContentBuilder.prototype={addToken:function(token,startPosition,startLine,startColumn)
-{if((this._isWhitespaceRun||this._atLineStart)&&/^\s+$/.test(token))
-return;if(this._isWhitespaceRun&&this._lineNumber===startLine&&!this._needNewLines)
-this._addText(" ");this._isWhitespaceRun=false;this._atLineStart=false;while(this._lineNumber<startLine){this._addText("\n");this._addIndent();this._needNewLines=0;this._lineNumber+=1;this._atLineStart=true;}
-if(this._needNewLines){this.flushNewLines();this._addIndent();this._atLineStart=true;}
-this._addMappingIfNeeded(startPosition);this._addText(token);this._lineNumber=startLine;},addSpace:function()
-{if(this._isWhitespaceRun)
-return;this._isWhitespaceRun=true;},addNewLine:function()
-{++this._needNewLines;},flushNewLines:function(atLeastOne)
-{var newLineCount=atLeastOne&&!this._needNewLines?1:this._needNewLines;if(newLineCount)
-this._isWhitespaceRun=false;for(var i=0;i<newLineCount;++i)
-this._addText("\n");this._needNewLines=0;},increaseNestingLevel:function()
-{this._nestingLevel+=1;},decreaseNestingLevel:function(addNewline)
-{if(this._nestingLevel)
-this._nestingLevel-=1;if(addNewline)
-this.addNewLine();},content:function()
-{return this._formattedContent.join("");},_addIndent:function()
-{if(this._cachedIndents[this._nestingLevel]){this._addText(this._cachedIndents[this._nestingLevel]);return;}
-var fullIndent="";for(var i=0;i<this._nestingLevel;++i)
-fullIndent+=this._indentString;this._addText(fullIndent);if(this._nestingLevel<=20)
-this._cachedIndents[this._nestingLevel]=fullIndent;},_addText:function(text)
-{if(!text)
-return;this._formattedContent.push(text);this._formattedContentLength+=text.length;},_addMappingIfNeeded:function(originalPosition)
-{if(originalPosition-this._lastOriginalPosition===this._formattedContentLength-this._lastFormattedPosition)
-return;this._mapping.original.push(this._originalOffset+originalPosition);this._lastOriginalPosition=originalPosition;this._mapping.formatted.push(this._formattedOffset+this._formattedContentLength);this._lastFormattedPosition=this._formattedContentLength;}};
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/SourcesPanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/SourcesPanel.js
deleted file mode 100644 (file)
index 82ad758..0000000
+++ /dev/null
@@ -1,1410 +0,0 @@
-WebInspector.JavaScriptBreakpointsSidebarPane=function(breakpointManager,showSourceLineDelegate)
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Breakpoints"));this.registerRequiredCSS("breakpointsList.css");this._breakpointManager=breakpointManager;this._showSourceLineDelegate=showSourceLineDelegate;this.listElement=document.createElement("ol");this.listElement.className="breakpoint-list";this.emptyElement=document.createElement("div");this.emptyElement.className="info";this.emptyElement.textContent=WebInspector.UIString("No Breakpoints");this.bodyElement.appendChild(this.emptyElement);this._items=new Map();var breakpointLocations=this._breakpointManager.allBreakpointLocations();for(var i=0;i<breakpointLocations.length;++i)
-this._addBreakpoint(breakpointLocations[i].breakpoint,breakpointLocations[i].uiLocation);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointAdded,this._breakpointAdded,this);this._breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.BreakpointRemoved,this._breakpointRemoved,this);this.emptyElement.addEventListener("contextmenu",this._emptyElementContextMenu.bind(this),true);}
-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.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)
-break;currentElement=currentElement.nextSibling;}
-this._addListElement(element,currentElement);var breakpointItem={};breakpointItem.element=element;breakpointItem.checkbox=checkbox;this._items.put(breakpoint,breakpointItem);this.expand();},_breakpointRemoved:function(event)
-{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.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));}
-contextMenu.appendSeparator();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));function enabledBreakpointCount(breakpoints)
-{var count=0;for(var i=0;i<breakpoints.length;++i){if(breakpoints[i].checkbox.checked)
-count++;}
-return count;}
-if(breakpoints.length>1){var enableBreakpointCount=enabledBreakpointCount(breakpoints);var enableTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Enable all breakpoints":"Enable All Breakpoints");var disableTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Disable all breakpoints":"Disable All Breakpoints");contextMenu.appendSeparator();contextMenu.appendItem(enableTitle,this._breakpointManager.toggleAllBreakpoints.bind(this._breakpointManager,true),!(enableBreakpointCount!=breakpoints.length));contextMenu.appendItem(disableTitle,this._breakpointManager.toggleAllBreakpoints.bind(this._breakpointManager,false),!(enableBreakpointCount>1));}
-contextMenu.show();},_addListElement:function(element,beforeElement)
-{if(beforeElement)
-this.listElement.insertBefore(element,beforeElement);else{if(!this.listElement.firstChild){this.bodyElement.removeChild(this.emptyElement);this.bodyElement.appendChild(this.listElement);}
-this.listElement.appendChild(element);}},_removeListElement:function(element)
-{this.listElement.removeChild(element);if(!this.listElement.firstChild){this.bodyElement.removeChild(this.listElement);this.bodyElement.appendChild(this.emptyElement);}},_compare:function(x,y)
-{if(x!==y)
-return x<y?-1:1;return 0;},_compareBreakpoints:function(b1,b2)
-{return this._compare(b1.uiSourceCode.originURL(),b2.uiSourceCode.originURL())||this._compare(b1.lineNumber,b2.lineNumber);},reset:function()
-{this.listElement.removeChildren();if(this.listElement.parentElement){this.bodyElement.removeChild(this.listElement);this.bodyElement.appendChild(this.emptyElement);}
-this._items.clear();},__proto__:WebInspector.SidebarPane.prototype}
-WebInspector.XHRBreakpointsSidebarPane=function()
-{WebInspector.NativeBreakpointsSidebarPane.call(this,WebInspector.UIString("XHR Breakpoints"));this._breakpointElements={};var addButton=document.createElement("button");addButton.className="pane-title-button add";addButton.addEventListener("click",this._addButtonClicked.bind(this),false);addButton.title=WebInspector.UIString("Add XHR breakpoint");this.titleElement.appendChild(addButton);this.emptyElement.addEventListener("contextmenu",this._emptyElementContextMenu.bind(this),true);this._restoreBreakpoints();}
-WebInspector.XHRBreakpointsSidebarPane.prototype={_emptyElementContextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add breakpoint":"Add Breakpoint"),this._addButtonClicked.bind(this));contextMenu.show();},_addButtonClicked:function(event)
-{if(event)
-event.consume();this.expand();var inputElementContainer=document.createElement("p");inputElementContainer.className="breakpoint-condition";var inputElement=document.createElement("span");inputElementContainer.textContent=WebInspector.UIString("Break when URL contains:");inputElement.className="editing";inputElement.id="breakpoint-condition-input";inputElementContainer.appendChild(inputElement);this._addListElement(inputElementContainer,this.listElement.firstChild);function finishEditing(accept,e,text)
-{this._removeListElement(inputElementContainer);if(accept){this._setBreakpoint(text,true);this._saveBreakpoints();}}
-var config=new WebInspector.EditingConfig(finishEditing.bind(this,true),finishEditing.bind(this,false));WebInspector.startEditing(inputElement,config);},_setBreakpoint:function(url,enabled)
-{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.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)
-{var element=this._breakpointElements[url];if(!element)
-return;this._removeListElement(element);delete this._breakpointElements[url];if(element._checkboxElement.checked)
-DOMDebuggerAgent.removeXHRBreakpoint(url);},_contextMenu:function(url,event)
-{var contextMenu=new WebInspector.ContextMenu(event);function removeBreakpoint()
-{this._removeBreakpoint(url);this._saveBreakpoints();}
-function removeAllBreakpoints()
-{for(var url in this._breakpointElements)
-this._removeBreakpoint(url);this._saveBreakpoints();}
-var removeAllTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove all breakpoints":"Remove All Breakpoints");contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add breakpoint":"Add Breakpoint"),this._addButtonClicked.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove breakpoint":"Remove Breakpoint"),removeBreakpoint.bind(this));contextMenu.appendItem(removeAllTitle,removeAllBreakpoints.bind(this));contextMenu.show();},_checkboxClicked:function(url,event)
-{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.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.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.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.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.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)
-this._setBreakpoint(eventName);else
-this._removeBreakpoint(eventName);}
-this._saveBreakpoints();},_breakpointCheckboxClicked:function(eventName,event)
-{if(event.target.checked)
-this._setBreakpoint(eventName);else
-this._removeBreakpoint(eventName);this._saveBreakpoints();},_setBreakpoint:function(eventName)
-{var breakpointItem=this._breakpointItems[eventName];if(!breakpointItem)
-return;breakpointItem.checkbox.checked=true;if(eventName.startsWith(WebInspector.EventListenerBreakpointsSidebarPane.categotyListener))
-DOMDebuggerAgent.setEventListenerBreakpoint(eventName.substring(WebInspector.EventListenerBreakpointsSidebarPane.categotyListener.length));else if(eventName.startsWith(WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation))
-DOMDebuggerAgent.setInstrumentationBreakpoint(eventName.substring(WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation.length));this._updateCategoryCheckbox(breakpointItem.parent);},_removeBreakpoint:function(eventName)
-{var breakpointItem=this._breakpointItems[eventName];if(!breakpointItem)
-return;breakpointItem.checkbox.checked=false;if(eventName.startsWith(WebInspector.EventListenerBreakpointsSidebarPane.categotyListener))
-DOMDebuggerAgent.removeEventListenerBreakpoint(eventName.substring(WebInspector.EventListenerBreakpointsSidebarPane.categotyListener.length));else if(eventName.startsWith(WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation))
-DOMDebuggerAgent.removeInstrumentationBreakpoint(eventName.substring(WebInspector.EventListenerBreakpointsSidebarPane.categotyInstrumentation.length));this._updateCategoryCheckbox(breakpointItem.parent);},_updateCategoryCheckbox:function(categoryItem)
-{var hasEnabled=false,hasDisabled=false;for(var eventName in categoryItem.children){var breakpointItem=categoryItem.children[eventName];if(breakpointItem.checkbox.checked)
-hasEnabled=true;else
-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.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.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 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)
-{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.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);},__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)
-c="\\"+c;if(i)
-regexString+="[^"+c+"]*";regexString+=c;}
-return new RegExp(regexString,"i");}
-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;}}}
-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)
-{var i=n-1,j=m-1;while(i>=0&&j>=0){switch(sequence[i*m+j]){case 0:--j;break;default:out.push(j);--i;--j;break;}}
-out.reverse();},_singleCharScore:function(query,data,i,j)
-{var isWordStart=this._testWordStart(data,j);var isFileName=j>this._fileNameIndex;var isPathTokenStart=j===0||data[j-1]==="/";var isCapsMatch=query[i]===data[j]&&query[i]==this._queryUpperCase[i];var score=10;if(isPathTokenStart)
-score+=4;if(isWordStart)
-score+=2;if(isCapsMatch)
-score+=6;if(isFileName)
-score+=4;if(j===this._fileNameIndex+1&&i===0)
-score+=5;if(isFileName&&isWordStart)
-score+=3;return score;},_sequenceCharScore:function(query,data,i,j,sequenceLength)
-{var isFileName=j>this._fileNameIndex;var isPathTokenStart=j===0||data[j-1]==="/";var score=10;if(isFileName)
-score+=4;if(isPathTokenStart)
-score+=5;score+=sequenceLength*4;return score;},_match:function(query,data,i,j,consecutiveMatch)
-{if(this._queryUpperCase[i]!==this._dataUpperCase[j])
-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.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)
-this._viewportControl.refresh();},willHide:function()
-{if(this._isHiding)
-return;this._isHiding=true;this._delegate.dispose();if(this._filterTimer)
-clearTimeout(this._filterTimer);},renderAsTwoRows:function()
-{this._renderAsTwoRows=true;},onEnter:function()
-{if(!this._delegate.itemCount())
-return;this._delegate.selectItem(this._filteredItems[this._selectedIndexInFiltered],this._promptElement.value.trim());},_itemsLoaded:function()
-{if(this._loadTimeout)
-return;this._loadTimeout=setTimeout(this._updateAfterItemsLoaded.bind(this),0);},_updateAfterItemsLoaded:function()
-{delete this._loadTimeout;this._filterItems();},_createItemElement:function(index)
-{var itemElement=document.createElement("div");itemElement.className="filtered-item-list-dialog-item "+(this._renderAsTwoRows?"two-rows":"one-row");itemElement._titleElement=itemElement.createChild("span");itemElement._titleSuffixElement=itemElement.createChild("span");itemElement._subtitleElement=itemElement.createChild("div","filtered-item-list-dialog-subtitle");itemElement._subtitleElement.textContent="\u200B";itemElement._index=index;this._delegate.renderItem(index,this._promptElement.value.trim(),itemElement._titleElement,itemElement._subtitleElement);return itemElement;},setQuery:function(query)
-{this._promptElement.value=query;this._scheduleFilter();},_filterItems:function()
-{delete this._filterTimer;if(this._scoringTimer){clearTimeout(this._scoringTimer);delete this._scoringTimer;}
-var query=this._delegate.rewriteQuery(this._promptElement.value.trim());this._query=query;var queryLength=query.length;var filterRegex=query?WebInspector.FilePathScoreFunction.filterRegex(query):null;var oldSelectedAbsoluteIndex=this._selectedIndexInFiltered?this._filteredItems[this._selectedIndexInFiltered]:null;var filteredItems=[];this._selectedIndexInFiltered=0;var bestScores=[];var bestItems=[];var bestItemsToCollect=100;var minBestScore=0;var overflowItems=[];scoreItems.call(this,0);function compareIntegers(a,b)
-{return b-a;}
-function scoreItems(fromIndex)
-{var maxWorkItems=1000;var workDone=0;for(var i=fromIndex;i<this._delegate.itemCount()&&workDone<maxWorkItems;++i){if(filterRegex&&!filterRegex.test(this._delegate.itemKeyAt(i)))
-continue;var score=this._delegate.itemScoreAt(i,query);if(query)
-workDone++;if(score>minBestScore||bestScores.length<bestItemsToCollect){var index=insertionIndexForObjectInListSortedByFunction(score,bestScores,compareIntegers,true);bestScores.splice(index,0,score);bestItems.splice(index,0,i);if(bestScores.length>bestItemsToCollect){overflowItems.push(bestItems.peekLast());bestScores.length=bestItemsToCollect;bestItems.length=bestItemsToCollect;}
-minBestScore=bestScores.peekLast();}else
-filteredItems.push(i);}
-if(i<this._delegate.itemCount()){this._scoringTimer=setTimeout(scoreItems.bind(this,i),0);return;}
-delete this._scoringTimer;this._filteredItems=bestItems.concat(overflowItems).concat(filteredItems);for(var i=0;i<this._filteredItems.length;++i){if(this._filteredItems[i]===oldSelectedAbsoluteIndex){this._selectedIndexInFiltered=i;break;}}
-this._viewportControl.refresh();if(!query)
-this._selectedIndexInFiltered=0;this._updateSelection(this._selectedIndexInFiltered,false);}},_onInput:function(event)
-{this._shouldShowMatchingItems=this._delegate.shouldShowMatchingItems(this._promptElement.value);this._updateShowMatchingItems();this._scheduleFilter();},_updateShowMatchingItems:function()
-{this._itemElementsContainer.enableStyleClass("hidden",!this._shouldShowMatchingItems);this.element.style.height=this._shouldShowMatchingItems?this._dialogHeight+"px":"auto";},_onKeyDown:function(event)
-{var newSelectedIndex=this._selectedIndexInFiltered;switch(event.keyCode){case WebInspector.KeyboardShortcut.Keys.Down.code:if(++newSelectedIndex>=this._filteredItems.length)
-newSelectedIndex=this._filteredItems.length-1;this._updateSelection(newSelectedIndex,true);event.consume(true);break;case WebInspector.KeyboardShortcut.Keys.Up.code:if(--newSelectedIndex<0)
-newSelectedIndex=0;this._updateSelection(newSelectedIndex,false);event.consume(true);break;case WebInspector.KeyboardShortcut.Keys.PageDown.code:newSelectedIndex=Math.min(newSelectedIndex+this._viewportControl.rowsPerViewport(),this._filteredItems.length-1);this._updateSelection(newSelectedIndex,true);event.consume(true);break;case WebInspector.KeyboardShortcut.Keys.PageUp.code:newSelectedIndex=Math.max(newSelectedIndex-this._viewportControl.rowsPerViewport(),0);this._updateSelection(newSelectedIndex,false);event.consume(true);break;default:}},_scheduleFilter:function()
-{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.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.classList.add("selected");return element;},__proto__:WebInspector.DialogDelegate.prototype}
-WebInspector.SelectionDialogContentProvider=function()
-{}
-WebInspector.SelectionDialogContentProvider.prototype={setRefreshCallback:function(refreshCallback)
-{this._refreshCallback=refreshCallback;},shouldShowMatchingItems:function(query)
-{return true;},itemCount:function()
-{return 0;},itemKeyAt:function(itemIndex)
-{return"";},itemScoreAt:function(itemIndex,query)
-{return 1;},renderItem:function(itemIndex,query,titleElement,subtitleElement)
-{},highlightRanges:function(element,query)
-{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(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)
-ranges=rangesForMatch(text.toUpperCase(),query.toUpperCase());if(ranges){WebInspector.highlightRangesWithStyleClass(element,ranges,"highlight");return true;}
-return false;},selectItem:function(itemIndex,promptValue)
-{},refresh:function()
-{this._refreshCallback();},rewriteQuery:function(query)
-{return query;},dispose:function()
-{}}
-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,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)
-this._functionItems.push(chunk[i]);if(data.total===data.index)
-this.dispose();this.refresh();},itemCount:function()
-{return this._functionItems.length;},itemKeyAt:function(itemIndex)
-{return this._functionItems[itemIndex].name;},itemScoreAt:function(itemIndex,query)
-{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._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)
-this._uiSourceCodes=this._uiSourceCodes.concat(projects[i].uiSourceCodes());this._defaultScores=defaultScores;this._scorer=new WebInspector.FilePathScoreFunction("");WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);}
-WebInspector.SelectUISourceCodeDialog.prototype={uiSourceCodeSelected:function(uiSourceCode,lineNumber)
-{},filterProject:function(project)
-{return true;},itemCount:function()
-{return this._uiSourceCodes.length;},itemKeyAt:function(itemIndex)
-{return this._uiSourceCodes[itemIndex].fullDisplayName();},itemScoreAt:function(itemIndex,query)
-{var uiSourceCode=this._uiSourceCodes[itemIndex];var score=this._defaultScores?(this._defaultScores.get(uiSourceCode)||0):0;if(!query||query.length<2)
-return score;if(this._query!==query){this._query=query;this._scorer=new WebInspector.FilePathScoreFunction(query);}
-var path=uiSourceCode.fullDisplayName();return score+10*this._scorer.score(path,null);},renderItem:function(itemIndex,query,titleElement,subtitleElement)
-{query=this.rewriteQuery(query);var uiSourceCode=this._uiSourceCodes[itemIndex];titleElement.textContent=uiSourceCode.displayName()+(this._queryLineNumber?this._queryLineNumber:"");subtitleElement.textContent=uiSourceCode.fullDisplayName().trimEnd(100);var indexes=[];var score=new WebInspector.FilePathScoreFunction(query).score(subtitleElement.textContent,indexes);var fileNameIndex=subtitleElement.textContent.lastIndexOf("/");var ranges=[];for(var i=0;i<indexes.length;++i)
-ranges.push({offset:indexes[i],length:1});if(indexes[0]>fileNameIndex){for(var i=0;i<ranges.length;++i)
-ranges[i].offset-=fileNameIndex+1;return WebInspector.highlightRangesWithStyleClass(titleElement,ranges,"highlight");}else{return WebInspector.highlightRangesWithStyleClass(subtitleElement,ranges,"highlight");}},selectItem:function(itemIndex,promptValue)
-{if(/^:\d+$/.test(promptValue.trimRight())){var lineNumber=parseInt(promptValue.trimRight().substring(1),10)-1;if(!isNaN(lineNumber)&&lineNumber>=0)
-this.uiSourceCodeSelected(null,lineNumber);return;}
-var lineNumberMatch=promptValue.match(/[^:]+\:([\d]*)$/);var lineNumber=lineNumberMatch?Math.max(parseInt(lineNumberMatch[1],10)-1,0):undefined;this.uiSourceCodeSelected(this._uiSourceCodes[itemIndex],lineNumber);},rewriteQuery:function(query)
-{if(!query)
-return query;query=query.trim();var lineNumberMatch=query.match(/([^:]+)(\:[\d]*)$/);this._queryLineNumber=lineNumberMatch?lineNumberMatch[2]:"";return lineNumberMatch?lineNumberMatch[1]:query;},_uiSourceCodeAdded:function(event)
-{var uiSourceCode=(event.data);if(!this.filterProject(uiSourceCode.project()))
-return;this._uiSourceCodes.push(uiSourceCode)
-this.refresh();},dispose:function()
-{WebInspector.workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);},__proto__:WebInspector.SelectionDialogContentProvider.prototype}
-WebInspector.OpenResourceDialog=function(panel,defaultScores)
-{WebInspector.SelectUISourceCodeDialog.call(this,defaultScores);this._panel=panel;}
-WebInspector.OpenResourceDialog.prototype={uiSourceCodeSelected:function(uiSourceCode,lineNumber)
-{if(!uiSourceCode)
-uiSourceCode=this._panel.currentUISourceCode();if(!uiSourceCode)
-return;this._panel.showUISourceCode(uiSourceCode,lineNumber);},shouldShowMatchingItems:function(query)
-{return!query.startsWith(":");},filterProject:function(project)
-{return!project.isServiceProject();},__proto__:WebInspector.SelectUISourceCodeDialog.prototype}
-WebInspector.OpenResourceDialog.show=function(panel,relativeToElement,name,defaultScores)
-{if(WebInspector.Dialog.currentInstance())
-return;var filteredItemSelectionDialog=new WebInspector.FilteredItemSelectionDialog(new WebInspector.OpenResourceDialog(panel,defaultScores));filteredItemSelectionDialog.renderAsTwoRows();if(name)
-filteredItemSelectionDialog.setQuery(name);WebInspector.Dialog.show(relativeToElement,filteredItemSelectionDialog);}
-WebInspector.SelectUISourceCodeForProjectTypeDialog=function(type,callback)
-{this._type=type;WebInspector.SelectUISourceCodeDialog.call(this);this._callback=callback;}
-WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype={uiSourceCodeSelected:function(uiSourceCode,lineNumber)
-{this._callback(uiSourceCode);},filterProject:function(project)
-{return project.type()===this._type;},__proto__:WebInspector.SelectUISourceCodeDialog.prototype}
-WebInspector.SelectUISourceCodeForProjectTypeDialog.show=function(name,type,callback,relativeToElement)
-{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={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()
-{return this._uiSourceCode.isEditable();},_windowFocused:function(event)
-{this._checkContentUpdated();},_checkContentUpdated:function()
-{if(!this.loaded||!this.isShowing())
-return;this._uiSourceCode.checkContentUpdated();},commitEditing:function(text)
-{if(!this._uiSourceCode.isDirty())
-return;this._muteSourceCodeEvents=true;this._uiSourceCode.commitWorkingCopy(this._didEditContent.bind(this));delete this._muteSourceCodeEvents;},onTextChanged:function(oldRange,newRange)
-{WebInspector.SourceFrame.prototype.onTextChanged.call(this,oldRange,newRange);if(this._isSettingContent)
-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;}},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)
-{if(!this._muteSourceCodeEvents){this._innerSetContent(this._uiSourceCode.workingCopy());this.onUISourceCodeContentChanged();}
-this._textEditor.markClean();this._updateStyle();},_updateStyle:function()
-{this.element.enableStyleClass("source-frame-unsaved-committed-changes",this._uiSourceCode.hasUnsavedCommittedChanges());},onUISourceCodeContentChanged:function()
-{},_innerSetContent:function(content)
-{this._isSettingContent=true;this.setContent(content);delete this._isSettingContent;},populateTextAreaContextMenu:function(contextMenu,lineNumber)
-{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.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.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()
-{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()
-{WebInspector.UISourceCodeFrame.prototype.willHide.call(this);this._popoverHelper.hidePopover();},onUISourceCodeContentChanged:function()
-{this._removeAllBreakpoints();WebInspector.UISourceCodeFrame.prototype.onUISourceCodeContentChanged.call(this);},populateLineGutterContextMenu:function(contextMenu,lineNumber)
-{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){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)}
-WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu.call(this,contextMenu,lineNumber);},_workingCopyChanged:function(event)
-{if(this._supportsEnabledBreakpointsWhileEditing()||this._scriptFile)
-return;if(this._uiSourceCode.isDirty())
-this._muteBreakpointsWhileEditing();else
-this._restoreBreakpointsAfterEditing();},_workingCopyCommitted:function(event)
-{if(this._supportsEnabledBreakpointsWhileEditing()||this._scriptFile)
-return;this._restoreBreakpointsAfterEditing();},_didMergeToVM:function()
-{if(this._supportsEnabledBreakpointsWhileEditing())
-return;this._restoreBreakpointsAfterEditing();},_didDivergeFromVM:function()
-{if(this._supportsEnabledBreakpointsWhileEditing())
-return;this._muteBreakpointsWhileEditing();},_muteBreakpointsWhileEditing:function()
-{if(this._muted)
-return;for(var lineNumber=0;lineNumber<this._textEditor.linesCount;++lineNumber){var breakpointDecoration=this._textEditor.getAttribute(lineNumber,"breakpoint");if(!breakpointDecoration)
-continue;this._removeBreakpointDecoration(lineNumber);this._addBreakpointDecoration(lineNumber,breakpointDecoration.condition,breakpointDecoration.enabled,true);}
-this._muted=true;},_supportsEnabledBreakpointsWhileEditing:function()
-{return this._uiSourceCode.project().type()===WebInspector.projectTypes.Snippets;},_restoreBreakpointsAfterEditing:function()
-{delete this._muted;var breakpoints={};for(var lineNumber=0;lineNumber<this._textEditor.linesCount;++lineNumber){var breakpointDecoration=this._textEditor.getAttribute(lineNumber,"breakpoint");if(breakpointDecoration){breakpoints[lineNumber]=breakpointDecoration;this._removeBreakpointDecoration(lineNumber);}}
-this._removeAllBreakpoints();for(var lineNumberString in breakpoints){var lineNumber=parseInt(lineNumberString,10);if(isNaN(lineNumber))
-continue;var breakpointDecoration=breakpoints[lineNumberString];this._setBreakpoint(lineNumber,breakpointDecoration.condition,breakpointDecoration.enabled);}},_removeAllBreakpoints:function()
-{var breakpoints=this._breakpointManager.breakpointsForUISourceCode(this._uiSourceCode);for(var i=0;i<breakpoints.length;++i)
-breakpoints[i].remove();},_getPopoverAnchor:function(element,event)
-{if(!WebInspector.debuggerModel.isPaused())
-return null;var textPosition=this.textEditor.coordinatesToCursorPosition(event.x,event.y);if(!textPosition)
-return null;var mouseLine=textPosition.startLine;var mouseColumn=textPosition.startColumn;var textSelection=this.textEditor.selection().normalize();if(textSelection&&!textSelection.isEmpty()){if(textSelection.startLine!==textSelection.endLine||textSelection.startLine!==mouseLine||mouseColumn<textSelection.startColumn||mouseColumn>textSelection.endColumn)
-return null;var leftCorner=this.textEditor.cursorPositionToCoordinates(textSelection.startLine,textSelection.startColumn);var rightCorner=this.textEditor.cursorPositionToCoordinates(textSelection.endLine,textSelection.endColumn);var anchorBox=new AnchorBox(leftCorner.x,leftCorner.y,rightCorner.x-leftCorner.x,leftCorner.height);anchorBox.highlight={lineNumber:textSelection.startLine,startColumn:textSelection.startColumn,endColumn:textSelection.endColumn-1};anchorBox.forSelection=true;return anchorBox;}
-var token=this.textEditor.tokenAtTextPosition(textPosition.startLine,textPosition.startColumn);if(!token)
-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()||!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)==='.'){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)
-this.textEditor.removeHighlight(this._popoverAnchorBox._highlightDescriptor);delete this._popoverAnchorBox;},_addBreakpointDecoration:function(lineNumber,condition,enabled,mutedWhileEditing)
-{var breakpoint={condition:condition,enabled:enabled};this.textEditor.setAttribute(lineNumber,"breakpoint",breakpoint);var disabled=!enabled||mutedWhileEditing;this.textEditor.addBreakpoint(lineNumber,disabled,!!condition);},_removeBreakpointDecoration:function(lineNumber)
-{this.textEditor.removeAttribute(lineNumber,"breakpoint");this.textEditor.removeBreakpoint(lineNumber);},_onKeyDown:function(event)
-{if(event.keyIdentifier==="U+001B"){if(this._popoverHelper.isPopoverVisible()){this._popoverHelper.hidePopover();event.consume();return;}
-if(this._stepIntoMarkup&&WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)){this._stepIntoMarkup.stoptIteratingSelection();event.consume();return;}}},_editBreakpointCondition:function(lineNumber,breakpoint)
-{this._conditionElement=this._createConditionElement(lineNumber);this.textEditor.addDecoration(lineNumber,this._conditionElement);function finishEditing(committed,element,newText)
-{this.textEditor.removeDecoration(lineNumber,this._conditionElement);delete this._conditionEditorElement;delete this._conditionElement;if(!committed)
-return;if(breakpoint)
-breakpoint.setCondition(newText);else
-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())
-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();}},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)
-{var shiftOffset=lineNumber<=oldRange.startLine?0:newRange.linesCount-oldRange.linesCount;if(lineNumber===oldRange.startLine){var whiteSpacesRegex=/^[\s\xA0]*$/;for(var i=0;lineNumber+i<=newRange.endLine;++i){if(!whiteSpacesRegex.test(this.textEditor.line(lineNumber+i))){shiftOffset=i;break;}}}
-var newLineNumber=Math.max(0,lineNumber+shiftOffset);if(oldRange.startLine<lineNumber&&lineNumber<oldRange.endLine)
-newLineNumber=oldRange.startLine;return newLineNumber;},_onMouseDownAndClick:function(isMouseDown,event)
-{var markup=this._stepIntoMarkup;if(!markup)
-return;var index=markup.findItemByCoordinates(event.x,event.y);if(typeof index==="undefined")
-return;if(isMouseDown){event.consume();}else{var rawLocation=markup.getRawPosition(index);this._scriptsPanel.doStepIntoSelection(rawLocation);}},_shouldIgnoreExternalBreakpointEvents:function()
-{if(this._supportsEnabledBreakpointsWhileEditing())
-return false;if(this._muted)
-return true;return this._scriptFile&&(this._scriptFile.isDivergingFromVM()||this._scriptFile.isMergingToVM());},_breakpointAdded:function(event)
-{var uiLocation=(event.data.uiLocation);if(uiLocation.uiSourceCode!==this._uiSourceCode)
-return;if(this._shouldIgnoreExternalBreakpointEvents())
-return;var breakpoint=(event.data.breakpoint);if(this.loaded)
-this._addBreakpointDecoration(uiLocation.lineNumber,breakpoint.condition(),breakpoint.enabled(),false);},_breakpointRemoved:function(event)
-{var uiLocation=(event.data.uiLocation);if(uiLocation.uiSourceCode!==this._uiSourceCode)
-return;if(this._shouldIgnoreExternalBreakpointEvents())
-return;var breakpoint=(event.data.breakpoint);var remainingBreakpoint=this._breakpointManager.findBreakpoint(this._uiSourceCode,uiLocation.lineNumber);if(!remainingBreakpoint&&this.loaded)
-this._removeBreakpointDecoration(uiLocation.lineNumber);},_consoleMessageAdded:function(event)
-{var message=(event.data);if(this.loaded)
-this.addMessageToSource(message.lineNumber,message.originalMessage);},_consoleMessageRemoved:function(event)
-{var message=(event.data);if(this.loaded)
-this.removeMessageFromSource(message.lineNumber,message.originalMessage);},_consoleMessagesCleared:function(event)
-{this.clearMessages();},_onSourceMappingChanged:function(event)
-{this._updateScriptFile();},_updateScriptFile:function()
-{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();}},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);}
-if(this._scriptFile)
-this._scriptFile.checkMapping();},_handleGutterClick:function(event)
-{if(this._muted)
-return;var eventData=(event.data);var lineNumber=eventData.lineNumber;var eventObject=(eventData.event);if(eventObject.button!=0||eventObject.altKey||eventObject.ctrlKey||eventObject.metaKey)
-return;this._toggleBreakpoint(lineNumber,eventObject.shiftKey);eventObject.consume(true);},_toggleBreakpoint:function(lineNumber,onlyDisable)
-{var breakpoint=this._breakpointManager.findBreakpoint(this._uiSourceCode,lineNumber);if(breakpoint){if(onlyDisable)
-breakpoint.setEnabled(!breakpoint.enabled());else
-breakpoint.remove();}else
-this._setBreakpoint(lineNumber,"",true);},toggleBreakpointOnCurrentLine:function()
-{if(this._muted)
-return;var selection=this.textEditor.selection();if(!selection)
-return;this._toggleBreakpoint(selection.startLine,false);},_setBreakpoint:function(lineNumber,condition,enabled)
-{this._breakpointManager.setBreakpoint(this._uiSourceCode,lineNumber,condition,enabled);WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.SetBreakpoint,url:this._uiSourceCode.originURL(),line:lineNumber,enabled:enabled});},_continueToLine:function(lineNumber)
-{var rawLocation=(this._uiSourceCode.uiLocationToRawLocation(lineNumber,0));this._scriptsPanel.continueToLocation(rawLocation);},stepIntoMarkup:function()
-{return this._stepIntoMarkup;},dispose:function()
-{this._breakpointManager.removeEventListener(WebInspector.BreakpointManager.Events.BreakpointAdded,this._breakpointAdded,this);this._breakpointManager.removeEventListener(WebInspector.BreakpointManager.Events.BreakpointRemoved,this._breakpointRemoved,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.ConsoleMessageAdded,this._consoleMessageAdded,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.ConsoleMessageRemoved,this._consoleMessageRemoved,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.ConsoleMessagesCleared,this._consoleMessagesCleared,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged,this._onSourceMappingChanged,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);WebInspector.UISourceCodeFrame.prototype.dispose.call(this);},__proto__:WebInspector.UISourceCodeFrame.prototype}
-WebInspector.JavaScriptSourceFrame.StepIntoMarkup=function(rawPositions,editorRanges,firstToExecute,sourceFrame)
-{this._positions=rawPositions;this._editorRanges=editorRanges;this._highlightDescriptors=new Array(rawPositions.length);this._currentHighlight=undefined;this._firstToExecute=firstToExecute;this._currentSelection=undefined;this._sourceFrame=sourceFrame;};WebInspector.JavaScriptSourceFrame.StepIntoMarkup.prototype={show:function()
-{var highlight=this._getVisibleHighlight();for(var i=0;i<this._positions.length;++i)
-this._highlightItem(i,i===highlight);this._shownVisibleHighlight=highlight;},startIteratingSelection:function()
-{this._currentSelection=this._positions.length
-this._redrawHighlight();},stopIteratingSelection:function()
-{this._currentSelection=undefined;this._redrawHighlight();},iterateSelection:function(backward)
-{if(typeof this._currentSelection==="undefined")
-return;var nextSelection=backward?this._currentSelection-1:this._currentSelection+1;var modulo=this._positions.length+1;nextSelection=(nextSelection+modulo)%modulo;this._currentSelection=nextSelection;this._redrawHighlight();},_redrawHighlight:function()
-{var visibleHighlight=this._getVisibleHighlight();if(this._shownVisibleHighlight===visibleHighlight)
-return;this._hideItemHighlight(this._shownVisibleHighlight);this._hideItemHighlight(visibleHighlight);this._highlightItem(this._shownVisibleHighlight,false);this._highlightItem(visibleHighlight,true);this._shownVisibleHighlight=visibleHighlight;},_getVisibleHighlight:function()
-{return typeof this._currentSelection==="undefined"?this._firstToExecute:this._currentSelection;},_highlightItem:function(position,selected)
-{if(position===this._positions.length)
-return;var styleName=selected?"source-frame-stepin-mark-highlighted":"source-frame-stepin-mark";var textEditor=this._sourceFrame.textEditor;var highlightDescriptor=textEditor.highlightRange(this._editorRanges[position],styleName);this._highlightDescriptors[position]=highlightDescriptor;},_hideItemHighlight:function(position)
-{if(position===this._positions.length)
-return;var highlightDescriptor=this._highlightDescriptors[position];console.assert(highlightDescriptor);var textEditor=this._sourceFrame.textEditor;textEditor.removeHighlight(highlightDescriptor);this._highlightDescriptors[position]=undefined;},dispose:function()
-{for(var i=0;i<this._positions.length;++i)
-this._hideItemHighlight(i);},findItemByCoordinates:function(x,y)
-{var textPosition=this._sourceFrame.textEditor.coordinatesToCursorPosition(x,y);if(!textPosition)
-return;var ranges=this._editorRanges;for(var i=0;i<ranges.length;++i){var nextRange=ranges[i];if(nextRange.startLine==textPosition.startLine&&nextRange.startColumn<=textPosition.startColumn&&nextRange.endColumn>=textPosition.startColumn)
-return i;}},getSelectedItemIndex:function()
-{if(this._currentSelection===this._positions.length)
-return undefined;return this._currentSelection;},getRawPosition:function(position)
-{return(this._positions[position]);}};WebInspector.JavaScriptSourceFrame.StepIntoMarkup.create=function(sourceFrame,stepIntoRawLocations)
-{if(!stepIntoRawLocations.length)
-return null;var firstToExecute=stepIntoRawLocations[0];stepIntoRawLocations.sort(WebInspector.JavaScriptSourceFrame.StepIntoMarkup._Comparator);var firstToExecuteIndex=stepIntoRawLocations.indexOf(firstToExecute);var textEditor=sourceFrame.textEditor;var uiRanges=[];for(var i=0;i<stepIntoRawLocations.length;++i){var uiLocation=WebInspector.debuggerModel.rawLocationToUILocation((stepIntoRawLocations[i]));var token=textEditor.tokenAtTextPosition(uiLocation.lineNumber,uiLocation.columnNumber);var startColumn;var endColumn;if(token){startColumn=token.startColumn;endColumn=token.endColumn;}else{startColumn=uiLocation.columnNumber;endColumn=uiLocation.columnNumber;}
-var range=new WebInspector.TextRange(uiLocation.lineNumber,startColumn,uiLocation.lineNumber,endColumn);uiRanges.push(range);}
-return new WebInspector.JavaScriptSourceFrame.StepIntoMarkup(stepIntoRawLocations,uiRanges,firstToExecuteIndex,sourceFrame);};WebInspector.JavaScriptSourceFrame.StepIntoMarkup._Comparator=function(locationA,locationB)
-{if(locationA.lineNumber===locationB.lineNumber)
-return locationA.columnNumber-locationB.columnNumber;else
-return locationA.lineNumber-locationB.lineNumber;};;WebInspector.CSSSourceFrame=function(uiSourceCode)
-{WebInspector.UISourceCodeFrame.call(this,uiSourceCode);this._registerShortcuts();}
-WebInspector.CSSSourceFrame.prototype={_registerShortcuts:function()
-{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)
-this.addShortcut(shortcutKeys.DecreaseCSSUnitByTen[i].key,this._handleUnitModification.bind(this,-10));},_modifyUnit:function(unit,change)
-{var unitValue=parseInt(unit,10);if(isNaN(unitValue))
-return null;var tail=unit.substring((unitValue).toString().length);return String.sprintf("%d%s",unitValue+change,tail);},_handleUnitModification:function(change)
-{var selection=this.textEditor.selection().normalize();var token=this.textEditor.tokenAtTextPosition(selection.startLine,selection.startColumn);if(!token){if(selection.startColumn>0)
-token=this.textEditor.tokenAtTextPosition(selection.startLine,selection.startColumn-1);if(!token)
-return false;}
-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._toggleNavigator();}
-WebInspector.NavigatorOverlayController.prototype={wasShown:function()
-{window.setTimeout(this._maybeShowNavigatorOverlay.bind(this),0);},_maybeShowNavigatorOverlay:function()
-{if(WebInspector.settings.navigatorHidden.get()&&!WebInspector.settings.navigatorWasOnceHidden.get())
-this.showNavigatorOverlay();},_toggleNavigator:function()
-{if(this._navigatorShowHideButton.state==="overlay")
-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.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.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")
-return;this._navigatorShowHideButton.state="right";this._navigatorShowHideButton.title=WebInspector.UIString("Show navigator");this._parentSidebarView.element.appendChild(this._navigatorShowHideButton.element);this._innerHideNavigatorOverlay();this._editorView.focus();},_innerHideNavigatorOverlay:function()
-{this._parentSidebarView.element.removeEventListener("mousedown",this._boundContainingElementFocused,false);this._sidebarOverlay.element.removeEventListener("keydown",this._boundKeyDown,false);this._sidebarOverlay.hide();},_containingElementFocused:function(event)
-{if(!event.target.isSelfOrDescendant(this._sidebarOverlay.element))
-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.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)
-return"navigator-domain-tree-item";if(type===WebInspector.NavigatorTreeOutline.Types.FileSystem)
-return"navigator-folder-tree-item";return"navigator-folder-tree-item";}
-WebInspector.NavigatorView.prototype={addUISourceCode:function(uiSourceCode)
-{var projectNode=this._projectNode(uiSourceCode.project());var folderNode=this._folderNode(projectNode,uiSourceCode.parentPath());var uiSourceCodeNode=new WebInspector.NavigatorUISourceCodeTreeNode(this,uiSourceCode);this._uiSourceCodeNodes.put(uiSourceCode,uiSourceCodeNode);folderNode.appendChild(uiSourceCodeNode);if(uiSourceCode.url===WebInspector.inspectedPageURL)
-this.revealUISourceCode(uiSourceCode);},_inspectedURLChanged:function(event)
-{var nodes=this._uiSourceCodeNodes.values();for(var i=0;i<nodes.length;++i){var uiSourceCode=nodes[i].uiSourceCode();if(uiSourceCode.url===WebInspector.inspectedPageURL)
-this.revealUISourceCode(uiSourceCode);}},_projectNode:function(project)
-{if(!project.displayName())
-return this._rootNode;var projectNode=this._rootNode.child(project.id());if(!projectNode){var type=project.type()===WebInspector.projectTypes.FileSystem?WebInspector.NavigatorTreeOutline.Types.FileSystem:WebInspector.NavigatorTreeOutline.Types.Domain;projectNode=new WebInspector.NavigatorFolderTreeNode(this,project,project.id(),type,"",project.displayName());this._rootNode.appendChild(projectNode);}
-return projectNode;},_folderNode:function(projectNode,folderPath)
-{if(!folderPath)
-return projectNode;var subfolderNodes=this._subfolderNodes.get(projectNode);if(!subfolderNodes){subfolderNodes=(new StringMap());this._subfolderNodes.put(projectNode,subfolderNodes);}
-var folderNode=subfolderNodes.get(folderPath);if(folderNode)
-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;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)
-{var node=this._uiSourceCodeNodes.get(uiSourceCode);if(!node)
-return;var projectNode=this._projectNode(uiSourceCode.project());var subfolderNodes=this._subfolderNodes.get(projectNode);var parentNode=node.parent;this._uiSourceCodeNodes.remove(uiSourceCode);parentNode.removeChild(node);node=parentNode;while(node){parentNode=node.parent;if(!parentNode||!node.isEmpty())
-break;if(subfolderNodes)
-subfolderNodes.remove(node._folderPath);parentNode.removeChild(node);node=parentNode;}},updateIcon:function(uiSourceCode)
-{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;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)
-{function addFolder()
-{WebInspector.isolatedFileSystemManager.addFileSystem();}
-var addFolderLabel=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add folder to workspace":"Add Folder to Workspace");contextMenu.appendItem(addFolderLabel,addFolder);},_handleContextMenuRefresh:function(project,path)
-{project.refresh(path);},_handleContextMenuCreate:function(project,path,uiSourceCode)
-{var data={};data.project=project;data.path=path;data.uiSourceCode=uiSourceCode;this.dispatchEventToListeners(WebInspector.NavigatorView.Events.ItemCreationRequested,data);},_handleContextMenuExclude:function(project,path)
-{var shouldExclude=window.confirm(WebInspector.UIString("Are you sure you want to exclude this folder?"));if(shouldExclude){WebInspector.startBatchUpdate();project.excludeFolder(path);WebInspector.endBatchUpdate();}},_handleContextMenuDelete:function(uiSourceCode)
-{var shouldDelete=window.confirm(WebInspector.UIString("Are you sure you want to delete this file?"));if(shouldDelete)
-uiSourceCode.project().deleteFile(uiSourceCode.path());},handleFileContextMenu:function(event,uiSourceCode)
-{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);function removeFolder()
-{var shouldRemove=window.confirm(WebInspector.UIString("Are you sure you want to remove this folder?"));if(shouldRemove)
-project.remove();}
-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)
-return;this.dispatchEventToListeners(WebInspector.NavigatorView.Events.ItemSearchStarted,searchText);event.consume(true);},__proto__:WebInspector.View.prototype}
-WebInspector.NavigatorTreeOutline=function(element)
-{TreeOutline.call(this,element);this.element=element;this.comparator=WebInspector.NavigatorTreeOutline._treeElementsCompare;}
-WebInspector.NavigatorTreeOutline.Types={Root:"Root",Domain:"Domain",Folder:"Folder",UISourceCode:"UISourceCode",FileSystem:"FileSystem"}
-WebInspector.NavigatorTreeOutline._treeElementsCompare=function compare(treeElement1,treeElement2)
-{function typeWeight(treeElement)
-{var type=treeElement.type();if(type===WebInspector.NavigatorTreeOutline.Types.Domain){if(treeElement.titleText===WebInspector.inspectedPageDomain)
-return 1;return 2;}
-if(type===WebInspector.NavigatorTreeOutline.Types.FileSystem)
-return 3;if(type===WebInspector.NavigatorTreeOutline.Types.Folder)
-return 4;return 5;}
-var typeWeight1=typeWeight(treeElement1);var typeWeight2=typeWeight(treeElement2);var result;if(typeWeight1>typeWeight2)
-result=1;else if(typeWeight1<typeWeight2)
-result=-1;else{var title1=treeElement1.titleText;var title2=treeElement2.titleText;result=title1.compareTo(title2);}
-return result;}
-WebInspector.NavigatorTreeOutline.prototype={scriptTreeElements:function()
-{var result=[];if(this.children.length){for(var treeElement=this.children[0];treeElement;treeElement=treeElement.traverseNextTreeElement(false,this,true)){if(treeElement instanceof WebInspector.NavigatorSourceTreeElement)
-result.push(treeElement.uiSourceCode);}}
-return result;},__proto__:TreeOutline.prototype}
-WebInspector.BaseNavigatorTreeElement=function(type,title,iconClasses,hasChildren,noIcon)
-{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.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.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)
-{if(this._titleText===titleText)
-return;this._titleText=titleText||"";if(this.titleElement)
-this.titleElement.textContent=this._titleText;},type:function()
-{return this._type;},__proto__:TreeElement.prototype}
-WebInspector.NavigatorFolderTreeElement=function(navigatorView,type,title)
-{var iconClass=WebInspector.NavigatorView.iconClassForType(type);WebInspector.BaseNavigatorTreeElement.call(this,type,title,[iconClass],true);this._navigatorView=navigatorView;}
-WebInspector.NavigatorFolderTreeElement.prototype={onpopulate:function()
-{this._node.populate();},onattach:function()
-{WebInspector.BaseNavigatorTreeElement.prototype.onattach.call(this);this.collapse();this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);},setNode:function(node)
-{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}
-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()
-{return this._uiSourceCode;},_calculateIconClasses:function()
-{return["navigator-"+this._uiSourceCode.contentType().name()+"-tree-item"];},updateIcon:function()
-{this.updateIconClasses(this._calculateIconClasses());},onattach:function()
-{WebInspector.BaseNavigatorTreeElement.prototype.onattach.call(this);this.listItemElement.draggable=true;this.listItemElement.addEventListener("click",this._onclick.bind(this),false);this.listItemElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);this.listItemElement.addEventListener("mousedown",this._onmousedown.bind(this),false);this.listItemElement.addEventListener("dragstart",this._ondragstart.bind(this),false);},_onmousedown:function(event)
-{if(event.which===1)
-this._uiSourceCode.requestContent(callback.bind(this));function callback(content)
-{this._warmedUpContent=content;}},_shouldRenameOnMouseDown:function()
-{if(!this._uiSourceCode.canRename())
-return false;var isSelected=this===this.treeOutline.selectedTreeElement;var isFocused=this.treeOutline.childrenListElement.isSelfOrAncestor(document.activeElement);return isSelected&&isFocused&&!WebInspector.isBeingEdited(this.treeOutline.element);},selectOnMouseDown:function(event)
-{if(event.which!==1||!this._shouldRenameOnMouseDown()){TreeElement.prototype.selectOnMouseDown.call(this,event);return;}
-setTimeout(rename.bind(this),300);function rename()
-{if(this._shouldRenameOnMouseDown())
-this._navigatorView.requestRename(this._uiSourceCode);}},_ondragstart:function(event)
-{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);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}
-WebInspector.NavigatorTreeNode=function(id)
-{this.id=id;this._children=new StringMap();}
-WebInspector.NavigatorTreeNode.prototype={treeElement:function(){},dispose:function(){},isRoot:function()
-{return false;},hasChildren:function()
-{return true;},populate:function()
-{if(this.isPopulated())
-return;if(this.parent)
-this.parent.populate();this._populated=true;this.wasPopulated();},wasPopulated:function()
-{var children=this.children();for(var i=0;i<children.length;++i)
-this.treeElement().appendChild(children[i].treeElement());},didAddChild:function(node)
-{if(this.isPopulated())
-this.treeElement().appendChild(node.treeElement());},willRemoveChild:function(node)
-{if(this.isPopulated())
-this.treeElement().removeChild(node.treeElement());},isPopulated:function()
-{return this._populated;},isEmpty:function()
-{return!this._children.size();},child:function(id)
-{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()
-{this._children.clear();}}
-WebInspector.NavigatorRootTreeNode=function(navigatorView)
-{WebInspector.NavigatorTreeNode.call(this,"");this._navigatorView=navigatorView;}
-WebInspector.NavigatorRootTreeNode.prototype={isRoot:function()
-{return true;},treeElement:function()
-{return this._navigatorView._scriptsTree;},__proto__:WebInspector.NavigatorTreeNode.prototype}
-WebInspector.NavigatorUISourceCodeTreeNode=function(navigatorView,uiSourceCode)
-{WebInspector.NavigatorTreeNode.call(this,uiSourceCode.name());this._navigatorView=navigatorView;this._uiSourceCode=uiSourceCode;this._treeElement=null;}
-WebInspector.NavigatorUISourceCodeTreeNode.prototype={uiSourceCode:function()
-{return this._uiSourceCode;},updateIcon:function()
-{if(this._treeElement)
-this._treeElement.updateIcon();},treeElement:function()
-{if(this._treeElement)
-return this._treeElement;this._treeElement=new WebInspector.NavigatorSourceTreeElement(this._navigatorView,this._uiSourceCode,"");this.updateTitle();this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.TitleChanged,this._titleChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._formattedChanged,this);return this._treeElement;},updateTitle:function(ignoreIsDirty)
-{if(!this._treeElement)
-return;var titleText=this._uiSourceCode.displayName();if(!ignoreIsDirty&&(this._uiSourceCode.isDirty()||this._uiSourceCode.hasUnsavedCommittedChanges()))
-titleText="*"+titleText;this._treeElement.titleText=titleText;},hasChildren:function()
-{return false;},dispose:function()
-{if(!this._treeElement)
-return;this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.TitleChanged,this._titleChanged,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._formattedChanged,this);},_titleChanged:function(event)
-{this.updateTitle();},_workingCopyChanged:function(event)
-{this.updateTitle();},_workingCopyCommitted:function(event)
-{this.updateTitle();},_formattedChanged:function(event)
-{this.updateTitle();},reveal:function(select)
-{this.parent.populate();this.parent.treeElement().expand();this._treeElement.reveal();if(select)
-this._treeElement.select();},rename:function(callback)
-{if(!this._treeElement)
-return;var treeOutlineElement=this._treeElement.treeOutline.element;WebInspector.markBeingEdited(treeOutlineElement,true);function commitHandler(element,newTitle,oldTitle)
-{if(newTitle!==oldTitle){this._treeElement.titleText=newTitle;this._uiSourceCode.rename(newTitle,renameCallback.bind(this));return;}
-afterEditing.call(this,true);}
-function renameCallback(success)
-{if(!success){WebInspector.markBeingEdited(treeOutlineElement,false);this.updateTitle();this.rename(callback);return;}
-afterEditing.call(this,true);}
-function cancelHandler()
-{afterEditing.call(this,false);}
-function afterEditing(committed)
-{WebInspector.markBeingEdited(treeOutlineElement,false);this.updateTitle();this._treeElement.treeOutline.childrenListElement.focus();if(callback)
-callback(committed);}
-var editingConfig=new WebInspector.EditingConfig(commitHandler.bind(this),cancelHandler.bind(this));this.updateTitle(true);WebInspector.startEditing(this._treeElement.titleElement,editingConfig);window.getSelection().setBaseAndExtent(this._treeElement.titleElement,0,this._treeElement.titleElement,1);},__proto__:WebInspector.NavigatorTreeNode.prototype}
-WebInspector.NavigatorFolderTreeNode=function(navigatorView,project,id,type,folderPath,title)
-{WebInspector.NavigatorTreeNode.call(this,id);this._navigatorView=navigatorView;this._project=project;this._type=type;this._folderPath=folderPath;this._title=title;}
-WebInspector.NavigatorFolderTreeNode.prototype={treeElement:function()
-{if(this._treeElement)
-return this._treeElement;this._treeElement=this._createTreeElement(this._title,this);return this._treeElement;},_createTreeElement:function(title,node)
-{var treeElement=new WebInspector.NavigatorFolderTreeElement(this._navigatorView,this._type,title);treeElement.setNode(node);return treeElement;},wasPopulated:function()
-{if(!this._treeElement||this._treeElement._node!==this)
-return;this._addChildrenRecursive();},_addChildrenRecursive:function()
-{var children=this.children();for(var i=0;i<children.length;++i){var child=children[i];this.didAddChild(child);if(child instanceof WebInspector.NavigatorFolderTreeNode)
-child._addChildrenRecursive();}},_shouldMerge:function(node)
-{return this._type!==WebInspector.NavigatorTreeOutline.Types.Domain&&node instanceof WebInspector.NavigatorFolderTreeNode;},didAddChild:function(node)
-{function titleForNode(node)
-{return node._title;}
-if(!this._treeElement)
-return;var children=this.children();if(children.length===1&&this._shouldMerge(node)){node._isMerged=true;this._treeElement.titleText=this._treeElement.titleText+"/"+node._title;node._treeElement=this._treeElement;this._treeElement.setNode(node);return;}
-var oldNode;if(children.length===2)
-oldNode=children[0]!==node?children[0]:children[1];if(oldNode&&oldNode._isMerged){delete oldNode._isMerged;var mergedToNodes=[];mergedToNodes.push(this);var treeNode=this;while(treeNode._isMerged){treeNode=treeNode.parent;mergedToNodes.push(treeNode);}
-mergedToNodes.reverse();var titleText=mergedToNodes.map(titleForNode).join("/");var nodes=[];treeNode=oldNode;do{nodes.push(treeNode);children=treeNode.children();treeNode=children.length===1?children[0]:null;}while(treeNode&&treeNode._isMerged);if(!this.isPopulated()){this._treeElement.titleText=titleText;this._treeElement.setNode(this);for(var i=0;i<nodes.length;++i){delete nodes[i]._treeElement;delete nodes[i]._isMerged;}
-return;}
-var oldTreeElement=this._treeElement;var treeElement=this._createTreeElement(titleText,this);for(var i=0;i<mergedToNodes.length;++i)
-mergedToNodes[i]._treeElement=treeElement;oldTreeElement.parent.appendChild(treeElement);oldTreeElement.setNode(nodes[nodes.length-1]);oldTreeElement.titleText=nodes.map(titleForNode).join("/");oldTreeElement.parent.removeChild(oldTreeElement);this._treeElement.appendChild(oldTreeElement);if(oldTreeElement.expanded)
-treeElement.expand();}
-if(this.isPopulated())
-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.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);}
-WebInspector.RevisionHistoryView.showHistory=function(uiSourceCode)
-{if(!WebInspector.RevisionHistoryView._view)
-WebInspector.RevisionHistoryView._view=new WebInspector.RevisionHistoryView();var view=WebInspector.RevisionHistoryView._view;WebInspector.inspectorView.showCloseableViewInDrawer("history",WebInspector.UIString("History"),view);view._revealUISourceCode(uiSourceCode);}
-WebInspector.RevisionHistoryView.prototype={_createUISourceCodeItem:function(uiSourceCode)
-{var uiSourceCodeItem=new TreeElement(uiSourceCode.displayName(),null,true);uiSourceCodeItem.selectable=false;for(var i=0;i<this._treeOutline.children.length;++i){if(this._treeOutline.children[i].title.localeCompare(uiSourceCode.displayName())>0){this._treeOutline.insertChild(uiSourceCodeItem,i);break;}}
-if(i===this._treeOutline.children.length)
-this._treeOutline.appendChild(uiSourceCodeItem);this._uiSourceCodeItems.put(uiSourceCode,uiSourceCodeItem);var revisionCount=uiSourceCode.history.length;for(var i=revisionCount-1;i>=0;--i){var revision=uiSourceCode.history[i];var historyItem=new WebInspector.RevisionHistoryTreeElement(revision,uiSourceCode.history[i-1],i!==revisionCount-1);uiSourceCodeItem.appendChild(historyItem);}
-var linkItem=new TreeElement("",null,false);linkItem.selectable=false;uiSourceCodeItem.appendChild(linkItem);var revertToOriginal=linkItem.listItemElement.createChild("span","revision-history-link revision-history-link-row");revertToOriginal.textContent=WebInspector.UIString("apply original content");revertToOriginal.addEventListener("click",uiSourceCode.revertToOriginal.bind(uiSourceCode));var clearHistoryElement=uiSourceCodeItem.listItemElement.createChild("span","revision-history-link");clearHistoryElement.textContent=WebInspector.UIString("revert");clearHistoryElement.addEventListener("click",this._clearHistory.bind(this,uiSourceCode));return uiSourceCodeItem;},_clearHistory:function(uiSourceCode)
-{uiSourceCode.revertAndClearHistory(this._removeUISourceCode.bind(this));},_revisionAdded:function(event)
-{var uiSourceCode=(event.data.uiSourceCode);var uiSourceCodeItem=this._uiSourceCodeItems.get(uiSourceCode);if(!uiSourceCodeItem){uiSourceCodeItem=this._createUISourceCodeItem(uiSourceCode);return;}
-var historyLength=uiSourceCode.history.length;var historyItem=new WebInspector.RevisionHistoryTreeElement(uiSourceCode.history[historyLength-1],uiSourceCode.history[historyLength-2],false);if(uiSourceCodeItem.children.length)
-uiSourceCodeItem.children[0].allowRevert();uiSourceCodeItem.insertChild(historyItem,0);},_revealUISourceCode:function(uiSourceCode)
-{var uiSourceCodeItem=this._uiSourceCodeItems.get(uiSourceCode);if(uiSourceCodeItem){uiSourceCodeItem.reveal();uiSourceCodeItem.expand();}},_uiSourceCodeRemoved:function(event)
-{var uiSourceCode=(event.data);this._removeUISourceCode(uiSourceCode);},_removeUISourceCode:function(uiSourceCode)
-{var uiSourceCodeItem=this._uiSourceCodeItems.get(uiSourceCode);if(!uiSourceCodeItem)
-return;this._treeOutline.removeChild(uiSourceCodeItem);this._uiSourceCodeItems.remove(uiSourceCode);},_projectWillReset:function(event)
-{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.classList.add("hidden");}
-WebInspector.RevisionHistoryTreeElement.prototype={onattach:function()
-{this.listItemElement.classList.add("revision-history-revision");},onexpand:function()
-{this.listItemElement.appendChild(this._revertElement);if(this._wasExpandedOnce)
-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));}
-function step2(baseContent,newContent)
-{var baseLines=difflib.stringAsLines(baseContent);var newLines=difflib.stringAsLines(newContent);var sm=new difflib.SequenceMatcher(baseLines,newLines);var opcodes=sm.get_opcodes();var lastWasSeparator=false;for(var idx=0;idx<opcodes.length;idx++){var code=opcodes[idx];var change=code[0];var b=code[1];var be=code[2];var n=code[3];var ne=code[4];var rowCount=Math.max(be-b,ne-n);var topRows=[];var bottomRows=[];for(var i=0;i<rowCount;i++){if(change==="delete"||(change==="replace"&&b<be)){var lineNumber=b++;this._createLine(lineNumber,null,baseLines[lineNumber],"removed");lastWasSeparator=false;}
-if(change==="insert"||(change==="replace"&&n<ne)){var lineNumber=n++;this._createLine(null,lineNumber,newLines[lineNumber],"added");lastWasSeparator=false;}
-if(change==="equal"){b++;n++;if(!lastWasSeparator)
-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.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;}
-for(var i=0;i<this._sections.length;++i){var section=this._sections[i];if(!section.title)
-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=[];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=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);}
-WebInspector.ScopeVariableTreeElement.prototype={onattach:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this);if(this.hasChildren&&this.propertyIdentifier in this.treeOutline.section.pane._expandedProperties)
-this.expand();},onexpand:function()
-{this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier]=true;},oncollapse:function()
-{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.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)
-{if(uiSourceCode.isContentScript)
-return this._contentScriptsView;else if(uiSourceCode.project().type()===WebInspector.projectTypes.Snippets)
-return this._snippetsView;else
-return this._sourcesView;},addUISourceCode:function(uiSourceCode)
-{this._navigatorViewForUISourceCode(uiSourceCode).addUISourceCode(uiSourceCode);},removeUISourceCode:function(uiSourceCode)
-{this._navigatorViewForUISourceCode(uiSourceCode).removeUISourceCode(uiSourceCode);},revealUISourceCode:function(uiSourceCode,select)
-{this._navigatorViewForUISourceCode(uiSourceCode).revealUISourceCode(uiSourceCode,select);if(uiSourceCode.isContentScript)
-this._tabbedPane.selectTab(WebInspector.SourcesNavigator.ContentScriptsTab);else if(uiSourceCode.project().type()!==WebInspector.projectTypes.Snippets)
-this._tabbedPane.selectTab(WebInspector.SourcesNavigator.SourcesTab);},updateIcon:function(uiSourceCode)
-{this._navigatorViewForUISourceCode(uiSourceCode).updateIcon(uiSourceCode);},rename:function(uiSourceCode,callback)
-{this._navigatorViewForUISourceCode(uiSourceCode).rename(uiSourceCode,callback);},_sourceSelected:function(event)
-{this.dispatchEventToListeners(WebInspector.SourcesNavigator.Events.SourceSelected,event.data);},_itemSearchStarted:function(event)
-{this.dispatchEventToListeners(WebInspector.SourcesNavigator.Events.ItemSearchStarted,event.data);},_itemRenamingRequested:function(event)
-{this.dispatchEventToListeners(WebInspector.SourcesNavigator.Events.ItemRenamingRequested,event.data);},_itemCreationRequested:function(event)
-{this.dispatchEventToListeners(WebInspector.SourcesNavigator.Events.ItemCreationRequested,event.data);},__proto__:WebInspector.Object.prototype}
-WebInspector.SnippetsNavigatorView=function()
-{WebInspector.NavigatorView.call(this);}
-WebInspector.SnippetsNavigatorView.prototype={handleContextMenu:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("New"),this._handleCreateSnippet.bind(this));contextMenu.show();},handleFileContextMenu:function(event,uiSourceCode)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("Run"),this._handleEvaluateSnippet.bind(this,uiSourceCode));contextMenu.appendItem(WebInspector.UIString("Rename"),this.requestRename.bind(this,uiSourceCode));contextMenu.appendItem(WebInspector.UIString("Remove"),this._handleRemoveSnippet.bind(this,uiSourceCode));contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString("New"),this._handleCreateSnippet.bind(this));contextMenu.show();},_handleEvaluateSnippet:function(uiSourceCode)
-{if(uiSourceCode.project().type()!==WebInspector.projectTypes.Snippets)
-return;WebInspector.scriptSnippetModel.evaluateScriptSnippet(uiSourceCode);},_handleRemoveSnippet:function(uiSourceCode)
-{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()
-{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();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 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);}};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,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)
-{var rule=this._rules[itemIndex];return-rule.rawLocation.lineNumber;},renderItem:function(itemIndex,query,titleElement,subtitleElement)
-{var rule=this._rules[itemIndex];titleElement.textContent=rule.selectorText;this.highlightRanges(titleElement,query);subtitleElement.textContent=":"+(rule.rawLocation.lineNumber+1);},_requestItems:function()
-{function didGetAllStyleSheets(error,infos)
-{if(error)
-return;for(var i=0;i<infos.length;++i){var info=infos[i];if(info.sourceURL===this._uiSourceCode.url){WebInspector.CSSStyleSheet.createForId(info.styleSheetId,didGetStyleSheet.bind(this));return;}}}
-CSSAgent.getAllStyleSheets(didGetAllStyleSheets.bind(this));function didGetStyleSheet(styleSheet)
-{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._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());}
-WebInspector.TabbedEditorContainer.Events={EditorSelected:"EditorSelected",EditorClosed:"EditorClosed"}
-WebInspector.TabbedEditorContainer._tabId=0;WebInspector.TabbedEditorContainer.maximalPreviouslyViewedFilesCount=30;WebInspector.TabbedEditorContainer.prototype={get view()
-{return this._tabbedPane;},get visibleView()
-{return this._tabbedPane.visibleView;},show:function(parentElement)
-{this._tabbedPane.show(parentElement);},showFile:function(uiSourceCode)
-{this._innerShowFile(uiSourceCode,true);},historyUISourceCodes:function()
-{var uriToUISourceCode={};for(var id in this._files){var uiSourceCode=this._files[id];uriToUISourceCode[uiSourceCode.uri()]=uiSourceCode;}
-var result=[];var uris=this._history._urls();for(var i=0;i<uris.length;++i){var uiSourceCode=uriToUISourceCode[uris[i]];if(uiSourceCode)
-result.push(uiSourceCode);}
-return result;},_addScrollAndSelectionListeners:function()
-{if(!this._currentView)
-return;this._currentView.addEventListener(WebInspector.SourceFrame.Events.ScrollChanged,this._scrollChanged,this);this._currentView.addEventListener(WebInspector.SourceFrame.Events.SelectionChanged,this._selectionChanged,this);},_removeScrollAndSelectionListeners:function()
-{if(!this._currentView)
-return;this._currentView.removeEventListener(WebInspector.SourceFrame.Events.ScrollChanged,this._scrollChanged,this);this._currentView.removeEventListener(WebInspector.SourceFrame.Events.SelectionChanged,this._selectionChanged,this);},_scrollChanged:function(event)
-{var lineNumber=(event.data);this._history.updateScrollLineNumber(this._currentFile.uri(),lineNumber);this._history.save(this._previouslyViewedFilesSetting);},_selectionChanged:function(event)
-{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();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)
-this._tabbedPane.selectTab(nextTabId,true);this._tabbedPane.closeTab(id,true);return true;}
-return false;},_closeTabs:function(ids)
-{var dirtyTabs=[];var cleanTabs=[];for(var i=0;i<ids.length;++i){var id=ids[i];var uiSourceCode=this._files[id];if(uiSourceCode.isDirty())
-dirtyTabs.push(id);else
-cleanTabs.push(id);}
-if(dirtyTabs.length)
-this._tabbedPane.selectTab(dirtyTabs[0],true);this._tabbedPane.closeTabs(cleanTabs,true);for(var i=0;i<dirtyTabs.length;++i){var nextTabId=i+1<dirtyTabs.length?dirtyTabs[i+1]:null;if(!this._maybeCloseTab(dirtyTabs[i],nextTabId))
-break;}},addUISourceCode:function(uiSourceCode)
-{var uri=uiSourceCode.uri();if(this._userSelectedFiles)
-return;var index=this._history.index(uri)
-if(index===-1)
-return;var tabId=this._tabIds.get(uiSourceCode)||this._appendFileTab(uiSourceCode,false);if(!this._currentFile)
-return;if(!index){this._innerShowFile(uiSourceCode,false);return;}
-var currentProjectType=this._currentFile.project().type();var addedProjectType=uiSourceCode.project().type();var snippetsProjectType=WebInspector.projectTypes.Snippets;if(this._history.index(this._currentFile.uri())&&currentProjectType===snippetsProjectType&&addedProjectType!==snippetsProjectType)
-this._innerShowFile(uiSourceCode,false);},removeUISourceCode:function(uiSourceCode)
-{this.removeUISourceCodes([uiSourceCode]);},removeUISourceCodes:function(uiSourceCodes)
-{var tabIds=[];for(var i=0;i<uiSourceCodes.length;++i){var uiSourceCode=uiSourceCodes[i];var tabId=this._tabIds.get(uiSourceCode);if(tabId)
-tabIds.push(tabId);}
-this._tabbedPane.closeTabs(tabIds);},_editorClosedByUserAction:function(uiSourceCode)
-{this._userSelectedFiles=true;this._history.remove(uiSourceCode.uri());this._updateHistory();},_editorSelectedByUserAction:function()
-{this._userSelectedFiles=true;this._updateHistory();},_updateHistory:function()
-{var tabIds=this._tabbedPane.lastOpenedTabIds(WebInspector.TabbedEditorContainer.maximalPreviouslyViewedFilesCount);function tabIdToURI(tabId)
-{return this._files[tabId].uri();}
-this._history.update(tabIds.map(tabIdToURI.bind(this)));this._history.save(this._previouslyViewedFilesSetting);},_tooltipForFile:function(uiSourceCode)
-{return uiSourceCode.originURL();},_appendFileTab:function(uiSourceCode,userGesture)
-{var view=this._delegate.viewForFile(uiSourceCode);var title=this._titleForFile(uiSourceCode);var tooltip=this._tooltipForFile(uiSourceCode);var tabId=this._generateTabId();this._tabIds.put(uiSourceCode,tabId);this._files[tabId]=uiSourceCode;var savedSelectionRange=this._history.selectionRange(uiSourceCode.uri());if(savedSelectionRange)
-view.setSelection(savedSelectionRange);var savedScrollLineNumber=this._history.scrollLineNumber(uiSourceCode.uri());if(savedScrollLineNumber)
-view.scrollToLine(savedScrollLineNumber);this._tabbedPane.appendTab(tabId,title,view,tooltip,userGesture);this._updateFileTitle(uiSourceCode);this._addUISourceCodeListeners(uiSourceCode);return tabId;},_tabClosed:function(event)
-{var tabId=(event.data.tabId);var userGesture=(event.data.isUserGesture);var uiSourceCode=this._files[tabId];if(this._currentFile===uiSourceCode){this._removeScrollAndSelectionListeners();delete this._currentView;delete this._currentFile;}
-this._tabIds.remove(uiSourceCode);delete this._files[tabId];this._removeUISourceCodeListeners(uiSourceCode);this.dispatchEventToListeners(WebInspector.TabbedEditorContainer.Events.EditorClosed,uiSourceCode);if(userGesture)
-this._editorClosedByUserAction(uiSourceCode);},_tabSelected:function(event)
-{var tabId=(event.data.tabId);var userGesture=(event.data.isUserGesture);var uiSourceCode=this._files[tabId];this._innerShowFile(uiSourceCode,userGesture);},_addUISourceCodeListeners:function(uiSourceCode)
-{uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.TitleChanged,this._uiSourceCodeTitleChanged,this);uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._uiSourceCodeWorkingCopyChanged,this);uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._uiSourceCodeWorkingCopyCommitted,this);uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.SavedStateUpdated,this._uiSourceCodeSavedStateUpdated,this);uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._uiSourceCodeFormattedChanged,this);},_removeUISourceCodeListeners:function(uiSourceCode)
-{uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.TitleChanged,this._uiSourceCodeTitleChanged,this);uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._uiSourceCodeWorkingCopyChanged,this);uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._uiSourceCodeWorkingCopyCommitted,this);uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.SavedStateUpdated,this._uiSourceCodeSavedStateUpdated,this);uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._uiSourceCodeFormattedChanged,this);},_updateFileTitle:function(uiSourceCode)
-{var tabId=this._tabIds.get(uiSourceCode);if(tabId){var title=this._titleForFile(uiSourceCode);this._tabbedPane.changeTabTitle(tabId,title);if(uiSourceCode.hasUnsavedCommittedChanges())
-this._tabbedPane.setTabIcon(tabId,"editor-container-unsaved-committed-changes-icon",WebInspector.UIString("Changes to this file were not saved to file system."));else
-this._tabbedPane.setTabIcon(tabId,"");}},_uiSourceCodeTitleChanged:function(event)
-{var uiSourceCode=(event.target);this._updateFileTitle(uiSourceCode);this._updateHistory();},_uiSourceCodeWorkingCopyChanged:function(event)
-{var uiSourceCode=(event.target);this._updateFileTitle(uiSourceCode);},_uiSourceCodeWorkingCopyCommitted:function(event)
-{var uiSourceCode=(event.target);this._updateFileTitle(uiSourceCode);},_uiSourceCodeSavedStateUpdated:function(event)
-{var uiSourceCode=(event.target);this._updateFileTitle(uiSourceCode);},_uiSourceCodeFormattedChanged:function(event)
-{var uiSourceCode=(event.target);this._updateFileTitle(uiSourceCode);},reset:function()
-{delete this._userSelectedFiles;},_generateTabId:function()
-{return"tab_"+(WebInspector.TabbedEditorContainer._tabId++);},currentFile:function()
-{return this._currentFile;},__proto__:WebInspector.Object.prototype}
-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):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;}}
-WebInspector.TabbedEditorContainer.History=function(items)
-{this._items=items;this._rebuildItemIndex();}
-WebInspector.TabbedEditorContainer.History.fromObject=function(serializedHistory)
-{var items=[];for(var i=0;i<serializedHistory.length;++i)
-items.push(WebInspector.TabbedEditorContainer.HistoryItem.fromObject(serializedHistory[i]));return new WebInspector.TabbedEditorContainer.History(items);}
-WebInspector.TabbedEditorContainer.History.prototype={index:function(url)
-{var index=this._itemsIndex[url];if(typeof index==="number")
-return index;return-1;},_rebuildItemIndex:function()
-{this._itemsIndex={};for(var i=0;i<this._items.length;++i){console.assert(!this._itemsIndex.hasOwnProperty(this._items[i].url));this._itemsIndex[this._items[i].url]=i;}},selectionRange:function(url)
-{var index=this.index(url);return index!==-1?this._items[index].selectionRange:undefined;},updateSelectionRange:function(url,selectionRange)
-{if(!selectionRange)
-return;var index=this.index(url);if(index===-1)
-return;this._items[index].selectionRange=selectionRange;},scrollLineNumber:function(url)
-{var index=this.index(url);return index!==-1?this._items[index].scrollLineNumber:undefined;},updateScrollLineNumber:function(url,scrollLineNumber)
-{var index=this.index(url);if(index===-1)
-return;this._items[index].scrollLineNumber=scrollLineNumber;},update:function(urls)
-{for(var i=urls.length-1;i>=0;--i){var index=this.index(urls[i]);var item;if(index!==-1){item=this._items[index];this._items.splice(index,1);}else
-item=new WebInspector.TabbedEditorContainer.HistoryItem(urls[i]);this._items.unshift(item);this._rebuildItemIndex();}},remove:function(url)
-{var index=this.index(url);if(index!==-1){this._items.splice(index,1);this._rebuildItemIndex();}},save:function(setting)
-{setting.set(this._serializeToObject());},_serializeToObject:function()
-{var serializedHistory=[];for(var i=0;i<this._items.length;++i){var serializedItem=this._items[i].serializeToObject();if(serializedItem)
-serializedHistory.push(serializedItem);if(serializedHistory.length===WebInspector.TabbedEditorContainer.maximalPreviouslyViewedFilesCount)
-break;}
-return serializedHistory;},_urls:function()
-{var result=[];for(var i=0;i<this._items.length;++i)
-result.push(this._items[i].url);return result;}}
-WebInspector.EditorContainerTabDelegate=function(editorContainer)
-{this._editorContainer=editorContainer;}
-WebInspector.EditorContainerTabDelegate.prototype={closeTabs:function(tabbedPane,ids)
-{this._editorContainer._closeTabs(ids);}};WebInspector.WatchExpressionsSidebarPane=function()
-{WebInspector.SidebarPane.call(this,WebInspector.UIString("Watch Expressions"));this.section=new WebInspector.WatchExpressionsSection();this.bodyElement.appendChild(this.section.element);var refreshButton=document.createElement("button");refreshButton.className="pane-title-button refresh";refreshButton.addEventListener("click",this._refreshButtonClicked.bind(this),false);refreshButton.title=WebInspector.UIString("Refresh");this.titleElement.appendChild(refreshButton);var addButton=document.createElement("button");addButton.className="pane-title-button add";addButton.addEventListener("click",this._addButtonClicked.bind(this),false);this.titleElement.appendChild(addButton);addButton.title=WebInspector.UIString("Add watch expression");this._requiresUpdate=true;}
-WebInspector.WatchExpressionsSidebarPane.prototype={wasShown:function()
-{this._refreshExpressionsIfNeeded();},reset:function()
-{this.refreshExpressions();},refreshExpressions:function()
-{this._requiresUpdate=true;this._refreshExpressionsIfNeeded();},addExpression:function(expression)
-{this.section.addExpression(expression);this.expand();},_refreshExpressionsIfNeeded:function()
-{if(this._requiresUpdate&&this.isShowing()){this.section.update();delete this._requiresUpdate;}else
-this._requiresUpdate=true;},_addButtonClicked:function(event)
-{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.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)
-{if(!result)
-return;var property=new WebInspector.RemoteObjectProperty(expression,result);property.watchIndex=watchIndex;property.wasThrown=wasThrown;properties.push(property);if(properties.length==propertyCount){this.updateProperties(properties,[],WebInspector.WatchExpressionTreeElement,WebInspector.WatchExpressionsSection.CompareProperties);if(this._newExpressionAdded){delete this._newExpressionAdded;var treeElement=this.findAddedTreeElement();if(treeElement)
-treeElement.startEditing();}
-if(this._lastMouseMovePageY)
-this._updateHoveredElement(this._lastMouseMovePageY);}}
-RuntimeAgent.releaseObjectGroup(this._watchObjectGroupId)
-var properties=[];var propertyCount=0;for(var i=0;i<this.watchExpressions.length;++i){if(!this.watchExpressions[i])
-continue;++propertyCount;}
-for(var i=0;i<this.watchExpressions.length;++i){var expression=this.watchExpressions[i];if(!expression)
-continue;WebInspector.runtimeModel.evaluate(expression,this._watchObjectGroupId,false,true,false,false,appendResult.bind(this,expression,i));}
-if(!propertyCount){if(!this.emptyElement.parentNode)
-this.element.appendChild(this.emptyElement);}else{if(this.emptyElement.parentNode)
-this.element.removeChild(this.emptyElement);}
-this.expanded=(propertyCount!=0);},addExpression:function(expression)
-{this.watchExpressions.push(expression);this.saveExpressions();this.update();},addNewExpressionAndEdit:function()
-{this._newExpressionAdded=true;this.watchExpressions.push(WebInspector.WatchExpressionsSection.NewWatchExpression);this.update();},_sectionDoubleClick:function(event)
-{if(event.target!==this.element&&event.target!==this.propertiesElement&&event.target!==this.emptyElement)
-return;event.consume();this.addNewExpressionAndEdit();},updateExpression:function(element,value)
-{if(value===null){var index=element.property.watchIndex;this.watchExpressions.splice(index,1);}
-else
-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];}
-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.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.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)
-{if(propertyA.watchIndex==propertyB.watchIndex)
-return 0;else if(propertyA.watchIndex<propertyB.watchIndex)
-return-1;else
-return 1;}
-WebInspector.WatchExpressionTreeElement=function(property)
-{WebInspector.ObjectPropertyTreeElement.call(this,property);}
-WebInspector.WatchExpressionTreeElement.prototype={onexpand:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.onexpand.call(this);this.treeOutline.section._expandedExpressions[this._expression()]=true;},oncollapse:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.oncollapse.call(this);delete this.treeOutline.section._expandedExpressions[this._expression()];},onattach:function()
-{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.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)
-{var contextMenu=new WebInspector.ContextMenu(event);this.populateContextMenu(contextMenu);contextMenu.show();},_deleteAllButtonClicked:function()
-{this.treeOutline.section._deleteAllExpressions();},_deleteButtonClicked:function()
-{this.treeOutline.section.updateExpression(this,null);},renderPromptAsBlock:function()
-{return true;},elementAndValueToEdit:function(event)
-{return[this.nameElement,this.property.name.trim()];},editingCancelled:function(element,context)
-{if(!context.elementToEdit.textContent)
-this.treeOutline.section.updateExpression(this,null);WebInspector.ObjectPropertyTreeElement.prototype.editingCancelled.call(this,element,context);},applyExpression:function(expression,updateInterface)
-{expression=expression.trim();if(!expression)
-expression=null;this.property.name=expression;this.treeOutline.section.updateExpression(this,expression);},__proto__:WebInspector.ObjectPropertyTreeElement.prototype}
-WebInspector.WatchedPropertyTreeElement=function(property)
-{WebInspector.ObjectPropertyTreeElement.call(this,property);}
-WebInspector.WatchedPropertyTreeElement.prototype={onattach:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this);if(this.hasChildren&&this.propertyPath()in this.treeOutline.section._expandedProperties)
-this.expand();},onexpand:function()
-{WebInspector.ObjectPropertyTreeElement.prototype.onexpand.call(this);this.treeOutline.section._expandedProperties[this.propertyPath()]=true;},oncollapse:function()
-{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.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)
-{this._idToWorkerItem={};this._workerListElement.removeChildren();},_addWorker:function(workerId,url,inspectorConnected)
-{var item=this._workerListElement.createChild("div","dedicated-worker-item");var link=item.createChild("a");link.textContent=url;link.href="#";link.target="_blank";link.addEventListener("click",this._workerItemClicked.bind(this,workerId),true);this._idToWorkerItem[workerId]=item;},_workerItemClicked:function(workerId,event)
-{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;}
-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.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]);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,details.asyncStackTrace);function didCreateBreakpointHitStatusMessage(element)
-{this.sidebarPanes.callstack.setStatus(element);}
-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{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()
-{this._paused=false;this._waitingToPause=false;this._stepping=false;this._clearInterface();this._toggleDebuggerSidebarButton.setEnabled(true);},_debuggerWasEnabled:function()
-{this._updateDebuggerButtons();},_debuggerWasDisabled:function()
-{this._debuggerReset();},_debuggerReset:function()
-{this._debuggerResumed();this.sidebarPanes.watchExpressions.reset();delete this._skipExecutionLineRevealing;},_projectWillReset:function(event)
-{var project=event.data;var uiSourceCodes=project.uiSourceCodes();this._removeUISourceCodes(uiSourceCodes);if(project.type()===WebInspector.projectTypes.Network)
-this._editorContainer.reset();},get visibleView()
-{return this._editorContainer.visibleView;},_updateScriptViewStatusBarItems:function()
-{this._scriptViewStatusBarItemsContainer.removeChildren();this._scriptViewStatusBarTextContainer.removeChildren();var sourceFrame=this.visibleView;if(sourceFrame){var statusBarItems=sourceFrame.statusBarItems()||[];for(var i=0;i<statusBarItems.length;++i)
-this._scriptViewStatusBarItemsContainer.appendChild(statusBarItems[i]);var statusBarText=sourceFrame.statusBarText();if(statusBarText)
-this._scriptViewStatusBarTextContainer.appendChild(statusBarText);}},showAnchorLocation:function(anchor)
-{if(!anchor.uiSourceCode){var uiSourceCode=WebInspector.workspace.uiSourceCodeForURL(anchor.href);if(uiSourceCode)
-anchor.uiSourceCode=uiSourceCode;}
-if(!anchor.uiSourceCode)
-return false;this._showSourceLocation(anchor.uiSourceCode,anchor.lineNumber,anchor.columnNumber);return true;},showUISourceCode:function(uiSourceCode,lineNumber,columnNumber,forceShowInPanel)
-{this._showSourceLocation(uiSourceCode,lineNumber,columnNumber,forceShowInPanel);},_showEditor:function(forceShowInPanel)
-{if(this.sourcesView.isShowing())
-return;if(this._canShowEditorInDrawer()&&!forceShowInPanel){var drawerEditorView=new WebInspector.DrawerEditorView();this.sourcesView.show(drawerEditorView.element);WebInspector.inspectorView.showCloseableViewInDrawer("editor",WebInspector.UIString("Editor"),drawerEditorView);}else{WebInspector.showPanel("sources");}},currentUISourceCode:function()
-{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);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.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);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)
-return;if(this._sourceFrameMatchesUISourceCode(oldSourceFrame,uiSourceCode)){oldSourceFrame.setHighlighterType(uiSourceCode.highlighterType());}else{this._editorContainer.removeUISourceCode(uiSourceCode);this._removeSourceFrame(uiSourceCode);}},viewForFile:function(uiSourceCode)
-{return this._getOrCreateSourceFrame(uiSourceCode);},_removeSourceFrame:function(uiSourceCode)
-{var sourceFrame=this._sourceFramesByUISourceCode.get(uiSourceCode);if(!sourceFrame)
-return;this._sourceFramesByUISourceCode.remove(uiSourceCode);sourceFrame.dispose();},_clearCurrentExecutionLine:function()
-{if(this._executionSourceFrame)
-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._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);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);},_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,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()
-{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()
-{if(!this._paused)
-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()
-{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)
-return true;if(this._executionSourceFrame){var stepIntoMarkup=this._executionSourceFrame.stepIntoMarkup();if(stepIntoMarkup)
-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()
-{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);},_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.");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)
-{this._searchableView.updateSearchMatchesCount(0);if(!this.visibleView)
-return;this._searchView=this.visibleView;this._searchQuery=query;function finishedCallback(view,searchMatches)
-{if(!searchMatches)
-return;this._searchableView.updateSearchMatchesCount(searchMatches);}
-function currentMatchChanged(currentMatchIndex)
-{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();},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();},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)
-return;var stepIntoMarkup=this._executionSourceFrame.stepIntoMarkup();if(stepIntoMarkup)
-stepIntoMarkup.startIteratingSelection();},_onKeyUp:function(event)
-{if(event.keyCode!==WebInspector.KeyboardShortcut.Keys.CtrlOrMeta.code)
-return;if(!this._paused||!this._executionSourceFrame)
-return;var stepIntoMarkup=this._executionSourceFrame.stepIntoMarkup();if(!stepIntoMarkup)
-return;var currentPosition=stepIntoMarkup.getSelectedItemIndex();if(typeof currentPosition==="undefined"){stepIntoMarkup.stopIteratingSelection();}else{var rawLocation=stepIntoMarkup.getRawPosition(currentPosition);this.doStepIntoSelection(rawLocation);}},_toggleFormatSource:function()
-{delete this._skipExecutionLineRevealing;this._toggleFormatSourceButton.toggled=!this._toggleFormatSourceButton.toggled;var uiSourceCodes=this._workspace.uiSourceCodes();for(var i=0;i<uiSourceCodes.length;++i)
-uiSourceCodes[i].setFormatted(this._toggleFormatSourceButton.toggled);var currentFile=this._editorContainer.currentFile();WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.TogglePrettyPrint,enabled:this._toggleFormatSourceButton.toggled,url:currentFile?currentFile.originURL():null});},addToWatch:function(expression)
-{this.sidebarPanes.watchExpressions.addExpression(expression);},_toggleBreakpoint:function()
-{var sourceFrame=this.visibleView;if(!sourceFrame)
-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,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);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;function contentLoaded(content)
-{createFile.call(this,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)
-return;filePath=path;uiSourceCode=project.uiSourceCode(filePath);this._showSourceLocation(uiSourceCode);shouldHideNavigator=!this._navigatorController.isNavigatorPinned();if(this._navigatorController.isNavigatorHidden())
-this._navigatorController.showNavigatorOverlay();this._navigator.rename(uiSourceCode,callback.bind(this));}
-function callback(committed)
-{if(shouldHideNavigator)
-this._navigatorController.hideNavigatorOverlay();if(!committed){project.deleteFile(uiSourceCode);return;}
-this._recreateSourceFrameIfNeeded(uiSourceCode);this._navigator.updateIcon(uiSourceCode);this._showSourceLocation(uiSourceCode);}},_itemRenamingRequested:function(event)
-{var uiSourceCode=(event.data);var shouldHideNavigator=!this._navigatorController.isNavigatorPinned();if(this._navigatorController.isNavigatorHidden())
-this._navigatorController.showNavigatorOverlay();this._navigator.rename(uiSourceCode,callback.bind(this));function callback(committed)
-{if(shouldHideNavigator&&committed)
-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())
-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())
-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));}
-function filterProject(project)
-{return project.type()===WebInspector.projectTypes.FileSystem;}
-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))
-return;var uiSourceCode=(target);contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Local modifications\u2026":"Local Modifications\u2026"),this._showLocalHistory.bind(this,uiSourceCode));if(WebInspector.isolatedFileSystemManager.supportsFileSystems())
-this._appendUISourceCodeMappingItems(contextMenu,uiSourceCode);},_appendFunctionItems:function(contextMenu,target)
-{if(!(target instanceof WebInspector.RemoteObject))
-return;var remoteObject=(target);if(remoteObject.type!=="function")
-return;function didGetDetails(error,response)
-{if(error){console.error(error);return;}
-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()
-{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.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.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.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.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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TempStorageSharedWorker.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TempStorageSharedWorker.js
deleted file mode 100644 (file)
index 21225af..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TimelinePanel.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/TimelinePanel.js
deleted file mode 100644 (file)
index 0471af2..0000000
+++ /dev/null
@@ -1,963 +0,0 @@
-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)
-{this.element=document.createElement("div");this._swatch=this.element.createChild("div","swatch");this.element.createChild("span","title").textContent=title;this._color=color;this.checked=true;this.element.addEventListener("click",this._toggleCheckbox.bind(this),true);}
-WebInspector.SwatchCheckbox.Events={Changed:"Changed"}
-WebInspector.SwatchCheckbox.prototype={get checked()
-{return this._checked;},set checked(v)
-{this._checked=v;if(this._checked)
-this._swatch.style.backgroundColor=this._color;else
-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=[];}
-WebInspector.CounterUIBase.prototype={_toggleCounterGraph:function(event)
-{if(this._swatch.checked)
-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=[];},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._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._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)
-{this._onMouseMove(event);},_onMouseMove:function(event)
-{var x=event.x-event.target.offsetParent.offsetLeft
-this._markerXPosition=x;this._refreshCurrentValues();},_refreshCurrentValues:function()
-{if(!this._counters.length)
-return;if(this._markerXPosition===undefined)
-return;if(this._maximumIndex===-1)
-return;var i=this._recordIndexAt(this._markerXPosition);this._updateCurrentValue(this._counters[i]);this._highlightCurrentPositionOnGraphs(this._markerXPosition,i);},_updateCurrentValue:function(counterEntry)
-{for(var j=0;j<this._counterUI.length;j++)
-this._counterUI[j].updateCurrentValue(counterEntry);},_recordIndexAt:function(x)
-{var i;for(i=this._minimumIndex+1;i<=this._maximumIndex;i++){var statX=this._counters[i].x;if(x<statX)
-break;}
-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");},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");},__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)
-{if(!this.visible)
-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.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;}
-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;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+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;}
-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.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",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(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)
-{var childrenTime=0;var children=rawRecord["children"]||[];for(var i=0;i<children.length;++i){WebInspector.TimelineModel.aggregateTimeForRecord(total,children[i]);childrenTime+=WebInspector.TimelineModel.durationInSeconds(children[i]);}
-var categoryName=WebInspector.TimelinePresentationModel.recordStyle(rawRecord).category.name;var ownTime=WebInspector.TimelineModel.durationInSeconds(rawRecord)-childrenTime;total[categoryName]=(total[categoryName]||0)+ownTime;}
-WebInspector.TimelineModel.aggregateTimeByCategory=function(total,addend)
-{for(var category in addend)
-total[category]=(total[category]||0)+addend[category];}
-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));}
-this._clientInitiatedRecording=false;WebInspector.timelineManager.stop(this._fireRecordingStopped.bind(this));},get records()
-{return this._records;},_onRecordAdded:function(event)
-{if(this._collectionEnabled)
-this._addRecord((event.data));},_onStarted:function(event)
-{if(event.data){this._fireRecordingStarted();}},_onStopped:function(event)
-{if(event.data){this._fireRecordingStopped();}},_fireRecordingStarted:function()
-{this._collectionEnabled=true;this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordingStarted);},_fireRecordingStopped:function()
-{this._collectionEnabled=false;this.dispatchEventToListeners(WebInspector.TimelineModel.Events.RecordingStopped);},_addRecord:function(record)
-{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()
-{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)
-{var startTime=WebInspector.TimelineModel.startTimeInSeconds(record);var endTime=WebInspector.TimelineModel.endTimeInSeconds(record);if(this._minimumRecordTime===-1||startTime<this._minimumRecordTime)
-this._minimumRecordTime=startTime;if(this._maximumRecordTime===-1||endTime>this._maximumRecordTime)
-this._maximumRecordTime=endTime;},recordOffsetInSeconds:function(rawRecord)
-{return WebInspector.TimelineModel.startTimeInSeconds(rawRecord)-this._minimumRecordTime;},__proto__:WebInspector.Object.prototype}
-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.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;}
-if(this._firstChunk){this._version=items[0];this._firstChunk=false;this._model.reset();}
-for(var i=1,size=items.length;i<size;++i)
-this._model._addRecord(items[i]);},close:function(){}}
-WebInspector.TimelineModelLoadFromFileDelegate=function(model,progress)
-{this._model=model;this._progress=progress;}
-WebInspector.TimelineModelLoadFromFileDelegate.prototype={onTransferStarted:function()
-{this._progress.setTitle(WebInspector.UIString("Loading\u2026"));},onChunkTransferred:function(reader)
-{if(this._progress.isCanceled()){reader.cancel();this._progress.done();this._model.reset();return;}
-var totalSize=reader.fileSize();if(totalSize){this._progress.setTotalWork(totalSize);this._progress.setWorked(reader.loadedSize());}},onTransferFinished:function()
-{this._progress.done();},onError:function(reader,event)
-{this._progress.done();this._model.reset();switch(event.target.error.code){case FileError.NOT_FOUND_ERR:WebInspector.showErrorMessage(WebInspector.UIString("File \"%s\" not found.",reader.fileName()));break;case FileError.NOT_READABLE_ERR:WebInspector.showErrorMessage(WebInspector.UIString("File \"%s\" is not readable",reader.fileName()));break;case FileError.ABORT_ERR:break;default:WebInspector.showErrorMessage(WebInspector.UIString("An error occurred while reading the file \"%s\"",reader.fileName()));}}}
-WebInspector.TimelineSaver=function(stream)
-{this._stream=stream;}
-WebInspector.TimelineSaver.prototype={save:function(records,version)
-{this._records=records;this._recordIndex=0;this._prologue="["+JSON.stringify(version);this._writeNextChunk(this._stream);},_writeNextChunk:function(stream)
-{const separator=",\n";var data=[];var length=0;if(this._prologue){data.push(this._prologue);length+=this._prologue.length;delete this._prologue;}else{if(this._recordIndex===this._records.length){stream.close();return;}
-data.push("");}
-while(this._recordIndex<this._records.length){var item=JSON.stringify(this._records[this._recordIndex]);var itemLength=item.length+separator.length;if(length+itemLength>WebInspector.TimelineModel.TransferChunkLengthBytes)
-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-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();},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);},_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._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;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}
-WebInspector.TimelineOverviewCalculator=function()
-{}
-WebInspector.TimelineOverviewCalculator.prototype={computePosition:function(time)
-{return(time-this._minimumBoundary)/this.boundarySpan()*this._workingArea+this.paddingLeft;},computeBarGraphPercentages:function(record)
-{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,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(){},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.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"),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("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;}
-WebInspector.TimelinePresentationModel.categoryForRecord=function(record)
-{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;}
-WebInspector.TimelinePresentationModel.forAllRecords=function(recordsArray,preOrderCallback,postOrderCallback)
-{if(!recordsArray)
-return;var stack=[{array:recordsArray,index:0}];while(stack.length){var entry=stack[stack.length-1];var records=entry.array;if(entry.index<records.length){var record=records[entry.index];if(preOrderCallback&&preOrderCallback(record))
-return;if(record.children)
-stack.push({array:record.children,index:0,record:record});else if(postOrderCallback&&postOrderCallback(record))
-return;++entry.index;}else{if(entry.record&&postOrderCallback&&postOrderCallback(entry.record))
-return;stack.pop();}}}
-WebInspector.TimelinePresentationModel.needsPreviewElement=function(recordType)
-{if(!recordType)
-return false;const recordTypes=WebInspector.TimelineModel.RecordType;switch(recordType){case recordTypes.ScheduleResourceRequest:case recordTypes.ResourceSendRequest:case recordTypes.ResourceReceiveResponse:case recordTypes.ResourceReceivedData:case recordTypes.ResourceFinish:return true;default:return false;}}
-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.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.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)
-{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
-records=[record];var result=Array(records.length);for(var i=0;i<records.length;++i)
-result[i]=this._innerAddRecord(this._rootRecord,records[i]);return result;},_innerAddRecord:function(parentRecord,record)
-{const recordTypes=WebInspector.TimelineModel.RecordType;var isHiddenRecord=record.type in WebInspector.TimelinePresentationModel._hiddenRecords;var origin;var coalescingBucket;if(!isHiddenRecord){var newParentRecord=this._findParentRecord(record);if(newParentRecord){origin=parentRecord;parentRecord=newParentRecord;}
-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=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(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)
-currentRecord.aggregatedStats[category]+=aggregatedStats[category];}},_findCoalescedParent:function(record,newParent,bucket)
-{const coalescingThresholdSeconds=0.005;var lastRecord=bucket?this._coalescingBuckets[bucket]:newParent.children.peekLast();if(lastRecord&&lastRecord.coalesced)
-lastRecord=lastRecord.children.peekLast();var startTime=WebInspector.TimelineModel.startTimeInSeconds(record);var endTime=WebInspector.TimelineModel.endTimeInSeconds(record);if(!lastRecord)
-return null;if(lastRecord.type!==record.type)
-return null;if(lastRecord.endTime+coalescingThresholdSeconds<startTime)
-return null;if(endTime+coalescingThresholdSeconds<lastRecord.startTime)
-return null;if(WebInspector.TimelinePresentationModel.coalescingKeyForRecord(record)!==WebInspector.TimelinePresentationModel.coalescingKeyForRecord(lastRecord._record))
-return null;if(lastRecord.parent.coalesced)
-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;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;}
-if(records[i].type!==recordTypes.TimeEnd)
-continue;while(stack.length){var begin=stack.pop();if(result[begin].data.message!==records[i].data.message)
-continue;var timeEndRecord=(result.pop());var children=result.splice(begin+1,result.length-begin);result[begin]=this._createSynchronousTimeRecord(result[begin],timeEndRecord,children);break;}}
-return result;},_createSynchronousTimeRecord:function(beginRecord,endRecord,children)
-{return{type:beginRecord.type,startTime:beginRecord.startTime,endTime:endRecord.startTime,stackTrace:beginRecord.stackTrace,children:children,data:{message:beginRecord.data.message,isSynchronous:true},};},_findParentRecord:function(record)
-{if(!this._glueRecords)
-return null;var recordTypes=WebInspector.TimelineModel.RecordType;switch(record.type){case recordTypes.ResourceReceiveResponse:case recordTypes.ResourceFinish:case recordTypes.ResourceReceivedData:return this._sendRequestRecords[record.data["requestId"]];case recordTypes.ResourceSendRequest:return this._rootRecord;case recordTypes.TimerFire:return this._timerRecords[record.data["timerId"]];case recordTypes.ResourceSendRequest:return this._scheduledResourceRequests[record.data["url"]];case recordTypes.FireAnimationFrame:return this._requestAnimationFrameRecords[record.data["id"]];}},setGlueRecords:function(glue)
-{this._glueRecords=glue;},invalidateFilteredRecords:function()
-{delete this._filteredRecords;},filteredRecords:function()
-{if(this._filteredRecords)
-return this._filteredRecords;var recordsInWindow=[];var stack=[{children:this._rootRecord.children,index:0,parentIsCollapsed:false,parentRecord:{}}];var revealedDepth=0;function revealRecordsInStack(){for(var depth=revealedDepth+1;depth<stack.length;++depth){if(stack[depth-1].parentIsCollapsed){stack[depth].parentRecord.parent._expandable=true;return;}
-stack[depth-1].parentRecord.collapsed=false;recordsInWindow.push(stack[depth].parentRecord);stack[depth].windowLengthBeforeChildrenTraversal=recordsInWindow.length;stack[depth].parentIsRevealed=true;revealedDepth=depth;}}
-while(stack.length){var entry=stack[stack.length-1];var records=entry.children;if(records&&entry.index<records.length){var record=records[entry.index];++entry.index;if(this.isVisible(record)){record.parent._expandable=true;if(this._searchFilter)
-revealRecordsInStack();if(!entry.parentIsCollapsed){recordsInWindow.push(record);revealedDepth=stack.length;entry.parentRecord.collapsed=false;}}
-record._expandable=false;stack.push({children:record.children,index:0,parentIsCollapsed:(entry.parentIsCollapsed||(record.collapsed&&(!this._searchFilter||record.clicked))),parentRecord:record,windowLengthBeforeChildrenTraversal:recordsInWindow.length});}else{stack.pop();revealedDepth=Math.min(revealedDepth,stack.length-1);entry.parentRecord._visibleChildrenCount=recordsInWindow.length-entry.windowLengthBeforeChildrenTraversal;}}
-this._filteredRecords=recordsInWindow;return recordsInWindow;},filteredFrames:function(startTime,endTime)
-{function compareStartTime(value,object)
-{return value-object.startTime;}
-function compareEndTime(value,object)
-{return value-object.endTime;}
-var firstFrame=insertionIndexForObjectInListSortedByFunction(startTime,this._frames,compareStartTime);var lastFrame=insertionIndexForObjectInListSortedByFunction(endTime,this._frames,compareEndTime);while(lastFrame<this._frames.length&&this._frames[lastFrame].endTime<=endTime)
-++lastFrame;return this._frames.slice(firstFrame,lastFrame);},eventDividerRecords:function()
-{return this._eventDividerRecords;},isVisible:function(record)
-{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+=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
-parentRecord.children.push(this);}
-if(origin)
-this._origin=origin;this._selfTime=this.endTime-this.startTime;this._lastChildEndTime=this.endTime;this._startTimeOffset=this.startTime-presentationModel._minimumRecordTime;if(record.data){if(record.data["url"])
-this.url=record.data["url"];if(record.data["rootNode"])
-this._relatedBackendNodeId=record.data["rootNode"];else if(record.data["elementId"])
-this._relatedBackendNodeId=record.data["elementId"];}
-if(scriptDetails){this.scriptName=scriptDetails.scriptName;this.scriptLine=scriptDetails.scriptLine;}
-if(parentRecord&&parentRecord.callSiteStackTrace)
-this.callSiteStackTrace=parentRecord.callSiteStackTrace;var recordTypes=WebInspector.TimelineModel.RecordType;switch(record.type){case recordTypes.ResourceSendRequest:presentationModel._sendRequestRecords[record.data["requestId"]]=this;break;case recordTypes.ScheduleResourceRequest:presentationModel._scheduledResourceRequests[record.data["url"]]=this;break;case recordTypes.ResourceReceiveResponse:var sendRequestRecord=presentationModel._sendRequestRecords[record.data["requestId"]];if(sendRequestRecord){this.url=sendRequestRecord.url;sendRequestRecord._refreshDetails();if(sendRequestRecord.parent!==presentationModel._rootRecord&&sendRequestRecord.parent.type===recordTypes.ScheduleResourceRequest)
-sendRequestRecord.parent._refreshDetails();}
-break;case recordTypes.ResourceReceivedData:case recordTypes.ResourceFinish:var sendRequestRecord=presentationModel._sendRequestRecords[record.data["requestId"]];if(sendRequestRecord)
-this.url=sendRequestRecord.url;break;case recordTypes.TimerInstall:this.timeout=record.data["timeout"];this.singleShot=record.data["singleShot"];presentationModel._timerRecords[record.data["timerId"]]=this;break;case recordTypes.TimerFire:var timerInstalledRecord=presentationModel._timerRecords[record.data["timerId"]];if(timerInstalledRecord){this.callSiteStackTrace=timerInstalledRecord.stackTrace;this.timeout=timerInstalledRecord.timeout;this.singleShot=timerInstalledRecord.singleShot;}
-break;case recordTypes.RequestAnimationFrame:presentationModel._requestAnimationFrameRecords[record.data["id"]]=this;break;case recordTypes.FireAnimationFrame:var requestAnimationRecord=presentationModel._requestAnimationFrameRecords[record.data["id"]];if(requestAnimationRecord)
-this.callSiteStackTrace=requestAnimationRecord.stackTrace;break;case recordTypes.Time:if(record.data.isSynchronous)
-break;var message=record.data["message"];var oldReference=presentationModel._timeRecords[message];if(oldReference)
-break;presentationModel._timeRecords[message]=this;if(origin)
-presentationModel._timeRecordStack.push(this);break;case recordTypes.TimeEnd:var message=record.data["message"];var timeRecord=presentationModel._timeRecords[message];delete presentationModel._timeRecords[message];if(timeRecord){this.timeRecord=timeRecord;timeRecord.timeEndRecord=this;var intervalDuration=this.startTime-timeRecord.startTime;this.intervalDuration=intervalDuration;timeRecord.intervalDuration=intervalDuration;}
-break;case recordTypes.ScheduleStyleRecalculation:presentationModel._lastScheduleStyleRecalculation[this.frameId]=this;break;case recordTypes.RecalculateStyles:var scheduleStyleRecalculationRecord=presentationModel._lastScheduleStyleRecalculation[this.frameId];if(!scheduleStyleRecalculationRecord)
-break;this.callSiteStackTrace=scheduleStyleRecalculationRecord.stackTrace;break;case recordTypes.InvalidateLayout:var styleRecalcStack;if(!presentationModel._layoutInvalidateStack[this.frameId]){for(var outerRecord=parentRecord;outerRecord;outerRecord=record.parent){if(outerRecord.type===recordTypes.RecalculateStyles){styleRecalcStack=outerRecord.callSiteStackTrace;break;}}}
-presentationModel._layoutInvalidateStack[this.frameId]=styleRecalcStack||this.stackTrace;break;case recordTypes.Layout:var layoutInvalidateStack=presentationModel._layoutInvalidateStack[this.frameId];if(layoutInvalidateStack)
-this.callSiteStackTrace=layoutInvalidateStack;if(this.stackTrace)
-this.addWarning(WebInspector.UIString("Forced synchronous layout is a possible performance bottleneck."));presentationModel._layoutInvalidateStack[this.frameId]=null;this.highlightQuad=record.data.root||WebInspector.TimelinePresentationModel.quadFromRectData(record.data);this._relatedBackendNodeId=record.data["rootNode"];break;case recordTypes.AutosizeText:if(record.data.needsRelayout&&parentRecord.type===recordTypes.Layout)
-parentRecord.addWarning(WebInspector.UIString("Layout required two passes due to text autosizing, consider setting viewport."));break;case recordTypes.Paint:this.highlightQuad=record.data.clip||WebInspector.TimelinePresentationModel.quadFromRectData(record.data);break;case recordTypes.WebSocketCreate:this.webSocketURL=record.data["url"];if(typeof record.data["webSocketProtocol"]!=="undefined")
-this.webSocketProtocol=record.data["webSocketProtocol"];presentationModel._webSocketCreateRecords[record.data["identifier"]]=this;break;case recordTypes.WebSocketSendHandshakeRequest:case recordTypes.WebSocketReceiveHandshakeResponse:case recordTypes.WebSocketDestroy:var webSocketCreateRecord=presentationModel._webSocketCreateRecords[record.data["identifier"]];if(webSocketCreateRecord){this.webSocketURL=webSocketCreateRecord.webSocketURL;if(typeof webSocketCreateRecord.webSocketProtocol!=="undefined")
-this.webSocketProtocol=webSocketCreateRecord.webSocketProtocol;}
-break;}}
-WebInspector.TimelinePresentationModel.adoptRecord=function(newParent,record)
-{record.parent.children.splice(record.parent.children.indexOf(record));WebInspector.TimelinePresentationModel.insertRetrospectiveRecord(newParent,record);record.parent=newParent;}
-WebInspector.TimelinePresentationModel.insertRetrospectiveRecord=function(parent,record)
-{function compareStartTime(value,record)
-{return value<record.startTime?-1:1;}
-parent.children.splice(insertionIndexForObjectInListSortedByFunction(record.startTime,parent.children,compareStartTime),0,record);}
-WebInspector.TimelinePresentationModel.Record.prototype={get lastChildEndTime()
-{return this._lastChildEndTime;},set lastChildEndTime(time)
-{this._lastChildEndTime=time;},get selfTime()
-{return this.coalesced?this._lastChildEndTime-this.startTime:this._selfTime;},set selfTime(time)
-{this._selfTime=time;},get cpuTime()
-{return this._cpuTime;},isRoot:function()
-{return this.type===WebInspector.TimelineModel.RecordType.Root;},origin:function()
-{return this._origin||this.parent;},get children()
-{return this._children;},get visibleChildrenCount()
-{return this._visibleChildrenCount||0;},get expandable()
-{return!!this._expandable;},get category()
-{return WebInspector.TimelinePresentationModel.recordStyle(this._record).category},get title()
-{return this.type===WebInspector.TimelineModel.RecordType.TimeStamp?this._record.data["message"]:WebInspector.TimelinePresentationModel.recordStyle(this._record).title;},get startTime()
-{return WebInspector.TimelineModel.startTimeInSeconds(this._record);},get endTime()
-{return WebInspector.TimelineModel.endTimeInSeconds(this._record);},get isBackground()
-{return!!this._record.thread;},get data()
-{return this._record.data;},get type()
-{return this._record.type;},get frameId()
-{return this._record.frameId;},get usedHeapSizeDelta()
-{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());}},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 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"])
-contentHelper.appendTextRow(WebInspector.UIString("MIME Type"),this.data["mimeType"]);if(this.data["encodedDataLength"])
-contentHelper.appendTextRow(WebInspector.UIString("Encoded Data Length"),WebInspector.UIString("%d Bytes",this.data["encodedDataLength"]));break;case recordTypes.EvaluateScript:if(this.data&&this.url)
-contentHelper.appendElementRow(WebInspector.UIString("Script"),this._linkifyLocation(this.url,this.data["lineNumber"]));break;case recordTypes.Paint:var clip=this.data["clip"];if(clip){contentHelper.appendTextRow(WebInspector.UIString("Location"),WebInspector.UIString("(%d, %d)",clip[0],clip[1]));var clipWidth=WebInspector.TimelinePresentationModel.quadWidth(clip);var clipHeight=WebInspector.TimelinePresentationModel.quadHeight(clip);contentHelper.appendTextRow(WebInspector.UIString("Dimensions"),WebInspector.UIString("%d × %d",clipWidth,clipHeight));}else{if(typeof this.data["x"]!=="undefined"&&typeof this.data["y"]!=="undefined")
-contentHelper.appendTextRow(WebInspector.UIString("Location"),WebInspector.UIString("(%d, %d)",this.data["x"],this.data["y"]));if(typeof this.data["width"]!=="undefined"&&typeof this.data["height"]!=="undefined")
-contentHelper.appendTextRow(WebInspector.UIString("Dimensions"),WebInspector.UIString("%d\u2009\u00d7\u2009%d",this.data["width"],this.data["height"]));}
-case recordTypes.PaintSetup:case recordTypes.Rasterize:case recordTypes.ScrollLayer:relatedNodeLabel=WebInspector.UIString("Layer root");break;case recordTypes.AutosizeText:relatedNodeLabel=WebInspector.UIString("Root node");break;case recordTypes.DecodeImage:case recordTypes.ResizeImage:relatedNodeLabel=WebInspector.UIString("Image element");if(this.url)
-contentHelper.appendElementRow(WebInspector.UIString("Image URL"),WebInspector.linkifyResourceAsNode(this.url));break;case recordTypes.RecalculateStyles:if(this.data["elementCount"])
-contentHelper.appendTextRow(WebInspector.UIString("Elements affected"),this.data["elementCount"]);callStackLabel=WebInspector.UIString("Styles recalculation forced");break;case recordTypes.Layout:if(this.data["dirtyObjects"])
-contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layout"),this.data["dirtyObjects"]);if(this.data["totalObjects"])
-contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"),this.data["totalObjects"]);if(typeof this.data["partialLayout"]==="boolean"){contentHelper.appendTextRow(WebInspector.UIString("Layout scope"),this.data["partialLayout"]?WebInspector.UIString("Partial"):WebInspector.UIString("Whole document"));}
-callSiteStackTraceLabel=WebInspector.UIString("Layout invalidated");callStackLabel=WebInspector.UIString("Layout forced");relatedNodeLabel=WebInspector.UIString("Layout root");break;case recordTypes.Time:case recordTypes.TimeEnd:contentHelper.appendTextRow(WebInspector.UIString("Message"),this.data["message"]);if(typeof this.intervalDuration==="number")
-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.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._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);}
-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);}
-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: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);}
-return details||null;},_linkifyLocation:function(url,lineNumber,columnNumber)
-{columnNumber=columnNumber?columnNumber-1:0;return this._linkifier.linkifyLocation(url,lineNumber-1,columnNumber,"timeline-details");},_linkifyCallFrame:function(callFrame)
-{return this._linkifyLocation(callFrame.url,callFrame.lineNumber,callFrame.columnNumber);},_linkifyTopCallFrame:function(defaultValue)
-{if(this.stackTrace)
-return this._linkifyCallFrame(this.stackTrace[0]);if(this.callSiteStackTrace)
-return this._linkifyCallFrame(this.callSiteStackTrace[0]);return defaultValue;},_linkifyScriptLocation:function(defaultValue)
-{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)
-this._cpuTime+=this._aggregatedStats[category];this._aggregatedStats[this.category.name]=(this._aggregatedStats[this.category.name]||0)+this._selfTime;},get aggregatedStats()
-{return this._aggregatedStats;},addWarning:function(message)
-{if(this._warnings)
-this._warnings.push(message);else
-this._warnings=[message];for(var parent=this.parent;parent&&!parent._childHasWarnings;parent=parent.parent)
-parent._childHasWarnings=true;},hasWarnings:function()
-{return!!this._warnings;},childHasWarnings:function()
-{return this._childHasWarnings;}}
-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.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.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-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)
-{var recordTypes=WebInspector.TimelineModel.RecordType;switch(rawRecord.type)
-{case recordTypes.EventDispatch:return rawRecord.data["type"];case recordTypes.Time:return rawRecord.data["message"];case recordTypes.TimeStamp:return rawRecord.data["message"];default:return null;}}
-WebInspector.TimelinePresentationModel.quadWidth=function(quad)
-{return Math.round(Math.sqrt(Math.pow(quad[0]-quad[2],2)+Math.pow(quad[1]-quad[3],2)));}
-WebInspector.TimelinePresentationModel.quadHeight=function(quad)
-{return Math.round(Math.sqrt(Math.pow(quad[0]-quad[6],2)+Math.pow(quad[1]-quad[7],2)));}
-WebInspector.TimelinePresentationModel.quadFromRectData=function(data)
-{if(typeof data["x"]==="undefined"||typeof data["y"]==="undefined")
-return null;var x0=data["x"];var x1=data["x"]+data["width"];var y0=data["y"];var y1=data["y"]+data["height"];return[x0,y0,x1,y0,x1,y1,x0,y1];}
-WebInspector.TimelinePresentationModel.Filter=function()
-{}
-WebInspector.TimelinePresentationModel.Filter.prototype={accept:function(record){return false;}}
-WebInspector.TimelineCategory=function(name,title,overviewStripGroupIndex,borderColor,fillColorStop0,fillColorStop1)
-{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.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._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;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;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);}
-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._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._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.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._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(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.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.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);},_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.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);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._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*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 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={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;}},_adjustScrollPosition:function(totalHeight)
-{if((this._scrollTop+this._containerElementHeight)>totalHeight+1)
-this._containerElement.scrollTop=(totalHeight-this._containerElement.offsetHeight);},_getPopoverAnchor:function(element)
-{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 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.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)
-{popover.show(popupContent,anchor);}},_closeRecordDetails:function()
-{this._popoverHelper.hidePopover();},_injectCategoryStyles:function()
-{var style=document.createElement("style");var categories=WebInspector.TimelinePresentationModel.categories();style.textContent=Object.values(categories).map(WebInspector.TimelinePresentationModel.createStyleRuleForCategory).join("\n");document.head.appendChild(style);},jumpToNextSearchResult:function()
-{if(!this._searchResults||!this._searchResults.length)
-return;var index=this._selectedSearchResult?this._searchResults.indexOf(this._selectedSearchResult):-1;this._jumpToSearchResult(index+1);},jumpToPreviousSearchResult:function()
-{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];this._searchableView.updateCurrentMatchIndex(index);},_highlightSelectedSearchResult:function(selectRecord)
-{this._clearHighlight();if(this._searchFilter)
-return;var record=this._selectedSearchResult;if(!record)
-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;}
-if(!this._searchResults)
-this._updateSearchResults(shouldJump);this._highlightSelectedSearchResult(revealRecord);},_updateSearchResults:function(shouldJump)
-{var searchRegExp=this._searchRegExp;if(!searchRegExp)
-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;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.View.prototype}
-WebInspector.TimelineCalculator=function(model)
-{this._model=model;}
-WebInspector.TimelineCalculator._minWidth=5;WebInspector.TimelineCalculator.prototype={computePosition:function(time)
-{return(time-this._minimumBoundary)/this.boundarySpan()*this._workingArea+this.paddingLeft;},computeBarGraphPercentages:function(record)
-{var start=(record.startTime-this._minimumBoundary)/this.boundarySpan()*100;var end=(record.startTime+record.selfTime-this._minimumBoundary)/this.boundarySpan()*100;var endWithChildren=(record.lastChildEndTime-this._minimumBoundary)/this.boundarySpan()*100;var cpuWidth=record.coalesced?endWithChildren-start:record.cpuTime/this.boundarySpan()*100;return{start:start,end:end,endWithChildren:endWithChildren,cpuWidth:cpuWidth};},computeBarGraphWindowPosition:function(record)
-{var percentages=this.computeBarGraphPercentages(record);var widthAdjustment=0;var left=this.computePosition(record.startTime);var width=(percentages.end-percentages.start)/100*this._workingArea;if(width<WebInspector.TimelineCalculator._minWidth){widthAdjustment=WebInspector.TimelineCalculator._minWidth-width;width=WebInspector.TimelineCalculator._minWidth;}
-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,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(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();},_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,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._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.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()
-{}
-WebInspector.TimelineCategoryFilter.prototype={accept:function(record)
-{return!record.category.hidden&&record.type!==WebInspector.TimelineModel.RecordType.BeginFrame;}}
-WebInspector.TimelineIsLongFilter=function()
-{this._minimumRecordDuration=0;}
-WebInspector.TimelineIsLongFilter.prototype={setMinimumRecordDuration:function(value)
-{this._minimumRecordDuration=value;},accept:function(record)
-{return this._minimumRecordDuration?((record.lastChildEndTime-record.startTime)>=this._minimumRecordDuration):true;}}
-WebInspector.TimelineSearchFilter=function(regExp)
-{this._regExp=regExp;}
-WebInspector.TimelineSearchFilter.prototype={accept:function(record)
-{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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/accelerometer.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/accelerometer.css
deleted file mode 100644 (file)
index 9e40c40..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/auditsPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/auditsPanel.css
deleted file mode 100644 (file)
index 2a68a80..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc.  All rights reserved.
- * Copyright (C) 2009 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.
- */
-
-.audits-sidebar-tree-item .icon {
-    content: url(Images/resourcesTimeGraphIcon.png);
-}
-
-.audit-result-sidebar-tree-item .icon {
-    content: url(Images/resourceDocumentIcon.png);
-}
-
-.audit-launcher-view .audit-launcher-view-content {
-    padding: 0 0 0 16px;
-    white-space: nowrap;
-    display: -webkit-flex;
-    text-align: left;
-    -webkit-flex-direction: column;
-    flex: auto;
-}
-
-.audit-launcher-view h1 {
-    padding-top: 15px;
-    -webkit-flex: none;
-}
-
-.audit-launcher-view h1.no-audits {
-    text-align: center;
-    font-style: italic;
-    position: relative;
-    left: -8px;
-}
-
-.audit-launcher-view div.button-container {
-    width: 100%;
-    padding: 16px 0;
-    -webkit-flex: none;
-}
-
-.audit-launcher-view div.button-container > button {
-    -webkit-align-self: flex-start;
-    margin: 5px;
-}
-
-.audit-launcher-view fieldset.audit-categories-container {
-    position: relative;
-    top: 11px;
-    left: 0;
-    width: 100%;
-    overflow-y: auto;
-    border: 0 none;
-    -webkit-flex: none;
-}
-
-.audit-launcher-view button {
-    margin: 0 5px 0 0;
-}
-
-.audit-launcher-view 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)));
-}
-
-.panel-enabler-view.audit-launcher-view label {
-    padding: 0 0 5px 0;
-    margin: 0;
-    -webkit-flex: none;
-}
-
-.panel-enabler-view.audit-launcher-view label.disabled {
-    color: rgb(130, 130, 130);
-}
-
-.audit-launcher-view input[type="checkbox"] {
-    margin-left: 0;
-}
-
-.audit-result-view {
-    overflow: auto;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    display: none;
-}
-
-.audit-result-view.visible {
-    display: block;
-}
-
-.audit-result-view .severity-severe,
-.audit-result-view .severity-warning,
-.audit-result-view .severity-info {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    display: inline-block;
-    width: 10px;
-    height: 10px;
-    float: left;
-    margin-left: -28px;
-    margin-top: 3px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.audit-result-view .severity-severe,
-.audit-result-view .severity-warning,
-.audit-result-view .severity-info {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.audit-result-view .severity-severe {
-    background-position: -224px -96px;
-}
-
-.audit-result-view .severity-warning {
-    background-position: -246px -96px;
-}
-
-.audit-result-view .severity-info {
-    background-position: -235px -96px;
-}
-
-.audit-result-tree li.parent::before {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    opacity: 0.5;
-    float: left;
-    width: 8px;
-    height: 10px;
-    content: "a";
-    color: transparent;
-    margin-left: 3px;
-    margin-right: 4px;
-    position: relative;
-    top: 2px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.audit-result-tree li.parent::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.audit-result-tree li.parent::before {
-    background-position: -4px -96px;
-}
-
-.audit-result-tree li.parent.expanded::before {
-    background-position: -20px -96px;
-}
-
-.audit-result-tree {
-    line-height: 16px;
-    -webkit-user-select: text;
-}
-
-.audit-result-tree > ol {
-    position: relative;
-    padding: 2px 6px !important;
-    margin: 0;
-    cursor: default;
-    min-width: 100%;
-}
-
-.audit-result-tree,
-.audit-result-tree ol {
-    list-style-type: none;
-    -webkit-padding-start: 12px;
-    margin: 0;
-}
-
-.audit-result-tree ol.outline-disclosure {
-    -webkit-padding-start: 0;
-}
-
-.audit-result-tree .section .header {
-    padding-left: 13px;
-}
-
-.audit-result-tree .section .header::before {
-    left: 2px;
-}
-
-.audit-result-tree li {
-    padding: 0 0 0 14px;
-    margin-top: 1px;
-    margin-bottom: 1px;
-    word-wrap: break-word;
-    margin-left: -2px;
-}
-
-.audit-result-tree li.parent {
-    margin-left: -12px
-}
-
-.audit-result-tree ol.children {
-    display: none;
-}
-
-.audit-result-tree ol.children.expanded {
-    display: block;
-}
-
-.audit-result {
-    font-weight: bold;
-}
-
-.audit-launcher-view .progress-bar-container {
-    display: inline-block;
-}
-
-.audit-launcher-view .progress-bar-container .progress-bar-stop-button {
-    display: none;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breadcrumbList.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breadcrumbList.css
deleted file mode 100644 (file)
index 925d5a8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.
- */
-
-.crumbs {
-    display: inline-block;
-    pointer-events: auto;
-    cursor: default;
-    font-size: 11px;
-    line-height: 17px;
-}
-
-.crumbs .crumb {
-    display: inline-block;
-    padding: 0 7px;
-    height: 18px;
-    white-space: nowrap;
-}
-
-.crumbs .crumb.collapsed > * {
-    display: none;
-}
-
-.crumbs .crumb.collapsed::before {
-    content: "\2026";
-    font-weight: bold;
-}
-
-.crumbs .crumb.compact .extra {
-    display: none;
-}
-
-.crumbs .crumb.selected, .crumbs .crumb.selected:hover {
-    background-color: rgb(56, 121, 217);
-    color: white;
-    text-shadow: rgba(255, 255, 255, 0.5) 0 0 0;
-}
-
-.crumbs .crumb:hover {
-    background-color: rgb(216, 216, 216);
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breakpointsList.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/breakpointsList.css
deleted file mode 100644 (file)
index afe528c..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.
- */
-
-.sidebar-pane > .body .breakpoint-condition {
-    display: block;
-    margin-top: 4px;
-    margin-bottom: 4px;
-    margin-left: 23px;
-    margin-right: 8px;
-}
-
-#breakpoint-condition-input {
-    display: block;
-    margin-left: 0;
-    margin-right: 0;
-    outline: none !important;
-    border: 1px solid rgb(66%, 66%, 66%);
-}
-
-ol.breakpoint-list {
-    -webkit-padding-start: 0;
-    list-style: none;
-    margin: 0;
-    padding-bottom: 3px;
-}
-
-.breakpoints-list-deactivated {
-    background-color: rgb(245, 245, 245);
-    opacity: 0.3;
-}
-
-.breakpoint-list li {
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    padding: 2px 0;
-}
-
-.breakpoint-list li:hover {
-    background-color: rgba(56, 121, 217, 0.2);
-}
-
-.breakpoint-list .checkbox-elem {
-    font-size: 10px;
-    margin: 0 4px;
-    vertical-align: top;
-    position: relative;
-    z-index: 1;
-    top: 3px;
-}
-
-.breakpoint-list .source-text {
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    margin: 2px 0 0 20px;
-}
-
-.sidebar-pane .breakpoint-hit {
-    background-color: rgb(255, 255, 194);
-}
-
-li.breakpoint-hit .breakpoint-hit-marker {
-    background-color: rgb(255, 255, 194);
-    height: 18px;
-    left: 0;
-    margin-top: -16px;
-    position: absolute;
-    right: 0;
-    z-index: -1;
-}
-
-.event-listener-breakpoints.properties-tree .children li {
-    margin-left: 12px;
-    height: 16px;
-}
-
-.event-listener-breakpoints .checkbox-elem {
-    float: left;
-    top: -2px;
-    position: relative;
-    left: -1px;
-    font-size: 10px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/buildSystemOnly.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/buildSystemOnly.js
deleted file mode 100644 (file)
index 7be07f7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * This flag notifies inspector that it was deployed with the help
- * of a build system. Build system flattenes all css and js files,
- * so in this case inspector has to correct paths for dynamic resource loading.
- */
-window.flattenImports = true;
-window.DEBUG = false;
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/canvasProfiler.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/canvasProfiler.css
deleted file mode 100644 (file)
index 22604b9..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-.canvas-profile-view,
-#canvas-replay-image-container {
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-#canvas-replay-image-container {
-    text-align: center;
-    background-color: black;
-    overflow: hidden;
-    padding: 5px 5px 10px 5px;
-    color: white;
-}
-
-.canvas-replay-image {
-    zoom: 100;
-    height: auto;
-    width: auto;
-    max-width: 100%;
-    max-height: 100%;
-    margin: auto;
-    display: block;
-}
-
-.canvas-debug-info {
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 6px;
-}
-
-.canvas-spinner-icon {
-    content: url(Images/spinnerActiveSelected.gif);
-    position: absolute;
-    width: 16px;
-    right: 4px;
-    bottom: 4px;
-}
-
-.canvas-replay-log {
-    position: absolute;
-    top: 24px;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.canvas-replay-log .data-grid {
-    border: none;
-}
-
-button.status-bar-item.canvas-sidebar-show-hide-button {
-    right: 15px;
-    z-index: 13;
-}
-
-button.status-bar-item.canvas-sidebar-show-hide-button.toggled-left {
-    right: 0;
-}
-
-.canvas-replay-button {
-    min-width: 32px;
-}
-
-.canvas-replay-first-step .glyph {
-    -webkit-mask-position: 0 -72px;
-    -webkit-transform: rotate(180deg);
-    top: 0;
-    bottom: 0;
-}
-.canvas-replay-next-step .glyph {
-    -webkit-mask-position: -64px -72px;
-}
-.canvas-replay-prev-step .glyph {
-    -webkit-mask-position: -96px -72px;
-}
-.canvas-replay-last-step .glyph {
-    -webkit-mask-position: 0 -72px;
-}
-.canvas-replay-prev-draw .glyph {
-    -webkit-mask-position: -128px -72px;
-    -webkit-transform: scaleX(-1);
-}
-.canvas-replay-next-draw .glyph {
-    -webkit-mask-position: -128px -72px;
-}
-.canvas-replay-state-prev .glyph {
-    -webkit-mask-position: -64px -48px;
-    -webkit-transform: scaleX(-1);
-}
-.canvas-replay-state-next .glyph {
-    -webkit-mask-position: -64px -48px;
-}
-.canvas-replay-state-refresh .glyph {
-    -webkit-mask-position: 0 0;
-}
-
-.canvas-popover-anchor {
-    position: absolute;
-    text-indent: 0;
-    padding: 0;
-    margin: 0;
-}
-.data-grid:focus tr.selected .canvas-popover-anchor {
-    background-color: #aaa !important;
-}
-
-.canvas-function-name {
-}
-
-.canvas-formatted-resource {
-    color: rgb(33%, 33%, 33%);
-}
-.canvas-formatted-resource.canvas-popover-anchor,
-.canvas-formatted-resource:hover {
-    color: rgb(38, 38, 38);
-    text-decoration: underline;
-    cursor: pointer;
-}
-
-/* Keep in sync with "console-formatted-*" CSS styles. */
-.canvas-formatted-object,
-.canvas-formatted-node,
-.canvas-formatted-array {
-    color: #222;
-}
-.canvas-formatted-number {
-    color: rgb(28, 0, 207);
-}
-.canvas-formatted-string,
-.canvas-formatted-regexp {
-    color: rgb(196, 26, 22);
-}
-.canvas-formatted-null,
-.canvas-formatted-undefined {
-    color: rgb(128, 128, 128);
-}
-.data-grid:focus tr.selected .canvas-call-argument,
-.data-grid:focus tr.selected .canvas-formatted-string {
-    color: inherit !important;
-}
-
-.canvas-replay-state-view .data-grid {
-    top: 23px;
-}
-
-.canvas-replay-state-view .data-grid .data-container tr:nth-child(odd).canvas-grid-node-highlighted {
-    -webkit-animation: "fadeout-odd" 2s 0s;
-    background-color: rgb(255, 255, 175);
-}
-
-.canvas-replay-state-view .data-grid .data-container tr:nth-child(even).canvas-grid-node-highlighted {
-    -webkit-animation: "fadeout-even" 2s 0s;
-    background-color: rgb(235, 235, 120);
-}
-
-@-webkit-keyframes fadeout-odd {
-    from { background-color: rgb(255, 255, 25); }
-    to { background-color: rgb(255, 255, 175); }
-}
-
-@-webkit-keyframes fadeout-even {
-    from { background-color: rgb(255, 255, 25); }
-    to { background-color: rgb(235, 235, 120); }
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cmdevtools.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cmdevtools.css
deleted file mode 100644 (file)
index 8d9501c..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-.CodeMirror * {
-  box-sizing: content-box;
-}
-
-.CodeMirror {
-  line-height: 1.2em !important;
-  background-color: transparent !important;
-}
-
-.CodeMirror .source-frame-eval-expression {
-  outline: 0px;
-  border: 1px solid rgb(163, 41, 34);
-  border-left-width: 0px;
-  border-right-width: 0px;
-}
-
-.CodeMirror .source-frame-eval-expression-end {
-  border-right-width: 1px;
-  margin-right: -1px;
-}
-
-.CodeMirror .source-frame-eval-expression-start {
-  border-left-width: 1px;
-  margin-left: -1px;
-}
-
-.CodeMirror-readonly .CodeMirror-cursor {
-    display: none;
-}
-
-.CodeMirror .CodeMirror-gutters {
-  border-right: 1px solid rgb(187, 187, 187);
-  background-color: rgb(240, 240, 240);
-}
-
-.CodeMirror .CodeMirror-linenumber {
-  color: rgb(128, 128, 128);
-}
-
-.CodeMirror-linenumber {
-  min-width: 22px !important;
-}
-
-.cm-highlight {
-  -webkit-animation: "fadeout" 2s 0s;
-}
-@-webkit-keyframes fadeout {
-    from {background-color: rgb(255, 255, 120); }
-    to { background-color: white; }
-}
-
-.cm-breakpoint .CodeMirror-linenumber {
-  color: white;
-  border-width: 1px 4px 1px 1px !important;
-  -webkit-border-image: url(Images/breakpoint2.png) 1 4 1 1;
-  margin: 0px 0px 0px 3px !important;
-  padding-right: 3px;
-  padding-left: 1px;
-  height: 11px;
-  line-height: 12px !important;
-}
-
-.cm-breakpoint.cm-breakpoint-conditional .CodeMirror-linenumber {
-  -webkit-border-image: url(Images/breakpointConditional2.png) 1 4 1 1;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.cm-breakpoint .CodeMirror-linenumber {
-  -webkit-border-image: url(Images/breakpoint2_2x.png) 2 8 2 2;
-}
-.cm-breakpoint.cm-breakpoint-conditional .CodeMirror-linenumber {
-  -webkit-border-image: url(Images/breakpointConditional2_2x.png) 2 8 2 2;
-}
-} /* media */
-
-.cm-breakpoint-disabled .CodeMirror-linenumber {
-  opacity: 0.5;
-}
-
-.breakpoints-deactivated .cm-breakpoint .CodeMirror-linenumber {
-    opacity: 0.5;
-}
-
-.breakpoints-deactivated .cm-breakpoint-disabled .CodeMirror-linenumber {
-    opacity: 0.3;
-}
-
-.CodeMirror-matchingbracket {
-  border-bottom: 1px solid black;
-  color: #222 !important;
-}
-
-.CodeMirror-nonmatchingbracket {
-  color: #222 !important;
-}
-
-.cm-whitespace::before {
-    position: absolute;
-    pointer-events: none;
-    color: rgb(175, 175, 175);
-}
-
-.cm-tab {
-    position: relative;
-}
-
-.cm-tab:before {
-    display: none;
-    content: ".";
-    color: transparent;
-    border-bottom: 1px solid rgb(175, 175, 175);
-    position: absolute;
-    width: 90%;
-    bottom: 50%;
-    left: 5%;
-}
-
-.show-whitespaces .CodeMirror .cm-tab:before {
-    display: block !important;
-}
-
-.cm-execution-line {
-    background-color: rgb(171, 191, 254) !important;
-    outline: 1px solid rgb(64, 115, 244);
-}
-
-.cm-execution-line .CodeMirror-linenumber {
-    border-right: 1px solid rgb(64, 115, 244);
-}
-
-.cm-token-highlight {
-    position: relative;
-}
-
-.cm-token-highlight:before {
-    position: absolute;
-    border: 1px solid gray;
-    border-radius: 3px;
-    top: 0px;
-    bottom: -1px;
-    left: 0px;
-    right: 0px;
-    content: "";
-}
-
-.cm-line-with-selection .cm-column-with-selection:before {
-    border: none;
-}
-
-.cm-search-highlight {
-    position: relative;
-}
-
-.cm-search-highlight:before {
-    position: absolute;
-    border-top-style: solid;
-    border-bottom-style: solid;
-    border-top-color: gray;
-    border-bottom-color: gray;
-    border-top-width: 1px;
-    border-bottom-width: 1px;
-    top: -1px;
-    bottom: 0px;
-    left: 0px;
-    right: 0px;
-    content: "";
-}
-
-.cm-search-highlight-full:before {
-    border: 1px solid gray;
-    border-radius: 3px;
-}
-
-.cm-search-highlight-start:before {
-    border-left-width: 1px;
-    border-top-left-radius: 2px;
-    border-bottom-left-radius: 2px;
-    border-left-style: solid;
-    border-left-color: gray;
-}
-
-.cm-search-highlight-end:before {
-    border-right-width: 1px;
-    border-top-right-radius: 2px;
-    border-bottom-right-radius: 2px;
-    border-right-style: solid;
-    border-right-color: gray;
-}
-
-.cm-line-with-selection .cm-column-with-selection.cm-search-highlight-full:before {
-    border-radius: 1px;
-}
-
-.cm-line-with-selection .cm-column-with-selection.cm-search-highlight-start:before {
-    border-top-left-radius: 1px;
-    border-bottom-left-radius: 1px;
-}
-
-.cm-line-with-selection .cm-column-with-selection.cm-search-highlight-end:before {
-    border-top-right-radius: 1px;
-    border-bottom-right-radius: 1px;
-}
-
-.cm-line-with-selection .cm-column-with-selection.cm-search-highlight:before {
-    margin: -1px -1px -1px -1px;
-    background-color: rgb(241, 234, 0);
-    z-index: -1;
-}
-
-.CodeMirror .webkit-html-message-bubble {
-    box-shadow: black 0px 2px 5px;
-    border-radius: 9px;
-    -webkit-border-fit: lines;
-    font-size: 10px;
-    font-family: Lucida Grande, sans-serif;
-    font-weight: bold;
-    margin: 3px 10px;
-    padding: 1px 2px 0;
-    z-index: 5;
-}
-
-.CodeMirror .webkit-html-message-bubble img {
-    position: relative;
-    top: 1px;
-    margin-right: 2px;
-}
-
-.CodeMirror .webkit-html-warning-message {
-    background-color: rgb(100%, 62%, 42%);
-    border: 2px solid rgb(100%, 52%, 21%);
-}
-
-.CodeMirror .webkit-html-error-message {
-    background-color: rgb(100%, 42%, 42%);
-    border: 2px solid rgb(100%, 31%, 31%);
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/codemirror.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/codemirror.css
deleted file mode 100644 (file)
index 23eaf74..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/* BASICS */
-
-.CodeMirror {
-  /* Set height, width, borders, and global font properties here */
-  font-family: monospace;
-  height: 300px;
-}
-.CodeMirror-scroll {
-  /* Set scrolling behaviour here */
-  overflow: auto;
-}
-
-/* PADDING */
-
-.CodeMirror-lines {
-  padding: 4px 0; /* Vertical padding around content */
-}
-.CodeMirror pre {
-  padding: 0 4px; /* Horizontal padding of content */
-}
-
-.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
-  background-color: white; /* The little square between H and V scrollbars */
-}
-
-/* GUTTER */
-
-.CodeMirror-gutters {
-  border-right: 1px solid #ddd;
-  background-color: #f7f7f7;
-  white-space: nowrap;
-}
-.CodeMirror-linenumbers {}
-.CodeMirror-linenumber {
-  padding: 0 3px 0 5px;
-  min-width: 20px;
-  text-align: right;
-  color: #999;
-}
-
-/* CURSOR */
-
-.CodeMirror div.CodeMirror-cursor {
-  border-left: 1px solid black;
-  z-index: 3;
-}
-/* Shown when moving in bi-directional text */
-.CodeMirror div.CodeMirror-secondarycursor {
-  border-left: 1px solid silver;
-}
-.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
-  width: auto;
-  border: 0;
-  background: #7e7;
-  z-index: 1;
-}
-/* Can style cursor different in overwrite (non-insert) mode */
-.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {}
-
-.cm-tab { display: inline-block; }
-
-/* DEFAULT THEME */
-
-.cm-s-default .cm-keyword {color: #708;}
-.cm-s-default .cm-atom {color: #219;}
-.cm-s-default .cm-number {color: #164;}
-.cm-s-default .cm-def {color: #00f;}
-.cm-s-default .cm-variable {color: black;}
-.cm-s-default .cm-variable-2 {color: #05a;}
-.cm-s-default .cm-variable-3 {color: #085;}
-.cm-s-default .cm-property {color: black;}
-.cm-s-default .cm-operator {color: black;}
-.cm-s-default .cm-comment {color: #a50;}
-.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-qualifier {color: #555;}
-.cm-s-default .cm-builtin {color: #30a;}
-.cm-s-default .cm-bracket {color: #997;}
-.cm-s-default .cm-tag {color: #170;}
-.cm-s-default .cm-attribute {color: #00c;}
-.cm-s-default .cm-header {color: blue;}
-.cm-s-default .cm-quote {color: #090;}
-.cm-s-default .cm-hr {color: #999;}
-.cm-s-default .cm-link {color: #00c;}
-
-.cm-negative {color: #d44;}
-.cm-positive {color: #292;}
-.cm-header, .cm-strong {font-weight: bold;}
-.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;}
-div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
-.CodeMirror-activeline-background {background: #e8f2ff;}
-
-/* STOP */
-
-/* The rest of this file contains styles related to the mechanics of
-   the editor. You probably shouldn't touch them. */
-
-.CodeMirror {
-  line-height: 1;
-  position: relative;
-  overflow: hidden;
-  background: white;
-  color: black;
-}
-
-.CodeMirror-scroll {
-  /* 30px is the magic margin used to hide the element's real scrollbars */
-  /* See overflow: hidden in .CodeMirror */
-  margin-bottom: -30px; margin-right: -30px;
-  padding-bottom: 30px; padding-right: 30px;
-  height: 100%;
-  outline: none; /* Prevent dragging from highlighting the element */
-  position: relative;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-}
-.CodeMirror-sizer {
-  position: relative;
-}
-
-/* The fake, visible scrollbars. Used to force redraw during scrolling
-   before actuall scrolling happens, thus preventing shaking and
-   flickering artifacts. */
-.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
-  position: absolute;
-  z-index: 6;
-  display: none;
-}
-.CodeMirror-vscrollbar {
-  right: 0; top: 0;
-  overflow-x: hidden;
-  overflow-y: scroll;
-}
-.CodeMirror-hscrollbar {
-  bottom: 0; left: 0;
-  overflow-y: hidden;
-  overflow-x: scroll;
-}
-.CodeMirror-scrollbar-filler {
-  right: 0; bottom: 0;
-}
-.CodeMirror-gutter-filler {
-  left: 0; bottom: 0;
-}
-
-.CodeMirror-gutters {
-  position: absolute; left: 0; top: 0;
-  padding-bottom: 30px;
-  z-index: 3;
-}
-.CodeMirror-gutter {
-  white-space: normal;
-  height: 100%;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-  padding-bottom: 30px;
-  margin-bottom: -32px;
-  display: inline-block;
-  /* Hack to make IE7 behave */
-  *zoom:1;
-  *display:inline;
-}
-.CodeMirror-gutter-elt {
-  position: absolute;
-  cursor: default;
-  z-index: 4;
-}
-
-.CodeMirror-lines {
-  cursor: text;
-}
-.CodeMirror pre {
-  /* Reset some styles that the rest of the page might have set */
-  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
-  border-width: 0;
-  background: transparent;
-  font-family: inherit;
-  font-size: inherit;
-  margin: 0;
-  white-space: pre;
-  word-wrap: normal;
-  line-height: inherit;
-  color: inherit;
-  z-index: 2;
-  position: relative;
-  overflow: visible;
-}
-.CodeMirror-wrap pre {
-  word-wrap: break-word;
-  white-space: pre-wrap;
-  word-break: normal;
-}
-.CodeMirror-code pre {
-  border-right: 30px solid transparent;
-  width: -webkit-fit-content;
-  width: -moz-fit-content;
-  width: fit-content;
-}
-.CodeMirror-wrap .CodeMirror-code pre {
-  border-right: none;
-  width: auto;
-}
-.CodeMirror-linebackground {
-  position: absolute;
-  left: 0; right: 0; top: 0; bottom: 0;
-  z-index: 0;
-}
-
-.CodeMirror-linewidget {
-  position: relative;
-  z-index: 2;
-  overflow: auto;
-}
-
-.CodeMirror-widget {}
-
-.CodeMirror-wrap .CodeMirror-scroll {
-  overflow-x: hidden;
-}
-
-.CodeMirror-measure {
-  position: absolute;
-  width: 100%;
-  height: 0;
-  overflow: hidden;
-  visibility: hidden;
-}
-.CodeMirror-measure pre { position: static; }
-
-.CodeMirror div.CodeMirror-cursor {
-  position: absolute;
-  visibility: hidden;
-  border-right: none;
-  width: 0;
-}
-.CodeMirror-focused div.CodeMirror-cursor {
-  visibility: visible;
-}
-
-.CodeMirror-selected { background: #d9d9d9; }
-.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
-
-.cm-searching {
-  background: #ffa;
-  background: rgba(255, 255, 0, .4);
-}
-
-/* IE7 hack to prevent it from returning funny offsetTops on the spans */
-.CodeMirror span { *vertical-align: text-bottom; }
-
-@media print {
-  /* Hide the cursor when printing */
-  .CodeMirror div.CodeMirror-cursor {
-    visibility: hidden;
-  }
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cssNamedFlows.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/cssNamedFlows.css
deleted file mode 100644 (file)
index 62b530f..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-.css-named-flow-collections-view .split-view-sidebar {
-    overflow-x: hidden;
-}
-
-.css-named-flow-collections-view .tabbed-pane-header {
-    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));
-}
-
-.css-named-flow-collections-view .info {
-    font-style: italic;
-    font-size: 10px;
-    margin-top: -5px;
-    position: absolute;
-    top: 50%;
-    text-align: center;
-    width: 100%;
-}
-
-.css-named-flow-collections-view .split-view-sidebar .sidebar-content {
-    bottom: 0;
-    left: 0;
-    padding: 0;
-    position: absolute;
-    right: 0;
-    top: 23px;
-}
-
-.css-named-flow-collections-view .split-view-sidebar .selection {
-    margin-left: -12px;
-    z-index: 0;
-}
-
-.css-named-flow-collections-view .split-view-contents .title {
-    position: relative;
-}
-
-.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before,
-.css-named-flow-collections-view .region-empty:before,
-.css-named-flow-collections-view .region-fit::before,
-.css-named-flow-collections-view .region-overset::before {
-    cursor: default;
-    float: left;
-    height: 10px;
-    margin-top: 1px;
-    opacity: 0.75;
-    position: relative;
-    vertical-align: middle;
-    z-index: 1;
-}
-
-.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before {
-    content: url(Images/namedFlowOverflow.png);
-    margin: 2px 3px 0 -13px;
-}
-
-.css-named-flow-collections-view .region-empty::before {
-    content: url(Images/regionEmpty.png);
-}
-
-.css-named-flow-collections-view .region-fit::before {
-    content: url(Images/regionFit.png);
-}
-
-.css-named-flow-collections-view .region-overset::before {
-    content: url(Images/regionOverset.png);
-}
-
-.css-named-flow-collections-view .split-view-contents .named-flow-element {
-    margin: 0 0 0 -24px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dataGrid.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/dataGrid.css
deleted file mode 100644 (file)
index a6ed3ad..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-.data-grid {
-    position: relative;
-    border: 1px solid #aaa;
-    font-size: 11px;
-    line-height: 120%;
-}
-
-.data-grid .highlight {
-    background-color: rgb(255, 230, 179);
-}
-
-.data-grid tr.selected .highlight {
-    background-color: transparent;
-}
-
-.data-grid table {
-    table-layout: fixed;
-    border-spacing: 0;
-    border-collapse: collapse;
-    width: 100%;
-}
-
-.data-grid .data-container {
-    position: absolute;
-    top: 16px;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    overflow-x: hidden;
-    overflow-y: overlay;
-}
-
-.data-grid.inline {
-    border-left: none;
-}
-
-.data-grid.inline .data-container {
-    position: static;
-}
-
-.data-grid.inline th.corner,
-.data-grid.inline td.corner {
-    display: none;
-}
-
-.data-grid th {
-    text-align: left;
-    background-image: url(Images/glossyHeader.png);
-    background-repeat: repeat-x;
-    border-left: 1px solid rgb(179, 179, 179);
-    border-bottom: 1px solid rgb(179, 179, 179);
-    height: 15px;
-    font-weight: normal;
-    vertical-align: middle;
-    padding: 0 4px;
-    white-space: nowrap;
-}
-
-.data-grid th.corner,
-.data-grid td.corner,
-.data-grid col.corner {
-    width: 14px;
-    padding-right: 0;
-    padding-left: 0;
-    border-left: 0 none transparent !important;
-}
-
-.data-grid tr.filler {
-    display: table-row !important;
-    height: auto !important;
-}
-
-.data-grid tr.filler td {
-    height: auto !important;
-    padding: 0 !important;
-}
-
-.data-grid table.data {
-    position: absolute;
-    left: 0;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    height: 100%;
-    border-top: 0 none transparent;
-    background-image: -webkit-gradient(linear, left top, left bottom, from(white), color-stop(0.5, white), color-stop(0.5, rgb(234, 243, 255)), to(rgb(234, 243, 255)));
-    background-size: 1px 32px;
-    table-layout: fixed;
-}
-
-.data-grid.inline table.data {
-    position: static;
-}
-
-.data-grid table.data tr {
-    display: none;
-}
-
-.data-grid table.data tr.revealed {
-    display: table-row;
-}
-
-.data-grid td {
-    vertical-align: top;
-    height: 16px; /* Keep in sync with .data-grid table.data @ background-size */
-    line-height: 13px;
-    padding: 1px 4px;
-    white-space: nowrap;
-    overflow: hidden;
-    border-left: 1px solid #aaa;
-    -webkit-user-select: text;
-}
-
-.data-grid th:first-child,
-.data-grid td:first-child {
-    border-left: none !important;
-}
-
-.data-grid td > div,
-.data-grid th > div {
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
-
-.data-grid td.editing > div {
-    text-overflow: clip;
-}
-
-.data-grid .center div {
-    text-align: center;
-}
-
-.data-grid .right div {
-    text-align: right;
-}
-
-.data-grid th.sortable div {
-    position: relative;
-}
-
-.data-grid th.sortable:active {
-    background-image: url(Images/glossyHeaderPressed.png);
-}
-.data-grid th.sort-ascending,
-.data-grid th.sort-descending {
-    border-left: 1px solid rgb(107, 140, 196);
-    border-bottom: 1px solid rgb(107, 140, 196);
-    background-image: url(Images/glossyHeaderSelected.png);
-    background-repeat: repeat-x;
-}
-
-.data-grid th.sortable.sort-ascending:active, .data-grid th.sortable.sort-descending:active {
-    background-image: url(Images/glossyHeaderSelectedPressed.png);
-}
-
-.data-grid th.sort-ascending > div::after,
-.data-grid th.sort-descending > div::after {
-    position: absolute;
-    top: 1px;
-    right: 0;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    opacity: 0.5;
-    width: 8px;
-    height: 10px;
-    content: "a";
-    color: transparent;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.data-grid th.sort-ascending > div::after,
-.data-grid th.sort-descending > div::after {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.data-grid th.sort-ascending > div::after {
-    background-position: -4px -108px;
-}
-
-.data-grid th.sort-descending > div::after {
-    background-position: -20px -96px;
-}
-
-.data-grid button {
-    line-height: 18px;
-    color: inherit;
-}
-
-body.inactive .data-grid th.sort-ascending,
-body.inactive .data-grid th.sort-descending {
-    background-image: url(Images/glossyHeader.png);
-    border-left: 1px solid rgb(179, 179, 179);
-    border-bottom: 1px solid rgb(179, 179, 179);
-}
-
-.data-grid tr.parent td.disclosure::before {
-    -webkit-user-select: none;
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 144px;
-    float: left;
-    width: 8px;
-    margin-right: 2px;
-    content: "a";
-    color: transparent;
-    position: relative;
-    top: 1px;
-}
-
-.data-grid tr.parent td.disclosure::before {
-    background-color: rgb(110, 110, 110);
-    -webkit-mask-position: -4px -96px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.data-grid tr.parent td.disclosure::before {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.data-grid tr.expanded td.disclosure::before {
-    -webkit-mask-position: -20px -96px;
-}
-
-.data-grid tr.selected {
-    background-color: rgb(212, 212, 212);
-    color: inherit;
-}
-
-.data-grid:focus tr.selected {
-    background-color: rgb(56, 121, 217);
-    color: white;
-}
-
-.data-grid:focus tr.selected a {
-    color: white;
-}
-
-.data-grid:focus tr.parent.selected td.disclosure::before {
-    background-color: white;
-    -webkit-mask-position: -4px -96px;
-}
-
-.data-grid:focus tr.expanded.selected td.disclosure::before {
-    background-color: white;
-    -webkit-mask-position: -20px -96px;
-}
-
-.data-grid tr:not(.parent) td.disclosure {
-    text-indent: 10px;
-}
-
-.data-grid-resizer {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    width: 5px;
-    z-index: 500;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools.css
new file mode 100755 (executable)
index 0000000..e228fee
--- /dev/null
@@ -0,0 +1,6372 @@
+/* audits.css */\r
+\r
+/*\r
+ * Copyright (C) 2008 Apple Inc.  All rights reserved.\r
+ * Copyright (C) 2009 Google Inc. All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are\r
+ * met:\r
+ *\r
+ *     * Redistributions of source code must retain the above copyright\r
+ * notice, this list of conditions and the following disclaimer.\r
+ *     * Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following disclaimer\r
+ * in the documentation and/or other materials provided with the\r
+ * distribution.\r
+ *     * Neither the name of Google Inc. nor the names of its\r
+ * contributors may be used to endorse or promote products derived from\r
+ * this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+.audits-sidebar-tree-item .icon {\r
+    content: url(Images/resourcesTimeGraphIcon.png);\r
+}\r
+\r
+.audit-result-sidebar-tree-item .icon {\r
+    content: url(Images/resourceDocumentIcon.png);\r
+}\r
+\r
+#audit-views {\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 200px;\r
+    bottom: 0;\r
+    overflow: auto;\r
+}\r
+\r
+.audit-launcher-view {\r
+    z-index: 1000;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    background-color: white;\r
+    font-size: 13px;\r
+    overflow-x: hidden;\r
+    overflow-y: overlay;\r
+    display: none;\r
+}\r
+\r
+.audit-launcher-view.visible {\r
+    display: block;\r
+}\r
+\r
+.audit-launcher-view .audit-launcher-view-content {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    padding: 0 0 0 16px;\r
+    white-space: nowrap;\r
+    display: -webkit-box;\r
+    -webkit-box-orient: vertical;\r
+}\r
+\r
+.audit-launcher-view h1 {\r
+    color: rgb(110, 116, 128);\r
+    font-size: 16px;\r
+    line-height: 20px;\r
+    font-weight: normal;\r
+    padding-top: 15px;\r
+}\r
+\r
+.audit-launcher-view h1.no-audits {\r
+    text-align: center;\r
+    font-style: italic;\r
+    position: relative;\r
+    left: -8px;\r
+}\r
+\r
+.audit-launcher-view div.button-container {\r
+    display: -webkit-box;\r
+    -webkit-box-orient: vertical;\r
+    width: 100%;\r
+    padding: 16px 0;\r
+}\r
+.audit-launcher-view .flexible-space {\r
+    -webkit-box-flex: 1;\r
+}\r
+\r
+.audit-launcher-view div.audit-categories-container {\r
+    position: relative;\r
+    top: 11px;\r
+    left: 0;\r
+    width: 100%;\r
+    overflow-y: auto;\r
+}\r
+\r
+.audit-launcher-view button {\r
+    color: rgb(6, 6, 6);\r
+    background-color: transparent;\r
+    border: 1px solid rgb(165, 165, 165);\r
+    background-color: rgb(237, 237, 237);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+    -webkit-border-radius: 12px;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+.audit-launcher-view button {\r
+    font-size: 13px;\r
+    padding: 3px 20px;\r
+    height: 24px;\r
+    margin: 0 5px 0 0;\r
+}\r
+\r
+.audit-launcher-view button:active {\r
+    background-color: rgb(215, 215, 215);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));\r
+}\r
+\r
+body.inactive .audit-launcher-view button, .audit-launcher-view button:disabled {\r
+    color: rgb(130, 130, 130);\r
+    border-color: rgb(212, 212, 212);\r
+    background-color: rgb(239, 239, 239);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235)));\r
+}\r
+\r
+.audit-launcher-view label {\r
+    position: relative;\r
+    display: block;\r
+    text-align: left;\r
+    word-break: break-word;\r
+    padding: 0 0 5px 0;\r
+}\r
+\r
+.audit-launcher-view label.disabled {\r
+    color: rgb(130, 130, 130);\r
+}\r
+\r
+.audit-launcher-view input[type="checkbox"] {\r
+    margin-left: 0;\r
+}\r
+\r
+.audit-launcher-view input[type="radio"] {\r
+    height: 17px;\r
+    width: 17px;\r
+    border: 1px solid rgb(165, 165, 165);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+    -webkit-border-radius: 8px;\r
+    -webkit-appearance: none;\r
+    vertical-align: middle;\r
+    margin: 0 5px 5px 0;\r
+}\r
+\r
+.audit-launcher-view input[type="radio"]:active:not(:disabled) {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));\r
+}\r
+\r
+.audit-launcher-view input[type="radio"]:checked:not(:disabled), .audit-launcher-view input[type="radio"]:checked:disabled {\r
+    background: url(Images/radioDot.png) center no-repeat,\r
+                -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+}\r
+\r
+.audit-launcher-view .resource-progress > img {\r
+    content: url(Images/spinner.gif);\r
+    vertical-align: text-top;\r
+    margin: 0 4px 0 8px;\r
+}\r
+\r
+.audit-result-view {\r
+    overflow: auto;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    display: none;\r
+}\r
+\r
+.audit-result-view.visible {\r
+    display: block;\r
+}\r
+\r
+.audit-result-view .severity-severe {\r
+    content: url(Images/errorRedDot.png);\r
+}\r
+\r
+.audit-result-view .severity-warning {\r
+    content: url(Images/warningOrangeDot.png);\r
+}\r
+\r
+.audit-result-view .severity-info {\r
+    content: url(Images/successGreenDot.png);\r
+}\r
+\r
+.audit-result-tree li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 1px;\r
+    padding-right: 2px;\r
+}\r
+\r
+.audit-result-tree {\r
+    font-size: 11px;\r
+    line-height: 14px;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.audit-result-tree > ol {\r
+    position: relative;\r
+    padding: 2px 6px !important;\r
+    margin: 0;\r
+    color: rgb(84, 84, 84);\r
+    cursor: default;\r
+    min-width: 100%;\r
+}\r
+\r
+.audit-result-tree, .audit-result-tree ol {\r
+    list-style-type: none;\r
+    -webkit-padding-start: 12px;\r
+    margin: 0;\r
+}\r
+\r
+.audit-result-tree li {\r
+    padding: 0 0 0 14px;\r
+    margin-top: 1px;\r
+    margin-bottom: 1px;\r
+    word-wrap: break-word;\r
+    text-indent: -2px;\r
+}\r
+\r
+.audit-result-tree li.parent {\r
+    text-indent: -12px\r
+}\r
+\r
+.audit-result-tree li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 0;\r
+    padding-right: 2px;\r
+}\r
+\r
+.audit-result-tree li.parent.expanded::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+.audit-result-tree ol.children {\r
+    display: none;\r
+}\r
+\r
+.audit-result-tree ol.children.expanded {\r
+    display: block;\r
+}\r
+\r
+.audit-result {\r
+    font-weight: bold;\r
+    color: black;\r
+}\r
+\r
+.audit-result img {\r
+    float: left;\r
+    margin-left: -40px;\r
+    margin-top: -1px;\r
+}\r
+\r
+/* goToLineDialog.css */\r
+\r
+.go-to-line-dialog {\r
+    position: absolute;\r
+    top: 40%;\r
+    left: 40%;\r
+    z-index: 1900;\r
+\r
+    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#E9E9E9), to(#CFCFCF));\r
+    display: -webkit-box;\r
+    -webkit-box-orient: vertical;\r
+    padding: 10px;\r
+    border-radius: 10px;\r
+    border: 1px solid gray;\r
+    -webkit-box-shadow: rgb(40,40,40) 0px 0px 50px;\r
+\r
+    font-size: 11px;\r
+    font-family: 'Lucida Grande', sans-serif;\r
+}\r
+\r
+.go-to-line-dialog input {\r
+    font-size: 11px;\r
+}\r
+\r
+.go-to-line-dialog button {\r
+    font-size: 11px;\r
+    color: rgb(6, 6, 6);\r
+    border: 1px solid rgb(165, 165, 165);\r
+    background-color: rgb(237, 237, 237);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+    -webkit-border-radius: 12px;\r
+    -webkit-appearance: none;\r
+\r
+    padding: 3px 20px;\r
+    margin: 0 0 0 10px;\r
+}\r
+\r
+.go-to-line-dialog button:active {\r
+    background-color: rgb(215, 215, 215);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));\r
+}\r
+\r
+/* heapProfiler.css */\r
+\r
+/*\r
+ * Copyright (C) 2009 Google Inc. All rights reserved.\r
+ * Copyright (C) 2010 Apple Inc. All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are\r
+ * met:\r
+ *\r
+ *     * Redistributions of source code must retain the above copyright\r
+ * notice, this list of conditions and the following disclaimer.\r
+ *     * Redistributions in binary form must reproduce the above\r
+ * copyright notice, this list of conditions and the following disclaimer\r
+ * in the documentation and/or other materials provided with the\r
+ * distribution.\r
+ *     * Neither the name of Google Inc. nor the names of its\r
+ * contributors may be used to endorse or promote products derived from\r
+ * this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+.heap-snapshot-sidebar-tree-item .icon {\r
+    content: url(Images/profileIcon.png);\r
+}\r
+\r
+.heap-snapshot-sidebar-tree-item.small .icon {\r
+    content: url(Images/profileSmallIcon.png);\r
+}\r
+\r
+.heap-snapshot-view {\r
+    display: none;\r
+    overflow: hidden;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.heap-snapshot-view.visible {\r
+    display: block;\r
+}\r
+\r
+.heap-snapshot-view .data-grid {\r
+    border: none;\r
+    max-height: 100%;\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    top: 0;\r
+    bottom: 93px;\r
+}\r
+\r
+.heap-snapshot-view .data-grid th.count-column {\r
+    text-align: center;\r
+}\r
+\r
+.heap-snapshot-view .data-grid td.count-column {\r
+    text-align: right;\r
+}\r
+\r
+.heap-snapshot-view .data-grid th.size-column {\r
+    text-align: center;\r
+}\r
+\r
+.heap-snapshot-view .data-grid td.size-column {\r
+    text-align: right;\r
+}\r
+\r
+.heap-snapshot-view .data-grid th.countDelta-column {\r
+    text-align: center;\r
+}\r
+\r
+.heap-snapshot-view .data-grid td.countDelta-column {\r
+    text-align: right;\r
+}\r
+\r
+.heap-snapshot-view .data-grid th.sizeDelta-column {\r
+    text-align: center;\r
+}\r
+\r
+.heap-snapshot-view .data-grid td.sizeDelta-column {\r
+    text-align: right;\r
+}\r
+\r
+#heap-snapshot-summary-container {\r
+    position: absolute;\r
+    padding-top: 20px;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 93px;\r
+    margin-left: -1px;\r
+    border-left: 1px solid rgb(102, 102, 102);\r
+    background-color: rgb(101, 111, 130);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\r
+    background-repeat: repeat-x;\r
+    background-position: top;\r
+    text-align: center;\r
+    text-shadow: black 0 1px 1px;\r
+    white-space: nowrap;\r
+    color: white;\r
+    -webkit-background-size: 1px 6px;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+.heap-snapshot-summary {\r
+    display: inline-block;\r
+    width: 50%;\r
+    min-width: 300px;\r
+    position: relative;\r
+}\r
+\r
+.heap-snapshot-summary canvas.summary-graph {\r
+    width: 225px;\r
+}\r
+\r
+.heap-snapshot-summary-label {\r
+    font-size: 12px;\r
+    font-weight: bold;\r
+    position: absolute;\r
+    top: 1px;\r
+    width: 50%;\r
+    left: 25%;\r
+}\r
+\r
+/* inspector.css */\r
+\r
+/*\r
+ * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.\r
+ * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * 1.  Redistributions of source code must retain the above copyright\r
+ *     notice, this list of conditions and the following disclaimer. \r
+ * 2.  Redistributions in binary form must reproduce the above copyright\r
+ *     notice, this list of conditions and the following disclaimer in the\r
+ *     documentation and/or other materials provided with the distribution. \r
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of\r
+ *     its contributors may be used to endorse or promote products derived\r
+ *     from this software without specific prior written permission. \r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+html {\r
+    height: 100%;\r
+}\r
+\r
+body {\r
+    cursor: default;\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    overflow: hidden;\r
+    font-family: Lucida Grande, sans-serif;\r
+    font-size: 10px;\r
+    margin: 0;\r
+    -webkit-text-size-adjust: none;\r
+    -webkit-user-select: none;\r
+}\r
+\r
+* {\r
+    -webkit-box-sizing: border-box;\r
+}\r
+\r
+:focus {\r
+    outline: none;\r
+}\r
+\r
+input[type="search"]:focus, input[type="text"]:focus {\r
+    outline: auto 5px -webkit-focus-ring-color;\r
+}\r
+\r
+iframe, a img {\r
+    border: none;\r
+}\r
+\r
+img {\r
+    -webkit-user-drag: none;\r
+}\r
+\r
+.hidden {\r
+    display: none !important;\r
+}\r
+\r
+#toolbar {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 56px;\r
+    display: -webkit-box;\r
+    padding: 0 5px;\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(191, 191, 191)), to(rgb(151, 151, 151)));\r
+    border-bottom: 1px solid rgb(80, 80, 80);\r
+    -webkit-box-orient: horizontal;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+body.inactive #toolbar {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(233, 233, 233)), to(rgb(207, 207, 207)));\r
+    border-bottom: 1px solid rgb(64%, 64%, 64%);\r
+}\r
+\r
+body.detached.platform-mac-leopard #toolbar,\r
+body.detached.platform-mac-snowleopard #toolbar {\r
+    background: transparent !important;\r
+}\r
+\r
+body.attached #toolbar {\r
+    height: 34px;\r
+    border-top: 1px solid rgb(100, 100, 100);\r
+    cursor: row-resize;\r
+    padding-left: 0;\r
+}\r
+\r
+body.attached.port-qt #toolbar {\r
+    cursor: auto;\r
+}\r
+\r
+body.attached.inactive #toolbar {\r
+    border-top: 1px solid rgb(64%, 64%, 64%);\r
+}\r
+\r
+.toolbar-item {\r
+    display: -webkit-box;\r
+    padding: 4px 6px;\r
+    margin: 0;\r
+    background-color: transparent;\r
+    border-style: none;\r
+    border-color: transparent;\r
+    -webkit-box-orient: vertical;\r
+    -webkit-box-align: center;\r
+    -webkit-box-pack: end;\r
+}\r
+\r
+.toolbar-item.toggleable.toggled-on {\r
+    border-width: 0 2px 0 2px;\r
+    padding: 4px 4px;\r
+    -webkit-border-image: url(Images/toolbarItemSelected.png) 0 2 0 2;\r
+}\r
+\r
+.toolbar-item.flexable-space {\r
+    -webkit-box-flex: 1;\r
+    visibility: hidden;\r
+}\r
+\r
+.toolbar-item input {\r
+    margin-bottom: 8px;\r
+}\r
+\r
+.toolbar-icon {\r
+    display: inline-block;\r
+    width: 32px;\r
+    height: 32px;\r
+    -webkit-background-size: 100% auto;\r
+}\r
+\r
+body.attached .toolbar-icon {\r
+    width: 24px;\r
+    height: 24px;\r
+    vertical-align: middle;\r
+}\r
+\r
+.toolbar-item:active .toolbar-icon {\r
+    background-position: 0 32px;\r
+}\r
+\r
+body.attached .toolbar-item:active .toolbar-icon {\r
+    background-position: 0 24px;\r
+}\r
+\r
+.toolbar-label {\r
+    font-size: 11px;\r
+    font-family: Lucida Grande, sans-serif;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;\r
+}\r
+\r
+.toolbar-item.toggleable:active .toolbar-label {\r
+    text-shadow: none;\r
+}\r
+\r
+body.attached .toolbar-label {\r
+    display: inline-block;\r
+    vertical-align: middle;\r
+    margin-left: 3px;\r
+}\r
+\r
+body.attached #search-toolbar-label {\r
+    display: none;\r
+}\r
+\r
+#search {\r
+    width: 205px;\r
+    font-size: 16px;\r
+    margin-bottom: 5px;\r
+}\r
+\r
+body.attached #search {\r
+    font-size: 11px;\r
+    margin-bottom: 8px;\r
+}\r
+\r
+#search-results-matches {\r
+    font-size: 11px;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;\r
+    margin-bottom: 22px;\r
+}\r
+\r
+body.attached #search-results-matches {\r
+    margin-bottom: 6px;\r
+}\r
+\r
+.toolbar-item.elements .toolbar-icon {\r
+    background-image: url(Images/elementsIcon.png);\r
+}\r
+\r
+.toolbar-item.resources .toolbar-icon {\r
+    background-image: url(Images/resourcesIcon.png);\r
+}\r
+\r
+.toolbar-item.network .toolbar-icon {\r
+    background-image: url(Images/networkIcon.png);\r
+}\r
+\r
+.toolbar-item.scripts .toolbar-icon {\r
+    background-image: url(Images/scriptsIcon.png);\r
+}\r
+\r
+.toolbar-item.timeline .toolbar-icon {\r
+    background-image: url(Images/timelineIcon.png);\r
+}\r
+\r
+.toolbar-item.profiles .toolbar-icon {\r
+    background-image: url(Images/profilesIcon.png);\r
+}\r
+\r
+.toolbar-item.audits .toolbar-icon {\r
+    background-image: url(Images/auditsIcon.png);\r
+}\r
+\r
+.toolbar-item.console .toolbar-icon {\r
+    background-image: url(Images/consoleIcon.png);\r
+}\r
+\r
+#close-button-left, #close-button-right {\r
+    width: 14px;\r
+    height: 14px;\r
+    background-image: url(Images/closeButtons.png);\r
+    background-position: 0 0;\r
+    background-color: transparent;\r
+    border: 0 none transparent;\r
+    margin: 5px 0;\r
+}\r
+\r
+#close-button-left:hover, #close-button-right:hover {\r
+    background-position: 14px 0;\r
+}\r
+\r
+#close-button-left:active, #close-button-right:active {\r
+    background-position: 28px 0;\r
+}\r
+\r
+body.detached .toolbar-item.close-left, body.detached .toolbar-item.close-right {\r
+    display: none;\r
+}\r
+\r
+body.attached.port-qt .toolbar-item.close-left, body.attached.port-qt .toolbar-item.close-right {\r
+    display: none;\r
+}\r
+\r
+body.platform-mac .toolbar-item.close-right {\r
+    display: none;\r
+}\r
+\r
+body:not(.platform-mac) .toolbar-item.close-left {\r
+    display: none;\r
+}\r
+\r
+#main {\r
+    position: absolute;\r
+    z-index: 1;\r
+    top: 56px;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    overflow: hidden;\r
+    background-color: white;\r
+}\r
+\r
+body.attached #main {\r
+    top: 34px;\r
+}\r
+\r
+#main-panels {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 23px;\r
+    overflow: hidden;\r
+}\r
+\r
+#main-status-bar {\r
+    position: absolute;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+}\r
+\r
+body.drawer-visible #main-status-bar {\r
+    height: 24px;\r
+    background-image: url(Images/statusbarResizerVertical.png), url(Images/statusbarBackground.png);\r
+    background-repeat: no-repeat, repeat-x;\r
+    background-position: right center, center;\r
+    cursor: row-resize;\r
+}\r
+\r
+body.drawer-visible #main-status-bar * {\r
+    cursor: default;\r
+}\r
+\r
+body.drawer-visible #main-panels {\r
+    bottom: 24px;\r
+}\r
+\r
+.status-bar {\r
+    background-color: rgb(235, 235, 235);\r
+    background-image: url(Images/statusbarBackground.png);\r
+    background-repeat: repeat-x;\r
+    white-space: nowrap;\r
+    height: 23px;\r
+    overflow: hidden;\r
+    z-index: 12;\r
+}\r
+\r
+.status-bar > div {\r
+    display: inline-block;\r
+    vertical-align: top;\r
+}\r
+\r
+.status-bar-item {\r
+    display: inline-block;\r
+    height: 24px;\r
+    padding: 0;\r
+    margin-left: -1px;\r
+    margin-right: 0;\r
+    vertical-align: top;\r
+    border: 0 transparent none;\r
+    background-color: transparent;\r
+}\r
+\r
+.status-bar-item:active {\r
+    position: relative;\r
+    z-index: 200;\r
+}\r
+\r
+.glyph {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    background-color: rgba(0, 0, 0, 0.75);\r
+    z-index: 1;\r
+}\r
+\r
+.glyph.shadow {\r
+    top: 1px;\r
+    background-color: white !important;\r
+    z-index: 0;\r
+}\r
+\r
+button.status-bar-item {\r
+    position: relative;\r
+    width: 32px;\r
+    background-image: url(Images/statusbarButtons.png);\r
+    background-position: 0 0;\r
+}\r
+\r
+button.status-bar-item:active {\r
+    background-position: 32px 0 !important;\r
+}\r
+\r
+button.status-bar-item .glyph.shadow {\r
+    background-color: rgba(255, 255, 255, 0.33) !important;\r
+}\r
+\r
+button.status-bar-item.toggled-on .glyph {\r
+    background-color: rgb(66, 129, 235);\r
+}\r
+\r
+button.status-bar-item.toggled-1 .glyph {\r
+    background-color: rgb(66, 129, 235);\r
+}\r
+\r
+button.status-bar-item.toggled-2 .glyph {\r
+    background-color: purple;   \r
+}\r
+\r
+button.status-bar-item:disabled {\r
+    opacity: 0.5;\r
+    background-position: 0 0 !important;\r
+}\r
+\r
+select.status-bar-item {\r
+    min-width: 48px;\r
+    border-width: 0 17px 0 2px;\r
+    padding: 0 2px 0 6px;\r
+    font-weight: bold;\r
+    color: rgb(48, 48, 48);\r
+    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;\r
+    -webkit-border-image: url(Images/statusbarMenuButton.png) 0 17 0 2;\r
+    -webkit-border-radius: 0;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+select.status-bar-item:active {\r
+    color: black;\r
+    -webkit-border-image: url(Images/statusbarMenuButtonSelected.png) 0 17 0 2;\r
+}\r
+\r
+#dock-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/undockButtonGlyph.png);\r
+}\r
+\r
+body.detached #dock-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/dockButtonGlyph.png);\r
+}\r
+\r
+body.port-qt #dock-status-bar-item {\r
+    display: none\r
+}\r
+\r
+#console-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/consoleButtonGlyph.png);\r
+}\r
+\r
+.clear-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/clearConsoleButtonGlyph.png);\r
+}\r
+\r
+#changes-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/consoleButtonGlyph.png); /* TODO: Needs Image for Changes Toggle Button */\r
+}\r
+\r
+#counters {\r
+    position: absolute;\r
+    right: 16px;\r
+    top: 0;\r
+    cursor: pointer;\r
+    padding: 6px 2px 6px 0px;\r
+    font-size: 10px;\r
+    height: 19px;\r
+}\r
+\r
+#changes-count, #error-warning-count {\r
+    display: inline;\r
+}\r
+\r
+#error-warning-count:hover, #changes-count:hover {\r
+    border-bottom: 1px solid rgb(96, 96, 96);\r
+}\r
+\r
+#style-changes-count::before {\r
+    content: url(Images/styleIcon.png); /* TODO: Needs Image for Style Changes Icon */\r
+    width: 10px;\r
+    height: 10px;\r
+    vertical-align: -1px;\r
+    margin-right: 2px;\r
+}\r
+\r
+#error-count::before {\r
+    content: url(Images/errorIcon.png);\r
+    width: 10px;\r
+    height: 10px;\r
+    vertical-align: -1px;\r
+    margin-right: 2px;\r
+}\r
+    \r
+#changes-count + #error-warning-count, #error-count + #warning-count {\r
+    margin-left: 6px;\r
+}\r
+\r
+#warning-count::before {\r
+    content: url(Images/warningIcon.png);\r
+    width: 10px;\r
+    height: 10px;\r
+    vertical-align: -1px;\r
+    margin-right: 2px;\r
+}\r
+\r
+#drawer {\r
+    display: none;\r
+    position: absolute;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 200px;\r
+    background-color: white;\r
+    background-image: url(Images/statusbarBottomBackground.png);\r
+    background-repeat: repeat-x;\r
+    background-position: bottom;\r
+}\r
+\r
+body.drawer-visible #drawer {\r
+    display: block;\r
+}\r
+\r
+#drawer-status-bar {\r
+    position: absolute;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    background: none;\r
+}\r
+\r
+.monospace {\r
+    font-size: 10px !important;\r
+    font-family: monospace;\r
+}\r
+\r
+body.platform-mac .monospace, body.platform-mac .source-code {\r
+    font-family: Monaco, monospace;\r
+}\r
+\r
+/* Keep .platform-mac to make the rule more specific than the general one above. */\r
+body.platform-mac.platform-mac-snowleopard .monospace,\r
+body.platform-mac.platform-mac-snowleopard .source-code {\r
+    font-size: 11px !important;\r
+    font-family: Menlo, monospace;\r
+}\r
+\r
+body.platform-windows .monospace, body.platform-windows .source-code {\r
+    font-size: 12px !important;\r
+    font-family: Consolas, Lucida Console, monospace;\r
+}\r
+\r
+body.platform-linux .monospace, body.platform-linux .source-code {\r
+    font-size: 11px !important;\r
+    font-family: dejavu sans mono, monospace;\r
+}\r
+\r
+#console-messages {\r
+    position: absolute;\r
+    z-index: 0;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 23px;\r
+    padding: 2px 0;\r
+    overflow-y: overlay;\r
+    word-wrap: break-word;\r
+    -webkit-user-select: text;\r
+    -webkit-text-size-adjust: auto;\r
+}\r
+\r
+#console-prompt {\r
+    position: relative;\r
+    padding: 1px 22px 1px 24px;\r
+    min-height: 16px; \r
+    white-space: pre-wrap;\r
+    -webkit-user-modify: read-write-plaintext-only;\r
+}\r
+\r
+#console-prompt::before {\r
+    background-image: url(Images/userInputIcon.png);\r
+}\r
+\r
+.console-user-command-result.console-log-level::before {\r
+    background-image: url(Images/userInputResultIcon.png);\r
+}\r
+\r
+.console-message, .console-user-command {\r
+    position: relative;\r
+    border-bottom: 1px solid rgb(240, 240, 240);\r
+    padding: 1px 22px 1px 24px;\r
+    min-height: 16px;\r
+}\r
+\r
+.console-adjacent-user-command-result {\r
+    border-bottom: none;\r
+}\r
+\r
+.console-adjacent-user-command-result + .console-user-command-result.console-log-level::before {\r
+    background-image: none;\r
+}\r
+\r
+.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before {\r
+    position: absolute;\r
+    display: block;\r
+    content: "";\r
+    left: 7px;\r
+    top: 0.8em;\r
+    width: 10px;\r
+    height: 10px;\r
+    margin-top: -5px;\r
+    -webkit-user-select: none;\r
+}\r
+\r
+.console-message .bubble {\r
+    display: inline-block;\r
+    height: 14px;\r
+    background-color: rgb(128, 151, 189);\r
+    vertical-align: middle;\r
+    white-space: nowrap;\r
+    padding: 1px 4px;\r
+    margin-top: -2px;\r
+    margin-right: 4px;\r
+    text-align: left;\r
+    font-size: 11px;\r
+    line-height: normal;\r
+    font-family: Helvetica, Arial, sans-serif;\r
+    font-weight: bold;\r
+    text-shadow: none;\r
+    color: white;\r
+    -webkit-border-radius: 7px;\r
+}\r
+\r
+.console-message-text {\r
+    white-space: pre-wrap;\r
+}\r
+\r
+.repeated-message {\r
+    padding-left: 6px;\r
+}\r
+\r
+.repeated-message.console-error-level::before, .repeated-message.console-warning-level:before, .repeated-message.console-debug-level:before {\r
+    visibility: hidden;\r
+}\r
+\r
+.console-group .console-group > .console-group-messages {\r
+    margin-left: 16px;\r
+}\r
+\r
+.console-group-title {\r
+    font-weight: bold;\r
+}\r
+\r
+.console-group-title::before {\r
+    background-image: url(Images/disclosureTriangleSmallDown.png);\r
+    top: 0.6em;\r
+    width: 11px;\r
+    height: 12px;\r
+}\r
+\r
+.console-group.collapsed .console-group-title::before {\r
+    background-image: url(Images/disclosureTriangleSmallRight.png);\r
+}\r
+\r
+.console-group.collapsed > .console-group-messages {\r
+    display: none;\r
+}\r
+\r
+.console-error-level .console-message-text {\r
+    color: red;\r
+}\r
+\r
+.console-debug-level .console-message-text {\r
+    color: blue;\r
+}\r
+\r
+.console-debug-level::before {\r
+    background-image: url(Images/searchSmallBrightBlue.png);\r
+}\r
+\r
+.console-error-level::before {\r
+    background-image: url(Images/errorIcon.png);\r
+}\r
+\r
+.console-warning-level::before {\r
+    background-image: url(Images/warningIcon.png);\r
+}\r
+\r
+.console-user-command .console-message {\r
+    margin-left: -24px;\r
+    padding-right: 0;\r
+    border-bottom: none;\r
+}\r
+\r
+.console-user-command::before {\r
+    background-image: url(Images/userInputPreviousIcon.png);\r
+}\r
+\r
+.console-user-command > .console-message-text {\r
+    color: rgb(0, 128, 255);\r
+}\r
+\r
+#console-messages a {\r
+    color: rgb(33%, 33%, 33%);\r
+    cursor: pointer;\r
+}\r
+\r
+#console-messages a:hover {\r
+    color: rgb(15%, 15%, 15%);\r
+}\r
+\r
+.console-message-url {\r
+    float: right;\r
+}\r
+\r
+.console-group-messages .section {\r
+    margin: 0 0 0 12px !important;\r
+}\r
+\r
+.console-group-messages .section .header {\r
+    padding: 0 8px 0 0;\r
+    background-image: none;\r
+    border: none;\r
+    min-height: 0;\r
+}\r
+\r
+.console-group-messages .section .header::before {\r
+    position: absolute;\r
+    top: 1px;\r
+    left: 1px;\r
+    width: 8px;\r
+    height: 8px;\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+}\r
+\r
+.console-group-messages .section.expanded .header::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+.console-group-messages .section .header .title {\r
+    color: black;\r
+    font-weight: normal;\r
+}\r
+\r
+.console-group-messages .section .properties li .info {\r
+    padding-top: 0;\r
+    padding-bottom: 0;\r
+    color: rgb(60%, 60%, 60%);\r
+}\r
+\r
+.console-group-messages .outline-disclosure {\r
+    padding-left: 0;\r
+}\r
+\r
+.console-group-messages .outline-disclosure > ol {\r
+    padding: 0 0 0 12px !important;\r
+}\r
+\r
+.console-group-messages .outline-disclosure, .console-group-messages .outline-disclosure ol {\r
+    font-size: inherit;\r
+    line-height: 12px;\r
+}\r
+\r
+.console-group-messages .outline-disclosure.single-node li {\r
+    padding-left: 2px;\r
+}\r
+\r
+.console-group-messages .outline-disclosure li .selection {\r
+    margin-left: -6px;\r
+    margin-right: -6px;\r
+}\r
+\r
+.console-group-messages .add-attribute {\r
+    display: none;\r
+}\r
+\r
+.console-formatted-object, .console-formatted-node {\r
+    position: relative;\r
+    display: inline-block;\r
+    vertical-align: top;\r
+}\r
+\r
+.console-formatted-object .section, .console-formatted-node .section {\r
+    position: static;\r
+}\r
+\r
+.console-formatted-object .properties, .console-formatted-node .properties {\r
+    padding-left: 0 !important;\r
+}\r
+\r
+.console-formatted-number {\r
+    color: rgb(28, 0, 207);\r
+}\r
+\r
+.console-formatted-string, .console-formatted-regexp {\r
+    color: rgb(196, 26, 22);\r
+}\r
+\r
+.console-formatted-null, .console-formatted-undefined {\r
+    color: rgb(128, 128, 128);\r
+}\r
+\r
+.error-message {\r
+    color: red;\r
+}\r
+\r
+.auto-complete-text {\r
+    color: rgb(128, 128, 128);\r
+    -webkit-user-select: none;\r
+    -webkit-user-modify: read-only;\r
+}\r
+\r
+.panel {\r
+    display: none;\r
+    overflow: hidden;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.panel.visible {\r
+    display: block;\r
+}\r
+\r
+.webkit-line-gutter-backdrop {\r
+    /* Keep this in sync with view-source.css (.webkit-line-gutter-backdrop) */\r
+    width: 31px;\r
+    background-color: rgb(240, 240, 240);\r
+    border-right: 1px solid rgb(187, 187, 187);\r
+    position: absolute;\r
+    z-index: -1;\r
+    left: 0;\r
+    top: 0;\r
+    height: 100%\r
+}\r
+\r
+.resource-view {\r
+    display: none;\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 0;\r
+    bottom: 0;\r
+    overflow: auto;\r
+}\r
+\r
+.resource-view.visible {\r
+    display: block;\r
+}\r
+\r
+.resource-view.font {\r
+    font-size: 60px;\r
+    white-space: pre-wrap;\r
+    word-wrap: break-word;\r
+    text-align: center;\r
+    padding: 15px;\r
+}\r
+\r
+.resource-view.image > .image {\r
+    padding: 20px 20px 10px 20px;\r
+    text-align: center;\r
+}\r
+\r
+.resource-view.image > .info {\r
+    padding-bottom: 10px;\r
+    font-size: 11px;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.resource-view.image img.resource-image-view {\r
+    max-width: 100%;\r
+    max-height: 1000px;\r
+    background-image: url(Images/checker.png);\r
+    -webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.5);\r
+    -webkit-user-select: text;\r
+    -webkit-user-drag: auto;\r
+}\r
+\r
+.resource-url {\r
+    vertical-align: middle;\r
+}\r
+\r
+.resource-status-image {\r
+    margin-top: -3px;\r
+    vertical-align: middle;\r
+}\r
+\r
+.resource-view.image .title {\r
+    text-align: center;\r
+    font-size: 13px;\r
+}\r
+\r
+.resource-view.image .infoList {\r
+    margin: 0;\r
+}\r
+\r
+.resource-view.image .infoList dt {\r
+    font-weight: bold;\r
+    display: inline-block;\r
+    width: 50%;\r
+    text-align: right;\r
+    color: rgb(76, 76, 76);\r
+}\r
+\r
+.resource-view.image .infoList dd {\r
+    display: inline-block;\r
+    padding-left: 8px;\r
+    width: 50%;\r
+    text-align: left;\r
+    margin: 0;\r
+}\r
+\r
+.resource-view.image .infoList dd::after {\r
+    white-space: pre;\r
+    content: "\A";\r
+}\r
+\r
+.resource-timing-row {\r
+    position: relative;\r
+    height: 12px;\r
+}\r
+\r
+.resource-timing-bar {\r
+    position: absolute;\r
+    background-color: red;\r
+    border-left: 1px solid red;\r
+    opacity: 0.4;\r
+}\r
+\r
+.resource-timing-bar-title {\r
+    position: absolute;\r
+}\r
+\r
+#elements-content {\r
+    display: block;\r
+    overflow: auto;\r
+    padding: 0;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 325px;\r
+    bottom: 0;\r
+}\r
+\r
+#elements-sidebar {\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    width: 325px;\r
+    border-left: 1px solid rgb(64%, 64%, 64%);\r
+    cursor: default;\r
+    overflow: auto;\r
+}\r
+\r
+.crumbs {\r
+    display: inline-block;\r
+    font-size: 11px;\r
+    line-height: 19px;\r
+    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;\r
+    color: rgb(20, 20, 20);\r
+    margin-left: -1px;\r
+    padding-right: 12px;\r
+}\r
+\r
+.crumbs .crumb {\r
+    height: 24px;\r
+    border-width: 0 12px 0 2px;\r
+    -webkit-border-image: url(Images/segment.png) 0 12 0 2;\r
+    margin-right: -12px;\r
+    padding-left: 18px;\r
+    padding-right: 2px;\r
+    white-space: nowrap;\r
+    line-height: 23px;\r
+    float: right;\r
+}\r
+\r
+.crumbs .crumb.collapsed > * {\r
+    display: none;\r
+}\r
+\r
+.crumbs .crumb.collapsed::before {\r
+    content: "\2026";\r
+    font-weight: bold;\r
+}\r
+\r
+.crumbs .crumb.compact .extra {\r
+    display: none;\r
+}\r
+\r
+.crumbs .crumb.dimmed {\r
+    color: rgba(0, 0, 0, 0.45);\r
+}\r
+\r
+.crumbs .crumb.start {\r
+    padding-left: 7px;\r
+}\r
+\r
+.crumbs .crumb.end {\r
+    border-width: 0 2px 0 2px;\r
+    padding-right: 6px;\r
+    -webkit-border-image: url(Images/segmentEnd.png) 0 2 0 2;\r
+}\r
+\r
+.crumbs .crumb.selected {\r
+    -webkit-border-image: url(Images/segmentSelected.png) 0 12 0 2;\r
+    color: black;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;\r
+}\r
+\r
+.crumbs .crumb.selected:hover {\r
+    -webkit-border-image: url(Images/segmentSelected.png) 0 12 0 2;\r
+}\r
+\r
+.crumbs .crumb.selected.end, .crumbs .crumb.selected.end:hover {\r
+    -webkit-border-image: url(Images/segmentSelectedEnd.png) 0 2 0 2;\r
+}\r
+\r
+.crumbs .crumb:hover {\r
+    -webkit-border-image: url(Images/segmentHover.png) 0 12 0 2;\r
+    color: black;\r
+}\r
+\r
+.crumbs .crumb.dimmed:hover {\r
+    -webkit-border-image: url(Images/segmentHover.png) 0 12 0 2;\r
+    color: rgba(0, 0, 0, 0.75);\r
+}\r
+\r
+.crumbs .crumb.end:hover {\r
+    -webkit-border-image: url(Images/segmentHoverEnd.png) 0 2 0 2;\r
+}\r
+\r
+.outline-disclosure li.hovered:not(.selected) .selection {\r
+    display: block;\r
+    left: 3px;\r
+    right: 3px;\r
+    background-color: rgba(56, 121, 217, 0.1);\r
+    -webkit-border-radius: 5px;\r
+}\r
+\r
+.outline-disclosure li.highlighted .highlight {\r
+    background-color: rgb(255, 230, 179);\r
+    -webkit-border-radius: 4px;\r
+    padding-bottom: 2px;\r
+    margin-bottom: -2px;\r
+}\r
+\r
+.outline-disclosure li.selected.highlighted .highlight {\r
+    background-color: transparent;\r
+    padding-bottom: 0;\r
+    margin-bottom: 0;\r
+}\r
+\r
+.outline-disclosure li .selection {\r
+    display: none;\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    height: 15px;\r
+    z-index: -1;\r
+}\r
+\r
+.outline-disclosure li.selected .selection {\r
+    display: block;\r
+    background-color: rgb(212, 212, 212);\r
+}\r
+\r
+.outline-disclosure ol:focus li.selected .selection {\r
+    background-color: rgb(56, 121, 217);\r
+}\r
+\r
+.outline-disclosure {\r
+    font-size: 11px;\r
+}\r
+\r
+.outline-disclosure > ol {\r
+    position: relative;\r
+    padding: 2px 6px !important;\r
+    margin: 0;\r
+    color: black;\r
+    cursor: default;\r
+    min-width: 100%;\r
+}\r
+\r
+.outline-disclosure, .outline-disclosure ol {\r
+    list-style-type: none;\r
+    -webkit-padding-start: 12px;\r
+    margin: 0;\r
+}\r
+\r
+.source-code {\r
+    font-family: monospace;\r
+    font-size: 10px !important;\r
+    white-space: pre-wrap;\r
+}\r
+\r
+.outline-disclosure li {\r
+    padding: 0 0 0 14px;\r
+    margin-top: 1px;\r
+    margin-bottom: 1px;\r
+    word-wrap: break-word;\r
+    text-indent: -2px;\r
+}\r
+\r
+.resources .outline-disclosure li {\r
+    text-indent: -1px;\r
+}\r
+\r
+.outline-disclosure ol:focus li.selected {\r
+    color: white;\r
+}\r
+\r
+.outline-disclosure ol:focus li.selected * {\r
+    color: inherit;\r
+}\r
+\r
+.outline-disclosure li.parent {\r
+    text-indent: -12px\r
+}\r
+\r
+.outline-disclosure li .webkit-html-tag.close {\r
+    margin-left: -12px;\r
+}\r
+\r
+.outline-disclosure li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 1px;\r
+    padding-right: 2px;\r
+}\r
+\r
+.outline-disclosure li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+}\r
+\r
+.outline-disclosure ol:focus li.parent.selected::before {\r
+    content: url(Images/treeRightTriangleWhite.png);\r
+}\r
+\r
+.outline-disclosure li.parent.expanded::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+.outline-disclosure ol:focus li.parent.expanded.selected::before {\r
+    content: url(Images/treeDownTriangleWhite.png);\r
+}\r
+\r
+.outline-disclosure ol.children {\r
+    display: none;\r
+}\r
+\r
+.outline-disclosure ol.children.expanded {\r
+    display: block;\r
+}\r
+\r
+.add-attribute {\r
+    margin-left: 1px;\r
+    margin-right: 1px;\r
+    white-space: nowrap;\r
+}\r
+\r
+.placard {\r
+    position: relative;\r
+    margin-top: 1px;\r
+    padding: 3px 8px 4px 18px;\r
+    min-height: 18px;\r
+    white-space: nowrap;\r
+}\r
+\r
+.placard:nth-of-type(2n) {\r
+    background-color: rgb(234, 243, 255);\r
+}\r
+\r
+.placard.selected {\r
+    border-top: 1px solid rgb(145, 160, 192);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+:focus .placard.selected {\r
+    border-top: 1px solid rgb(68, 128, 200);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));\r
+}\r
+\r
+body.inactive .placard.selected {\r
+    border-top: 1px solid rgb(151, 151, 151);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));\r
+}\r
+\r
+.placard .title {\r
+    color: black;\r
+    font-weight: normal;\r
+    word-wrap: break-word;\r
+    white-space: normal;\r
+}\r
+\r
+.placard.selected .title {\r
+    color: white;\r
+    font-weight: bold;\r
+}\r
+\r
+.placard .subtitle {\r
+    float: right;\r
+    font-size: 10px;\r
+    margin-left: 5px;\r
+    max-width: 55%;\r
+    color: rgba(0, 0, 0, 0.7);\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.placard.selected .subtitle {\r
+    color: rgba(255, 255, 255, 0.7);\r
+}\r
+\r
+.placard .subtitle a {\r
+    color: inherit;\r
+}\r
+\r
+.section {\r
+    position: relative;\r
+    margin-top: 1px;\r
+}\r
+\r
+.watch-expressions-buttons-container {\r
+    text-align: center;\r
+}\r
+\r
+.events-pane .section:not(:nth-of-type(1)) {\r
+    border-top: 1px solid rgb(191, 191, 191);\r
+}\r
+\r
+.event-bar:first-child {\r
+    margin-top: 1px;\r
+}\r
+\r
+.section .header {\r
+    color: black;\r
+    padding: 0 8px 0 18px;\r
+    min-height: 18px;\r
+    white-space: nowrap;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+.section .header::before {\r
+    position: absolute;\r
+    top: 2px;\r
+    left: 7px;\r
+    width: 8px;\r
+    height: 8px;\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    opacity: 0.8;\r
+}\r
+\r
+.section.expanded .header::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+.section .header .title, .event-bar .header .title {\r
+    font-weight: normal;\r
+    word-wrap: break-word;\r
+    white-space: normal;\r
+    line-height: 18px;\r
+}\r
+\r
+.section .header .title.blank-title {\r
+    font-style: italic;\r
+}\r
+\r
+.section .header label, .event-bar .header label {\r
+    display: none;\r
+}\r
+\r
+.section.expanded .header label, .event-bar.expanded .header label {\r
+    display: inline;\r
+}\r
+\r
+.section .header .subtitle, .event-bar .header .subtitle {\r
+    float: right;\r
+    margin-left: 5px;\r
+    max-width: 55%;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.section .header .subtitle a {\r
+    color: inherit;\r
+}\r
+\r
+.section .properties, .event-bar .event-properties {\r
+    display: none;\r
+}\r
+\r
+.section.expanded .properties, .event-bar.expanded .event-properties {\r
+    display: block;\r
+    padding-left: 16px;\r
+}\r
+\r
+.section.no-affect .properties li {\r
+    opacity: 0.5;\r
+}\r
+\r
+.section.no-affect .properties li.editing {\r
+    opacity: 1.0;\r
+}\r
+\r
+.properties-tree {\r
+    margin: 0;\r
+    padding: 0 6px 2px;\r
+    list-style: none;\r
+    min-height: 18px;\r
+}\r
+\r
+.properties-tree li {\r
+    margin-left: 12px;\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    -webkit-user-select: text;\r
+    cursor: auto;\r
+}\r
+\r
+.properties-tree li.parent {\r
+    margin-left: 1px;\r
+}\r
+\r
+.properties-tree li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    opacity: 0.75;\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 0;\r
+    padding-right: 3px;\r
+    -webkit-user-select: none;\r
+    cursor: default;\r
+}\r
+\r
+.properties-tree li.parent.expanded::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+    margin-top: 1px;\r
+}\r
+\r
+.properties-tree li .info {\r
+    padding-top: 4px;\r
+    padding-bottom: 3px;\r
+}\r
+\r
+.properties-tree ol {\r
+    display: none;\r
+    margin: 0;\r
+    -webkit-padding-start: 12px;\r
+    list-style: none;\r
+}\r
+\r
+.properties-tree ol.expanded {\r
+    display: block;\r
+}\r
+\r
+.event-listener-breakpoints .event-category {\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    color: rgb(96, 96, 96);\r
+    padding-top: 2px;\r
+}\r
+\r
+.event-listener-breakpoints.properties-tree .children li {\r
+    margin-left: 12px;\r
+    height: 16px;\r
+}\r
+\r
+.event-listener-breakpoints .checkbox-elem {\r
+    font-size: 10px;\r
+    float: left;\r
+    top: -2px;\r
+    position: relative;\r
+    left: -1px;\r
+}\r
+\r
+.section .event-bars {\r
+    display: none;\r
+}\r
+\r
+.section.expanded .event-bars {\r
+    display: block;\r
+}\r
+\r
+.event-bar {\r
+    position: relative;\r
+    margin-left: 10px;\r
+}\r
+\r
+.event-bars .event-bar .header {\r
+    padding: 0 8px 0 18px;\r
+    min-height: 16px;\r
+    opacity: 1.0;\r
+    white-space: nowrap;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+.event-bars .event-bar .header .title {\r
+    font-weight: normal;\r
+    color: black;\r
+    text-shadow: white 0 1px 0; \r
+}\r
+\r
+.event-bars .event-bar .header .subtitle {\r
+    color: rgba(90, 90, 90, 0.75);\r
+}\r
+\r
+.event-bars .event-bar .header::before {\r
+    position: absolute;\r
+    top: 2px;\r
+    left: 7px;\r
+    width: 8px;\r
+    height: 8px;\r
+    opacity: 0.75;\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+}\r
+\r
+.event-bars .event-bar.expanded .header::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+.editing {\r
+    -webkit-user-select: text;\r
+    -webkit-box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;\r
+    outline: 1px solid rgb(66%, 66%, 66%) !important;\r
+    background-color: white;\r
+    -webkit-user-modify: read-write-plaintext-only;\r
+    text-overflow: clip !important;\r
+    padding-left: 2px;\r
+    margin-left: -2px;\r
+    padding-right: 2px;\r
+    margin-right: -2px;\r
+    margin-bottom: -1px;\r
+    padding-bottom: 1px;\r
+    opacity: 1.0 !important;\r
+}\r
+\r
+.editing, .editing * {\r
+    color: black !important;\r
+    text-decoration: none !important;\r
+}\r
+\r
+.child-editing {\r
+    color: black !important;\r
+    text-decoration: none !important;\r
+    overflow: visible !important;\r
+}\r
+\r
+.editing br {\r
+    display: none;\r
+}\r
+\r
+.elements-tree-editor {\r
+    -webkit-user-select: text;\r
+    -webkit-user-modify: read-write-plaintext-only;\r
+}\r
+\r
+.section .properties li.editing {\r
+    margin-left: 10px;\r
+    text-overflow: clip;\r
+}\r
+\r
+li.editing .swatch, li.editing .enabled-button,  li.editing-sub-part .delete-button {\r
+    display: none !important;\r
+}\r
+\r
+.watch-expressions > li.editing-sub-part .name {\r
+    display: block; \r
+    width: 100%;\r
+}\r
+\r
+.watch-expressions > li.editing-sub-part .value, .watch-expressions > li.editing-sub-part .separator  {\r
+    display: none;\r
+}\r
+\r
+.watch-expressions-error-level {\r
+    color: red;\r
+}\r
+\r
+.section .properties li.editing-sub-part {\r
+    padding: 3px 6px 8px 18px;\r
+    margin: -3px -6px -8px -6px;\r
+    text-overflow: clip;\r
+}\r
+\r
+/* FIXME: need a better icon (comment in bug 27514) */\r
+.section .properties .delete-button {\r
+    width: 10px;\r
+    height: 10px;\r
+    background-image: url(Images/errorIcon.png);\r
+    background-position: 0 0;\r
+    background-color: transparent;\r
+    background-repeat: no-repeat;\r
+    border: 0 none transparent;\r
+}\r
+\r
+.section .properties .name, .event-properties .name {\r
+    color: rgb(136, 19, 145);\r
+}\r
+\r
+.section .properties .value.dimmed {\r
+    color: rgb(100, 100, 100);\r
+}\r
+\r
+.section .properties .value.error {\r
+    color: red;\r
+}\r
+\r
+.section .properties .number, .event-properties .number {\r
+    color: blue;\r
+}\r
+\r
+.section .properties .keyword, .event-properties .keyword {\r
+    color: rgb(136, 19, 79);\r
+}\r
+\r
+.section .properties .color, .event-properties .color {\r
+    color: rgb(118, 15, 21);\r
+}\r
+\r
+.swatch {\r
+    display: inline-block;\r
+    vertical-align: baseline;\r
+    margin-left: 1px;\r
+    margin-right: 2px;\r
+    margin-bottom: -1px;\r
+    width: 1em;\r
+    height: 1em;\r
+    border: 1px solid rgba(128, 128, 128, 0.6);\r
+}\r
+\r
+.swatch:hover {\r
+    border: 1px solid rgba(64, 64, 64, 0.8);\r
+}\r
+\r
+.pane:not(.expanded) + .pane, .pane:first-of-type {\r
+    margin-top: -1px;\r
+}\r
+\r
+.pane > .title {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(243, 243, 243)), color-stop(0.05, rgb(243, 243, 243)), color-stop(0.05, rgb(230, 230, 230)), to(rgb(209, 209, 209)));\r
+    height: 20px;\r
+    padding: 0 5px;\r
+    border-top: 1px solid rgb(189, 189, 189);\r
+    border-bottom: 1px solid rgb(189, 189, 189);\r
+    font-weight: bold;\r
+    font-size: 12px;\r
+    line-height: 18px;\r
+    color: rgb(110, 110, 110);\r
+    text-shadow: white 0 1px 0;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+.pane > .title:active {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(231, 231, 231)), color-stop(0.05, rgb(231, 231, 231)), color-stop(0.05, rgb(207, 207, 207)), to(rgb(186, 186, 186)));\r
+    border-top: 1px solid rgb(178, 178, 178);\r
+    border-bottom: 1px solid rgb(178, 178, 178);\r
+}\r
+\r
+.pane > .title::before {\r
+    content: url(Images/disclosureTriangleSmallRightBlack.png);\r
+    float: left;\r
+    width: 11px;\r
+    height: 12px;\r
+    margin-right: 2px;\r
+    margin-top: 1px;\r
+}\r
+\r
+.pane.expanded > .title::before {\r
+    content: url(Images/disclosureTriangleSmallDownBlack.png);\r
+}\r
+\r
+.pane > .title > select {\r
+    float: right;\r
+    width: 23px;\r
+    height: 17px;\r
+    color: transparent;\r
+    background-color: transparent;\r
+    border: none;\r
+    background-image: url(Images/paneSettingsButtons.png);\r
+    background-repeat: no-repeat;\r
+    margin: 1px 0 0 0;\r
+    padding: 0;\r
+    -webkit-border-radius: 0;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+.pane > .title > select:hover {\r
+    background-position: -23px 0px;\r
+}\r
+\r
+.pane > .title > select:active {\r
+    background-position: -46px 0px;\r
+}\r
+\r
+.pane > .title > select > option, .pane > .title > select > hr {\r
+    color: black;\r
+}\r
+\r
+.pane > .title > button.add {\r
+    float: right;\r
+    width: 23px;\r
+    height: 17px;\r
+    color: transparent;\r
+    background-color: transparent;\r
+    border: none;\r
+    background-image: url(Images/paneAddButtons.png);\r
+    background-repeat: no-repeat;\r
+    margin: 1px 0 0 0;\r
+    padding: 0;\r
+    -webkit-border-radius: 0;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+.pane > .title > button.add:hover {\r
+    background-position: -23px 0px;\r
+}\r
+\r
+.pane > .title > button.add:active {\r
+    background-position: -46px 0px;\r
+}\r
+\r
+.pane > .body {\r
+    position: relative;\r
+    display: none;\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+}\r
+\r
+.pane > .body .info {\r
+    text-align: center;\r
+    font-style: italic;\r
+    font-size: 10px;\r
+    padding: 6px;\r
+    color: black;\r
+}\r
+\r
+.pane > .body .placard + .info {\r
+    border-top: 1px solid rgb(189, 189, 189);\r
+    background-color: rgb(255, 255, 194);\r
+}\r
+\r
+.pane.expanded > .body, .pane.expanded > .growbar {\r
+    display: block;\r
+}\r
+\r
+.pane > .body .breakpoint-condition {\r
+    display: block;\r
+    margin-top: 4px;\r
+    margin-bottom: 4px;\r
+    margin-left: 25px;\r
+    margin-right: 10px;\r
+}\r
+\r
+.pane.expanded:nth-last-of-type(1) {\r
+    border-bottom: 1px solid rgb(189, 189, 189);\r
+}\r
+\r
+.pane > .growbar {\r
+    display: none;\r
+    background-image: url(Images/paneGrowHandleLine.png), url(Images/paneBottomGrow.png);\r
+    background-repeat: no-repeat, repeat-x;\r
+    background-position: center center, bottom;\r
+    height: 5px;\r
+}\r
+\r
+.sidebar-pane-subtitle {\r
+    position: absolute;\r
+    right: 0;\r
+    font-weight: normal;\r
+}\r
+\r
+body.platform-windows .sidebar-pane-subtitle {\r
+    padding-top: 1px;\r
+}\r
+\r
+.sidebar-pane-subtitle input, .section .header input[type=checkbox] {\r
+    font-size: inherit;\r
+    hight: 1em;\r
+    width: 1em;\r
+    margin-left: 0;\r
+    margin-top: 0;\r
+    margin-bottom: 0.25em;\r
+    vertical-align: bottom;\r
+}\r
+\r
+.metrics {\r
+    padding: 8px;\r
+    font-size: 10px;\r
+    text-align: center;\r
+    white-space: nowrap;\r
+}\r
+\r
+.metrics .label {\r
+    position: absolute;\r
+    margin-top: -10px;\r
+    font-size: 9px;\r
+    color: grey;\r
+    background-color: white;\r
+    margin-left: 3px;\r
+    padding-left: 2px;\r
+    padding-right: 2px;\r
+}\r
+\r
+.metrics .position {\r
+    border: 1px rgb(66%, 66%, 66%) dotted;\r
+    display: inline-block;\r
+    text-align: center;\r
+    padding: 3px;\r
+    margin: 3px;\r
+}\r
+\r
+.metrics .margin {\r
+    border: 1px dashed;\r
+    display: inline-block;\r
+    text-align: center;\r
+    vertical-align: middle;\r
+    padding: 3px;\r
+    margin: 3px;\r
+}\r
+\r
+.metrics .border {\r
+    border: 1px black solid;\r
+    display: inline-block;\r
+    text-align: center;\r
+    vertical-align: middle;\r
+    padding: 3px;\r
+    margin: 3px;\r
+}\r
+\r
+.metrics .padding {\r
+    border: 1px grey dashed;\r
+    display: inline-block;\r
+    text-align: center;\r
+    vertical-align: middle;\r
+    padding: 3px;\r
+    margin: 3px;\r
+}\r
+\r
+.metrics .content {\r
+    position: static;\r
+    border: 1px grey solid;\r
+    display: inline-block;\r
+    text-align: center;\r
+    vertical-align: middle;\r
+    padding: 3px;\r
+    margin: 3px;\r
+    min-width: 80px;\r
+    text-align: center;\r
+    overflow: visible;\r
+}\r
+\r
+.metrics .content span {\r
+    display: inline-block;\r
+}\r
+\r
+.metrics .editing {\r
+    position: relative;\r
+    z-index: 100;\r
+}\r
+\r
+.metrics .left {\r
+    display: inline-block;\r
+    vertical-align: middle;\r
+}\r
+\r
+.metrics .right {\r
+    display: inline-block;\r
+    vertical-align: middle;\r
+}\r
+\r
+.metrics .top {\r
+    display: inline-block;\r
+}\r
+\r
+.metrics .bottom {\r
+    display: inline-block;\r
+}\r
+\r
+.sidebar {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    width: 200px;\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+    background-color: rgb(214, 221, 229);\r
+    border-right: 1px solid rgb(64%, 64%, 64%);\r
+}\r
+\r
+body.inactive .sidebar {\r
+    background-color: rgb(232, 232, 232);\r
+}\r
+\r
+.frame-storage-tree-item .icon {\r
+    content: url(Images/frame.png);\r
+}\r
+\r
+.database-storage-tree-item .icon {\r
+    content: url(Images/database.png);\r
+}\r
+\r
+.database-table-storage-tree-item .icon {\r
+    content: url(Images/databaseTable.png);\r
+}\r
+\r
+.domstorage-storage-tree-item.local-storage .icon {\r
+    content: url(Images/localStorage.png);\r
+}\r
+\r
+.domstorage-storage-tree-item.session-storage .icon {\r
+    content: url(Images/sessionStorage.png);\r
+}\r
+\r
+.cookie-storage-tree-item .icon {\r
+    content: url(Images/cookie.png);\r
+}\r
+\r
+.application-cache-storage-tree-item .icon {\r
+    content: url(Images/applicationCache.png);\r
+}\r
+\r
+/* FIXME: Make separate png for file-system */\r
+.file-system-storage-tree-item .icon {\r
+    content: url(Images/applicationCache.png);\r
+}\r
+\r
+#storage-views {\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 200px;\r
+    bottom: 0;\r
+}\r
+\r
+.resources.panel .sidebar {\r
+    padding-left: 0;\r
+    z-index: 10;\r
+}\r
+\r
+.resources.panel .sidebar li {\r
+    height: 17px;\r
+    white-space: nowrap;\r
+    text-indent: 0;\r
+    margin-left: -2px;\r
+}\r
+\r
+.resources.panel .sidebar li.parent {\r
+    text-indent: 0;\r
+    margin-left: -12px;\r
+}\r
+\r
+.resources.panel .sidebar li.selected {\r
+    color: white;\r
+    text-shadow: rgba(0, 0, 0, 0.33) 0 1px 0;\r
+    font-weight: bold;\r
+}\r
+\r
+.resources.panel .sidebar li.selected .selection {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));\r
+    border-top: 1px solid #979797;\r
+    height: 17px;\r
+}\r
+\r
+.resources.panel .sidebar :focus li.selected .selection {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));\r
+    border-top: 1px solid rgb(68, 128, 200);\r
+}\r
+\r
+body.inactive .resources.panel .sidebar li.selected .selection {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));\r
+    border-top: 1px solid rgb(151, 151, 151);\r
+}\r
+\r
+.resources.panel .sidebar .icon {\r
+    width: 16px;\r
+    height: 16px;\r
+    float: left;\r
+}\r
+\r
+.resources.panel .base-storage-tree-element-title {\r
+    overflow: hidden;\r
+    position: relative;\r
+    text-overflow: ellipsis;\r
+    padding-left: 2px;\r
+    top: 1px;\r
+}\r
+\r
+li.selected .base-storage-tree-element-subtitle {\r
+    color: white;\r
+}\r
+\r
+.base-storage-tree-element-subtitle {\r
+    padding-left: 2px;\r
+    color: rgb(80, 80, 80);\r
+    text-shadow: none;\r
+}\r
+\r
+.resources.panel .status {\r
+    float: right;\r
+    height: 16px;\r
+    margin-top: 1px;\r
+    margin-left: 4px;\r
+    line-height: 1em;\r
+}\r
+\r
+.resources.panel li .status .bubble {\r
+    height: 13px;\r
+    padding-top: 0;\r
+}\r
+\r
+.storage-view {\r
+    display: none;\r
+    overflow: hidden;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.storage-view.visible {\r
+    display: block;\r
+}\r
+\r
+.storage-view {\r
+    overflow: hidden;\r
+}\r
+\r
+.storage-view .data-grid {\r
+    border: none;\r
+    height: 100%;\r
+}\r
+\r
+.storage-empty-view, .storage-view .storage-table-error {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 25%;\r
+    left: 0;\r
+    right: 0;\r
+    font-size: 24px;\r
+    color: rgb(75%, 75%, 75%);\r
+    margin-top: auto;\r
+    margin-bottom: auto;\r
+    height: 50px;\r
+    line-height: 26px;\r
+    text-align: center;\r
+    font-weight: bold;\r
+    padding: 10px;\r
+    white-space: pre-wrap;\r
+}\r
+\r
+.storage-view .storage-table-error {\r
+    color: rgb(66%, 33%, 33%);\r
+}\r
+\r
+.data-grid {\r
+    position: relative;\r
+    border: 1px solid #aaa;\r
+}\r
+\r
+.data-grid .highlight {\r
+    background-color: rgb(255, 230, 179);\r
+}\r
+\r
+.data-grid tr.selected .highlight {\r
+    background-color: transparent;\r
+}\r
+\r
+.data-grid table {\r
+    table-layout: fixed;\r
+    border-spacing: 0;\r
+    border-collapse: collapse;\r
+    width: 100%;\r
+    font-size: 10px;\r
+    font-family: Lucida Grande, sans-serif;\r
+}\r
+\r
+.data-grid .data-container {\r
+    position: absolute;\r
+    top: 16px;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    padding-right: 14px;\r
+    overflow-x: hidden;\r
+    overflow-y: overlay;\r
+}\r
+\r
+.data-grid.inline .data-container {\r
+    position: static;\r
+}\r
+\r
+.data-grid th {\r
+    text-align: left;\r
+    background-image: url(Images/glossyHeader.png);\r
+    background-repeat: repeat-x;\r
+    border-right: 1px solid rgb(179, 179, 179);\r
+    border-bottom: 1px solid rgb(179, 179, 179);\r
+    height: 15px;\r
+    font-weight: normal;\r
+    vertical-align: middle;\r
+    padding: 0 4px;\r
+    white-space: nowrap;\r
+}\r
+\r
+.data-grid th.corner {\r
+    width: 15px;\r
+    border-right: 0 none transparent;\r
+}\r
+\r
+.data-grid tr.filler {\r
+    display: table-row !important;\r
+    height: auto !important;\r
+}\r
+\r
+.data-grid tr.filler td {\r
+    height: auto !important;\r
+    padding: 0 !important;\r
+}\r
+\r
+.data-grid table.data {\r
+    position: absolute;\r
+    left: 0;\r
+    top: 0;\r
+    right: 16px;\r
+    bottom: 0;\r
+    height: 100%;\r
+    border-top: 0 none transparent;\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(white), color-stop(0.5, white), color-stop(0.5, rgb(234, 243, 255)), to(rgb(234, 243, 255)));\r
+    -webkit-background-size: 1px 32px;\r
+}\r
+\r
+.data-grid.inline table.data {\r
+    position: static;\r
+}\r
+\r
+.data-grid table.data tr {\r
+    display: none;\r
+}\r
+\r
+.data-grid table.data tr.revealed {\r
+    display: table-row;\r
+}\r
+\r
+.data-grid td {\r
+    vertical-align: top;\r
+    height: 12px;\r
+    line-height: 12px;\r
+    padding: 2px 4px;\r
+    white-space: nowrap;\r
+    border-right: 1px solid #aaa;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.data-grid td > div, .data-grid th > div {\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.data-grid .centered div {\r
+    text-align: center;\r
+}\r
+\r
+.data-grid .right div {\r
+    text-align: right;\r
+}\r
+\r
+.data-grid th.sortable div {\r
+    position: relative;\r
+}\r
+\r
+.data-grid th.sortable:active {\r
+    background-image: url(Images/glossyHeaderPressed.png);\r
+}\r
+\r
+.data-grid th.sort-ascending, .data-grid th.sort-descending {\r
+    border-right: 1px solid rgb(107, 140, 196);\r
+    border-bottom: 1px solid rgb(107, 140, 196);\r
+    background-image: url(Images/glossyHeaderSelected.png);\r
+    background-repeat: repeat-x;\r
+}\r
+\r
+.data-grid th.sortable.sort-ascending:active, .data-grid th.sortable.sort-descending:active {\r
+    background-image: url(Images/glossyHeaderSelectedPressed.png);\r
+}\r
+\r
+.data-grid th.sort-ascending > div::after {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    height: 12px;\r
+    margin-bottom: auto;\r
+    margin-top: auto;\r
+    width: 8px;\r
+    content: url(Images/treeUpTriangleBlack.png);\r
+}\r
+\r
+.data-grid th.sort-descending > div::after {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    height: 8px;\r
+    margin-bottom: auto;\r
+    margin-top: auto;\r
+    width: 8px;\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+}\r
+\r
+body.inactive .data-grid th.sort-ascending, body.inactive .data-grid th.sort-descending {\r
+    background-image: url(Images/glossyHeader.png);\r
+    border-right: 1px solid rgb(179, 179, 179);\r
+    border-bottom: 1px solid rgb(179, 179, 179);\r
+}\r
+\r
+.data-grid tr.parent td.disclosure::before {\r
+    float: left;\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-right: 2px;\r
+    -webkit-user-select: none;\r
+}\r
+\r
+.data-grid tr.expanded td.disclosure::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 1px;\r
+}\r
+\r
+.data-grid tr.selected {\r
+    background-color: rgb(212, 212, 212);\r
+    color: inherit;\r
+}\r
+\r
+.data-grid:focus tr.selected {\r
+    background-color: rgb(56, 121, 217);\r
+    color: white;\r
+}\r
+\r
+.data-grid:focus tr.parent.selected td.disclosure::before {\r
+    content: url(Images/treeRightTriangleWhite.png);\r
+}\r
+\r
+.data-grid:focus tr.expanded.selected td.disclosure::before {\r
+    content: url(Images/treeDownTriangleWhite.png);\r
+}\r
+\r
+.data-grid tr:not(.parent) td.disclosure {\r
+    text-indent: 10px;\r
+}\r
+\r
+.data-grid-resizer {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    width: 5px;\r
+    z-index: 500;\r
+    cursor: col-resize;\r
+}\r
+\r
+.storage-view.query {\r
+    padding: 2px 0;\r
+    overflow-y: overlay;\r
+    overflow-x: hidden;\r
+    -webkit-text-size-adjust: auto;\r
+}\r
+\r
+.database-query-prompt {\r
+    position: relative;\r
+    padding: 1px 22px 1px 24px;\r
+    min-height: 16px; \r
+    white-space: pre-wrap;\r
+    -webkit-user-modify: read-write-plaintext-only;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.database-user-query::before, .database-query-prompt::before, .database-query-result::before {\r
+    position: absolute;\r
+    display: block;\r
+    content: "";\r
+    left: 7px;\r
+    top: 0.8em;\r
+    width: 10px;\r
+    height: 10px;\r
+    margin-top: -5px;\r
+    -webkit-user-select: none;\r
+}\r
+\r
+.database-query-prompt::before {\r
+    background-image: url(Images/userInputIcon.png);\r
+}\r
+\r
+.database-user-query {\r
+    position: relative;\r
+    border-bottom: 1px solid rgb(245, 245, 245);\r
+    padding: 1px 22px 1px 24px;\r
+    min-height: 16px; \r
+}\r
+\r
+.database-user-query::before {\r
+    background-image: url(Images/userInputPreviousIcon.png);\r
+}\r
+\r
+.database-query-text {\r
+    color: rgb(0, 128, 255);\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.database-query-result {\r
+    position: relative;\r
+    padding: 1px 22px 1px 24px;\r
+    min-height: 16px;\r
+    margin-left: -24px;\r
+    padding-right: 0;\r
+}\r
+\r
+.database-query-result.error {\r
+    color: red;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.database-query-result.error::before {\r
+    background-image: url(Images/errorIcon.png);\r
+}\r
+\r
+.panel-enabler-view {\r
+    z-index: 1000;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    background-color: white;\r
+    font-size: 13px;\r
+    text-align: center;\r
+    overflow-x: hidden;\r
+    overflow-y: overlay;\r
+    display: none;\r
+}\r
+\r
+.panel-enabler-view.visible {\r
+    display: block;\r
+}\r
+\r
+.panel-enabler-view .panel-enabler-view-content {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    max-height: 390px;\r
+    margin: auto;\r
+    white-space: nowrap;\r
+}\r
+\r
+.panel-enabler-view h1 {\r
+    color: rgb(110, 116, 128);\r
+    font-size: 16px;\r
+    line-height: 20px;\r
+    font-weight: normal;\r
+    margin-top: 0;\r
+}\r
+\r
+.panel-enabler-disclaimer {\r
+    font-size: 10px;\r
+    color: rgb(110, 116, 128);\r
+    margin-bottom: 12px;\r
+    margin-left: 20px;\r
+}\r
+\r
+.panel-enabler-disclaimer:empty {\r
+    display: none;\r
+}\r
+\r
+.panel-enabler-view img, div.welcome-instructions-aligner {\r
+    height: 100%;\r
+    min-height: 200px;\r
+    max-width: 100%;\r
+    top: 0;\r
+    bottom: 0;\r
+    padding: 20px 0 20px 20px;\r
+    margin: auto;\r
+    vertical-align: middle;\r
+}\r
+\r
+.panel-enabler-view img.hidden {\r
+    display: initial !important;\r
+    width: 0;\r
+}\r
+\r
+.panel-enabler-view form {\r
+    display: inline-block;\r
+    vertical-align: middle;\r
+    width: 330px;\r
+    margin: 0;\r
+    padding: 15px;\r
+    white-space: normal;\r
+}\r
+\r
+.panel-enabler-view label {\r
+    position: relative;\r
+    display: block;\r
+    text-align: left;\r
+    word-break: break-word;\r
+    margin: 0 0 5px 20px;\r
+}\r
+\r
+.panel-enabler-view button:not(.status-bar-item), .pane button, button.show-all-nodes {\r
+    color: rgb(6, 6, 6);\r
+    background-color: transparent;\r
+    border: 1px solid rgb(165, 165, 165);\r
+    background-color: rgb(237, 237, 237);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+    -webkit-border-radius: 12px;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+.panel-enabler-view button:not(.status-bar-item) {\r
+    font-size: 13px;\r
+    margin: 6px 0 0 0;\r
+    padding: 3px 20px;\r
+    height: 24px;\r
+}\r
+\r
+button.show-all-nodes {\r
+    font-size: 13px;\r
+    margin: 0;\r
+    padding: 0 20px;\r
+    height: 20px;\r
+}\r
+\r
+.panel-enabler-view.welcome {\r
+    z-index: auto;\r
+}\r
+\r
+.panel-enabler-view.welcome div.welcome-instructions-aligner {\r
+    display: inline-block;\r
+    width: 0;\r
+}\r
+\r
+.panel-enabler-view.welcome .instructions {\r
+    display: inline-block;\r
+    vertical-align: middle;\r
+    margin: 0;\r
+    white-space: normal;\r
+    line-height: 175%;\r
+}\r
+\r
+.panel-enabler-view.welcome .message {\r
+    margin-bottom: 2ex;\r
+}\r
+\r
+.panel-enabler-view.welcome button.status-bar-item {\r
+    background-image: none;\r
+    vertical-align: top;\r
+}\r
+\r
+.pane button {\r
+    margin: 6px 0 6px 3px;\r
+    padding: 2px 9px;\r
+}\r
+\r
+.panel-enabler-view button:active:not(.status-bar-item), .pane button:active, button.show-all-nodes:active {\r
+    background-color: rgb(215, 215, 215);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));\r
+}\r
+\r
+body.inactive .panel-enabler-view button:not(.status-bar-item), .panel-enabler-view button:disabled:not(.status-bar-item), body.inactive .pane button, .pane button:disabled, body.inactive button.show-all-nodes {\r
+    color: rgb(130, 130, 130);\r
+    border-color: rgb(212, 212, 212);\r
+    background-color: rgb(239, 239, 239);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(250, 250, 250)), to(rgb(235, 235, 235)));\r
+}\r
+\r
+.panel-enabler-view input {\r
+    height: 17px;\r
+    width: 17px;\r
+    border: 1px solid rgb(165, 165, 165);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+    -webkit-border-radius: 8px;\r
+    -webkit-appearance: none;\r
+    vertical-align: middle;\r
+    margin: 0 5px 5px 0;\r
+}\r
+\r
+.panel-enabler-view input:active {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));\r
+}\r
+\r
+.panel-enabler-view input:checked {\r
+    background: url(Images/radioDot.png) center no-repeat,\r
+                -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));\r
+}\r
+\r
+.panel-enabler-view.scripts img {\r
+    content: url(Images/scriptsSilhouette.png);\r
+}\r
+\r
+.panel-enabler-view.profiles img {\r
+    content: url(Images/profilesSilhouette.png);\r
+}\r
+\r
+button.enable-toggle-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/enableOutlineButtonGlyph.png);\r
+}\r
+\r
+button.enable-toggle-status-bar-item.toggled-on .glyph {\r
+    -webkit-mask-image: url(Images/enableSolidButtonGlyph.png);\r
+}\r
+\r
+.scripts-pause-on-exceptions-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/pauseOnExceptionButtonGlyph.png);\r
+}\r
+\r
+#scripts-status-bar {\r
+    position: absolute;\r
+    top: -1px;\r
+    left: 0;\r
+    right: 0;\r
+    height: 24px;\r
+}\r
+\r
+#scripts-files {\r
+    max-width: 250px;\r
+}\r
+\r
+#scripts-files option.extension-script {\r
+    color: rgb(70, 134, 240);\r
+}\r
+\r
+#scripts-functions {\r
+    max-width: 150px;\r
+}\r
+\r
+#scripts-status-bar .status-bar-item img {\r
+    margin-top: 2px;\r
+}\r
+\r
+#scripts-back img {\r
+    content: url(Images/back.png);\r
+}\r
+\r
+#scripts-forward img {\r
+    content: url(Images/forward.png);\r
+}\r
+\r
+#scripts-pause img {\r
+    content: url(Images/debuggerPause.png);\r
+}\r
+\r
+#scripts-pause.paused img {\r
+    content: url(Images/debuggerContinue.png);\r
+}\r
+\r
+#scripts-step-over img {\r
+    content: url(Images/debuggerStepOver.png);\r
+}\r
+\r
+#scripts-step-into img {\r
+    content: url(Images/debuggerStepInto.png);\r
+}\r
+\r
+#scripts-step-out img {\r
+    content: url(Images/debuggerStepOut.png);\r
+}\r
+\r
+.toggle-breakpoints .glyph {\r
+    -webkit-mask-image: url(Images/breakpointsActivateButtonGlyph.png);\r
+    background-color: rgb(96, 96, 96) !important;\r
+}\r
+\r
+.toggle-breakpoints.toggled-on .glyph {\r
+    -webkit-mask-image: url(Images/breakpointsDeactivateButtonGlyph.png);\r
+}\r
+\r
+#scripts-debugger-status {\r
+    position: absolute;\r
+    line-height: 24px;\r
+    top: 0;\r
+    right: 8px;\r
+}\r
+\r
+#scripts-sidebar-resizer-widget {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 225px;\r
+    width: 16px;\r
+    cursor: col-resize;\r
+    background-image: url(Images/statusbarResizerHorizontal.png);\r
+    background-repeat: no-repeat;\r
+    background-position: center;\r
+}\r
+\r
+#scripts-sidebar-buttons {\r
+    position: absolute;\r
+    right: 0;\r
+    top: 0;\r
+    bottom: 0;\r
+    width: 225px;\r
+    overflow: hidden;\r
+    border-left: 1px solid rgb(64%, 64%, 64%);\r
+}\r
+\r
+#script-resource-views {\r
+    display: block;\r
+    padding: 0;\r
+    position: absolute;\r
+    top: 23px;\r
+    left: 0;\r
+    right: 225px;\r
+    bottom: 0;\r
+}\r
+\r
+.script-view {\r
+    display: none;\r
+    overflow: hidden;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.script-view.visible {\r
+    display: block;\r
+}\r
+\r
+#scripts-sidebar {\r
+    position: absolute;\r
+    top: 23px;\r
+    right: 0;\r
+    bottom: 0;\r
+    width: 225px;\r
+    border-left: 1px solid rgb(64%, 64%, 64%);\r
+    cursor: default;\r
+    overflow: auto;\r
+}\r
+\r
+.resources-larger-resources-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/largerResourcesButtonGlyph.png);\r
+}\r
+\r
+#resources-filter, #console-filter.console-filter-top {\r
+    background: -webkit-gradient(linear, left top, left bottom, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));\r
+    border-bottom: 1px solid rgb(64%, 64%, 64%);\r
+    width: 100%;\r
+}\r
+\r
+#console-messages.console-filter-top {\r
+    margin-top: 23px;\r
+}\r
+\r
+#console-filter {\r
+    margin-top: 1px;\r
+}\r
+\r
+.tabbed-pane {\r
+    -webkit-box-orient: vertical;\r
+    height: 100%;\r
+}\r
+\r
+.tabbed-pane-content {\r
+    -webkit-box-flex: 1;\r
+    position: relative;\r
+}\r
+\r
+.tabbed-pane-header {\r
+    height: 23px;\r
+    padding: 0 10px;\r
+    border-bottom: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+.tabbed-pane-header li {\r
+    display: inline-block;\r
+    margin-top: 2px;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    color: rgb(46, 46, 46);\r
+    background: transparent;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;\r
+    vertical-align: middle;\r
+    padding: 3px 7px 2px;\r
+    height: 21px;\r
+    border: 1px solid transparent;\r
+    border-bottom: none;\r
+}\r
+\r
+.tabbed-pane-header li.selected {\r
+    background-color: white;\r
+    border: 1px solid rgb(163, 163, 163);\r
+    border-bottom: none;\r
+}\r
+\r
+.scope-bar {\r
+    height: 23px;\r
+    padding: 2px 10px 0;\r
+    overflow: hidden;\r
+}\r
+\r
+.scope-bar li {\r
+    display: inline-block;\r
+    margin: 1px 2px 0 0;\r
+    padding: 1px 7px 3px;\r
+    font-size: 11px;\r
+    line-height: 12px;\r
+    font-weight: bold;\r
+    color: rgb(46, 46, 46);\r
+    background: transparent;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;\r
+    -webkit-border-radius: 8px;\r
+    vertical-align: middle;\r
+}\r
+\r
+.scope-bar-divider {\r
+    margin: 1px 9px 0 8px;\r
+    background-color: rgba(0, 0, 0, 0.4);\r
+    height: 16px;\r
+    width: 1px;\r
+    vertical-align: middle;\r
+    display: inline-block;\r
+}\r
+\r
+.scope-bar li.selected, .scope-bar li:hover, .scope-bar li:active {\r
+    color: white;\r
+    text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;\r
+}\r
+\r
+.scope-bar li:hover {\r
+    background: rgba(0, 0, 0, 0.2);\r
+}\r
+\r
+.scope-bar li.selected {\r
+    background: rgba(0, 0, 0, 0.3);\r
+    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);\r
+}\r
+\r
+.scope-bar li:active {\r
+    background: rgba(0, 0, 0, 0.5);\r
+    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 -1px 1px rgba(255, 255, 255, 0.25) inset, 0 1px 0 rgba(255, 255, 255, 0.5);\r
+}\r
+\r
+#resources-container {\r
+    position: absolute;\r
+    top: 23px;\r
+    left: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    border-right: 0 none transparent;\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+}\r
+\r
+#resources-container.viewing-resource {\r
+    right: auto;\r
+    width: 200px;\r
+    border-right: 1px solid rgb(64%, 64%, 64%);\r
+}\r
+\r
+#resources-container.viewing-resource #resources-sidebar {\r
+    width: 100%;\r
+    border-right: 0 none transparent;\r
+}\r
+\r
+#resources-sidebar {\r
+    min-height: 100%;\r
+    bottom: auto;\r
+    overflow: visible;\r
+}\r
+\r
+#resources-container-content {\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 200px;\r
+    min-height: 100%;\r
+}\r
+\r
+#resources-container.viewing-resource #resources-container-content {\r
+    display: none;\r
+}\r
+\r
+#resources-summary {\r
+    position: absolute;\r
+    padding-top: 20px;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 93px;\r
+    margin-left: -1px;\r
+    border-left: 1px solid rgb(102, 102, 102);\r
+    background-color: rgb(101, 111, 130);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.5)));\r
+    background-repeat: repeat-x;\r
+    background-position: bottom;\r
+    text-align: center;\r
+    text-shadow: black 0 1px 1px;\r
+    white-space: nowrap;\r
+    color: white;\r
+    -webkit-background-size: 1px 6px;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+    z-index: 400;\r
+}\r
+\r
+.summary-graph-legend {\r
+    margin-top: -10px;\r
+    padding-left: 15px;\r
+}\r
+\r
+.summary-graph-legend-item {\r
+    display: inline-block;\r
+    font-weight: bold;\r
+    margin-right: 15px;\r
+    vertical-align: top;\r
+}\r
+\r
+.summary-graph-legend-item.total {\r
+    margin-left: 10px;\r
+}\r
+\r
+.summary-graph-legend-label {\r
+    display: inline-block;\r
+    text-align: left;\r
+}\r
+\r
+.summary-graph-legend-header {\r
+    font-size: 12px;\r
+}\r
+\r
+.summary-graph-legend-value {\r
+    font-size: 10px;\r
+}\r
+\r
+.summary-graph-legend-swatch {\r
+    vertical-align: top;\r
+    margin-top: 1px;\r
+    margin-right: 3px;\r
+}\r
+\r
+.resources-dividers {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    height: 100%;\r
+    top: 0;\r
+    z-index: -100;\r
+}\r
+\r
+.resources-event-dividers {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 5px;\r
+    height: 100%;\r
+    top: 0;\r
+    z-index: 300;\r
+    pointer-events: none;\r
+}\r
+\r
+.timeline .resources-event-dividers {\r
+    height: 19px;\r
+}\r
+\r
+.resources-dividers-label-bar {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0px;\r
+    right: 0;\r
+    background-color: rgba(255, 255, 255, 0.8);\r
+    background-clip: padding;\r
+    border-bottom: 1px solid rgba(0, 0, 0, 0.3);\r
+    height: 20px;\r
+    z-index: 200;\r
+}\r
+\r
+.resources-divider {\r
+    position: absolute;\r
+    width: 1px;\r
+    top: 0;\r
+    bottom: 0;\r
+    background-color: rgba(0, 0, 0, 0.1);\r
+}\r
+\r
+.resources-event-divider-padding {\r
+    position: absolute;\r
+    width: 8px;\r
+    top: 0;\r
+    bottom: 0;\r
+    pointer-events: auto;\r
+}\r
+\r
+.resources-event-divider {\r
+    position: absolute;\r
+    width: 2px;\r
+    top: 0;\r
+    bottom: 0;\r
+    z-index: 300;\r
+}\r
+\r
+.resources-red-divider {\r
+    background-color: rgba(255, 0, 0, 0.5);\r
+}\r
+\r
+.resources-blue-divider {\r
+    background-color: rgba(0, 0, 255, 0.5);\r
+}\r
+\r
+.resources-orange-divider {\r
+    background-color: rgba(255, 178, 23, 0.5);\r
+}\r
+\r
+.resources-divider.last {\r
+    background-color: transparent;\r
+}\r
+\r
+.resources-divider-label {\r
+    position: absolute;\r
+    top: 4px;\r
+    right: 3px;\r
+    font-size: 9px;\r
+    color: rgb(50%, 50%, 50%);\r
+    white-space: nowrap;\r
+}\r
+\r
+.memory-graph-label {\r
+    position: absolute;\r
+    top: 5px;\r
+    left: 5px;\r
+    font-size: 9px;\r
+    color: rgb(50%, 50%, 50%);\r
+    white-space: nowrap;\r
+}\r
+\r
+.resources-graph-label {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    margin: auto -7px;\r
+    height: 13px;\r
+    line-height: 13px;\r
+    font-size: 9px;\r
+    color: rgba(0, 0, 0, 0.75);\r
+    text-shadow: rgba(255, 255, 255, 0.25) 1px 0 0, rgba(255, 255, 255, 0.25) -1px 0 0, rgba(255, 255, 255, 0.333) 0 1px 0, rgba(255, 255, 255, 0.25) 0 -1px 0;\r
+    z-index: 150;\r
+    overflow: hidden;\r
+    text-align: center;\r
+    font-weight: bold;\r
+    opacity: 0;\r
+    -webkit-transition: opacity 250ms ease-in-out;\r
+}\r
+\r
+.resources-graph-side:hover .resources-graph-label {\r
+    opacity: 1;\r
+}\r
+\r
+.resources-graph-label:empty {\r
+    display: none;\r
+}\r
+\r
+.resources-graph-label.waiting {\r
+    margin-right: 5px;\r
+}\r
+\r
+.resources-graph-label.waiting-right {\r
+    margin-left: 5px;\r
+}\r
+\r
+.resources-graph-label.before {\r
+    color: rgba(0, 0, 0, 0.7);\r
+    text-shadow: none;\r
+    text-align: right;\r
+    margin-right: 2px;\r
+}\r
+\r
+.resources-graph-label.before::after {\r
+    padding-left: 2px;\r
+    height: 6px;\r
+    content: url(Images/graphLabelCalloutLeft.png);\r
+}\r
+\r
+.resources-graph-label.after {\r
+    color: rgba(0, 0, 0, 0.7);\r
+    text-shadow: none;\r
+    text-align: left;\r
+    margin-left: 2px;\r
+}\r
+\r
+.resources-graph-label.after::before {\r
+    padding-right: 2px;\r
+    height: 6px;\r
+    content: url(Images/graphLabelCalloutRight.png);\r
+}\r
+\r
+.resources-graph-bar {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    margin: auto -7px;\r
+    border-width: 6px 7px;\r
+    height: 13px;\r
+    min-width: 14px;\r
+    opacity: 0.65;\r
+    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-documents, .resources-category-stylesheets, .resources-category-images,\r
+.resources-category-scripts, .resources-category-xhr, .resources-category-fonts,\r
+.resources-category-websockets, .resources-category-other {\r
+    display: none;\r
+}\r
+\r
+.filter-all .resources-category-documents, .filter-documents .resources-category-documents,\r
+.filter-all .resources-category-stylesheets, .filter-stylesheets .resources-category-stylesheets,\r
+.filter-all .resources-category-images, .filter-images .resources-category-images,\r
+.filter-all .resources-category-scripts, .filter-scripts .resources-category-scripts,\r
+.filter-all .resources-category-xhr, .filter-xhr .resources-category-xhr,\r
+.filter-all .resources-category-fonts, .filter-fonts .resources-category-fonts,\r
+.filter-all .resources-category-websockets, .filter-websockets .resources-category-websockets,\r
+.filter-all .resources-category-other, .filter-other .resources-category-other,\r
+.resource-sidebar-tree-item.selected {\r
+    display: list-item;\r
+}\r
+\r
+.console-warning-level, .console-error-level, .console-log-level {\r
+    display: none;\r
+}\r
+\r
+.filter-all .console-warning-level, .filter-warnings .console-warning-level,\r
+.filter-all .console-error-level, .filter-errors .console-error-level,\r
+.filter-all .console-log-level, .filter-logs .console-log-level {\r
+    display: block;\r
+}\r
+\r
+.console-user-command-result {\r
+    display: block;\r
+}\r
+\r
+.resources-graph-bar.waiting, .resources-graph-bar.waiting-right {\r
+    opacity: 0.35;\r
+}\r
+\r
+.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-documents .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillBlue.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-documents.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillBlue.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-stylesheets .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillGreen.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-stylesheets.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillGreen.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-images .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillPurple.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-images.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillPurple.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-fonts .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillRed.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-fonts.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillRed.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-scripts .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillOrange.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-scripts.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillOrange.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-xhr .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillYellow.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-xhr.resource-cached .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillYellow.png) 6 7 6 7;\r
+}\r
+\r
+/* FIXME: Create bar images for WebSocket. */\r
+.resources-category-websockets .resources-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;\r
+}\r
+\r
+.resources-category-websockets.resource-cached .resources-graph-bar {\r
+   -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;\r
+}\r
+\r
+#resource-views {\r
+    position: absolute;\r
+    top: 23px;\r
+    right: 0;\r
+    left: 200px;\r
+    bottom: 0;\r
+}\r
+\r
+.source-view-frame {\r
+    width: 100%;\r
+    height: 100%;\r
+}\r
+\r
+.sidebar-resizer-vertical {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    width: 5px;\r
+    z-index: 500;\r
+    cursor: col-resize;\r
+}\r
+\r
+.resources .sidebar-resizer-vertical {\r
+    top: 23px;\r
+}\r
+\r
+.sidebar-tree, .sidebar-tree .children {\r
+    position: relative;\r
+    padding: 0;\r
+    margin: 0;\r
+    list-style: none;\r
+    font-size: 11px;\r
+}\r
+\r
+.sidebar-tree-section {\r
+    position: relative;\r
+    height: 18px;\r
+    padding: 4px 10px 6px 10px;\r
+    white-space: nowrap;\r
+    margin-top: 1px;\r
+    color: rgb(92, 110, 129);\r
+    font-weight: bold;\r
+    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;\r
+}\r
+\r
+.sidebar-tree-item {\r
+    position: relative;\r
+    height: 36px;\r
+    padding: 0 5px 0 5px;\r
+    white-space: nowrap;\r
+    margin-top: 1px;\r
+    line-height: 34px;\r
+    border-top: 1px solid transparent;\r
+}\r
+\r
+.sidebar-tree .children {\r
+    display: none;\r
+}\r
+\r
+.sidebar-tree .children.expanded {\r
+    display: block;\r
+}\r
+\r
+.sidebar-tree-section + .children > .sidebar-tree-item {\r
+    padding-left: 10px !important;\r
+}\r
+\r
+.sidebar-tree-section + .children.small > .sidebar-tree-item {\r
+    padding-left: 17px !important;\r
+}\r
+\r
+.sidebar-tree > .children > .sidebar-tree-item {\r
+    padding-left: 37px;\r
+}\r
+\r
+.sidebar-tree > .children > .children > .sidebar-tree-item {\r
+    padding-left: 37px;\r
+}\r
+\r
+.sidebar-tree.hide-disclosure-buttons > .children {\r
+    display: none;\r
+}\r
+\r
+.sidebar-tree > .children.hide-disclosure-buttons > .children {\r
+    display: none;\r
+}\r
+\r
+.sidebar-tree.some-expandable:not(.hide-disclosure-buttons) > .sidebar-tree-item:not(.parent) .icon {\r
+    margin-left: 16px;\r
+}\r
+\r
+.sidebar-tree-item .disclosure-button {\r
+    float: left;\r
+    width: 16px;\r
+    height: 100%;\r
+    border: 0;\r
+    background-color: transparent;\r
+    background-image: url(Images/disclosureTriangleSmallRight.png);\r
+    background-repeat: no-repeat;\r
+    background-position: center;\r
+    -webkit-apearance: none;\r
+}\r
+\r
+.sidebar-tree.hide-disclosure-buttons .sidebar-tree-item .disclosure-button {\r
+    display: none;\r
+}\r
+\r
+body.inactive .sidebar-tree-item .disclosure-button {\r
+    background-image: url(Images/disclosureTriangleSmallRightBlack.png);\r
+}\r
+\r
+body.inactive .sidebar-tree-item.expanded .disclosure-button {\r
+    background-image: url(Images/disclosureTriangleSmallDownBlack.png);\r
+}\r
+\r
+body.inactive .sidebar-tree-item .disclosure-button:active {\r
+    background-image: url(Images/disclosureTriangleSmallRightDownBlack.png);\r
+}\r
+\r
+.sidebar-tree-item.selected .disclosure-button {\r
+    background-image: url(Images/disclosureTriangleSmallRightWhite.png) !important;\r
+}\r
+\r
+.sidebar-tree-item.expanded .disclosure-button {\r
+    background-image: url(Images/disclosureTriangleSmallDown.png);\r
+}\r
+\r
+.sidebar-tree-item.selected.expanded .disclosure-button {\r
+    background-image: url(Images/disclosureTriangleSmallDownWhite.png) !important;\r
+}\r
+\r
+.sidebar-tree-item.selected .disclosure-button:active {\r
+    background-image: url(Images/disclosureTriangleSmallRightDownWhite.png) !important;\r
+}\r
+\r
+.sidebar-tree-item .disclosure-button:active {\r
+    background-image: url(Images/disclosureTriangleSmallRightDown.png);\r
+}\r
+\r
+.sidebar-tree-item .icon {\r
+    float: left;\r
+    width: 32px;\r
+    height: 32px;\r
+    margin-top: 1px;\r
+    margin-right: 3px;\r
+}\r
+\r
+li .status {\r
+    float: right;\r
+    height: 16px;\r
+    margin-top: 9px;\r
+    margin-left: 4px;\r
+    line-height: 1em;\r
+}\r
+\r
+li .status:empty {\r
+    display: none;\r
+}\r
+\r
+li .status .bubble {\r
+    display: inline-block;\r
+    height: 14px;\r
+    min-width: 16px;\r
+    margin-top: 1px;\r
+    background-color: rgb(128, 151, 189);\r
+    vertical-align: middle;\r
+    white-space: nowrap;\r
+    padding: 1px 4px;\r
+    text-align: center;\r
+    font-size: 11px;\r
+    line-height: normal;\r
+    font-family: Helvetica, Arial, sans-serif;\r
+    font-weight: bold;\r
+    text-shadow: none;\r
+    color: white;\r
+    -webkit-border-radius: 7px;\r
+}\r
+\r
+li .status .bubble:empty {\r
+    display: none;\r
+}\r
+\r
+li.selected .status .bubble {\r
+    background-color: white !important;\r
+    color: rgb(132, 154, 190) !important;\r
+}\r
+\r
+:focus li.selected .status .bubble {\r
+    color: rgb(36, 98, 172) !important;\r
+}\r
+\r
+body.inactive li.selected .status .bubble {\r
+    color: rgb(159, 159, 159) !important;\r
+}\r
+\r
+.sidebar-tree.small .sidebar-tree-item, .sidebar-tree .children.small .sidebar-tree-item, .sidebar-tree-item.small, .small .resources-graph-side {\r
+    height: 20px;\r
+}\r
+\r
+.sidebar-tree.small .sidebar-tree-item .icon, .sidebar-tree .children.small .sidebar-tree-item .icon, .sidebar-tree-item.small .icon {\r
+    width: 16px;\r
+    height: 16px;\r
+}\r
+\r
+.sidebar-tree.small .sidebar-tree-item .status, .sidebar-tree .children.small .sidebar-tree-item .status, .sidebar-tree-item.small .status {\r
+    margin-top: 1px;\r
+}\r
+\r
+.sidebar-tree-item.selected {\r
+    color: white;\r
+    border-top: 1px solid rgb(145, 160, 192);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));\r
+    text-shadow: rgba(0, 0, 0, 0.33) 0 1px 0;\r
+    font-weight: bold;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+:focus .sidebar-tree-item.selected {\r
+    border-top: 1px solid rgb(68, 128, 200);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));\r
+}\r
+\r
+body.inactive .sidebar-tree-item.selected {\r
+    border-top: 1px solid rgb(151, 151, 151);\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));\r
+}\r
+\r
+.sidebar-tree-item .titles {\r
+    position: relative;\r
+    top: 5px;\r
+    line-height: 11px;\r
+    padding-bottom: 1px;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    white-space: nowrap;\r
+}\r
+\r
+.sidebar-tree-item .titles.no-subtitle {\r
+    top: 10px;\r
+}\r
+\r
+.sidebar-tree.small .sidebar-tree-item .titles, .sidebar-tree .children.small .sidebar-tree-item .titles, .sidebar-tree-item.small .titles {\r
+    top: 2px;\r
+    line-height: normal;\r
+}\r
+\r
+.sidebar-tree:not(.small) .sidebar-tree-item:not(.small) .title::after, .sidebar-tree .children:not(.small) .sidebar-tree-item .title::after {\r
+    content: "\A";\r
+    white-space: pre;\r
+}\r
+\r
+.sidebar-tree-item .subtitle {\r
+    font-size: 9px;\r
+    color: rgba(0, 0, 0, 0.7);\r
+}\r
+\r
+.sidebar-tree.small .sidebar-tree-item .subtitle, .sidebar-tree .children.small .sidebar-tree-item .subtitle, .sidebar-tree-item.small .subtitle {\r
+    display: none;\r
+}\r
+\r
+.sidebar-tree-item.selected .subtitle {\r
+    color: rgba(255, 255, 255, 0.9);\r
+}\r
+\r
+#resources-graphs {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    max-height: 100%;\r
+    top: 112px;\r
+}\r
+\r
+.resources-graph-side {\r
+    position: relative;\r
+    height: 36px;\r
+    padding: 0 5px;\r
+    white-space: nowrap;\r
+    margin-top: 1px;\r
+    border-top: 1px solid transparent;\r
+    overflow: hidden;\r
+}\r
+\r
+.resources-graph-bar-area {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 8px;\r
+    left: 9px;\r
+}\r
+\r
+#resources-container:not(.viewing-resource) .resource-sidebar-tree-item:nth-of-type(2n) {\r
+    background-color: rgba(0, 0, 0, 0.05);\r
+}\r
+\r
+#resources-container:not(.viewing-resource) .resources-graph-side:nth-of-type(2n) {\r
+    background-color: rgba(0, 0, 0, 0.05);\r
+}\r
+\r
+.resources-time-graph-sidebar-item .icon {\r
+    content: url(Images/resourcesTimeGraphIcon.png);\r
+}\r
+\r
+.resources-size-graph-sidebar-item .icon {\r
+    content: url(Images/resourcesSizeGraphIcon.png);\r
+}\r
+\r
+.resources-size-graph-sidebar-item .icon {\r
+    content: url(Images/resourcesSizeGraphIcon.png);\r
+}\r
+\r
+.resource-sidebar-tree-item .icon {\r
+    content: url(Images/resourcePlainIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item .icon {\r
+    content: url(Images/resourcePlainIconSmall.png);\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-documents .icon {\r
+    content: url(Images/resourceDocumentIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-documents .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-stylesheets .icon {\r
+    content: url(Images/resourceCSSIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-stylesheets .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-images .icon {\r
+    position: relative;\r
+    background-image: url(Images/resourcePlainIcon.png);\r
+    background-repeat: no-repeat;\r
+    content: "";\r
+}\r
+\r
+.resources-category-images .image-resource-icon-preview {\r
+    position: absolute;\r
+    margin: auto;\r
+    top: 3px;\r
+    bottom: 4px;\r
+    left: 5px;\r
+    right: 5px;\r
+    max-width: 18px;\r
+    max-height: 21px;\r
+    min-width: 1px;\r
+    min-height: 1px;\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-images .icon {\r
+    background-image: url(Images/resourcePlainIconSmall.png);\r
+    content: "";\r
+}\r
+\r
+.children.small .resources-category-images .image-resource-icon-preview {\r
+    top: 2px;\r
+    bottom: 1px;\r
+    left: 3px;\r
+    right: 3px;\r
+    max-width: 8px;\r
+    max-height: 11px;\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-fonts .icon {\r
+    content: url(Images/resourcePlainIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-fonts .icon {\r
+    content: url(Images/resourcePlainIconSmall.png);\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-scripts .icon {\r
+    content: url(Images/resourceJSIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-scripts .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.resource-sidebar-tree-item.resources-category-xhr .icon {\r
+    content: url(Images/resourcePlainIcon.png);\r
+}\r
+\r
+.children.small .resource-sidebar-tree-item.resources-category-xhr .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.bubble.debug, .console-debug-level .bubble {\r
+    background-color: rgb(0, 0, 255) !important;\r
+}\r
+\r
+.bubble.warning, .console-warning-level .bubble {\r
+    background-color: rgb(232, 164, 0) !important;\r
+}\r
+\r
+.bubble.error, .console-error-level .bubble {\r
+    background-color: rgb(216, 35, 35) !important;\r
+}\r
+\r
+.bubble.search-matches {\r
+    background-image: url(Images/searchSmallWhite.png);\r
+    background-repeat: no-repeat;\r
+    background-position: 3px 2px;\r
+    padding-left: 13px !important;\r
+}\r
+\r
+li.selected .bubble.search-matches {\r
+    background-image: url(Images/searchSmallBlue.png);\r
+}\r
+\r
+:focus li.selected .bubble.search-matches {\r
+    background-image: url(Images/searchSmallBrightBlue.png);\r
+}\r
+\r
+body.inactive li.selected .bubble.search-matches {\r
+    background-image: url(Images/searchSmallGray.png);\r
+}\r
+\r
+/* Timeline Style */\r
+\r
+#timeline-overview-panel {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 80px;\r
+}\r
+\r
+#timeline-overview-panel .timeline-graph-bar {\r
+    pointer-events: none;\r
+}\r
+\r
+.timeline-sidebar-background {\r
+    top: 90px;\r
+    bottom: 0;\r
+}\r
+\r
+.timeline .sidebar {\r
+    overflow-y: hidden;\r
+    z-index: 100;\r
+    min-height: 100%;\r
+    bottom: auto;\r
+}\r
+\r
+#timeline-overview-separator {\r
+    position: absolute;\r
+    top: 80px;\r
+    left: 0;\r
+    right: 0;\r
+    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(253, 253, 253)), to(rgb(213, 213, 213)));\r
+    border-top: 1px solid rgb(140, 140, 140);\r
+    border-bottom: 1px solid rgb(115, 115, 115);\r
+    height: 10px;\r
+}\r
+\r
+#timeline-overview-sidebar {\r
+    position: absolute;\r
+    width: 200px;\r
+    top: 0px;\r
+    bottom: 0px;\r
+    left: 0px;\r
+    padding-top: 2px;\r
+    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(242, 242, 242)), to(rgb(209, 209, 209)));\r
+    border-right: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+#timeline-overview-grid {\r
+    position: absolute;\r
+    top: 0px;\r
+    bottom: 0px;\r
+    left: 200px;\r
+    right: 0px;\r
+    background-color: rgb(255, 255, 255);\r
+}\r
+\r
+.timeline-window-selector {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    background-color: rgba(125, 173, 217, 0.5);\r
+    z-index: 250;\r
+}\r
+\r
+#timeline-overview-window {\r
+    background-color: white;\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    top: 0;\r
+    bottom: 60px;\r
+    z-index: 150;\r
+}\r
+\r
+.timeline-overview-dividers-background {\r
+    left: 0%;\r
+    right: 0%;\r
+    top: 0px;\r
+    bottom: 60px;\r
+    background-color: black;\r
+    position: absolute;\r
+}\r
+\r
+.timeline-overview-window-rulers {\r
+    top: 0;\r
+    bottom: 0;\r
+    position: absolute;\r
+    opacity: 0.2;\r
+    border-right: 1px solid black;\r
+    border-left: 1px solid black;\r
+    z-index: 150;\r
+}\r
+\r
+.timeline-window-resizer {\r
+    position: absolute;\r
+    top: 0px;\r
+    bottom: 60px;\r
+    width: 5px;\r
+    margin-left: -3px;\r
+    margin-right: -2px;\r
+    background-color: rgb(153, 153, 153);\r
+    z-index: 500;\r
+    cursor: col-resize;\r
+    -webkit-border-radius: 2px;\r
+    -webkit-box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;\r
+}\r
+\r
+#timeline-overview-grid #resources-graphs {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    height: 80px;\r
+}\r
+\r
+#timeline-container {\r
+    position: absolute;\r
+    top: 90px;\r
+    left: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    border-right: 0 none transparent;\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+}\r
+\r
+.timeline-category-statusbar-item {\r
+    height: 24px;\r
+    line-height: 24px;\r
+    padding-left: 6px;\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    font-weight: bold;\r
+}\r
+\r
+.timeline-category-statusbar-item .timeline-category-checkbox {\r
+    width: 10px;\r
+    height: 11px;\r
+    margin: 0 3px 0 5px;\r
+    padding: 0;\r
+    background-image: url(Images/timelineCheckmarks.png);\r
+    background-repeat: no-repeat;\r
+    background-position: 0 -66px;\r
+    vertical-align: -1px;\r
+    -webkit-appearance: none;\r
+}\r
+\r
+.timeline-category-statusbar-item .timeline-category-checkbox:checked {\r
+    background-position-x: -10px;\r
+}\r
+\r
+.timeline-category-statusbar-item.timeline-category-loading .timeline-category-checkbox {\r
+    background-position-y: 0;\r
+}\r
+\r
+.timeline-category-statusbar-item.timeline-category-scripting .timeline-category-checkbox {\r
+    background-position-y: -33px;\r
+}\r
+\r
+.timeline-category-statusbar-item.timeline-category-rendering .timeline-category-checkbox {\r
+    background-position-y: -11px;\r
+}\r
+\r
+.timeline-tree-item {\r
+    height: 18px;\r
+    line-height: 15px;\r
+    padding-right: 5px;\r
+    padding-left: 10px;\r
+    padding-top: 2px;\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.timeline-expandable {\r
+    position: absolute;\r
+    border-left: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+.timeline-expandable-left {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    width: 3px;\r
+    border-top: 1px solid rgb(163, 163, 163);\r
+    border-bottom: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+.timeline-expandable-collapsed {\r
+    background-image: url(Images/disclosureTriangleSmallRightBlack.png);\r
+    background-position-x: 1px;\r
+    background-position-y: 2px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.timeline-expandable-expanded {\r
+    background-image: url(Images/disclosureTriangleSmallDownBlack.png);\r
+    background-position-x: 1px;\r
+    background-position-y: 3px;\r
+    background-repeat: no-repeat;\r
+}\r
+\r
+.timeline-tree-item .type {\r
+    padding-left: 14px;\r
+}\r
+\r
+.timeline-tree-item .count {\r
+    font-family: Helvetica, Arial, sans-serif;\r
+    font-weight: bold;\r
+}\r
+\r
+.timeline-tree-item .timeline-tree-icon {\r
+    background-image: url(Images/timelineDots.png);\r
+    margin-top: 2px;\r
+    width: 12px;\r
+    height: 12px;\r
+    position: absolute;\r
+}\r
+\r
+.timeline-tree-item.even {\r
+    background-color: rgba(0, 0, 0, 0.05);\r
+}\r
+\r
+.timeline-tree-item .data.dimmed {\r
+    color: rgba(0, 0, 0, 0.7);\r
+}\r
+\r
+#timeline-overview-timelines,\r
+#timeline-overview-memory {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    top: 20px;\r
+    z-index: 160;\r
+}\r
+\r
+#timeline-overview-memory > canvas {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    top: 5px;\r
+}\r
+\r
+\r
+#timeline-graphs {\r
+    position: absolute;\r
+    left: 0;\r
+    right: 0;\r
+    max-height: 100%;\r
+    top: 19px;\r
+}\r
+\r
+.timeline-graph-side {\r
+    position: relative;\r
+    height: 18px;\r
+    padding: 0 5px;\r
+    white-space: nowrap;\r
+    margin-top: 0px;\r
+    border-top: 1px solid transparent;\r
+    overflow: hidden;\r
+    pointer-events: none;\r
+}\r
+\r
+.timeline-overview-graph-side {\r
+    height: 20px;\r
+    z-index: 170;\r
+    pointer-events: none;\r
+}\r
+\r
+.timeline-overview-graph-side .timeline-graph-bar {\r
+    height: 13px;\r
+}\r
+\r
+.timeline-graph-bar-area {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    left: 3px;\r
+    pointer-events: none;\r
+}\r
+\r
+.timeline-graph-bar {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    margin: auto -2px;\r
+    border-width: 4px 4px 5px;\r
+    height: 9px;\r
+    min-width: 5px;\r
+    opacity: 0.8;\r
+    -webkit-border-image: url(Images/timelineBarGray.png) 4 4 5 4;\r
+    z-index: 180;\r
+    pointer-events: visibleFill;\r
+}\r
+\r
+.timeline-graph-bar.with-children {\r
+    opacity: 0.2;\r
+}\r
+\r
+.timeline-graph-bar.cpu {\r
+    opacity: 0.6;\r
+}\r
+\r
+.timeline-graph-side.even {\r
+    background-color: rgba(0, 0, 0, 0.05);\r
+}\r
+\r
+.timeline-category-loading .timeline-graph-bar {\r
+    -webkit-border-image: url(Images/timelineBarBlue.png) 4 4 5 4;\r
+}\r
+\r
+.timeline-category-scripting .timeline-graph-bar {\r
+    -webkit-border-image: url(Images/timelineBarOrange.png) 4 4 5 4;\r
+}\r
+\r
+.timeline-category-rendering .timeline-graph-bar {\r
+    -webkit-border-image: url(Images/timelineBarPurple.png) 4 4 5 4;\r
+}\r
+\r
+.timeline-aggregated-category {\r
+    display: inline-block;\r
+    height: 11px;\r
+    margin-right: 2px;\r
+    margin-left: 6px;\r
+    position: relative;\r
+    top: 2px;\r
+    width: 10px;\r
+}\r
+\r
+.timeline-loading {\r
+    -webkit-border-image: url(Images/timelineBarBlue.png) 4 4 5 4;\r
+}\r
+\r
+.timeline-scripting {\r
+    -webkit-border-image: url(Images/timelineBarOrange.png) 4 4 5 4;\r
+}\r
+\r
+.timeline-rendering {\r
+    -webkit-border-image: url(Images/timelineBarPurple.png) 4 4 5 4;\r
+}\r
+\r
+.popover .timeline-aggregated-category.timeline-loading {\r
+    margin-left: 0px;\r
+}\r
+\r
+.timeline-category-loading .timeline-tree-icon {\r
+    background-position-y: 0px;\r
+}\r
+\r
+.timeline-category-scripting .timeline-tree-icon {\r
+    background-position-y: 48px;\r
+}\r
+\r
+.timeline-category-rendering .timeline-tree-icon {\r
+    background-position-y: 72px;\r
+}\r
+\r
+.timeline-details {\r
+    -webkit-user-select: text;\r
+    vertical-align: top;\r
+}\r
+\r
+.timeline-function-name {\r
+    text-align: right;\r
+}\r
+\r
+.timeline-stacktrace-title {\r
+    padding-top: 4px;\r
+}\r
+\r
+.timeline-details-row-title {\r
+    font-weight: bold;\r
+    text-align: right;\r
+    white-space: nowrap;\r
+}\r
+\r
+.timeline-details-row-data {\r
+    white-space: nowrap;\r
+}\r
+\r
+.timeline-details-title {\r
+    border-bottom: 1px solid #B8B8B8;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    padding-bottom: 5px;\r
+    padding-top: 0px;\r
+    white-space: nowrap;\r
+}\r
+\r
+.timeline-filter-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/largerResourcesButtonGlyph.png);\r
+}\r
+\r
+.timeline-filter-status-bar-item.toggled-on .glyph {\r
+    background-color: rgb(66, 129, 235) !important;\r
+}\r
+\r
+.timeline-records-counter, .storage-application-cache-status, .storage-application-cache-connectivity {\r
+    font-size: 11px;\r
+    text-shadow: white 0 1px 0;\r
+}\r
+\r
+#main-status-bar > .timeline-records-counter {\r
+    float: right;\r
+    margin-top: 4px;\r
+    margin-right: 25px;\r
+}\r
+\r
+#counters > .timeline-records-counter {\r
+    float: left;\r
+    margin-top: -2px;\r
+}\r
+\r
+.storage-application-cache-status-icon, .storage-application-cache-connectivity-icon {\r
+    margin-bottom: -3px;\r
+    margin-left: 5px;\r
+    vertical-align: middle;\r
+}\r
+\r
+.status-bar-divider {\r
+    margin-left: 7px;\r
+    border-right: 1px solid #CCC;\r
+}\r
+\r
+.storage-application-cache-status, .storage-application-cache-connectivity {\r
+    position: relative;\r
+    top: 4px;\r
+}\r
+\r
+/* Profiler Style */\r
+\r
+#profile-views {\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 200px;\r
+    bottom: 0;\r
+}\r
+\r
+.status-bar-items {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 200px;\r
+    overflow: hidden;\r
+    border-left: 1px solid rgb(184, 184, 184);\r
+    margin-left: -1px;\r
+}\r
+\r
+.profile-sidebar-tree-item .icon {\r
+    content: url(Images/profileIcon.png);\r
+}\r
+\r
+.profile-sidebar-tree-item.small .icon {\r
+    content: url(Images/profileSmallIcon.png);\r
+}\r
+\r
+.profile-group-sidebar-tree-item .icon {\r
+    content: url(Images/profileGroupIcon.png);\r
+}\r
+\r
+.profile-view {\r
+    display: none;\r
+    overflow: hidden;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.profile-view.visible {\r
+    display: block;\r
+}\r
+\r
+.profile-view .data-grid {\r
+    border: none;\r
+    height: 100%;\r
+}\r
+\r
+.profile-view .data-grid th.average-column {\r
+    text-align: center;\r
+}\r
+\r
+.profile-view .data-grid td.average-column {\r
+    text-align: right;\r
+}\r
+\r
+.profile-view .data-grid th.self-column {\r
+    text-align: center;\r
+}\r
+\r
+.profile-view .data-grid td.self-column {\r
+    text-align: right;\r
+}\r
+\r
+.profile-view .data-grid th.total-column {\r
+    text-align: center;\r
+}\r
+\r
+.profile-view .data-grid td.total-column {\r
+    text-align: right;\r
+}\r
+\r
+.profile-view .data-grid .calls-column {\r
+    text-align: center;\r
+}\r
+\r
+.profile-node-file {\r
+    float: right;\r
+    color: gray;\r
+    margin-top: -1px;\r
+}\r
+\r
+.data-grid tr.selected .profile-node-file {\r
+    color: rgb(33%, 33%, 33%);\r
+}\r
+\r
+.data-grid:focus tr.selected .profile-node-file {\r
+    color: white;\r
+}\r
+\r
+button.enable-toggle-status-bar-item .glyph {\r
+}\r
+\r
+.record-profile-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/recordButtonGlyph.png);\r
+}\r
+\r
+.record-profile-status-bar-item.toggled-on .glyph {\r
+    -webkit-mask-image: url(Images/recordToggledButtonGlyph.png);\r
+    background-color: rgb(216, 0, 0) !important;\r
+}\r
+\r
+/* FIXME: should have its own glyph. */\r
+.heap-snapshot-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/focusButtonGlyph.png);\r
+}\r
+\r
+.node-search-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/nodeSearchButtonGlyph.png);\r
+}\r
+\r
+.percent-time-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/percentButtonGlyph.png);\r
+}\r
+\r
+.focus-profile-node-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/focusButtonGlyph.png);\r
+}\r
+\r
+.exclude-profile-node-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/excludeButtonGlyph.png);\r
+}\r
+\r
+.reset-profile-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/reloadButtonGlyph.png);\r
+}\r
+\r
+.delete-storage-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/excludeButtonGlyph.png);\r
+}\r
+\r
+.refresh-storage-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/reloadButtonGlyph.png);\r
+}\r
+\r
+ol.breakpoint-list {\r
+    -webkit-padding-start: 0;\r
+    list-style: none;\r
+    margin: 0;\r
+}\r
+\r
+.breakpoint-list li {\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    padding: 2px 0;\r
+    color: black;\r
+}\r
+\r
+.breakpoint-list li:hover {\r
+    color: rgb(15%, 15%, 15%);\r
+}\r
+\r
+.breakpoint-list .checkbox-elem {\r
+    font-size: 10px;\r
+    margin: 0 4px;\r
+    vertical-align: top;\r
+    position: relative;\r
+    z-index: 1;\r
+}\r
+\r
+.breakpoint-list .source-text {\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    margin: 2px 0 0px 20px;\r
+}\r
+\r
+.pane .breakpoint-hit {\r
+    background-color: rgb(255, 255, 194);\r
+}\r
+\r
+li.breakpoint-hit .breakpoint-hit-marker {\r
+    background-color: rgb(255, 255, 194);\r
+    height: 18px;\r
+    left: 0px;\r
+    margin-top: -16px;\r
+    position: absolute;\r
+    right: 0px;\r
+    z-index: -1;\r
+}\r
+\r
+.webkit-html-js-node, .webkit-html-css-node {\r
+    white-space: pre;\r
+}\r
+\r
+.source-frame-breakpoint-condition {\r
+    z-index: 30;\r
+    padding: 4px;\r
+    background-color: rgb(203, 226, 255);\r
+    -webkit-border-radius: 7px;\r
+    border: 2px solid rgb(169, 172, 203); \r
+    width: 90%; \r
+}\r
+\r
+.source-frame-breakpoint-message {\r
+    background-color: transparent;\r
+    font-family: Lucida Grande, sans-serif; \r
+    font-weight: normal;\r
+    font-size: 11px;\r
+    text-align: left;\r
+    text-shadow: none;\r
+    color: rgb(85, 85, 85);\r
+    cursor: default;\r
+    margin: 0 0 2px 0; \r
+}\r
+\r
+#source-frame-breakpoint-condition {\r
+    margin: 0;\r
+    border: 1px inset rgb(190, 190, 190) !important;\r
+    width: 100%;\r
+    box-shadow: none !important;\r
+    outline: none !important;\r
+    -webkit-user-modify: read-write;\r
+}\r
+\r
+.source-frame-popover-title {\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    white-space: nowrap;\r
+    font-weight: bold;\r
+    padding-left: 18px;\r
+}\r
+\r
+.source-frame-popover-tree {\r
+    border-top: 1px solid rgb(194, 194, 147);\r
+    overflow: auto;\r
+    position: absolute;\r
+    top: 15px;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+}\r
+\r
+.source-frame-eval-expression {\r
+    border: 1px solid rgb(163, 41, 34);\r
+    margin: -1px;\r
+    background-color: rgb(255, 255, 194);\r
+}\r
+\r
+.styles-sidebar-separator {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(243, 243, 243)), color-stop(0.05, rgb(243, 243, 243)), color-stop(0.05, rgb(230, 230, 230)), to(rgb(209, 209, 209)));\r
+    padding: 0 5px;\r
+    border-top: 1px solid rgb(189, 189, 189);\r
+    border-bottom: 1px solid rgb(189, 189, 189);\r
+    color: rgb(110, 110, 110);\r
+    text-shadow: white 0 1px 0;\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    font-size: 11px;\r
+}\r
+\r
+.styles-selector {\r
+    cursor: text;\r
+}\r
+\r
+.workers-list {\r
+    list-style: none;\r
+    margin: 0;\r
+    padding: 0;\r
+}\r
\r
+.workers-list > li {\r
+    overflow: hidden;\r
+    text-overflow: ellipsis;\r
+    white-space: nowrap;\r
+    margin-left: 1em;\r
+    font-size: 12px;\r
+}\r
+\r
+a.worker-item {\r
+    color: rgb(33%, 33%, 33%);\r
+    cursor: pointer;\r
+    text-decoration: none;\r
+}\r
+\r
+.styles-section {\r
+    padding: 2px 2px 4px 4px;\r
+    min-height: 18px;\r
+    white-space: nowrap;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.styles-section:not(.first-styles-section) {\r
+    border-top: 1px solid rgb(191, 191, 191);\r
+}\r
+\r
+.styles-section.read-only {\r
+    background-color: rgb(240, 240, 240);\r
+}\r
+\r
+.styles-section .properties li.not-parsed-ok {\r
+    margin-left: 0px;\r
+}\r
+\r
+.styles-section .properties li.not-parsed-ok::before {\r
+    content: url(Images/warningIcon.png);\r
+    opacity: 0.75;\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 0;\r
+    padding-right: 5px;\r
+    vertical-align: sub;\r
+    -webkit-user-select: none;\r
+    cursor: default;\r
+}\r
+\r
+.styles-section .header {\r
+    white-space: nowrap;\r
+    -webkit-background-origin: padding;\r
+    -webkit-background-clip: padding;\r
+}\r
+\r
+.styles-section .header .title {\r
+    word-wrap: break-word;\r
+    white-space: normal;\r
+}\r
+\r
+.styles-section .header .subtitle {\r
+    color: rgb(85, 85, 85);\r
+    float: right;\r
+    margin-left: 5px;\r
+    max-width: 65%;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+}\r
+\r
+.styles-section .header .subtitle a {\r
+    color: inherit;\r
+}\r
+\r
+.styles-section a::before {\r
+    content: attr(data-uncopyable);\r
+}\r
+\r
+.styles-section .properties {\r
+    display: none;\r
+    margin: 0;\r
+    padding: 2px 4px 0 8px;\r
+    list-style: none;\r
+}\r
+\r
+.styles-section.no-affect .properties li {\r
+    opacity: 0.5;\r
+}\r
+\r
+.styles-section.no-affect .properties li.editing {\r
+    opacity: 1.0;\r
+}\r
+\r
+.styles-section.expanded .properties {\r
+    display: block;\r
+}\r
+\r
+.styles-section .properties li {\r
+    margin-left: 12px;\r
+    white-space: nowrap;\r
+    text-overflow: ellipsis;\r
+    overflow: hidden;\r
+    cursor: auto;\r
+}\r
+\r
+.styles-section .properties li.parent {\r
+    margin-left: 1px;\r
+}\r
+\r
+.styles-section .properties ol {\r
+    display: none;\r
+    margin: 0;\r
+    -webkit-padding-start: 12px;\r
+    list-style: none;\r
+}\r
+\r
+.styles-section .properties ol.expanded {\r
+    display: block;\r
+}\r
+\r
+.styles-section .properties li.parent::before {\r
+    content: url(Images/treeRightTriangleBlack.png);\r
+    opacity: 0.75;\r
+    float: left;\r
+    width: 8px;\r
+    height: 8px;\r
+    margin-top: 0;\r
+    padding-right: 3px;\r
+    -webkit-user-select: none;\r
+    cursor: default;\r
+}\r
+\r
+.styles-section .properties li.parent.expanded::before {\r
+    content: url(Images/treeDownTriangleBlack.png);\r
+    margin-top: 1px;\r
+}\r
+\r
+.styles-section .properties li .info {\r
+    padding-top: 4px;\r
+    padding-bottom: 3px;\r
+}\r
+\r
+.styles-section:hover .properties .enabled-button {\r
+    display: block;\r
+}\r
+\r
+.styles-section .properties li.disabled .enabled-button {\r
+    display: block;\r
+}\r
+\r
+.styles-section .properties .enabled-button {\r
+    display: none;\r
+    float: right;\r
+    font-size: 10px;\r
+    margin: 0 0 0 4px;\r
+    vertical-align: top;\r
+    position: relative;\r
+    z-index: 1;\r
+}\r
+\r
+.styles-section .properties .overloaded, .styles-section .properties .inactive, .styles-section .properties .disabled {\r
+    text-decoration: line-through;\r
+}\r
+\r
+.styles-section.computed-style .properties .disabled {\r
+    text-decoration: none;\r
+    opacity: 0.5;\r
+}\r
+\r
+.styles-section .properties .implicit, .styles-section .properties .inherited {\r
+    opacity: 0.5;\r
+}\r
+\r
+\r
+.body .styles-section .properties .inherited {\r
+    display: none;\r
+}\r
+\r
+.body.show-inherited .styles-section .properties .inherited {\r
+    display: block;\r
+}\r
+\r
+a.worker-item:hover {\r
+    color: rgb(15%, 15%, 15%);\r
+}\r
+\r
+.resource-content-unavailable {\r
+    color: rgb(50%, 50%, 50%);\r
+    font-style: italic;\r
+    font-size: 14px;\r
+    text-align: center;\r
+    padding: 32px;\r
+}\r
+\r
+.node-link {\r
+    text-decoration: underline;\r
+    cursor: pointer;\r
+}\r
+\r
+.cursor-pointer {\r
+    cursor: pointer;\r
+}\r
+\r
+.cursor-auto {\r
+    cursor: auto;\r
+}\r
+\r
+/* inspectorSyntaxHighlight.css */\r
+\r
+/*\r
+ * Copyright (C) 2009 Apple Inc.  All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * 1.  Redistributions of source code must retain the above copyright\r
+ *     notice, this list of conditions and the following disclaimer. \r
+ * 2.  Redistributions in binary form must reproduce the above copyright\r
+ *     notice, this list of conditions and the following disclaimer in the\r
+ *     documentation and/or other materials provided with the distribution. \r
+ * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of\r
+ *     its contributors may be used to endorse or promote products derived\r
+ *     from this software without specific prior written permission. \r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ */\r
+\r
+.webkit-css-comment { \r
+    color: rgb(0, 116, 0);\r
+}\r
+\r
+.webkit-css-url, .webkit-css-color, .webkit-css-string, .webkit-css-keyword {\r
+    color: rgb(7, 144, 154);\r
+ }\r
+\r
+.webkit-css-number {\r
+    color: rgb(50, 0, 255);\r
+}\r
+\r
+.webkit-css-property, .webkit-css-at-rule {\r
+    color: rgb(200, 0, 0);\r
+}\r
+\r
+.webkit-css-selector {\r
+    color: black;\r
+}\r
+\r
+.webkit-css-important {\r
+    color: rgb(200, 0, 180);\r
+}\r
+\r
+.webkit-javascript-comment {\r
+    color: rgb(0, 116, 0);\r
+}\r
+\r
+.webkit-javascript-keyword {\r
+    color: rgb(170, 13, 145);\r
+}\r
+\r
+.webkit-javascript-number {\r
+    color: rgb(28, 0, 207);\r
+}\r
+\r
+.webkit-javascript-string, .webkit-javascript-regexp {\r
+    color: rgb(196, 26, 22);\r
+}\r
+\r
+.webkit-javascript-ident {\r
+    color: black;\r
+}\r
+\r
+.webkit-html-comment {\r
+    /* Keep this in sync with view-source.css (.webkit-html-comment) */\r
+    color: rgb(35, 110, 37);\r
+}\r
+\r
+.webkit-html-tag {\r
+    /* Keep this in sync with view-source.css (.webkit-html-tag) */\r
+    color: rgb(136, 18, 128);\r
+}\r
+\r
+.webkit-html-doctype {\r
+    /* Keep this in sync with view-source.css (.webkit-html-doctype) */\r
+    color: rgb(192, 192, 192);\r
+}\r
+\r
+.webkit-html-attribute-name {\r
+    /* Keep this in sync with view-source.css (.webkit-html-attribute-name) */\r
+    color: rgb(153, 69, 0);\r
+}\r
+\r
+.webkit-html-attribute-value {\r
+    /* Keep this in sync with view-source.css (.webkit-html-attribute-value) */\r
+    color: rgb(26, 26, 166);\r
+}\r
+\r
+.webkit-html-external-link, .webkit-html-resource-link {\r
+    /* Keep this in sync with view-source.css (.webkit-html-external-link, .webkit-html-resource-link) */\r
+    color: #00e;\r
+}\r
+\r
+.webkit-html-external-link {\r
+    /* Keep this in sync with view-source.css (.webkit-html-external-link) */\r
+    text-decoration: none;\r
+}\r
+\r
+.webkit-html-external-link:hover {\r
+    /* Keep this in sync with view-source.css (.webkit-html-external-link:hover) */\r
+    text-decoration: underline;\r
+}\r
+\r
+/* networkPanel.css */\r
+\r
+.network-larger-resources-status-bar-item .glyph {\r
+    -webkit-mask-image: url(Images/largerResourcesButtonGlyph.png);\r
+}\r
+\r
+.network-sidebar .data-grid {\r
+    border: none;\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    font-size: 11px;\r
+}\r
+\r
+.network-sidebar .data-grid table.data {\r
+    -webkit-background-size: 1px 82px;\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(0.5, rgba(0, 0, 0, 0)), color-stop(0.5, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.05)));\r
+    font-size: 11px;\r
+}\r
+\r
+.network-sidebar .data-grid.small table.data {\r
+    -webkit-background-size: 1px 42px;\r
+}\r
+\r
+.network-sidebar .data-grid td:not(.network-summary) {\r
+    line-height: 17px;\r
+    height: 37px;\r
+    border-right: 1px solid rgb(210, 210, 210);\r
+    vertical-align: middle;\r
+}\r
+\r
+.network-sidebar .data-grid.small td {\r
+    height: 17px;\r
+}\r
+\r
+.network-sidebar .data-grid th {\r
+    border-bottom: 1px solid rgb(64%, 64%, 64%);\r
+    height: 30px;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+}\r
+\r
+.network-sidebar .data-grid.small th {\r
+    height: 22px;\r
+}\r
+\r
+.network-sidebar .data-grid th, .network.panel .data-grid th.sort-descending, .network.panel .data-grid th.sort-ascending {\r
+    background: -webkit-gradient(linear, left top, left bottom, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));\r
+}\r
+\r
+.network-sidebar .data-grid .data-container {\r
+    top: 31px;\r
+}\r
+\r
+.network-sidebar .data-grid.small .data-container {\r
+    top: 23px;\r
+}\r
+\r
+.network-sidebar .data-grid select {\r
+    -webkit-appearance: none;\r
+    background-color: transparent;\r
+    border: none;\r
+    width: 100%;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+}\r
+\r
+.network-sidebar .data-grid tr.filler {\r
+    background-color: white;\r
+}\r
+\r
+.network-sidebar .data-grid td.name-column {\r
+    font-weight: bold;\r
+    cursor: pointer;\r
+}\r
+\r
+.network.panel:not(.viewing-resource) .network-sidebar td.name-column:hover {\r
+    text-decoration: underline;\r
+}\r
+\r
+.network-sidebar .data-grid td.method-column,\r
+.network-sidebar .data-grid td.status-column,\r
+.network-sidebar .data-grid td.type-column,\r
+.network-sidebar .data-grid td.size-column,\r
+.network-sidebar .data-grid td.time-column {\r
+    background-color: rgba(0, 0, 0, 0.07);\r
+}\r
+\r
+.network-sidebar .data-grid td.size-column,\r
+.network-sidebar .data-grid td.time-column {\r
+    text-align: right;\r
+}\r
+\r
+.network-sidebar .small .network-graph-side {\r
+    height: 14px;\r
+}\r
+\r
+.network-sidebar .data-grid th.sortable:active {\r
+    background-image: none;\r
+}\r
+\r
+.network-cell-subtitle {\r
+    font-weight: normal;\r
+    color: gray;\r
+}\r
+\r
+.network-sidebar tr.selected .network-cell-subtitle {\r
+    color: white;\r
+}\r
+\r
+.network-header-subtitle {\r
+    color: gray;\r
+}\r
+\r
+.network-sidebar .data-grid.small .network-cell-subtitle,\r
+.network-sidebar .data-grid.small .network-header-subtitle\r
+{\r
+    display: none;\r
+}\r
+\r
+/* Resource preview icons */\r
+\r
+.network-sidebar .data-grid .icon {\r
+    content: url(Images/resourcePlainIcon.png);\r
+}\r
+\r
+.network-sidebar .data-grid.small .icon {\r
+    content: url(Images/resourcePlainIconSmall.png);\r
+}\r
+\r
+.network-sidebar .network-category-scripts .icon {\r
+    content: url(Images/resourceJSIcon.png);\r
+}\r
+\r
+.network-sidebar .data-grid.small .network-category-scripts .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.network-sidebar .network-category-documents .icon {\r
+    content: url(Images/resourceDocumentIcon.png);\r
+}\r
+\r
+.network-sidebar .data-grid.small .network-category-documents .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.network-sidebar .network-category-stylesheets .icon {\r
+    content: url(Images/resourceCSSIcon.png);\r
+}\r
+\r
+.network-sidebar .data-grid.small .network-category-stylesheets .icon {\r
+    content: url(Images/resourceDocumentIconSmall.png);\r
+}\r
+\r
+.network-sidebar .network-category-images .icon {\r
+    position: relative;\r
+    background-image: url(Images/resourcePlainIcon.png);\r
+    background-repeat: no-repeat;\r
+    content: "";\r
+}\r
+\r
+.network-sidebar .data-grid.small .network-category-images .icon {\r
+    background-image: url(Images/resourcePlainIconSmall.png);\r
+    content: "";\r
+}\r
+\r
+.network-sidebar .data-grid .icon {\r
+    float: left;\r
+    width: 32px;\r
+    height: 32px;\r
+    margin-top: 1px;\r
+    margin-right: 3px;\r
+}\r
+\r
+.network-sidebar .data-grid.small .icon {\r
+    width: 16px;\r
+    height: 16px;\r
+}\r
+\r
+.network-sidebar .image-network-icon-preview {\r
+    position: absolute;\r
+    margin: auto;\r
+    top: 3px;\r
+    bottom: 4px;\r
+    left: 5px;\r
+    right: 5px;\r
+    max-width: 18px;\r
+    max-height: 21px;\r
+    min-width: 1px;\r
+    min-height: 1px;\r
+}\r
+\r
+.network-sidebar .data-grid.small .image-network-icon-preview {\r
+    top: 2px;\r
+    bottom: 1px;\r
+    left: 3px;\r
+    right: 3px;\r
+    max-width: 8px;\r
+    max-height: 11px;\r
+}\r
+\r
+/* Graph styles */\r
+\r
+.network-graph-side {\r
+    position: relative;\r
+    height: 36px;\r
+    padding: 0 5px;\r
+    white-space: nowrap;\r
+    margin-top: 1px;\r
+    border-top: 1px solid transparent;\r
+    overflow: hidden;\r
+}\r
+\r
+.network-graph-bar-area {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    right: 8px;\r
+    left: 9px;\r
+}\r
+\r
+.network-graph-label {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    margin: auto -7px;\r
+    height: 13px;\r
+    line-height: 13px;\r
+    font-size: 9px;\r
+    color: rgba(0, 0, 0, 0.75);\r
+    text-shadow: rgba(255, 255, 255, 0.25) 1px 0 0, rgba(255, 255, 255, 0.25) -1px 0 0, rgba(255, 255, 255, 0.333) 0 1px 0, rgba(255, 255, 255, 0.25) 0 -1px 0;\r
+    z-index: 150;\r
+    overflow: hidden;\r
+    text-align: center;\r
+    font-weight: bold;\r
+    opacity: 0;\r
+    -webkit-transition: opacity 250ms ease-in-out;\r
+}\r
+\r
+.network-graph-side:hover .network-graph-label {\r
+    opacity: 1;\r
+}\r
+\r
+.network-graph-label:empty {\r
+    display: none;\r
+}\r
+\r
+.network-graph-label.waiting {\r
+    margin-right: 5px;\r
+}\r
+\r
+.network-graph-label.waiting-right {\r
+    margin-left: 5px;\r
+}\r
+\r
+.network-graph-label.before {\r
+    color: rgba(0, 0, 0, 0.7);\r
+    text-shadow: none;\r
+    text-align: right;\r
+    margin-right: 2px;\r
+}\r
+\r
+.network-graph-label.before::after {\r
+    padding-left: 2px;\r
+    height: 6px;\r
+    content: url(Images/graphLabelCalloutLeft.png);\r
+}\r
+\r
+.network-graph-label.after {\r
+    color: rgba(0, 0, 0, 0.7);\r
+    text-shadow: none;\r
+    text-align: left;\r
+    margin-left: 2px;\r
+}\r
+\r
+.network-graph-label.after::before {\r
+    padding-right: 2px;\r
+    height: 6px;\r
+    content: url(Images/graphLabelCalloutRight.png);\r
+}\r
+\r
+.network-graph-bar {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    margin: auto -7px;\r
+    border-width: 6px 7px;\r
+    height: 13px;\r
+    min-width: 14px;\r
+    opacity: 0.65;\r
+    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;\r
+}\r
+\r
+.network-graph-bar.waiting, .network-graph-bar.waiting-right {\r
+    opacity: 0.35;\r
+}\r
+\r
+/* Resource categories */\r
+\r
+\r
+.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-documents .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillBlue.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-documents.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillBlue.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-stylesheets .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillGreen.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-stylesheets.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillGreen.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-images .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillPurple.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-images.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillPurple.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-fonts .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillRed.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-fonts.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillRed.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-scripts .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillOrange.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-scripts.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillOrange.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-xhr .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillYellow.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-xhr.resource-cached .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelineHollowPillYellow.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-websockets .network-graph-bar {\r
+    -webkit-border-image: url(Images/timelinePillGray.png) 6 7 6 7;\r
+}\r
+\r
+.network-category-websockets.resource-cached .network-graph-bar {\r
+   -webkit-border-image: url(Images/timelineHollowPillGray.png) 6 7 6 7;\r
+}\r
+\r
+\r
+/* Popover */\r
+\r
+.network-timing-row {\r
+    position: relative;\r
+    height: 16px;\r
+}\r
+\r
+.network-timing-bar {\r
+    position: absolute;\r
+    background-color: red;\r
+    border-left: 1px solid red;\r
+    opacity: 0.4;\r
+    top: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.network-timing-bar-title {\r
+    position: absolute;\r
+    color: black;\r
+    top: 1px;\r
+}\r
+\r
+.network-dim-cell {\r
+    color: grey;\r
+}\r
+\r
+/* Dividers */\r
+\r
+.network-timeline-grid {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    pointer-events: none;\r
+}\r
+\r
+.network-event-divider-padding {\r
+    position: absolute;\r
+    width: 8px;\r
+    top: 0;\r
+    bottom: 0;\r
+    pointer-events: auto;\r
+}\r
+\r
+.network-event-divider {\r
+    position: absolute;\r
+    width: 2px;\r
+    top: 31px;\r
+    bottom: 0;\r
+    z-index: 300;\r
+}\r
+\r
+.network-sidebar .network-timeline-grid.small .network-event-divider {\r
+    top: 23px;\r
+}\r
+\r
+.network-red-divider {\r
+    background-color: rgba(255, 0, 0, 0.5);\r
+}\r
+\r
+.network-blue-divider {\r
+    background-color: rgba(0, 0, 255, 0.5);\r
+}\r
+\r
+.network-sidebar .resources-dividers {\r
+    z-index: 0;\r
+}\r
+\r
+.network-sidebar .resources-dividers-label-bar {\r
+    background-color: transparent;\r
+    border: none;\r
+    height: 30px;\r
+    pointer-events: none;\r
+}\r
+\r
+.network-sidebar .network-timeline-grid.small .resources-dividers-label-bar {\r
+    height: 23px;\r
+}\r
+\r
+.network-sidebar .resources-divider-label {\r
+    top: 0px;\r
+    margin-top: -4px;\r
+    color: black;\r
+}\r
+\r
+.network-sidebar .resources-dividers-label-bar .resources-divider {\r
+    top: 23px;\r
+}\r
+\r
+.network-sidebar .network-timeline-grid.small .resources-dividers-label-bar .resources-divider {\r
+    top: 15px;\r
+}\r
+\r
+.network-sidebar .resources-divider.first .resources-divider-label {\r
+    display: none;\r
+}\r
+\r
+.network-sidebar .resources-dividers-label-bar .resources-divider.first {\r
+    background-color: transparent;\r
+}\r
+\r
+/* Filters */\r
+#network-filter {\r
+    margin-top: 1px;\r
+}\r
+\r
+.data-grid table.data tr.revealed.network-item {\r
+    display: none;\r
+}\r
+\r
+.data-grid.filter-all table.data tr.revealed.network-item,\r
+.data-grid.filter-documents table.data tr.revealed.network-category-documents,\r
+.data-grid.filter-stylesheets table.data tr.revealed.network-category-stylesheets,\r
+.data-grid.filter-images table.data tr.revealed.network-category-images,\r
+.data-grid.filter-scripts table.data tr.revealed.network-category-scripts,\r
+.data-grid.filter-xhr table.data tr.revealed.network-category-xhr,\r
+.data-grid.filter-fonts table.data tr.revealed.network-category-fonts,\r
+.data-grid.filter-websockets table.data tr.revealed.network-category-websockets,\r
+.data-grid.filter-other table.data tr.revealed.network-category-other {\r
+    display: table-row;\r
+}\r
+\r
+/* Summary */\r
+\r
+.network-summary-bar {\r
+    background-color: rgb(101, 111, 130);\r
+    color: white;\r
+    height: 20px;\r
+    font-size: 11px;\r
+    font-weight: bold;\r
+    padding-top: 3px;\r
+    padding-left: 10px;\r
+    z-index: 2000;\r
+    white-space: pre;\r
+    overflow : hidden;\r
+    text-overflow : ellipsis;\r
+}\r
+\r
+.network-summary-bar-bottom {\r
+    position: absolute;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    padding-top: 3px;\r
+}\r
+\r
+.data-grid td .network-summary-bar {\r
+    white-space: pre;\r
+}\r
+\r
+.network-sidebar .data-grid td.network-summary {\r
+    padding: 0;\r
+}\r
+\r
+/* Viewer */\r
+\r
+.network.panel.viewing-resource .network-sidebar .data-grid td,\r
+.network.panel.viewing-resource .network-sidebar .data-grid th {\r
+    border-right: none;\r
+}\r
+\r
+.network.panel.viewing-resource .data-grid th.corner {\r
+    display: none;\r
+}\r
+\r
+#network-container {\r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    bottom: 0;\r
+    right: 0;\r
+    border-right: 0 none transparent;\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+}\r
+\r
+.network.panel.viewing-resource #network-container {\r
+    border-right: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+#network-views {\r
+    position: absolute;\r
+    background: rgb(203, 203, 203);\r
+    top: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+}\r
+\r
+#network-close-button {\r
+    position: absolute;\r
+    width: 14px;\r
+    height: 14px;\r
+    background-image: url(Images/closeButtons.png);\r
+    background-position: 0 0;\r
+    background-color: transparent;\r
+    border: 0 none transparent;\r
+    top: 8px;\r
+    left: 5px;\r
+    z-index: 10;\r
+    display: none;\r
+}\r
+\r
+#network-views.small #network-close-button  {\r
+    top: 4px;\r
+}\r
+\r
+#network-close-button:hover {\r
+    background-position: 14px 0;\r
+}\r
+\r
+#network-close-button:active {\r
+    background-position: 28px 0;\r
+}\r
+\r
+.network.panel.viewing-resource #network-close-button  {\r
+    display: block;\r
+}\r
+\r
+\r
+.network-sidebar .data-grid.full-grid-mode .viewer-column {\r
+    display: none;\r
+}\r
+\r
+.network-sidebar .data-grid.brief-grid-mode .viewer-column,\r
+.network-sidebar .data-grid.brief-grid-mode .method-column,\r
+.network-sidebar .data-grid.brief-grid-mode .status-column,\r
+.network-sidebar .data-grid.brief-grid-mode .type-column,\r
+.network-sidebar .data-grid.brief-grid-mode .size-column,\r
+.network-sidebar .data-grid.brief-grid-mode .time-column {\r
+    display: none;\r
+}\r
+\r
+.network.panel.viewing-resource .network-timeline-grid {\r
+    display: none;\r
+}\r
+\r
+.network-sidebar .data-grid.viewing-resource-mode .method-column,\r
+.network-sidebar .data-grid.viewing-resource-mode .status-column,\r
+.network-sidebar .data-grid.viewing-resource-mode .type-column,\r
+.network-sidebar .data-grid.viewing-resource-mode .size-column,\r
+.network-sidebar .data-grid.viewing-resource-mode .time-column,\r
+.network-sidebar .data-grid.viewing-resource-mode .timeline-column {\r
+    display: none;\r
+}\r
+\r
+.network.panel .network-sidebar {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+}\r
+\r
+.network.panel:not(.viewing-resource) .sidebar-resizer-vertical {\r
+    display: none;\r
+}\r
+\r
+.network.panel.viewing-resource .network-sidebar .data-grid-resizer {\r
+    display: none;\r
+}\r
+\r
+.network.panel .scope-bar {\r
+    height: 23px;\r
+    padding-top: 5px;\r
+}\r
+\r
+.network.panel:not(.viewing-resource) .data-grid tr.selected {\r
+    background-color: transparent;\r
+    color: black;\r
+}\r
+\r
+#network-views .network-item-view .tabbed-pane-header {\r
+    height: 31px;\r
+    padding-top: 8px;\r
+    padding-left: 25px;\r
+    white-space: nowrap;\r
+}\r
+\r
+#network-views.small .network-item-view .tabbed-pane-header {\r
+    height: 23px;\r
+    padding-top: 0;\r
+}\r
+\r
+.network.panel.viewing-resource .data-grid .data-container {\r
+    padding-right: 0;\r
+}\r
+\r
+.network-item-view {\r
+    display: none;\r
+    position: absolute;\r
+    background: white;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+}\r
+\r
+.network-item-view.visible {\r
+    display: -webkit-box;\r
+}\r
+\r
+.network-item-view .tabbed-pane-header {\r
+    height: 20px;\r
+    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(236, 236, 236)), to(rgb(217, 217, 217)));\r
+    border-bottom: 1px solid rgb(163, 163, 163);\r
+}\r
+\r
+.network-item-view .scope-bar li {\r
+    border-bottom-left-radius: 0;\r
+    border-bottom-right-radius: 0;\r
+}\r
+\r
+.resource-headers-view {\r
+    display: none;\r
+    padding: 6px;\r
+    -webkit-user-select: text;    \r
+    position: absolute;\r
+    top: 0;\r
+    left: 0;\r
+    right: 0;\r
+    bottom: 0;\r
+    overflow: auto;\r
+}\r
+\r
+.resource-headers-view.visible {\r
+    display: block;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure .parent {\r
+    -webkit-user-select: none;\r
+    font-weight: bold;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure .children li {\r
+    white-space: nowrap;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure li.expanded .header-count {\r
+    display: none;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure .header-name {\r
+    color: rgb(33%, 33%, 33%);\r
+    display: inline-block;\r
+    margin-right: 0.5em;\r
+    font-weight: bold;\r
+    vertical-align: top;\r
+    white-space: pre-wrap;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure .header-value {\r
+    display: inline;\r
+    margin-right: 100px;\r
+    white-space: pre-wrap;\r
+    word-break: break-all;\r
+    margin-top: 1px;\r
+}\r
+\r
+.resource-headers-view .outline-disclosure .raw-form-data {\r
+    white-space: pre-wrap;\r
+}\r
+\r
+.resource-cookies-view {\r
+    display: none;\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 0;\r
+    bottom: 0;\r
+    overflow: auto;\r
+    padding: 12px;\r
+    height: 100%;\r
+}\r
+\r
+.resource-cookies-view.visible {\r
+    display: block;\r
+}\r
+\r
+.resource-cookies-view .data-grid {\r
+    height: 100%;\r
+}\r
+\r
+.resource-cookies-view .data-grid .row-group {\r
+    font-weight: bold;\r
+    font-size: 11px;\r
+}\r
+\r
+.resource-timing-view {\r
+    display: none;\r
+    position: absolute;\r
+    top: 0;\r
+    right: 0;\r
+    left: 0;\r
+    bottom: 0;\r
+    padding: 6px;\r
+    font-weight: bold;\r
+    font-size: 11px;\r
+    color: rgb(30%, 30%, 30%);\r
+}\r
+\r
+.resource-timing-view table {\r
+    border-spacing: 21px 0;\r
+}\r
+\r
+.resource-timing-view .network-timing-bar {\r
+    opacity: 1;\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.proxy {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(239, 228, 176)), to(rgb(139, 128, 76)));\r
+    border-left: 1px solid rgb(139, 128, 76);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.dns {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(153, 208, 216)), to(rgb(81, 174, 189)));\r
+    border-left: 1px solid rgb(81, 174, 189);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.connecting {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(203, 232, 145)), to(rgb(160, 214, 56)));\r
+    border-left: 1px solid rgb(160, 214, 56);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.ssl {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(21, 232, 145)), to(rgb(216, 149, 132)));\r
+    border-left: 1px solid rgb(216, 149, 132);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.sending {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(232, 192, 182)), to(rgb(216, 147, 130)));\r
+    border-left: 1px solid rgb(216, 147, 130);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.waiting {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(188, 179, 208)), to(rgb(141, 125, 175)));\r
+    border-left: 1px solid rgb(141, 125, 175);\r
+}\r
+\r
+.resource-timing-view .network-timing-bar.receiving {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(214, 214, 214)), to(rgb(182, 182, 182)));\r
+    border-left: 1px solid rgb(182, 182, 182);\r
+}\r
+\r
+.resource-timing-view.visible {\r
+    display: block;\r
+}\r
+\r
+/* helpScreen.css */\r
+\r
+.help-window-outer {\r
+    position: absolute;\r
+    top: 60px;\r
+    left: 5%;\r
+    width: 90%;\r
+    bottom: 40px;\r
+    z-index: 2000;\r
+}\r
+\r
+body.attached .help-window-outer {\r
+    top: 32px;\r
+    left: 0;\r
+    width: 100%;\r
+    bottom: 24px;\r
+}\r
+\r
+.help-window-main {\r
+    max-height: 100%;\r
+    opacity: 0.85;\r
+    color: white;\r
+    background-color: black;\r
+    display: -webkit-box;\r
+    -webkit-box-orient: vertical;\r
+    border: 20px black solid;\r
+    border-top-width: 0;\r
+    border-radius: 8px;\r
+    -webkit-box-shadow: 10px 10px 8px rgba(40, 40, 40, 0.40);\r
+}\r
+\r
+body.attached .help-window-main {\r
+    border-width: 10px;\r
+    border-radius: 0;\r
+    -webkit-box-shadow: 0 0 0;\r
+}\r
+\r
+.help-window-caption {\r
+    margin: 8px;\r
+}\r
+\r
+body.attached .help-window-caption {\r
+    display: none;\r
+}\r
+\r
+.help-window-title {\r
+    border-bottom: solid 1px lightGrey;\r
+    font-size: 18px;\r
+    padding-bottom: 6px;\r
+}\r
+\r
+.help-content {\r
+    overflow-y: auto;\r
+    overflow-x: hidden;\r
+    scrollbar-width: 11px;\r
+    -webkit-box-flex: 1;\r
+}\r
+\r
+.help-content::-webkit-scrollbar {\r
+    width: 11px;\r
+}\r
+\r
+.help-content::-webkit-scrollbar-corner,\r
+.help-content::-webkit-resizer {\r
+    display: none;\r
+}\r
+\r
+.help-content::-webkit-scrollbar-thumb:vertical {\r
+    background: -webkit-gradient(linear, left top, right top, from(rgb(128, 128, 128)), to(rgb(128, 128, 128)), color-stop(40%, rgb(96, 96, 96)));\r
+    border-radius: 5px;\r
+    min-height: 20px;\r
+}\r
+\r
+.help-content::-webkit-scrollbar-thumb:vertical:hover,\r
+.help-content::-webkit-scrollbar-thumb:vertical:active {\r
+    background: -webkit-gradient(linear, left top, right top, from(rgb(176, 176, 176)), to(rgb(176, 176, 176)), color-stop(40%, rgb(144, 144, 144)));\r
+}\r
+\r
+.help-content::-webkit-scrollbar-track:vertical {\r
+    background: -webkit-gradient(linear, left top, right top, from(rgb(10, 10, 10)), to(rgb(32, 32, 32)), color-stop(25%, rgb(32, 32, 32)));\r
+    border-radius: 5px;\r
+}\r
+\r
+.help-close-button {\r
+    border: 0;\r
+    padding: 0;\r
+    margin: 0px -20px 15px -20px;\r
+    font-size: 14px;\r
+    color: rgb(222, 222, 222);\r
+    background: -webkit-gradient(radial, 30% 30%, 1, 50% 50%, 8, from(rgb(128, 128, 128)), to(rgb(80, 80, 80)));\r
+    border-radius: 8px;\r
+    height: 16px;\r
+    width: 16px;\r
+}\r
+\r
+.help-close-button:hover {\r
+    color: white;\r
+}\r
+\r
+body.platform-mac .help-close-button {\r
+    float: left;\r
+    margin-right: 10px;\r
+    font-size: 12px;\r
+}\r
+\r
+body:not(.platform-mac) .help-close-button {\r
+    float: right;\r
+}\r
+\r
+.help-table {\r
+    width: 100%;\r
+    font-size: 13px;\r
+    -webkit-user-select: auto;\r
+}\r
+\r
+.help-table th {\r
+    padding-top: 6px;\r
+    text-align: left;\r
+    color: yellow;\r
+}\r
+\r
+.help-table td {\r
+    white-space: nowrap;\r
+    vertical-align: top;\r
+}\r
+\r
+.help-key-cell {\r
+    text-align: right;\r
+}\r
+\r
+.help-key {\r
+    color: yellow;\r
+}\r
+\r
+body:not(.platform-mac) .help-key {\r
+    font-weight: bold;\r
+    text-shadow: black 1px 1px 7px;\r
+}\r
+\r
+body.platform-mac .help-key {\r
+    font-family: Lucida Grande, sans-serif;\r
+    font-size: 13px;\r
+}\r
+\r
+.help-combine-keys {\r
+    color: white;\r
+    font-weight: bold;\r
+    margin: 0 0.3em;\r
+    font-size: 12px;\r
+}\r
+\r
+.help-key-delimiter {\r
+    color: white;\r
+    margin: 0 0.5em;\r
+}\r
+\r
+/* popover.css */\r
+\r
+.popover {\r
+    position: absolute;\r
+    -webkit-border-image: url(Images/popoverBackground.png) 25 25 25 25;\r
+    border-width: 25px;\r
+    z-index: 100;\r
+    pointer-events: none;\r
+}\r
+\r
+.popover .content {\r
+    position: absolute;\r
+    top: 0;\r
+    bottom: 0;\r
+    left: 0;\r
+    right: 0;\r
+    pointer-events: auto;\r
+    overflow: auto;\r
+}\r
+\r
+.popover .arrow {\r
+    position: absolute;\r
+    background-image: url(Images/popoverArrows.png);\r
+    width: 19px;\r
+    height: 19px;\r
+    margin-left: 15px;\r
+    margin-top: -25px;\r
+    top: 0;\r
+    left: 0;\r
+}\r
+\r
+.popover.top-left-arrow .arrow {\r
+    /* The default is top-left, no styles needed. */\r
+}\r
+\r
+.popover.top-right-arrow .arrow {\r
+    right: 25px;\r
+    left: auto;\r
+}\r
+\r
+.popover.bottom-left-arrow .arrow {\r
+    top: auto;\r
+    bottom: 0;\r
+    margin-top: 0;\r
+    margin-bottom: -25px;\r
+    background-position: 0 -19px;\r
+}\r
+\r
+.popover.bottom-right-arrow .arrow {\r
+    right: 15px;\r
+    left: auto;\r
+    top: auto;\r
+    bottom: 0;\r
+    margin-top: 0;\r
+    margin-bottom: -25px;\r
+    background-position: 0 -19px;\r
+}\r
+\r
+.popover.left-top-arrow .arrow {\r
+    top: 0;\r
+    margin-top: 15px;\r
+    margin-left: -25px;\r
+    background-position: 0 -38px;\r
+}\r
+\r
+.popover.left-bottom-arrow .arrow {\r
+    top: auto;\r
+    bottom: 0;\r
+    margin-bottom: 15px;\r
+    margin-left: -25px;\r
+    background-position: 0 -38px;\r
+}\r
+\r
+.popover.right-top-arrow .arrow {\r
+    right: 0;\r
+    left: auto;\r
+    top: 0;\r
+    margin-top: 15px;\r
+    margin-right: -25px;\r
+    background-position: 0 -57px;\r
+}\r
+\r
+.popover.right-bottom-arrow .arrow {\r
+    right: 0;\r
+    left: auto;\r
+    top: auto;\r
+    bottom: 0;\r
+    margin-bottom: 15px;\r
+    margin-right: -25px;\r
+    background-position: 0 -57px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar {\r
+    width: 11px;\r
+    height: 11px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-corner {\r
+    display: none;\r
+}\r
+\r
+.popover ::-webkit-resizer {\r
+    display: none;\r
+}\r
+\r
+/* Horizontal Scrollbar Styles */\r
+\r
+.popover ::-webkit-scrollbar:horizontal:corner-present {\r
+    border-right-width: 0;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:horizontal {\r
+    -webkit-border-image: url(Images/thumbHoriz.png) 0 11 0 11;\r
+    border-color: transparent;\r
+    border-width: 0 11px;\r
+    min-width: 20px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:horizontal:hover {\r
+    -webkit-border-image: url(Images/thumbHoverHoriz.png) 0 11 0 11;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:horizontal:active {\r
+    -webkit-border-image: url(Images/thumbActiveHoriz.png) 0 11 0 11;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:horizontal:start {\r
+    margin-left: 5px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:horizontal:end {\r
+    margin-right: 5px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:horizontal:end:corner-present {\r
+    margin-right: 4px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:horizontal:decrement {\r
+    -webkit-border-image: url(Images/trackHoriz.png) 0 11 0 11;\r
+    border-color: transparent;\r
+    border-width: 0 0 0 11px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:horizontal:increment {\r
+    -webkit-border-image: url(Images/trackHoriz.png) 0 11 0 11;\r
+    border-color: transparent;\r
+    border-width: 0 11px 0 0;\r
+}\r
+\r
+/* Vertical Scrollbar Styles */\r
+\r
+\r
+.popover ::-webkit-scrollbar:vertical:corner-present {\r
+    border-bottom-width: 0;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:vertical {\r
+    -webkit-border-image: url(Images/thumbVert.png) 11 0 11 0;\r
+    border-color: transparent;\r
+    border-width: 11px 0;\r
+    min-height: 20px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:vertical:hover {\r
+    -webkit-border-image: url(Images/thumbHoverVert.png) 11 0 11 0;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-thumb:vertical:active {\r
+    -webkit-border-image: url(Images/thumbActiveVert.png) 11 0 11 0;\r
+}\r
+\r
+\r
+.popover ::-webkit-scrollbar-track-piece:vertical:start {\r
+    margin-top: 5px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:vertical:end {\r
+    margin-bottom: 5px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:vertical:end:corner-present {\r
+    margin-bottom: 4px;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:vertical:decrement {\r
+    -webkit-border-image: url(Images/trackVert.png) 11 0 11 0;\r
+    border-color: transparent;\r
+    border-width: 11px 0 0 0;\r
+}\r
+\r
+.popover ::-webkit-scrollbar-track-piece:vertical:increment {\r
+    -webkit-border-image: url(Images/trackVert.png) 11 0 11 0;\r
+    border-color: transparent;\r
+    border-width: 0 0 11px 0;\r
+}\r
+\r
+/* Forced Scrollbar Mode Styles */\r
+\r
+.popover ::-webkit-scrollbar-button {\r
+    display: none;\r
+}\r
+\r
+/* textViewer.css */\r
+\r
+.text-editor {\r
+    position: absolute;\r
+    top:0;\r
+    left:0;\r
+    right:0;\r
+    bottom:0;\r
+    white-space: pre;\r
+    overflow: auto;\r
+}\r
+\r
+.text-editor-lines {\r
+    border: 0;\r
+    -webkit-border-horizontal-spacing: 0;\r
+    -webkit-border-vertical-spacing: 0;\r
+    -webkit-user-select: text;\r
+}\r
+\r
+.webkit-html-message-bubble {\r
+    -webkit-box-shadow: black 0px 2px 5px;\r
+    -webkit-border-radius: 9px;\r
+    -webkit-border-fit: lines;\r
+    font-size: 10px;\r
+    font-family: Lucida Grande, sans-serif;\r
+    font-weight: bold;\r
+    margin: 6px 25px;\r
+    padding: 0 7px 1px;\r
+    z-index:20;\r
+}\r
+\r
+.webkit-html-warning-message {\r
+    background-color: rgb(100%, 62%, 42%);\r
+    border: 2px solid rgb(100%, 52%, 21%);\r
+}\r
+\r
+.webkit-html-error-message {\r
+    background-color: rgb(100%, 42%, 42%);\r
+    border: 2px solid rgb(100%, 31%, 31%);\r
+}\r
+\r
+.webkit-html-message-line {\r
+    padding-left: 23px;\r
+    text-indent: -20px;\r
+}\r
+\r
+.webkit-html-message-line-hover {\r
+    padding-left: 23px;\r
+    text-indent: -20px;\r
+    white-space: auto;\r
+    text-overflow: auto;\r
+    overflow: auto;\r
+}\r
+\r
+.webkit-html-message-icon {\r
+    position: relative;\r
+    top: 2px;\r
+    margin: 0 4px;\r
+}\r
+\r
+.webkit-line-number {\r
+    color: rgb(128, 128, 128);\r
+    background-color: rgb(240, 240, 240);\r
+    border-right: 1px solid rgb(187, 187, 187);\r
+    text-align: right;\r
+    vertical-align: top;\r
+    word-break: normal;\r
+    -webkit-user-select: none;\r
+    padding-right: 4px;\r
+    padding-left: 6px;\r
+}\r
+\r
+.webkit-line-number-outer {\r
+    margin-right: -4px;\r
+    margin-left: -4px;\r
+    border-color: transparent;\r
+    border-style: solid;\r
+    border-width: 0 0 0px 2px;\r
+    vertical-align: top;\r
+}\r
+\r
+.webkit-line-number-inner {\r
+    margin-right: 4px;\r
+}\r
+\r
+.webkit-breakpoint .webkit-line-number-inner, .webkit-breakpoint-conditional .webkit-line-number-inner, .webkit-execution-line .webkit-line-number-inner {\r
+    margin-right: -10px;\r
+}\r
+\r
+.webkit-line-content {\r
+    width: 100%;\r
+    padding-left: 2px;\r
+    vertical-align: top;\r
+}\r
+\r
+.webkit-breakpoint .webkit-line-number-outer {\r
+    color: white;\r
+    border-width: 0 14px 0px 2px;\r
+    -webkit-border-image: url(Images/breakpointBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-breakpoint-conditional .webkit-line-number-outer {\r
+    color: white;\r
+    border-width: 0 14px 0px 2px;\r
+    -webkit-border-image: url(Images/breakpointConditionalBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-execution-line .webkit-line-number-outer {\r
+    color: transparent;\r
+    border-width: 0 14px 0px 2px;\r
+    -webkit-border-image: url(Images/programCounterBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer {\r
+    color: white;\r
+    -webkit-border-image: url(Images/breakpointCounterBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-breakpoint.webkit-execution-line .webkit-line-number-outer {\r
+    color: transparent;\r
+    -webkit-border-image: url(Images/breakpointCounterBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-breakpoint-conditional.webkit-execution-line .webkit-line-number-outer {\r
+    color: transparent;\r
+    -webkit-border-image: url(Images/breakpointConditionalCounterBorder.png) 0 14 0 2;\r
+}\r
+\r
+.webkit-breakpoint-disabled .webkit-line-number-outer {\r
+    opacity: 0.5;\r
+}\r
+\r
+.breakpoints-deactivated .webkit-breakpoint .webkit-line-number-outer {\r
+    opacity: 0.5;\r
+}\r
+\r
+.breakpoints-deactivated .webkit-breakpoint-disabled .webkit-line-number-outer {\r
+    opacity: 0.3;\r
+}\r
+\r
+.webkit-execution-line .webkit-line-content {\r
+    background-color: rgb(171, 191, 254);\r
+    outline: 1px solid rgb(64, 115, 244);\r
+}\r
+\r
+.diff-container .webkit-added-line .webkit-line-content {\r
+    background-color: rgb(220, 255, 220);\r
+}\r
+\r
+.diff-container .webkit-removed-line .webkit-line-content {\r
+    background-color: rgb(255, 220, 220);\r
+    text-decoration: line-through;\r
+}\r
+\r
+.diff-container .webkit-changed-line .webkit-line-content {\r
+    background-color: rgb(220, 220, 255);\r
+}\r
+\r
+.webkit-search-result {\r
+    -webkit-border-radius: 4px;\r
+    padding: 2px 2px 2px 3px;\r
+    margin: -2px -2px -2px -3px;\r
+    opacity: 0.8;\r
+    -webkit-box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;\r
+    background-color: rgb(241, 234, 0);\r
+    color: black;\r
+}\r
+\r
+.webkit-highlighted-line .webkit-line-content {\r
+    -webkit-animation: "fadeout" 2s 0s;\r
+}\r
+\r
+@-webkit-keyframes fadeout {\r
+    from {background-color: rgb(255, 255, 120); }\r
+    to { background-color: white; }\r
+}\r
+\r
+/* devTools.css */\r
+\r
+.data-grid table {\r
+    line-height: 120%;\r
+}\r
+\r
+body.attached #toolbar {\r
+    height: 34px;\r
+    border-top: 1px solid rgb(100, 100, 100);\r
+    cursor: default; /* overriden */\r
+    padding-left: 0;\r
+}\r
+\r
+/* Chrome theme overrides */\r
+\r
+body.platform-windows #toolbar, body.platform-windows.inactive #toolbar {\r
+    background-image: none;\r
+}\r
+\r
+body.detached.platform-mac-leopard #toolbar {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(175, 175, 175)), to(rgb(151, 151, 151))) !important;\r
+}\r
+\r
+body.detached.platform-mac-leopard.inactive #toolbar {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(221, 221, 221)), to(rgb(207, 207, 207))) !important;\r
+}\r
+\r
+body.detached.platform-mac-snowleopard #toolbar {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(189, 189, 189)), to(rgb(151, 151, 151))) !important;\r
+}\r
+\r
+body.detached.platform-mac-snowleopard.inactive #toolbar {\r
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(215, 215, 215)), to(rgb(207, 207, 207))) !important;\r
+}\r
+\r
+body.platform-linux #scripts-files {\r
+    font-size: 11px;\r
+    font-weight: normal;\r
+    line-height: 12px;\r
+}\r
+\r
+.console-group-messages .section > .header {\r
+    padding: 0 8px 0 0;\r
+    background-image: none;\r
+    border: none;\r
+    min-height: 0;\r
+}\r
+\r
+#resources-filter {\r
+    background: -webkit-gradient(linear, left top, left bottom, from(rgb(233, 233, 233)), to(rgb(233, 233, 233)));\r
+}\r
+\r
+.crumbs .crumb {\r
+    -webkit-border-image: url(Images/segmentChromium.png) 0 12 0 2;\r
+    margin-right: -3px;\r
+    padding-left: 6px;\r
+}\r
+\r
+.crumbs .crumb.selected {\r
+    -webkit-border-image: url(Images/segmentSelectedChromium.png) 0 12 0 2;\r
+    color: white;\r
+    text-shadow: rgba(255, 255, 255, 0.5) 0 0px 0;\r
+}\r
+\r
+.crumbs .crumb.selected:hover {\r
+    -webkit-border-image: url(Images/segmentSelectedChromium.png) 0 12 0 2;\r
+}\r
+\r
+.crumbs .crumb.selected.end, .crumbs .crumb.selected.end:hover {\r
+    -webkit-border-image: url(Images/segmentSelectedEndChromium.png) 0 2 0 2;\r
+}\r
+\r
+.crumbs .crumb:hover {\r
+    -webkit-border-image: url(Images/segmentHoverChromium.png) 0 12 0 2;\r
+}\r
+\r
+.crumbs .crumb.dimmed:hover {\r
+    -webkit-border-image: url(Images/segmentHoverChromium.png) 0 12 0 2;\r
+}\r
+\r
+.crumbs .crumb.end:hover {\r
+    -webkit-border-image: url(Images/segmentHoverEndChromium.png) 0 2 0 2;\r
+}\r
+\r
+body.drawer-visible #main-status-bar {\r
+    background-image: url(Images/statusbarResizerVertical.png), url(Images/statusbarBackgroundChromium.png);\r
+}\r
+\r
+.status-bar {\r
+    background-image: url(Images/statusbarBackgroundChromium.png);\r
+}\r
+\r
+button.status-bar-item {\r
+    background-image: url(Images/statusbarButtonsChromium.png);\r
+}\r
+\r
+select.status-bar-item:active {\r
+    -webkit-border-image: url(Images/statusbarMenuButtonSelectedChromium.png) 0 17 0 2;\r
+}\r
+\r
+#drawer {\r
+    background-image: url(Images/statusbarBottomBackgroundChromium.png);\r
+}\r
+\r
+select.status-bar-item {\r
+    -webkit-border-image: url(Images/statusbarMenuButtonChromium.png) 0 17 0 2;\r
+}\r
+\r
+.scope-bar li.selected {\r
+    -webkit-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.0);\r
+}\r
+\r
+.scope-bar li:active {\r
+    -webkit-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.0);\r
+}\r
+\r
+.timeline-category-statusbar-item input {\r
+    vertical-align: middle;\r
+}\r
+\r
old mode 100644 (file)
new mode 100755 (executable)
index 3b85f9b..7681ba0
@@ -1,38 +1,52 @@
-<!--
-Copyright (C) 2006, 2007, 2008 Apple 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:
-
-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.
--->
-<!doctype html>
-<html>
-<head>
-    <script type="text/javascript" src="buildSystemOnly.js"></script>
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-    <meta http-equiv="Content-Security-Policy" content="object-src 'none'; script-src 'self' 'unsafe-eval'">
-    <link rel="stylesheet" type="text/css" href="inspector.css">
-    <script type="text/javascript" src="inspector.js"></script>
-</head>
-<body class="undocked" id="-blink-dev-tools"></body>
-</html>
+<!--\r
+Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.\r
+\r
+Redistribution and use in source and binary forms, with or without\r
+modification, are permitted provided that the following conditions\r
+are met:\r
+\r
+1.  Redistributions of source code must retain the above copyright\r
+    notice, this list of conditions and the following disclaimer.\r
+2.  Redistributions in binary form must reproduce the above copyright\r
+    notice, this list of conditions and the following disclaimer in the\r
+    documentation and/or other materials provided with the distribution.\r
+3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of\r
+    its contributors may be used to endorse or promote products derived\r
+    from this software without specific prior written permission.\r
+\r
+THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+-->\r
+<!DOCTYPE html>\r
+<html>\r
+<head>\r
+    <meta http-equiv="content-type" content="text/html; charset=utf-8">\r
+    <link rel="stylesheet" type="text/css" href="devTools.css">\r
+    <script type="text/javascript" src="DevTools.js"></script>\r
+</head>\r
+<body class="detached">\r
+    <div id="toolbar">\r
+        <div class="toolbar-item close-left"><button id="close-button-left"></button></div>\r
+        <div class="toolbar-item flexable-space"></div>\r
+        <div class="toolbar-item hidden" id="search-results-matches"></div>\r
+        <div class="toolbar-item"><input id="search" type="search" incremental results="0"><div id="search-toolbar-label" class="toolbar-label"></div></div>\r
+        <div class="toolbar-item close-right"><button id="close-button-right"></button></div>\r
+    </div>\r
+    <div id="main">\r
+        <div id="main-panels" spellcheck="false"></div>\r
+        <div id="main-status-bar" class="status-bar"><div id="anchored-status-bar-items"><button id="dock-status-bar-item" class="status-bar-item"><div class="glyph"></div><div class="glyph shadow"></div></button><button id="console-status-bar-item" class="status-bar-item"><div class="glyph"></div><div class="glyph shadow"></div></button><button id="changes-status-bar-item" class="status-bar-item hidden"></button><div id="counters"><div id="changes-count" class="hidden"></div><div id="error-warning-count" class="hidden"></div></div></div></div>\r
+    </div>\r
+    <div id="drawer">\r
+        <div id="console-view"><div id="console-messages" class="monospace"><div id="console-prompt" spellcheck="false"><br></div></div></div>\r
+        <div id="drawer-status-bar" class="status-bar"><div id="other-drawer-status-bar-items"><button id="clear-console-status-bar-item" class="status-bar-item clear-status-bar-item"><div class="glyph"></div><div class="glyph shadow"></div></button><div id="console-filter" class="scope-bar status-bar-item"></div></div></div>\r
+    </div>\r
+</body>\r
+</html>\r
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools_extension_api.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/devtools_extension_api.js
deleted file mode 100644 (file)
index a68bb28..0000000
+++ /dev/null
@@ -1,1028 +0,0 @@
-(function() {
-    /*
- * Copyright (C) 2012 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.
- */
-
-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",
-        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"
-    };
-}
-
-/**
- * @param {number} injectedScriptId
- * @return {!Object}
- */
-function injectedExtensionAPI(injectedScriptId)
-{
-
-var apiPrivate = {};
-
-defineCommonExtensionSymbols(apiPrivate);
-
-var commands = apiPrivate.Commands;
-var events = apiPrivate.Events;
-var userAction = false;
-
-// Here and below, all constructors are private to API implementation.
-// For a public type Foo, if internal fields are present, these are on
-// a private FooImpl type, an instance of FooImpl is used in a closure
-// by Foo consutrctor to re-bind publicly exported members to an instance
-// of Foo.
-
-/**
- * @constructor
- */
-function EventSinkImpl(type, customDispatch)
-{
-    this._type = type;
-    this._listeners = [];
-    this._customDispatch = customDispatch;
-}
-
-EventSinkImpl.prototype = {
-    addListener: function(callback)
-    {
-        if (typeof callback !== "function")
-            throw "addListener: callback is not a function";
-        if (this._listeners.length === 0)
-            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 });
-    },
-
-    /**
-     * @param {...} vararg
-     */
-    _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)
-             this._customDispatch.call(this, request);
-         else
-             this._fire.apply(this, request.arguments);
-    }
-}
-
-/**
- * @constructor
- */
-function InspectorExtensionAPI()
-{
-    this.audits = new Audits();
-    this.inspectedWindow = new InspectedWindow();
-    this.panels = new Panels();
-    this.network = new Network();
-    defineDeprecatedProperty(this, "webInspector", "resources", "network");
-    this.timeline = new Timeline();
-    this.console = new ConsoleAPI();
-}
-
-/**
- * @constructor
- */
-function ConsoleAPI()
-{
-    this.onMessageAdded = new EventSink(events.ConsoleMessageAdded);
-}
-
-ConsoleAPI.prototype = {
-    getMessages: function(callback)
-    {
-        extensionServer.sendRequest({ command: commands.GetConsoleMessages }, callback);
-    },
-
-    addMessage: function(severity, text, url, line)
-    {
-        extensionServer.sendRequest({ command: commands.AddConsoleMessage, severity: severity, text: text, url: url, line: line });
-    },
-
-    get Severity()
-    {
-        return apiPrivate.console.Severity;
-    }
-}
-
-/**
- * @constructor
- */
-function Network()
-{
-    /**
-     * @this {EventSinkImpl}
-     */
-    function dispatchRequestEvent(message)
-    {
-        var request = message.arguments[1];
-        request.__proto__ = new Request(message.arguments[0]);
-        this._fire(request);
-    }
-    this.onRequestFinished = new EventSink(events.NetworkRequestFinished, dispatchRequestEvent);
-    defineDeprecatedProperty(this, "network", "onFinished", "onRequestFinished");
-    this.onNavigated = new EventSink(events.InspectedURLChanged);
-}
-
-Network.prototype = {
-    getHAR: function(callback)
-    {
-        function callbackWrapper(result)
-        {
-            var entries = (result && result.entries) || [];
-            for (var i = 0; i < entries.length; ++i) {
-                entries[i].__proto__ = new Request(entries[i]._requestId);
-                delete entries[i]._requestId;
-            }
-            callback(result);
-        }
-        return extensionServer.sendRequest({ command: commands.GetHAR }, callback && callbackWrapper);
-    },
-
-    addRequestHeaders: function(headers)
-    {
-        return extensionServer.sendRequest({ command: commands.AddRequestHeaders, headers: headers, extensionId: window.location.hostname });
-    }
-}
-
-/**
- * @constructor
- */
-function RequestImpl(id)
-{
-    this._id = id;
-}
-
-RequestImpl.prototype = {
-    getContent: function(callback)
-    {
-        function callbackWrapper(response)
-        {
-            callback(response.content, response.encoding);
-        }
-        extensionServer.sendRequest({ command: commands.GetRequestContent, id: this._id }, callback && callbackWrapper);
-    }
-}
-
-/**
- * @constructor
- */
-function Panels()
-{
-    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.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);
-
-        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
-            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 });
-    },
-
-    openResource: function(url, lineNumber, callback)
-    {
-        extensionServer.sendRequest({ command: commands.OpenResource, "url": url, "lineNumber": lineNumber }, callback);
-    },
-
-    get SearchAction()
-    {
-        return apiPrivate.panels.SearchAction;
-    }
-}
-
-/**
- * @constructor
- */
-function ExtensionViewImpl(id)
-{
-    this._id = id;
-
-    /**
-     * @this {EventSinkImpl}
-     */
-    function dispatchShowEvent(message)
-    {
-        var frameIndex = message.arguments[0];
-        if (typeof frameIndex === "number")
-            this._fire(window.parent.frames[frameIndex]);
-        else
-            this._fire();
-    }
-    this.onShown = new EventSink(events.ViewShown + id, dispatchShowEvent);
-    this.onHidden = new EventSink(events.ViewHidden + id);
-}
-
-/**
- * @constructor
- * @extends {ExtensionViewImpl}
- */
-function PanelWithSidebarImpl(hostPanelName)
-{
-    this._hostPanelName = hostPanelName;
-    this.onSelectionChanged = new EventSink(events.PanelObjectSelected + hostPanelName);
-}
-
-PanelWithSidebarImpl.prototype = {
-    createSidebarPane: function(title, callback)
-    {
-        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 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}
- */
-function ElementsPanel()
-{
-    PanelWithSidebar.call(this, "elements");
-}
-
-ElementsPanel.prototype = {
-    __proto__: PanelWithSidebar.prototype
-}
-
-/**
- * @constructor
- * @extends {PanelWithSidebar}
- */
-function SourcesPanel()
-{
-    PanelWithSidebar.call(this, "sources");
-}
-
-SourcesPanel.prototype = {
-    __proto__: PanelWithSidebar.prototype
-}
-
-/**
- * @constructor
- * @extends {ExtensionViewImpl}
- */
-function ExtensionPanelImpl(id)
-{
-    ExtensionViewImpl.call(this, id);
-    this.onSearch = new EventSink(events.PanelSearch + id);
-}
-
-ExtensionPanelImpl.prototype = {
-    createStatusBarButton: function(iconPath, tooltipText, disabled)
-    {
-        var id = "button-" + extensionServer.nextObjectId();
-        var request = {
-            command: commands.CreateStatusBarButton,
-            panel: this._id,
-            id: id,
-            icon: iconPath,
-            tooltip: tooltipText,
-            disabled: !!disabled
-        };
-        extensionServer.sendRequest(request);
-        return new Button(id);
-    },
-
-    show: function()
-    {
-        if (!userAction)
-            return;
-
-        var request = {
-            command: commands.ShowPanel,
-            id: this._id
-        };
-        extensionServer.sendRequest(request);
-    },
-
-    __proto__: ExtensionViewImpl.prototype
-}
-
-/**
- * @constructor
- * @extends {ExtensionViewImpl}
- */
-function ExtensionSidebarPaneImpl(id)
-{
-    ExtensionViewImpl.call(this, id);
-}
-
-ExtensionSidebarPaneImpl.prototype = {
-    setHeight: function(height)
-    {
-        extensionServer.sendRequest({ command: commands.SetSidebarHeight, id: this._id, height: height });
-    },
-
-    setExpression: function(expression, rootTitle, evaluateOptions)
-    {
-        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 });
-    },
-
-    __proto__: ExtensionViewImpl.prototype
-}
-
-/**
- * @constructor
- */
-function ButtonImpl(id)
-{
-    this._id = id;
-    this.onClicked = new EventSink(events.ButtonClicked + id);
-}
-
-ButtonImpl.prototype = {
-    update: function(iconPath, tooltipText, disabled)
-    {
-        var request = {
-            command: commands.UpdateButton,
-            id: this._id,
-            icon: iconPath,
-            tooltip: tooltipText,
-            disabled: !!disabled
-        };
-        extensionServer.sendRequest(request);
-    }
-};
-
-/**
- * @constructor
- */
-function Audits()
-{
-}
-
-Audits.prototype = {
-    addCategory: function(displayName, resultCount)
-    {
-        var id = "extension-audit-category-" + extensionServer.nextObjectId();
-        if (typeof resultCount !== "undefined")
-            console.warn("Passing resultCount to audits.addCategory() is deprecated. Use AuditResult.updateProgress() instead.");
-        extensionServer.sendRequest({ command: commands.AddAuditCategory, id: id, displayName: displayName, resultCount: resultCount });
-        return new AuditCategory(id);
-    }
-}
-
-/**
- * @constructor
- */
-function AuditCategoryImpl(id)
-{
-    /**
-     * @this {EventSinkImpl}
-     */
-    function dispatchAuditEvent(request)
-    {
-        var auditResult = new AuditResult(request.arguments[0]);
-        try {
-            this._fire(auditResult);
-        } catch (e) {
-            console.error("Uncaught exception in extension audit event handler: " + e);
-            auditResult.done();
-        }
-    }
-    this._id = id;
-    this.onAuditStarted = new EventSink(events.AuditStarted + id, dispatchAuditEvent);
-}
-
-/**
- * @constructor
- */
-function AuditResultImpl(id)
-{
-    this._id = id;
-
-    this.createURL = this._nodeFactory.bind(null, "url");
-    this.createSnippet = this._nodeFactory.bind(null, "snippet");
-    this.createText = this._nodeFactory.bind(null, "text");
-    this.createObject = this._nodeFactory.bind(null, "object");
-    this.createNode = this._nodeFactory.bind(null, "node");
-}
-
-AuditResultImpl.prototype = {
-    addResult: function(displayName, description, severity, details)
-    {
-        // shorthand for specifying details directly in addResult().
-        if (details && !(details instanceof AuditResultNode))
-            details = new AuditResultNode(details instanceof Array ? details : [details]);
-
-        var request = {
-            command: commands.AddAuditResult,
-            resultId: this._id,
-            displayName: displayName,
-            description: description,
-            severity: severity,
-            details: details
-        };
-        extensionServer.sendRequest(request);
-    },
-
-    createResult: function()
-    {
-        return new AuditResultNode(Array.prototype.slice.call(arguments));
-    },
-
-    updateProgress: function(worked, totalWork)
-    {
-        extensionServer.sendRequest({ command: commands.UpdateAuditProgress, resultId: this._id, progress: worked / totalWork });
-    },
-
-    done: function()
-    {
-        extensionServer.sendRequest({ command: commands.StopAuditCategoryRun, resultId: this._id });
-    },
-
-    get Severity()
-    {
-        return apiPrivate.audits.Severity;
-    },
-
-    createResourceLink: function(url, lineNumber)
-    {
-        return {
-            type: "resourceLink",
-            arguments: [url, lineNumber && lineNumber - 1]
-        };
-    },
-
-    _nodeFactory: function(type)
-    {
-        return {
-            type: type,
-            arguments: Array.prototype.slice.call(arguments, 1)
-        };
-    }
-}
-
-/**
- * @constructor
- */
-function AuditResultNode(contents)
-{
-    this.contents = contents;
-    this.children = [];
-    this.expanded = false;
-}
-
-AuditResultNode.prototype = {
-    addChild: function()
-    {
-        var node = new AuditResultNode(Array.prototype.slice.call(arguments));
-        this.children.push(node);
-        return node;
-    }
-};
-
-/**
- * @constructor
- */
-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);
-}
-
-InspectedWindow.prototype = {
-    reload: function(optionsOrUserAgent)
-    {
-        var options = null;
-        if (typeof optionsOrUserAgent === "object")
-            options = optionsOrUserAgent;
-        else if (typeof optionsOrUserAgent === "string") {
-            options = { userAgent: optionsOrUserAgent };
-            console.warn("Passing userAgent as string parameter to inspectedWindow.reload() is deprecated. " +
-                         "Use inspectedWindow.reload({ userAgent: value}) instead.");
-        }
-        return extensionServer.sendRequest({ command: commands.Reload, options: options });
-    },
-
-    eval: function(expression, evaluateOptions)
-    {
-        var callback = extractCallbackArgument(arguments);
-        function callbackWrapper(result)
-        {
-            if (result.isError || result.isException)
-                callback(undefined, result);
-            else
-                callback(result.value);
-        }
-        var request = {
-            command: commands.EvaluateOnInspectedPage,
-            expression: expression
-        };
-        if (typeof evaluateOptions === "object")
-            request.evaluateOptions = evaluateOptions;
-        return extensionServer.sendRequest(request, callback && callbackWrapper);
-    },
-
-    getResources: function(callback)
-    {
-        function wrapResource(resourceData)
-        {
-            return new Resource(resourceData);
-        }
-        function callbackWrapper(resources)
-        {
-            callback(resources.map(wrapResource));
-        }
-        return extensionServer.sendRequest({ command: commands.GetPageResources }, callback && callbackWrapper);
-    }
-}
-
-/**
- * @constructor
- */
-function ResourceImpl(resourceData)
-{
-    this._url = resourceData.url
-    this._type = resourceData.type;
-}
-
-ResourceImpl.prototype = {
-    get url()
-    {
-        return this._url;
-    },
-
-    get type()
-    {
-        return this._type;
-    },
-
-    getContent: function(callback)
-    {
-        function callbackWrapper(response)
-        {
-            callback(response.content, response.encoding);
-        }
-
-        return extensionServer.sendRequest({ command: commands.GetResourceContent, url: this._url }, callback && callbackWrapper);
-    },
-
-    setContent: function(content, commit, callback)
-    {
-        return extensionServer.sendRequest({ command: commands.SetResourceContent, url: this._url, content: content, commit: commit }, callback);
-    }
-}
-
-/**
- * @constructor
- */
-function TimelineImpl()
-{
-    this.onEventRecorded = new EventSink(events.TimelineEventRecorded);
-}
-
-function forwardKeyboardEvent(event)
-{
-    const Esc = "U+001B";
-    // We only care about global hotkeys, not about random text
-    if (!event.ctrlKey && !event.altKey && !event.metaKey && !/^F\d+$/.test(event.keyIdentifier) && event.keyIdentifier !== Esc)
-        return;
-    var request = {
-        command: commands.ForwardKeyboardEvent,
-        eventType: event.type,
-        ctrlKey: event.ctrlKey,
-        altKey: event.altKey,
-        metaKey: event.metaKey,
-        keyIdentifier: event.keyIdentifier,
-        location: event.location
-    };
-    extensionServer.sendRequest(request);
-}
-
-document.addEventListener("keydown", forwardKeyboardEvent, false);
-document.addEventListener("keypress", forwardKeyboardEvent, false);
-
-/**
- * @constructor
- */
-function ExtensionServerClient()
-{
-    this._callbacks = {};
-    this._handlers = {};
-    this._lastRequestId = 0;
-    this._lastObjectId = 0;
-
-    this.registerHandler("callback", this._onCallback.bind(this));
-
-    var channel = new MessageChannel();
-    this._port = channel.port1;
-    this._port.addEventListener("message", this._onMessage.bind(this), false);
-    this._port.start();
-
-    window.parent.postMessage("registerExtension", [ channel.port2 ], "*");
-}
-
-ExtensionServerClient.prototype = {
-    /**
-     * @param {function()=} callback
-     */
-    sendRequest: function(message, callback)
-    {
-        if (typeof callback === "function")
-            message.requestId = this._registerCallback(callback);
-        return this._port.postMessage(message);
-    },
-
-    hasHandler: function(command)
-    {
-        return !!this._handlers[command];
-    },
-
-    registerHandler: function(command, handler)
-    {
-        this._handlers[command] = handler;
-    },
-
-    unregisterHandler: function(command)
-    {
-        delete this._handlers[command];
-    },
-
-    nextObjectId: function()
-    {
-        return injectedScriptId + "_" + ++this._lastObjectId;
-    },
-
-    _registerCallback: function(callback)
-    {
-        var id = ++this._lastRequestId;
-        this._callbacks[id] = callback;
-        return id;
-    },
-
-    _onCallback: function(request)
-    {
-        if (request.requestId in this._callbacks) {
-            var callback = this._callbacks[request.requestId];
-            delete this._callbacks[request.requestId];
-            callback(request.result);
-        }
-    },
-
-    _onMessage: function(event)
-    {
-        var request = event.data;
-        var handler = this._handlers[request.command];
-        if (handler)
-            handler.call(this, request);
-    }
-}
-
-function populateInterfaceClass(interface, implementation)
-{
-    for (var member in implementation) {
-        if (member.charAt(0) === "_")
-            continue;
-        var descriptor = null;
-        // Traverse prototype chain until we find the owner.
-        for (var owner = implementation; owner && !descriptor; owner = owner.__proto__)
-            descriptor = Object.getOwnPropertyDescriptor(owner, member);
-        if (!descriptor)
-            continue;
-        if (typeof descriptor.value === "function")
-            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);
-    }
-}
-
-// extensionServer is a closure variable defined by the glue below -- make sure we fail if it's not there.
-if (!extensionServer)
-    extensionServer = new ExtensionServerClient();
-
-return new InspectorExtensionAPI();
-}
-
-/**
- * @param {!ExtensionDescriptor} extensionInfo
- * @return {string}
- */
-function buildExtensionAPIInjectedScript(extensionInfo)
-{
-    return "(function(injectedScriptId){ " +
-        "var extensionServer;" +
-        defineCommonExtensionSymbols.toString() + ";" +
-        injectedExtensionAPI.toString() + ";" +
-        buildPlatformExtensionAPI(extensionInfo) + ";" +
-        "platformExtensionAPI(injectedExtensionAPI(injectedScriptId));" +
-        "return {};" +
-        "})";
-}
-/*
- * Copyright (C) 2011 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.
- */
-
-function platformExtensionAPI(coreAPI)
-{
-    function getTabId()
-    {
-        return tabId;
-    }
-    chrome = window.chrome || {};
-    // Override chrome.devtools as a workaround for a error-throwing getter being exposed
-    // in extension pages loaded into a non-extension process (only happens for remote client
-    // extensions)
-    var devtools_descriptor = Object.getOwnPropertyDescriptor(chrome, "devtools");
-    if (!devtools_descriptor || devtools_descriptor.get)
-        Object.defineProperty(chrome, "devtools", { value: {}, enumerable: true });
-    // Only expose tabId on chrome.devtools.inspectedWindow, not webInspector.inspectedWindow.
-    chrome.devtools.inspectedWindow = {};
-    chrome.devtools.inspectedWindow.__defineGetter__("tabId", getTabId);
-    chrome.devtools.inspectedWindow.__proto__ = coreAPI.inspectedWindow;
-    chrome.devtools.network = coreAPI.network;
-    chrome.devtools.panels = coreAPI.panels;
-
-    // default to expose experimental APIs for now.
-    if (extensionInfo.exposeExperimentalAPIs !== false) {
-        chrome.experimental = chrome.experimental || {};
-        chrome.experimental.devtools = chrome.experimental.devtools || {};
-
-        var properties = Object.getOwnPropertyNames(coreAPI);
-        for (var i = 0; i < properties.length; ++i) {
-            var descriptor = Object.getOwnPropertyDescriptor(coreAPI, properties[i]);
-            Object.defineProperty(chrome.experimental.devtools, properties[i], descriptor);
-        }
-        chrome.experimental.devtools.inspectedWindow = chrome.devtools.inspectedWindow;
-    }
-    if (extensionInfo.exposeWebInspectorNamespace)
-        window.webInspector = coreAPI;
-}
-
-        var tabId;
-        var extensionInfo = {};
-        var extensionServer;
-        platformExtensionAPI(injectedExtensionAPI("remote-" + window.parent.frames.length));
-    })();
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/elementsPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/elementsPanel.css
deleted file mode 100644 (file)
index 7816ec4..0000000
+++ /dev/null
@@ -1,681 +0,0 @@
-/*
- * 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.
- */
-
-#elements-content {
-    flex: 1 1;
-    overflow: auto;
-    padding-left: 0;
-}
-
-#elements-crumbs {
-    flex: 0 0 19px;
-    background-color: rgb(236, 236, 236);
-    border-top: 1px solid #ccc;
-}
-
-#elements-content > ol {
-    display: inline-block;
-    min-height: 100%;
-}
-
-#elements-content .editing {
-    margin-left: 8px;
-}
-
-#elements-content .elements-gutter-decoration {
-    position: absolute;
-    left: 1px;
-    margin-top: 2px;
-    height: 8px;
-    width: 8px;
-    border-radius: 4px;
-    border: 1px solid orange;
-    background-color: orange;
-}
-
-#elements-content .elements-gutter-decoration.elements-has-decorated-children {
-    opacity: 0.5;
-}
-
-#elements-content .CodeMirror {
-    /* Consistent with the .editing class in inspector.css */
-    box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;
-    outline: 1px solid rgb(66%, 66%, 66%) !important;
-    background-color: white;
-}
-
-#elements-content .CodeMirror pre {
-    padding: 0;
-}
-
-#elements-content .CodeMirror-lines {
-    padding: 0;
-}
-
-.elements-tree-editor {
-    -webkit-user-select: text;
-    -webkit-user-modify: read-write-plaintext-only;
-}
-
-.metrics {
-    padding: 8px;
-    font-size: 10px;
-    text-align: center;
-    white-space: nowrap;
-}
-
-.metrics .label {
-    position: absolute;
-    font-size: 10px;
-    margin-left: 3px;
-    padding-left: 2px;
-    padding-right: 2px;
-}
-
-.metrics .position {
-    border: 1px rgb(66%, 66%, 66%) dotted;
-    background-color: white;
-    display: inline-block;
-    text-align: center;
-    padding: 3px;
-    margin: 3px;
-}
-
-.metrics .margin {
-    border: 1px dashed;
-    background-color: white;
-    display: inline-block;
-    text-align: center;
-    vertical-align: middle;
-    padding: 3px;
-    margin: 3px;
-}
-
-.metrics .border {
-    border: 1px black solid;
-    background-color: white;
-    display: inline-block;
-    text-align: center;
-    vertical-align: middle;
-    padding: 3px;
-    margin: 3px;
-}
-
-.metrics .padding {
-    border: 1px grey dashed;
-    background-color: white;
-    display: inline-block;
-    text-align: center;
-    vertical-align: middle;
-    padding: 3px;
-    margin: 3px;
-}
-
-.metrics .content {
-    position: static;
-    border: 1px gray solid;
-    background-color: white;
-    display: inline-block;
-    text-align: center;
-    vertical-align: middle;
-    padding: 3px;
-    margin: 3px;
-    min-width: 80px;
-    overflow: visible;
-}
-
-.metrics .content span {
-    display: inline-block;
-}
-
-.metrics .editing {
-    position: relative;
-    z-index: 100;
-    cursor: text;
-}
-
-.metrics .left {
-    display: inline-block;
-    vertical-align: middle;
-}
-
-.metrics .right {
-    display: inline-block;
-    vertical-align: middle;
-}
-
-.metrics .top {
-    display: inline-block;
-}
-
-.metrics .bottom {
-    display: inline-block;
-}
-
-.styles-section {
-    padding: 2px 2px 4px 4px;
-    min-height: 18px;
-    white-space: nowrap;
-    background-origin: padding;
-    background-clip: padding;
-    -webkit-user-select: text;
-    border-bottom: 1px solid rgb(191, 191, 191);
-}
-
-.styles-pane .sidebar-separator {
-    border-top: 0px none;
-}
-
-.styles-section.user-rule {
-    display: none;
-}
-
-.show-user-styles .styles-section.user-rule {
-    display: block;
-}
-
-.styles-sidebar-placeholder {
-    height: 16px;
-}
-
-.styles-section.read-only:not(.computed-style) {
-    background-color: rgb(240, 240, 240);
-}
-
-.styles-section .properties li.not-parsed-ok {
-    margin-left: 0;
-}
-
-.styles-section.computed-style .properties li.not-parsed-ok {
-    margin-left: -6px;
-}
-
-.styles-section .properties li.not-parsed-ok .exclamation-mark {
-    display: inline-block;
-    position: relative;
-    width: 11px;
-    height: 10px;
-    margin: 0 7px 0 0;
-    top: 1px;
-    left: -36px; /* outdent to compensate for the top-level property indent */
-    -webkit-user-select: none;
-    cursor: default;
-    z-index: 1;
-}
-
-.styles-section .header {
-    white-space: nowrap;
-    background-origin: padding;
-    background-clip: padding;
-}
-
-.styles-section .header .title {
-    word-wrap: break-word;
-    white-space: normal;
-}
-
-.styles-section .header .title .media,
-.styles-section .header .title .media .subtitle {
-    color: rgb(128, 128, 128);
-    overflow: hidden;
-}
-
-.styles-section .header .subtitle {
-    color: rgb(85, 85, 85);
-    float: right;
-    margin-left: 5px;
-    max-width: 100%;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    white-space: nowrap;
-}
-
-.styles-section .header .subtitle a {
-    color: inherit;
-}
-
-.styles-section .selector {
-    color: #888;
-}
-
-.styles-section .simple-selector.selector-matches {
-    color: #222;
-}
-
-.styles-section a[data-uncopyable] {
-    display: inline-block;
-}
-
-.styles-section a[data-uncopyable]::before {
-    content: attr(data-uncopyable);
-    text-decoration: underline;
-}
-
-.styles-section .properties {
-    display: none;
-    margin: 0;
-    padding: 2px 4px 0 0;
-    list-style: none;
-    clear: both;
-}
-
-.styles-section.matched-styles .properties {
-    padding-left: 0;
-}
-
-.styles-section.no-affect .properties li {
-    opacity: 0.5;
-}
-
-.styles-section.no-affect .properties li.editing {
-    opacity: 1.0;
-}
-
-.styles-section.expanded .properties {
-    display: block;
-}
-
-.styles-section .properties li {
-    margin-left: 12px;
-    padding-left: 22px;
-    padding-top: 0;
-    white-space: normal;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    cursor: auto;
-}
-
-.styles-section.computed-style.expanded .properties > li {
-    padding-left: 0;
-}
-
-.styles-section.computed-style.expanded .properties > li .webkit-css-property {
-    margin-left: 0;
-}
-
-.styles-section .properties li .webkit-css-property {
-    margin-left: -22px; /* outdent the first line of longhand properties (in an expanded shorthand) to compensate for the "padding-left" shift in .styles-section .properties li */
-}
-
-.styles-section.expanded .properties > li {
-    padding-left: 38px;
-}
-
-.styles-section .properties > li .webkit-css-property {
-    margin-left: -38px; /* outdent the first line of the top-level properties to compensate for the "padding-left" shift in .styles-section .properties > li */
-}
-
-.styles-section .properties > li.child-editing {
-    padding-left: 8px;
-}
-
-.styles-section .properties > li.child-editing .webkit-css-property {
-    margin-left: 0;
-}
-
-.styles-section.matched-styles .properties li {
-    margin-left: 0 !important;
-}
-
-.styles-section .properties li.child-editing {
-    word-wrap: break-word !important;
-    white-space: normal !important;
-    padding-left: 0;
-}
-
-.styles-section .properties ol {
-    display: none;
-    margin: 0;
-    -webkit-padding-start: 12px;
-    list-style: none;
-}
-
-.styles-section .properties ol.expanded {
-    display: block;
-}
-
-.styles-section.matched-styles .properties li.parent .expand-element {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    margin-right: 2px;
-    margin-left: -6px;
-    opacity: 0.55;
-    width: 8px;
-    height: 10px;
-    display: inline-block;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.styles-section.matched-styles .properties li.parent .expand-element {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.styles-section.matched-styles .properties li.parent .expand-element {
-    background-position: -4px -96px;
-}
-
-.styles-section.matched-styles .properties li.parent.expanded .expand-element {
-    background-position: -20px -96px;
-}
-
-.styles-section .properties li .info {
-    padding-top: 4px;
-    padding-bottom: 3px;
-}
-
-.styles-section.matched-styles:not(.read-only):hover .properties .enabled-button {
-    visibility: visible;
-}
-
-.styles-section.matched-styles:not(.read-only) .properties li.disabled .enabled-button {
-    visibility: visible;
-}
-
-.styles-section .properties .enabled-button {
-    visibility: hidden;
-    float: left;
-    font-size: 10px;
-    margin: 0;
-    vertical-align: top;
-    position: relative;
-    z-index: 1;
-    width: 18px;
-    left: -40px; /* original -2px + (-38px) to compensate for the first line outdent */
-    top: 1px;
-}
-
-.styles-section.matched-styles .properties ol.expanded {
-    margin-left: 16px;
-}
-
-.styles-section .properties .overloaded:not(.has-ignorable-error),
-.styles-section .properties .inactive,
-.styles-section .properties .disabled,
-.styles-section .properties .not-parsed-ok:not(.has-ignorable-error) {
-    text-decoration: line-through;
-}
-
-.styles-section .properties .has-ignorable-error .webkit-css-property {
-    color: inherit;
-}
-
-.styles-section.computed-style .properties {
-    margin-top: 18px;
-}
-
-.styles-section.computed-style .properties .disabled {
-    text-decoration: none;
-    opacity: 0.5;
-}
-
-.styles-section .properties .implicit,
-.styles-section .properties .inherited {
-    opacity: 0.5;
-}
-
-.styles-section .properties .has-ignorable-error {
-    color: gray;
-}
-
-.styles-element-state-pane {
-    background-color: rgb(240, 240, 240);
-    overflow: hidden;
-    margin-top: -56px;
-    padding-top: 18px;
-    height: 56px;
-    -webkit-transition: margin-top 0.1s ease-in-out;
-    padding-left: 2px;
-}
-
-.styles-element-state-pane.expanded {
-    border-bottom: 1px solid rgb(189, 189, 189);
-    margin-top: 0;
-}
-
-.styles-element-state-pane > table {
-    width: 100%;
-    border-spacing: 0;
-}
-
-.styles-element-state-pane input {
-    margin: 2px;
-    vertical-align: -2px;
-}
-
-.styles-selector {
-    cursor: text;
-}
-
-.body .styles-section .properties .inherited {
-    display: none;
-}
-
-.styles-section.styles-show-inherited .properties .inherited {
-    display: block;
-}
-
-.add-attribute {
-    margin-left: 1px;
-    margin-right: 1px;
-    white-space: nowrap;
-}
-
-.section .event-bars {
-    display: none;
-}
-
-.section.expanded .event-bars {
-    display: block;
-}
-
-.event-bar {
-    position: relative;
-    margin-left: 10px;
-}
-
-.event-bar:first-child {
-    margin-top: 1px;
-}
-
-.event-bars .event-bar .header {
-    padding: 0 8px 0 6px;
-    min-height: 16px;
-    opacity: 1.0;
-    white-space: nowrap;
-    background-origin: padding;
-    background-clip: padding;
-}
-
-.event-bars .event-bar .header .title {
-    font-weight: normal;
-    text-shadow: white 0 1px 0;
-}
-
-.event-bars .event-bar .header .subtitle {
-    color: rgba(90, 90, 90, 0.75);
-}
-
-.event-bars .event-bar .header::before {
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    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) {
-.event-bars .event-bar .header::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.event-bars .event-bar .header::before {
-    background-position: -4px -96px;
-}
-
-.event-bars .event-bar.expanded .header::before {
-    background-position: -20px -96px;
-}
-
-.image-preview-container {
-    background: transparent;
-    text-align: center;
-}
-
-.image-preview-container img {
-    margin: 2px auto;
-    max-width: 100px;
-    max-height: 100px;
-    background-image: url(Images/checker.png);
-    -webkit-user-select: text;
-    -webkit-user-drag: auto;
-}
-
-.sidebar-pane.composite {
-    overflow: hidden;
-    position: absolute;
-}
-
-.sidebar-pane.composite > .body {
-    height: 100%;
-}
-
-.sidebar-pane.composite .metrics {
-    border-bottom: 1px solid rgb(64%, 64%, 64%);
-    height: 206px;
-    display: -webkit-flex;
-    -webkit-flex-direction: column;
-    -webkit-align-items: center;
-    -webkit-justify-content: center;
-}
-
-.sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar {
-    margin-top: 4px;
-    margin-bottom: -4px;
-    position: relative;
-}
-
-.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;
-}
-
-.sidebar-pane.composite .platform-fonts .css-font-value {
-    margin-left: 1ex;
-}
-
-.sidebar-pane.composite .platform-fonts .font-stats-item {
-    padding-left: 1em;
-}
-
-.sidebar-pane.composite .platform-fonts .font-stats-item .delimeter {
-    margin: 0 1ex 0 1ex;
-}
-
-.sidebar-pane.composite .metrics-and-styles .metrics {
-    border-bottom: none;
-}
-
-.styles-section.computed-style > .header > .sidebar-pane-subtitle {
-    top: 4px;
-    left: 8px;
-    -webkit-user-select: none;
-}
-
-.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 {
-    float: right;
-    width: 23px;
-    height: 17px;
-    color: transparent;
-    background-color: transparent;
-    border: none;
-    background-repeat: no-repeat;
-    margin: 1px 0 0 0;
-    padding: 0;
-    border-radius: 0;
-    -webkit-appearance: none;
-}
-
-.panel.elements .sidebar-pane-toolbar > select:hover {
-    background-position: -23px 0;
-}
-
-.panel.elements .sidebar-pane-toolbar > select:active {
-    background-position: -46px 0;
-}
-
-.panel.elements .sidebar-pane-toolbar > select.select-settings {
-    background-image: url(Images/paneSettingsButtons.png);
-}
-
-.panel.elements .sidebar-pane-toolbar > select.select-filter {
-    background-image: url(Images/paneFilterButtons.png);
-}
-.panel.elements .sidebar-pane-toolbar > select > option,
-.panel.elements .sidebar-pane-toolbar > select > hr {
-    color: black;
-}
-
-.styles-section:not(.read-only) .properties .webkit-css-property.styles-panel-hovered,
-.styles-section:not(.read-only) .properties .value .styles-panel-hovered,
-.styles-section:not(.read-only) .properties .value.styles-panel-hovered,
-.styles-section:not(.read-only) span.simple-selector.styles-panel-hovered {
-    text-decoration: underline;
-    cursor: default;
-}
-
-.styles-clipboard-only {
-    display: inline-block;
-    width: 0;
-    opacity: 0;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filter.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filter.css
deleted file mode 100644 (file)
index 6666cc3..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * 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.
- */
-
-.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;
-    overflow: hidden;
-}
-
-.filter-bitset-filter li {
-    display: inline-block;
-    margin: 2px;
-    padding: 0px 6px;
-    background: transparent;
-    text-shadow: rgba(255, 255, 255, 0.5) 0 1px 0;
-    border-radius: 8px;
-}
-
-.filter-bitset-filter-divider {
-    background-color: #ccc;
-    height: 16px;
-    width: 1px;
-    vertical-align: middle;
-    display: inline-block;
-}
-
-.filter-bitset-filter li.selected,
-.filter-bitset-filter li:hover,
-.filter-bitset-filter li:active {
-    color: white;
-    text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
-}
-
-.filter-bitset-filter li.all {
-    margin: 1px 8px;
-}
-
-.filter-bitset-filter li:hover {
-    background: rgba(0, 0, 0, 0.2);
-}
-
-.filter-bitset-filter li.selected {
-    background: rgba(0, 0, 0, 0.3);
-}
-
-.filter-bitset-filter li:active {
-    background: rgba(0, 0, 0, 0.5);
-}
-
-.filter-combobox-filter {
-    margin-left: 5px;
-    margin-right: 2px;
-    flex: 0 0 auto;
-}
-
-.filter-checkbox-filter {
-    line-height: 22px;
-    padding-left: 4px;
-    padding-right: 2px;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
-
-.filter-text-invalid {
-    background-color: rgb(255, 200, 200);
-}
-
-.filter-checkbox-filter .checkbox-filter-checkbox {
-    width: 10px;
-    height: 10px;
-    margin: 0 3px 0 3px;
-    padding: 0;
-    border-radius: 2px;
-    border: solid 1px;
-    display: inline-block;
-    overflow: visible;
-    opacity: 0.8;
-    vertical-align: -1px;
-}
-
-
-.filter-checkbox-filter .checkbox-filter-checkbox-check {
-    -webkit-appearance: none;
-    width: 11px;
-    height: 11px;
-    margin-top: -2px;
-    margin-left: 1px;
-}
-
-.filter-checkbox-filter .checkbox-filter-checkbox-checked {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    background-position: -129px -110px;
-}
-
-.filters-toggle > .glyph {
-    -webkit-mask-position: -32px -48px;
-}
-
-.filters-toggle.toggled-shown .glyph {
-    background-color: rgb(66, 129, 235);
-}
-
-.filters-toggle.toggled-active .glyph {
-    background-color: rgb(216, 0, 0);
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filteredItemSelectionDialog.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/filteredItemSelectionDialog.css
deleted file mode 100644 (file)
index a1bfed0..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-.filtered-item-list-dialog > input {
-    font-size: 11px;
-    width: 100%;
-    height: 24px;
-}
-
-.filtered-item-list-dialog > div.container {
-    position: absolute;
-    top: 38px;
-    bottom: 10px;
-    left: 10px;
-    right: 10px;
-    overflow-y: auto;
-    border: 1px solid rgb(187, 187, 187);
-    background-color: white;
-}
-
-.filtered-item-list-dialog-item {
-    padding: 2px;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    color: rgb(95, 95, 95);
-}
-
-.filtered-item-list-dialog-subtitle {
-    color: rgb(155, 155, 155);
-}
-
-.filtered-item-list-dialog-item.one-row .filtered-item-list-dialog-subtitle {
-    float: right;
-}
-
-.filtered-item-list-dialog-item.two-rows {
-    border-bottom: 1px solid rgb(235, 235, 235);
-}
-
-.filtered-item-list-dialog-item.selected {
-    background-color: rgb(224, 224, 224);
-}
-
-.filtered-item-list-dialog-item span.highlight {
-    color: #222;
-    font-weight: bold;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/flameChart.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/flameChart.css
deleted file mode 100644 (file)
index bc35be6..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-.overview-container {
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    width: 100%;
-    height: 80px;
-}
-
-.chart-container {
-    overflow: hidden;
-    position: absolute;
-    top: 80px;
-    width: 100%;
-    bottom: 0;
-}
-
-#flame-chart-overview-grid .resources-dividers-label-bar {
-    pointer-events: auto;
-}
-
-#flame-chart-overview-container {
-    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
-}
-
-.flame-chart-overview-canvas {
-    position: absolute;
-    top: 20px;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.chart-container .entry-info {
-    position: absolute;
-    left: 10px;
-    top: 25px;
-    background-color: rgba(255, 255, 255, 0.8);
-    pointer-events: none;
-}
-
-.chart-container .entry-info .title {
-    font-weight: bold;
-}
\ No newline at end of file
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/heapProfiler.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/heapProfiler.css
deleted file mode 100644 (file)
index d74ea2d..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2010 Apple 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.
- */
-
-.heap-snapshot-sidebar-tree-item .icon {
-    content: url(Images/profileIcon.png);
-}
-
-.heap-snapshot-sidebar-tree-item.wait .icon {
-    content: url(Images/spinnerActive.gif);
-}
-
-.heap-snapshot-sidebar-tree-item.wait.selected .icon {
-    content: url(Images/spinnerActiveSelected.gif);
-}
-
-body.inactive .heap-snapshot-sidebar-tree-item.wait .icon {
-    content: url(Images/spinnerInactive.gif);
-}
-
-body.inactive .heap-snapshot-sidebar-tree-item.wait.selected .icon {
-    content: url(Images/spinnerInactiveSelected.gif);
-}
-
-.heap-snapshot-sidebar-tree-item.small .icon {
-    content: url(Images/profileSmallIcon.png);
-}
-
-.heap-snapshot-view {
-    display: none;
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.heap-snapshot-view.visible {
-    display: block;
-}
-
-.heap-snapshot-view .view {
-    display: none;
-}
-
-.heap-snapshot-view .view.visible {
-    display: block;
-}
-
-.heap-snapshot-view .data-grid tr:empty {
-    height: 16px;
-    visibility: hidden;
-}
-
-.heap-snapshot-view .data-grid {
-    border: none;
-}
-
-.heap-snapshot-view .data-grid td.count-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.addedCount-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.removedCount-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.countDelta-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.addedSize-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.removedSize-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.sizeDelta-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.shallowSize-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.retainedSize-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid td.distanceToWindow-column {
-    text-align: right;
-}
-
-.heap-snapshot-view .data-grid div.heap-snapshot-multiple-values {
-    float: right;
-}
-
-.heap-snapshot-view .data-grid span.percent-column {
-    color: #999;
-    width: 32px;
-    display: inline-block;
-}
-
-.heap-snapshot-view .console-formatted-object,
-.console-formatted-node {
-    display: inline;
-    position: static;
-}
-
-.detached-dom-tree-node {
-    background-color: #FF9999;
-}
-
-.heap-snapshot-view .console-formatted-string {
-    white-space: nowrap;
-}
-
-.heap-snapshot-view .console-formatted-id {
-    color: grey;
-}
-
-.heap-snapshot-view .data-grid tr.selected * {
-    color: inherit;
-}
-
-.heap-snapshot-view .data-grid:focus tr.selected * {
-    color: white;
-}
-
-.heap-snapshot-view .delimiter {
-    height: 24px;
-    background-color: #d6dde5;
-}
-
-.heap-snapshot-view .data-grid {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.heap-snapshot-view .views-container {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 173px;
-}
-
-.reserve-80px-at-top {
-    top: 80px !important;
-}
-
-.heap-snapshot-view .views-container .view {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.heap-snapshot-view .retaining-paths-view {
-    height: 150px;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-}
-
-.heap-snapshot-view .class-view-grid {
-    top: 22px;
-}
-
-.heap-snapshot-view .class-view-toolbar {
-    height: 22px;
-    background-color: #DDD;
-    display: block;
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-}
-
-.heap-snapshot-view .class-view-toolbar input.class-name-filter {
-    width: 200px;
-    height: 18px;
-    font-size: 11px;
-    padding: 2px;
-    margin: 2px 10px;
-    background-color: white;
-    border: solid 1px #BBB;
-}
-
-.heap-snapshot-view .retainers-view-header {
-    background-image: url(Images/statusbarResizerVertical.png), -webkit-linear-gradient(rgb(253,253,253), rgb(230,230,230) 75%, rgb(230,230,230));
-    border-top: 1px solid rgb(202, 202, 202);
-    background-repeat: no-repeat;
-    background-position: right center, center;
-    height: 23px;
-    display: block;
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 150px;
-}
-
-.heap-snapshot-view .retainers-view-header .title > span {
-    display: inline-block;
-    padding-top: 3px;
-    vertical-align: middle;
-    margin-left: 4px;
-    margin-right: 8px;
-}
-
-.heap-snapshot-view tr:not(.selected) td.object-column span.highlight {
-    background-color: rgb(255, 255, 200);
-}
-
-.heap-snapshot-view td.object-column span.grayed {
-    color: gray;
-}
-
-.heap-snapshot-help-status-bar-item .glyph {
-    -webkit-mask-position: -160px -2px;
-}
-
-table.heap-snapshot-help {
-    border-spacing: 12px 2px;
-}
-
-.cycled-ancessor-node {
-    opacity: 0.6;
-}
-
-#heap-recording-view .heap-snapshot-view {
-    top: 80px;
-}
-
-.overview-container {
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    width: 100%;
-    height: 80px;
-}
-
-#heap-recording-overview-grid .resources-dividers-label-bar {
-    pointer-events: auto;
-}
-
-#heap-recording-overview-container {
-    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
-}
-
-.heap-recording-overview-canvas {
-    position: absolute;
-    top: 20px;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/helpScreen.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/helpScreen.css
deleted file mode 100644 (file)
index e060e40..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-.help-window-outer {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    z-index: 2000;
-}
-
-.help-window-main {
-    max-height: 100%;
-    color: white;
-    background-color: rgba(17, 17, 17, 0.85);
-    display: -webkit-flex;
-    -webkit-flex-direction: column;
-    border-top-width: 0;
-    border-radius: 10px;
-}
-
-.help-window-main a {
-    color: rgb(17, 85, 204);
-}
-
-.help-window-caption {
-    border-bottom: solid 1px rgb(153, 153, 153);
-    margin: 0 8px;
-    padding: 0 2px;
-    line-height: 28px;
-}
-
-.help-window-title {
-    font-size: 16px;
-    margin: 0;
-    padding-top: 1px;
-    margin-bottom: -1px;
-}
-
-.help-content {
-    overflow-y: auto;
-    overflow-x: hidden;
-    margin: 8px;
-    padding: 0 4px;
-}
-
-.help-footnote {
-    border-top: 1px solid #EEEEEE;
-    margin: 0;
-    padding: 12px;
-}
-
-.help-window-main .help-container-wrapper::-webkit-scrollbar {
-    width: 11px;
-}
-
-.help-window-main .help-container-wrapper::-webkit-scrollbar-corner,
-.help-window-main .help-container-wrapper::-webkit-resizer {
-    display: none;
-}
-
-.help-window-main .help-container-wrapper::-webkit-scrollbar-thumb:vertical {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(128, 128, 128)), to(rgb(128, 128, 128)), color-stop(40%, rgb(96, 96, 96)));
-    border-radius: 5px;
-    min-height: 20px;
-}
-
-.help-window-main .help-container-wrapper::-webkit-scrollbar-thumb:vertical:hover,
-.help-window-main .help-container-wrapper::-webkit-scrollbar-thumb:vertical:active {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(176, 176, 176)), to(rgb(176, 176, 176)), color-stop(40%, rgb(144, 144, 144)));
-}
-
-.help-window-main .help-container-wrapper::-webkit-scrollbar-track:vertical {
-    background: -webkit-gradient(linear, left top, right top, from(rgb(10, 10, 10)), to(rgb(32, 32, 32)), color-stop(25%, rgb(32, 32, 32)));
-    border-radius: 5px;
-}
-
-.help-close-button {
-    position: absolute;
-    top: 8px;
-    right: 8px;
-}
-
-body.dock-to-bottom .help-content {
-    margin-bottom: 8px;
-}
-
-body.platform-mac .help-window-main .tabbed-pane-header-contents {
-    margin-left: 27px;
-}
-
-body.platform-mac .help-window-main .help-window-title {
-    margin-left: 18px;
-}
-
-.help-container {
-    width: 100%;
-    -webkit-user-select: auto;
-    -webkit-column-width: 470px;
-}
-
-body.platform-mac .settings-tab .help-container {
-    -webkit-column-width: 430px;
-}
-
-body.platform-mac .help-container {
-    -webkit-column-width: 361px;
-}
-
-.help-block {
-    display: block;
-    padding-bottom: 9px;
-    width: 470px;
-    -webkit-column-break-inside: avoid;
-}
-
-body.platform-mac .settings-tab .help-block {
-    width: 430px;
-}
-
-.settings-tab.help-container {
-    -webkit-column-width: 410px;
-}
-
-.settings-tab .help-block {
-    width: 410px;
-    margin-left: 20px;
-}
-
-.settings-tab .field-error-message {
-    color: DarkRed;
-}
-
-.help-line {
-    padding-bottom: 5px;
-    margin-bottom: 5px;
-}
-
-.help-key-cell {
-    display: inline-block;
-    width: 270px;
-    text-align: right;
-}
-
-body.platform-mac .help-key-cell {
-    width: 151px;
-}
-
-.help-cell {
-    display: inline;
-}
-
-.help-section-title {
-    font-size: 120%;
-}
-
-.help-key {
-    padding: 0.1em 0.6em;
-    border: 1px solid #ccc;
-    font-size: 11px;
-    background-color: #f7f7f7;
-    color: #333;
-    box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2), 0 0 0 2px #ffffff inset;
-    border-radius: 3px;
-    display: inline-block;
-    margin: 0 0.1em;
-    text-shadow: 0 1px 0 #fff;
-    line-height: 1.5;
-    white-space: nowrap;
-}
-
-body.platform-mac .help-key {
-    font-family: Lucida Grande, sans-serif;
-}
-
-.help-combine-keys,
-.help-key-delimiter {
-    font-size: 9px;
-}
-
-.help-combine-keys {
-    margin: 0 0.3em;
-}
-
-.help-key-delimiter {
-    margin: 0 0.5em;
-}
-
-.help-window-outer fieldset {
-    margin: 0;
-    padding: 0;
-    border: none;
-}
-
-.settings-tab label {
-    padding-right: 4px;
-}
-
-#general-tab-content .help-block fieldset legend {
-    font-size: 14px;
-}
-
-.help-block p p {
-    padding-left: 30px;
-}
-
-#enable-devtools-on-startup {
-    margin: 0 0 0 80px;
-    display: inline-block;
-}
-
-.help-content p.help-section {
-    margin: 0 0 15px 0;
-}
-
-.settings-experiments-warning-subsection-warning {
-    color: rgb(200, 0, 0);
-}
-
-.settings-experiments-warning-subsection-message {
-    color: inherit;
-}
-
-#resolution-override-section {
-    margin-left: 13px;
-}
-
-.help-content input[type=checkbox] {
-    height: 13px;
-    width: 13px;
-    margin: 0 7px 0 0;
-    vertical-align: -2px;
-}
-
-body.platform-mac .help-content input[type=checkbox] {
-    vertical-align: -1px;
-}
-
-.help-content input[type=radio] {
-    vertical-align: -2px;
-}
-
-body.platform-mac .help-content input[type=radio] {
-    vertical-align: -1px;
-}
-
-.help-content select {
-    background-color: rgb(64, 64, 64);
-    color: white;
-    border-color: black;
-    padding: 0 4px;
-}
-
-.help-content select:disabled {
-    background-color: rgb(32, 32, 32);
-    color: graytext;
-}
-
-.help-content option {
-    background-color: #EEEEEE;
-    color: #222;
-}
-
-#settings-screen .help-window-main{
-    color: rgb(48, 57, 66);
-    background-color: white;
-    border-radius: 0;
-}
-
-#settings-screen .help-window-main {
-    position: absolute;
-    top: 10px;
-    right: 10px;
-    bottom: 10px;
-    left: 10px;
-    height: initial;
-    padding: 21px 0 0 21px;
-    box-shadow: 1px 1px 5px 2px rgba(128, 128, 128, 0.7);
-}
-
-#settings-screen .help-window-label {
-    font-size: 18px;
-    color: inherit;
-    padding-top: 1px;
-}
-
-.help-container-wrapper {
-    position: absolute;
-    top: 54px;
-    left: 15px;
-    right: 0;
-    bottom: 0;
-    overflow: auto;
-}
-
-#settings-screen .tabbed-pane-header {
-    border: none transparent;
-    height: auto;
-    width: 110px;
-    margin-top: 14px;
-    flex: auto;
-}
-
-#settings-screen .tabbed-pane-header-contents {
-    margin: 0;
-}
-
-#settings-screen .tabbed-pane-header-tabs {
-    display: flex;
-    flex-direction: column;
-    padding-top: 5px;
-    width: 100px;
-}
-
-#settings-screen .tabbed-pane-header-tab {
-    background-color: transparent;
-    border: none transparent;
-    font-weight: normal;
-    text-shadow: none;
-    color: #999999;
-    height: 22px;
-    padding-left: 0;
-}
-
-#settings-screen .tabbed-pane-header-tab:not(.selected) {
-    cursor: pointer;
-}
-
-#settings-screen .tabbed-pane-header-tab.selected {
-    color: inherit;
-}
-
-#settings-screen .tabbed-pane-content {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    margin: 8px;
-}
-
-#settings-screen .tabbed-pane-content {
-    left: 120px;
-}
-
-.settings-tab.help-content {
-    margin: 0;
-    padding: 0;
-}
-
-.settings-tab input:not([type]),
-.settings-tab input[type="text"] {
-    border: 1px solid rgb(213, 213, 213);
-    border-radius: 2px;
-    color: #444444;
-    padding: 3px;
-}
-
-.settings-tab input.numeric {
-    text-align: right;
-}
-
-.settings-tab-container {
-    flex: auto;
-}
-
-.settings-tab-container header {
-    padding: 14px 0 6px;
-    border-bottom: 1px solid #EEEEEE;
-}
-
-#tab-shortcuts {
-    margin-top: 25px !important;
-}
-
-#experiments-tab-content .help-container {
-    -webkit-column-width: 470px;
-}
-
-#experiments-tab-content .help-block {
-    width: 470px;
-}
-
-.settings-tab-container header > h3 {
-    font-size: 18px;
-    font-weight: normal;
-    margin: 0;
-    padding-bottom: 3px;
-}
-
-.settings-tab .help-section-title {
-    margin-left: -20px;
-    color: #222;
-}
-
-.settings-tab .help-block fieldset:disabled label:hover {
-    color: inherit;
-}
-
-.settings-tab .help-block label:hover {
-    color: #222;
-}
-
-.settings-tab p {
-    margin: 12px 0;
-}
-
-.settings-tab select {
-    background-color: #FAFAFA;
-    border-color: rgb(213, 213, 213);
-    border-radius: 2px;
-    color: inherit;
-    padding: 0 4px;
-}
-
-.settings-tab select:disabled {
-    background-color: rgb(221, 221, 221);
-}
-
-.settings-tab .workspace-settings-row input {
-    width: 190px;
-}
-
-#workspace-tab-content .settings-tab.help-content.help-container {
-    -webkit-column-width: initial;
-}
-
-
-#workspace-tab-content .button:hover {
-    opacity: 1.0 !important;
-}
-
-#workspace-tab-content .workspace-settings-row:hover .button {
-    visibility: visible;
-    opacity: 0.4;
-}
-
-#workspace-tab-content .workspace-settings-row .button {
-    width: 10px;
-    height: 10px;
-    border: none;
-    -webkit-appearance: none;
-    background-color: transparent;
-    visibility: hidden;
-    background-position: center;
-    margin: 0 0 0 4px;
-}
-
-#workspace-tab-content .workspace-settings-row .remove-button {
-    background-image: url(Images/deleteIcon.png);
-}
-
-#workspace-tab-content .workspace-settings-row .add-button {
-    background-image: url(Images/addIcon.png);
-}
-
-#workspace-tab-content .workspace-settings-error {
-    color: red;
-}
-
-.settings-tab-text-button {
-    background-image: -webkit-linear-gradient(hsl(0, 0%, 93%), hsl(0, 0%, 93%) 38%, hsl(0, 0%, 87%));
-    border: 1px solid hsla(0, 0%, 0%, 0.25);
-    border-radius: 2px;
-    box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.08), inset 0 1px 2px hsla(0, 100%, 100%, 0.75);
-    color: hsl(0, 0%, 27%);
-    font-size: 12px;
-    margin: 0 1px 0 0;
-    text-shadow: 0 1px 0 hsl(0, 0%, 94%);
-    min-height: 2em;
-    padding-left: 10px;
-    padding-right: 10px;
-}
-
-.settings-tab-text-button:disabled {
-    background-image: -webkit-linear-gradient(#f1f1f1, #f1f1f1 38%, #e6e6e6);
-    border-color: rgba(80, 80, 80, 0.2);
-    box-shadow: 0 1px 0 rgba(80, 80, 80, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.75);
-    color: #aaa;
-}
-
-.settings-tab-text-button:not(:disabled):hover {
-    background-image: -webkit-linear-gradient(hsl(0, 0%, 94%), hsl(0, 0%, 94%) 38%, hsl(0, 0%, 88%));
-    border-color: hsla(0, 0%, 0%, 0.3);
-    box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.12), inset 0 1px 2px hsla(0, 100%, 100%, 0.95);
-    color: hsl(0, 0%, 0%);
-}
-
-.settings-tab-text-button:not(:disabled):active {
-    background-image: -webkit-linear-gradient(hsl(0, 0%, 91%), hsl(0, 0%, 91%) 38%, hsl(0, 0%, 84%));
-    box-shadow: none;
-    text-shadow: none;
-}
-
-.settings-tab .settings-list-container {
-    background-color: white;
-    margin-bottom: 10px;
-}
-
-.settings-tab .settings-list {
-    border: 1px solid hsl(0, 0%, 85%);
-    border-radius: 2px;
-}
-
-.settings-tab .settings-list .settings-list-item .settings-list-item-contents {
-    width: 100%;
-    height: 40px;
-    -webkit-box-align: center;
-    -webkit-transition: 150ms background-color;
-    display: -webkit-box;
-    padding-right: 3px;
-}
-
-.settings-tab .settings-list .settings-list-item .settings-list-item-contents > :first-child {
-    -webkit-box-align: center;
-    -webkit-box-flex: 1;
-    -webkit-padding-end: 5px;
-    display: -webkit-box;
-}
-
-.settings-tab .settings-list .settings-list-item.selected:not(.editable) {
-    background-color: hsl(0, 0%, 82%);
-}
-
-.settings-tab .settings-list .settings-list-item:hover {
-    background-color: hsl(215, 54%, 93%);
-}
-
-.settings-tab .settings-list .settings-list-item.selected:not(.editable):hover {
-    background-color: hsl(215, 51%, 82%);
-}
-
-.settings-tab .settings-list .settings-list-item .remove-item-button {
-    -webkit-transition: 150ms opacity;
-    background-color: hsla(0, 0%, 0%, 0);
-    background-image: -webkit-image-set(
-        url(Images/settingsListRemove.png) 1x,
-        url(Images/settingsListRemove_2x.png) 2x);
-    background-size: 48px 16px;
-    border: none;
-    display: block;
-    height: 16px;
-    width: 16px;
-    opacity: 0;
-    pointer-events: none;
-}
-
-.settings-tab .settings-list .settings-list-item.selected .remove-item-button,
-.settings-tab .settings-list .settings-list-item:hover .remove-item-button {
-    opacity: 1;
-    pointer-events: auto;
-}
-
-.settings-tab .settings-list .settings-list-item .remove-item-button:hover {
-    background-position-x: -32px;
-}
-
-.settings-tab .settings-list .settings-list-item .remove-item-button:active {
-    background-position-x: -16px;
-}
-
-.settings-list-item-columns {
-    height: 100%;
-}
-
-.settings-tab .settings-list .settings-list-item .list-column {
-    displaY: -webkit-box;
-    -webkit-box-align: center;
-    padding-left: 5px;
-    padding-right: 2px;
-    box-sizing: border-box;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    height: 100%;
-}
-
-.settings-tab .settings-list .settings-list-item .list-column .list-column-editor {
-    width: 100%;
-}
-
-.settings-tab .settings-list .settings-list-item.add-list-item .remove-item-button {
-    visibility: hidden;
-}
-
-.settings-tab .settings-list .settings-list-item.editable .list-column .list-column-editor {
-    display: none;
-}
-
-.settings-tab .settings-list .settings-list-item.editable.item-editing .list-column .list-column-editor {
-    display: block;
-}
-
-.settings-tab .settings-list .settings-list-item.editable.item-editing .list-column .list-column-text {
-    display: none;
-}
-
-.settings-tab .settings-list .settings-list-item.editable.item-editing .list-column .list-column-editor.editable-item-error {
-    background-color: pink;
-}
-
-.list-column-editor {
-    border: 1px solid rgb(213, 213, 213);
-    border-radius: 2px;
-    color: #444444;
-    padding: 3px;
-}
-
-.settings-tab .settings-list .settings-list-item .file-system-path {
-    white-space: nowrap;
-    font-size: 12px;
-    padding-left: 6px;
-    padding-right: 5px;
-    -webkit-box-flex: 1;
-    color: hsl(210, 16%, 22%);
-}
-
-.settings-tab .settings-list .settings-list-item .file-system-path-name {
-    padding-right: 6px;
-    font-weight: bold;
-}
-
-.file-mappings-list .settings-list-item .list-column.settings-list-column-url {
-    width: 50%;
-}
-
-.file-mappings-list .settings-list-item .list-column.settings-list-column-path {
-    width: 50%;
-}
-
-.excluded-folders-list .settings-list-item .list-column.settings-list-column-path {
-    width: 100%;
-}
-
-.settings-dialog {
-    border-radius: 3px;
-    box-shadow: 0 4px 23px 5px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0,0,0,0.15);
-    display: -webkit-flex;
-    -webkit-flex-direction: column;
-    background: white;
-}
-
-.settings-dialog .dialog-contents {
-    display: flex;
-    flex-direction: column;
-}
-
-.settings-dialog .header {
-    flex: 0 0 auto;
-    color: #333;
-    font-size: 14px;
-    margin: 0;
-    padding: 14px 17px 14px;
-}
-
-.settings-dialog .contents {
-    flex: 1 1 auto;
-    padding: 0 17px;
-    overflow: auto;
-    margin-bottom: 10px;
-}
-
-.settings-dialog .block-header {
-    color: black;
-    font-size: 1.2em;
-    margin-bottom: 0.8em;
-}
-
-.settings-dialog .done-button {
-    float: right;
-}
-
-.settings-glass-pane {
-    -webkit-box-align: center;
-    -webkit-box-orient: vertical;
-    -webkit-box-pack: center;
-    display: -webkit-box;
-    z-index: 2000 !important;
-    padding: 5px;
-    background-color: rgba(255, 255, 255, 0.4) !important;
-}
-
-.help-indent-labels label {
-    padding-left: 10px;
-}
-
-.help-field-note {
-    opacity: 0.6;
-    padding-left: 19px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/indexedDBViews.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/indexedDBViews.css
deleted file mode 100644 (file)
index 2dc038d..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-.indexed-db-database-view {
-    -webkit-user-select: text;
-    margin-top: 5px;
-}
-
-.indexed-db-database-view .outline-disclosure {
-    padding-left: 0;
-}
-
-.indexed-db-database-view .outline-disclosure li {
-    white-space: nowrap;
-}
-
-.indexed-db-database-view .outline-disclosure .attribute-name {
-    color: rgb(33%, 33%, 33%);
-    display: inline-block;
-    margin-right: 0.5em;
-    font-weight: bold;
-    vertical-align: top;
-}
-
-.indexed-db-database-view .outline-disclosure .attribute-value {
-    display: inline;
-    margin-top: 1px;
-}
-
-.indexed-db-data-view .data-view-toolbar {
-    position: relative;
-    margin-top: -1px;
-    height: 24px;
-}
-
-.indexed-db-data-view .data-view-toolbar .back-button img {
-    content: url(Images/back.png);
-}
-
-.indexed-db-data-view .data-view-toolbar .forward-button img {
-    content: url(Images/forward.png);
-}
-
-.indexed-db-data-view .data-view-toolbar .key-input {
-    font-size: 10px;
-    margin-top: 3px;
-    margin-left: 3px;
-    width: 200px;
-}
-
-.indexed-db-data-view .data-grid-container {
-    top: 23px;
-}
-
-.indexed-db-data-view .data-grid {
-    height: 100%;
-    border: 0;
-}
-
-.indexed-db-data-view .data-grid .data-container tr:nth-child(even) {
-    background-color: white;
-}
-
-.indexed-db-data-view .data-grid .data-container tr:nth-child(odd) {
-    background-color: #EAF3FF;
-}
-
-.indexed-db-data-view .data-grid .data-container tr:nth-last-child(1) {
-    background-color: white;
-}
-
-.indexed-db-data-view .data-grid .data-container tr:nth-last-child(1) td {
-    border: 0;
-}
-
-.indexed-db-data-view .data-grid .data-container td {
-    height: 18px;
-}
-
-.indexed-db-data-view .data-grid .data-container td.value-column,
-.indexed-db-data-view .data-grid .data-container td.key-column,
-.indexed-db-data-view .data-grid .data-container td.primaryKey-column {
-    padding: 0;
-}
-
-.indexed-db-data-view .data-grid .data-container td.value-column div.primitive-value,
-.indexed-db-data-view .data-grid .data-container td.key-column div.primitive-value,
-.indexed-db-data-view .data-grid .data-container td.primaryKey-column div.primitive-value {
-    padding-left: 5px;
-    margin-top: 1px;
-}
-
-.indexed-db-data-view .data-grid .data-container td .section .header .title {
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.css
deleted file mode 100644 (file)
index 7a33cd6..0000000
+++ /dev/null
@@ -1,3507 +0,0 @@
-/* dialog.css */
-
-.dialog {
-    position: absolute;
-    
-    padding: 10px;
-    border-radius: 10px;
-    border: 1px solid gray;
-
-    box-shadow: rgb(40,40,40) 0 0 50px;
-    
-    display: -webkit-flex;
-    -webkit-flex-direction: column;
-    
-    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#E9E9E9), to(#CFCFCF));
-}
-
-.dialog-contents {
-    width: 100%;
-}
-
-.go-to-line-dialog {
-    font-size: 11px;
-    font-family: 'Lucida Grande', sans-serif;
-}
-
-.go-to-line-dialog input {
-    font-size: 11px;
-}
-
-.go-to-line-dialog button {
-    font-size: 11px;
-    color: rgb(6, 6, 6);
-    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;
-
-    padding: 3px 20px;
-    margin: 0 0 0 10px;
-}
-
-.go-to-line-dialog 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)));
-}
-
-
-/* tabbedPane.css */
-
-/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
- * Copyright (C) 2009 Anthony Ricaud <rik@webkit.org>
- * Copyright (C) 2011 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:
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. 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 GOOGLE INC.
- * 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.
- */
-.tabbed-pane {
-    flex: auto;
-}
-
-.tabbed-pane-content {
-    position: relative;
-    overflow: auto;
-    flex: auto;
-    display: flex;
-}
-
-.tabbed-pane-content.has-no-tabs {
-    background-color: lightgray;
-}
-
-.tabbed-pane-header {
-    flex: 0 0 23px;
-    border-bottom: 1px solid rgb(163, 163, 163);
-    overflow: hidden;
-    width: 100%;
-}
-
-.tabbed-pane-header-contents {
-    margin: 0 10px;
-}
-
-.tabbed-pane-header-tabs {
-    float: left;
-}
-
-.tabbed-pane-header-tab {
-    float: left;
-    margin-top: 2px;
-    padding: 2px 4px 2px 4px;
-    height: 21px;
-    border: 1px solid transparent;
-    border-bottom: none;
-    line-height: 15px;
-    
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    cursor: default;
-}
-
-.tabbed-pane-header-tab.measuring {
-    visibility: hidden;
-}
-
-.tabbed-pane-header-tab.selected {
-    border: 1px solid rgb(163, 163, 163);
-    border-bottom: none;
-}
-
-.tabbed-pane-header-tab.selected {
-    background: white;
-    border-top-color: #bbb;
-}
-
-.tabbed-pane-header-tab .close-button-gray {
-    position: relative;
-    top: 2px;
-    left: 1px;
-    margin-left: 2px;
-    margin-top: -3px;
-    visibility: hidden;
-}
-
-.tabbed-pane-header-tab:hover .close-button-gray,
-.tabbed-pane-header-tab.selected .close-button-gray {
-    visibility: visible;
-}
-
-.tabbed-pane-header-tabs-drop-down-container {
-    float: left;
-    position: relative;
-    vertical-align: bottom;
-    padding-left: 3px;
-    line-height: 20px;
-}
-
-.tabbed-pane-header-tabs-drop-down-container.measuring {
-    visibility: hidden;
-}
-
-.tabbed-pane-header-tabs-drop-down {
-    position: relative;
-    opacity: 0.7;
-    color: rgb(30, 30, 30);
-    font-size: 133%;
-    padding: 0 3px;
-}
-
-.tabbed-pane-header-tabs-drop-down:hover {
-    opacity: 1.0;
-}
-
-.tabbed-pane-header-tabs-drop-down:active {
-    opacity: 0.8;
-}
-
-select.tabbed-pane-header-tabs-drop-down-select {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    opacity: 0;
-    border: none;
-    margin: 0;
-    font-size: 75%;
-    -webkit-appearance: none;
-    width: 20px;
-}
-
-/* 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;
-}
-
-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.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;
-    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 .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.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 {
-    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 144px;
-    display: inline-block;
-}
-
-.close-button {
-    width: 14px;
-    height: 14px;
-    background-position: -128px -96px;
-}
-
-.close-button-gray {
-    width: 13px;
-    height: 13px;
-    background-position: -175px -96px;
-}
-
-@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 -96px;
-}
-
-.close-button:active {
-    background-position: -111px -96px;
-}
-
-.close-button-gray:hover {
-    background-position: -143px -96px;
-}
-
-.close-button-gray:active {
-    background-position: -160px -96px;
-}
-
-body.undocked .toolbar-item .close-button {
-    display: none;
-}
-
-body.remote .toolbar-item .close-button {
-    display: none;
-}
-
-.panel-status-bar {
-    border-top: none;
-    display: flex;
-    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;
-    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;
-    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;
-    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 144px;
-    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);
-}
-
-button.status-bar-item.toggled-on .glyph:not(.shadow) {
-    background-color: rgb(66, 129, 235) !important;
-}
-
-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 144px;
-    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.checkbox {
-    margin: 2px 0 0 0;
-}
-
-.status-bar-item > .glyph {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 144px;
-    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-undocked .glyph {
-    -webkit-mask-position: 0 -48px;
-}
-
-button.status-bar-item.dock-status-bar-item.toggled-bottom .glyph {
-    -webkit-mask-position: -32px -24px;
-}
-
-button.status-bar-item.dock-status-bar-item.toggled-right .glyph {
-    -webkit-mask-position: -256px -48px;
-}
-
-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;
-    z-index: 10;
-}
-
-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;
-    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.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;
-}
-
-.error-icon-small,
-.warning-icon-small,
-.red-ball,
-.green-ball,
-.orange-ball {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    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);
-    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-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;
-}
-
-#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 144px;
-}
-
-@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 .outline-disclosure .stacktrace-entry:hover {
-    background-color: rgba(0, 0, 0, 0.05);
-}
-
-.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 144px;
-    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 144px;
-    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: flex;
-}
-
-.panel.extension-panel.visible {
-    display: flex !important;
-    flex-direction: column;
-}
-
-.extension-view {
-    flex: auto;
-}
-
-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;
-}
-
-.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 144px;
-    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;
-    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);
-}
-
-.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 144px;
-    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 144px;
-    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;
-}
-
-.sidebar-tabbed-pane .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;
-}
-
-.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 144px;
-    -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;
-}
-
-.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 144px;
-    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;
-}
-
-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;
-}
-
-.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-view {
-    overflow: hidden;
-}
-
-.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;
-}
-
-.elements-tree-outline li.shadow-root + ol {
-    margin-left: 5px;
-    padding-left: 5px;
-    border-left: 1px solid gray;
-}
-
-#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;
-}
-
-body.dock-to-bottom #inspector-split-view > .split-view-resizer {
-    display: none;
-}
-
-/* inspectorCommon.css */
-
-html {
-    height: 100%;
-}
-
-body {
-    cursor: default;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    overflow: hidden;
-    font-family: Lucida Grande, sans-serif;
-    font-size: 12px;
-    margin: 0;
-    tab-size: 4;
-    -webkit-user-select: none;
-    color: #222;
-}
-
-body.platform-linux {
-  color: rgb(48, 57, 66);
-  font-family: Ubuntu, Arial, sans-serif;
-}
-
-body.platform-mac {
-  color: rgb(48, 57, 66);
-  font-family: 'Lucida Grande', sans-serif;
-}
-
-body.platform-windows {
-  font-family: 'Segoe UI', Tahoma, sans-serif;
-}
-
-* {
-    box-sizing: border-box;
-}
-
-:focus {
-    outline: none;
-}
-
-img {
-    -webkit-user-drag: none;
-}
-
-iframe,
-a img {
-    border: none;
-}
-
-iframe.view {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    left: 0;
-    right: 0;
-    top: 0;
-    bottom: 0;
-}
-
-.hidden {
-    display: none !important;
-}
-
-.monospace {
-    font-size: 10px !important;
-    font-family: monospace;
-}
-
-.resources-dividers {
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-    z-index: -100;
-    bottom: 0;
-}
-
-.resources-event-dividers {
-    position: absolute;
-    left: 0;
-    right: 0;
-    height: 100%;
-    top: 0;
-    z-index: 300;
-    pointer-events: none;
-}
-
-.resources-dividers-label-bar {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    background-color: rgba(255, 255, 255, 0.85);
-    background-clip: padding-box;
-    height: 20px;
-    z-index: 200;
-    pointer-events: none;
-    overflow: hidden;
-}
-
-.resources-divider {
-    position: absolute;
-    width: 1px;
-    top: 0;
-    bottom: 0;
-    background-color: rgba(0, 0, 0, 0.1);
-}
-
-.resources-event-divider-padding {
-    position: absolute;
-    width: 8px;
-    top: 0;
-    bottom: 0;
-    pointer-events: auto;
-}
-
-.resources-event-divider {
-    position: absolute;
-    width: 2px;
-    top: 0;
-    bottom: 0;
-    z-index: 300;
-}
-
-.resources-divider-label {
-    position: absolute;
-    top: 4px;
-    right: 3px;
-    font-size: 80%;
-    white-space: nowrap;
-    pointer-events: none;
-}
-
-.overview-grid-window-selector {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    background-color: rgba(125, 173, 217, 0.5);
-    z-index: 250;
-    pointer-events: none;
-}
-
-.overview-grid-window {
-    background-color: white;
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-    height: 20px;
-    z-index: 150;
-}
-
-.overview-grid-dividers-background {
-    left: 0%;
-    right: 0%;
-    top: 0;
-    height: 20px;
-    background-color: black;
-    position: absolute;
-}
-
-.overview-grid-window-rulers {
-    top: 0;
-    bottom: 0;
-    position: absolute;
-    opacity: 0.2;
-    border-right: 1px solid black;
-    border-left: 1px solid black;
-    z-index: 250;
-    pointer-events: none;
-}
-
-.overview-grid-window-resizer {
-    position: absolute;
-    top: 0;
-    height: 20px;
-    width: 5px;
-    margin-left: -2px;
-    margin-right: -3px;
-    background-color: rgb(153, 153, 153);
-    z-index: 500;
-    border-radius: 2px;
-    box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
-}
-
-.overview-grid-window-resizer-right {
-    margin-left: -3px;
-    margin-right: -2px;
-}
-
-/* Network timing is shared between popover and network item view pane */
-
-.network-timing-table td {
-    padding: 0;
-}
-
-.network-timing-row {
-    position: relative;
-    height: 16px;
-}
-
-.network-timing-bar {
-    position: absolute;
-    background-color: red;
-    border-left: 1px solid red;
-    opacity: 0.4;
-    top: 0;
-    bottom: 0;
-}
-
-.network-timing-bar-title {
-    position: absolute;
-    color: #222;
-    top: 1px;
-}
-
-.highlighted-search-result {
-    border-radius: 1px;
-    padding: 1px;
-    margin: -1px;
-    background-color: rgba(255, 255, 0, 0.8);
-}
-
-.sidebar-separator {
-    background-color: rgb(230, 230, 230);
-    padding: 0 5px;
-    border-top: 1px solid rgb(189, 189, 189);
-    border-bottom: 1px solid rgb(189, 189, 189);
-    color: rgb(50, 50, 50);
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    line-height: 16px;
-}
-
-.sidebar-label {
-    font-size: 11px;
-}
-
-
-/* inspectorSyntaxHighlight.css */
-
-/*
- * Copyright (C) 2009 Apple 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:
- *
- * 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.
- */
-.cm-js-keyword {color: rgb(170, 13, 145);}
-.cm-js-number {color: rgb(28, 0, 207);}
-.cm-js-comment {color: rgb(0, 116, 0);}
-.cm-js-string {color: rgb(196, 26, 22);}
-.cm-js-string-2 {color: rgb(196, 26, 22);}
-
-.cm-css-keyword { color: rgb(7, 144, 154);}
-.cm-css-number {color: rgb(50, 0, 255);}
-.cm-css-comment {color: rgb(0, 116, 0);}
-.cm-css-def {color: rgb(200, 0, 0);}
-.cm-css-meta {color: rgb(200, 0, 0);}
-.cm-css-atom {color: rgb(7, 144, 154);}
-.cm-css-string {color: rgb(7, 144, 154);}
-.cm-css-string-2 {color: rgb(7, 144, 154);}
-.cm-css-link {color: rgb(7, 144, 154);}
-.cm-css-variable {color: rgb(200, 0, 0);}
-.cm-css-variable-2 {color: rgb(0, 0, 128);}
-.cm-css-property, .webkit-css-property {color: rgb(200, 0, 0);}
-
-.cm-xml-meta {color: rgb(192, 192, 192);}
-.cm-xml-comment {color: rgb(35, 110, 37);}
-.cm-xml-string {color: rgb(26, 26, 166);}
-.cm-xml-tag {color: rgb(136, 18, 128);}
-.cm-xml-attribute {color: rgb(153, 69, 0);}
-.cm-xml-link {color: #00e;}
-
-.webkit-html-comment {
-    /* Keep this in sync with view-source.css (.webkit-html-comment) */
-    color: rgb(35, 110, 37);
-}
-
-.webkit-html-tag {
-    /* Keep this in sync with view-source.css (.webkit-html-tag) */
-    color: rgb(136, 18, 128);
-}
-
-.webkit-html-pseudo-element {
-    /* This one is non-standard. */
-    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);
-}
-
-.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,
-.webkit-html-resource-link {
-    /* Keep this in sync with view-source.css (.webkit-html-external-link, .webkit-html-resource-link) */
-    color: #00e;
-}
-
-.webkit-html-external-link {
-    /* Keep this in sync with view-source.css (.webkit-html-external-link) */
-    text-decoration: none;
-}
-
-.webkit-html-external-link:hover {
-    /* Keep this in sync with view-source.css (.webkit-html-external-link:hover) */
-    text-decoration: underline;
-}
-
-.webkit-html-end-of-file {
-    /* Keep this in sync with view-source.css (.webkit-html-end-of-file) */
-    color: rgb(255, 0, 0);
-    font-weight: bold;
-}
-
-/* popover.css */
-
-.popover {
-    position: absolute;
-    -webkit-border-image: url(Images/popoverBackground.png) 25 25 25 25;
-    border-width: 25px;
-    z-index: 100;
-    pointer-events: none;
-}
-
-.popover .content {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    pointer-events: auto;
-    overflow: auto;
-    -webkit-user-select: text;
-    line-height: 11px;
-}
-
-.popover .content.fixed-height {
-    overflow: hidden;
-} 
-
-.popover .arrow {
-    position: absolute;
-    background-image: url(Images/popoverArrows.png);
-    width: 19px;
-    height: 19px;
-    margin-left: 15px;
-    margin-top: -25px;
-    top: 0;
-    left: 0;
-}
-
-.popover.top-left-arrow .arrow {
-    /* The default is top-left, no styles needed. */
-}
-
-.popover.top-right-arrow .arrow {
-    right: 25px;
-    left: auto;
-}
-
-.popover.bottom-left-arrow .arrow {
-    top: auto;
-    bottom: 0;
-    margin-top: 0;
-    margin-bottom: -25px;
-    background-position: 0 -19px;
-}
-
-.popover.bottom-right-arrow .arrow {
-    right: 15px;
-    left: auto;
-    top: auto;
-    bottom: 0;
-    margin-top: 0;
-    margin-bottom: -25px;
-    background-position: 0 -19px;
-}
-
-.popover.left-top-arrow .arrow {
-    top: 0;
-    margin-top: 15px;
-    margin-left: -25px;
-    background-position: 0 -38px;
-}
-
-.popover.left-bottom-arrow .arrow {
-    top: auto;
-    bottom: 0;
-    margin-bottom: 15px;
-    margin-left: -25px;
-    background-position: 0 -38px;
-}
-
-.popover.right-top-arrow .arrow {
-    right: 0;
-    left: auto;
-    top: 0;
-    margin-top: 15px;
-    margin-right: -25px;
-    background-position: 0 -57px;
-}
-
-.popover.right-bottom-arrow .arrow {
-    right: 0;
-    left: auto;
-    top: auto;
-    bottom: 0;
-    margin-bottom: 15px;
-    margin-right: -25px;
-    background-position: 0 -57px;
-}
-
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.js b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspector.js
deleted file mode 100644 (file)
index 57a2d56..0000000
+++ /dev/null
@@ -1,10133 +0,0 @@
-Object.isEmpty=function(obj)
-{for(var i in obj)
-return false;return true;}
-Object.values=function(obj)
-{var result=Object.keys(obj);var length=result.length;for(var i=0;i<length;++i)
-result[i]=obj[result[i]];return result;}
-String.prototype.findAll=function(string)
-{var matches=[];var i=this.indexOf(string);while(i!==-1){matches.push(i);i=this.indexOf(string,i+string.length);}
-return matches;}
-String.prototype.lineEndings=function()
-{if(!this._lineEndings){this._lineEndings=this.findAll("\n");this._lineEndings.push(this.length);}
-return this._lineEndings;}
-String.prototype.escapeCharacters=function(chars)
-{var foundChar=false;for(var i=0;i<chars.length;++i){if(this.indexOf(chars.charAt(i))!==-1){foundChar=true;break;}}
-if(!foundChar)
-return String(this);var result="";for(var i=0;i<this.length;++i){if(chars.indexOf(this.charAt(i))!==-1)
-result+="\\";result+=this.charAt(i);}
-return result;}
-String.regexSpecialCharacters=function()
-{return"^[]{}()\\.$*+?|-,";}
-String.prototype.escapeForRegExp=function()
-{return this.escapeCharacters(String.regexSpecialCharacters());}
-String.prototype.escapeHTML=function()
-{return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");}
-String.prototype.collapseWhitespace=function()
-{return this.replace(/[\s\xA0]+/g," ");}
-String.prototype.trimMiddle=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);var leftHalf=maxLength>>1;var rightHalf=maxLength-leftHalf-1;return this.substr(0,leftHalf)+"\u2026"+this.substr(this.length-rightHalf,rightHalf);}
-String.prototype.trimEnd=function(maxLength)
-{if(this.length<=maxLength)
-return String(this);return this.substr(0,maxLength-1)+"\u2026";}
-String.prototype.trimURL=function(baseURLDomain)
-{var result=this.replace(/^(https|http|file):\/\//i,"");if(baseURLDomain)
-result=result.replace(new RegExp("^"+baseURLDomain.escapeForRegExp(),"i"),"");return result;}
-String.prototype.toTitleCase=function()
-{return this.substring(0,1).toUpperCase()+this.substring(1);}
-String.prototype.compareTo=function(other)
-{if(this>other)
-return 1;if(this<other)
-return-1;return 0;}
-function sanitizeHref(href)
-{return href&&href.trim().toLowerCase().startsWith("javascript:")?null:href;}
-String.prototype.removeURLFragment=function()
-{var fragmentIndex=this.indexOf("#");if(fragmentIndex==-1)
-fragmentIndex=this.length;return this.substring(0,fragmentIndex);}
-String.prototype.startsWith=function(substring)
-{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)
-return-1;else
-return 0;}
-chunka=a.match(chunk)[0];chunkb=b.match(chunk)[0];anum=!isNaN(chunka);bnum=!isNaN(chunkb);if(anum&&!bnum)
-return-1;if(bnum&&!anum)
-return 1;if(anum&&bnum){var diff=chunka-chunkb;if(diff)
-return diff;if(chunka.length!==chunkb.length){if(!+chunka&&!+chunkb)
-return chunka.length-chunkb.length;else
-return chunkb.length-chunka.length;}}else if(chunka!==chunkb)
-return(chunka<chunkb)?-1:1;a=a.substring(chunka.length);b=b.substring(chunkb.length);}}
-Number.constrain=function(num,min,max)
-{if(num<min)
-num=min;else if(num>max)
-num=max;return num;}
-Number.gcd=function(a,b)
-{if(b===0)
-return a;else
-return Number.gcd(b,a%b);}
-Number.toFixedIfFloating=function(value)
-{if(!value||isNaN(value))
-return value;var number=Number(value);return number%1?number.toFixed(3):String(number);}
-Date.prototype.toISO8601Compact=function()
-{function leadZero(x)
-{return(x>9?"":"0")+x;}
-return this.getFullYear()+
-leadZero(this.getMonth()+1)+
-leadZero(this.getDate())+"T"+
-leadZero(this.getHours())+
-leadZero(this.getMinutes())+
-leadZero(this.getSeconds());}
-Object.defineProperty(Array.prototype,"remove",{value:function(value,onlyFirst)
-{if(onlyFirst){var index=this.indexOf(value);if(index!==-1)
-this.splice(index,1);return;}
-var length=this.length;for(var i=0;i<length;++i){if(this[i]===value)
-this.splice(i,1);}}});Object.defineProperty(Array.prototype,"keySet",{value:function()
-{var keys={};for(var i=0;i<this.length;++i)
-keys[this[i]]=true;return keys;}});Object.defineProperty(Array.prototype,"rotate",{value:function(index)
-{var result=[];for(var i=index;i<index+this.length;++i)
-result.push(this[i%this.length]);return result;}});Object.defineProperty(Uint32Array.prototype,"sort",{value:Array.prototype.sort});(function(){var partition={value:function(comparator,left,right,pivotIndex)
-{function swap(array,i1,i2)
-{var temp=array[i1];array[i1]=array[i2];array[i2]=temp;}
-var pivotValue=this[pivotIndex];swap(this,right,pivotIndex);var storeIndex=left;for(var i=left;i<right;++i){if(comparator(this[i],pivotValue)<0){swap(this,storeIndex,i);++storeIndex;}}
-swap(this,right,storeIndex);return storeIndex;}};Object.defineProperty(Array.prototype,"partition",partition);Object.defineProperty(Uint32Array.prototype,"partition",partition);var sortRange={value:function(comparator,leftBound,rightBound,sortWindowLeft,sortWindowRight)
-{function quickSortRange(array,comparator,left,right,sortWindowLeft,sortWindowRight)
-{if(right<=left)
-return;var pivotIndex=Math.floor(Math.random()*(right-left))+left;var pivotNewIndex=array.partition(comparator,left,right,pivotIndex);if(sortWindowLeft<pivotNewIndex)
-quickSortRange(array,comparator,left,pivotNewIndex-1,sortWindowLeft,sortWindowRight);if(pivotNewIndex<sortWindowRight)
-quickSortRange(array,comparator,pivotNewIndex+1,right,sortWindowLeft,sortWindowRight);}
-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,"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;}
-var low=0;var high=this.length-1;for(;;){var pivotPosition=this.partition(comparator,low,high,Math.floor((high+low)/2));if(pivotPosition===k)
-return this[k];else if(pivotPosition>k)
-high=pivotPosition-1;else
-low=pivotPosition+1;}}});Object.defineProperty(Array.prototype,"lowerBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"upperBound",{value:function(object,comparator)
-{function defaultComparator(a,b)
-{return a<b?-1:(a>b?1:0);}
-comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>=0)
-l=m+1;else
-r=m;}
-return r;}});Object.defineProperty(Array.prototype,"binaryIndexOf",{value:function(value,comparator)
-{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(){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);}
-String.sprintf=function(format,var_arg)
-{return String.vsprintf(format,Array.prototype.slice.call(arguments,1));}
-String.tokenizeFormatString=function(format,formatters)
-{var tokens=[];var substitutionIndex=0;function addStringToken(str)
-{tokens.push({type:"string",value:str});}
-function addSpecifierToken(specifier,precision,substitutionIndex)
-{tokens.push({type:"specifier",specifier:specifier,precision:precision,substitutionIndex:substitutionIndex});}
-function isDigit(c)
-{return!!/[0-9]/.exec(c);}
-var index=0;for(var precentIndex=format.indexOf("%",index);precentIndex!==-1;precentIndex=format.indexOf("%",index)){addStringToken(format.substring(index,precentIndex));index=precentIndex+1;if(isDigit(format[index])){var number=parseInt(format.substring(index),10);while(isDigit(format[index]))
-++index;if(number>0&&format[index]==="$"){substitutionIndex=(number-1);++index;}}
-var precision=-1;if(format[index]==="."){++index;precision=parseInt(format.substring(index),10);if(isNaN(precision))
-precision=0;while(isDigit(format[index]))
-++index;}
-if(!(format[index]in formatters)){addStringToken(format.substring(precentIndex,index+1));++index;continue;}
-addSpecifierToken(format[index],precision,substitutionIndex);++substitutionIndex;++index;}
-addStringToken(format.substring(index));return tokens;}
-String.standardFormatters={d:function(substitution)
-{return!isNaN(substitution)?substitution:0;},f:function(substitution,token)
-{if(substitution&&token.precision>-1)
-substitution=substitution.toFixed(token.precision);return!isNaN(substitution)?substitution:(token.precision>-1?Number(0).toFixed(token.precision):0);},s:function(substitution)
-{return substitution;}}
-String.vsprintf=function(format,substitutions)
-{return String.format(format,substitutions,String.standardFormatters,"",function(a,b){return a+b;}).formattedResult;}
-String.format=function(format,substitutions,formatters,initialValue,append)
-{if(!format||!substitutions||!substitutions.length)
-return{formattedResult:append(initialValue,format),unusedSubstitutions:substitutions};function prettyFunctionName()
-{return"String.format(\""+format+"\", \""+substitutions.join("\", \"")+"\")";}
-function warn(msg)
-{console.warn(prettyFunctionName()+": "+msg);}
-function error(msg)
-{console.error(prettyFunctionName()+": "+msg);}
-var result=initialValue;var tokens=String.tokenizeFormatString(format,formatters);var usedSubstitutionIndexes={};for(var i=0;i<tokens.length;++i){var token=tokens[i];if(token.type==="string"){result=append(result,token.value);continue;}
-if(token.type!=="specifier"){error("Unknown token type \""+token.type+"\" found.");continue;}
-if(token.substitutionIndex>=substitutions.length){error("not enough substitution arguments. Had "+substitutions.length+" but needed "+(token.substitutionIndex+1)+", so substitution was skipped.");result=append(result,"%"+(token.precision>-1?token.precision:"")+token.specifier);continue;}
-usedSubstitutionIndexes[token.substitutionIndex]=true;if(!(token.specifier in formatters)){warn("unsupported format character \u201C"+token.specifier+"\u201D. Treating as a string.");result=append(result,substitutions[token.substitutionIndex]);continue;}
-result=append(result,formatters[token.specifier](substitutions[token.substitutionIndex],token));}
-var unusedSubstitutions=[];for(var i=0;i<substitutions.length;++i){if(i in usedSubstitutionIndexes)
-continue;unusedSubstitutions.push(substitutions[i]);}
-return{formattedResult:result,unusedSubstitutions:unusedSubstitutions};}
-function createSearchRegex(query,caseSensitive,isRegex)
-{var regexFlags=caseSensitive?"g":"gi";var regexObject;if(isRegex){try{regexObject=new RegExp(query,regexFlags);}catch(e){}}
-if(!regexObject)
-regexObject=createPlainTextSearchRegex(query,regexFlags);return regexObject;}
-function createPlainTextSearchRegex(query,flags)
-{var regexSpecialCharacters=String.regexSpecialCharacters();var regex="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(regexSpecialCharacters.indexOf(c)!=-1)
-regex+="\\";regex+=c;}
-return new RegExp(regex,flags||"");}
-function countRegexMatches(regex,content)
-{var text=content;var result=0;var match;while(text&&(match=regex.exec(text))){if(match[0].length>0)
-++result;text=text.substring(match.index+1);}
-return result;}
-function numberToStringWithSpacesPadding(value,symbolsCount)
-{var numberString=value.toString();var paddingLength=Math.max(0,symbolsCount-numberString.length);var paddingString=Array(paddingLength+1).join("\u00a0");return paddingString+numberString;}
-var createObjectIdentifier=function()
-{return"_"+ ++createObjectIdentifier._last;}
-createObjectIdentifier._last=0;var Set=function()
-{this._set={};this._size=0;}
-Set.prototype={add:function(item)
-{var objectIdentifier=item.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();item.__identifier=objectIdentifier;}
-if(!this._set[objectIdentifier])
-++this._size;this._set[objectIdentifier]=item;},remove:function(item)
-{if(this._set[item.__identifier]){--this._size;delete this._set[item.__identifier];return true;}
-return false;},items:function()
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._set)
-result[i++]=this._set[objectIdentifier];return result;},hasItem:function(item)
-{return!!this._set[item.__identifier];},size:function()
-{return this._size;},clear:function()
-{this._set={};this._size=0;}}
-var Map=function()
-{this._map={};this._size=0;}
-Map.prototype={put:function(key,value)
-{var objectIdentifier=key.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();key.__identifier=objectIdentifier;}
-if(!this._map[objectIdentifier])
-++this._size;this._map[objectIdentifier]=[key,value];},remove:function(key)
-{var result=this._map[key.__identifier];if(!result)
-return undefined;--this._size;delete this._map[key.__identifier];return result[1];},keys:function()
-{return this._list(0);},values:function()
-{return this._list(1);},_list:function(index)
-{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._map)
-result[i++]=this._map[objectIdentifier][index];return result;},get:function(key)
-{var entry=this._map[key.__identifier];return entry?entry[1]:undefined;},contains:function(key)
-{var entry=this._map[key.__identifier];return!!entry;},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;}}
-var StringMap=function()
-{this._map={};this._size=0;}
-StringMap.prototype={put:function(key,value)
-{if(key==="__proto__"){if(!this._hasProtoKey){++this._size;this._hasProtoKey=true;}
-this._protoValue=value;return;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-++this._size;this._map[key]=value;},remove:function(key)
-{var result;if(key==="__proto__"){if(!this._hasProtoKey)
-return undefined;--this._size;delete this._hasProtoKey;result=this._protoValue;delete this._protoValue;return result;}
-if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;--this._size;result=this._map[key];delete this._map[key];return result;},keys:function()
-{var result=Object.keys(this._map)||[];if(this._hasProtoKey)
-result.push("__proto__");return result;},values:function()
-{var result=Object.values(this._map);if(this._hasProtoKey)
-result.push(this._protoValue);return result;},get:function(key)
-{if(key==="__proto__")
-return this._protoValue;if(!Object.prototype.hasOwnProperty.call(this._map,key))
-return undefined;return this._map[key];},contains:function(key)
-{var result;if(key==="__proto__")
-return this._hasProtoKey;return Object.prototype.hasOwnProperty.call(this._map,key);},size:function()
-{return this._size;},clear:function()
-{this._map={};this._size=0;delete this._hasProtoKey;delete this._protoValue;}}
-function loadXHR(url,async,callback)
-{function onReadyStateChanged()
-{if(xhr.readyState!==XMLHttpRequest.DONE)
-return;if(xhr.status===200){callback(xhr.responseText);return;}
-callback(null);}
-var xhr=new XMLHttpRequest();xhr.open("GET",url,async);if(async)
-xhr.onreadystatechange=onReadyStateChanged;xhr.send(null);if(!async){if(xhr.status===200)
-return xhr.responseText;return null;}
-return null;}
-function StringPool()
-{this.reset();}
-StringPool.prototype={intern:function(string)
-{if(string==="__proto__")
-return"__proto__";var result=this._strings[string];if(result===undefined){this._strings[string]=string;result=string;}
-return result;},reset:function()
-{this._strings=Object.create(null);},internObjectStrings:function(obj,depthLimit)
-{if(typeof depthLimit!=="number")
-depthLimit=100;else if(--depthLimit<0)
-throw"recursion depth limit reached in StringPool.deepIntern(), perhaps attempting to traverse cyclical references?";for(var field in obj){switch(typeof obj[field]){case"string":obj[field]=this.intern(obj[field]);break;case"object":this.internObjectStrings(obj[field],depthLimit);break;}}}}
-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 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)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.createCallback() is called after CallbackBarrier.callWhenDone()");++this._pendingIncomingCallbacksCount;return this._incomingCallback.bind(this,userCallback);},callWhenDone:function(callback)
-{console.assert(!this._outgoingCallback,"CallbackBarrier.callWhenDone() is called multiple times");this._outgoingCallback=callback;if(!this._pendingIncomingCallbacksCount)
-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();}}
-__whitespace={" ":true,"\t":true,"\n":true,"\f":true,"\r":true};difflib={defaultJunkFunction:function(c){return __whitespace.hasOwnProperty(c);},stripLinebreaks:function(str){return str.replace(/^[\n\r]*|[\n\r]*$/g,"");},stringAsLines:function(str){var lfpos=str.indexOf("\n");var crpos=str.indexOf("\r");var linebreak=((lfpos>-1&&crpos>-1)||crpos<0)?"\n":"\r";var lines=str.split(linebreak);for(var i=0;i<lines.length;i++){lines[i]=difflib.stripLinebreaks(lines[i]);}
-return lines;},__reduce:function(func,list,initial){if(initial!=null){var value=initial;var idx=0;}else if(list){var value=list[0];var idx=1;}else{return null;}
-for(;idx<list.length;idx++){value=func(value,list[idx]);}
-return value;},__ntuplecomp:function(a,b){var mlen=Math.max(a.length,b.length);for(var i=0;i<mlen;i++){if(a[i]<b[i])return-1;if(a[i]>b[i])return 1;}
-return a.length==b.length?0:(a.length<b.length?-1:1);},__calculate_ratio:function(matches,length){return length?2.0*matches/length:1.0;},__isindict:function(dict){return function(key){return dict.hasOwnProperty(key);};},__dictget:function(dict,key,defaultValue){return dict.hasOwnProperty(key)?dict[key]:defaultValue;},SequenceMatcher:function(a,b,isjunk){this.set_seqs=function(a,b){this.set_seq1(a);this.set_seq2(b);}
-this.set_seq1=function(a){if(a==this.a)return;this.a=a;this.matching_blocks=this.opcodes=null;}
-this.set_seq2=function(b){if(b==this.b)return;this.b=b;this.matching_blocks=this.opcodes=this.fullbcount=null;this.__chain_b();}
-this.__chain_b=function(){var b=this.b;var n=b.length;var b2j=this.b2j={};var populardict={};for(var i=0;i<b.length;i++){var elt=b[i];if(b2j.hasOwnProperty(elt)){var indices=b2j[elt];if(n>=200&&indices.length*100>n){populardict[elt]=1;delete b2j[elt];}else{indices.push(i);}}else{b2j[elt]=[i];}}
-for(var elt in populardict){if(populardict.hasOwnProperty(elt)){delete b2j[elt];}}
-var isjunk=this.isjunk;var junkdict={};if(isjunk){for(var elt in populardict){if(populardict.hasOwnProperty(elt)&&isjunk(elt)){junkdict[elt]=1;delete populardict[elt];}}
-for(var elt in b2j){if(b2j.hasOwnProperty(elt)&&isjunk(elt)){junkdict[elt]=1;delete b2j[elt];}}}
-this.isbjunk=difflib.__isindict(junkdict);this.isbpopular=difflib.__isindict(populardict);}
-this.find_longest_match=function(alo,ahi,blo,bhi){var a=this.a;var b=this.b;var b2j=this.b2j;var isbjunk=this.isbjunk;var besti=alo;var bestj=blo;var bestsize=0;var j=null;var j2len={};var nothing=[];for(var i=alo;i<ahi;i++){var newj2len={};var jdict=difflib.__dictget(b2j,a[i],nothing);for(var jkey in jdict){if(jdict.hasOwnProperty(jkey)){j=jdict[jkey];if(j<blo)continue;if(j>=bhi)break;newj2len[j]=k=difflib.__dictget(j2len,j-1,0)+1;if(k>bestsize){besti=i-k+1;bestj=j-k+1;bestsize=k;}}}
-j2len=newj2len;}
-while(besti>alo&&bestj>blo&&!isbjunk(b[bestj-1])&&a[besti-1]==b[bestj-1]){besti--;bestj--;bestsize++;}
-while(besti+bestsize<ahi&&bestj+bestsize<bhi&&!isbjunk(b[bestj+bestsize])&&a[besti+bestsize]==b[bestj+bestsize]){bestsize++;}
-while(besti>alo&&bestj>blo&&isbjunk(b[bestj-1])&&a[besti-1]==b[bestj-1]){besti--;bestj--;bestsize++;}
-while(besti+bestsize<ahi&&bestj+bestsize<bhi&&isbjunk(b[bestj+bestsize])&&a[besti+bestsize]==b[bestj+bestsize]){bestsize++;}
-return[besti,bestj,bestsize];}
-this.get_matching_blocks=function(){if(this.matching_blocks!=null)return this.matching_blocks;var la=this.a.length;var lb=this.b.length;var queue=[[0,la,0,lb]];var matching_blocks=[];var alo,ahi,blo,bhi,qi,i,j,k,x;while(queue.length){qi=queue.pop();alo=qi[0];ahi=qi[1];blo=qi[2];bhi=qi[3];x=this.find_longest_match(alo,ahi,blo,bhi);i=x[0];j=x[1];k=x[2];if(k){matching_blocks.push(x);if(alo<i&&blo<j)
-queue.push([alo,i,blo,j]);if(i+k<ahi&&j+k<bhi)
-queue.push([i+k,ahi,j+k,bhi]);}}
-matching_blocks.sort(difflib.__ntuplecomp);var i1=j1=k1=block=0;var non_adjacent=[];for(var idx in matching_blocks){if(matching_blocks.hasOwnProperty(idx)){block=matching_blocks[idx];i2=block[0];j2=block[1];k2=block[2];if(i1+k1==i2&&j1+k1==j2){k1+=k2;}else{if(k1)non_adjacent.push([i1,j1,k1]);i1=i2;j1=j2;k1=k2;}}}
-if(k1)non_adjacent.push([i1,j1,k1]);non_adjacent.push([la,lb,0]);this.matching_blocks=non_adjacent;return this.matching_blocks;}
-this.get_opcodes=function(){if(this.opcodes!=null)return this.opcodes;var i=0;var j=0;var answer=[];this.opcodes=answer;var block,ai,bj,size,tag;var blocks=this.get_matching_blocks();for(var idx in blocks){if(blocks.hasOwnProperty(idx)){block=blocks[idx];ai=block[0];bj=block[1];size=block[2];tag='';if(i<ai&&j<bj){tag='replace';}else if(i<ai){tag='delete';}else if(j<bj){tag='insert';}
-if(tag)answer.push([tag,i,ai,j,bj]);i=ai+size;j=bj+size;if(size)answer.push(['equal',ai,i,bj,j]);}}
-return answer;}
-this.get_grouped_opcodes=function(n){if(!n)n=3;var codes=this.get_opcodes();if(!codes)codes=[["equal",0,1,0,1]];var code,tag,i1,i2,j1,j2;if(codes[0][0]=='equal'){code=codes[0];tag=code[0];i1=code[1];i2=code[2];j1=code[3];j2=code[4];codes[0]=[tag,Math.max(i1,i2-n),i2,Math.max(j1,j2-n),j2];}
-if(codes[codes.length-1][0]=='equal'){code=codes[codes.length-1];tag=code[0];i1=code[1];i2=code[2];j1=code[3];j2=code[4];codes[codes.length-1]=[tag,i1,Math.min(i2,i1+n),j1,Math.min(j2,j1+n)];}
-var nn=n+n;var groups=[];for(var idx in codes){if(codes.hasOwnProperty(idx)){code=codes[idx];tag=code[0];i1=code[1];i2=code[2];j1=code[3];j2=code[4];if(tag=='equal'&&i2-i1>nn){groups.push([tag,i1,Math.min(i2,i1+n),j1,Math.min(j2,j1+n)]);i1=Math.max(i1,i2-n);j1=Math.max(j1,j2-n);}
-groups.push([tag,i1,i2,j1,j2]);}}
-if(groups&&groups[groups.length-1][0]=='equal')groups.pop();return groups;}
-this.ratio=function(){matches=difflib.__reduce(function(sum,triple){return sum+triple[triple.length-1];},this.get_matching_blocks(),0);return difflib.__calculate_ratio(matches,this.a.length+this.b.length);}
-this.quick_ratio=function(){var fullbcount,elt;if(this.fullbcount==null){this.fullbcount=fullbcount={};for(var i=0;i<this.b.length;i++){elt=this.b[i];fullbcount[elt]=difflib.__dictget(fullbcount,elt,0)+1;}}
-fullbcount=this.fullbcount;var avail={};var availhas=difflib.__isindict(avail);var matches=numb=0;for(var i=0;i<this.a.length;i++){elt=this.a[i];if(availhas(elt)){numb=avail[elt];}else{numb=difflib.__dictget(fullbcount,elt,0);}
-avail[elt]=numb-1;if(numb>0)matches++;}
-return difflib.__calculate_ratio(matches,this.a.length+this.b.length);}
-this.real_quick_ratio=function(){var la=this.a.length;var lb=this.b.length;return _calculate_ratio(Math.min(la,lb),la+lb);}
-this.isjunk=isjunk?isjunk:difflib.defaultJunkFunction;this.a=this.b=null;this.set_seqs(a,b);}}
-Node.prototype.rangeOfWord=function(offset,stopCharacters,stayWithinNode,direction)
-{var startNode;var startOffset=0;var endNode;var endOffset=0;if(!stayWithinNode)
-stayWithinNode=this;if(!direction||direction==="backward"||direction==="both"){var node=this;while(node){if(node===stayWithinNode){if(!startNode)
-startNode=stayWithinNode;break;}
-if(node.nodeType===Node.TEXT_NODE){var start=(node===this?(offset-1):(node.nodeValue.length-1));for(var i=start;i>=0;--i){if(stopCharacters.indexOf(node.nodeValue[i])!==-1){startNode=node;startOffset=i+1;break;}}}
-if(startNode)
-break;node=node.traversePreviousNode(stayWithinNode);}
-if(!startNode){startNode=stayWithinNode;startOffset=0;}}else{startNode=this;startOffset=offset;}
-if(!direction||direction==="forward"||direction==="both"){node=this;while(node){if(node===stayWithinNode){if(!endNode)
-endNode=stayWithinNode;break;}
-if(node.nodeType===Node.TEXT_NODE){var start=(node===this?offset:0);for(var i=start;i<node.nodeValue.length;++i){if(stopCharacters.indexOf(node.nodeValue[i])!==-1){endNode=node;endOffset=i;break;}}}
-if(endNode)
-break;node=node.traverseNextNode(stayWithinNode);}
-if(!endNode){endNode=stayWithinNode;endOffset=stayWithinNode.nodeType===Node.TEXT_NODE?stayWithinNode.nodeValue.length:stayWithinNode.childNodes.length;}}else{endNode=this;endOffset=offset;}
-var result=this.ownerDocument.createRange();result.setStart(startNode,startOffset);result.setEnd(endNode,endOffset);return result;}
-Node.prototype.traverseNextTextNode=function(stayWithin)
-{var node=this.traverseNextNode(stayWithin);if(!node)
-return;while(node&&node.nodeType!==Node.TEXT_NODE)
-node=node.traverseNextNode(stayWithin);return node;}
-Node.prototype.rangeBoundaryForOffset=function(offset)
-{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.removeMatchingStyleClasses=function(classNameRegex)
-{var regex=new RegExp("(^|\\s+)"+classNameRegex+"($|\\s+)");if(regex.test(this.className))
-this.className=this.className.replace(regex," ");}
-Element.prototype.enableStyleClass=function(className,enable)
-{if(enable)
-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",(shift.y+y)+"px");else
-this.style.removeProperty("top");}
-Element.prototype.isScrolledToBottom=function()
-{return this.scrollTop+this.clientHeight===this.scrollHeight;}
-function removeSubsequentNodes(fromNode,toNode)
-{for(var node=fromNode;node&&node!==toNode;){var nodeToRemove=node;node=node.nextSibling;nodeToRemove.remove();}}
-function Size(width,height)
-{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)
-if(node.nodeName.toLowerCase()===nameArray[i].toLowerCase())
-return node;return null;}
-Node.prototype.enclosingNodeOrSelfWithNodeName=function(nodeName)
-{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.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;}
-Element.prototype.removeChildren=function()
-{if(this.firstChild)
-this.textContent="";}
-Element.prototype.isInsertionCaretInside=function()
-{var selection=window.getSelection();if(!selection.rangeCount||!selection.isCollapsed)
-return false;var selectionRange=selection.getRangeAt(0);return selectionRange.startContainer.isSelfOrDescendant(this);}
-Document.prototype.createElementWithClass=function(elementName,className)
-{var element=this.createElement(elementName);if(className)
-element.className=className;return element;}
-Element.prototype.createChild=function(elementName,className)
-{var element=this.ownerDocument.createElementWithClass(elementName,className);this.appendChild(element);return element;}
-DocumentFragment.prototype.createChild=Element.prototype.createChild;Element.prototype.createTextChild=function(text)
-{var element=this.ownerDocument.createTextNode(text);this.appendChild(element);return element;}
-DocumentFragment.prototype.createTextChild=Element.prototype.createTextChild;Element.prototype.totalOffsetLeft=function()
-{return this.totalOffset().left;}
-Element.prototype.totalOffsetTop=function()
-{return this.totalOffset().top;}
-Element.prototype.totalOffset=function()
-{var rect=this.getBoundingClientRect();return{left:rect.left,top:rect.top};}
-Element.prototype.scrollOffset=function()
-{var curLeft=0;var curTop=0;for(var element=this;element;element=element.scrollParent){curLeft+=element.scrollLeft;curTop+=element.scrollTop;}
-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;}
-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;}
-Element.prototype.boxInWindow=function(targetWindow)
-{targetWindow=targetWindow||this.ownerDocument.defaultView;var anchorBox=this.offsetRelativeToWindow(window);anchorBox.width=Math.min(this.offsetWidth,window.innerWidth-anchorBox.x);anchorBox.height=Math.min(this.offsetHeight,window.innerHeight-anchorBox.y);return anchorBox;}
-Element.prototype.setTextAndTitle=function(text)
-{this.textContent=text;this.title=text;}
-KeyboardEvent.prototype.__defineGetter__("data",function()
-{switch(this.type){case"keypress":if(!this.ctrlKey&&!this.metaKey)
-return String.fromCharCode(this.charCode);else
-return"";case"keydown":case"keyup":if(!this.ctrlKey&&!this.metaKey&&!this.altKey)
-return String.fromCharCode(this.which);else
-return"";}});Event.prototype.consume=function(preventDefault)
-{this.stopImmediatePropagation();if(preventDefault)
-this.preventDefault();this.handled=true;}
-Text.prototype.select=function(start,end)
-{start=start||0;end=end||this.textContent.length;if(start<0)
-start=end+start;var selection=this.ownerDocument.defaultView.getSelection();selection.removeAllRanges();var range=this.ownerDocument.createRange();range.setStart(this,start);range.setEnd(this,end);selection.addRange(range);return this;}
-Element.prototype.selectionLeftOffset=function()
-{var selection=window.getSelection();if(!selection.containsNode(this,true))
-return null;var leftOffset=selection.anchorOffset;var node=selection.anchorNode;while(node!==this){while(node.previousSibling){node=node.previousSibling;leftOffset+=node.textContent.length;}
-node=node.parentNode;}
-return leftOffset;}
-Node.prototype.isAncestor=function(node)
-{if(!node)
-return false;var currentNode=node.parentNode;while(currentNode){if(this===currentNode)
-return true;currentNode=currentNode.parentNode;}
-return false;}
-Node.prototype.isDescendant=function(descendant)
-{return!!descendant&&descendant.isAncestor(this);}
-Node.prototype.isSelfOrAncestor=function(node)
-{return!!node&&(node===this||this.isAncestor(node));}
-Node.prototype.isSelfOrDescendant=function(node)
-{return!!node&&(node===this||this.isDescendant(node));}
-Node.prototype.traverseNextNode=function(stayWithin)
-{var node=this.firstChild;if(node)
-return node;if(stayWithin&&this===stayWithin)
-return null;node=this.nextSibling;if(node)
-return node;node=this;while(node&&!node.nextSibling&&(!stayWithin||!node.parentNode||node.parentNode!==stayWithin))
-node=node.parentNode;if(!node)
-return null;return node.nextSibling;}
-Node.prototype.traversePreviousNode=function(stayWithin)
-{if(stayWithin&&this===stayWithin)
-return null;var node=this.previousSibling;while(node&&node.lastChild)
-node=node.lastChild;if(node)
-return node;return this.parentNode;}
-function isEnterKey(event){return event.keyCode!==229&&event.keyIdentifier==="Enter";}
-function consumeEvent(e)
-{e.consume();}
-function NonLeakingMutationObserver(handler)
-{this._observer=new WebKitMutationObserver(handler);NonLeakingMutationObserver._instances.push(this);if(!NonLeakingMutationObserver._unloadListener){NonLeakingMutationObserver._unloadListener=function(){while(NonLeakingMutationObserver._instances.length)
-NonLeakingMutationObserver._instances[NonLeakingMutationObserver._instances.length-1].disconnect();};window.addEventListener("unload",NonLeakingMutationObserver._unloadListener,false);}}
-NonLeakingMutationObserver._instances=[];NonLeakingMutationObserver.prototype={observe:function(element,config)
-{if(this._observer)
-this._observer.observe(element,config);},disconnect:function()
-{if(this._observer)
-this._observer.disconnect();NonLeakingMutationObserver._instances.remove(this);delete this._observer;}}
-function TreeOutline(listNode,nonFocusable)
-{this.children=[];this.selectedTreeElement=null;this._childrenListNode=listNode;this.childrenListElement=this._childrenListNode;this._childrenListNode.removeChildren();this.expandTreeElementsWhenArrowing=false;this.root=true;this.hasChildren=false;this.expanded=true;this.selected=false;this.treeOutline=this;this.comparator=null;this.setFocusable(!nonFocusable);this._childrenListNode.addEventListener("keydown",this._treeKeyDown.bind(this),true);this._treeElementsMap=new Map();this._expandedStateMap=new Map();}
-TreeOutline.prototype.setFocusable=function(focusable)
-{if(focusable)
-this._childrenListNode.setAttribute("tabIndex",0);else
-this._childrenListNode.removeAttribute("tabIndex");}
-TreeOutline.prototype.appendChild=function(child)
-{var insertionIndex;if(this.treeOutline.comparator)
-insertionIndex=insertionIndexForObjectInListSortedByFunction(child,this.children,this.treeOutline.comparator);else
-insertionIndex=this.children.length;this.insertChild(child,insertionIndex);}
-TreeOutline.prototype.insertBeforeChild=function(child,beforeChild)
-{if(!child)
-throw("child can't be undefined or null");if(!beforeChild)
-throw("beforeChild can't be undefined or null");var childIndex=this.children.indexOf(beforeChild);if(childIndex===-1)
-throw("beforeChild not found in this node's children");this.insertChild(child,childIndex);}
-TreeOutline.prototype.insertChild=function(child,index)
-{if(!child)
-throw("child can't be undefined or null");var previousChild=(index>0?this.children[index-1]:null);if(previousChild){previousChild.nextSibling=child;child.previousSibling=previousChild;}else{child.previousSibling=null;}
-var nextChild=this.children[index];if(nextChild){nextChild.previousSibling=child;child.nextSibling=nextChild;}else{child.nextSibling=null;}
-this.children.splice(index,0,child);this.hasChildren=true;child.parent=this;child.treeOutline=this.treeOutline;child.treeOutline._rememberTreeElement(child);var current=child.children[0];while(current){current.treeOutline=this.treeOutline;current.treeOutline._rememberTreeElement(current);current=current.traverseNextTreeElement(false,child,true);}
-if(child.hasChildren&&typeof(child.treeOutline._expandedStateMap.get(child.representedObject))!=="undefined")
-child.expanded=child.treeOutline._expandedStateMap.get(child.representedObject);if(!this._childrenListNode){this._childrenListNode=this.treeOutline._childrenListNode.ownerDocument.createElement("ol");this._childrenListNode.parentTreeElement=this;this._childrenListNode.classList.add("children");if(this.hidden)
-this._childrenListNode.classList.add("hidden");}
-child._attach();}
-TreeOutline.prototype.removeChildAtIndex=function(childIndex)
-{if(childIndex<0||childIndex>=this.children.length)
-throw("childIndex out of range");var child=this.children[childIndex];this.children.splice(childIndex,1);var parent=child.parent;if(child.deselect()){if(child.previousSibling)
-child.previousSibling.select();else if(child.nextSibling)
-child.nextSibling.select();else
-parent.select();}
-if(child.previousSibling)
-child.previousSibling.nextSibling=child.nextSibling;if(child.nextSibling)
-child.nextSibling.previousSibling=child.previousSibling;if(child.treeOutline){child.treeOutline._forgetTreeElement(child);child.treeOutline._forgetChildrenRecursive(child);}
-child._detach();child.treeOutline=null;child.parent=null;child.nextSibling=null;child.previousSibling=null;}
-TreeOutline.prototype.removeChild=function(child)
-{if(!child)
-throw("child can't be undefined or null");var childIndex=this.children.indexOf(child);if(childIndex===-1)
-throw("child not found in this node's children");this.removeChildAtIndex.call(this,childIndex);}
-TreeOutline.prototype.removeChildren=function()
-{for(var i=0;i<this.children.length;++i){var child=this.children[i];child.deselect();if(child.treeOutline){child.treeOutline._forgetTreeElement(child);child.treeOutline._forgetChildrenRecursive(child);}
-child._detach();child.treeOutline=null;child.parent=null;child.nextSibling=null;child.previousSibling=null;}
-this.children=[];}
-TreeOutline.prototype._rememberTreeElement=function(element)
-{if(!this._treeElementsMap.get(element.representedObject))
-this._treeElementsMap.put(element.representedObject,[]);var elements=this._treeElementsMap.get(element.representedObject);if(elements.indexOf(element)!==-1)
-return;elements.push(element);}
-TreeOutline.prototype._forgetTreeElement=function(element)
-{if(this._treeElementsMap.get(element.representedObject)){var elements=this._treeElementsMap.get(element.representedObject);elements.remove(element,true);if(!elements.length)
-this._treeElementsMap.remove(element.representedObject);}}
-TreeOutline.prototype._forgetChildrenRecursive=function(parentElement)
-{var child=parentElement.children[0];while(child){this._forgetTreeElement(child);child=child.traverseNextTreeElement(false,parentElement,true);}}
-TreeOutline.prototype.getCachedTreeElement=function(representedObject)
-{if(!representedObject)
-return null;var elements=this._treeElementsMap.get(representedObject);if(elements&&elements.length)
-return elements[0];return null;}
-TreeOutline.prototype.findTreeElement=function(representedObject,isAncestor,getParent)
-{if(!representedObject)
-return null;var cachedElement=this.getCachedTreeElement(representedObject);if(cachedElement)
-return cachedElement;var ancestors=[];for(var currentObject=getParent(representedObject);currentObject;currentObject=getParent(currentObject)){ancestors.push(currentObject);if(this.getCachedTreeElement(currentObject))
-break;}
-if(!currentObject)
-return null;for(var i=ancestors.length-1;i>=0;--i){var treeElement=this.getCachedTreeElement(ancestors[i]);if(treeElement)
-treeElement.onpopulate();}
-return this.getCachedTreeElement(representedObject);}
-TreeOutline.prototype.treeElementFromPoint=function(x,y)
-{var node=this._childrenListNode.ownerDocument.elementFromPoint(x,y);if(!node)
-return null;var listNode=node.enclosingNodeOrSelfWithNodeNameInArray(["ol","li"]);if(listNode)
-return listNode.parentTreeElement||listNode.treeElement;return null;}
-TreeOutline.prototype._treeKeyDown=function(event)
-{if(event.target!==this._childrenListNode)
-return;if(!this.selectedTreeElement||event.shiftKey||event.metaKey||event.ctrlKey)
-return;var handled=false;var nextSelectedElement;if(event.keyIdentifier==="Up"&&!event.altKey){nextSelectedElement=this.selectedTreeElement.traversePreviousTreeElement(true);while(nextSelectedElement&&!nextSelectedElement.selectable)
-nextSelectedElement=nextSelectedElement.traversePreviousTreeElement(!this.expandTreeElementsWhenArrowing);handled=nextSelectedElement?true:false;}else if(event.keyIdentifier==="Down"&&!event.altKey){nextSelectedElement=this.selectedTreeElement.traverseNextTreeElement(true);while(nextSelectedElement&&!nextSelectedElement.selectable)
-nextSelectedElement=nextSelectedElement.traverseNextTreeElement(!this.expandTreeElementsWhenArrowing);handled=nextSelectedElement?true:false;}else if(event.keyIdentifier==="Left"){if(this.selectedTreeElement.expanded){if(event.altKey)
-this.selectedTreeElement.collapseRecursively();else
-this.selectedTreeElement.collapse();handled=true;}else if(this.selectedTreeElement.parent&&!this.selectedTreeElement.parent.root){handled=true;if(this.selectedTreeElement.parent.selectable){nextSelectedElement=this.selectedTreeElement.parent;while(nextSelectedElement&&!nextSelectedElement.selectable)
-nextSelectedElement=nextSelectedElement.parent;handled=nextSelectedElement?true:false;}else if(this.selectedTreeElement.parent)
-this.selectedTreeElement.parent.collapse();}}else if(event.keyIdentifier==="Right"){if(!this.selectedTreeElement.revealed()){this.selectedTreeElement.reveal();handled=true;}else if(this.selectedTreeElement.hasChildren){handled=true;if(this.selectedTreeElement.expanded){nextSelectedElement=this.selectedTreeElement.children[0];while(nextSelectedElement&&!nextSelectedElement.selectable)
-nextSelectedElement=nextSelectedElement.nextSibling;handled=nextSelectedElement?true:false;}else{if(event.altKey)
-this.selectedTreeElement.expandRecursively();else
-this.selectedTreeElement.expand();}}}else if(event.keyCode===8||event.keyCode===46)
-handled=this.selectedTreeElement.ondelete();else if(isEnterKey(event))
-handled=this.selectedTreeElement.onenter();else if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Space.code)
-handled=this.selectedTreeElement.onspace();if(nextSelectedElement){nextSelectedElement.reveal();nextSelectedElement.select(false,true);}
-if(handled)
-event.consume(true);}
-TreeOutline.prototype.expand=function()
-{}
-TreeOutline.prototype.collapse=function()
-{}
-TreeOutline.prototype.revealed=function()
-{return true;}
-TreeOutline.prototype.reveal=function()
-{}
-TreeOutline.prototype.select=function()
-{}
-TreeOutline.prototype.revealAndSelect=function(omitFocus)
-{}
-function TreeElement(title,representedObject,hasChildren)
-{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)
-return;this._hasChildren=x;if(!this._listItemNode)
-return;if(x)
-this._listItemNode.classList.add("parent");else{this._listItemNode.classList.remove("parent");this.collapse();}},get hidden(){return this._hidden;},set hidden(x){if(this._hidden===x)
-return;this._hidden=x;if(x){if(this._listItemNode)
-this._listItemNode.classList.add("hidden");if(this._childrenListNode)
-this._childrenListNode.classList.add("hidden");}else{if(this._listItemNode)
-this._listItemNode.classList.remove("hidden");if(this._childrenListNode)
-this._childrenListNode.classList.remove("hidden");}},get shouldRefreshChildren(){return this._shouldRefreshChildren;},set shouldRefreshChildren(x){this._shouldRefreshChildren=x;if(x&&this.expanded)
-this.expand();},_setListItemNodeContent:function()
-{if(!this._listItemNode)
-return;if(typeof this._title==="string")
-this._listItemNode.textContent=this._title;else{this._listItemNode.removeChildren();if(this._title)
-this._listItemNode.appendChild(this._title);}}}
-TreeElement.prototype.appendChild=TreeOutline.prototype.appendChild;TreeElement.prototype.insertChild=TreeOutline.prototype.insertChild;TreeElement.prototype.insertBeforeChild=TreeOutline.prototype.insertBeforeChild;TreeElement.prototype.removeChild=TreeOutline.prototype.removeChild;TreeElement.prototype.removeChildAtIndex=TreeOutline.prototype.removeChildAtIndex;TreeElement.prototype.removeChildren=TreeOutline.prototype.removeChildren;TreeElement.prototype._attach=function()
-{if(!this._listItemNode||this.parent._shouldRefreshChildren){if(this._listItemNode&&this._listItemNode.parentNode)
-this._listItemNode.parentNode.removeChild(this._listItemNode);this._listItemNode=this.treeOutline._childrenListNode.ownerDocument.createElement("li");this._listItemNode.treeElement=this;this._setListItemNodeContent();this._listItemNode.title=this._tooltip?this._tooltip:"";if(this.hidden)
-this._listItemNode.classList.add("hidden");if(this.hasChildren)
-this._listItemNode.classList.add("parent");if(this.expanded)
-this._listItemNode.classList.add("expanded");if(this.selected)
-this._listItemNode.classList.add("selected");this._listItemNode.addEventListener("mousedown",TreeElement.treeElementMouseDown,false);this._listItemNode.addEventListener("click",TreeElement.treeElementToggled,false);this._listItemNode.addEventListener("dblclick",TreeElement.treeElementDoubleClicked,false);this.onattach();}
-var nextSibling=null;if(this.nextSibling&&this.nextSibling._listItemNode&&this.nextSibling._listItemNode.parentNode===this.parent._childrenListNode)
-nextSibling=this.nextSibling._listItemNode;this.parent._childrenListNode.insertBefore(this._listItemNode,nextSibling);if(this._childrenListNode)
-this.parent._childrenListNode.insertBefore(this._childrenListNode,this._listItemNode.nextSibling);if(this.selected)
-this.select();if(this.expanded)
-this.expand();}
-TreeElement.prototype._detach=function()
-{if(this._listItemNode&&this._listItemNode.parentNode)
-this._listItemNode.parentNode.removeChild(this._listItemNode);if(this._childrenListNode&&this._childrenListNode.parentNode)
-this._childrenListNode.parentNode.removeChild(this._childrenListNode);}
-TreeElement.treeElementMouseDown=function(event)
-{var element=event.currentTarget;if(!element||!element.treeElement||!element.treeElement.selectable)
-return;if(element.treeElement.isEventWithinDisclosureTriangle(event))
-return;element.treeElement.selectOnMouseDown(event);}
-TreeElement.treeElementToggled=function(event)
-{var element=event.currentTarget;if(!element||!element.treeElement)
-return;var toggleOnClick=element.treeElement.toggleOnClick&&!element.treeElement.selectable;var isInTriangle=element.treeElement.isEventWithinDisclosureTriangle(event);if(!toggleOnClick&&!isInTriangle)
-return;if(element.treeElement.expanded){if(event.altKey)
-element.treeElement.collapseRecursively();else
-element.treeElement.collapse();}else{if(event.altKey)
-element.treeElement.expandRecursively();else
-element.treeElement.expand();}
-event.consume();}
-TreeElement.treeElementDoubleClicked=function(event)
-{var element=event.currentTarget;if(!element||!element.treeElement)
-return;var handled=element.treeElement.ondblclick.call(element.treeElement,event);if(handled)
-return;if(element.treeElement.hasChildren&&!element.treeElement.expanded)
-element.treeElement.expand();}
-TreeElement.prototype.collapse=function()
-{if(this._listItemNode)
-this._listItemNode.classList.remove("expanded");if(this._childrenListNode)
-this._childrenListNode.classList.remove("expanded");this.expanded=false;if(this.treeOutline)
-this.treeOutline._expandedStateMap.put(this.representedObject,false);this.oncollapse();}
-TreeElement.prototype.collapseRecursively=function()
-{var item=this;while(item){if(item.expanded)
-item.collapse();item=item.traverseNextTreeElement(false,this,true);}}
-TreeElement.prototype.expand=function()
-{if(!this.hasChildren||(this.expanded&&!this._shouldRefreshChildren&&this._childrenListNode))
-return;this.expanded=true;if(this.treeOutline)
-this.treeOutline._expandedStateMap.put(this.representedObject,true);if(this.treeOutline&&(!this._childrenListNode||this._shouldRefreshChildren)){if(this._childrenListNode&&this._childrenListNode.parentNode)
-this._childrenListNode.parentNode.removeChild(this._childrenListNode);this._childrenListNode=this.treeOutline._childrenListNode.ownerDocument.createElement("ol");this._childrenListNode.parentTreeElement=this;this._childrenListNode.classList.add("children");if(this.hidden)
-this._childrenListNode.classList.add("hidden");this.onpopulate();for(var i=0;i<this.children.length;++i)
-this.children[i]._attach();delete this._shouldRefreshChildren;}
-if(this._listItemNode){this._listItemNode.classList.add("expanded");if(this._childrenListNode&&this._childrenListNode.parentNode!=this._listItemNode.parentNode)
-this.parent._childrenListNode.insertBefore(this._childrenListNode,this._listItemNode.nextSibling);}
-if(this._childrenListNode)
-this._childrenListNode.classList.add("expanded");this.onexpand();}
-TreeElement.prototype.expandRecursively=function(maxDepth)
-{var item=this;var info={};var depth=0;if(isNaN(maxDepth))
-maxDepth=3;while(item){if(depth<maxDepth)
-item.expand();item=item.traverseNextTreeElement(false,this,(depth>=maxDepth),info);depth+=info.depthChange;}}
-TreeElement.prototype.hasAncestor=function(ancestor){if(!ancestor)
-return false;var currentNode=this.parent;while(currentNode){if(ancestor===currentNode)
-return true;currentNode=currentNode.parent;}
-return false;}
-TreeElement.prototype.reveal=function()
-{var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor.root){if(!currentAncestor.expanded)
-currentAncestor.expand();currentAncestor=currentAncestor.parent;}
-this.onreveal();}
-TreeElement.prototype.revealed=function()
-{var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor.root){if(!currentAncestor.expanded)
-return false;currentAncestor=currentAncestor.parent;}
-return true;}
-TreeElement.prototype.selectOnMouseDown=function(event)
-{if(this.select(false,true))
-event.consume(true);}
-TreeElement.prototype.select=function(omitFocus,selectedByUser)
-{if(!this.treeOutline||!this.selectable||this.selected)
-return false;if(this.treeOutline.selectedTreeElement)
-this.treeOutline.selectedTreeElement.deselect();this.selected=true;if(!omitFocus)
-this.treeOutline._childrenListNode.focus();if(!this.treeOutline)
-return false;this.treeOutline.selectedTreeElement=this;if(this._listItemNode)
-this._listItemNode.classList.add("selected");return this.onselect(selectedByUser);}
-TreeElement.prototype.revealAndSelect=function(omitFocus)
-{this.reveal();this.select(omitFocus);}
-TreeElement.prototype.deselect=function(supressOnDeselect)
-{if(!this.treeOutline||this.treeOutline.selectedTreeElement!==this||!this.selected)
-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(){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(e){return false;}
-TreeElement.prototype.onreveal=function(){}
-TreeElement.prototype.onselect=function(selectedByUser){return false;}
-TreeElement.prototype.traverseNextTreeElement=function(skipUnrevealed,stayWithin,dontPopulate,info)
-{if(!dontPopulate&&this.hasChildren)
-this.onpopulate();if(info)
-info.depthChange=0;var element=skipUnrevealed?(this.revealed()?this.children[0]:null):this.children[0];if(element&&(!skipUnrevealed||(skipUnrevealed&&this.expanded))){if(info)
-info.depthChange=1;return element;}
-if(this===stayWithin)
-return null;element=skipUnrevealed?(this.revealed()?this.nextSibling:null):this.nextSibling;if(element)
-return element;element=this;while(element&&!element.root&&!(skipUnrevealed?(element.revealed()?element.nextSibling:null):element.nextSibling)&&element.parent!==stayWithin){if(info)
-info.depthChange-=1;element=element.parent;}
-if(!element)
-return null;return(skipUnrevealed?(element.revealed()?element.nextSibling:null):element.nextSibling);}
-TreeElement.prototype.traversePreviousTreeElement=function(skipUnrevealed,dontPopulate)
-{var element=skipUnrevealed?(this.revealed()?this.previousSibling:null):this.previousSibling;if(!dontPopulate&&element&&element.hasChildren)
-element.onpopulate();while(element&&(skipUnrevealed?(element.revealed()&&element.expanded?element.children[element.children.length-1]:null):element.children[element.children.length-1])){if(!dontPopulate&&element.hasChildren)
-element.onpopulate();element=(skipUnrevealed?(element.revealed()&&element.expanded?element.children[element.children.length-1]:null):element.children[element.children.length-1]);}
-if(element)
-return element;if(!this.parent||this.parent.root)
-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={_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);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()
-{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();},_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"}
-{(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];}})();}
-WebInspector.suggestReload=function()
-{if(window.confirm(WebInspector.UIString("It is recommended to restart inspector after making these changes. Would you like to restart it?")))
-this.reload();}
-WebInspector.reload=function()
-{InspectorAgent.reset();var queryParams=window.location.search;var url=window.location.href;url=url.substring(0,url.length-queryParams.length);var queryParamsObject={};for(var name in WebInspector.queryParamsObject)
-queryParamsObject[name]=WebInspector.queryParamsObject[name];if(this.dockController)
-queryParamsObject["dockSide"]=this.dockController.dockSide();var names=Object.keys(queryParamsObject);for(var i=0;i<names.length;++i)
-url+=(i?"&":"?")+names[i]+"="+queryParamsObject[names[i]];document.location=url;}
-WebInspector.loaded=function()
-{if(!InspectorFrontendHost.sendMessageToEmbedder){var helpScreen=new WebInspector.HelpScreen(WebInspector.UIString("Incompatible Chrome version"));var p=helpScreen.contentElement.createChild("p","help-section");p.textContent=WebInspector.UIString("Please upgrade to a newer Chrome version (you might need a Dev or Canary build).");helpScreen.showModal();return;}
-InspectorBackend.loadFromJSONIfNeeded("../protocol.json");WebInspector.dockController=new WebInspector.DockController();if(WebInspector.WorkerManager.isDedicatedWorkerFrontend()){WebInspector.doLoadedDone();return;}
-var ws;if("ws"in WebInspector.queryParamsObject)
-ws="ws://"+WebInspector.queryParamsObject.ws;else if("page"in WebInspector.queryParamsObject){var page=WebInspector.queryParamsObject.page;var host="host"in WebInspector.queryParamsObject?WebInspector.queryParamsObject.host:window.location.host;ws="ws://"+host+"/devtools/page/"+page;}
-if(ws){WebInspector.socket=new WebSocket(ws);WebInspector.socket.onmessage=function(message){InspectorBackend.dispatch(message.data);}
-WebInspector.socket.onerror=function(error){console.error(error);}
-WebInspector.socket.onopen=function(){InspectorFrontendHost.sendMessageToBackend=WebInspector.socket.send.bind(WebInspector.socket);WebInspector.doLoadedDone();}
-WebInspector.socket.onclose=function(){if(!WebInspector.socket._detachReason)
-(new WebInspector.RemoteDebuggingTerminatedScreen("websocket_closed")).showModal();}
-return;}
-WebInspector.doLoadedDone();if(InspectorFrontendHost.isStub){InspectorFrontendAPI.dispatchQueryParameters(WebInspector.queryParamsObject);WebInspector._doLoadedDoneWithCapabilities();}}
-WebInspector.doLoadedDone=function()
-{WebInspector.installPortStyles();if(WebInspector.socket)
-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"));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)
-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)
-{this._adjustExternalZoomFactor();if(WebInspector.inspectorView)
-WebInspector.inspectorView.onResize();if(WebInspector.settingsController)
-WebInspector.settingsController.resize();}
-WebInspector.close=function(event)
-{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.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;}
-InspectorFrontendHost.openInNewTab(anchor.href);}
-if(WebInspector.followLinkTimeout)
-clearTimeout(WebInspector.followLinkTimeout);if(anchor.preventFollowOnDoubleClick){if(event.detail===1)
-WebInspector.followLinkTimeout=setTimeout(followLink,333);return;}
-followLink();}
-WebInspector.openResource=function(resourceURL,inResourcesPanel)
-{var resource=WebInspector.resourceForURL(resourceURL);if(inResourcesPanel&&resource)
-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("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.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);WebInspector.resourceTreeModel.reloadPage(event.shiftKey);event.consume(true);}
-if(window.DEBUG&&event.altKey){WebInspector.reload();return;}
-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);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(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();}
-WebInspector.documentCopy=function(event)
-{if(WebInspector.inspectorView.currentPanel()&&WebInspector.inspectorView.currentPanel().handleCopyEvent)
-WebInspector.inspectorView.currentPanel().handleCopyEvent(event);}
-WebInspector.contextMenuEventFired=function(event)
-{if(event.handled||event.target.classList.contains("popup-glasspane"))
-event.preventDefault();}
-WebInspector.showPanel=function(panel)
-{return WebInspector.inspectorView.showPanel(panel);}
-WebInspector.panel=function(panel)
-{return WebInspector.inspectorView.panel(panel);}
-WebInspector.bringToFront=function()
-{InspectorFrontendHost.bringToFront();}
-WebInspector.log=function(message,messageLevel,showConsole)
-{var self=this;function isLogAvailable()
-{return WebInspector.ConsoleMessage&&WebInspector.RemoteObject&&self.console;}
-function flushQueue()
-{var queued=WebInspector.log.queued;if(!queued)
-return;for(var i=0;i<queued.length;++i)
-logMessage(queued[i]);delete WebInspector.log.queued;}
-function flushQueueIfAvailable()
-{if(!isLogAvailable())
-return;clearInterval(WebInspector.log.interval);delete WebInspector.log.interval;flushQueue();}
-function logMessage(message)
-{var msg=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.Other,messageLevel||WebInspector.ConsoleMessage.MessageLevel.Debug,message);self.console.addMessage(msg);if(showConsole)
-WebInspector.showConsole();}
-if(!isLogAvailable()){if(!WebInspector.log.queued)
-WebInspector.log.queued=[];WebInspector.log.queued.push(message);if(!WebInspector.log.interval)
-WebInspector.log.interval=setInterval(flushQueueIfAvailable,1000);return;}
-flushQueue();logMessage(message);}
-WebInspector.showErrorMessage=function(error)
-{WebInspector.log(error,WebInspector.ConsoleMessage.MessageLevel.Error,true);}
-WebInspector.inspect=function(payload,hints)
-{var object=WebInspector.RemoteObject.fromPayload(payload);if(object.subtype==="node"){function callback(nodeId)
-{WebInspector._updateFocusedNode(nodeId);object.release();}
-object.pushNodeToFrontend(callback);WebInspector.showPanel("elements");return;}
-if(object.type==="function"){function didGetDetails(error,response)
-{object.release();if(error){console.error(error);return;}
-var uiLocation=WebInspector.debuggerModel.rawLocationToUILocation(response.location);if(!uiLocation)
-return;WebInspector.panel("sources").showUILocation(uiLocation,true);}
-DebuggerAgent.getFunctionDetails(object.objectId,didGetDetails.bind(this));return;}
-if(hints.databaseId)
-WebInspector.showPanel("resources").selectDatabase(WebInspector.databaseModel.databaseForId(hints.databaseId));else if(hints.domStorageId)
-WebInspector.showPanel("resources").selectDOMStorage(WebInspector.domStorageModel.storageForId(hints.domStorageId));else if(hints.copyToClipboard)
-InspectorFrontendHost.copyText(object.value);object.release();}
-WebInspector.detached=function(reason)
-{WebInspector.socket._detachReason=reason;(new WebInspector.RemoteDebuggingTerminatedScreen(reason)).showModal();}
-WebInspector.targetCrashed=function()
-{(new WebInspector.HelpScreenUntilReload(WebInspector.UIString("Inspected target crashed"),WebInspector.UIString("Inspected target has crashed. Once it reloads we will attach to it automatically."))).showModal();}
-WebInspector._inspectNodeRequested=function(event)
-{WebInspector._updateFocusedNode(event.data);}
-WebInspector._updateFocusedNode=function(nodeId)
-{if(WebInspector.inspectElementModeController&&WebInspector.inspectElementModeController.enabled()){InspectorFrontendHost.bringToFront();WebInspector.inspectElementModeController.disable();}
-WebInspector.showPanel("elements").revealAndSelectNode(nodeId);}
-WebInspector.showAnchorLocation=function(anchor)
-{var preferredPanel=this.panels[anchor.preferredPanel];if(preferredPanel&&WebInspector._showAnchorLocationInPanel(anchor,preferredPanel))
-return true;if(WebInspector._showAnchorLocationInPanel(anchor,this.panel("sources")))
-return true;if(WebInspector._showAnchorLocationInPanel(anchor,this.panel("resources")))
-return true;if(WebInspector._showAnchorLocationInPanel(anchor,this.panel("network")))
-return true;return false;}
-WebInspector._showAnchorLocationInPanel=function(anchor,panel)
-{if(!panel)
-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.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+";"+
-platformExtensionAPI.toString();}
-WebInspector.setInspectedTabId=function(tabId)
-{WebInspector._inspectedTabId=tabId;}
-WebInspector.getSelectionBackgroundColor=function()
-{return InspectorFrontendHost.getSelectionBackgroundColor();}
-WebInspector.getSelectionForegroundColor=function()
-{return InspectorFrontendHost.getSelectionForegroundColor();}
-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;}
-InspectorBackendClass.prototype={nextCallbackId:function()
-{return this._lastCallbackId++;},_wrap:function(callback,method)
-{var callbackId=this.nextCallbackId();if(!callback)
-callback=function(){};this._callbacks[callbackId]=callback;callback.methodName=method;if(this.dumpInspectorTimeStats)
-callback.sendRequestTime=Date.now();return callbackId;},_getAgent:function(domain)
-{var agentName=domain+"Agent";if(!window[agentName])
-window[agentName]={};return window[agentName];},registerCommand:function(method,signature,replyArgs,hasErrorData)
-{var domainAndMethod=method.split(".");var agent=this._getAgent(domainAndMethod[0]);agent[domainAndMethod[1]]=this._sendMessageToBackend.bind(this,method,signature);agent[domainAndMethod[1]]["invoke"]=this._invoke.bind(this,method,signature);this._replyArgs[method]=replyArgs;if(hasErrorData)
-this._hasErrorData[method]=true;this._initialized=true;},registerEnum:function(type,values)
-{var domainAndMethod=type.split(".");var agent=this._getAgent(domainAndMethod[0]);agent[domainAndMethod[1]]=values;this._initialized=true;},registerEvent:function(eventName,params)
-{this._eventArgs[eventName]=params;this._initialized=true;},_invoke:function(method,signature,args,callback)
-{this._wrapCallbackAndSendMessageObject(method,args,callback);},_sendMessageToBackend:function(method,signature,vararg)
-{var args=Array.prototype.slice.call(arguments,2);var callback=(args.length&&typeof args[args.length-1]==="function")?args.pop():null;var params={};var hasParams=false;for(var i=0;i<signature.length;++i){var param=signature[i];var paramName=param["name"];var typeName=param["type"];var optionalFlag=param["optional"];if(!args.length&&!optionalFlag){console.error("Protocol Error: Invalid number of arguments for method '"+method+"' call. It must have the following arguments '"+JSON.stringify(signature)+"'.");return;}
-var value=args.shift();if(optionalFlag&&typeof value==="undefined"){continue;}
-if(typeof value!==typeName){console.error("Protocol Error: Invalid type of argument '"+paramName+"' for method '"+method+"' call. It must be '"+typeName+"' but it is '"+typeof value+"'.");return;}
-params[paramName]=value;hasParams=true;}
-if(args.length===1&&!callback){if(typeof args[0]!=="undefined"){console.error("Protocol Error: Optional callback argument for method '"+method+"' call must be a function but its type is '"+typeof args[0]+"'.");return;}}
-this._wrapCallbackAndSendMessageObject(method,hasParams?params:null,callback);},_wrapCallbackAndSendMessageObject:function(method,params,callback)
-{var messageObject={};messageObject.method=method;if(params)
-messageObject.params=params;messageObject.id=this._wrap(callback,method);if(this.dumpInspectorProtocolMessages)
-console.log("frontend: "+JSON.stringify(messageObject));++this._pendingResponsesCount;this.sendMessageObjectToBackend(messageObject);},sendMessageObjectToBackend:function(messageObject)
-{var message=JSON.stringify(messageObject);InspectorFrontendHost.sendMessageToBackend(message);},registerDomainDispatcher:function(domain,dispatcher)
-{this._domainDispatchers[domain]=dispatcher;},dispatch:function(message)
-{if(this.dumpInspectorProtocolMessages)
-console.log("backend: "+((typeof message==="string")?message:JSON.stringify(message)));var messageObject=(typeof message==="string")?JSON.parse(message):message;if("id"in messageObject){if(messageObject.error){if(messageObject.error.code!==-32000)
-this.reportProtocolError(messageObject);}
-var callback=this._callbacks[messageObject.id];if(callback){var argumentsArray=[null];if(messageObject.error){argumentsArray[0]=messageObject.error.message;}
-if(this._hasErrorData[callback.methodName]){argumentsArray.push(null);if(messageObject.error)
-argumentsArray[1]=messageObject.error.data;}
-if(messageObject.result){var paramNames=this._replyArgs[callback.methodName];if(paramNames){for(var i=0;i<paramNames.length;++i)
-argumentsArray.push(messageObject.result[paramNames[i]]);}}
-var processingStartTime;if(this.dumpInspectorTimeStats&&callback.methodName)
-processingStartTime=Date.now();callback.apply(null,argumentsArray);--this._pendingResponsesCount;delete this._callbacks[messageObject.id];if(this.dumpInspectorTimeStats&&callback.methodName)
-console.log("time-stats: "+callback.methodName+" = "+(processingStartTime-callback.sendRequestTime)+" + "+(Date.now()-processingStartTime));}
-if(this._scripts&&!this._pendingResponsesCount)
-this.runAfterPendingDispatches();return;}else{var method=messageObject.method.split(".");var domainName=method[0];var functionName=method[1];if(!(domainName in this._domainDispatchers)){console.error("Protocol Error: the message is for non-existing domain '"+domainName+"'");return;}
-var dispatcher=this._domainDispatchers[domainName];if(!(functionName in dispatcher)){console.error("Protocol Error: Attempted to dispatch an unimplemented method '"+messageObject.method+"'");return;}
-if(!this._eventArgs[messageObject.method]){console.error("Protocol Error: Attempted to dispatch an unspecified method '"+messageObject.method+"'");return;}
-var params=[];if(messageObject.params){var paramNames=this._eventArgs[messageObject.method];for(var i=0;i<paramNames.length;++i)
-params.push(messageObject.params[paramNames[i]]);}
-var processingStartTime;if(this.dumpInspectorTimeStats)
-processingStartTime=Date.now();dispatcher[functionName].apply(dispatcher,params);if(this.dumpInspectorTimeStats)
-console.log("time-stats: "+messageObject.method+" = "+(Date.now()-processingStartTime));}},reportProtocolError:function(messageObject)
-{console.error("Request with id = "+messageObject.id+" failed. "+JSON.stringify(messageObject.error));},runAfterPendingDispatches:function(script)
-{if(!this._scripts)
-this._scripts=[];if(script)
-this._scripts.push(script);if(!this._pendingResponsesCount){var scripts=this._scripts;this._scripts=[]
-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);},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();}
-function generateEnum(enumName,items)
-{var members=[]
-for(var m=0;m<items.length;++m){var value=items[m];var name=value.replace(/-(\w)/g,toUpperCase.bind(null,1)).toTitleCase();name=name.replace(/HTML|XML|WML|API/ig,toUpperCase.bind(null,0));members.push(name+": \""+value+"\"");}
-return"InspectorBackend.registerEnum(\""+enumName+"\", {"+members.join(", ")+"});";}
-for(var i=0;i<domains.length;++i){var domain=domains[i];var types=domain["types"]||[];for(var j=0;j<types.length;++j){var type=types[j];if((type["type"]==="string")&&type["enum"])
-result.push(generateEnum(domain.domain+"."+type.id,type["enum"]));else if(type["type"]==="object"){var properties=type["properties"]||[];for(var k=0;k<properties.length;++k){var property=properties[k];if((property["type"]==="string")&&property["enum"])
-result.push(generateEnum(domain.domain+"."+type.id+property["name"].toTitleCase(),property["enum"]));}}}
-var commands=domain["commands"]||[];for(var j=0;j<commands.length;++j){var command=commands[j];var parameters=command["parameters"];var paramsText=[];for(var k=0;parameters&&k<parameters.length;++k){var parameter=parameters[k];var type;if(parameter.type)
-type=jsTypes[parameter.type]||parameter.type;else{var ref=parameter["$ref"];if(ref.indexOf(".")!==-1)
-type=rawTypes[ref];else
-type=rawTypes[domain.domain+"."+ref];}
-var text="{\"name\": \""+parameter.name+"\", \"type\": \""+type+"\", \"optional\": "+(parameter.optional?"true":"false")+"}";paramsText.push(text);}
-var returnsText=[];var returns=command["returns"]||[];for(var k=0;k<returns.length;++k){var parameter=returns[k];returnsText.push("\""+parameter.name+"\"");}
-var hasErrorData=String(Boolean(command.error));result.push("InspectorBackend.registerCommand(\""+domain.domain+"."+command.name+"\", ["+paramsText.join(", ")+"], ["+returnsText.join(", ")+"], "+hasErrorData+");");}
-for(var j=0;domain.events&&j<domain.events.length;++j){var event=domain.events[j];var paramsText=[];for(var k=0;event.parameters&&k<event.parameters.length;++k){var parameter=event.parameters[k];paramsText.push("\""+parameter.name+"\"");}
-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.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()
-{}}
-var InspectorExtensionRegistry=new WebInspector.InspectorExtensionRegistryStub();}
-var InspectorFrontendAPI={_pendingCommands:[],showConsole:function()
-{InspectorFrontendAPI._runOnceLoaded(function(){WebInspector.showPanel("console");});},enterInspectElementMode:function()
-{InspectorFrontendAPI._runOnceLoaded(function(){WebInspector.showPanel("elements");if(WebInspector.inspectElementModeController)
-WebInspector.inspectElementModeController.toggleSearch();});},revealSourceLine:function(url,lineNumber,columnNumber)
-{InspectorFrontendAPI._runOnceLoaded(function(){var uiSourceCode=WebInspector.workspace.uiSourceCodeForURL(url);if(uiSourceCode){WebInspector.showPanel("sources").showUISourceCode(uiSourceCode,lineNumber,columnNumber);return;}
-function listener(event)
-{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);});},setUseSoftMenu:function(useSoftMenu)
-{WebInspector.ContextMenu.setUseSoftMenu(useSoftMenu);},setAttachedWindow:function(docked)
-{},setDockSide:function(side)
-{},dispatchMessage:function(messageObject)
-{InspectorBackend.dispatch(messageObject);},contextMenuItemSelected:function(id)
-{WebInspector.contextMenuItemSelected(id);},contextMenuCleared:function()
-{WebInspector.contextMenuCleared();},fileSystemsLoaded:function(fileSystems)
-{WebInspector.isolatedFileSystemDispatcher.fileSystemsLoaded(fileSystems);},fileSystemRemoved:function(fileSystemPath)
-{WebInspector.isolatedFileSystemDispatcher.fileSystemRemoved(fileSystemPath);},fileSystemAdded:function(errorMessage,fileSystem)
-{WebInspector.isolatedFileSystemDispatcher.fileSystemAdded(errorMessage,fileSystem);},indexingTotalWorkCalculated:function(requestId,fileSystemPath,totalWork)
-{var projectDelegate=WebInspector.fileSystemWorkspaceProvider.delegate(fileSystemPath);projectDelegate.indexingTotalWorkCalculated(requestId,totalWork);},indexingWorked:function(requestId,fileSystemPath,worked)
-{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);},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)
-InspectorFrontendAPI._pendingCommands[i]();InspectorFrontendAPI._pendingCommands=[];if(window.opener)
-window.opener.postMessage(["loadCompleted"],"*");},dispatchQueryParameters:function(queryParamsObject)
-{if("dispatch"in queryParamsObject)
-InspectorFrontendAPI._dispatch(JSON.parse(window.decodeURI(queryParamsObject["dispatch"])));},evaluateForTest:function(callId,script)
-{WebInspector.evaluateForTestInFrontend(callId,script);},dispatchMessageAsync:function(messageObject)
-{WebInspector.dispatch(messageObject);},_dispatch:function(signature)
-{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);}}
-function onMessageFromOpener(event)
-{if(event.source===window.opener)
-InspectorFrontendAPI._dispatch(event.data);}
-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)
-this._listeners={};if(!this._listeners[eventType])
-this._listeners[eventType]=[];this._listeners[eventType].push({thisObject:thisObject,listener:listener});},removeEventListener:function(eventType,listener,thisObject)
-{console.assert(listener);if(!this._listeners||!this._listeners[eventType])
-return;var listeners=this._listeners[eventType];for(var i=0;i<listeners.length;++i){if(listener&&listeners[i].listener===listener&&listeners[i].thisObject===thisObject)
-listeners.splice(i,1);else if(!listener&&thisObject&&listeners[i].thisObject===thisObject)
-listeners.splice(i,1);}
-if(!listeners.length)
-delete this._listeners[eventType];},removeAllListeners:function()
-{delete this._listeners;},hasEventListeners:function(eventType)
-{if(!this._listeners||!this._listeners[eventType])
-return false;return true;},dispatchEventToListeners:function(eventType,eventData)
-{if(!this._listeners||!this._listeners[eventType])
-return false;var event=new WebInspector.Event(this,eventType,eventData);var listeners=this._listeners[eventType].slice(0);for(var i=0;i<listeners.length;++i){listeners[i].listener.call(listeners[i].thisObject,event);if(event._stoppedPropagation)
-break;}
-return event.defaultPrevented;}}
-WebInspector.Event=function(target,type,data)
-{this.target=target;this.type=type;this.data=data;this.defaultPrevented=false;this._stoppedPropagation=false;}
-WebInspector.Event.prototype={stopPropagation:function()
-{this._stoppedPropagation=true;},preventDefault:function()
-{this.defaultPrevented=true;},consume:function(preventDefault)
-{this.stopPropagation();if(preventDefault)
-this.preventDefault();}}
-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: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.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];},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)
-{this._eventSupport.addEventListener(this._name,listener,thisObject);},removeChangeListener:function(listener,thisObject)
-{this._eventSupport.removeEventListener(this._name,listener,thisObject);},get name()
-{return this._name;},get:function()
-{if(typeof this._value!=="undefined")
-return this._value;this._value=this._defaultValue;if(this._storage&&this._name in this._storage){try{this._value=JSON.parse(this._storage[this._name]);}catch(e){delete this._storage[this._name];}}
-return this._value;},set:function(value)
-{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.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.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)
-{var experiment=new WebInspector.Experiment(this,experimentName,experimentTitle);this._experiments.push(experiment);return experiment;},isEnabled:function(experimentName)
-{if(this._enabledForTest[experimentName])
-return true;if(!this.experimentsEnabled)
-return false;var experimentsSetting=this._setting.get();return experimentsSetting[experimentName];},setEnabled:function(experimentName,enabled)
-{var experimentsSetting=this._setting.get();experimentsSetting[experimentName]=enabled;this._setting.set(experimentsSetting);},_enableForTest:function(experimentName)
-{this._enabledForTest[experimentName]=true;},_cleanUpSetting:function()
-{var experimentsSetting=this._setting.get();var cleanedUpExperimentSetting={};for(var i=0;i<this._experiments.length;++i){var experimentName=this._experiments[i].name;if(experimentsSetting[experimentName])
-cleanedUpExperimentSetting[experimentName]=true;}
-this._setting.set(cleanedUpExperimentSetting);}}
-WebInspector.Experiment=function(experimentsSettings,name,title)
-{this._name=name;this._title=title;this._experimentsSettings=experimentsSettings;}
-WebInspector.Experiment.prototype={get name()
-{return this._name;},get title()
-{return this._title;},isEnabled:function()
-{return this._experimentsSettings.isEnabled(this._name);},setEnabled:function(enabled)
-{this._experimentsSettings.setEnabled(this._name,enabled);},enableForTest:function()
-{this._experimentsSettings._enableForTest(this._name);}}
-WebInspector.VersionController=function()
-{}
-WebInspector.VersionController.currentVersion=4;WebInspector.VersionController.prototype={updateVersion:function()
-{var versionSetting=WebInspector.settings.createSetting("inspectorVersion",0);var currentVersion=WebInspector.VersionController.currentVersion;var oldVersion=versionSetting.get();var methodsToRun=this._methodsToRunToUpdateVersion(oldVersion,currentVersion);for(var i=0;i<methodsToRun.length;++i)
-this[methodsToRun[i]].call(this);versionSetting.set(currentVersion);},_methodsToRunToUpdateVersion:function(oldVersion,currentVersion)
-{var result=[];for(var i=oldVersion;i<currentVersion;++i)
-result.push("_updateVersionFrom"+i+"To"+(i+1));return result;},_updateVersionFrom0To1:function()
-{this._clearBreakpointsWhenTooMany(WebInspector.settings.breakpoints,500000);},_updateVersionFrom1To2:function()
-{var versionSetting=WebInspector.settings.createSetting("previouslyViewedFiles",[]);versionSetting.set([]);},_updateVersionFrom2To3:function()
-{var fileSystemMappingSetting=WebInspector.settings.createSetting("fileSystemMapping",{});fileSystemMappingSetting.set({});if(window.localStorage)
-delete window.localStorage["fileMappingEntries"];},_updateVersionFrom3To4:function()
-{var advancedMode=WebInspector.settings.createSetting("showHeaSnapshotObjectsHiddenProperties",false).get();WebInspector.settings.showAdvancedHeapSnapshotProperties.set(advancedMode);},_clearBreakpointsWhenTooMany:function(breakpointsSetting,maxBreakpointsCount)
-{if(breakpointsSetting.get().length>maxBreakpointsCount)
-breakpointsSetting.set([]);}}
-WebInspector.settings=new WebInspector.Settings();WebInspector.experimentsSettings=new WebInspector.ExperimentsSettings();WebInspector.View=function()
-{this.element=document.createElement("div");this.element.__view=this;this._visible=true;this._isRoot=false;this._isShowing=false;this._children=[];this._hideOnDetach=false;this._cssFiles=[];this._notificationDepth=0;}
-WebInspector.View._cssFileToVisibleViewCount={};WebInspector.View._cssFileToStyleElement={};WebInspector.View._cssUnloadTimeout=2000;WebInspector.View.prototype={markAsRoot:function()
-{WebInspector.View._assert(!this.element.parentElement,"Attempt to mark as root attached node");this._isRoot=true;},parentView:function()
-{return this._parentView;},isShowing:function()
-{return this._isShowing;},setHideOnDetach:function()
-{this._hideOnDetach=true;},_inNotification:function()
-{return!!this._notificationDepth||(this._parentView&&this._parentView._inNotification());},_parentIsShowing:function()
-{if(this._isRoot)
-return true;return this._parentView&&this._parentView.isShowing();},_callOnVisibleChildren:function(method)
-{var copy=this._children.slice();for(var i=0;i<copy.length;++i){if(copy[i]._parentView===this&&copy[i]._visible)
-method.call(copy[i]);}},_processWillShow:function()
-{this._loadCSSIfNeeded();this._callOnVisibleChildren(this._processWillShow);this._isShowing=true;},_processWasShown:function()
-{if(this._inNotification())
-return;this.restoreScrollPositions();this._notify(this.wasShown);this._notify(this.onResize);this._callOnVisibleChildren(this._processWasShown);},_processWillHide:function()
-{if(this._inNotification())
-return;this.storeScrollPositions();this._callOnVisibleChildren(this._processWillHide);this._notify(this.willHide);this._isShowing=false;},_processWasHidden:function()
-{this._disableCSSIfNeeded();this._callOnVisibleChildren(this._processWasHidden);},_processOnResize:function()
-{if(this._inNotification())
-return;if(!this.isShowing())
-return;this._notify(this.onResize);this._callOnVisibleChildren(this._processOnResize);},_notify:function(notification)
-{++this._notificationDepth;try{notification.call(this);}finally{--this._notificationDepth;}},wasShown:function()
-{},willHide:function()
-{},onResize:function()
-{},show:function(parentElement,insertBefore)
-{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.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.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
-WebInspector.View._assert(this._isRoot,"Removing non-root view from DOM");},detachChildViews:function()
-{var children=this._children.slice();for(var i=0;i<children.length;++i)
-children[i].detach();},elementsToRestoreScrollPositionsFor:function()
-{return[this.element];},storeScrollPositions:function()
-{var elements=this.elementsToRestoreScrollPositionsFor();for(var i=0;i<elements.length;++i){var container=elements[i];container._scrollTop=container.scrollTop;container._scrollLeft=container.scrollLeft;}},restoreScrollPositions:function()
-{var elements=this.elementsToRestoreScrollPositionsFor();for(var i=0;i<elements.length;++i){var container=elements[i];if(container._scrollTop)
-container.scrollTop=container._scrollTop;if(container._scrollLeft)
-container.scrollLeft=container._scrollLeft;}},canHighlightPosition:function()
-{return false;},highlightPosition:function(line,column)
-{},doResize:function()
-{this._processOnResize();},registerRequiredCSS:function(cssFile)
-{if(window.flattenImports)
-cssFile=cssFile.split("/").reverse()[0];this._cssFiles.push(cssFile);},_loadCSSIfNeeded:function()
-{for(var i=0;i<this._cssFiles.length;++i){var cssFile=this._cssFiles[i];var viewsWithCSSFile=WebInspector.View._cssFileToVisibleViewCount[cssFile];WebInspector.View._cssFileToVisibleViewCount[cssFile]=(viewsWithCSSFile||0)+1;if(!viewsWithCSSFile)
-this._doLoadCSS(cssFile);}},_doLoadCSS:function(cssFile)
-{var styleElement=WebInspector.View._cssFileToStyleElement[cssFile];if(styleElement){styleElement.disabled=false;return;}
-if(window.debugCSS){styleElement=document.createElement("link");styleElement.rel="stylesheet";styleElement.type="text/css";styleElement.href=cssFile;}else{var xhr=new XMLHttpRequest();xhr.open("GET",cssFile,false);xhr.send(null);styleElement=document.createElement("style");styleElement.type="text/css";styleElement.textContent=xhr.responseText+this._buildSourceURL(cssFile);}
-document.head.insertBefore(styleElement,document.head.firstChild);WebInspector.View._cssFileToStyleElement[cssFile]=styleElement;},_buildSourceURL:function(cssFile)
-{return"\n/*# sourceURL="+WebInspector.ParsedURL.completeURL(window.location.href,cssFile)+" */";},_disableCSSIfNeeded:function()
-{var scheduleUnload=!!WebInspector.View._cssUnloadTimer;for(var i=0;i<this._cssFiles.length;++i){var cssFile=this._cssFiles[i];if(!--WebInspector.View._cssFileToVisibleViewCount[cssFile])
-scheduleUnload=true;}
-function doUnloadCSS()
-{delete WebInspector.View._cssUnloadTimer;for(cssFile in WebInspector.View._cssFileToVisibleViewCount){if(WebInspector.View._cssFileToVisibleViewCount.hasOwnProperty(cssFile)&&!WebInspector.View._cssFileToVisibleViewCount[cssFile])
-WebInspector.View._cssFileToStyleElement[cssFile].disabled=true;}}
-if(scheduleUnload){if(WebInspector.View._cssUnloadTimer)
-clearTimeout(WebInspector.View._cssUnloadTimer);WebInspector.View._cssUnloadTimer=setTimeout(doUnloadCSS,WebInspector.View._cssUnloadTimeout)}},printViewHierarchy:function()
-{var lines=[];this._collectViewHierarchy("",lines);console.log(lines.join("\n"));},_collectViewHierarchy:function(prefix,lines)
-{lines.push(prefix+"["+this.element.className+"]"+(this._children.length?" {":""));for(var i=0;i<this._children.length;++i)
-this._children[i]._collectViewHierarchy(prefix+"    ",lines);if(this._children.length)
-lines.push(prefix+"}");},defaultFocusedElement:function()
-{return this._defaultFocusedElement||this.element;},setDefaultFocusedElement:function(element)
-{this._defaultFocusedElement=element;},focus:function()
-{var element=this.defaultFocusedElement();if(!element||element.isAncestor(document.activeElement))
-return;WebInspector.setCurrentFocusElement(element);},measurePreferredSize:function()
-{this._loadCSSIfNeeded();WebInspector.View._originalAppendChild.call(document.body,this.element);this.element.positionAt(0,0);var result=new Size(this.element.offsetWidth,this.element.offsetHeight);this.element.positionAt(undefined,undefined);WebInspector.View._originalRemoveChild.call(document.body,this.element);this._disableCSSIfNeeded();return result;},__proto__:WebInspector.Object.prototype}
-WebInspector.View._originalAppendChild=Element.prototype.appendChild;WebInspector.View._originalInsertBefore=Element.prototype.insertBefore;WebInspector.View._originalRemoveChild=Element.prototype.removeChild;WebInspector.View._originalRemoveChildren=Element.prototype.removeChildren;WebInspector.View._incrementViewCounter=function(parentElement,childElement)
-{var count=(childElement.__viewCounter||0)+(childElement.__view?1:0);if(!count)
-return;while(parentElement){parentElement.__viewCounter=(parentElement.__viewCounter||0)+count;parentElement=parentElement.parentElement;}}
-WebInspector.View._decrementViewCounter=function(parentElement,childElement)
-{var count=(childElement.__viewCounter||0)+(childElement.__view?1:0);if(!count)
-return;while(parentElement){parentElement.__viewCounter-=count;parentElement=parentElement.parentElement;}}
-WebInspector.View._assert=function(condition,message)
-{if(!condition){console.trace();throw new Error(message);}}
-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)
-{WebInspector.View._assert(!child.__view,"Attempt to add view via regular DOM operation.");return WebInspector.View._originalInsertBefore.call(this,child,anchor);}
-Element.prototype.removeChild=function(child)
-{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,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(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()
-{WebInspector._unregisterMouseOutWhileDragging();WebInspector._elementDraggingGlassPane=new WebInspector.GlassPane();}
-WebInspector._unregisterMouseOutWhileDragging=function()
-{if(!WebInspector._mouseOutWhileDraggingTargetDocument)
-return;WebInspector._mouseOutWhileDraggingTargetDocument.removeEventListener("mouseout",WebInspector._mouseOutWhileDragging,true);delete WebInspector._mouseOutWhileDraggingTargetDocument;}
-WebInspector._elementDragMove=function(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));}
-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()
-{delete WebInspector._glassPane;if(WebInspector.HelpScreen.isVisible())
-WebInspector.HelpScreen.focus();else
-WebInspector.inspectorView.focus();this.element.remove();}}
-WebInspector.animateStyle=function(animations,duration,callback)
-{var startTime=new Date().getTime();var hasCompleted=false;const animationsLength=animations.length;const propertyUnit={opacity:""};const defaultUnit="px";for(var i=0;i<animationsLength;++i){var animation=animations[i];var element=null,start=null,end=null,key=null;for(key in animation){if(key==="element")
-element=animation[key];else if(key==="start")
-start=animation[key];else if(key==="end")
-end=animation[key];}
-if(!element||!end)
-continue;if(!start){var computedStyle=element.ownerDocument.defaultView.getComputedStyle(element);start={};for(key in end)
-start[key]=parseInt(computedStyle.getPropertyValue(key),10);animation.start=start;}else
-for(key in start)
-element.style.setProperty(key,start[key]+(key in propertyUnit?propertyUnit[key]:defaultUnit));}
-function animateLoop()
-{if(hasCompleted)
-return;var complete=new Date().getTime()-startTime;for(var i=0;i<animationsLength;++i){var animation=animations[i];var element=animation.element;var start=animation.start;var end=animation.end;if(!element||!end)
-continue;var style=element.style;for(key in end){var endValue=end[key];if(complete<duration){var startValue=start[key];var newValue=startValue+(endValue-startValue)*complete/duration;style.setProperty(key,newValue+(key in propertyUnit?propertyUnit[key]:defaultUnit));}else
-style.setProperty(key,endValue+(key in propertyUnit?propertyUnit[key]:defaultUnit));}}
-if(complete>=duration)
-hasCompleted=true;if(callback)
-callback(hasCompleted);if(!hasCompleted)
-window.requestAnimationFrame(animateLoop);}
-function forceComplete()
-{if(hasCompleted)
-return;duration=0;animateLoop();}
-window.requestAnimationFrame(animateLoop);return{forceComplete:forceComplete};}
-WebInspector.isBeingEdited=function(element)
-{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.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
-this.context=context;this.pasteHandler;this.multiline;this.customFinishHandler;}
-WebInspector.EditingConfig.prototype={setPasteHandler:function(pasteHandler)
-{this.pasteHandler=pasteHandler;},setMultilineOptions:function(initialValue,mode,theme,lineWrapping,smartIndent)
-{this.multiline=true;this.initialValue=initialValue;this.mode=mode;this.theme=theme;this.lineWrapping=lineWrapping;this.smartIndent=smartIndent;},setCustomFinishHandler:function(customFinishHandler)
-{this.customFinishHandler=customFinishHandler;}}
-WebInspector.CSSNumberRegex=/^(-?(?:\d+(?:\.\d+)?|\.\d+))$/;WebInspector.StyleValueDelimiters=" \xA0\t\n\"':;,/()";WebInspector._valueModificationDirection=function(event)
-{var direction=null;if(event.type==="mousewheel"){if(event.wheelDeltaY>0)
-direction="Up";else if(event.wheelDeltaY<0)
-direction="Down";}else{if(event.keyIdentifier==="Up"||event.keyIdentifier==="PageUp")
-direction="Up";else if(event.keyIdentifier==="Down"||event.keyIdentifier==="PageDown")
-direction="Down";}
-return direction;}
-WebInspector._modifiedHexValue=function(hexString,event)
-{var direction=WebInspector._valueModificationDirection(event);if(!direction)
-return hexString;var number=parseInt(hexString,16);if(isNaN(number)||!isFinite(number))
-return hexString;var maxValue=Math.pow(16,hexString.length)-1;var arrowKeyOrMouseWheelEvent=(event.keyIdentifier==="Up"||event.keyIdentifier==="Down"||event.type==="mousewheel");var delta;if(arrowKeyOrMouseWheelEvent)
-delta=(direction==="Up")?1:-1;else
-delta=(event.keyIdentifier==="PageUp")?16:-16;if(event.shiftKey)
-delta*=16;var result=number+delta;if(result<0)
-result=0;else if(result>maxValue)
-return hexString;var resultString=result.toString(16).toUpperCase();for(var i=0,lengthDelta=hexString.length-resultString.length;i<lengthDelta;++i)
-resultString="0"+resultString;return resultString;}
-WebInspector._modifiedFloatNumber=function(number,event)
-{var direction=WebInspector._valueModificationDirection(event);if(!direction)
-return number;var arrowKeyOrMouseWheelEvent=(event.keyIdentifier==="Up"||event.keyIdentifier==="Down"||event.type==="mousewheel");var changeAmount=1;if(event.shiftKey&&!arrowKeyOrMouseWheelEvent)
-changeAmount=100;else if(event.shiftKey||!arrowKeyOrMouseWheelEvent)
-changeAmount=10;else if(event.altKey)
-changeAmount=0.1;if(direction==="Down")
-changeAmount*=-1;var result=Number((number+changeAmount).toFixed(6));if(!String(result).match(WebInspector.CSSNumberRegex))
-return null;return result;}
-WebInspector.handleElementValueModifications=function(event,element,finishHandler,suggestionHandler,customNumberHandler)
-{var arrowKeyOrMouseWheelEvent=(event.keyIdentifier==="Up"||event.keyIdentifier==="Down"||event.type==="mousewheel");var pageKeyPressed=(event.keyIdentifier==="PageUp"||event.keyIdentifier==="PageDown");if(!arrowKeyOrMouseWheelEvent&&!pageKeyPressed)
-return false;var selection=window.getSelection();if(!selection.rangeCount)
-return false;var selectionRange=selection.getRangeAt(0);if(!selectionRange.commonAncestorContainer.isSelfOrDescendant(element))
-return false;var originalValue=element.textContent;var wordRange=selectionRange.startContainer.rangeOfWord(selectionRange.startOffset,WebInspector.StyleValueDelimiters,element);var wordString=wordRange.toString();if(suggestionHandler&&suggestionHandler(wordString))
-return false;var replacementString;var prefix,suffix,number;var matches;matches=/(.*#)([\da-fA-F]+)(.*)/.exec(wordString);if(matches&&matches.length){prefix=matches[1];suffix=matches[3];number=WebInspector._modifiedHexValue(matches[2],event);if(customNumberHandler)
-number=customNumberHandler(number);replacementString=prefix+number+suffix;}else{matches=/(.*?)(-?(?:\d+(?:\.\d+)?|\.\d+))(.*)/.exec(wordString);if(matches&&matches.length){prefix=matches[1];suffix=matches[3];number=WebInspector._modifiedFloatNumber(parseFloat(matches[2]),event);if(number===null)
-return false;if(customNumberHandler)
-number=customNumberHandler(number);replacementString=prefix+number+suffix;}}
-if(replacementString){var replacementTextNode=document.createTextNode(replacementString);wordRange.deleteContents();wordRange.insertNode(replacementTextNode);var finalSelectionRange=document.createRange();finalSelectionRange.setStart(replacementTextNode,0);finalSelectionRange.setEnd(replacementTextNode,replacementString.length);selection.removeAllRanges();selection.addRange(finalSelectionRange);event.handled=true;event.preventDefault();if(finishHandler)
-finishHandler(originalValue,replacementString);return true;}
-return false;}
-WebInspector.startEditing=function(element,config)
-{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().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();}
-function blurEventListener(e){if(!isMultiline||!e||!e.relatedTarget||!e.relatedTarget.isSelfOrDescendant(element))
-editingCommitted.call(element);}
-function getContent(element){if(isMultiline)
-return codeMirror.getValue();if(element.tagName==="INPUT"&&element.type==="text")
-return element.value;return element.textContent;}
-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.classList.remove("editing");if(typeof oldTabIndex!=="number")
-element.removeAttribute("tabIndex");else
-this.tabIndex=oldTabIndex;this.scrollTop=0;this.scrollLeft=0;}
-function editingCancelled()
-{if(isMultiline)
-codeMirror.setValue(oldText);else{if(this.tagName==="INPUT"&&this.type==="text")
-this.value=oldText;else
-this.textContent=oldText;}
-cleanUpAfterEditing.call(this);cancelledCallback(this,context);}
-function editingCommitted()
-{cleanUpAfterEditing.call(this);committedCallback(this,getContent(this),oldText,context,moveDirection);}
-function defaultFinishHandler(event)
-{var isMetaOrCtrl=WebInspector.isMac()?event.metaKey&&!event.shiftKey&&!event.ctrlKey&&!event.altKey:event.ctrlKey&&!event.shiftKey&&!event.metaKey&&!event.altKey;if(isEnterKey(event)&&(event.isMetaOrCtrlForTest||!isMultiline||isMetaOrCtrl))
-return"commit";else if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code||event.keyIdentifier==="U+001B")
-return"cancel";else if(!isMultiline&&event.keyIdentifier==="U+0009")
-return"move-"+(event.shiftKey?"backward":"forward");}
-function handleEditingResult(result,event)
-{if(result==="commit"){editingCommitted.call(element);event.consume(true);}else if(result==="cancel"){editingCancelled.call(element);event.consume(true);}else if(result&&result.startsWith("move-")){moveDirection=result.substring(5);if(event.keyIdentifier!=="U+0009")
-blurEventListener();}}
-function pasteEventListener(event)
-{var result=pasteCallback(event);handleEditingResult(result,event);}
-function keyDownEventListener(event)
-{var handler=config.customFinishHandler||defaultFinishHandler;var result=handler(event);handleEditingResult(result,event);}
-element.addEventListener("blur",blurEventListener,isMultiline);element.addEventListener("keydown",keyDownEventListener,true);if(pasteCallback)
-element.addEventListener("paste",pasteEventListener,true);return{cancel:editingCancelled.bind(element),commit:editingCommitted.bind(element),codeMirror:codeMirror,setWidth:setWidth};}
-Number.secondsToString=function(seconds,higherResolution)
-{if(!isFinite(seconds))
-return"-";if(seconds===0)
-return"0";var ms=seconds*1000;if(higherResolution&&ms<1000)
-return WebInspector.UIString("%.3f\u2009ms",ms);else if(ms<1000)
-return WebInspector.UIString("%.0f\u2009ms",ms);if(seconds<60)
-return WebInspector.UIString("%.2f\u2009s",seconds);var minutes=seconds/60;if(minutes<60)
-return WebInspector.UIString("%.1f\u2009min",minutes);var hours=minutes/60;if(hours<24)
-return WebInspector.UIString("%.1f\u2009hrs",hours);var days=hours/24;return WebInspector.UIString("%.1f\u2009days",days);}
-Number.bytesToString=function(bytes)
-{if(bytes<1024)
-return WebInspector.UIString("%.0f\u2009B",bytes);var kilobytes=bytes/1024;if(kilobytes<100)
-return WebInspector.UIString("%.1f\u2009KB",kilobytes);if(kilobytes<1024)
-return WebInspector.UIString("%.0f\u2009KB",kilobytes);var megabytes=kilobytes/1024;if(megabytes<100)
-return WebInspector.UIString("%.1f\u2009MB",megabytes);else
-return WebInspector.UIString("%.0f\u2009MB",megabytes);}
-Number.withThousandsSeparator=function(num)
-{var str=num+"";var re=/(\d+)(\d{3})/;while(str.match(re))
-str=str.replace(re,"$1\u2009$2");return str;}
-WebInspector.useLowerCaseMenuTitles=function()
-{return WebInspector.platform()==="windows";}
-WebInspector.formatLocalized=function(format,substitutions,formatters,initialValue,append)
-{return String.format(WebInspector.UIString(format),substitutions,formatters,initialValue,append);}
-WebInspector.openLinkExternallyLabel=function()
-{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.installPortStyles=function()
-{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.classList.remove("inactive");}
-WebInspector._windowBlurred=function(event)
-{if(event.target.document.nodeType===Node.DOCUMENT_NODE)
-document.body.classList.add("inactive");}
-WebInspector.previousFocusElement=function()
-{return WebInspector._previousFocusElement;}
-WebInspector.currentFocusElement=function()
-{return WebInspector._currentFocusElement;}
-WebInspector._focusChanged=function(event)
-{WebInspector.setCurrentFocusElement(event.target);}
-WebInspector._textInputTypes=["text","search","tel","url","email","password"].keySet();WebInspector._isTextEditingElement=function(element)
-{if(element instanceof HTMLInputElement)
-return element.type in WebInspector._textInputTypes;if(element instanceof HTMLTextAreaElement)
-return true;return false;}
-WebInspector.setCurrentFocusElement=function(x)
-{if(WebInspector._glassPane&&x&&!WebInspector._glassPane.element.isAncestor(x))
-return;if(WebInspector._currentFocusElement!==x)
-WebInspector._previousFocusElement=WebInspector._currentFocusElement;WebInspector._currentFocusElement=x;if(WebInspector._currentFocusElement){WebInspector._currentFocusElement.focus();var selection=window.getSelection();if(!WebInspector._isTextEditingElement(WebInspector._currentFocusElement)&&selection.isCollapsed&&!WebInspector._currentFocusElement.isInsertionCaretInside()){var selectionRange=WebInspector._currentFocusElement.ownerDocument.createRange();selectionRange.setStart(WebInspector._currentFocusElement,0);selectionRange.setEnd(WebInspector._currentFocusElement,0);selection.removeAllRanges();selection.addRange(selectionRange);}}else if(WebInspector._previousFocusElement)
-WebInspector._previousFocusElement.blur();}
-WebInspector.restoreFocusFromElement=function(element)
-{if(element&&element.isSelfOrAncestor(WebInspector.currentFocusElement()))
-WebInspector.setCurrentFocusElement(WebInspector.previousFocusElement());}
-WebInspector.setToolbarColors=function(backgroundColor,color)
-{if(!WebInspector._themeStyleElement){WebInspector._themeStyleElement=document.createElement("style");document.head.appendChild(WebInspector._themeStyleElement);}
-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,[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)
-{changes=changes||[];var highlightNodes=[];var lineText=element.textContent;var ownerDocument=element.ownerDocument;var textNodeSnapshot=ownerDocument.evaluate(".//text()",element,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);var snapshotLength=textNodeSnapshot.snapshotLength;if(snapshotLength===0)
-return highlightNodes;var nodeRanges=[];var rangeEndOffset=0;for(var i=0;i<snapshotLength;++i){var range={};range.offset=rangeEndOffset;range.length=textNodeSnapshot.snapshotItem(i).textContent.length;rangeEndOffset=range.offset+range.length;nodeRanges.push(range);}
-var startIndex=0;for(var i=0;i<resultRanges.length;++i){var startOffset=resultRanges[i].offset;var endOffset=startOffset+resultRanges[i].length;while(startIndex<snapshotLength&&nodeRanges[startIndex].offset+nodeRanges[startIndex].length<=startOffset)
-startIndex++;var endIndex=startIndex;while(endIndex<snapshotLength&&nodeRanges[endIndex].offset+nodeRanges[endIndex].length<endOffset)
-endIndex++;if(endIndex===snapshotLength)
-break;var highlightNode=ownerDocument.createElement("span");highlightNode.className=styleClass;highlightNode.textContent=lineText.substring(startOffset,endOffset);var lastTextNode=textNodeSnapshot.snapshotItem(endIndex);var lastText=lastTextNode.textContent;lastTextNode.textContent=lastText.substring(endOffset-nodeRanges[endIndex].offset);changes.push({node:lastTextNode,type:"changed",oldText:lastText,newText:lastTextNode.textContent});if(startIndex===endIndex){lastTextNode.parentElement.insertBefore(highlightNode,lastTextNode);changes.push({node:highlightNode,type:"added",nextSibling:lastTextNode,parent:lastTextNode.parentElement});highlightNodes.push(highlightNode);var prefixNode=ownerDocument.createTextNode(lastText.substring(0,startOffset-nodeRanges[startIndex].offset));lastTextNode.parentElement.insertBefore(prefixNode,highlightNode);changes.push({node:prefixNode,type:"added",nextSibling:highlightNode,parent:lastTextNode.parentElement});}else{var firstTextNode=textNodeSnapshot.snapshotItem(startIndex);var firstText=firstTextNode.textContent;var anchorElement=firstTextNode.nextSibling;firstTextNode.parentElement.insertBefore(highlightNode,anchorElement);changes.push({node:highlightNode,type:"added",nextSibling:anchorElement,parent:firstTextNode.parentElement});highlightNodes.push(highlightNode);firstTextNode.textContent=firstText.substring(0,startOffset-nodeRanges[startIndex].offset);changes.push({node:firstTextNode,type:"changed",oldText:firstText,newText:firstTextNode.textContent});for(var j=startIndex+1;j<endIndex;j++){var textNode=textNodeSnapshot.snapshotItem(j);var text=textNode.textContent;textNode.textContent="";changes.push({node:textNode,type:"changed",oldText:text,newText:textNode.textContent});}}
-startIndex=endIndex;nodeRanges[startIndex].offset=endOffset;nodeRanges[startIndex].length=lastTextNode.textContent.length;}
-return highlightNodes;}
-WebInspector.applyDomChanges=function(domChanges)
-{for(var i=0,size=domChanges.length;i<size;++i){var entry=domChanges[i];switch(entry.type){case"added":entry.parent.insertBefore(entry.node,entry.nextSibling);break;case"changed":entry.node.textContent=entry.newText;break;}}}
-WebInspector.revertDomChanges=function(domChanges)
-{for(var i=domChanges.length-1;i>=0;--i){var entry=domChanges[i];switch(entry.type){case"added":entry.node.remove();break;case"changed":entry.node.textContent=entry.oldText;break;}}}
-WebInspector._coalescingLevel=0;WebInspector.startBatchUpdate=function()
-{if(!WebInspector._coalescingLevel)
-WebInspector._postUpdateHandlers=new Map();WebInspector._coalescingLevel++;}
-WebInspector.endBatchUpdate=function()
-{if(--WebInspector._coalescingLevel)
-return;var handlers=WebInspector._postUpdateHandlers;delete WebInspector._postUpdateHandlers;var keys=handlers.keys();for(var i=0;i<keys.length;++i){var object=keys[i];var methods=handlers.get(object).keys();for(var j=0;j<methods.length;++j)
-methods[j].call(object);}}
-WebInspector.invokeOnceAfterBatchUpdate=function(object,method)
-{if(!WebInspector._coalescingLevel){method.call(object);return;}
-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.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)
-{WebInspector.View.call(this);this.markAsRoot();this.registerRequiredCSS("helpScreen.css");this.element.className="help-window-outer";this.element.addEventListener("keydown",this._onKeyDown.bind(this),false);this.element.tabIndex=0;if(title){var mainWindow=this.element.createChild("div","help-window-main");var captionWindow=mainWindow.createChild("div","help-window-caption");captionWindow.appendChild(this._createCloseButton());this.contentElement=mainWindow.createChild("div","help-content");captionWindow.createChild("h1","help-window-title").textContent=title;}}
-WebInspector.HelpScreen._visibleScreen=null;WebInspector.HelpScreen.isVisible=function()
-{return!!WebInspector.HelpScreen._visibleScreen;}
-WebInspector.HelpScreen.focus=function()
-{WebInspector.HelpScreen._visibleScreen.element.focus();}
-WebInspector.HelpScreen.prototype={_createCloseButton:function()
-{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(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.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;}
-WebInspector.InspectorFrontendHostStub.prototype={getSelectionBackgroundColor:function()
-{return"#6e86ff";},getSelectionForegroundColor:function()
-{return"#ffffff";},platform:function()
-{var match=navigator.userAgent.match(/Windows NT/);if(match)
-return"windows";match=navigator.userAgent.match(/Mac OS X/);if(match)
-return"mac";return"linux";},port:function()
-{return"unknown";},bringToFront:function()
-{this._windowVisible=true;},closeWindow:function()
-{this._windowVisible=false;},requestSetDockSide:function(side)
-{},setContentsInsets:function(top,left,bottom,right)
-{},moveWindowBy:function(x,y)
-{},setInjectedScriptForOrigin:function(origin,script)
-{},loaded:function()
-{},localizedStringsURL:function()
-{},inspectedURLChanged:function(url)
-{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);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)
-{},recordSettingChanged:function(settingCode)
-{},supportsFileSystems:function()
-{return false;},requestFileSystems:function()
-{},addFileSystem:function()
-{},removeFileSystem:function(fileSystemPath)
-{},isolatedFileSystem:function(fileSystemId,registeredName)
-{return null;},upgradeDraggedFileSystemPermissions:function(domFileSystem)
-{},indexPath:function(requestId,fileSystemPath)
-{},stopIndexing:function(requestId)
-{},searchInPath:function(requestId,fileSystemPath,query)
-{},setZoomFactor:function(zoom)
-{},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);}
-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);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)
-{},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)
-this.element.title=tooltip;}
-WebInspector.Checkbox.prototype={set checked(checked)
-{this._inputElement.checked=checked;},get checked()
-{return this._inputElement.checked;},addEventListener:function(listener)
-{function listenerWrapper(event)
-{if(listener)
-listener(event);event.consume();return true;}
-this._inputElement.addEventListener("click",listenerWrapper,false);this.element.addEventListener("click",listenerWrapper,false);}}
-WebInspector.ContextMenuItem=function(topLevelMenu,type,label,disabled,checked)
-{this._type=type;this._label=label;this._disabled=disabled;this._checked=checked;this._contextMenu=topLevelMenu;if(type==="item"||type==="checkbox")
-this._id=topLevelMenu.nextId();}
-WebInspector.ContextMenuItem.prototype={id:function()
-{return this._id;},type:function()
-{return this._type;},isEnabled:function()
-{return!this._disabled;},setEnabled:function(enabled)
-{this._disabled=!enabled;},_buildDescriptor:function()
-{switch(this._type){case"item":return{type:"item",id:this._id,label:this._label,enabled:!this._disabled};case"separator":return{type:"separator"};case"checkbox":return{type:"checkbox",id:this._id,label:this._label,checked:!!this._checked,enabled:!this._disabled};}}}
-WebInspector.ContextSubMenuItem=function(topLevelMenu,label,disabled)
-{WebInspector.ContextMenuItem.call(this,topLevelMenu,"subMenu",label,disabled);this._items=[];}
-WebInspector.ContextSubMenuItem.prototype={appendItem:function(label,handler,disabled)
-{var item=new WebInspector.ContextMenuItem(this._contextMenu,"item",label,disabled);this._pushItem(item);this._contextMenu._setHandler(item.id(),handler);return item;},appendSubMenuItem:function(label,disabled)
-{var item=new WebInspector.ContextSubMenuItem(this._contextMenu,label,disabled);this._pushItem(item);return item;},appendCheckboxItem:function(label,handler,checked,disabled)
-{var item=new WebInspector.ContextMenuItem(this._contextMenu,"checkbox",label,disabled,checked);this._pushItem(item);this._contextMenu._setHandler(item.id(),handler);return item;},appendSeparator:function()
-{if(this._items.length)
-this._pendingSeparator=true;},_pushItem:function(item)
-{if(this._pendingSeparator){this._items.push(new WebInspector.ContextMenuItem(this._contextMenu,"separator"));delete this._pendingSeparator;}
-this._items.push(item);},isEmpty:function()
-{return!this._items.length;},_buildDescriptor:function()
-{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;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)
-{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.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)
-{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;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)
-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)
-{if(item.type==="separator")
-return this._createSeparator();if(item.type==="subMenu")
-return this._createSubMenu(item);var menuItemElement=document.createElement("div");menuItemElement.className="soft-context-menu-item";var checkMarkElement=document.createElement("span");checkMarkElement.textContent="\u2713 ";checkMarkElement.className="soft-context-menu-item-checkmark";if(!item.checked)
-checkMarkElement.style.opacity="0";menuItemElement.appendChild(checkMarkElement);menuItemElement.appendChild(document.createTextNode(item.label));menuItemElement.addEventListener("mousedown",this._menuItemMouseDown.bind(this),false);menuItemElement.addEventListener("mouseup",this._menuItemMouseUp.bind(this),false);menuItemElement.addEventListener("mouseover",this._menuItemMouseOver.bind(this),false);menuItemElement.addEventListener("mouseout",this._menuItemMouseOut.bind(this),false);menuItemElement._actionId=item.id;return menuItemElement;},_createSubMenu:function(item)
-{var menuItemElement=document.createElement("div");menuItemElement.className="soft-context-menu-item";menuItemElement._subItems=item.subItems;var checkMarkElement=document.createElement("span");checkMarkElement.textContent="\u2713 ";checkMarkElement.className="soft-context-menu-item-checkmark";checkMarkElement.style.opacity="0";menuItemElement.appendChild(checkMarkElement);var subMenuArrowElement=document.createElement("span");subMenuArrowElement.textContent="\u25B6";subMenuArrowElement.className="soft-context-menu-item-submenu-arrow";menuItemElement.appendChild(document.createTextNode(item.label));menuItemElement.appendChild(subMenuArrowElement);menuItemElement.addEventListener("mousedown",this._menuItemMouseDown.bind(this),false);menuItemElement.addEventListener("mouseup",this._menuItemMouseUp.bind(this),false);menuItemElement.addEventListener("mouseover",this._menuItemMouseOver.bind(this),false);menuItemElement.addEventListener("mouseout",this._menuItemMouseOut.bind(this),false);return menuItemElement;},_createSeparator:function()
-{var separatorElement=document.createElement("div");separatorElement.className="soft-context-menu-separator";separatorElement._isSeparator=true;separatorElement.addEventListener("mouseover",this._hideSubMenu.bind(this),false);separatorElement.createChild("div","separator-line");return separatorElement;},_menuItemMouseDown:function(event)
-{event.consume(true);},_menuItemMouseUp:function(event)
-{this._triggerAction(event.target,event);event.consume();},_focus:function()
-{this._contextMenuElement.focus();},_triggerAction:function(menuItemElement,event)
-{if(!menuItemElement._subItems){this._discardMenu(true,event);if(typeof menuItemElement._actionId!=="undefined"){WebInspector.contextMenuItemSelected(menuItemElement._actionId);delete menuItemElement._actionId;}
-return;}
-this._showSubMenu(menuItemElement,event);event.consume();},_showSubMenu:function(menuItemElement,event)
-{if(menuItemElement._subMenuTimer){clearTimeout(menuItemElement._subMenuTimer);delete menuItemElement._subMenuTimer;}
-if(this._subMenu)
-return;this._subMenu=new WebInspector.SoftContextMenu(menuItemElement._subItems,this);this._subMenu.show(this._buildMouseEventForSubMenu(menuItemElement));},_buildMouseEventForSubMenu:function(subMenuItemElement)
-{var subMenuOffset={x:subMenuItemElement.offsetWidth-3,y:subMenuItemElement.offsetTop-1};var targetX=this._x+subMenuOffset.x;var targetY=this._y+subMenuOffset.y;var targetPageX=parseInt(this._contextMenuElement.style.left,10)+subMenuOffset.x;var targetPageY=parseInt(this._contextMenuElement.style.top,10)+subMenuOffset.y;return{x:targetX,y:targetY,pageX:targetPageX,pageY:targetPageY,consume:function(){}};},_hideSubMenu:function()
-{if(!this._subMenu)
-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.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.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)
-this._highlightMenuItem(menuItemElement);},_highlightNext:function()
-{var menuItemElement=this._highlightedMenuItemElement?this._highlightedMenuItemElement.nextSibling:this._contextMenuElement.firstChild;while(menuItemElement&&menuItemElement._isSeparator)
-menuItemElement=menuItemElement.nextSibling;if(menuItemElement)
-this._highlightMenuItem(menuItemElement);},_menuKeyDown:function(event)
-{switch(event.keyIdentifier){case"Up":this._highlightPrevious();break;case"Down":this._highlightNext();break;case"Left":if(this._parentMenu){this._highlightMenuItem(null);this._parentMenu._focus();}
-break;case"Right":if(!this._highlightedMenuItemElement)
-break;if(this._highlightedMenuItemElement._subItems){this._showSubMenu(this._highlightedMenuItemElement,this._buildMouseEventForSubMenu(this._highlightedMenuItemElement));this._subMenu._focus();this._subMenu._highlightNext();}
-break;case"U+001B":this._discardMenu(true,event);break;case"Enter":if(!isEnterKey(event))
-break;case"U+0020":if(this._highlightedMenuItemElement)
-this._triggerAction(this._highlightedMenuItemElement,event);break;}
-event.consume(true);},_glassPaneMouseUp:function(event)
-{if(event.x===this._x&&event.y===this._y&&new Date().getTime()-this._time<300)
-return;this._discardMenu(true,event);event.consume();},_discardMenu:function(closeParentMenus,event)
-{if(this._subMenu&&!closeParentMenus)
-return;if(this._glassPaneElement){var glassPane=this._glassPaneElement;delete this._glassPaneElement;document.body.removeChild(glassPane);if(this._parentMenu){delete this._parentMenu._subMenu;if(closeParentMenus)
-this._parentMenu._discardMenu(closeParentMenus,event);}
-if(event)
-event.consume(true);}else if(this._parentMenu&&this._contextMenuElement.parentElement){this._discardSubMenus();if(closeParentMenus)
-this._parentMenu._discardMenu(closeParentMenus,event);if(event)
-event.consume(true);}},_discardSubMenus:function()
-{if(this._subMenu)
-this._subMenu._discardSubMenus();this._contextMenuElement.remove();if(this._parentMenu)
-delete this._parentMenu._subMenu;}}
-if(!InspectorFrontendHost.showContextMenu){InspectorFrontendHost.showContextMenu=function(event,items)
-{new WebInspector.SoftContextMenu(items).show(event);}}
-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"}},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);}
-WebInspector.KeyboardShortcut.makeKeyFromEvent=function(keyboardEvent)
-{var modifiers=WebInspector.KeyboardShortcut.Modifiers.None;if(keyboardEvent.shiftKey)
-modifiers|=WebInspector.KeyboardShortcut.Modifiers.Shift;if(keyboardEvent.ctrlKey)
-modifiers|=WebInspector.KeyboardShortcut.Modifiers.Ctrl;if(keyboardEvent.altKey)
-modifiers|=WebInspector.KeyboardShortcut.Modifiers.Alt;if(keyboardEvent.metaKey)
-modifiers|=WebInspector.KeyboardShortcut.Modifiers.Meta;return WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers(keyboardEvent.keyCode,modifiers);}
-WebInspector.KeyboardShortcut.eventHasCtrlOrMeta=function(event)
-{return WebInspector.isMac()?event.metaKey&&!event.ctrlKey:event.ctrlKey&&!event.metaKey;}
-WebInspector.KeyboardShortcut.hasNoModifiers=function(event)
-{return!event.ctrlKey&&!event.shiftKey&&!event.altKey&&!event.metaKey;}
-WebInspector.KeyboardShortcut.Descriptor;WebInspector.KeyboardShortcut.makeDescriptor=function(key,modifiers)
-{return{key:WebInspector.KeyboardShortcut.makeKey(typeof key==="string"?key:key.code,modifiers),name:WebInspector.KeyboardShortcut.shortcutToString(key,modifiers)};}
-WebInspector.KeyboardShortcut.shortcutToString=function(key,modifiers)
-{return WebInspector.KeyboardShortcut._modifiersToString(modifiers)+WebInspector.KeyboardShortcut._keyName(key);}
-WebInspector.KeyboardShortcut._keyName=function(key)
-{if(typeof key==="string")
-return key.toUpperCase();if(typeof key.name==="string")
-return key.name;return key.name[WebInspector.platform()]||key.name.other||'';}
-WebInspector.KeyboardShortcut._makeKeyFromCodeAndModifiers=function(keyCode,modifiers)
-{return(keyCode&255)|(modifiers<<8);};WebInspector.KeyboardShortcut._modifiersToString=function(modifiers)
-{const cmdKey="\u2318";const optKey="\u2325";const shiftKey="\u21e7";const ctrlKey="\u2303";var isMac=WebInspector.isMac();var res="";if(modifiers&WebInspector.KeyboardShortcut.Modifiers.Ctrl)
-res+=isMac?ctrlKey:"Ctrl + ";if(modifiers&WebInspector.KeyboardShortcut.Modifiers.Alt)
-res+=isMac?optKey:"Alt + ";if(modifiers&WebInspector.KeyboardShortcut.Modifiers.Shift)
-res+=isMac?shiftKey:"Shift + ";if(modifiers&WebInspector.KeyboardShortcut.Modifiers.Meta)
-res+=isMac?cmdKey:"Win + ";return res;};WebInspector.KeyboardShortcut.SelectAll=WebInspector.KeyboardShortcut.makeKey("a",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);WebInspector.SuggestBoxDelegate=function()
-{}
-WebInspector.SuggestBoxDelegate.prototype={applySuggestion:function(suggestion,isIntermediateSuggestion){},acceptSuggestion:function(){},}
-WebInspector.SuggestBox=function(suggestBoxDelegate,anchorElement,className,maxItemsHeight)
-{this._suggestBoxDelegate=suggestBoxDelegate;this._anchorElement=anchorElement;this._length=0;this._selectedIndex=-1;this._selectedElement=null;this._maxItemsHeight=maxItemsHeight;this._boundOnScroll=this._onScrollOrResize.bind(this,true);this._boundOnResize=this._onScrollOrResize.bind(this,false);window.addEventListener("scroll",this._boundOnScroll,true);window.addEventListener("resize",this._boundOnResize,true);this._bodyElement=anchorElement.ownerDocument.body;this._element=anchorElement.ownerDocument.createElement("div");this._element.className="suggest-box "+(className||"");this._element.addEventListener("mousedown",this._onBoxMouseDown.bind(this),true);this.containerElement=this._element.createChild("div","container");this.contentElement=this.containerElement.createChild("div","content");}
-WebInspector.SuggestBox.prototype={visible:function()
-{return!!this._element.parentElement;},_onScrollOrResize:function(isScroll,event)
-{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);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;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)
-return false;this._suggestBoxDelegate.applySuggestion(suggestion,isIntermediateSuggestion);return true;},acceptSuggestion:function(text)
-{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;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)
-{var element=document.createElement("div");element.className="suggest-box-content-item source-code";element.tabIndex=-1;if(prefix&&prefix.length&&!text.indexOf(prefix)){var prefixElement=element.createChild("span","prefix");prefixElement.textContent=prefix;var suffixElement=element.createChild("span","suffix");suffixElement.textContent=text.substring(prefix.length);}else{var suffixElement=element.createChild("span","suffix");suffixElement.textContent=text;}
-element.addEventListener("mousedown",this._onItemMouseDown.bind(this,text),false);return element;},_updateItems:function(items,selectedIndex,userEnteredText)
-{this._length=items.length;this.contentElement.removeChildren();for(var i=0;i<items.length;++i){var item=items[i];var currentItemElement=this._createItemElement(userEnteredText,item);this.contentElement.appendChild(currentItemElement);}
-this._selectedElement=null;if(typeof selectedIndex==="number")
-this._selectItem(selectedIndex);},_selectItem:function(index)
-{if(this._selectedElement)
-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()
-{if(!this.contentElement.firstChild)
-return;this._rowCountPerViewport=Math.floor(this.containerElement.offsetHeight/this.contentElement.firstChild.offsetHeight);},updateSuggestions:function(anchorBox,completions,selectedIndex,canShowForSingleItem,userEnteredText)
-{if(this._canShowBox(completions,canShowForSingleItem,userEnteredText)){this._updateItems(completions,selectedIndex,userEnteredText);this._updateBoxPosition(anchorBox);if(!this.visible())
-this._bodyElement.appendChild(this._element);this._rememberRowCountPerViewport();}else
-this.hide();},keyPressed:function(event)
-{switch(event.keyIdentifier){case"Up":return this.upKeyPressed();case"Down":return this.downKeyPressed();case"PageUp":return this.pageUpKeyPressed();case"PageDown":return this.pageDownKeyPressed();case"Enter":return this.enterKeyPressed();}
-return false;},upKeyPressed:function()
-{return this._selectClosest(-1,true);},downKeyPressed:function()
-{return this._selectClosest(1,true);},pageUpKeyPressed:function()
-{return this._selectClosest(-this._rowCountPerViewport,false);},pageDownKeyPressed:function()
-{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||" =:[({;,!+-*/&|^<>.";}
-WebInspector.TextPrompt.Events={ItemApplied:"text-prompt-item-applied",ItemAccepted:"text-prompt-item-accepted"};WebInspector.TextPrompt.prototype={get proxyElement()
-{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.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.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.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.classList.remove("editing");delete this._isEditing;},_removeSuggestionAids:function()
-{this.clearAutoComplete();this.hideSuggestBox();},_selectStart:function()
-{if(this._selectionTimeout)
-clearTimeout(this._selectionTimeout);this._removeSuggestionAids();function moveBackIfOutside()
-{delete this._selectionTimeout;if(!this.isCaretInsidePrompt()&&window.getSelection().isCollapsed){this.moveCaretToEndOfPrompt();this.autoCompleteSoon();}}
-this._selectionTimeout=setTimeout(moveBackIfOutside.bind(this),100);},defaultKeyHandler:function(event,force)
-{this._updateAutoComplete(force);return false;},_updateAutoComplete:function(force)
-{this.clearAutoComplete();this.autoCompleteSoon(force);},onMouseWheel:function(event)
-{},onKeyDown:function(event)
-{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(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)
-handled=this.defaultKeyHandler(event);if(handled)
-event.consume(true);return handled;},acceptAutoComplete:function()
-{var result=false;if(this.isSuggestBoxVisible())
-result=this._suggestBox.acceptSuggestion();if(!result)
-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)
-return;this._userEnteredRange.deleteContents();this._element.normalize();var userTextNode=document.createTextNode(this._userEnteredText);this._userEnteredRange.insertNode(userTextNode);var selectionRange=document.createRange();selectionRange.setStart(userTextNode,this._userEnteredText.length);selectionRange.setEnd(userTextNode,this._userEnteredText.length);var selection=window.getSelection();selection.removeAllRanges();selection.addRange(selectionRange);delete this._userEnteredRange;delete this._userEnteredText;},autoCompleteSoon:function(force)
-{var immediately=this.isSuggestBoxVisible()||force;if(!this._completeTimeout)
-this._completeTimeout=setTimeout(this.complete.bind(this,force),immediately?0:250);},complete:function(force,reverse)
-{this.clearAutoComplete(true);var selection=window.getSelection();if(!selection.rangeCount)
-return;var selectionRange=selection.getRangeAt(0);var shouldExit;if(!force&&!this.isCaretAtEndOfPrompt()&&!this.isSuggestBoxVisible())
-shouldExit=true;else if(!selection.isCollapsed)
-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));},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=(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._acceptSuggestionInternal(true);},applySuggestion:function(completionText,isIntermediateSuggestion)
-{this._applySuggestion(completionText,isIntermediateSuggestion);},_applySuggestion:function(completionText,isIntermediateSuggestion,originalPrefixRange)
-{var wordPrefixLength;if(originalPrefixRange)
-wordPrefixLength=originalPrefixRange.toString().length;else
-wordPrefixLength=this._userEnteredText?this._userEnteredText.length:0;this._userEnteredRange.deleteContents();this._element.normalize();var finalSelectionRange=document.createRange();var completionTextNode=document.createTextNode(completionText);this._userEnteredRange.insertNode(completionTextNode);if(this.autoCompleteElement){this.autoCompleteElement.remove();delete this.autoCompleteElement;}
-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()
-{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
-this.autoCompleteSoon(true);return true;},hideSuggestBox:function()
-{if(this.isSuggestBoxVisible())
-this._suggestBox.hide();},isSuggestBoxVisible:function()
-{return this._suggestBox&&this._suggestBox.visible();},isCaretInsidePrompt:function()
-{return this._element.isInsertionCaretInside();},isCaretAtEndOfPrompt:function()
-{var selection=window.getSelection();if(!selection.rangeCount||!selection.isCollapsed)
-return false;var selectionRange=selection.getRangeAt(0);var node=selectionRange.startContainer;if(!node.isSelfOrDescendant(this._element))
-return false;if(node.nodeType===Node.TEXT_NODE&&selectionRange.startOffset<node.nodeValue.length)
-return false;var foundNextText=false;while(node){if(node.nodeType===Node.TEXT_NODE&&node.nodeValue.length){if(foundNextText&&(!this.autoCompleteElement||!this.autoCompleteElement.isAncestor(node)))
-return false;foundNextText=true;}
-node=node.traverseNextNode(this._element);}
-return true;},isCaretOnFirstLine:function()
-{var selection=window.getSelection();var focusNode=selection.focusNode;if(!focusNode||focusNode.nodeType!==Node.TEXT_NODE||focusNode.parentNode!==this._element)
-return true;if(focusNode.textContent.substring(0,selection.focusOffset).indexOf("\n")!==-1)
-return false;focusNode=focusNode.previousSibling;while(focusNode){if(focusNode.nodeType!==Node.TEXT_NODE)
-return true;if(focusNode.textContent.indexOf("\n")!==-1)
-return false;focusNode=focusNode.previousSibling;}
-return true;},isCaretOnLastLine:function()
-{var selection=window.getSelection();var focusNode=selection.focusNode;if(!focusNode||focusNode.nodeType!==Node.TEXT_NODE||focusNode.parentNode!==this._element)
-return true;if(focusNode.textContent.substring(selection.focusOffset).indexOf("\n")!==-1)
-return false;focusNode=focusNode.nextSibling;while(focusNode){if(focusNode.nodeType!==Node.TEXT_NODE)
-return true;if(focusNode.textContent.indexOf("\n")!==-1)
-return false;focusNode=focusNode.nextSibling;}
-return true;},moveCaretToEndOfPrompt:function()
-{var selection=window.getSelection();var selectionRange=document.createRange();var offset=this._element.childNodes.length;selectionRange.setStart(this._element,offset);selectionRange.setEnd(this._element,offset);selection.removeAllRanges();selection.addRange(selectionRange);},tabKeyPressed:function(event)
-{this._completeCommonPrefix();return true;},__proto__:WebInspector.Object.prototype}
-WebInspector.TextPromptWithHistory=function(completions,stopCharacters)
-{WebInspector.TextPrompt.call(this,completions,stopCharacters);this._data=[];this._historyOffset=1;this._coalesceHistoryDupes=true;}
-WebInspector.TextPromptWithHistory.prototype={get historyData()
-{return this._data;},setCoalesceHistoryDupes:function(x)
-{this._coalesceHistoryDupes=x;},setHistoryData:function(data)
-{this._data=[].concat(data);this._historyOffset=1;},pushHistoryItem:function(text)
-{if(this._uncommittedIsTop){this._data.pop();delete this._uncommittedIsTop;}
-this._historyOffset=1;if(this._coalesceHistoryDupes&&text===this._currentHistoryItem())
-return;this._data.push(text);},_pushCurrentText:function()
-{if(this._uncommittedIsTop)
-this._data.pop();this._uncommittedIsTop=true;this.clearAutoComplete(true);this._data.push(this.text);},_previous:function()
-{if(this._historyOffset>this._data.length)
-return undefined;if(this._historyOffset===1)
-this._pushCurrentText();++this._historyOffset;return this._currentHistoryItem();},_next:function()
-{if(this._historyOffset===1)
-return undefined;--this._historyOffset;return this._currentHistoryItem();},_currentHistoryItem:function()
-{return this._data[this._data.length-this._historyOffset];},defaultKeyHandler:function(event,force)
-{var newText;var isPrevious;switch(event.keyIdentifier){case"Up":if(!this.isCaretOnFirstLine())
-break;newText=this._previous();isPrevious=true;break;case"Down":if(!this.isCaretOnLastLine())
-break;newText=this._next();break;case"U+0050":if(WebInspector.isMac()&&event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey){newText=this._previous();isPrevious=true;}
-break;case"U+004E":if(WebInspector.isMac()&&event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey)
-newText=this._next();break;}
-if(newText!==undefined){event.consume(true);this.text=newText;if(isPrevious){var firstNewlineIndex=this.text.indexOf("\n");if(firstNewlineIndex===-1)
-this.moveCaretToEndOfPrompt();else{var selection=window.getSelection();var selectionRange=document.createRange();selectionRange.setStart(this._element.firstChild,firstNewlineIndex);selectionRange.setEnd(this._element.firstChild,firstNewlineIndex);selection.removeAllRanges();selection.addRange(selectionRange);}}
-return true;}
-return WebInspector.TextPrompt.prototype.defaultKeyHandler.apply(this,arguments);},__proto__:WebInspector.TextPrompt.prototype}
-WebInspector.Popover=function(popoverHelper)
-{WebInspector.View.call(this);this.markAsRoot();this.element.className="popover custom-popup-vertical-scroll custom-popup-horizontal-scroll";this._popupArrowElement=document.createElement("div");this._popupArrowElement.className="arrow";this.element.appendChild(this._popupArrowElement);this._contentDiv=document.createElement("div");this._contentDiv.className="content";this.element.appendChild(this._contentDiv);this._popoverHelper=popoverHelper;}
-WebInspector.Popover.prototype={show:function(element,anchor,preferredWidth,preferredHeight,arrowDirection)
-{this._innerShow(null,element,anchor,preferredWidth,preferredHeight,arrowDirection);},showView:function(view,anchor,preferredWidth,preferredHeight)
-{this._innerShow(view,view.element,anchor,preferredWidth,preferredHeight);},_innerShow:function(view,contentElement,anchor,preferredWidth,preferredHeight,arrowDirection)
-{if(this._disposed)
-return;this.contentElement=contentElement;if(WebInspector.Popover._popover)
-WebInspector.Popover._popover.detach();WebInspector.Popover._popover=this;var preferredSize=view?view.measurePreferredSize():this.contentElement.measurePreferredSize();preferredWidth=preferredWidth||preferredSize.width;preferredHeight=preferredHeight||preferredSize.height;WebInspector.View.prototype.show.call(this,document.body);if(view)
-view.show(this._contentDiv);else
-this._contentDiv.appendChild(this.contentElement);this._positionElement(anchor,preferredWidth,preferredHeight,arrowDirection);if(this._popoverHelper){this._contentDiv.addEventListener("mousemove",this._popoverHelper._killHidePopoverTimer.bind(this._popoverHelper),true);this.element.addEventListener("mouseout",this._popoverHelper._popoverMouseOut.bind(this._popoverHelper),true);}},hide:function()
-{this.detach();delete WebInspector.Popover._popover;},get disposed()
-{return this._disposed;},dispose:function()
-{if(this.isShowing())
-this.hide();this._disposed=true;},setCanShrink:function(canShrink)
-{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,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)
-{this._timeout=timeout;},_eventInHoverElement:function(event)
-{if(!this._hoverElement)
-return false;var box=this._hoverElement instanceof AnchorBox?this._hoverElement:this._hoverElement.boxInWindow();return(box.x<=event.clientX&&event.clientX<=box.x+box.width&&box.y<=event.clientY&&event.clientY<=box.y+box.height);},_mouseDown:function(event)
-{if(this._disableOnClick||!this._eventInHoverElement(event))
-this.hidePopover();else{this._killHidePopoverTimer();this._handleMouseAction(event,true);}},_mouseMove:function(event)
-{if(this._eventInHoverElement(event))
-return;this._startHidePopoverTimer();this._handleMouseAction(event,false);},_popoverMouseOut:function(event)
-{if(!this.isPopoverVisible())
-return;if(event.relatedTarget&&!event.relatedTarget.isSelfOrDescendant(this._popover._contentDiv))
-this._startHidePopoverTimer();},_mouseOut:function(event)
-{if(!this.isPopoverVisible())
-return;if(!this._eventInHoverElement(event))
-this._startHidePopoverTimer();},_startHidePopoverTimer:function()
-{if(!this._popover||this._hidePopoverTimer)
-return;function doHide()
-{this._hidePopover();delete this._hidePopoverTimer;}
-this._hidePopoverTimer=setTimeout(doHide.bind(this),this._timeout/2);},_handleMouseAction:function(event,isMouseDown)
-{this._resetHoverTimer();if(event.which&&this._disableOnClick)
-return;this._hoverElement=this._getAnchor(event.target,event);if(!this._hoverElement)
-return;const toolTipDelay=isMouseDown?0:(this._popup?this._timeout*0.6:this._timeout);this._hoverTimer=setTimeout(this._mouseHover.bind(this,this._hoverElement),toolTipDelay);},_resetHoverTimer:function()
-{if(this._hoverTimer){clearTimeout(this._hoverTimer);delete this._hoverTimer;}},isPopoverVisible:function()
-{return!!this._popover;},hidePopover:function()
-{this._resetHoverTimer();this._hidePopover();},_hidePopover:function()
-{if(!this._popover)
-return;if(this._onHide)
-this._onHide();this._popover.dispose();delete this._popover;this._hoverElement=null;},_mouseHover:function(element)
-{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.Placard=function(title,subtitle)
-{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)
-return;this._title=x;this.titleElement.textContent=x;},get subtitle()
-{return this._subtitle;},set subtitle(x)
-{if(this._subtitle===x)
-return;this._subtitle=x;this.subtitleElement.textContent=x;},get selected()
-{return this._selected;},set selected(x)
-{if(x)
-this.select();else
-this.deselect();},select:function()
-{if(this._selected)
-return;this._selected=true;this.element.classList.add("selected");},deselect:function()
-{if(!this._selected)
-return;this._selected=false;this.element.classList.remove("selected");},toggleSelected:function()
-{this.selected=!this.selected;},discard:function()
-{}}
-WebInspector.TabbedPane=function()
-{WebInspector.View.call(this);this.element.classList.add("tabbed-pane","vbox");this._headerElement=this.element.createChild("div","tabbed-pane-header");this._headerContentsElement=this._headerElement.createChild("div","tabbed-pane-header-contents");this._tabsElement=this._headerContentsElement.createChild("div","tabbed-pane-header-tabs");this._contentElement=this.element.createChild("div","tabbed-pane-content scroll-target");this._tabs=[];this._tabsHistory=[];this._tabsById={};this._dropDownButton=this._createDropDownButton();}
-WebInspector.TabbedPane.EventTypes={TabSelected:"TabSelected",TabClosed:"TabClosed"}
-WebInspector.TabbedPane.prototype={get visibleView()
-{return this._currentTab?this._currentTab.view:null;},get selectedTabId()
-{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;},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;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,false);},_innerCloseTab:function(id,userGesture)
-{if(!this._tabsById[id])
-return;if(userGesture&&!this._tabsById[id]._closeable)
-return;if(this._currentTab&&this._currentTab.id===id)
-this._hideCurrentTab();var tab=this._tabsById[id];delete this._tabsById[id];this._tabsHistory.splice(this._tabsHistory.indexOf(tab),1);this._tabs.splice(this._tabs.indexOf(tab),1);if(tab._shown)
-this._hideTabElement(tab);var eventData={tabId:id,view:tab.view,isUserGesture:userGesture};this.dispatchEventToListeners(WebInspector.TabbedPane.EventTypes.TabClosed,eventData);return true;},hasTab:function(tabId)
-{return!!this._tabsById[tabId];},allTabs:function()
-{var result=[];var tabs=this._tabs.slice();for(var i=0;i<tabs.length;++i)
-result.push(tabs[i].id);return result;},otherTabs:function(id)
-{var result=[];var tabs=this._tabs.slice();for(var i=0;i<tabs.length;++i){if(tabs[i].id!==id)
-result.push(tabs[i].id);}
-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);},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];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.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.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]);}
-for(var i=0;i<tabsToShowIndexes.length;++i){var tab=this._tabs[tabsToShowIndexes[i]];if(!tab._shown)
-this._showTabElement(i,tab);}
-this._populateDropDownFromIndex();},_populateDropDownFromIndex:function()
-{if(this._dropDownButton.parentElement)
-this._headerContentsElement.removeChild(this._dropDownButton);this._tabsSelect.removeChildren();var tabsToShow=[];for(var i=0;i<this._tabs.length;++i){if(!this._tabs[i]._shown)
-tabsToShow.push(this._tabs[i]);continue;}
-function compareFunction(tab1,tab2)
-{return tab1.title.localeCompare(tab2.title);}
-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.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);}
-for(var i=0;i<measuringTabElements.length;++i)
-measuringTabElements[i].__tab._measuredWidth=measuringTabElements[i].getBoundingClientRect().width;for(var i=0;i<measuringTabElements.length;++i)
-measuringTabElements[i].remove();var measuredWidths=[];for(var tabId in this._tabs)
-measuredWidths.push(this._tabs[tabId]._measuredWidth);this._tabsElement.style.removeProperty("width");return measuredWidths;},_calculateMaxWidth:function(measuredWidths,totalWidth)
-{if(!measuredWidths.length)
-return 0;measuredWidths.sort(function(x,y){return x-y});var totalMeasuredWidth=0;for(var i=0;i<measuredWidths.length;++i)
-totalMeasuredWidth+=measuredWidths[i];if(totalWidth>=totalMeasuredWidth)
-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._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.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)
-{this._tabsElement.insertBefore(tab._tabElement,this._tabsElement.childNodes[index]);var oldIndex=this._tabs.indexOf(tab);this._tabs.splice(oldIndex,1);if(oldIndex<index)
---index;this._tabs.splice(index,0,tab);},__proto__:WebInspector.View.prototype}
-WebInspector.TabbedPaneTab=function(tabbedPane,id,title,closeable,view,tooltip)
-{this._closeable=closeable;this._tabbedPane=tabbedPane;this._id=id;this._title=title;this._tooltip=tooltip;this._view=view;this._shown=false;this._measuredWidth;this._tabElement;}
-WebInspector.TabbedPaneTab.prototype={get id()
-{return this._id;},get title()
-{return this._title;},set title(title)
-{if(title===this._title)
-return;this._title=title;if(this._titleElement)
-this._titleElement.textContent=title;delete this._measuredWidth;},iconClass:function()
-{return this._iconClass;},isCloseable:function()
-{return this._closeable;},_setIconClass:function(iconClass,iconTooltip)
-{if(iconClass===this._iconClass&&iconTooltip===this._iconTooltip)
-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;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(!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.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.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.classList.contains("close-button-gray"));if(!shouldClose){this._tabbedPane.focus();return;}
-this._closeTabs([this.id]);event.consume(true);},_tabMouseDown:function(event)
-{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)
-{if(this._delegate){this._delegate.closeTabs(this._tabbedPane,ids);return;}
-this._tabbedPane.closeTabs(ids,true);},_tabContextMenu:function(event)
-{function close()
-{this._closeTabs([this.id]);}
-function closeOthers()
-{this._closeTabs(this._tabbedPane.otherTabs(this.id));}
-function closeAll()
-{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.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)
-continue;if(Math.abs(event.pageX-this._dragStartX)<tabElement.clientWidth/2+5)
-break;if(event.pageX-this._dragStartX>0){tabElement=tabElement.nextSibling;++i;}
-var oldOffsetLeft=this._tabElement.offsetLeft;this._tabbedPane._insertBefore(this,i);this._dragStartX+=this._tabElement.offsetLeft-oldOffsetLeft;break;}
-if(!this._tabElement.previousSibling&&event.pageX-this._dragStartX<0){this._tabElement.style.setProperty("left","0px");return;}
-if(!this._tabElement.nextSibling&&event.pageX-this._dragStartX>0){this._tabElement.style.setProperty("left","0px");return;}
-this._tabElement.style.setProperty("position","relative");this._tabElement.style.setProperty("left",(event.pageX-this._dragStartX)+"px");},_endTabDragging:function(event)
-{this._tabElement.style.removeProperty("position");this._tabElement.style.removeProperty("left");delete this._dragStartX;}}
-WebInspector.TabbedPaneTabDelegate=function()
-{}
-WebInspector.TabbedPaneTabDelegate.prototype={closeTabs:function(tabbedPane,ids){}}
-WebInspector.ViewportControl=function(provider)
-{this.element=document.createElement("div");this.element.className="fill";this.element.style.overflow="auto";this._topGapElement=this.element.createChild("div");this._contentElement=this.element.createChild("div");this._bottomGapElement=this.element.createChild("div");this._provider=provider;this.element.addEventListener("scroll",this._onScroll.bind(this),false);this._firstVisibleIndex=0;this._lastVisibleIndex=-1;}
-WebInspector.ViewportControl.Provider=function()
-{}
-WebInspector.ViewportControl.Provider.prototype={itemCount:function(){return 0;},itemElement:function(index){return null;}}
-WebInspector.ViewportControl.prototype={contentElement:function()
-{return this._contentElement;},refresh:function()
-{if(!this.element.clientHeight)
-return;this._contentElement.style.setProperty("height","100000px");this._contentElement.removeChildren();var itemCount=this._provider.itemCount();if(!itemCount){this._firstVisibleIndex=-1;this._lastVisibleIndex=-1;return;}
-if(!this._rowHeight){var firstElement=this._provider.itemElement(0);this._rowHeight=firstElement.measurePreferredSize(this._contentElement).height;}
-var visibleFrom=this.element.scrollTop;var visibleTo=visibleFrom+this.element.clientHeight;this._firstVisibleIndex=Math.floor(visibleFrom/this._rowHeight);this._lastVisibleIndex=Math.min(Math.ceil(visibleTo/this._rowHeight),itemCount)-1;this._topGapElement.style.height=(this._rowHeight*this._firstVisibleIndex)+"px";this._bottomGapElement.style.height=(this._rowHeight*(itemCount-this._lastVisibleIndex-1))+"px";for(var i=this._firstVisibleIndex;i<=this._lastVisibleIndex;++i)
-this._contentElement.appendChild(this._provider.itemElement(i));this._contentElement.style.removeProperty("height");},_onScroll:function(event)
-{this.refresh();},rowsPerViewport:function()
-{return Math.floor(this.element.clientHeight/this._rowHeight);},firstVisibleIndex:function()
-{return this._firstVisibleIndex;},lastVisibleIndex:function()
-{return this._lastVisibleIndex;},renderedElementAt:function(index)
-{if(index<this._firstVisibleIndex)
-return null;if(index>this._lastVisibleIndex)
-return null;return this._contentElement.childNodes[index-this._firstVisibleIndex];},scrollItemIntoView:function(index,makeLast)
-{if(index>this._firstVisibleIndex&&index<this._lastVisibleIndex)
-return;if(makeLast)
-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.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.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);}},closeView:function(id)
-{this._tabbedPane.closeTab(id);},showView:function(id,immediately)
-{if(!this._toggleDrawerButton.enabled())
-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._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());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)
-{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)
-return;this._visibleView().storeScrollPositions();var height=this._constrainHeight(this.element.offsetHeight);this.element.style.flexBasis=height+"px";this._tabbedPane.doResize();},_immediatelyFinishAnimation:function()
-{if(this._currentAnimation)
-this._currentAnimation.forceComplete();},_animationDuration:function(immediately)
-{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.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();},_visibleView:function()
-{return this._tabbedPane.visibleView;},_updateTabStrip: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;},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"}
-WebInspector.ConsoleModel.prototype={enableAgent:function()
-{if(WebInspector.settings.monitoringXHREnabled.get())
-ConsoleAgent.setMonitoringXHREnabled(true);this._enablingConsole=true;function callback()
-{delete this._enablingConsole;}
-ConsoleAgent.enable(callback.bind(this));},enablingConsole:function()
-{return!!this._enablingConsole;},addMessage:function(msg,isFromBackend)
-{if(isFromBackend&&WebInspector.SourceMap.hasSourceMapRequestHeader(msg.request()))
-return;msg.index=this.messages.length;this.messages.push(msg);this._incrementErrorWarningCount(msg);if(isFromBackend)
-this._previousMessage=msg;this._interruptRepeatCount=!isFromBackend;this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.MessageAdded,msg);},_incrementErrorWarningCount:function(msg)
-{switch(msg.level){case WebInspector.ConsoleMessage.MessageLevel.Warning:this.warnings+=msg.repeatDelta;break;case WebInspector.ConsoleMessage.MessageLevel.Error:this.errors+=msg.repeatDelta;break;}},requestClearMessages:function()
-{ConsoleAgent.clearMessages();this.clearMessages();},clearMessages:function()
-{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,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",Command:"command"}
-WebInspector.ConsoleMessage.MessageLevel={Log:"log",Info:"info",Warning:"warning",Error:"error",Debug:"debug"}
-WebInspector.ConsoleDispatcher=function(console)
-{this._console=console;}
-WebInspector.ConsoleDispatcher.prototype={messageAdded:function(payload)
-{var consoleMessage=WebInspector.ConsoleMessage.create(payload.source,payload.level,payload.text,payload.type,payload.url,payload.line,payload.column,payload.repeatCount,payload.parameters,payload.stackTrace,payload.networkRequestId,this._console._enablingConsole);this._console.addMessage(consoleMessage,true);},messageRepeatCountUpdated:function(count)
-{this._console._messageRepeatCountUpdated(count);},messagesCleared:function()
-{if(!WebInspector.settings.preserveConsoleLog.get())
-this._console.clearMessages();}}
-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.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);}
-this._messageElement=this._format([this._messageText]);}}else{var args=this._parameters||[this._messageText];this._messageElement=this._format(args);}
-if(this.source!==WebInspector.ConsoleMessage.MessageSource.Network||this._request){if(this._stackTrace&&this._stackTrace.length&&this._stackTrace[0].scriptId){this._anchorElement=this._linkifyCallFrame(this._stackTrace[0]);}else if(this.url&&this.url!=="undefined"){this._anchorElement=this._linkifyLocation(this.url,this.line,this.column);}}
-this._formattedMessage.appendChild(this._messageElement);if(this._anchorElement){this._formattedMessage.appendChild(document.createTextNode(" "));this._formattedMessage.appendChild(this._anchorElement);}
-var dumpStackTrace=!!this._stackTrace&&this._stackTrace.length&&(this.source===WebInspector.ConsoleMessage.MessageSource.Network||this.level===WebInspector.ConsoleMessage.MessageLevel.Error||this.type===WebInspector.ConsoleMessage.MessageType.Trace);if(dumpStackTrace){var ol=document.createElement("ol");ol.className="outline-disclosure";var treeOutline=new TreeOutline(ol);var content=this._formattedMessage;var root=new TreeElement(content,null,true);content.treeElementForTest=root;treeOutline.appendChild(root);if(this.type===WebInspector.ConsoleMessage.MessageType.Trace)
-root.expand();this._populateStackTraceTreeElement(root);this._formattedMessage=ol;}
-this._message=this._messageElement.textContent;},get message()
-{var formattedMessage=this.formattedMessage;return this._message;},get formattedMessage()
-{if(!this._formattedMessage)
-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()
-{return(this.level===WebInspector.ConsoleMessage.MessageLevel.Warning||this.level===WebInspector.ConsoleMessage.MessageLevel.Error);},_format:function(parameters)
-{var formattedResult=document.createElement("span");if(!parameters.length)
-return formattedResult;for(var i=0;i<parameters.length;++i){if(parameters[i]instanceof WebInspector.RemoteObject)
-continue;if(typeof parameters[i]==="object")
-parameters[i]=WebInspector.RemoteObject.fromPayload(parameters[i]);else
-parameters[i]=WebInspector.RemoteObject.fromPrimitiveValue(parameters[i]);}
-var shouldFormatMessage=WebInspector.RemoteObject.type(parameters[0])==="string"&&this.type!==WebInspector.ConsoleMessage.MessageType.Result;if(shouldFormatMessage){var result=this._formatWithSubstitutionString(parameters[0].description,parameters.slice(1),formattedResult);parameters=result.unusedSubstitutions;if(parameters.length)
-formattedResult.appendChild(document.createTextNode(" "));}
-if(this.type===WebInspector.ConsoleMessage.MessageType.Table){formattedResult.appendChild(this._formatParameterAsTable(parameters));return formattedResult;}
-for(var i=0;i<parameters.length;++i){if(shouldFormatMessage&&parameters[i].type==="string")
-formattedResult.appendChild(WebInspector.linkifyStringAsFragment(parameters[i].description));else
-formattedResult.appendChild(this._formatParameter(parameters[i],false,true));if(i<parameters.length-1)
-formattedResult.appendChild(document.createTextNode(" "));}
-return formattedResult;},_formatParameter:function(output,forceObjectFormat,includePreview)
-{var type;if(forceObjectFormat)
-type="object";else if(output instanceof WebInspector.RemoteObject)
-type=output.subtype||output.type;else
-type=typeof output;var formatter=this._customFormatters[type];if(!formatter){formatter=this._formatParameterAsValue;output=output.description;}
-var span=document.createElement("span");span.className="console-formatted-"+type+" source-code";formatter.call(this,output,span,includePreview);return span;},_formatParameterAsValue:function(val,elem)
-{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.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)
-titleElement.createTextChild(", ");var property=preview.properties[i];var name=property.name;if(!isArray||name!=i){if(/^\s|\s$|^$|\n/.test(name))
-name="\""+name.replace(/\n/g,"\u21B5")+"\"";titleElement.createChild("span","name").textContent=name;titleElement.createTextChild(": ");}
-titleElement.appendChild(this._renderPropertyPreviewOrAccessor(obj,[property]));}
-if(preview.overflow)
-titleElement.createChild("span").textContent="\u2026";titleElement.createTextChild(isArray?"]":"}");return preview.lossless;},_renderPropertyPreviewOrAccessor:function(object,propertyPath)
-{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.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.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;}
-const maxFlatArrayLength=100;if(this._isOutdated||array.arrayLength()>maxFlatArrayLength)
-this._formatParameterAsObject(array,elem,false);else
-array.getOwnProperties(this._printArray.bind(this,array,elem));},_formatParameterAsTable:function(parameters)
-{var element=document.createElement("span");var table=parameters[0];if(!table||!table.preview)
-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.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.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)
-elements[name]=this._formatAsAccessorProperty(array,[name],true);else if(property.value)
-elements[name]=this._formatAsArrayEntry(property.value);}
-elem.appendChild(document.createTextNode("["));var lastNonEmptyIndex=-1;function appendUndefined(elem,index)
-{if(index-lastNonEmptyIndex<=1)
-return;var span=elem.createChild("span","console-formatted-undefined");span.textContent=WebInspector.UIString("undefined × %d",index-lastNonEmptyIndex-1);}
-var length=array.arrayLength();for(var i=0;i<length;++i){var element=elements[i];if(!element)
-continue;if(i-lastNonEmptyIndex>1){appendUndefined(elem,i);elem.appendChild(document.createTextNode(", "));}
-elem.appendChild(element);lastNonEmptyIndex=i;if(i<length-1)
-elem.appendChild(document.createTextNode(", "));}
-appendUndefined(elem,length);elem.appendChild(document.createTextNode("]"));},_formatAsArrayEntry:function(output)
-{return this._formatParameter(output,output.subtype==="array",false);},_formatAsAccessorProperty:function(object,propertyPath,isArrayEntry)
-{var rootElement=WebInspector.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(object,propertyPath,onInvokeGetterClick.bind(this));function onInvokeGetterClick(result,wasThrown)
-{if(!result)
-return;rootElement.removeChildren();if(wasThrown){var element=rootElement.createChild("span","error-message");element.textContent=WebInspector.UIString("<exception>");element.title=result.description;}else if(isArrayEntry){rootElement.appendChild(this._formatAsArrayEntry(result));}else{const maxLength=100;var type=result.type;var subtype=result.subtype;var description="";if(type!=="function"&&result.description){if(type==="string"||subtype==="regexp")
-description=result.description.trimMiddle(maxLength);else
-description=result.description.trimEnd(maxLength);}
-rootElement.appendChild(this._renderPropertyPreview(type,subtype,description));}}
-return rootElement;},_formatWithSubstitutionString:function(format,parameters,formattedResult)
-{var formatters={};function parameterFormatter(force,obj)
-{return this._formatParameter(obj,force,false);}
-function stringFormatter(obj)
-{return obj.description;}
-function floatFormatter(obj)
-{if(typeof obj.value!=="number")
-return"NaN";return obj.value;}
-function integerFormatter(obj)
-{if(typeof obj.value!=="number")
-return"NaN";return Math.floor(obj.value);}
-function bypassFormatter(obj)
-{return(obj instanceof Node)?obj:"";}
-var currentStyle=null;function styleFormatter(obj)
-{currentStyle={};var buffer=document.createElement("span");buffer.setAttribute("style",obj.description);for(var i=0;i<buffer.style.length;i++){var property=buffer.style[i];if(isWhitelistedProperty(property))
-currentStyle[property]=buffer.style[property];}}
-function isWhitelistedProperty(property)
-{var prefixes=["background","border","color","font","line","margin","padding","text","-webkit-background","-webkit-border","-webkit-font","-webkit-margin","-webkit-padding","-webkit-text"];for(var i=0;i<prefixes.length;i++){if(property.startsWith(prefixes[i]))
-return true;}
-return false;}
-formatters.o=parameterFormatter.bind(this,false);formatters.s=stringFormatter;formatters.f=floatFormatter;formatters.i=integerFormatter;formatters.d=integerFormatter;formatters.c=styleFormatter;formatters.O=parameterFormatter.bind(this,true);formatters._=bypassFormatter;function append(a,b)
-{if(b instanceof Node)
-a.appendChild(b);else if(typeof b!=="undefined"){var toAppend=WebInspector.linkifyStringAsFragment(String(b));if(currentStyle){var wrapper=document.createElement('span');for(var key in currentStyle)
-wrapper.style[key]=currentStyle[key];wrapper.appendChild(toAppend);toAppend=wrapper;}
-a.appendChild(toAppend);}
-return a;}
-return String.format(format,parameters,formatters,formattedResult,append);},clearHighlight:function()
-{if(!this._formattedMessage)
-return;var highlightedMessage=this._formattedMessage;delete this._formattedMessage;delete this._anchorElement;delete this._messageElement;this._formatMessage();this._element.replaceChild(this._formattedMessage,highlightedMessage);},highlightSearchResults:function(regexObject)
-{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(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()
-{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.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.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.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.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="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()
-{return this._messageText;},location:function()
-{var lineNumber=this.stackTrace?this.stackTrace[0].lineNumber-1:this.line-1;var columnNumber=this.stackTrace&&this.stackTrace[0].columnNumber?this.stackTrace[0].columnNumber-1:0;return WebInspector.debuggerModel.createRawLocationByURL(this.url,lineNumber,columnNumber);},isEqual:function(msg)
-{if(!msg)
-return false;if(this._stackTrace){if(!msg._stackTrace)
-return false;var l=this._stackTrace;var r=msg._stackTrace;if(l.length!==r.length)
-return false;for(var i=0;i<l.length;i++){if(l[i].url!==r[i].url||l[i].functionName!==r[i].functionName||l[i].lineNumber!==r[i].lineNumber||l[i].columnNumber!==r[i].columnNumber)
-return false;}}
-return(this.source===msg.source)&&(this.type===msg.type)&&(this.level===msg.level)&&(this.line===msg.line)&&(this.url===msg.url)&&(this.message===msg.message)&&(this._request===msg._request);},get stackTrace()
-{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._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.classList.add("hidden");return;}
-var executionContexts=context.executionContexts();if(executionContexts.length)
-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()
-{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())
-this._frameChanged();},_currentFrame:function()
-{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();},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
-WebInspector.View.prototype.restoreScrollPositions.call(this);},onResize:function()
-{this.restoreScrollPositions();},_isScrollIntoViewScheduled:function()
-{return!!this._scrollIntoViewTimer;},_scheduleScrollIntoView:function()
-{if(this._scrollIntoViewTimer)
-return;function scrollIntoView()
-{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())
-return;clearTimeout(this._scrollIntoViewTimer);delete this._scrollIntoViewTimer;},_updateFilterStatus:function(count){count=(typeof count==="undefined")?(WebInspector.console.messages.length-this._visibleMessagesIndices.length):count;this._filterStatusTextElement.textContent=WebInspector.UIString(count==1?"%d message is hidden by filters.":"%d messages are hidden by filters.",count);this._filterStatusMessageElement.style.display=count?"":"none";},_consoleMessageAdded:function(event)
-{var message=(event.data);var index=message.index;if(this._urlToMessageCount[message.url])
-this._urlToMessageCount[message.url]++;else
-this._urlToMessageCount[message.url]=1;if(this._filter.shouldBeVisible(message))
-this._showConsoleMessage(index);else
-this._updateFilterStatus();},_showConsoleMessage:function(index)
-{var message=WebInspector.console.messages[index];if(!this._isScrollIntoViewScheduled()&&((message instanceof WebInspector.ConsoleCommandResult)||this.messagesElement.isScrolledToBottom()))
-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);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)
-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()
-{WebInspector.settings.preserveConsoleLog.set(!WebInspector.settings.preserveConsoleLog.get());}
-contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Preserve log upon navigation":"Preserve Log upon Navigation"),preserveLogItemAction.bind(this),WebInspector.settings.preserveConsoleLog.get());var sourceElement=event.target.enclosingNodeOrSelfWithClass("console-message");var filterSubMenu=contextMenu.appendSubMenuItem(WebInspector.UIString("Filter"));if(sourceElement&&sourceElement.message.url){var menuTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Hide messages from %s":"Hide Messages from %s",new WebInspector.ParsedURL(sourceElement.message.url).displayName);filterSubMenu.appendItem(menuTitle,this._filter.addMessageURLFilter.bind(this._filter,sourceElement.message.url));}
-filterSubMenu.appendSeparator();var unhideAll=filterSubMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Unhide all":"Unhide All"),this._filter.removeMessageURLFilter.bind(this._filter));filterSubMenu.appendSeparator();var hasFilters=false;for(var url in this._filter.messageURLFilters){filterSubMenu.appendCheckboxItem(String.sprintf("%s (%d)",new WebInspector.ParsedURL(url).displayName,this._urlToMessageCount[url]),this._filter.removeMessageURLFilter.bind(this._filter,url),true);hasFilters=true;}
-filterSubMenu.setEnabled(hasFilters||(sourceElement&&sourceElement.message.url));unhideAll.setEnabled(hasFilters);contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear console":"Clear Console"),this._requestClearMessages.bind(this));var request=(sourceElement&&sourceElement.message)?sourceElement.message.request():null;if(request&&request.type===WebInspector.resourceTypes.XHR){contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString("Replay XHR"),NetworkAgent.replayXHR.bind(null,request.requestId));}
-contextMenu.show();},_updateMessageList:function()
-{var group=this.topGroup;var sourceMessages=WebInspector.console.messages;var visibleMessageIndex=0;var newVisibleMessages=[];if(this._searchRegex)
-this._searchResultsIndices=[];var anchor=null;for(var i=0;i<sourceMessages.length;++i){var sourceMessage=sourceMessages[i];var visibleMessage=WebInspector.console.messages[this._visibleMessagesIndices[visibleMessageIndex]];if(visibleMessage===sourceMessage){if(this._filter.shouldBeVisible(visibleMessage)){newVisibleMessages.push(this._visibleMessagesIndices[visibleMessageIndex]);if(this._searchRegex&&sourceMessage.matchesRegex(this._searchRegex))
-this._searchResultsIndices.push(i);if(sourceMessage.type===WebInspector.ConsoleMessage.MessageType.EndGroup){anchor=group.element;group=group.parentGroup||group;}else if(sourceMessage.type===WebInspector.ConsoleMessage.MessageType.StartGroup||sourceMessage.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){group=sourceMessage.group;anchor=group.messagesElement.firstChild;}else
-anchor=visibleMessage.toMessageElement();}else{visibleMessage.willHide();visibleMessage.toMessageElement().remove();}
-++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)
-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()
-{this._shortcuts={};var shortcut=WebInspector.KeyboardShortcut;var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));var shortcutL=shortcut.makeDescriptor("l",WebInspector.KeyboardShortcut.Modifiers.Ctrl);this._shortcuts[shortcutL.key]=this._requestClearMessages.bind(this);var keys=[shortcutL];if(WebInspector.isMac()){var shortcutK=shortcut.makeDescriptor("k",WebInspector.KeyboardShortcut.Modifiers.Meta);this._shortcuts[shortcutK.key]=this._requestClearMessages.bind(this);keys.unshift(shortcutK);}
-section.addAlternateKeys(keys,WebInspector.UIString("Clear console"));section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tab),WebInspector.UIString("Autocomplete common prefix"));section.addKey(shortcut.makeDescriptor(shortcut.Keys.Right),WebInspector.UIString("Accept suggestion"));keys=[shortcut.makeDescriptor(shortcut.Keys.Down),shortcut.makeDescriptor(shortcut.Keys.Up)];section.addRelatedKeys(keys,WebInspector.UIString("Next/previous line"));if(WebInspector.isMac()){keys=[shortcut.makeDescriptor("N",shortcut.Modifiers.Alt),shortcut.makeDescriptor("P",shortcut.Modifiers.Alt)];section.addRelatedKeys(keys,WebInspector.UIString("Next/previous command"));}
-section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter),WebInspector.UIString("Execute command"));},_requestClearMessages:function()
-{WebInspector.console.requestClearMessages();},_promptKeyDown:function(event)
-{if(isEnterKey(event)){this._enterKeyPressed(event);return;}
-var shortcut=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcut];if(handler){handler();event.preventDefault();}},evaluateUsingTextPrompt:function(expression,showResultOnly)
-{this._appendCommand(expression,this.prompt.text,false,showResultOnly);},_enterKeyPressed:function(event)
-{if(event.altKey||event.ctrlKey||event.shiftKey)
-return;event.consume(true);this.prompt.clearAutoComplete(true);var str=this.prompt.text;if(!str.length)
-return;this._appendCommand(str,"",true,false);},_printResult:function(result,wasThrown,originatingCommand)
-{if(!result)
-return;function addMessage(url,lineNumber,columnNumber)
-{var message=new WebInspector.ConsoleCommandResult(result,wasThrown,originatingCommand,this._linkifier,url,lineNumber,columnNumber);WebInspector.console.addMessage(message);}
-if(result.type!=="function"){addMessage.call(this);return;}
-DebuggerAgent.getFunctionDetails(result.objectId,didGetDetails.bind(this));function didGetDetails(error,response)
-{if(error){console.error(error);addMessage.call(this);return;}
-var url;var lineNumber;var columnNumber;var script=WebInspector.debuggerModel.scriptForId(response.location.scriptId);if(script&&script.sourceURL){url=script.sourceURL;lineNumber=response.location.lineNumber+1;columnNumber=response.location.columnNumber+1;}
-addMessage.call(this,url,lineNumber,columnNumber);}},_appendCommand:function(text,newPromptText,useCommandLineAPI,showResultOnly)
-{if(!showResultOnly){var commandMessage=new WebInspector.ConsoleCommand(text);WebInspector.console.addMessage(commandMessage);}
-this.prompt.text=newPromptText;function printResult(result,wasThrown,valueResult)
-{if(!result)
-return;if(!showResultOnly){this.prompt.pushHistoryItem(text);WebInspector.settings.consoleHistory.set(this.prompt.historyData.slice(-30));}
-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._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]);}
-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);},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);},_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)
-{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._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._levelFilterUI.accept(message.level))
-return false;if(this._filterRegex){this._filterRegex.lastIndex=0;if(!message.matchesRegex(this._filterRegex))
-return false;}
-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(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);}
-return this._element;},_formatCommand:function()
-{this._formattedCommand=document.createElement("span");this._formattedCommand.className="console-message-text source-code";this._formattedCommand.textContent=this.text;},__proto__:WebInspector.ConsoleMessage.prototype}
-WebInspector.ConsoleCommandResult=function(result,wasThrown,originatingCommand,linkifier,url,lineNumber,columnNumber)
-{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.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.classList.add("collapsed");}else{this.messagesElement.insertBefore(element,node||null);message.wasShown();}
-if(element.previousSibling&&message.originatingCommand&&element.previousSibling.command===message.originatingCommand)
-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.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;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.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()
-{},defaultFocusedElement:function()
-{return this.sidebarTreeElement||this.element;},searchableView:function()
-{return null;},replaceSelectionWith:function(text)
-{},replaceAllWith:function(query,text)
-{},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));},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().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)){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()
-{}
-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()
-{return(this._extension.instance());}}
-WebInspector.InspectorView=function()
-{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.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;},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)
-{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 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;}
-var isGoBack=event.altKey;if(isGoBack&&this._canGoBackInHistory()){this._goBackInHistory();event.consume(true);}
-return;}
-if(this._closeBracketIdentifiers[event.keyIdentifier]){var isRotateRight=!event.shiftKey&&!event.altKey;if(isRotateRight){var panelOrder=this._tabbedPane.allTabs();var index=panelOrder.indexOf(this.currentPanel().name);index=(index+1)%panelOrder.length;this.showPanel(panelOrder[index]);event.consume(true);return;}
-var isGoForward=event.altKey;if(isGoForward&&this._canGoForwardInHistory()){this._goForwardInHistory();event.consume(true);}
-return;}},_canGoBackInHistory:function()
-{return this._historyIterator>0;},_goBackInHistory:function()
-{this._inHistory=true;this.setCurrentPanel(WebInspector.panels[this._history[--this._historyIterator]]);delete this._inHistory;},_canGoForwardInHistory:function()
-{return this._historyIterator<this._history.length-1;},_goForwardInHistory:function()
-{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;},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={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();},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)
-this._searchView._search.value=queryCandidate;this._searchView.focus();this.startIndexing();},_onIndexingFinished:function(finished)
-{delete this._isIndexing;this._searchView.indexingFinished(finished);if(!finished)
-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._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)
-return;if(!this._searchResultsPane)
-this._searchResultsPane=this._currentSearchScope.createSearchResultsPane(this._searchConfig);this._searchView.resultsPane=this._searchResultsPane;this._searchResultsPane.addSearchResult(searchResult);},_onSearchFinished:function(searchId,finished)
-{if(searchId!==this._searchId)
-return;if(!this._searchResultsPane)
-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._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;},_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.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)
-{this.resetResults();this._resetCounters();this._searchMessageElement.textContent=WebInspector.UIString("Searching...");progressIndicator.show(this._searchStatusBarElement);this._updateSearchResultsMessage();if(!this._searchingView)
-this._searchingView=new WebInspector.EmptyView(WebInspector.UIString("Searching..."));this._searchingView.show(this._searchResultsElement);},indexingStarted:function(progressIndicator)
-{this._searchMessageElement.textContent=WebInspector.UIString("Indexing...");progressIndicator.show(this._searchStatusBarElement);},indexingFinished:function(finished)
-{this._searchMessageElement.textContent=finished?"":WebInspector.UIString("Indexing interrupted.");},_updateSearchResultsMessage:function()
-{if(this._searchMatchesCount&&this._searchResultsCount)
-this._searchResultsMessageElement.textContent=WebInspector.UIString("Found %d matches in %d files.",this._searchMatchesCount,this._nonEmptySearchResultsCount);else
-this._searchResultsMessageElement.textContent="";},resetResults:function()
-{if(this._searchingView)
-this._searchingView.detach();if(this._notFoundView)
-this._notFoundView.detach();this._searchResultsElement.removeChildren();},_resetCounters:function()
-{this._searchMatchesCount=0;this._searchResultsCount=0;this._nonEmptySearchResultsCount=0;},nothingFound:function()
-{this.resetResults();if(!this._notFoundView)
-this._notFoundView=new WebInspector.EmptyView(WebInspector.UIString("No matches found."));this._notFoundView.show(this._searchResultsElement);this._searchResultsMessageElement.textContent=WebInspector.UIString("No matches found.");},addSearchResult:function(searchResult)
-{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();},willHide:function()
-{this._controller.stopSearch();},_onKeyDown:function(event)
-{switch(event.keyCode){case WebInspector.KeyboardShortcut.Keys.Enter.code:this._onAction();break;}},_save: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()
-{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._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){},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()
-{return this._searchConfig;},addSearchResult:function(searchResult){}}
-WebInspector.FileBasedSearchResultsPane=function(searchConfig)
-{WebInspector.SearchResultsPane.call(this,searchConfig);this._searchResults=[];this.element.id="search-results-pane-file-based";this._treeOutlineElement=document.createElement("ol");this._treeOutlineElement.className="search-results-outline-disclosure";this.element.appendChild(this._treeOutlineElement);this._treeOutline=new TreeOutline(this._treeOutlineElement);this._matchesExpandedCount=0;}
-WebInspector.FileBasedSearchResultsPane.matchesExpandedByDefaultCount=20;WebInspector.FileBasedSearchResultsPane.fileMatchesShownAtOnce=20;WebInspector.FileBasedSearchResultsPane.prototype={_createAnchor:function(uiSourceCode,lineNumber,columnNumber)
-{var anchor=document.createElement("a");anchor.preferredPanel="sources";anchor.href=sanitizeHref(uiSourceCode.originURL());anchor.uiSourceCode=uiSourceCode;anchor.lineNumber=lineNumber;return anchor;},addSearchResult:function(searchResult)
-{this._searchResults.push(searchResult);var uiSourceCode=searchResult.uiSourceCode;if(!uiSourceCode)
-return;var searchMatches=searchResult.searchMatches;var fileTreeElement=this._addFileTreeElement(uiSourceCode.fullDisplayName(),searchMatches.length,this._searchResults.length-1);},_fileTreeElementExpanded:function(searchResult,fileTreeElement)
-{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 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.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;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()
-{return this._dividersElement;},get dividersLabelBarElement()
-{return this._dividersLabelBarElement;},get gridHeaderElement()
-{return this._gridHeaderElement;},get gridSliceTime(){return this._gridSliceTime;},removeDividers:function()
-{this._dividersElement.removeChildren();this._dividersLabelBarElement.removeChildren();},updateDividers:function(calculator)
-{const minGridSlicePx=64;const gridFreeZoneAtLeftPx=50;var dividersElementClientWidth=this._dividersElement.clientWidth;var dividersCount=dividersElementClientWidth/minGridSlicePx;var gridSliceTime=calculator.boundarySpan()/dividersCount;var pixelsPerTime=dividersElementClientWidth/calculator.boundarySpan();var logGridSliceTime=Math.ceil(Math.log(gridSliceTime)/Math.LN10);gridSliceTime=Math.pow(10,logGridSliceTime);if(gridSliceTime*pixelsPerTime>=5*minGridSlicePx)
-gridSliceTime=gridSliceTime/5;if(gridSliceTime*pixelsPerTime>=2*minGridSlicePx)
-gridSliceTime=gridSliceTime/2;this._gridSliceTime=gridSliceTime;var firstDividerTime=Math.ceil((calculator.minimumBoundary()-calculator.zeroTime())/gridSliceTime)*gridSliceTime+calculator.zeroTime();var lastDividerTime=calculator.maximumBoundary();if(calculator.paddingLeft>0)
-lastDividerTime=lastDividerTime+minGridSlicePx/pixelsPerTime;dividersCount=Math.ceil((lastDividerTime-firstDividerTime)/gridSliceTime);var divider=this._dividersElement.firstChild;var dividerLabelBar=this._dividersLabelBarElement.firstChild;var skipLeftmostDividers=calculator.paddingLeft===0;if(!gridSliceTime)
-dividersCount=0;for(var i=0;i<dividersCount;++i){var left=calculator.computePosition(firstDividerTime+gridSliceTime*i);if(skipLeftmostDividers&&left<gridFreeZoneAtLeftPx)
-continue;if(!divider){divider=document.createElement("div");divider.className="resources-divider";this._dividersElement.appendChild(divider);dividerLabelBar=document.createElement("div");dividerLabelBar.className="resources-divider";var label=document.createElement("div");label.className="resources-divider-label";dividerLabelBar._labelElement=label;dividerLabelBar.appendChild(label);this._dividersLabelBarElement.appendChild(dividerLabelBar);}
-dividerLabelBar._labelElement.textContent=calculator.formatTime(firstDividerTime+gridSliceTime*i-calculator.minimumBoundary());var percentLeft=100*left/dividersElementClientWidth;divider.style.left=percentLeft+"%";dividerLabelBar.style.left=percentLeft+"%";divider=divider.nextSibling;dividerLabelBar=dividerLabelBar.nextSibling;}
-while(divider){var nextDivider=divider.nextSibling;this._dividersElement.removeChild(divider);divider=nextDivider;}
-while(dividerLabelBar){var nextDivider=dividerLabelBar.nextSibling;this._dividersLabelBarElement.removeChild(dividerLabelBar);dividerLabelBar=nextDivider;}
-return true;},addEventDivider:function(divider)
-{this._eventDividersElement.appendChild(divider);},addEventDividers:function(dividers)
-{this._gridHeaderElement.removeChild(this._eventDividersElement);for(var i=0;i<dividers.length;++i){if(dividers[i])
-this._eventDividersElement.appendChild(dividers[i]);}
-this._gridHeaderElement.appendChild(this._eventDividersElement);},removeEventDividers:function()
-{this._eventDividersElement.removeChildren();},hideEventDividers:function()
-{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){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.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)
-{this._grid.addEventDividers(dividers);},removeEventDividers:function()
-{this._grid.removeEventDividers();},setWindowPosition:function(start,end)
-{this._window._setWindowPosition(start,end);},reset:function()
-{this._window.reset();},windowLeft:function()
-{return this._window.windowLeft;},windowRight:function()
-{return this._window.windowRight;},setWindow:function(left,right)
-{this._window._setWindow(left,right);},addEventListener:function(eventType,listener,thisObject)
-{this._window.addEventListener(eventType,listener,thisObject);},zoom:function(zoomFactor,referencePoint)
-{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",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;},_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)
-{this._resizeWindowRight(event.pageX-this._resizerParentOffsetLeft);event.preventDefault();},_startWindowSelectorDragging:function(event)
-{if(!this._enabled)
-return false;this._offsetLeft=event.pageX-event.offsetX;var position=event.pageX-this._offsetLeft;this._overviewWindowSelector=new WebInspector.OverviewGrid.WindowSelector(this._parentElement,position);return true;},_windowSelectorDragging:function(event)
-{this._overviewWindowSelector._updatePosition(event.pageX-this._offsetLeft);event.preventDefault();},_endWindowSelectorDragging:function(event)
-{var window=this._overviewWindowSelector._close(event.pageX-this._offsetLeft);delete this._overviewWindowSelector;if(window.end===window.start){var middle=window.end;window.start=Math.max(0,middle-WebInspector.OverviewGrid.MinSelectableSize/2);window.end=Math.min(this._parentElement.clientWidth,middle+WebInspector.OverviewGrid.MinSelectableSize/2);}else if(window.end-window.start<WebInspector.OverviewGrid.MinSelectableSize){if(this._parentElement.clientWidth-window.end>WebInspector.OverviewGrid.MinSelectableSize)
-window.end=window.start+WebInspector.OverviewGrid.MinSelectableSize;else
-window.start=window.end-WebInspector.OverviewGrid.MinSelectableSize;}
-this._setWindowPosition(window.start,window.end);},_startWindowDragging:function(event)
-{this._dragStartPoint=event.pageX;this._dragStartLeft=this.windowLeft;this._dragStartRight=this.windowRight;return true;},_windowDragging:function(event)
-{event.preventDefault();var delta=(event.pageX-this._dragStartPoint)/this._parentElement.clientWidth;if(this._dragStartLeft+delta<0)
-delta=-this._dragStartLeft;if(this._dragStartRight+delta>1)
-delta=1-this._dragStartRight;this._setWindow(this._dragStartLeft+delta,this._dragStartRight+delta);},_resizeWindowLeft:function(start)
-{if(start<10)
-start=0;else if(start>this._rightResizeElement.offsetLeft-4)
-start=this._rightResizeElement.offsetLeft-4;this._setWindowPosition(start,null);},_resizeWindowRight:function(end)
-{if(end>this._parentElement.clientWidth-10)
-end=this._parentElement.clientWidth;else if(end<this._leftResizeElement.offsetLeft+WebInspector.OverviewGrid.MinSelectableSize)
-end=this._leftResizeElement.offsetLeft+WebInspector.OverviewGrid.MinSelectableSize;this._setWindowPosition(null,end);},_resizeWindowMaximum:function()
-{this._setWindowPosition(0,this._parentElement.clientWidth);},_setWindow:function(windowLeft,windowRight)
-{var left=windowLeft;var right=windowRight;var width=windowRight-windowLeft;var widthInPixels=width*this._parentElement.clientWidth;var minWidthInPixels=WebInspector.OverviewGrid.MinSelectableSize/2;if(widthInPixels<minWidthInPixels){var factor=minWidthInPixels/widthInPixels;left=((windowRight+windowLeft)-width*factor)/2;right=((windowRight+windowLeft)+width*factor)/2;}
-this.windowLeft=windowLeft;this._leftResizeElement.style.left=left*100+"%";this.windowRight=windowRight;this._rightResizeElement.style.left=right*100+"%";this._overviewWindowElement.style.left=left*100+"%";this._overviewWindowBordersElement.style.left=left*100+"%";this._overviewWindowElement.style.width=(right-left)*100+"%";this._overviewWindowBordersElement.style.right=(1-right)*100+"%";this.dispatchEventToListeners(WebInspector.OverviewGrid.Events.WindowChanged);},_setWindowPosition:function(start,end)
-{var clientWidth=this._parentElement.clientWidth;var windowLeft=typeof start==="number"?start/clientWidth:this.windowLeft;var windowRight=typeof end==="number"?end/clientWidth:this.windowRight;this._setWindow(windowLeft,windowRight);},_onMouseWheel:function(event)
-{if(typeof event.wheelDeltaY==="number"&&event.wheelDeltaY){const zoomFactor=1.1;const mouseWheelZoomSpeed=1/120;var reference=event.offsetX/event.target.clientWidth;this._zoom(Math.pow(zoomFactor,-event.wheelDeltaY*mouseWheelZoomSpeed),reference);}
-if(typeof event.wheelDeltaX==="number"&&event.wheelDeltaX){var offset=Math.round(event.wheelDeltaX*WebInspector.OverviewGrid.WindowScrollSpeedFactor);var windowLeft=this._leftResizeElement.offsetLeft+WebInspector.OverviewGrid.ResizerOffset;var windowRight=this._rightResizeElement.offsetLeft+WebInspector.OverviewGrid.ResizerOffset;if(windowLeft-offset<0)
-offset=windowLeft;if(windowRight-offset>this._parentElement.clientWidth)
-offset=windowRight-this._parentElement.clientWidth;this._setWindowPosition(windowLeft-offset,windowRight-offset);event.preventDefault();}},_zoom:function(factor,reference)
-{var left=this.windowLeft;var right=this.windowRight;var windowSize=right-left;var newWindowSize=factor*windowSize;if(newWindowSize>1){newWindowSize=1;factor=newWindowSize/windowSize;}
-left=reference+(left-reference)*factor;left=Number.constrain(left,0,1-newWindowSize);right=reference+(right-reference)*factor;right=Number.constrain(right,newWindowSize,1);this._setWindow(left,right);},__proto__:WebInspector.Object.prototype}
-WebInspector.OverviewGrid.WindowSelector=function(parent,position)
-{this._startPosition=position;this._width=parent.offsetWidth;this._windowSelector=document.createElement("div");this._windowSelector.className="overview-grid-window-selector";this._windowSelector.style.left=this._startPosition+"px";this._windowSelector.style.right=this._width-this._startPosition+"px";parent.appendChild(this._windowSelector);}
-WebInspector.OverviewGrid.WindowSelector.prototype={_createSelectorElement:function(parent,left,width,height)
-{var selectorElement=document.createElement("div");selectorElement.className="overview-grid-window-selector";selectorElement.style.left=left+"px";selectorElement.style.width=width+"px";selectorElement.style.top="0px";selectorElement.style.height=height+"px";parent.appendChild(selectorElement);return selectorElement;},_close:function(position)
-{position=Math.max(0,Math.min(position,this._width));this._windowSelector.remove();return this._startPosition<position?{start:this._startPosition,end:position}:{start:position,end:this._startPosition};},_updatePosition:function(position)
-{position=Math.max(0,Math.min(position,this._width));if(position<this._startPosition){this._windowSelector.style.left=position+"px";this._windowSelector.style.right=this._width-this._startPosition+"px";}else{this._windowSelector.style.left=this._startPosition+"px";this._windowSelector.style.right=this._width-position+"px";}}}
-WebInspector.ContentProvider=function(){}
-WebInspector.ContentProvider.prototype={contentURL:function(){},contentType:function(){},requestContent:function(callback){},searchInContent:function(query,caseSensitive,isRegex,callback){}}
-WebInspector.ContentProvider.SearchMatch=function(lineNumber,lineContent){this.lineNumber=lineNumber;this.lineContent=lineContent;}
-WebInspector.ContentProvider.performSearchInContent=function(content,query,caseSensitive,isRegex)
-{var regex=createSearchRegex(query,caseSensitive,isRegex);var result=[];var lineEndings=content.lineEndings();for(var i=0;i<lineEndings.length;++i){var lineStart=i>0?lineEndings[i-1]+1:0;var lineEnd=lineEndings[i];var lineContent=content.substring(lineStart,lineEnd);if(lineContent.length>0&&lineContent.charAt(lineContent.length-1)==="\r")
-lineContent=lineContent.substring(0,lineContent.length-1)
-regex.lastIndex=0;if(regex.exec(lineContent))
-result.push(new WebInspector.ContentProvider.SearchMatch(i,lineContent));}
-return result;}
-WebInspector.Resource=function(request,url,documentURL,frameId,loaderId,type,mimeType,isHidden)
-{this._request=request;this.url=url;this._documentURL=documentURL;this._frameId=frameId;this._loaderId=loaderId;this._type=type||WebInspector.resourceTypes.Other;this._mimeType=mimeType;this._isHidden=isHidden;this._content;this._contentEncoded;this._pendingContentCallbacks=[];if(this._request&&!this._request.finished)
-this._request.addEventListener(WebInspector.NetworkRequest.Events.FinishedLoading,this._requestFinished,this);}
-WebInspector.Resource.Events={MessageAdded:"message-added",MessagesCleared:"messages-cleared",}
-WebInspector.Resource.prototype={get request()
-{return this._request;},get url()
-{return this._url;},set url(x)
-{this._url=x;this._parsedURL=new WebInspector.ParsedURL(x);},get parsedURL()
-{return this._parsedURL;},get documentURL()
-{return this._documentURL;},get frameId()
-{return this._frameId;},get loaderId()
-{return this._loaderId;},get displayName()
-{return this._parsedURL.displayName;},get type()
-{return this._request?this._request.type:this._type;},get mimeType()
-{return this._request?this._request.mimeType:this._mimeType;},get messages()
-{return this._messages||[];},addMessage:function(msg)
-{if(!msg.isErrorOrWarning()||!msg.message)
-return;if(!this._messages)
-this._messages=[];this._messages.push(msg);this.dispatchEventToListeners(WebInspector.Resource.Events.MessageAdded,msg);},get errors()
-{return this._errors||0;},set errors(x)
-{this._errors=x;},get warnings()
-{return this._warnings||0;},set warnings(x)
-{this._warnings=x;},clearErrorsAndWarnings:function()
-{this._messages=[];this._warnings=0;this._errors=0;this.dispatchEventToListeners(WebInspector.Resource.Events.MessagesCleared);},get content()
-{return this._content;},get contentEncoded()
-{return this._contentEncoded;},contentURL:function()
-{return this._url;},contentType:function()
-{return this.type;},requestContent:function(callback)
-{if(typeof this._content!=="undefined"){callback(this._content);return;}
-this._pendingContentCallbacks.push(callback);if(!this._request||this._request.finished)
-this._innerRequestContent();},canonicalMimeType:function()
-{return this.type.canonicalMimeType()||this.mimeType;},searchInContent:function(query,caseSensitive,isRegex,callback)
-{function callbackWrapper(error,searchMatches)
-{callback(searchMatches||[]);}
-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);}
-if(this.frameId)
-PageAgent.searchInResource(this.frameId,this.url,query,caseSensitive,isRegex,callbackWrapper);else
-callback([]);},populateImageSource:function(image)
-{function onResourceContent(content)
-{var imageSrc=WebInspector.contentAsDataURL(this._content,this.mimeType,this._contentEncoded);if(imageSrc===null)
-imageSrc=this.url;image.src=imageSrc;}
-this.requestContent(onResourceContent.bind(this));},_requestFinished:function()
-{this._request.removeEventListener(WebInspector.NetworkRequest.Events.FinishedLoading,this._requestFinished,this);if(this._pendingContentCallbacks.length)
-this._innerRequestContent();},_innerRequestContent:function()
-{if(this._contentRequested)
-return;this._contentRequested=true;function contentLoaded(error,content,contentEncoded)
-{if(error||content===null){loadFallbackContent.call(this,error);return;}
-replyWithContent.call(this,content,contentEncoded);}
-function replyWithContent(content,contentEncoded)
-{this._content=content;this._contentEncoded=contentEncoded;var callbacks=this._pendingContentCallbacks.slice();for(var i=0;i<callbacks.length;++i)
-callbacks[i](this._content);this._pendingContentCallbacks.length=0;delete this._contentRequested;}
-function resourceContentLoaded(error,content,contentEncoded)
-{contentLoaded.call(this,error,content,contentEncoded);}
-function loadFallbackContent(error)
-{var scripts=WebInspector.debuggerModel.scriptsForSourceURL(this.url);if(!scripts.length){console.error("Resource content request failed: "+error);replyWithContent.call(this,null,false);return;}
-var contentProvider;if(this.type===WebInspector.resourceTypes.Document)
-contentProvider=new WebInspector.ConcatenatedScriptsContentProvider(scripts);else if(this.type===WebInspector.resourceTypes.Script)
-contentProvider=scripts[0];if(!contentProvider){console.error("Resource content request failed: "+error);replyWithContent.call(this,null,false);return;}
-contentProvider.requestContent(fallbackContentLoaded.bind(this));}
-function fallbackContentLoaded(content)
-{replyWithContent.call(this,content,false);}
-if(this.request){this.request.requestContent(requestContentLoaded.bind(this));return;}
-function requestContentLoaded(content)
-{contentLoaded.call(this,null,content,this.request.contentEncoded);}
-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)
-{this._requestId=requestId;this.url=url;this._documentURL=documentURL;this._frameId=frameId;this._loaderId=loaderId;this._startTime=-1;this._endTime=-1;this.statusCode=0;this.statusText="";this.requestMethod="";this.requestTime=0;this._type=WebInspector.resourceTypes.Other;this._contentEncoded=false;this._pendingContentCallbacks=[];this._frames=[];this._responseHeaderValues={};}
-WebInspector.NetworkRequest.Events={FinishedLoading:"FinishedLoading",TimingChanged:"TimingChanged",RequestHeadersChanged:"RequestHeadersChanged",ResponseHeadersChanged:"ResponseHeadersChanged",}
-WebInspector.NetworkRequest.InitiatorType={Other:"other",Parser:"parser",Redirect:"redirect",Script:"script"}
-WebInspector.NetworkRequest.NameValue;WebInspector.NetworkRequest.prototype={get requestId()
-{return this._requestId;},set requestId(requestId)
-{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._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()
-{return this._loaderId;},get startTime()
-{return this._startTime||-1;},set startTime(x)
-{this._startTime=x;},get responseReceivedTime()
-{return this._responseReceivedTime||-1;},set responseReceivedTime(x)
-{this._responseReceivedTime=x;},get endTime()
-{return this._endTime||-1;},set endTime(x)
-{if(this.timing&&this.timing.requestTime){this._endTime=Math.max(x,this.responseReceivedTime);}else{this._endTime=x;if(this._responseReceivedTime>x)
-this._responseReceivedTime=x;}},get duration()
-{if(this._endTime===-1||this._startTime===-1)
-return-1;return this._endTime-this._startTime;},get latency()
-{if(this._responseReceivedTime===-1||this._startTime===-1)
-return-1;return this._responseReceivedTime-this._startTime;},get resourceSize()
-{return this._resourceSize||0;},set resourceSize(x)
-{this._resourceSize=x;},get transferSize()
-{if(typeof this._transferSize==="number")
-return this._transferSize;if(this.statusCode===304)
-return this.responseHeadersSize;if(this._cached)
-return 0;var bodySize=Number(this.responseHeaderValue("Content-Length")||this.resourceSize);return this.responseHeadersSize+bodySize;},increaseTransferSize:function(x)
-{this._transferSize=(this._transferSize||0)+x;},get finished()
-{return this._finished;},set finished(x)
-{if(this._finished===x)
-return;this._finished=x;if(x){this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.FinishedLoading,this);if(this._pendingContentCallbacks.length)
-this._innerRequestContent();}},get failed()
-{return this._failed;},set failed(x)
-{this._failed=x;},get canceled()
-{return this._canceled;},set canceled(x)
-{this._canceled=x;},get cached()
-{return!!this._cached&&!this._transferSize;},set cached(x)
-{this._cached=x;if(x)
-delete this._timing;},get timing()
-{return this._timing;},set timing(x)
-{if(x&&!this._cached){this._startTime=x.requestTime;this._responseReceivedTime=x.requestTime+x.receiveHeadersEnd/1000.0;this._timing=x;this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.TimingChanged,this);}},get mimeType()
-{return this._mimeType;},set mimeType(x)
-{this._mimeType=x;},get displayName()
-{return this._parsedURL.displayName;},name:function()
-{if(this._name)
-return this._name;this._parseNameAndPathFromURL();return this._name;},path:function()
-{if(this._path)
-return this._path;this._parseNameAndPathFromURL();return this._path;},_parseNameAndPathFromURL:function()
-{if(this._parsedURL.isDataURL()){this._name=this._parsedURL.dataURLDisplayName();this._path="";}else if(this._parsedURL.isAboutBlank()){this._name=this._parsedURL.url;this._path="";}else{this._path=this._parsedURL.host+this._parsedURL.folderPathComponents;this._path=this._path.trimURL(WebInspector.inspectedPageDomain?WebInspector.inspectedPageDomain:"");if(this._parsedURL.lastPathComponent||this._parsedURL.queryParams)
-this._name=this._parsedURL.lastPathComponent+(this._parsedURL.queryParams?"?"+this._parsedURL.queryParams:"");else if(this._parsedURL.folderPathComponents){this._name=this._parsedURL.folderPathComponents.substring(this._parsedURL.folderPathComponents.lastIndexOf("/")+1)+"/";this._path=this._path.substring(0,this._path.lastIndexOf("/"));}else{this._name=this._parsedURL.host;this._path="";}}},get folder()
-{var path=this._parsedURL.path;var indexOfQuery=path.indexOf("?");if(indexOfQuery!==-1)
-path=path.substring(0,indexOfQuery);var lastSlashIndex=path.lastIndexOf("/");return lastSlashIndex!==-1?path.substring(0,lastSlashIndex):"";},get type()
-{return this._type;},set type(x)
-{this._type=x;},get domain()
-{return this._parsedURL.host;},get scheme()
-{return this._parsedURL.scheme;},get redirectSource()
-{if(this.redirects&&this.redirects.length>0)
-return this.redirects[this.redirects.length-1];return this._redirectSource;},set redirectSource(x)
-{this._redirectSource=x;delete this._initiatorInfo;},requestHeaders:function()
-{return this._requestHeaders||[];},setRequestHeaders:function(headers)
-{this._requestHeaders=headers;delete this._requestCookies;this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.RequestHeadersChanged);},requestHeadersText:function()
-{return this._requestHeadersText;},setRequestHeadersText:function(text)
-{this._requestHeadersText=text;this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.RequestHeadersChanged);},requestHeaderValue:function(headerName)
-{return this._headerValue(this.requestHeaders(),headerName);},get requestCookies()
-{if(!this._requestCookies)
-this._requestCookies=WebInspector.CookieParser.parseCookie(this.requestHeaderValue("Cookie"));return this._requestCookies;},get requestFormData()
-{return this._requestFormData;},set requestFormData(x)
-{this._requestFormData=x;delete this._parsedFormParameters;},requestHttpVersion:function()
-{var headersText=this.requestHeadersText();if(!headersText)
-return undefined;var firstLine=headersText.split(/\r\n/)[0];var match=firstLine.match(/(HTTP\/\d+\.\d+)$/);return match?match[1]:undefined;},get responseHeaders()
-{return this._responseHeaders||[];},set responseHeaders(x)
-{this._responseHeaders=x;delete this._sortedResponseHeaders;delete this._responseCookies;this._responseHeaderValues={};this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.ResponseHeadersChanged);},get responseHeadersText()
-{if(typeof this._responseHeadersText==="undefined"){this._responseHeadersText="HTTP/1.1 "+this.statusCode+" "+this.statusText+"\r\n";for(var i=0;i<this.responseHeaders.length;++i)
-this._responseHeadersText+=this.responseHeaders[i].name+": "+this.responseHeaders[i].value+"\r\n";}
-return this._responseHeadersText;},set responseHeadersText(x)
-{this._responseHeadersText=x;this.dispatchEventToListeners(WebInspector.NetworkRequest.Events.ResponseHeadersChanged);},get responseHeadersSize()
-{return this.responseHeadersText.length;},get sortedResponseHeaders()
-{if(this._sortedResponseHeaders!==undefined)
-return this._sortedResponseHeaders;this._sortedResponseHeaders=this.responseHeaders.slice();this._sortedResponseHeaders.sort(function(a,b){return a.name.toLowerCase().compareTo(b.name.toLowerCase());});return this._sortedResponseHeaders;},responseHeaderValue:function(headerName)
-{var value=this._responseHeaderValues[headerName];if(value===undefined){value=this._headerValue(this.responseHeaders,headerName);this._responseHeaderValues[headerName]=(value!==undefined)?value:null;}
-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!==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()
-{if(this._parsedFormParameters)
-return this._parsedFormParameters;if(!this.requestFormData)
-return null;var requestContentType=this.requestContentType();if(!requestContentType||!requestContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i))
-return null;this._parsedFormParameters=this._parseParameters(this.requestFormData);return this._parsedFormParameters;},get responseHttpVersion()
-{var match=this.responseHeadersText.match(/^(HTTP\/\d+\.\d+)/);return match?match[1]:undefined;},_parseParameters:function(queryString)
-{function parseNameValue(pair)
-{var splitPair=pair.split("=",2);return{name:splitPair[0],value:splitPair[1]||""};}
-return queryString.split("&").map(parseNameValue);},_headerValue:function(headers,headerName)
-{headerName=headerName.toLowerCase();var values=[];for(var i=0;i<headers.length;++i){if(headers[i].name.toLowerCase()===headerName)
-values.push(headers[i].value);}
-if(!values.length)
-return undefined;if(headerName==="set-cookie")
-return values.join("\n");return values.join(", ");},get content()
-{return this._content;},get contentEncoded()
-{return this._contentEncoded;},contentURL:function()
-{return this._url;},contentType:function()
-{return this._type;},requestContent:function(callback)
-{if(this.type===WebInspector.resourceTypes.WebSocket){callback(null);return;}
-if(typeof this._content!=="undefined"){callback(this.content||null);return;}
-this._pendingContentCallbacks.push(callback);if(this.finished)
-this._innerRequestContent();},searchInContent:function(query,caseSensitive,isRegex,callback)
-{callback([]);},isHttpFamily:function()
-{return!!this.url.match(/^https?:/i);},requestContentType:function()
-{return this.requestHeaderValue("Content-Type");},isPingRequest:function()
-{return"text/ping"===this.requestContentType();},hasErrorStatusCode:function()
-{return this.statusCode>=400;},populateImageSource:function(image)
-{function onResourceContent(content)
-{var imageSrc=this.asDataURL();if(imageSrc===null)
-imageSrc=this.url;image.src=imageSrc;}
-this.requestContent(onResourceContent.bind(this));},asDataURL:function()
-{return WebInspector.contentAsDataURL(this._content,this.mimeType,this._contentEncoded);},_innerRequestContent:function()
-{if(this._contentRequested)
-return;this._contentRequested=true;function onResourceContent(error,content,contentEncoded)
-{this._content=error?null:content;this._contentEncoded=contentEncoded;var callbacks=this._pendingContentCallbacks.slice();for(var i=0;i<callbacks.length;++i)
-callbacks[i](this._content);this._pendingContentCallbacks.length=0;delete this._contentRequested;}
-NetworkAgent.getResponseBody(this._requestId,onResourceContent.bind(this));},initiatorInfo:function()
-{if(this._initiatorInfo)
-return this._initiatorInfo;var type=WebInspector.NetworkRequest.InitiatorType.Other;var url="";var lineNumber=-Infinity;var columnNumber=-Infinity;if(this.redirectSource){type=WebInspector.NetworkRequest.InitiatorType.Redirect;url=this.redirectSource.url;}else if(this.initiator){if(this.initiator.type===NetworkAgent.InitiatorType.Parser){type=WebInspector.NetworkRequest.InitiatorType.Parser;url=this.initiator.url;lineNumber=this.initiator.lineNumber;}else if(this.initiator.type===NetworkAgent.InitiatorType.Script){var topFrame=this.initiator.stackTrace[0];if(topFrame.url){type=WebInspector.NetworkRequest.InitiatorType.Script;url=topFrame.url;lineNumber=topFrame.lineNumber;columnNumber=topFrame.columnNumber;}}}
-this._initiatorInfo={type:type,url:url,source:WebInspector.displayNameForURL(url),lineNumber:lineNumber,columnNumber:columnNumber};return this._initiatorInfo;},frames:function()
-{return this._frames;},frame:function(position)
-{return this._frames[position];},addFrameError:function(errorMessage,time)
-{this._pushFrame({errorMessage:errorMessage,time:time});},addFrame:function(response,time,sent)
-{response.time=time;if(sent)
-response.sent=sent;this._pushFrame(response);},_pushFrame:function(frameOrError)
-{if(this._frames.length>=100)
-this._frames.splice(0,10);this._frames.push(frameOrError);},__proto__:WebInspector.Object.prototype}
-WebInspector.UISourceCode=function(project,parentPath,name,originURL,url,contentType,isEditable)
-{this._project=project;this._parentPath=parentPath;this._name=name;this._originURL=originURL;this._url=url;this._contentType=contentType;this._isEditable=isEditable;this._requestContentCallbacks=[];this._liveLocations=new Set();this._consoleMessages=[];this.history=[];if(this.isEditable()&&this._url)
-this._restoreRevisionHistory();this._formatterMapping=new WebInspector.IdentityFormatterSourceMapping();}
-WebInspector.UISourceCode.Events={FormattedChanged:"FormattedChanged",WorkingCopyChanged:"WorkingCopyChanged",WorkingCopyCommitted:"WorkingCopyCommitted",TitleChanged:"TitleChanged",SavedStateUpdated:"SavedStateUpdated",ConsoleMessageAdded:"ConsoleMessageAdded",ConsoleMessageRemoved:"ConsoleMessageRemoved",ConsoleMessagesCleared:"ConsoleMessagesCleared",SourceMappingChanged:"SourceMappingChanged",}
-WebInspector.UISourceCode.prototype={get url()
-{return this._url;},name:function()
-{return this._name;},parentPath:function()
-{return this._parentPath;},path:function()
-{return this._parentPath?this._parentPath+"/"+this._name:this._name;},fullDisplayName:function()
-{return this._project.displayName()+"/"+(this._parentPath?this._parentPath+"/":"")+this.displayName(true);},displayName:function(skipTrim)
-{var displayName=this.name()||WebInspector.UIString("(index)");return skipTrim?displayName:displayName.trimEnd(100);},uri:function()
-{var path=this.path();if(!this._project.id())
-return path;if(!path)
-return this._project.id();return this._project.id()+"/"+path;},originURL:function()
-{return this._originURL;},canRename:function()
-{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)
-{var oldURI=this.uri();this._name=name;if(url)
-this._url=url;if(originURL)
-this._originURL=originURL;if(contentType)
-this._contentType=contentType;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.TitleChanged,oldURI);},contentURL:function()
-{return this.originURL();},contentType:function()
-{return this._contentType;},scriptFile:function()
-{return this._scriptFile;},setScriptFile:function(scriptFile)
-{this._scriptFile=scriptFile;},project:function()
-{return this._project;},requestMetadata:function(callback)
-{this._project.requestMetadata(this,callback);},requestContent:function(callback)
-{if(this._content||this._contentLoaded){callback(this._content);return;}
-this._requestContentCallbacks.push(callback);if(this._requestContentCallbacks.length===1)
-this._project.requestFileContent(this,this._fireContentAvailable.bind(this));},checkContentUpdated:function(callback)
-{if(!this._project.canSetFileContent())
-return;if(this._checkingContent)
-return;this._checkingContent=true;this._project.requestFileContent(this,contentLoaded.bind(this));function contentLoaded(updatedContent)
-{if(updatedContent===null){var workingCopy=this.workingCopy();this._commitContent("",false);this.setWorkingCopy(workingCopy);delete this._checkingContent;if(callback)
-callback();return;}
-if(typeof this._lastAcceptedContent==="string"&&this._lastAcceptedContent===updatedContent){delete this._checkingContent;if(callback)
-callback();return;}
-if(this._content===updatedContent){delete this._lastAcceptedContent;delete this._checkingContent;if(callback)
-callback();return;}
-if(!this.isDirty()){this._commitContent(updatedContent,false);delete this._checkingContent;if(callback)
-callback();return;}
-var shouldUpdate=window.confirm(WebInspector.UIString("This file was changed externally. Would you like to reload it?"));if(shouldUpdate)
-this._commitContent(updatedContent,false);else
-this._lastAcceptedContent=updatedContent;delete this._checkingContent;if(callback)
-callback();}},requestOriginalContent:function(callback)
-{this._project.requestFileContent(this,callback);},_commitContent:function(content,shouldSetContentInProject)
-{delete this._lastAcceptedContent;this._content=content;this._contentLoaded=true;var lastRevision=this.history.length?this.history[this.history.length-1]:null;if(!lastRevision||lastRevision._content!==this._content){var revision=new WebInspector.Revision(this,this._content,new Date());this.history.push(revision);revision._persist();}
-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(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(this._project.workspace().hasResourceContentTrackingExtensions())
-return false;return!!this._hasCommittedChanges;},addRevision:function(content)
-{this._commitContent(content,true);},_restoreRevisionHistory:function()
-{if(!window.localStorage)
-return;var registry=WebInspector.Revision._revisionHistoryRegistry();var historyItems=registry[this.url];if(!historyItems)
-return;function filterOutStale(historyItem)
-{if(!WebInspector.resourceTreeModel.mainFrame)
-return false;return historyItem.loaderId===WebInspector.resourceTreeModel.mainFrame.loaderId;}
-historyItems=historyItems.filter(filterOutStale);if(!historyItems.length)
-return;for(var i=0;i<historyItems.length;++i){var content=window.localStorage[historyItems[i].key];var timestamp=new Date(historyItems[i].timestamp);var revision=new WebInspector.Revision(this,content,timestamp);this.history.push(revision);}
-this._content=this.history[this.history.length-1].content;this._hasCommittedChanges=true;this._contentLoaded=true;},_clearRevisionHistory:function()
-{if(!window.localStorage)
-return;var registry=WebInspector.Revision._revisionHistoryRegistry();var historyItems=registry[this.url];for(var i=0;historyItems&&i<historyItems.length;++i)
-delete window.localStorage[historyItems[i].key];delete registry[this.url];window.localStorage["revision-history"]=JSON.stringify(registry);},revertToOriginal:function()
-{function callback(content)
-{if(typeof content!=="string")
-return;this.addRevision(content);}
-this.requestOriginalContent(callback.bind(this));WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.ApplyOriginalContent,url:this.url});},revertAndClearHistory:function(callback)
-{function revert(content)
-{if(typeof content!=="string")
-return;this.addRevision(content);this._clearRevisionHistory();this.history=[];callback(this);}
-this.requestOriginalContent(revert.bind(this));WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.RevertRevision,url:this.url});},isEditable:function()
-{return this._isEditable;},workingCopy:function()
-{if(this._workingCopyGetter){this._workingCopy=this._workingCopyGetter();delete this._workingCopyGetter;}
-if(this.isDirty())
-return this._workingCopy;return this._content;},resetWorkingCopy:function()
-{this._innerResetWorkingCopy();this.dispatchEventToListeners(WebInspector.UISourceCode.Events.WorkingCopyChanged);},_innerResetWorkingCopy:function()
-{delete this._workingCopy;delete this._workingCopyGetter;},setWorkingCopy:function(newWorkingCopy)
-{this._workingCopy=newWorkingCopy;delete this._workingCopyGetter;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.WorkingCopyChanged);},setWorkingCopyGetter:function(workingCopyGetter)
-{this._workingCopyGetter=workingCopyGetter;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.WorkingCopyChanged);},removeWorkingCopyGetter:function()
-{if(!this._workingCopyGetter)
-return;this._workingCopy=this._workingCopyGetter();delete this._workingCopyGetter;},commitWorkingCopy:function(callback)
-{if(!this.isDirty()){callback(null);return;}
-this._commitContent(this.workingCopy(),true);callback(null);WebInspector.notifications.dispatchEventToListeners(WebInspector.UserMetrics.UserAction,{action:WebInspector.UserMetrics.UserActionNames.FileSaved,url:this.url});},isDirty:function()
-{return typeof this._workingCopy!=="undefined"||typeof this._workingCopyGetter!=="undefined";},_mimeType:function()
-{return this.contentType().canonicalMimeType();},highlighterType:function()
-{var lastIndexOfDot=this._name.lastIndexOf(".");var extension=lastIndexOfDot!==-1?this._name.substr(lastIndexOfDot+1):"";var indexOfQuestionMark=extension.indexOf("?");if(indexOfQuestionMark!==-1)
-extension=extension.substr(0,indexOfQuestionMark);var mimeType=WebInspector.ResourceType.mimeTypesForExtensions[extension.toLowerCase()];return mimeType||this.contentType().canonicalMimeType();},content:function()
-{return this._content;},searchInContent:function(query,caseSensitive,isRegex,callback)
-{var content=this.content();if(content){var provider=new WebInspector.StaticContentProvider(this.contentType(),content);provider.searchInContent(query,caseSensitive,isRegex,callback);return;}
-this._project.searchInFileContent(this,query,caseSensitive,isRegex,callback);},_fireContentAvailable:function(content)
-{this._contentLoaded=true;this._content=content;var callbacks=this._requestContentCallbacks.slice();this._requestContentCallbacks=[];for(var i=0;i<callbacks.length;++i)
-callbacks[i](content);if(this._formatOnLoad){delete this._formatOnLoad;this.setFormatted(true);}},contentLoaded:function()
-{return this._contentLoaded;},uiLocationToRawLocation:function(lineNumber,columnNumber)
-{if(!this._sourceMapping)
-return null;var location=this._formatterMapping.formattedToOriginal(lineNumber,columnNumber);return this._sourceMapping.uiLocationToRawLocation(this,location[0],location[1]);},addLiveLocation:function(liveLocation)
-{this._liveLocations.add(liveLocation);},removeLiveLocation:function(liveLocation)
-{this._liveLocations.remove(liveLocation);},updateLiveLocations:function()
-{var items=this._liveLocations.items();for(var i=0;i<items.length;++i)
-items[i].update();},overrideLocation:function(uiLocation)
-{var location=this._formatterMapping.originalToFormatted(uiLocation.lineNumber,uiLocation.columnNumber);uiLocation.lineNumber=location[0];uiLocation.columnNumber=location[1];return uiLocation;},consoleMessages:function()
-{return this._consoleMessages;},consoleMessageAdded:function(message)
-{this._consoleMessages.push(message);this.dispatchEventToListeners(WebInspector.UISourceCode.Events.ConsoleMessageAdded,message);},consoleMessageRemoved:function(message)
-{this._consoleMessages.remove(message);this.dispatchEventToListeners(WebInspector.UISourceCode.Events.ConsoleMessageRemoved,message);},consoleMessagesCleared:function()
-{this._consoleMessages=[];this.dispatchEventToListeners(WebInspector.UISourceCode.Events.ConsoleMessagesCleared);},formatted:function()
-{return!!this._formatted;},setFormatted:function(formatted)
-{if(!this.contentLoaded()){this._formatOnLoad=formatted;return;}
-if(this._formatted===formatted)
-return;if(this.isDirty())
-return;this._formatted=formatted;this._contentLoaded=false;this._content=false;this.requestContent(didGetContent.bind(this));function didGetContent(content)
-{var formatter;if(!formatted)
-formatter=new WebInspector.IdentityFormatter();else
-formatter=WebInspector.Formatter.createFormatter(this.contentType());formatter.formatContent(this.highlighterType(),content||"",formattedChanged.bind(this));function formattedChanged(content,formatterMapping)
-{this._content=content;this._innerResetWorkingCopy();var oldFormatter=this._formatterMapping;this._formatterMapping=formatterMapping;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.FormattedChanged,{content:content,oldFormatter:oldFormatter,newFormatter:this._formatterMapping,});this.updateLiveLocations();}}},createFormatter:function()
-{return null;},hasSourceMapping:function()
-{return!!this._sourceMapping;},setSourceMapping:function(sourceMapping)
-{if(this._sourceMapping===sourceMapping)
-return;this._sourceMapping=sourceMapping;this.dispatchEventToListeners(WebInspector.UISourceCode.Events.SourceMappingChanged);},__proto__:WebInspector.Object.prototype}
-WebInspector.UILocation=function(uiSourceCode,lineNumber,columnNumber)
-{this.uiSourceCode=uiSourceCode;this.lineNumber=lineNumber;this.columnNumber=columnNumber;}
-WebInspector.UILocation.prototype={uiLocationToRawLocation:function()
-{return this.uiSourceCode.uiLocationToRawLocation(this.lineNumber,this.columnNumber);},url:function()
-{return this.uiSourceCode.contentURL();},linkText:function()
-{var linkText=this.uiSourceCode.displayName();if(typeof this.lineNumber==="number")
-linkText+=":"+(this.lineNumber+1);return linkText;}}
-WebInspector.RawLocation=function()
-{}
-WebInspector.LiveLocation=function(rawLocation,updateDelegate)
-{this._rawLocation=rawLocation;this._updateDelegate=updateDelegate;this._uiSourceCodes=[];}
-WebInspector.LiveLocation.prototype={update:function()
-{var uiLocation=this.uiLocation();if(uiLocation){var uiSourceCode=uiLocation.uiSourceCode;if(this._uiSourceCodes.indexOf(uiSourceCode)===-1){uiSourceCode.addLiveLocation(this);this._uiSourceCodes.push(uiSourceCode);}
-var oneTime=this._updateDelegate(uiLocation);if(oneTime)
-this.dispose();}},rawLocation:function()
-{return this._rawLocation;},uiLocation:function()
-{},dispose:function()
-{for(var i=0;i<this._uiSourceCodes.length;++i)
-this._uiSourceCodes[i].removeLiveLocation(this);this._uiSourceCodes=[];}}
-WebInspector.Revision=function(uiSourceCode,content,timestamp)
-{this._uiSourceCode=uiSourceCode;this._content=content;this._timestamp=timestamp;}
-WebInspector.Revision._revisionHistoryRegistry=function()
-{if(!WebInspector.Revision._revisionHistoryRegistryObject){if(window.localStorage){var revisionHistory=window.localStorage["revision-history"];try{WebInspector.Revision._revisionHistoryRegistryObject=revisionHistory?JSON.parse(revisionHistory):{};}catch(e){WebInspector.Revision._revisionHistoryRegistryObject={};}}else
-WebInspector.Revision._revisionHistoryRegistryObject={};}
-return WebInspector.Revision._revisionHistoryRegistryObject;}
-WebInspector.Revision.filterOutStaleRevisions=function()
-{if(!window.localStorage)
-return;var registry=WebInspector.Revision._revisionHistoryRegistry();var filteredRegistry={};for(var url in registry){var historyItems=registry[url];var filteredHistoryItems=[];for(var i=0;historyItems&&i<historyItems.length;++i){var historyItem=historyItems[i];if(historyItem.loaderId===WebInspector.resourceTreeModel.mainFrame.loaderId){filteredHistoryItems.push(historyItem);filteredRegistry[url]=filteredHistoryItems;}else
-delete window.localStorage[historyItem.key];}}
-WebInspector.Revision._revisionHistoryRegistryObject=filteredRegistry;function persist()
-{window.localStorage["revision-history"]=JSON.stringify(filteredRegistry);}
-setTimeout(persist,0);}
-WebInspector.Revision.prototype={get uiSourceCode()
-{return this._uiSourceCode;},get timestamp()
-{return this._timestamp;},get content()
-{return this._content||null;},revertToThis:function()
-{function revert(content)
-{if(this._uiSourceCode._content!==content)
-this._uiSourceCode.addRevision(content);}
-this.requestContent(revert.bind(this));},contentURL:function()
-{return this._uiSourceCode.originURL();},contentType:function()
-{return this._uiSourceCode.contentType();},requestContent:function(callback)
-{callback(this._content||"");},searchInContent:function(query,caseSensitive,isRegex,callback)
-{callback([]);},_persist:function()
-{if(this._uiSourceCode.project().type()===WebInspector.projectTypes.FileSystem)
-return;if(!window.localStorage)
-return;var url=this.contentURL();if(!url||url.startsWith("inspector://"))
-return;var loaderId=WebInspector.resourceTreeModel.mainFrame.loaderId;var timestamp=this.timestamp.getTime();var key="revision-history|"+url+"|"+loaderId+"|"+timestamp;var registry=WebInspector.Revision._revisionHistoryRegistry();var historyItems=registry[url];if(!historyItems){historyItems=[];registry[url]=historyItems;}
-historyItems.push({url:url,loaderId:loaderId,timestamp:timestamp,key:key});function persist()
-{window.localStorage[key]=this._content;window.localStorage["revision-history"]=JSON.stringify(registry);}
-setTimeout(persist.bind(this),0);}}
-WebInspector.CSSStyleModel=function(workspace)
-{this._workspace=workspace;this._pendingCommandsMajorState=[];this._styleLoader=new WebInspector.CSSStyleModel.ComputedStyleLoader(this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedoRequested,this._undoRedoRequested,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedoCompleted,this._undoRedoCompleted,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameCreatedOrNavigated,this._mainFrameCreatedOrNavigated,this);this._namedFlowCollections={};WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._resetNamedFlowCollections,this);InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this));CSSAgent.enable(this._wasEnabled.bind(this));this._resetStyleSheets();}
-WebInspector.CSSStyleModel.parseRuleMatchArrayPayload=function(matchArray)
-{if(!matchArray)
-return[];var result=[];for(var i=0;i<matchArray.length;++i)
-result.push(WebInspector.CSSRule.parsePayload(matchArray[i].rule,matchArray[i].matchingSelectors));return result;}
-WebInspector.CSSStyleModel.Events={ModelWasEnabled:"ModelWasEnabled",StyleSheetAdded:"StyleSheetAdded",StyleSheetChanged:"StyleSheetChanged",StyleSheetRemoved:"StyleSheetRemoved",MediaQueryResultChanged:"MediaQueryResultChanged",NamedFlowCreated:"NamedFlowCreated",NamedFlowRemoved:"NamedFlowRemoved",RegionLayoutUpdated:"RegionLayoutUpdated",RegionOversetChanged:"RegionOversetChanged"}
-WebInspector.CSSStyleModel.MediaTypes=["all","braille","embossed","handheld","print","projection","screen","speech","tty","tv"];WebInspector.CSSStyleModel.prototype={isEnabled:function()
-{return this._isEnabled;},_wasEnabled:function()
-{this._isEnabled=true;this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.ModelWasEnabled);},getMatchedStylesAsync:function(nodeId,needPseudo,needInherited,userCallback)
-{function callback(userCallback,error,matchedPayload,pseudoPayload,inheritedPayload)
-{if(error){if(userCallback)
-userCallback(null);return;}
-var result={};result.matchedCSSRules=WebInspector.CSSStyleModel.parseRuleMatchArrayPayload(matchedPayload);result.pseudoElements=[];if(pseudoPayload){for(var i=0;i<pseudoPayload.length;++i){var entryPayload=pseudoPayload[i];result.pseudoElements.push({pseudoId:entryPayload.pseudoId,rules:WebInspector.CSSStyleModel.parseRuleMatchArrayPayload(entryPayload.matches)});}}
-result.inherited=[];if(inheritedPayload){for(var i=0;i<inheritedPayload.length;++i){var entryPayload=inheritedPayload[i];var entry={};if(entryPayload.inlineStyle)
-entry.inlineStyle=WebInspector.CSSStyleDeclaration.parsePayload(entryPayload.inlineStyle);if(entryPayload.matchedCSSRules)
-entry.matchedCSSRules=WebInspector.CSSStyleModel.parseRuleMatchArrayPayload(entryPayload.matchedCSSRules);result.inherited.push(entry);}}
-if(userCallback)
-userCallback(result);}
-CSSAgent.getMatchedStylesForNode(nodeId,needPseudo,needInherited,callback.bind(null,userCallback));},getComputedStyleAsync:function(nodeId,userCallback)
-{this._styleLoader.getComputedStyle(nodeId,userCallback);},getPlatformFontsForNode:function(nodeId,callback)
-{function platformFontsCallback(error,cssFamilyName,fonts)
-{if(error)
-callback(null,null);else
-callback(cssFamilyName,fonts);}
-CSSAgent.getPlatformFontsForNode(nodeId,platformFontsCallback);},getInlineStylesAsync:function(nodeId,userCallback)
-{function callback(userCallback,error,inlinePayload,attributesStylePayload)
-{if(error||!inlinePayload)
-userCallback(null,null);else
-userCallback(WebInspector.CSSStyleDeclaration.parsePayload(inlinePayload),attributesStylePayload?WebInspector.CSSStyleDeclaration.parsePayload(attributesStylePayload):null);}
-CSSAgent.getInlineStylesForNode(nodeId,callback.bind(null,userCallback));},forcePseudoState:function(nodeId,forcedPseudoClasses,userCallback)
-{CSSAgent.forcePseudoState(nodeId,forcedPseudoClasses||[],userCallback);},getNamedFlowCollectionAsync:function(documentNodeId,userCallback)
-{var namedFlowCollection=this._namedFlowCollections[documentNodeId];if(namedFlowCollection){userCallback(namedFlowCollection);return;}
-function callback(userCallback,error,namedFlowPayload)
-{if(error||!namedFlowPayload)
-userCallback(null);else{var namedFlowCollection=new WebInspector.NamedFlowCollection(namedFlowPayload);this._namedFlowCollections[documentNodeId]=namedFlowCollection;userCallback(namedFlowCollection);}}
-CSSAgent.getNamedFlowCollection(documentNodeId,callback.bind(this,userCallback));},getFlowByNameAsync:function(documentNodeId,flowName,userCallback)
-{var namedFlowCollection=this._namedFlowCollections[documentNodeId];if(namedFlowCollection){userCallback(namedFlowCollection.flowByName(flowName));return;}
-function callback(userCallback,namedFlowCollection)
-{if(!namedFlowCollection)
-userCallback(null);else
-userCallback(namedFlowCollection.flowByName(flowName));}
-this.getNamedFlowCollectionAsync(documentNodeId,callback.bind(this,userCallback));},setRuleSelector:function(ruleId,nodeId,newSelector,successCallback,failureCallback)
-{function callback(nodeId,successCallback,failureCallback,newSelector,error,rulePayload)
-{this._pendingCommandsMajorState.pop();if(error){failureCallback();return;}
-WebInspector.domAgent.markUndoableState();this._computeMatchingSelectors(rulePayload,nodeId,successCallback,failureCallback);}
-this._pendingCommandsMajorState.push(true);CSSAgent.setRuleSelector(ruleId,newSelector,callback.bind(this,nodeId,successCallback,failureCallback,newSelector));},_computeMatchingSelectors:function(rulePayload,nodeId,successCallback,failureCallback)
-{var ownerDocumentId=this._ownerDocumentId(nodeId);if(!ownerDocumentId){failureCallback();return;}
-var rule=WebInspector.CSSRule.parsePayload(rulePayload);var matchingSelectors=[];var allSelectorsBarrier=new CallbackBarrier();for(var i=0;i<rule.selectors.length;++i){var selector=rule.selectors[i];var boundCallback=allSelectorsBarrier.createCallback(selectorQueried.bind(this,i,nodeId,matchingSelectors));WebInspector.domAgent.querySelectorAll(ownerDocumentId,selector.value,boundCallback);}
-allSelectorsBarrier.callWhenDone(function(){rule.matchingSelectors=matchingSelectors;successCallback(rule);});function selectorQueried(index,nodeId,matchingSelectors,matchingNodeIds)
-{if(!matchingNodeIds)
-return;if(matchingNodeIds.indexOf(nodeId)!==-1)
-matchingSelectors.push(index);}},addRule:function(nodeId,selector,successCallback,failureCallback)
-{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));},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)
-{var node=WebInspector.domAgent.nodeForId(nodeId);if(!node)
-return null;return node.ownerDocument?node.ownerDocument.id:null;},_fireStyleSheetChanged:function(styleSheetId)
-{this._styleLoader.reset();if(!this._pendingCommandsMajorState.length)
-return;var majorChange=this._pendingCommandsMajorState[this._pendingCommandsMajorState.length-1];if(!styleSheetId||!this.hasEventListeners(WebInspector.CSSStyleModel.Events.StyleSheetChanged))
-return;this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.StyleSheetChanged,{styleSheetId:styleSheetId,majorChange:majorChange});},_styleSheetAdded:function(header)
-{console.assert(!this._styleSheetIdToHeader[header.styleSheetId]);var styleSheetHeader=new WebInspector.CSSStyleSheetHeader(header);this._styleSheetIdToHeader[header.styleSheetId]=styleSheetHeader;var url=styleSheetHeader.resourceURL();if(!this._styleSheetIdsForURL[url])
-this._styleSheetIdsForURL[url]={};var frameIdToStyleSheetIds=this._styleSheetIdsForURL[url];var styleSheetIds=frameIdToStyleSheetIds[styleSheetHeader.frameId];if(!styleSheetIds){styleSheetIds=[];frameIdToStyleSheetIds[styleSheetHeader.frameId]=styleSheetIds;}
-styleSheetIds.push(styleSheetHeader.id);this._styleLoader.reset();this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.StyleSheetAdded,styleSheetHeader);},_styleSheetRemoved:function(id)
-{var header=this._styleSheetIdToHeader[id];console.assert(header);delete this._styleSheetIdToHeader[id];var url=header.resourceURL();var frameIdToStyleSheetIds=this._styleSheetIdsForURL[url];frameIdToStyleSheetIds[header.frameId].remove(id);if(!frameIdToStyleSheetIds[header.frameId].length){delete frameIdToStyleSheetIds[header.frameId];if(!Object.keys(this._styleSheetIdsForURL[url]).length)
-delete this._styleSheetIdsForURL[url];}
-this._styleLoader.reset();this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,header);},styleSheetIdsForURL:function(url)
-{var frameIdToStyleSheetIds=this._styleSheetIdsForURL[url];if(!frameIdToStyleSheetIds)
-return[];var result=[];for(var frameId in frameIdToStyleSheetIds)
-result=result.concat(frameIdToStyleSheetIds[frameId]);return result;},styleSheetIdsByFrameIdForURL:function(url)
-{var styleSheetIdsForFrame=this._styleSheetIdsForURL[url];if(!styleSheetIdsForFrame)
-return{};return styleSheetIdsForFrame;},_namedFlowCreated: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.NamedFlowCreated,namedFlow);},_namedFlowRemoved:function(documentNodeId,flowName)
-{var namedFlowCollection=this._namedFlowCollections[documentNodeId];if(!namedFlowCollection)
-return;namedFlowCollection._removeNamedFlow(flowName);this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.NamedFlowRemoved,{documentNodeId:documentNodeId,flowName:flowName});},_regionLayoutUpdated: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.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)
-{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);}},_undoRedoRequested:function()
-{this._pendingCommandsMajorState.push(true);},_undoRedoCompleted:function()
-{this._pendingCommandsMajorState.pop();},_mainFrameCreatedOrNavigated:function()
-{this._resetStyleSheets();},_resetStyleSheets:function()
-{this._styleSheetIdsForURL={};this._styleSheetIdToHeader={};},_resetNamedFlowCollections:function()
-{this._namedFlowCollections={};},updateLocations:function()
-{var headers=Object.values(this._styleSheetIdToHeader);for(var i=0;i<headers.length;++i)
-headers[i].updateLocations();},createLiveLocation:function(styleSheetId,rawLocation,updateDelegate)
-{if(!rawLocation)
-return null;var header=styleSheetId?this.styleSheetHeaderForId(styleSheetId):null;return new WebInspector.CSSStyleModel.LiveLocation(this,header,rawLocation,updateDelegate);},rawLocationToUILocation:function(rawLocation)
-{var frameIdToSheetIds=this._styleSheetIdsForURL[rawLocation.url];if(!frameIdToSheetIds)
-return null;var styleSheetIds=[];for(var frameId in frameIdToSheetIds)
-styleSheetIds=styleSheetIds.concat(frameIdToSheetIds[frameId]);var uiLocation;for(var i=0;!uiLocation&&i<styleSheetIds.length;++i){var header=this.styleSheetHeaderForId(styleSheetIds[i]);console.assert(header);uiLocation=header.rawLocationToUILocation(rawLocation.lineNumber,rawLocation.columnNumber);}
-return uiLocation||null;},__proto__:WebInspector.Object.prototype}
-WebInspector.CSSStyleModel.LiveLocation=function(model,header,rawLocation,updateDelegate)
-{WebInspector.LiveLocation.call(this,rawLocation,updateDelegate);this._model=model;if(!header)
-this._clearStyleSheet();else
-this._setStyleSheet(header);}
-WebInspector.CSSStyleModel.LiveLocation.prototype={_styleSheetAdded:function(event)
-{console.assert(!this._header);var header=(event.data);if(header.sourceURL&&header.sourceURL===this.rawLocation().url)
-this._setStyleSheet(header);},_styleSheetRemoved:function(event)
-{console.assert(this._header);var header=(event.data);if(this._header!==header)
-return;this._header._removeLocation(this);this._clearStyleSheet();},_setStyleSheet:function(header)
-{this._header=header;this._header.addLiveLocation(this);this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetAdded,this);this._model.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetRemoved,this);},_clearStyleSheet:function()
-{delete this._header;this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetRemoved,this);this._model.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetAdded,this);},uiLocation:function()
-{var cssLocation=(this.rawLocation());if(this._header)
-return this._header.rawLocationToUILocation(cssLocation.lineNumber,cssLocation.columnNumber);var uiSourceCode=WebInspector.workspace.uiSourceCodeForURL(cssLocation.url);if(!uiSourceCode)
-return null;return new WebInspector.UILocation(uiSourceCode,cssLocation.lineNumber,cssLocation.columnNumber);},dispose:function()
-{WebInspector.LiveLocation.prototype.dispose.call(this);this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded,this._styleSheetAdded,this);this._model.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved,this._styleSheetRemoved,this);},__proto__:WebInspector.LiveLocation.prototype}
-WebInspector.CSSLocation=function(url,lineNumber,columnNumber)
-{this.url=url;this.lineNumber=lineNumber;this.columnNumber=columnNumber||0;}
-WebInspector.CSSStyleDeclaration=function(payload)
-{this.id=payload.styleId;this.width=payload.width;this.height=payload.height;this.range=payload.range;this._shorthandValues=WebInspector.CSSStyleDeclaration.buildShorthandValueMap(payload.shorthandEntries);this._livePropertyMap={};this._allProperties=[];this.__disabledProperties={};var payloadPropertyCount=payload.cssProperties.length;var propertyIndex=0;for(var i=0;i<payloadPropertyCount;++i){var property=WebInspector.CSSProperty.parsePayload(this,i,payload.cssProperties[i]);this._allProperties.push(property);if(property.disabled)
-this.__disabledProperties[i]=property;if(!property.active&&!property.styleBased)
-continue;var name=property.name;this[propertyIndex]=name;this._livePropertyMap[name]=property;++propertyIndex;}
-this.length=propertyIndex;if("cssText"in payload)
-this.cssText=payload.cssText;}
-WebInspector.CSSStyleDeclaration.buildShorthandValueMap=function(shorthandEntries)
-{var result={};for(var i=0;i<shorthandEntries.length;++i)
-result[shorthandEntries[i].name]=shorthandEntries[i].value;return result;}
-WebInspector.CSSStyleDeclaration.parsePayload=function(payload)
-{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);}
-WebInspector.CSSStyleDeclaration.prototype={get allProperties()
-{return this._allProperties;},getLiveProperty: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)
-{var longhands=WebInspector.CSSMetadata.cssPropertiesMetainfo.longhands(name);var result=[];for(var i=0;longhands&&i<longhands.length;++i){var property=this._livePropertyMap[longhands[i]];if(property)
-result.push(property);}
-return result;},shorthandValue:function(shorthandProperty)
-{return this._shorthandValues[shorthandProperty];},propertyAt:function(index)
-{return(index<this.allProperties.length)?this.allProperties[index]:null;},pastLastSourcePropertyIndex:function()
-{for(var i=this.allProperties.length-1;i>=0;--i){var property=this.allProperties[i];if(property.active||property.disabled)
-return i+1;}
-return 0;},newBlankProperty:function(index)
-{index=(typeof index==="undefined")?this.pastLastSourcePropertyIndex():index;return new WebInspector.CSSProperty(this,index,"","","","active",true,false,"");},insertPropertyAt:function(index,name,value,userCallback)
-{function callback(error,payload)
-{WebInspector.cssModel._pendingCommandsMajorState.pop();if(!userCallback)
-return;if(error){console.error(error);userCallback(null);}else
-userCallback(WebInspector.CSSStyleDeclaration.parsePayload(payload));}
-if(!this.id)
-throw"No style id";WebInspector.cssModel._pendingCommandsMajorState.push(true);CSSAgent.setPropertyText(this.id,index,name+": "+value+";",false,callback.bind(this));},appendProperty:function(name,value,userCallback)
-{this.insertPropertyAt(this.allProperties.length,name,value,userCallback);},setText:function(text,userCallback)
-{function callback(error,payload)
-{WebInspector.cssModel._pendingCommandsMajorState.pop();if(!userCallback)
-return;if(error){console.error(error);userCallback(null);}else
-userCallback(WebInspector.CSSStyleDeclaration.parsePayload(payload));}
-if(!this.id)
-throw"No style id";if(typeof this.cssText==="undefined"){userCallback(null);return;}
-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=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)
-{return new WebInspector.CSSRule(payload,matchingIndices);}
-WebInspector.CSSRule.prototype={_setRawLocationAndFrameId:function()
-{if(!this.id)
-return;var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.id.styleSheetId);this.frameId=styleSheetHeader.frameId;var url=styleSheetHeader.resourceURL();if(!url)
-return;this.rawLocation=new WebInspector.CSSLocation(url,this.lineNumberInSource(0),this.columnNumberInSource(0));},resourceURL:function()
-{if(!this.id)
-return"";var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.id.styleSheetId);return styleSheetHeader.resourceURL();},lineNumberInSource:function(selectorIndex)
-{var selector=this.selectors[selectorIndex];if(!selector||!selector.range)
-return 0;var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.id.styleSheetId);return styleSheetHeader.lineNumberInSource(selector.range.startLine);},columnNumberInSource:function(selectorIndex)
-{var selector=this.selectors[selectorIndex];if(!selector||!selector.range)
-return undefined;var styleSheetHeader=WebInspector.cssModel.styleSheetHeaderForId(this.id.styleSheetId);console.assert(styleSheetHeader);return styleSheetHeader.columnNumberInSource(selector.range.startLine,selector.range.startColumn);},get isUserAgent()
-{return this.origin==="user-agent";},get isUser()
-{return this.origin==="user";},get isViaInspector()
-{return this.origin==="inspector";},get isRegular()
-{return this.origin==="regular";}}
-WebInspector.CSSProperty=function(ownerStyle,index,name,value,priority,status,parsedOk,implicit,text,range)
-{this.ownerStyle=ownerStyle;this.index=index;this.name=name;this.value=value;this.priority=priority;this.status=status;this.parsedOk=parsedOk;this.implicit=implicit;this.text=text;this.range=range;}
-WebInspector.CSSProperty.parsePayload=function(ownerStyle,index,payload)
-{var result=new WebInspector.CSSProperty(ownerStyle,index,payload.name,payload.value,payload.priority||"",payload.status||"style",("parsedOk"in payload)?!!payload.parsedOk:true,!!payload.implicit,payload.text,payload.range);return result;}
-WebInspector.CSSProperty.prototype={get propertyText()
-{if(this.text!==undefined)
-return this.text;if(this.name==="")
-return"";return this.name+": "+this.value+(this.priority?" !"+this.priority:"")+";";},get isLive()
-{return this.active||this.styleBased;},get active()
-{return this.status==="active";},get styleBased()
-{return this.status==="style";},get inactive()
-{return this.status==="inactive";},get disabled()
-{return this.status==="disabled";},setText:function(propertyText,majorChange,overwrite,userCallback)
-{function enabledCallback(style)
-{if(userCallback)
-userCallback(style);}
-function callback(error,stylePayload)
-{WebInspector.cssModel._pendingCommandsMajorState.pop();if(!error){if(majorChange)
-WebInspector.domAgent.markUndoableState();this.text=propertyText;var style=WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);var newProperty=style.allProperties[this.index];if(newProperty&&this.disabled&&!propertyText.match(/^\s*$/)){newProperty.setDisabled(false,enabledCallback);return;}
-if(userCallback)
-userCallback(style);}else{if(userCallback)
-userCallback(null);}}
-if(!this.ownerStyle)
-throw"No ownerStyle for property";if(!this.ownerStyle.id)
-throw"No owner style id";WebInspector.cssModel._pendingCommandsMajorState.push(majorChange);CSSAgent.setPropertyText(this.ownerStyle.id,this.index,propertyText,overwrite,callback.bind(this));},setValue:function(newValue,majorChange,overwrite,userCallback)
-{var text=this.name+": "+newValue+(this.priority?" !"+this.priority:"")+";"
-this.setText(text,majorChange,overwrite,userCallback);},setDisabled:function(disabled,userCallback)
-{if(!this.ownerStyle&&userCallback)
-userCallback(null);if(disabled===this.disabled&&userCallback)
-userCallback(this.ownerStyle);function callback(error,stylePayload)
-{WebInspector.cssModel._pendingCommandsMajorState.pop();if(error){if(userCallback)
-userCallback(null);return;}
-WebInspector.domAgent.markUndoableState();if(userCallback){var style=WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);userCallback(style);}}
-if(!this.ownerStyle.id)
-throw"No owner style id";WebInspector.cssModel._pendingCommandsMajorState.push(false);CSSAgent.toggleProperty(this.ownerStyle.id,this.index,disabled,callback.bind(this));},uiLocation:function(forName)
-{if(!this.range||!this.ownerStyle||!this.ownerStyle.parentRule)
-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?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)
-{var result=[];for(var i=0;i<payload.length;++i)
-result.push(WebInspector.CSSMedia.parsePayload(payload[i]));return result;}
-WebInspector.CSSMedia.prototype={lineNumberInSource:function()
-{if(!this.range)
-return undefined;var header=this.header();if(!header)
-return undefined;return header.lineNumberInSource(this.range.startLine);},columnNumberInSource:function()
-{if(!this.range)
-return undefined;var header=this.header();if(!header)
-return undefined;return header.columnNumberInSource(this.range.startLine,this.range.startColumn);},header:function()
-{return this.parentStyleSheetId?WebInspector.cssModel.styleSheetHeaderForId(this.parentStyleSheetId):null;}}
-WebInspector.CSSStyleSheetHeader=function(payload)
-{this.id=payload.styleSheetId;this.frameId=payload.frameId;this.sourceURL=payload.sourceURL;this.hasSourceURL=!!payload.hasSourceURL;this.sourceMapURL=payload.sourceMapURL;this.origin=payload.origin;this.title=payload.title;this.disabled=payload.disabled;this.isInline=payload.isInline;this.startLine=payload.startLine;this.startColumn=payload.startColumn;this._locations=new Set();this._sourceMappings=[];}
-WebInspector.CSSStyleSheetHeader.prototype={resourceURL:function()
-{return this.origin==="inspector"?this._viaInspectorResourceURL():this.sourceURL;},addLiveLocation:function(location)
-{this._locations.add(location);location.update();},updateLocations:function()
-{var items=this._locations.items();for(var i=0;i<items.length;++i)
-items[i].update();},_removeLocation:function(location)
-{this._locations.remove(location);},rawLocationToUILocation:function(lineNumber,columnNumber)
-{var uiLocation;var rawLocation=new WebInspector.CSSLocation(this.resourceURL(),lineNumber,columnNumber);for(var i=this._sourceMappings.length-1;!uiLocation&&i>=0;--i)
-uiLocation=this._sourceMappings[i].rawLocationToUILocation(rawLocation);return uiLocation?uiLocation.uiSourceCode.overrideLocation(uiLocation):null;},pushSourceMapping:function(sourceMapping)
-{this._sourceMappings.push(sourceMapping);this.updateLocations();},_key:function()
-{return this.frameId+":"+this.resourceURL();},_viaInspectorResourceURL:function()
-{var frame=WebInspector.resourceTreeModel.frameForId(this.frameId);console.assert(frame);var parsedURL=new WebInspector.ParsedURL(frame.url);var fakeURL="inspector://"+parsedURL.host+parsedURL.folderPathComponents;if(!fakeURL.endsWith("/"))
-fakeURL+="/";fakeURL+="inspector-stylesheet";return fakeURL;},lineNumberInSource:function(lineNumberInStyleSheet)
-{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;},_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="";}
-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);},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(styleSheetId,styleSheetPayload.rules));}
-CSSAgent.getStyleSheet(styleSheetId,callback);}
-WebInspector.CSSDispatcher=function(cssModel)
-{this._cssModel=cssModel;}
-WebInspector.CSSDispatcher.prototype={mediaQueryResultChanged:function()
-{this._cssModel.mediaQueryResultChanged();},styleSheetChanged:function(styleSheetId)
-{this._cssModel._fireStyleSheetChanged(styleSheetId);},styleSheetAdded:function(header)
-{this._cssModel._styleSheetAdded(header);},styleSheetRemoved:function(id)
-{this._cssModel._styleSheetRemoved(id);},namedFlowCreated:function(namedFlowPayload)
-{this._cssModel._namedFlowCreated(namedFlowPayload);},namedFlowRemoved:function(documentNodeId,flowName)
-{this._cssModel._namedFlowRemoved(documentNodeId,flowName);},regionLayoutUpdated:function(namedFlowPayload)
-{this._cssModel._regionLayoutUpdated(namedFlowPayload);},regionOversetChanged:function(namedFlowPayload)
-{this._cssModel._regionOversetChanged(namedFlowPayload);}}
-WebInspector.NamedFlow=function(payload)
-{this.documentNodeId=payload.documentNodeId;this.name=payload.name;this.overset=payload.overset;this.content=payload.content;this.regions=payload.regions;}
-WebInspector.NamedFlow.parsePayload=function(payload)
-{return new WebInspector.NamedFlow(payload);}
-WebInspector.NamedFlowCollection=function(payload)
-{this.namedFlowMap={};for(var i=0;i<payload.length;++i){var namedFlow=WebInspector.NamedFlow.parsePayload(payload[i]);this.namedFlowMap[namedFlow.name]=namedFlow;}}
-WebInspector.NamedFlowCollection.prototype={_appendNamedFlow:function(namedFlow)
-{this.namedFlowMap[namedFlow.name]=namedFlow;},_removeNamedFlow:function(flowName)
-{delete this.namedFlowMap[flowName];},flowByName:function(flowName)
-{var namedFlow=this.namedFlowMap[flowName];if(!namedFlow)
-return null;return namedFlow;}}
-WebInspector.CSSStyleModel.ComputedStyleLoader=function(cssModel)
-{this._cssModel=cssModel;this._nodeIdToCallbackData={};}
-WebInspector.CSSStyleModel.ComputedStyleLoader.prototype={reset:function()
-{for(var nodeId in this._nodeIdToCallbackData){var callbacks=this._nodeIdToCallbackData[nodeId];for(var i=0;i<callbacks.length;++i)
-callbacks[i](null);}
-this._nodeIdToCallbackData={};},getComputedStyle:function(nodeId,userCallback)
-{if(this._nodeIdToCallbackData[nodeId]){this._nodeIdToCallbackData[nodeId].push(userCallback);return;}
-this._nodeIdToCallbackData[nodeId]=[userCallback];CSSAgent.getComputedStyleForNode(nodeId,resultCallback.bind(this,nodeId));function resultCallback(nodeId,error,computedPayload)
-{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;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"}
-WebInspector.NetworkManager._MIMETypes={"text/html":{"document":true},"text/xml":{"document":true},"text/plain":{"document":true},"application/xhtml+xml":{"document":true},"text/css":{"stylesheet":true},"text/xsl":{"stylesheet":true},"image/jpg":{"image":true},"image/jpeg":{"image":true},"image/pjpeg":{"image":true},"image/png":{"image":true},"image/gif":{"image":true},"image/bmp":{"image":true},"image/svg+xml":{"image":true,"font":true,"document":true},"image/vnd.microsoft.icon":{"image":true},"image/webp":{"image":true},"image/x-icon":{"image":true},"image/x-xbitmap":{"image":true},"font/ttf":{"font":true},"font/otf":{"font":true},"font/woff":{"font":true},"font/woff2":{"font":true},"font/truetype":{"font":true},"font/opentype":{"font":true},"application/octet-stream":{"font":true,"image":true},"application/font-woff":{"font":true},"application/x-font-woff":{"font":true},"application/x-font-type1":{"font":true},"application/x-font-ttf":{"font":true},"application/x-truetype-font":{"font":true},"text/javascript":{"script":true},"text/ecmascript":{"script":true},"application/javascript":{"script":true},"application/ecmascript":{"script":true},"application/x-javascript":{"script":true},"application/json":{"script":true},"text/javascript1.1":{"script":true},"text/javascript1.2":{"script":true},"text/javascript1.3":{"script":true},"text/jscript":{"script":true},"text/livescript":{"script":true},}
-WebInspector.NetworkManager.prototype={inflightRequestForURL:function(url)
-{return this._dispatcher._inflightRequestsByURL[url];},_cacheDisabledSettingChanged:function(event)
-{var enabled=(event.data);NetworkAgent.setCacheDisabled(enabled);},__proto__:WebInspector.Object.prototype}
-WebInspector.NetworkDispatcher=function(manager)
-{this._manager=manager;this._inflightRequestsById={};this._inflightRequestsByURL={};InspectorBackend.registerNetworkDispatcher(this);}
-WebInspector.NetworkDispatcher.prototype={_headersMapToHeadersArray:function(headersMap)
-{var result=[];for(var name in headersMap){var values=headersMap[name].split("\n");for(var i=0;i<values.length;++i)
-result.push({name:name,value:values[i]});}
-return result;},_updateNetworkRequestWithRequest:function(networkRequest,request)
-{networkRequest.requestMethod=request.method;networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));networkRequest.requestFormData=request.postData;},_updateNetworkRequestWithResponse:function(networkRequest,response)
-{if(!response)
-return;if(response.url&&networkRequest.url!==response.url)
-networkRequest.url=response.url;networkRequest.mimeType=response.mimeType;networkRequest.statusCode=response.status;networkRequest.statusText=response.statusText;networkRequest.responseHeaders=this._headersMapToHeadersArray(response.headers);if(response.headersText)
-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,[],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)
-return true;if(networkRequest.mimeType in WebInspector.NetworkManager._MIMETypes)
-return networkRequest.type.name()in WebInspector.NetworkManager._MIMETypes[networkRequest.mimeType];return false;},_isNull:function(response)
-{if(!response)
-return true;return!response.status&&!response.mimeType&&(!response.headers||!Object.keys(response.headers).length);},requestWillBeSent:function(requestId,frameId,loaderId,documentURL,request,time,initiator,redirectResponse)
-{var networkRequest=this._inflightRequestsById[requestId];if(networkRequest){if(!redirectResponse)
-return;this.responseReceived(requestId,frameId,loaderId,time,PageAgent.ResourceType.Other,redirectResponse);networkRequest=this._appendRedirect(requestId,time,request.url);}else
-networkRequest=this._createNetworkRequest(requestId,frameId,loaderId,request.url,documentURL,initiator);networkRequest.hasNetworkData=true;this._updateNetworkRequestWithRequest(networkRequest,request);networkRequest.startTime=time;this._startNetworkRequest(networkRequest);},requestServedFromCache:function(requestId)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.cached=true;},responseReceived:function(requestId,frameId,loaderId,time,resourceType,response)
-{if(this._isNull(response))
-return;var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest){var eventData={};eventData.url=response.url;eventData.frameId=frameId;eventData.loaderId=loaderId;eventData.resourceType=resourceType;eventData.mimeType=response.mimeType;this._manager.dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.RequestUpdateDropped,eventData);return;}
-networkRequest.responseReceivedTime=time;networkRequest.type=WebInspector.resourceTypes[resourceType];this._updateNetworkRequestWithResponse(networkRequest,response);this._updateNetworkRequest(networkRequest);},dataReceived:function(requestId,time,dataLength,encodedDataLength)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.resourceSize+=dataLength;if(encodedDataLength!=-1)
-networkRequest.increaseTransferSize(encodedDataLength);networkRequest.endTime=time;this._updateNetworkRequest(networkRequest);},loadingFinished:function(requestId,finishTime)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;this._finishNetworkRequest(networkRequest,finishTime);},loadingFailed:function(requestId,time,localizedDescription,canceled)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.failed=true;networkRequest.canceled=canceled;networkRequest.localizedFailDescription=localizedDescription;this._finishNetworkRequest(networkRequest,time);},webSocketCreated:function(requestId,requestURL)
-{var networkRequest=new WebInspector.NetworkRequest(requestId,requestURL,"","","");networkRequest.type=WebInspector.resourceTypes.WebSocket;this._startNetworkRequest(networkRequest);},webSocketWillSendHandshakeRequest:function(requestId,time,request)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.requestMethod="GET";networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));networkRequest.startTime=time;this._updateNetworkRequest(networkRequest);},webSocketHandshakeResponseReceived:function(requestId,time,response)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.statusCode=response.status;networkRequest.statusText=response.statusText;networkRequest.responseHeaders=this._headersMapToHeadersArray(response.headers);networkRequest.responseReceivedTime=time;this._updateNetworkRequest(networkRequest);},webSocketFrameReceived:function(requestId,time,response)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.addFrame(response,time);networkRequest.responseReceivedTime=time;this._updateNetworkRequest(networkRequest);},webSocketFrameSent:function(requestId,time,response)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.addFrame(response,time,true);networkRequest.responseReceivedTime=time;this._updateNetworkRequest(networkRequest);},webSocketFrameError:function(requestId,time,errorMessage)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;networkRequest.addFrameError(errorMessage,time);networkRequest.responseReceivedTime=time;this._updateNetworkRequest(networkRequest);},webSocketClosed:function(requestId,time)
-{var networkRequest=this._inflightRequestsById[requestId];if(!networkRequest)
-return;this._finishNetworkRequest(networkRequest,time);},_appendRedirect:function(requestId,time,redirectURL)
-{var originalNetworkRequest=this._inflightRequestsById[requestId];var previousRedirects=originalNetworkRequest.redirects||[];originalNetworkRequest.requestId="redirected:"+requestId+"."+previousRedirects.length;delete originalNetworkRequest.redirects;if(previousRedirects.length>0)
-originalNetworkRequest.redirectSource=previousRedirects[previousRedirects.length-1];this._finishNetworkRequest(originalNetworkRequest,time);var newNetworkRequest=this._createNetworkRequest(requestId,originalNetworkRequest.frameId,originalNetworkRequest.loaderId,redirectURL,originalNetworkRequest.documentURL,originalNetworkRequest.initiator);newNetworkRequest.redirects=previousRedirects.concat(originalNetworkRequest);return newNetworkRequest;},_startNetworkRequest:function(networkRequest)
-{this._inflightRequestsById[networkRequest.requestId]=networkRequest;this._inflightRequestsByURL[networkRequest.url]=networkRequest;this._dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.RequestStarted,networkRequest);},_updateNetworkRequest:function(networkRequest)
-{this._dispatchEventToListeners(WebInspector.NetworkManager.EventTypes.RequestUpdated,networkRequest);},_finishNetworkRequest:function(networkRequest,finishTime)
-{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;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)
-{for(var i=0;i<this._requests.length;++i){if(this._requests[i].url===url)
-return this._requests[i];}
-return null;},pageLoadForRequest:function(request)
-{return request.__page;},_onMainFrameNavigated:function(event)
-{var mainFrame=event.data;this._currentPageLoad=null;var oldRequests=this._requests.splice(0,this._requests.length);this._requestForId={};for(var i=0;i<oldRequests.length;++i){var request=oldRequests[i];if(request.loaderId===mainFrame.loaderId){if(!this._currentPageLoad)
-this._currentPageLoad=new WebInspector.PageLoad(request);this._requests.push(request);this._requestForId[request.requestId]=request;request.__page=this._currentPageLoad;}}},_onRequestStarted:function(event)
-{var request=(event.data);this._requests.push(request);this._requestForId[request.requestId]=request;request.__page=this._currentPageLoad;},_onDOMContentLoaded:function(event)
-{if(this._currentPageLoad)
-this._currentPageLoad.contentLoadTime=event.data;},_onLoad:function(event)
-{if(this._currentPageLoad)
-this._currentPageLoad.loadTime=event.data;},requestForId:function(requestId)
-{return this._requestForId[requestId];}}
-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",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;}
-this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.WillLoadCachedResources);WebInspector.inspectedPageURL=mainFramePayload.frame.url;this._addFramesRecursively(null,mainFramePayload);this._dispatchInspectedURLChanged();this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded);this._cachedResourcesProcessed=true;},cachedResourcesLoaded:function()
-{return this._cachedResourcesProcessed;},_dispatchInspectedURLChanged:function()
-{InspectorFrontendHost.inspectedURLChanged(WebInspector.inspectedPageURL);this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,WebInspector.inspectedPageURL);},_addFrame:function(frame,aboutToNavigate)
-{this._frames[frame.id]=frame;if(frame.isMainFrame())
-this.mainFrame=frame;this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameAdded,frame);if(!aboutToNavigate)
-this._addSecurityOrigin(frame.securityOrigin);if(frame.isMainFrame())
-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)
-{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);},_frameAttached:function(frameId,parentFrameId)
-{if(!this._cachedResourcesProcessed)
-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)
-this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded,resources[i]);if(frame.isMainFrame())
-this._dispatchInspectedURLChanged();},_frameDetached:function(frameId)
-{if(!this._cachedResourcesProcessed)
-return;var frame=this._frames[frameId];if(!frame)
-return;this._removeSecurityOrigin(frame.securityOrigin);if(frame.parentFrame)
-frame.parentFrame._removeChildFrame(frame);else
-frame._remove();},_onRequestFinished:function(event)
-{if(!this._cachedResourcesProcessed)
-return;var request=(event.data);if(request.failed||request.type===WebInspector.resourceTypes.XHR)
-return;var frame=this._frames[request.frameId];if(frame){var resource=frame._addRequest(request);this._addPendingConsoleMessagesToResource(resource);}},_onRequestUpdateDropped:function(event)
-{if(!this._cachedResourcesProcessed)
-return;var frameId=event.data.frameId;var frame=this._frames[frameId];if(!frame)
-return;var url=event.data.url;if(frame._resourcesMap[url])
-return;var resource=new WebInspector.Resource(null,url,frame.url,frameId,event.data.loaderId,WebInspector.resourceTypes[event.data.resourceType],event.data.mimeType);frame.addResource(resource);},frameForId:function(frameId)
-{return this._frames[frameId];},forAllResources:function(callback)
-{if(this.mainFrame)
-return this.mainFrame._callForFrameResources(callback);return false;},frames:function()
-{return Object.values(this._frames);},_consoleMessageAdded:function(event)
-{var msg=(event.data);var resource=msg.url?this.resourceForURL(msg.url):null;if(resource)
-this._addConsoleMessageToResource(msg,resource);else
-this._addPendingConsoleMessage(msg);},_addPendingConsoleMessage:function(msg)
-{if(!msg.url)
-return;if(!this._pendingConsoleMessages[msg.url])
-this._pendingConsoleMessages[msg.url]=[];this._pendingConsoleMessages[msg.url].push(msg);},_addPendingConsoleMessagesToResource:function(resource)
-{var messages=this._pendingConsoleMessages[resource.url];if(messages){for(var i=0;i<messages.length;i++)
-this._addConsoleMessageToResource(messages[i],resource);delete this._pendingConsoleMessages[resource.url];}},_addConsoleMessageToResource:function(msg,resource)
-{switch(msg.level){case WebInspector.ConsoleMessage.MessageLevel.Warning:resource.warnings+=msg.repeatDelta;break;case WebInspector.ConsoleMessage.MessageLevel.Error:resource.errors+=msg.repeatDelta;break;}
-resource.addMessage(msg);},_consoleCleared:function()
-{function callback(resource)
-{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.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);},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()
-{return this._name||"";},get url()
-{return this._url;},get securityOrigin()
-{return this._securityOrigin;},get loaderId()
-{return this._loaderId;},get parentFrame()
-{return this._parentFrame;},get childFrames()
-{return this._childFrames;},isMainFrame:function()
-{return!this._parentFrame;},_navigate:function(framePayload)
-{this._loaderId=framePayload.loaderId;this._name=framePayload.name;this._url=framePayload.url;this._securityOrigin=framePayload.securityOrigin;this._mimeType=framePayload.mimeType;var mainResource=this._resourcesMap[this._url];this._resourcesMap={};this._removeChildFrames();if(mainResource&&mainResource.loaderId===this._loaderId)
-this.addResource(mainResource);},get mainResource()
-{return this._resourcesMap[this._url];},_removeChildFrame:function(frame)
-{this._childFrames.remove(frame);frame._remove();},_removeChildFrames:function()
-{var frames=this._childFrames;this._childFrames=[];for(var i=0;i<frames.length;++i)
-frames[i]._remove();},_remove:function()
-{this._removeChildFrames();delete this._model._frames[this.id];this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached,this);},addResource:function(resource)
-{if(this._resourcesMap[resource.url]===resource){return;}
-this._resourcesMap[resource.url]=resource;this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded,resource);},_addRequest:function(request)
-{var resource=this._resourcesMap[request.url];if(resource&&resource.request===request){return resource;}
-resource=new WebInspector.Resource(request,request.url,request.documentURL,request.frameId,request.loaderId,request.type,request.mimeType);this._resourcesMap[resource.url]=resource;this._model.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.ResourceAdded,resource);return resource;},resources:function()
-{var result=[];for(var url in this._resourcesMap)
-result.push(this._resourcesMap[url]);return result;},resourceForURL:function(url)
-{var result;function filter(resource)
-{if(resource.url===url){result=resource;return true;}}
-this._callForFrameResources(filter);return result;},_callForFrameResources:function(callback)
-{for(var url in this._resourcesMap){if(callback(this._resourcesMap[url]))
-return true;}
-for(var i=0;i<this._childFrames.length;++i){if(this._childFrames[i]._callForFrameResources(callback))
-return true;}
-return false;}}
-WebInspector.PageDispatcher=function(resourceTreeModel)
-{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,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)
-{},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,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;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;}
-var path=this.path;var indexOfQuery=path.indexOf("?");if(indexOfQuery!==-1){this.queryParams=path.substring(indexOfQuery+1)
-path=path.substring(0,indexOfQuery);}
-var lastSlashIndex=path.lastIndexOf("/");if(lastSlashIndex!==-1){this.folderPathComponents=path.substring(0,lastSlashIndex);this.lastPathComponent=path.substring(lastSlashIndex+1);}else
-this.lastPathComponent=path;}
-WebInspector.ParsedURL.splitURL=function(url)
-{var parsedURL=new WebInspector.ParsedURL(url);var origin;var folderPath;var name;if(parsedURL.isValid){origin=parsedURL.scheme+"://"+parsedURL.host;if(parsedURL.port)
-origin+=":"+parsedURL.port;folderPath=parsedURL.folderPathComponents;name=parsedURL.lastPathComponent;if(parsedURL.queryParams)
-name+="?"+parsedURL.queryParams;}else{origin="";folderPath="";name=url;}
-var result=[origin];var splittedPath=folderPath.split("/");for(var i=1;i<splittedPath.length;++i)
-result.push(splittedPath[i]);result.push(name);return result;}
-WebInspector.ParsedURL.normalizePath=function(path)
-{if(path.indexOf("..")===-1&&path.indexOf('.')===-1)
-return path;var normalizedSegments=[];var segments=path.split("/");for(var i=0;i<segments.length;i++){var segment=segments[i];if(segment===".")
-continue;else if(segment==="..")
-normalizedSegments.pop();else if(segment)
-normalizedSegments.push(segment);}
-var normalizedPath=normalizedSegments.join("/");if(normalizedPath[normalizedPath.length-1]==="/")
-return normalizedPath;if(path[0]==="/"&&normalizedPath)
-normalizedPath="/"+normalizedPath;if((path[path.length-1]==="/")||(segments[segments.length-1]===".")||(segments[segments.length-1]===".."))
-normalizedPath=normalizedPath+"/";return normalizedPath;}
-WebInspector.ParsedURL.completeURL=function(baseURL,href)
-{if(href){var trimmedHref=href.trim();if(trimmedHref.startsWith("data:")||trimmedHref.startsWith("blob:")||trimmedHref.startsWith("javascript:"))
-return href;var parsedHref=trimmedHref.asParsedURL();if(parsedHref&&parsedHref.scheme)
-return trimmedHref;}else{return baseURL;}
-var parsedURL=baseURL.asParsedURL();if(parsedURL){if(parsedURL.isDataURL())
-return href;var path=href;var query=path.indexOf("?");var postfix="";if(query!==-1){postfix=path.substring(query);path=path.substring(0,query);}else{var fragment=path.indexOf("#");if(fragment!==-1){postfix=path.substring(fragment);path=path.substring(0,fragment);}}
-if(!path){var basePath=parsedURL.path;if(postfix.charAt(0)==="?"){var baseQuery=parsedURL.path.indexOf("?");if(baseQuery!==-1)
-basePath=basePath.substring(0,baseQuery);}
-return parsedURL.scheme+"://"+parsedURL.host+(parsedURL.port?(":"+parsedURL.port):"")+basePath+postfix;}else if(path.charAt(0)!=="/"){var prefix=parsedURL.path;var prefixQuery=prefix.indexOf("?");if(prefixQuery!==-1)
-prefix=prefix.substring(0,prefixQuery);prefix=prefix.substring(0,prefix.lastIndexOf("/"))+"/";path=prefix+path;}else if(path.length>1&&path.charAt(1)==="/"){return parsedURL.scheme+":"+path+postfix;}
-return parsedURL.scheme+"://"+parsedURL.host+(parsedURL.port?(":"+parsedURL.port):"")+WebInspector.ParsedURL.normalizePath(path)+postfix;}
-return null;}
-WebInspector.ParsedURL.prototype={get displayName()
-{if(this._displayName)
-return this._displayName;if(this.isDataURL())
-return this.dataURLDisplayName();if(this.isAboutBlank())
-return this.url;this._displayName=this.lastPathComponent;if(!this._displayName&&this.host)
-this._displayName=this.host+"/";if(!this._displayName&&this.url)
-this._displayName=this.url.trimURL(WebInspector.inspectedPageDomain?WebInspector.inspectedPageDomain:"");if(this._displayName==="/")
-this._displayName=this.url;return this._displayName;},dataURLDisplayName:function()
-{if(this._dataURLDisplayName)
-return this._dataURLDisplayName;if(!this.isDataURL())
-return"";this._dataURLDisplayName=this.url.trimEnd(20);return this._dataURLDisplayName;},isAboutBlank:function()
-{return this.url==="about:blank";},isDataURL:function()
-{return this.scheme==="data";}}
-String.prototype.asParsedURL=function()
-{var parsedURL=new WebInspector.ParsedURL(this.toString());if(parsedURL.isValid)
-return parsedURL;return null;}
-WebInspector.resourceForURL=function(url)
-{return WebInspector.resourceTreeModel.resourceForURL(url);}
-WebInspector.forAllResources=function(callback)
-{WebInspector.resourceTreeModel.forAllResources(callback);}
-WebInspector.displayNameForURL=function(url)
-{if(!url)
-return"";var resource=WebInspector.resourceForURL(url);if(resource)
-return resource.displayName;var uiSourceCode=WebInspector.workspace.uiSourceCodeForURL(url);if(uiSourceCode)
-return uiSourceCode.displayName();if(!WebInspector.inspectedPageURL)
-return url.trimURL("");var parsedURL=WebInspector.inspectedPageURL.asParsedURL();var lastPathComponent=parsedURL?parsedURL.lastPathComponent:parsedURL;var index=WebInspector.inspectedPageURL.indexOf(lastPathComponent);if(index!==-1&&index+lastPathComponent.length===WebInspector.inspectedPageURL.length){var baseURL=WebInspector.inspectedPageURL.substring(0,index);if(url.startsWith(baseURL))
-return url.substring(index);}
-if(!parsedURL)
-return url;var displayName=url.trimURL(parsedURL.host);return displayName==="/"?parsedURL.host+"/":displayName;}
-WebInspector.linkifyStringAsFragmentWithCustomLinkifier=function(string,linkifier)
-{var container=document.createDocumentFragment();var linkStringRegEx=/(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\/\/|data:|www\.)[\w$\-_+*'=\|\/\\(){}[\]^%@&#~,:;.!?]{2,}[\w$\-_+*=\|\/\\({^%@&#~]/;var lineColumnRegEx=/:(\d+)(:(\d+))?$/;while(string){var linkString=linkStringRegEx.exec(string);if(!linkString)
-break;linkString=linkString[0];var linkIndex=string.indexOf(linkString);var nonLink=string.substring(0,linkIndex);container.appendChild(document.createTextNode(nonLink));var title=linkString;var realURL=(linkString.startsWith("www.")?"http://"+linkString:linkString);var lineColumnMatch=lineColumnRegEx.exec(realURL);var lineNumber;var columnNumber;if(lineColumnMatch){realURL=realURL.substring(0,realURL.length-lineColumnMatch[0].length);lineNumber=parseInt(lineColumnMatch[1],10);lineNumber=isNaN(lineNumber)?undefined:lineNumber-1;if(typeof(lineColumnMatch[3])==="string"){columnNumber=parseInt(lineColumnMatch[3],10);columnNumber=isNaN(columnNumber)?undefined:columnNumber-1;}}
-var linkNode=linkifier(title,realURL,lineNumber,columnNumber);container.appendChild(linkNode);string=string.substring(linkIndex+linkString.length,string.length);}
-if(string)
-container.appendChild(document.createTextNode(string));return container;}
-WebInspector.linkifyStringAsFragment=function(string)
-{function linkifier(title,url,lineNumber,columnNumber)
-{var isExternal=!WebInspector.resourceForURL(url)&&!WebInspector.workspace.uiSourceCodeForURL(url);var urlNode=WebInspector.linkifyURLAsNode(url,title,undefined,isExternal);if(typeof lineNumber!=="undefined"){urlNode.lineNumber=lineNumber;urlNode.preferredPanel="sources";if(typeof columnNumber!=="undefined")
-urlNode.columnNumber=columnNumber;}
-return urlNode;}
-return WebInspector.linkifyStringAsFragmentWithCustomLinkifier(string,linkifier);}
-WebInspector.linkifyURLAsNode=function(url,linkText,classes,isExternal,tooltipText)
-{if(!linkText)
-linkText=url;classes=(classes?classes+" ":"");classes+=isExternal?"webkit-html-external-link":"webkit-html-resource-link";var a=document.createElement("a");a.href=sanitizeHref(url);a.className=classes;if(typeof tooltipText==="undefined")
-a.title=url;else if(typeof tooltipText!=="string"||tooltipText.length)
-a.title=tooltipText;a.textContent=linkText.trimMiddle(WebInspector.Linkifier.MaxLengthForDisplayedURLs);if(isExternal)
-a.setAttribute("target","_blank");return a;}
-WebInspector.formatLinkText=function(url,lineNumber)
-{var text=url?WebInspector.displayNameForURL(url):WebInspector.UIString("(program)");if(typeof lineNumber==="number")
-text+=":"+(lineNumber+1);return text;}
-WebInspector.linkifyResourceAsNode=function(url,lineNumber,classes,tooltipText)
-{var linkText=WebInspector.formatLinkText(url,lineNumber);var anchor=WebInspector.linkifyURLAsNode(url,linkText,classes,false,tooltipText);anchor.lineNumber=lineNumber;return anchor;}
-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)
-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;}
-WebInspector.ResourceType.prototype={name:function()
-{return this._name;},title:function()
-{return this._title;},categoryTitle:function()
-{return this._categoryTitle;},color:function()
-{return this._color;},isTextType:function()
-{return this._isTextType;},toString:function()
-{return this._name;},canonicalMimeType:function()
-{if(this===WebInspector.resourceTypes.Document)
-return"text/html";if(this===WebInspector.resourceTypes.Script)
-return"text/javascript";if(this===WebInspector.resourceTypes.Stylesheet)
-return"text/css";return"";}}
-WebInspector.resourceTypes={Document:new WebInspector.ResourceType("document","Document","Documents","rgb(47,102,236)",true),Stylesheet:new WebInspector.ResourceType("stylesheet","Stylesheet","Stylesheets","rgb(157,231,119)",true),Image:new WebInspector.ResourceType("image","Image","Images","rgb(164,60,255)",false),Script:new WebInspector.ResourceType("script","Script","Scripts","rgb(255,121,0)",true),XHR:new WebInspector.ResourceType("xhr","XHR","XHR","rgb(231,231,10)",true),Font:new WebInspector.ResourceType("font","Font","Fonts","rgb(255,82,62)",false),WebSocket:new WebInspector.ResourceType("websocket","WebSocket","WebSockets","rgb(186,186,186)",false),Other:new WebInspector.ResourceType("other","Other","Other","rgb(186,186,186)",false)}
-WebInspector.ResourceType.mimeTypesForExtensions={"js":"text/javascript","css":"text/css","html":"text/html","htm":"text/html","xml":"application/xml","xsl":"application/xml","asp":"application/x-aspx","aspx":"application/x-aspx","jsp":"application/x-jsp","c":"text/x-c++src","cc":"text/x-c++src","cpp":"text/x-c++src","h":"text/x-c++src","m":"text/x-c++src","mm":"text/x-c++src","coffee":"text/x-coffeescript","dart":"text/javascript","ts":"text/typescript","json":"application/json","gyp":"application/json","gypi":"application/json","cs":"text/x-csharp","java":"text/x-java","php":"text/x-php","phtml":"application/x-httpd-php","py":"text/x-python","sh":"text/x-sh","scss":"text/x-scss"}
-WebInspector.TimelineManager=function()
-{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,includeCounters,includeGPUEvents,callback)
-{this._enablementCount++;if(this._enablementCount===1)
-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)
-TimelineAgent.stop(callback);else if(callback)
-callback(null);},__proto__:WebInspector.Object.prototype}
-WebInspector.TimelineDispatcher=function(manager)
-{this._manager=manager;InspectorBackend.registerTimelineDispatcher(this);}
-WebInspector.TimelineDispatcher.prototype={eventRecorded:function(record)
-{this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,record);},isStarted:function()
-{return!!this._started;},started:function(consoleTimeline)
-{if(consoleTimeline){WebInspector.panel("timeline");}
-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._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,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 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);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();},isWidthValid:function()
-{return this.width>=0;},isHeightValid:function()
-{return this.height>=0;},isDeviceScaleFactorValid: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.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):"";},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()
-{return(typeof this.latitude==="number"&&typeof this.longitude==="number"&&typeof this.error==="string")?this.latitude+"@"+this.longitude+":"+this.error:"";}}
-WebInspector.OverridesSupport.GeolocationPosition.parseSetting=function(value)
-{if(value){var splitError=value.split(":");if(splitError.length===2){var splitPosition=splitError[0].split("@")
-if(splitPosition.length===2)
-return new WebInspector.OverridesSupport.GeolocationPosition(parseFloat(splitPosition[0]),parseFloat(splitPosition[1]),splitError[1]);}}
-return new WebInspector.OverridesSupport.GeolocationPosition(0,0,"");}
-WebInspector.OverridesSupport.GeolocationPosition.parseUserInput=function(latitudeString,longitudeString,errorStatus)
-{function isUserInputValid(value)
-{if(!value)
-return true;return/^[-]?[0-9]*[.]?[0-9]*$/.test(value);}
-if(!latitudeString^!latitudeString)
-return null;var isLatitudeValid=isUserInputValid(latitudeString);var isLongitudeValid=isUserInputValid(longitudeString);if(!isLatitudeValid&&!isLongitudeValid)
-return null;var latitude=isLatitudeValid?parseFloat(latitudeString):-1;var longitude=isLongitudeValid?parseFloat(longitudeString):-1;return new WebInspector.OverridesSupport.GeolocationPosition(latitude,longitude,errorStatus?"PositionUnavailable":"");}
-WebInspector.OverridesSupport.GeolocationPosition.clearGeolocationOverride=function()
-{PageAgent.clearGeolocationOverride();}
-WebInspector.OverridesSupport.DeviceOrientation=function(alpha,beta,gamma)
-{this.alpha=alpha;this.beta=beta;this.gamma=gamma;}
-WebInspector.OverridesSupport.DeviceOrientation.prototype={toSetting:function()
-{return JSON.stringify(this);}}
-WebInspector.OverridesSupport.DeviceOrientation.parseSetting=function(value)
-{if(value){var jsonObject=JSON.parse(value);return new WebInspector.OverridesSupport.DeviceOrientation(jsonObject.alpha,jsonObject.beta,jsonObject.gamma);}
-return new WebInspector.OverridesSupport.DeviceOrientation(0,0,0);}
-WebInspector.OverridesSupport.DeviceOrientation.parseUserInput=function(alphaString,betaString,gammaString)
-{function isUserInputValid(value)
-{if(!value)
-return true;return/^[-]?[0-9]*[.]?[0-9]*$/.test(value);}
-if(!alphaString^!betaString^!gammaString)
-return null;var isAlphaValid=isUserInputValid(alphaString);var isBetaValid=isUserInputValid(betaString);var isGammaValid=isUserInputValid(gammaString);if(!isAlphaValid&&!isBetaValid&&!isGammaValid)
-return null;var alpha=isAlphaValid?parseFloat(alphaString):-1;var beta=isBetaValid?parseFloat(betaString):-1;var gamma=isGammaValid?parseFloat(gammaString):-1;return new WebInspector.OverridesSupport.DeviceOrientation(alpha,beta,gamma);}
-WebInspector.OverridesSupport.DeviceOrientation.clearDeviceOrientationOverride=function()
-{PageAgent.clearDeviceOrientationOverride();}
-WebInspector.OverridesSupport.prototype={emulateDevice:function(deviceMetrics,userAgent)
-{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._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);},_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);},_emulateTouchEventsChanged:function()
-{if(WebInspector.isInspectingDevice()&&WebInspector.settings.emulateTouchEvents.get())
-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()
-{return this._id;},get name()
-{return this._name;},set name(x)
-{this._name=x;},get version()
-{return this._version;},set version(x)
-{this._version=x;},get domain()
-{return this._domain;},set domain(x)
-{this._domain=x;},getTableNames:function(callback)
-{function sortingCallback(error,names)
-{if(!error)
-callback(names.sort());}
-DatabaseAgent.getDatabaseTableNames(this._id,sortingCallback);},executeSql:function(query,onSuccess,onError)
-{function callback(error,columnNames,values,errorObj)
-{if(error){onError(error);return;}
-if(errorObj){var message;if(errorObj.message)
-message=errorObj.message;else if(errorObj.code==2)
-message=WebInspector.UIString("Database no longer has expected version.");else
-message=WebInspector.UIString("An unexpected error %s occurred.",errorObj.code);onError(message);return;}
-onSuccess(columnNames,values);}
-DatabaseAgent.executeSQL(this._id,query,callback.bind(this));}}
-WebInspector.DatabaseModel=function()
-{this._databases=[];InspectorBackend.registerDatabaseDispatcher(new WebInspector.DatabaseDispatcher(this));DatabaseAgent.enable();}
-WebInspector.DatabaseModel.Events={DatabaseAdded:"DatabaseAdded"}
-WebInspector.DatabaseModel.prototype={databases:function()
-{var result=[];for(var databaseId in this._databases)
-result.push(this._databases[databaseId]);return result;},databaseForId:function(databaseId)
-{return this._databases[databaseId];},_addDatabase:function(database)
-{this._databases.push(database);this.dispatchEventToListeners(WebInspector.DatabaseModel.Events.DatabaseAdded,database);},__proto__:WebInspector.Object.prototype}
-WebInspector.DatabaseDispatcher=function(model)
-{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;WebInspector.DOMStorage=function(securityOrigin,isLocalStorage)
-{this._securityOrigin=securityOrigin;this._isLocalStorage=isLocalStorage;}
-WebInspector.DOMStorage.storageId=function(securityOrigin,isLocalStorage)
-{return{securityOrigin:securityOrigin,isLocalStorage:isLocalStorage};}
-WebInspector.DOMStorage.Events={DOMStorageItemsCleared:"DOMStorageItemsCleared",DOMStorageItemRemoved:"DOMStorageItemRemoved",DOMStorageItemAdded:"DOMStorageItemAdded",DOMStorageItemUpdated:"DOMStorageItemUpdated"}
-WebInspector.DOMStorage.prototype={get id()
-{return WebInspector.DOMStorage.storageId(this._securityOrigin,this._isLocalStorage);},get securityOrigin()
-{return this._securityOrigin;},get isLocalStorage()
-{return this._isLocalStorage;},getItems:function(callback)
-{DOMStorageAgent.getDOMStorageItems(this.id,callback);},setItem:function(key,value)
-{DOMStorageAgent.setDOMStorageItem(this.id,key,value);},removeItem:function(key)
-{DOMStorageAgent.removeDOMStorageItem(this.id,key);},__proto__:WebInspector.Object.prototype}
-WebInspector.DOMStorageModel=function()
-{this._storages={};InspectorBackend.registerDOMStorageDispatcher(new WebInspector.DOMStorageDispatcher(this));DOMStorageAgent.enable();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded,this._securityOriginAdded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved,this._securityOriginRemoved,this);}
-WebInspector.DOMStorageModel.Events={DOMStorageAdded:"DOMStorageAdded",DOMStorageRemoved:"DOMStorageRemoved"}
-WebInspector.DOMStorageModel.prototype={_securityOriginAdded:function(event)
-{var securityOrigin=(event.data);var localStorageKey=this._storageKey(securityOrigin,true);console.assert(!this._storages[localStorageKey]);var localStorage=new WebInspector.DOMStorage(securityOrigin,true);this._storages[localStorageKey]=localStorage;this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorageAdded,localStorage);var sessionStorageKey=this._storageKey(securityOrigin,false);console.assert(!this._storages[sessionStorageKey]);var sessionStorage=new WebInspector.DOMStorage(securityOrigin,false);this._storages[sessionStorageKey]=sessionStorage;this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorageAdded,sessionStorage);},_securityOriginRemoved:function(event)
-{var securityOrigin=(event.data);var localStorageKey=this._storageKey(securityOrigin,true);var localStorage=this._storages[localStorageKey];console.assert(localStorage);delete this._storages[localStorageKey];this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorageRemoved,localStorage);var sessionStorageKey=this._storageKey(securityOrigin,false);var sessionStorage=this._storages[sessionStorageKey];console.assert(sessionStorage);delete this._storages[sessionStorageKey];this.dispatchEventToListeners(WebInspector.DOMStorageModel.Events.DOMStorageRemoved,sessionStorage);},_storageKey:function(securityOrigin,isLocalStorage)
-{return JSON.stringify(WebInspector.DOMStorage.storageId(securityOrigin,isLocalStorage));},_domStorageItemsCleared:function(storageId)
-{var domStorage=this.storageForId(storageId);if(!domStorage)
-return;var eventData={};domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorageItemsCleared,eventData);},_domStorageItemRemoved:function(storageId,key)
-{var domStorage=this.storageForId(storageId);if(!domStorage)
-return;var eventData={key:key};domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorageItemRemoved,eventData);},_domStorageItemAdded:function(storageId,key,value)
-{var domStorage=this.storageForId(storageId);if(!domStorage)
-return;var eventData={key:key,value:value};domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorageItemAdded,eventData);},_domStorageItemUpdated:function(storageId,key,oldValue,value)
-{var domStorage=this.storageForId(storageId);if(!domStorage)
-return;var eventData={key:key,oldValue:oldValue,value:value};domStorage.dispatchEventToListeners(WebInspector.DOMStorage.Events.DOMStorageItemUpdated,eventData);},storageForId:function(storageId)
-{return this._storages[JSON.stringify(storageId)];},storages:function()
-{var result=[];for(var id in this._storages)
-result.push(this._storages[id]);return result;},__proto__:WebInspector.Object.prototype}
-WebInspector.DOMStorageDispatcher=function(model)
-{this._model=model;}
-WebInspector.DOMStorageDispatcher.prototype={domStorageItemsCleared:function(storageId)
-{this._model._domStorageItemsCleared(storageId);},domStorageItemRemoved:function(storageId,key)
-{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;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.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"}
-WebInspector.DataGrid.Order={Ascending:"ascending",Descending:"descending"}
-WebInspector.DataGrid.Align={Center:"center",Right:"right"}
-WebInspector.DataGrid.createSortableDataGrid=function(columnNames,values)
-{var numColumns=columnNames.length;if(!numColumns)
-return null;var columns=[];for(var i=0;i<columnNames.length;++i)
-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);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
-comparison=item1<item2?-1:(item1>item2?1:0);return sortDirection*comparison;}
-nodes.sort(comparator);dataGrid.rootNode().removeChildren();for(var i=0;i<nodes.length;i++)
-dataGrid._rootNode.appendChild(nodes[i]);}
-return dataGrid;}
-WebInspector.DataGrid.prototype={setRootNode:function(rootNode)
-{if(this._rootNode){this._rootNode.removeChildren();this._rootNode.dataGrid=null;this._rootNode._isRoot=false;}
-this._rootNode=rootNode;rootNode._isRoot=true;rootNode.hasChildren=false;rootNode._expanded=true;rootNode._revealed=true;rootNode.dataGrid=this;},rootNode:function()
-{return this._rootNode;},_ondblclick:function(event)
-{if(this._editing||this._editingNode)
-return;var columnIdentifier=this.columnIdentifierFromNode(event.target);if(!columnIdentifier||!this.columns[columnIdentifier].editable)
-return;this._startEditing(event.target);},_startEditingColumnOfDataGridNode:function(node,columnOrdinal)
-{this._editing=true;this._editingNode=node;this._editingNode.select();var element=this._editingNode._element.children[columnOrdinal];WebInspector.startEditing(element,this._startEditingConfig(element));window.getSelection().setBaseAndExtent(element,0,element,1);},_startEditing:function(target)
-{var element=target.enclosingNodeOrSelfWithNodeName("td");if(!element)
-return;this._editingNode=this.dataGridNodeFromNode(target);if(!this._editingNode){if(!this.creationNode)
-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.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)
-return;if(moveDirection==="forward"){var firstEditableColumn=this._nextEditableColumn(-1);if(currentEditingNode.isCreationNode&&columnOrdinal===firstEditableColumn&&!wasChange)
-return;var nextEditableColumn=this._nextEditableColumn(columnOrdinal);if(nextEditableColumn!==-1)
-return this._startEditingColumnOfDataGridNode(currentEditingNode,nextEditableColumn);var nextDataGridNode=currentEditingNode.traverseNextNode(true,null,true);if(nextDataGridNode)
-return this._startEditingColumnOfDataGridNode(nextDataGridNode,firstEditableColumn);if(currentEditingNode.isCreationNode&&wasChange){this.addCreationNode(false);return this._startEditingColumnOfDataGridNode(this.creationNode,firstEditableColumn);}
-return;}
-if(moveDirection==="backward"){var prevEditableColumn=this._nextEditableColumn(columnOrdinal,true);if(prevEditableColumn!==-1)
-return this._startEditingColumnOfDataGridNode(currentEditingNode,prevEditableColumn);var lastEditableColumn=this._nextEditableColumn(this._columnsArray.length,true);var nextDataGridNode=currentEditingNode.traversePreviousNode(true,true);if(nextDataGridNode)
-return this._startEditingColumnOfDataGridNode(nextDataGridNode,lastEditableColumn);return;}}
-if(textBeforeEditing==newText){this._editingCancelled(element);moveToNextIfNeeded.call(this,false);return;}
-this._editingNode.data[columnIdentifier]=newText;this._editCallback(this._editingNode,columnIdentifier,textBeforeEditing,newText);if(this._editingNode.isCreationNode)
-this.addCreationNode(false);this._editingCancelled(element);moveToNextIfNeeded.call(this,true);},_editingCancelled:function(element)
-{delete this._editing;this._editingNode=null;},_nextEditableColumn:function(columnOrdinal,moveBackward)
-{var increment=moveBackward?-1:1;var columns=this._columnsArray;for(var i=columnOrdinal+increment;(i>=0)&&(i<columns.length);i+=increment){if(columns[i].editable)
-return i;}
-return-1;},sortColumnIdentifier:function()
-{if(!this._sortColumnCell)
-return null;return this._sortColumnCell.columnIdentifier;},sortOrder:function()
-{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.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()
-{if("_dataTableBody"in this)
-return this._dataTableBody;this._dataTableBody=this._dataTable.getElementsByTagName("tbody")[0];if(!this._dataTableBody){this._dataTableBody=this.element.ownerDocument.createElement("tbody");this._dataTable.insertBefore(this._dataTableBody,this._dataTable.tFoot);}
-return this._dataTableBody;},_autoSizeWidths:function(widths,minPercent,maxPercent)
-{if(minPercent)
-minPercent=Math.min(minPercent,Math.floor(100/widths.length));var totalWidth=0;for(var i=0;i<widths.length;++i)
-totalWidth+=widths[i];var totalPercentWidth=0;for(var i=0;i<widths.length;++i){var width=Math.round(100*widths[i]/totalWidth);if(minPercent&&width<minPercent)
-width=minPercent;else if(maxPercent&&width>maxPercent)
-width=maxPercent;totalPercentWidth+=width;widths[i]=width;}
-var recoupPercent=totalPercentWidth-100;while(minPercent&&recoupPercent>0){for(var i=0;i<widths.length;++i){if(widths[i]>minPercent){--widths[i];--recoupPercent;if(!recoupPercent)
-break;}}}
-while(maxPercent&&recoupPercent<0){for(var i=0;i<widths.length;++i){if(widths[i]<maxPercent){++widths[i];++recoupPercent;if(!recoupPercent)
-break;}}}
-return widths;},autoSizeColumns:function(minPercent,maxPercent,maxDescentLevel)
-{var widths=[];for(var i=0;i<this._columnsArray.length;++i)
-widths.push((this._columnsArray[i].title||"").length);maxDescentLevel=maxDescentLevel||0;var children=this._enumerateChildren(this._rootNode,[],maxDescentLevel+1);for(var i=0;i<children.length;++i){var node=children[i];for(var j=0;j<this._columnsArray.length;++j){var text=node.data[this._columnsArray[j].identifier]||"";if(text.length>widths[j])
-widths[j]=text.length;}}
-widths=this._autoSizeWidths(widths,minPercent,maxPercent);for(var i=0;i<this._columnsArray.length;++i)
-this._columnsArray[i].element.style.width=widths[i]+"%";this._columnWidthsInitialized=false;this.updateWidths();},_enumerateChildren:function(rootNode,result,maxLevel)
-{if(!rootNode._isRoot)
-result.push(rootNode);if(!maxLevel)
-return;for(var i=0;i<rootNode.children.length;++i)
-this._enumerateChildren(rootNode.children[i],result,maxLevel-1);return result;},onResize:function()
-{this.updateWidths();},updateWidths:function()
-{var headerTableColumns=this._headerTableColumnGroup.children;var tableWidth=this._dataTable.offsetWidth;var numColumns=headerTableColumns.length-1;if(!this._columnWidthsInitialized&&this.element.offsetWidth){for(var i=0;i<numColumns;i++){var columnWidth=this.headerTableBody.rows[0].cells[i].offsetWidth;var percentWidth=(100*columnWidth/tableWidth)+"%";this._headerTableColumnGroup.children[i].style.width=percentWidth;this._dataTableColumnGroup.children[i].style.width=percentWidth;}
-this._columnWidthsInitialized=true;}
-this._positionResizers();this.dispatchEventToListeners(WebInspector.DataGrid.Events.ColumnsResized);},setName:function(name)
-{this._columnWeightsSetting=WebInspector.settings.createSetting("dataGrid-"+name+"-columnWeights",{});this._loadColumnWeights();},_loadColumnWeights:function()
-{if(!this._columnWeightsSetting)
-return;var weights=this._columnWeightsSetting.get();for(var i=0;i<this._columnsArray.length;++i){var column=this._columnsArray[i];var weight=weights[column.identifier];if(weight)
-column.weight=weight;}
-this.applyColumnWeights();},_saveColumnWeights:function()
-{if(!this._columnWeightsSetting)
-return;var weights={};for(var i=0;i<this._columnsArray.length;++i){var column=this._columnsArray[i];weights[column.identifier]=column.weight;}
-this._columnWeightsSetting.set(weights);},wasShown:function()
-{this._loadColumnWeights();},applyColumnWeights:function()
-{var sumOfWeights=0.0;for(var i=0;i<this._columnsArray.length;++i){var column=this._columnsArray[i];if(this.isColumnVisible(column))
-sumOfWeights+=column.weight;}
-for(var i=0;i<this._columnsArray.length;++i){var column=this._columnsArray[i];var width=this.isColumnVisible(column)?(100*column.weight/sumOfWeights)+"%":"0%";this._headerTableColumnGroup.children[i].style.width=width;this._dataTableColumnGroup.children[i].style.width=width;}
-this._positionResizers();this.dispatchEventToListeners(WebInspector.DataGrid.Events.ColumnsResized);},isColumnVisible:function(column)
-{return!column.hidden;},setColumnVisible:function(columnIdentifier,visible)
-{if(visible===!this.columns[columnIdentifier].hidden)
-return;this.columns[columnIdentifier].hidden=!visible;this.element.enableStyleClass("hide-"+columnIdentifier+"-column",!visible);},get scrollContainer()
-{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.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";}
-resizer.style.setProperty("display","none");resizer.leftNeighboringColumnIndex=0;resizer.rightNeighboringColumnIndex=0;}}
-if(previousResizer)
-previousResizer.rightNeighboringColumnIndex=numColumns-1;},addCreationNode:function(hasChildren)
-{if(this.creationNode)
-this.creationNode.makeNormal();var emptyData={};for(var column in this.columns)
-emptyData[column]=null;this.creationNode=new WebInspector.CreationDataGridNode(emptyData,hasChildren);this.rootNode().appendChild(this.creationNode);},sortNodes:function(comparator,reverseMode)
-{function comparatorWrapper(a,b)
-{if(a._dataGridNode._data.summaryRow)
-return 1;if(b._dataGridNode._data.summaryRow)
-return-1;var aDataGirdNode=a._dataGridNode;var bDataGirdNode=b._dataGridNode;return reverseMode?comparator(bDataGirdNode,aDataGirdNode):comparator(aDataGirdNode,bDataGirdNode);}
-var tbody=this.dataTableBody;var tbodyParent=tbody.parentElement;tbodyParent.removeChild(tbody);var childNodes=tbody.childNodes;var fillerRow=childNodes[childNodes.length-1];var sortedRows=Array.prototype.slice.call(childNodes,0,childNodes.length-1);sortedRows.sort(comparatorWrapper);var sortedRowsLength=sortedRows.length;tbody.removeChildren();var previousSiblingNode=null;for(var i=0;i<sortedRowsLength;++i){var row=sortedRows[i];var node=row._dataGridNode;node.previousSibling=previousSiblingNode;if(previousSiblingNode)
-previousSiblingNode.nextSibling=node;tbody.appendChild(row);previousSiblingNode=node;}
-if(previousSiblingNode)
-previousSiblingNode.nextSibling=null;tbody.appendChild(fillerRow);tbodyParent.appendChild(tbody);},_keyDown:function(event)
-{if(!this.selectedNode||event.shiftKey||event.metaKey||event.ctrlKey||this._editing)
-return;var handled=false;var nextSelectedNode;if(event.keyIdentifier==="Up"&&!event.altKey){nextSelectedNode=this.selectedNode.traversePreviousNode(true);while(nextSelectedNode&&!nextSelectedNode.selectable)
-nextSelectedNode=nextSelectedNode.traversePreviousNode(true);handled=nextSelectedNode?true:false;}else if(event.keyIdentifier==="Down"&&!event.altKey){nextSelectedNode=this.selectedNode.traverseNextNode(true);while(nextSelectedNode&&!nextSelectedNode.selectable)
-nextSelectedNode=nextSelectedNode.traverseNextNode(true);handled=nextSelectedNode?true:false;}else if(event.keyIdentifier==="Left"){if(this.selectedNode.expanded){if(event.altKey)
-this.selectedNode.collapseRecursively();else
-this.selectedNode.collapse();handled=true;}else if(this.selectedNode.parent&&!this.selectedNode.parent._isRoot){handled=true;if(this.selectedNode.parent.selectable){nextSelectedNode=this.selectedNode.parent;handled=nextSelectedNode?true:false;}else if(this.selectedNode.parent)
-this.selectedNode.parent.collapse();}}else if(event.keyIdentifier==="Right"){if(!this.selectedNode.revealed){this.selectedNode.reveal();handled=true;}else if(this.selectedNode.hasChildren){handled=true;if(this.selectedNode.expanded){nextSelectedNode=this.selectedNode.children[0];handled=nextSelectedNode?true:false;}else{if(event.altKey)
-this.selectedNode.expandRecursively();else
-this.selectedNode.expand();}}}else if(event.keyCode===8||event.keyCode===46){if(this._deleteCallback){handled=true;this._deleteCallback(this.selectedNode);this.changeNodeAfterDeletion();}}else if(isEnterKey(event)){if(this._editCallback){handled=true;this._startEditing(this.selectedNode._element.children[this._nextEditableColumn(-1)]);}}
-if(nextSelectedNode){nextSelectedNode.reveal();nextSelectedNode.select();}
-if(handled)
-event.consume(true);},changeNodeAfterDeletion:function()
-{var nextSelectedNode=this.selectedNode.traverseNextNode(true);while(nextSelectedNode&&!nextSelectedNode.selectable)
-nextSelectedNode=nextSelectedNode.traverseNextNode(true);if(!nextSelectedNode||nextSelectedNode.isCreationNode){nextSelectedNode=this.selectedNode.traversePreviousNode(true);while(nextSelectedNode&&!nextSelectedNode.selectable)
-nextSelectedNode=nextSelectedNode.traversePreviousNode(true);}
-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.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.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.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))
-return;if(event.metaKey){if(gridNode.selected)
-gridNode.deselect();else
-gridNode.select();}else
-gridNode.select();},_contextMenuInDataTable:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);var gridNode=this.dataGridNodeFromNode(event.target);if(this._refreshCallback&&(!gridNode||gridNode!==this.creationNode))
-contextMenu.appendItem(WebInspector.UIString("Refresh"),this._refreshCallback.bind(this));if(gridNode&&gridNode.selectable&&!gridNode.isEventWithinDisclosureTriangle(event)){if(this._editCallback){if(gridNode===this.creationNode)
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add new":"Add New"),this._startEditing.bind(this,event.target));else{var columnIdentifier=this.columnIdentifierFromNode(event.target);if(columnIdentifier&&this.columns[columnIdentifier].editable)
-contextMenu.appendItem(WebInspector.UIString("Edit"),this._startEditing.bind(this,event.target));}}
-if(this._deleteCallback&&gridNode!==this.creationNode)
-contextMenu.appendItem(WebInspector.UIString("Delete"),this._deleteCallback.bind(this,gridNode));if(this._contextMenuCallback)
-this._contextMenuCallback(contextMenu,gridNode);}
-contextMenu.show();},_clickInDataTable:function(event)
-{var gridNode=this.dataGridNodeFromNode(event.target);if(!gridNode||!gridNode.hasChildren)
-return;if(!gridNode.isEventWithinDisclosureTriangle(event))
-return;if(gridNode.expanded){if(event.altKey)
-gridNode.collapseRecursively();else
-gridNode.collapse();}else{if(event.altKey)
-gridNode.expandRecursively();else
-gridNode.expand();}},get resizeMethod()
-{if(typeof this._resizeMethod==="undefined")
-return WebInspector.DataGrid.ResizeMethod.Nearest;return this._resizeMethod;},set resizeMethod(method)
-{this._resizeMethod=method;},_startResizerDragging:function(event)
-{this._currentResizer=event.target;return!!this._currentResizer.rightNeighboringColumnIndex;},_resizerDragging:function(event)
-{var resizer=this._currentResizer;if(!resizer)
-return;var tableWidth=this._dataTable.offsetWidth;var dragPoint=event.clientX-this.element.totalOffsetLeft();var leftCellIndex=resizer.leftNeighboringColumnIndex;var rightCellIndex=resizer.rightNeighboringColumnIndex;var firstRowCells=this.headerTableBody.rows[0].cells;var leftEdgeOfPreviousColumn=0;for(var i=0;i<leftCellIndex;i++)
-leftEdgeOfPreviousColumn+=firstRowCells[i].offsetWidth;if(this.resizeMethod==WebInspector.DataGrid.ResizeMethod.Last){rightCellIndex=this.resizers.length;}else if(this.resizeMethod==WebInspector.DataGrid.ResizeMethod.First){leftEdgeOfPreviousColumn+=firstRowCells[leftCellIndex].offsetWidth-firstRowCells[0].offsetWidth;leftCellIndex=0;}
-var rightEdgeOfNextColumn=leftEdgeOfPreviousColumn+firstRowCells[leftCellIndex].offsetWidth+firstRowCells[rightCellIndex].offsetWidth;var leftMinimum=leftEdgeOfPreviousColumn+this.ColumnResizePadding;var rightMaximum=rightEdgeOfNextColumn-this.ColumnResizePadding;if(leftMinimum>rightMaximum)
-return;dragPoint=Number.constrain(dragPoint,leftMinimum,rightMaximum);resizer.style.left=(dragPoint-this.CenterResizerOverBorderAdjustment)+"px";var percentLeftColumn=(100*(dragPoint-leftEdgeOfPreviousColumn)/tableWidth)+"%";this._headerTableColumnGroup.children[leftCellIndex].style.width=percentLeftColumn;this._dataTableColumnGroup.children[leftCellIndex].style.width=percentLeftColumn;var percentRightColumn=(100*(rightEdgeOfNextColumn-dragPoint)/tableWidth)+"%";this._headerTableColumnGroup.children[rightCellIndex].style.width=percentRightColumn;this._dataTableColumnGroup.children[rightCellIndex].style.width=percentRightColumn;var leftColumn=this._columnsArray[leftCellIndex];var rightColumn=this._columnsArray[rightCellIndex];if(leftColumn.weight||rightColumn.weight){var sumOfWeights=leftColumn.weight+rightColumn.weight;var delta=rightEdgeOfNextColumn-leftEdgeOfPreviousColumn;leftColumn.weight=(dragPoint-leftEdgeOfPreviousColumn)*sumOfWeights/delta;rightColumn.weight=(rightEdgeOfNextColumn-dragPoint)*sumOfWeights/delta;}
-this._positionResizers();event.preventDefault();this.dispatchEventToListeners(WebInspector.DataGrid.Events.ColumnsResized);},_endResizerDragging:function(event)
-{this._currentResizer=null;this._saveColumnWeights();this.dispatchEventToListeners(WebInspector.DataGrid.Events.ColumnsResized);},ColumnResizePadding:24,CenterResizerOverBorderAdjustment:3,__proto__:WebInspector.View.prototype}
-WebInspector.DataGrid.ResizeMethod={Nearest:"nearest",First:"first",Last:"last"}
-WebInspector.DataGridNode=function(data,hasChildren)
-{this._expanded=false;this._selected=false;this._shouldRefreshChildren=true;this._data=data||{};this.hasChildren=hasChildren||false;this.children=[];this.dataGrid=null;this.parent=null;this.previousSibling=null;this.nextSibling=null;this.disclosureToggleWidth=10;}
-WebInspector.DataGridNode.prototype={selectable:true,_isRoot:false,get element()
-{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.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()
-{if("_revealed"in this)
-return this._revealed;var currentAncestor=this.parent;while(currentAncestor&&!currentAncestor._isRoot){if(!currentAncestor.expanded){this._revealed=false;return false;}
-currentAncestor=currentAncestor.parent;}
-this._revealed=true;return true;},set hasChildren(x)
-{if(this._hasChildren===x)
-return;this._hasChildren=x;if(!this._element)
-return;this._element.enableStyleClass("parent",this._hasChildren);this._element.enableStyleClass("expanded",this._hasChildren&&this.expanded);},get hasChildren()
-{return this._hasChildren;},set revealed(x)
-{if(this._revealed===x)
-return;this._revealed=x;if(this._element)
-this._element.enableStyleClass("revealed",this._revealed);for(var i=0;i<this.children.length;++i)
-this.children[i].revealed=x&&this.expanded;},get depth()
-{if("_depth"in this)
-return this._depth;if(this.parent&&!this.parent._isRoot)
-this._depth=this.parent.depth+1;else
-this._depth=0;return this._depth;},get leftPadding()
-{if(typeof this._leftPadding==="number")
-return this._leftPadding;this._leftPadding=this.depth*this.dataGrid.indentWidth;return this._leftPadding;},get shouldRefreshChildren()
-{return this._shouldRefreshChildren;},set shouldRefreshChildren(x)
-{this._shouldRefreshChildren=x;if(x&&this.expanded)
-this.expand();},get selected()
-{return this._selected;},set selected(x)
-{if(x)
-this.select();else
-this.deselect();},get expanded()
-{return this._expanded;},set expanded(x)
-{if(x)
-this.expand();else
-this.collapse();},refresh:function()
-{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.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.classList.add("disclosure");if(this.leftPadding)
-cell.style.setProperty("padding-left",this.leftPadding+"px");}
-return cell;},nodeHeight:function()
-{var rowHeight=16;if(!this.revealed)
-return 0;if(!this.expanded)
-return rowHeight;var result=rowHeight;for(var i=0;i<this.children.length;i++)
-result+=this.children[i].nodeHeight();return result;},appendChild:function(child)
-{this.insertChild(child,this.children.length);},insertChild:function(child,index)
-{if(!child)
-throw("insertChild: Node can't be undefined or null.");if(child.parent===this)
-throw("insertChild: Node is already a child of this node.");if(child.parent)
-child.parent.removeChild(child);this.children.splice(index,0,child);this.hasChildren=true;child.parent=this;child.dataGrid=this.dataGrid;child._recalculateSiblings(index);delete child._depth;delete child._revealed;delete child._attached;child._shouldRefreshChildren=true;var current=child.children[0];while(current){current.dataGrid=this.dataGrid;delete current._depth;delete current._revealed;delete current._attached;current._shouldRefreshChildren=true;current=current.traverseNextNode(false,child,true);}
-if(this.expanded)
-child._attach();if(!this.revealed)
-child.revealed=false;},removeChild:function(child)
-{if(!child)
-throw("removeChild: Node can't be undefined or null.");if(child.parent!==this)
-throw("removeChild: Node is not a child of this node.");child.deselect();child._detach();this.children.remove(child,true);if(child.previousSibling)
-child.previousSibling.nextSibling=child.nextSibling;if(child.nextSibling)
-child.nextSibling.previousSibling=child.previousSibling;child.dataGrid=null;child.parent=null;child.nextSibling=null;child.previousSibling=null;if(this.children.length<=0)
-this.hasChildren=false;},removeChildren:function()
-{for(var i=0;i<this.children.length;++i){var child=this.children[i];child.deselect();child._detach();child.dataGrid=null;child.parent=null;child.nextSibling=null;child.previousSibling=null;}
-this.children=[];this.hasChildren=false;},_recalculateSiblings:function(myIndex)
-{if(!this.parent)
-return;var previousChild=(myIndex>0?this.parent.children[myIndex-1]:null);if(previousChild){previousChild.nextSibling=this;this.previousSibling=previousChild;}else
-this.previousSibling=null;var nextChild=this.parent.children[myIndex+1];if(nextChild){nextChild.previousSibling=this;this.nextSibling=nextChild;}else
-this.nextSibling=null;},collapse:function()
-{if(this._isRoot)
-return;if(this._element)
-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()
-{if(!this.hasChildren||this.expanded)
-return;if(this._isRoot)
-return;if(this.revealed&&!this._shouldRefreshChildren)
-for(var i=0;i<this.children.length;++i)
-this.children[i].revealed=true;if(this._shouldRefreshChildren){for(var i=0;i<this.children.length;++i)
-this.children[i]._detach();this.populate();if(this._attached){for(var i=0;i<this.children.length;++i){var child=this.children[i];if(this.revealed)
-child.revealed=true;child._attach();}}
-delete this._shouldRefreshChildren;}
-if(this._element)
-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)
-currentAncestor.expand();currentAncestor=currentAncestor.parent;}
-this.element.scrollIntoViewIfNeeded(false);},select:function(supressSelectedEvent)
-{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.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.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)
-info.depthChange=0;var node=(!skipHidden||this.revealed)?this.children[0]:null;if(node&&(!skipHidden||this.expanded)){if(info)
-info.depthChange=1;return node;}
-if(this===stayWithin)
-return null;node=(!skipHidden||this.revealed)?this.nextSibling:null;if(node)
-return node;node=this;while(node&&!node._isRoot&&!((!skipHidden||node.revealed)?node.nextSibling:null)&&node.parent!==stayWithin){if(info)
-info.depthChange-=1;node=node.parent;}
-if(!node)
-return null;return(!skipHidden||node.revealed)?node.nextSibling:null;},traversePreviousNode:function(skipHidden,dontPopulate)
-{var node=(!skipHidden||this.revealed)?this.previousSibling:null;if(!dontPopulate&&node&&node.hasChildren)
-node.populate();while(node&&((!skipHidden||(node.revealed&&node.expanded))?node.children[node.children.length-1]:null)){if(!dontPopulate&&node.hasChildren)
-node.populate();node=((!skipHidden||(node.revealed&&node.expanded))?node.children[node.children.length-1]:null);}
-if(node)
-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.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)
-nextNode=previousNode.element.nextSibling;if(!nextNode)
-nextNode=this.dataGrid.dataTableBody.firstChild;this.dataGrid.dataTableBody.insertBefore(this.element,nextNode);if(this.expanded)
-for(var i=0;i<this.children.length;++i)
-this.children[i]._attach();},_detach:function()
-{if(!this._attached)
-return;this._attached=false;if(this._element)
-this._element.remove();for(var i=0;i<this.children.length;++i)
-this.children[i]._detach();this.wasDetached();},wasDetached:function()
-{},savePosition:function()
-{if(this._savedPosition)
-return;if(!this.parent)
-throw("savePosition: Node must have a parent.");this._savedPosition={parent:this.parent,index:this.parent.children.indexOf(this)};},restorePosition:function()
-{if(!this._savedPosition)
-return;if(this.parent!==this._savedPosition.parent)
-this._savedPosition.parent.insertChild(this,this._savedPosition.index);delete this._savedPosition;},__proto__:WebInspector.Object.prototype}
-WebInspector.CreationDataGridNode=function(data,hasChildren)
-{WebInspector.DataGridNode.call(this,data,hasChildren);this.isCreationNode=true;}
-WebInspector.CreationDataGridNode.prototype={makeNormal:function()
-{delete this.isCreationNode;delete this.makeNormal;},__proto__:WebInspector.DataGridNode.prototype}
-WebInspector.ShowMoreDataGridNode=function(callback,startPosition,endPosition,chunkSize)
-{WebInspector.DataGridNode.call(this,{summaryRow:true},false);this._callback=callback;this._startPosition=startPosition;this._endPosition=endPosition;this._chunkSize=chunkSize;this.showNext=document.createElement("button");this.showNext.setAttribute("type","button");this.showNext.addEventListener("click",this._showNextChunk.bind(this),false);this.showNext.textContent=WebInspector.UIString("Show %d before",this._chunkSize);this.showAll=document.createElement("button");this.showAll.setAttribute("type","button");this.showAll.addEventListener("click",this._showAll.bind(this),false);this.showLast=document.createElement("button");this.showLast.setAttribute("type","button");this.showLast.addEventListener("click",this._showLastChunk.bind(this),false);this.showLast.textContent=WebInspector.UIString("Show %d after",this._chunkSize);this._updateLabels();this.selectable=false;}
-WebInspector.ShowMoreDataGridNode.prototype={_showNextChunk:function()
-{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.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)
-++count;while(--count>0){cell=document.createElement("td");this._element.appendChild(cell);}},setStartPosition:function(from)
-{this._startPosition=from;this._updateLabels();},setEndPosition:function(to)
-{this._endPosition=to;this._updateLabels();},nodeHeight:function()
-{return 32;},dispose:function()
-{},__proto__:WebInspector.DataGridNode.prototype}
-WebInspector.CookiesTable=function(expandable,refreshCallback,selectedCallback)
-{WebInspector.View.call(this);this.element.className="fill";var readOnly=expandable;this._refreshCallback=refreshCallback;var columns=[{id:"name",title:WebInspector.UIString("Name"),sortable:true,disclosure:expandable,sort:WebInspector.DataGrid.Order.Ascending,longText:true,weight:24},{id:"value",title:WebInspector.UIString("Value"),sortable:true,longText:true,weight:34},{id:"domain",title:WebInspector.UIString("Domain"),sortable:true,weight:7},{id:"path",title:WebInspector.UIString("Path"),sortable:true,weight:7},{id:"expires",title:WebInspector.UIString("Expires / Max-Age"),sortable:true,weight:7},{id:"size",title:WebInspector.UIString("Size"),sortable:true,align:WebInspector.DataGrid.Align.Right,weight:7},{id:"httpOnly",title:WebInspector.UIString("HTTP"),sortable:true,align:WebInspector.DataGrid.Align.Center,weight:7},{id:"secure",title:WebInspector.UIString("Secure"),sortable:true,align:WebInspector.DataGrid.Align.Center,weight:7}];if(readOnly)
-this._dataGrid=new WebInspector.DataGrid(columns);else
-this._dataGrid=new WebInspector.DataGrid(columns,undefined,this._onDeleteCookie.bind(this),refreshCallback,this._onContextMenu.bind(this));this._dataGrid.setName("cookiesTable");this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SortingChanged,this._rebuildTable,this);if(selectedCallback)
-this._dataGrid.addEventListener(WebInspector.DataGrid.Events.SelectedNode,selectedCallback,this);this._nextSelectedCookie=(null);this._dataGrid.show(this.element);this._data=[];}
-WebInspector.CookiesTable.prototype={_clearAndRefresh:function(domain)
-{this.clear(domain);this._refresh();},_onContextMenu:function(contextMenu,node)
-{if(node===this._dataGrid.creationNode)
-return;var cookie=node.cookie;var domain=cookie.domain();if(domain)
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear all from \"%s\"":"Clear All from \"%s\"",domain),this._clearAndRefresh.bind(this,domain));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear all":"Clear All"),this._clearAndRefresh.bind(this,null));},setCookies:function(cookies)
-{this.setCookieFolders([{cookies:cookies}]);},setCookieFolders:function(cookieFolders)
-{this._data=cookieFolders;this._rebuildTable();},selectedCookie:function()
-{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.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())
-cookieNode.select();}},_totalSize:function(cookies)
-{var totalSize=0;for(var i=0;cookies&&i<cookies.length;++i)
-totalSize+=cookies[i].size();return totalSize;},_sortCookies:function(cookies)
-{var sortDirection=this._dataGrid.isSortOrderAscending()?1:-1;function compareTo(getter,cookie1,cookie2)
-{return sortDirection*(getter.apply(cookie1)+"").compareTo(getter.apply(cookie2)+"")}
-function numberCompare(getter,cookie1,cookie2)
-{return sortDirection*(getter.apply(cookie1)-getter.apply(cookie2));}
-function expiresCompare(cookie1,cookie2)
-{if(cookie1.session()!==cookie2.session())
-return sortDirection*(cookie1.session()?1:-1);if(cookie1.session())
-return 0;if(cookie1.maxAge()&&cookie2.maxAge())
-return sortDirection*(cookie1.maxAge()-cookie2.maxAge());if(cookie1.expires()&&cookie2.expires())
-return sortDirection*(cookie1.expires()-cookie2.expires());return sortDirection*(cookie1.expires()?1:-1);}
-var comparator;switch(this._dataGrid.sortColumnIdentifier()){case"name":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.name);break;case"value":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.value);break;case"domain":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.domain);break;case"path":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.path);break;case"expires":comparator=expiresCompare;break;case"size":comparator=numberCompare.bind(null,WebInspector.Cookie.prototype.size);break;case"httpOnly":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.httpOnly);break;case"secure":comparator=compareTo.bind(null,WebInspector.Cookie.prototype.secure);break;default:compareTo.bind(null,WebInspector.Cookie.prototype.name);}
-cookies.sort(comparator);},_createGridNode:function(cookie)
-{var data={};data.name=cookie.name();data.value=cookie.value();if(cookie.type()===WebInspector.Cookie.Type.Request){data.domain=WebInspector.UIString("N/A");data.path=WebInspector.UIString("N/A");data.expires=WebInspector.UIString("N/A");}else{data.domain=cookie.domain()||"";data.path=cookie.path()||"";if(cookie.maxAge())
-data.expires=Number.secondsToString(parseInt(cookie.maxAge(),10));else if(cookie.expires())
-data.expires=new Date(cookie.expires()).toGMTString();else
-data.expires=WebInspector.UIString("Session");}
-data.size=cookie.size();const checkmark="\u2713";data.httpOnly=(cookie.httpOnly()?checkmark:"");data.secure=(cookie.secure()?checkmark:"");var node=new WebInspector.DataGridNode(data);node.cookie=cookie;node.selectable=true;return node;},_onDeleteCookie:function(node)
-{var cookie=node.cookie;var neighbour=node.traverseNextNode()||node.traversePreviousNode();if(neighbour)
-this._nextSelectedCookie=neighbour.cookie;cookie.remove();this._refresh();},_refresh:function()
-{if(this._refreshCallback)
-this._refreshCallback();},__proto__:WebInspector.View.prototype}
-WebInspector.CookieItemsView=function(treeElement,cookieDomain)
-{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()
-{this._deleteButton.visible=false;},_update:function()
-{WebInspector.Cookies.getCookiesAsync(this._updateWithCookies.bind(this));},_updateWithCookies:function(allCookies)
-{this._cookies=this._filterCookiesForDomain(allCookies);if(!this._cookies.length){this._emptyView.show(this.element);this._clearButton.visible=false;this._deleteButton.visible=false;if(this._cookiesTable)
-this._cookiesTable.detach();return;}
-if(!this._cookiesTable)
-this._cookiesTable=new WebInspector.CookiesTable(false,this._update.bind(this),this._showDeleteButton.bind(this));this._cookiesTable.setCookies(this._cookies);this._emptyView.detach();this._cookiesTable.show(this.element);this._treeElement.subtitle=String.sprintf(WebInspector.UIString("%d cookies (%s)"),this._cookies.length,Number.bytesToString(this._totalSize));this._clearButton.visible=true;this._deleteButton.visible=!!this._cookiesTable.selectedCookie();},_filterCookiesForDomain:function(allCookies)
-{var cookies=[];var resourceURLsForDocumentURL=[];this._totalSize=0;function populateResourcesForDocuments(resource)
-{var url=resource.documentURL.asParsedURL();if(url&&url.host==this._cookieDomain)
-resourceURLsForDocumentURL.push(resource.url);}
-WebInspector.forAllResources(populateResourcesForDocuments.bind(this));for(var i=0;i<allCookies.length;++i){var pushed=false;var size=allCookies[i].size();for(var j=0;j<resourceURLsForDocumentURL.length;++j){var resourceURL=resourceURLsForDocumentURL[j];if(WebInspector.Cookies.cookieMatchesResourceURL(allCookies[i],resourceURL)){this._totalSize+=size;if(!pushed){pushed=true;cookies.push(allCookies[i]);}}}}
-return cookies;},clear:function()
-{this._cookiesTable.clear();this._update();},_clearButtonClicked:function()
-{this.clear();},_showDeleteButton:function()
-{this._deleteButton.visible=true;},_deleteButtonClicked:function()
-{var selectedCookie=this._cookiesTable.selectedCookie();if(selectedCookie){selectedCookie.remove();this._update();}},_refreshButtonClicked:function(event)
-{this._update();},_contextMenu:function(event)
-{if(!this._cookies.length){var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendItem(WebInspector.UIString("Refresh"),this._update.bind(this));contextMenu.show();}},__proto__:WebInspector.View.prototype}
-WebInspector.ApplicationCacheModel=function()
-{ApplicationCacheAgent.enable();InspectorBackend.registerApplicationCacheDispatcher(new WebInspector.ApplicationCacheDispatcher(this));WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,this._frameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached,this._frameDetached,this);this._statuses={};this._manifestURLsByFrame={};this._mainFrameNavigated();this._onLine=true;}
-WebInspector.ApplicationCacheModel.EventTypes={FrameManifestStatusUpdated:"FrameManifestStatusUpdated",FrameManifestAdded:"FrameManifestAdded",FrameManifestRemoved:"FrameManifestRemoved",NetworkStateChanged:"NetworkStateChanged"}
-WebInspector.ApplicationCacheModel.prototype={_frameNavigated:function(event)
-{var frame=(event.data);if(frame.isMainFrame()){this._mainFrameNavigated();return;}
-ApplicationCacheAgent.getManifestForFrame(frame.id,this._manifestForFrameLoaded.bind(this,frame.id));},_frameDetached:function(event)
-{var frame=(event.data);this._frameManifestRemoved(frame.id);},_mainFrameNavigated:function()
-{ApplicationCacheAgent.getFramesWithManifests(this._framesWithManifestsLoaded.bind(this));},_manifestForFrameLoaded:function(frameId,error,manifestURL)
-{if(error){console.error(error);return;}
-if(!manifestURL)
-this._frameManifestRemoved(frameId);},_framesWithManifestsLoaded:function(error,framesWithManifests)
-{if(error){console.error(error);return;}
-for(var i=0;i<framesWithManifests.length;++i)
-this._frameManifestUpdated(framesWithManifests[i].frameId,framesWithManifests[i].manifestURL,framesWithManifests[i].status);},_frameManifestUpdated:function(frameId,manifestURL,status)
-{if(status===applicationCache.UNCACHED){this._frameManifestRemoved(frameId);return;}
-if(!manifestURL)
-return;if(this._manifestURLsByFrame[frameId]&&manifestURL!==this._manifestURLsByFrame[frameId])
-this._frameManifestRemoved(frameId);var statusChanged=this._statuses[frameId]!==status;this._statuses[frameId]=status;if(!this._manifestURLsByFrame[frameId]){this._manifestURLsByFrame[frameId]=manifestURL;this.dispatchEventToListeners(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestAdded,frameId);}
-if(statusChanged)
-this.dispatchEventToListeners(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestStatusUpdated,frameId);},_frameManifestRemoved:function(frameId)
-{if(!this._manifestURLsByFrame[frameId])
-return;var manifestURL=this._manifestURLsByFrame[frameId];delete this._manifestURLsByFrame[frameId];delete this._statuses[frameId];this.dispatchEventToListeners(WebInspector.ApplicationCacheModel.EventTypes.FrameManifestRemoved,frameId);},frameManifestURL:function(frameId)
-{return this._manifestURLsByFrame[frameId]||"";},frameManifestStatus:function(frameId)
-{return this._statuses[frameId]||applicationCache.UNCACHED;},get onLine()
-{return this._onLine;},_statusUpdated:function(frameId,manifestURL,status)
-{this._frameManifestUpdated(frameId,manifestURL,status);},requestApplicationCache:function(frameId,callback)
-{function callbackWrapper(error,applicationCache)
-{if(error){console.error(error);callback(null);return;}
-callback(applicationCache);}
-ApplicationCacheAgent.getApplicationCacheForFrame(frameId,callbackWrapper.bind(this));},_networkStateUpdated:function(isNowOnline)
-{this._onLine=isNowOnline;this.dispatchEventToListeners(WebInspector.ApplicationCacheModel.EventTypes.NetworkStateChanged,isNowOnline);},__proto__:WebInspector.Object.prototype}
-WebInspector.ApplicationCacheDispatcher=function(applicationCacheModel)
-{this._applicationCacheModel=applicationCacheModel;}
-WebInspector.ApplicationCacheDispatcher.prototype={applicationCacheStatusUpdated:function(frameId,manifestURL,status)
-{this._applicationCacheModel._statusUpdated(frameId,manifestURL,status);},networkStateUpdated:function(isNowOnline)
-{this._applicationCacheModel._networkStateUpdated(isNowOnline);}}
-WebInspector.IndexedDBModel=function()
-{IndexedDBAgent.enable();WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginAdded,this._securityOriginAdded,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.SecurityOriginRemoved,this._securityOriginRemoved,this);this._databases=new Map();this._databaseNamesBySecurityOrigin={};this._reset();}
-WebInspector.IndexedDBModel.KeyTypes={NumberType:"number",StringType:"string",DateType:"date",ArrayType:"array"};WebInspector.IndexedDBModel.KeyPathTypes={NullType:"null",StringType:"string",ArrayType:"array"};WebInspector.IndexedDBModel.keyFromIDBKey=function(idbKey)
-{if(typeof(idbKey)==="undefined"||idbKey===null)
-return null;var key={};switch(typeof(idbKey)){case"number":key.number=idbKey;key.type=WebInspector.IndexedDBModel.KeyTypes.NumberType;break;case"string":key.string=idbKey;key.type=WebInspector.IndexedDBModel.KeyTypes.StringType;break;case"object":if(idbKey instanceof Date){key.date=idbKey.getTime();key.type=WebInspector.IndexedDBModel.KeyTypes.DateType;}else if(idbKey instanceof Array){key.array=[];for(var i=0;i<idbKey.length;++i)
-key.array.push(WebInspector.IndexedDBModel.keyFromIDBKey(idbKey[i]));key.type=WebInspector.IndexedDBModel.KeyTypes.ArrayType;}
-break;default:return null;}
-return key;}
-WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange=function(idbKeyRange)
-{var IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange;if(typeof(idbKeyRange)==="undefined"||idbKeyRange===null)
-return null;var keyRange={};keyRange.lower=WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.lower);keyRange.upper=WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.upper);keyRange.lowerOpen=idbKeyRange.lowerOpen;keyRange.upperOpen=idbKeyRange.upperOpen;return keyRange;}
-WebInspector.IndexedDBModel.idbKeyPathFromKeyPath=function(keyPath)
-{var idbKeyPath;switch(keyPath.type){case WebInspector.IndexedDBModel.KeyPathTypes.NullType:idbKeyPath=null;break;case WebInspector.IndexedDBModel.KeyPathTypes.StringType:idbKeyPath=keyPath.string;break;case WebInspector.IndexedDBModel.KeyPathTypes.ArrayType:idbKeyPath=keyPath.array;break;}
-return idbKeyPath;}
-WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath=function(idbKeyPath)
-{if(typeof idbKeyPath==="string")
-return"\""+idbKeyPath+"\"";if(idbKeyPath instanceof Array)
-return"[\""+idbKeyPath.join("\", \"")+"\"]";return null;}
-WebInspector.IndexedDBModel.EventTypes={DatabaseAdded:"DatabaseAdded",DatabaseRemoved:"DatabaseRemoved",DatabaseLoaded:"DatabaseLoaded"}
-WebInspector.IndexedDBModel.prototype={_reset:function()
-{for(var securityOrigin in this._databaseNamesBySecurityOrigin)
-this._removeOrigin(securityOrigin);var securityOrigins=WebInspector.resourceTreeModel.securityOrigins();for(var i=0;i<securityOrigins.length;++i)
-this._addOrigin(securityOrigins[i]);},refreshDatabaseNames:function()
-{for(var securityOrigin in this._databaseNamesBySecurityOrigin)
-this._loadDatabaseNames(securityOrigin);},refreshDatabase:function(databaseId)
-{this._loadDatabase(databaseId);},clearObjectStore:function(databaseId,objectStoreName,callback)
-{IndexedDBAgent.clearObjectStore(databaseId.securityOrigin,databaseId.name,objectStoreName,callback);},_securityOriginAdded:function(event)
-{var securityOrigin=(event.data);this._addOrigin(securityOrigin);},_securityOriginRemoved:function(event)
-{var securityOrigin=(event.data);this._removeOrigin(securityOrigin);},_addOrigin:function(securityOrigin)
-{console.assert(!this._databaseNamesBySecurityOrigin[securityOrigin]);this._databaseNamesBySecurityOrigin[securityOrigin]=[];this._loadDatabaseNames(securityOrigin);},_removeOrigin:function(securityOrigin)
-{console.assert(this._databaseNamesBySecurityOrigin[securityOrigin]);for(var i=0;i<this._databaseNamesBySecurityOrigin[securityOrigin].length;++i)
-this._databaseRemoved(securityOrigin,this._databaseNamesBySecurityOrigin[securityOrigin][i]);delete this._databaseNamesBySecurityOrigin[securityOrigin];},_updateOriginDatabaseNames:function(securityOrigin,databaseNames)
-{var newDatabaseNames={};for(var i=0;i<databaseNames.length;++i)
-newDatabaseNames[databaseNames[i]]=true;var oldDatabaseNames={};for(var i=0;i<this._databaseNamesBySecurityOrigin[securityOrigin].length;++i)
-oldDatabaseNames[this._databaseNamesBySecurityOrigin[securityOrigin][i]]=true;this._databaseNamesBySecurityOrigin[securityOrigin]=databaseNames;for(var databaseName in oldDatabaseNames){if(!newDatabaseNames[databaseName])
-this._databaseRemoved(securityOrigin,databaseName);}
-for(var databaseName in newDatabaseNames){if(!oldDatabaseNames[databaseName])
-this._databaseAdded(securityOrigin,databaseName);}},_databaseAdded:function(securityOrigin,databaseName)
-{var databaseId=new WebInspector.IndexedDBModel.DatabaseId(securityOrigin,databaseName);this.dispatchEventToListeners(WebInspector.IndexedDBModel.EventTypes.DatabaseAdded,databaseId);},_databaseRemoved:function(securityOrigin,databaseName)
-{var databaseId=new WebInspector.IndexedDBModel.DatabaseId(securityOrigin,databaseName);this.dispatchEventToListeners(WebInspector.IndexedDBModel.EventTypes.DatabaseRemoved,databaseId);},_loadDatabaseNames:function(securityOrigin)
-{function callback(error,databaseNames)
-{if(error){console.error("IndexedDBAgent error: "+error);return;}
-if(!this._databaseNamesBySecurityOrigin[securityOrigin])
-return;this._updateOriginDatabaseNames(securityOrigin,databaseNames);}
-IndexedDBAgent.requestDatabaseNames(securityOrigin,callback.bind(this));},_loadDatabase:function(databaseId)
-{function callback(error,databaseWithObjectStores)
-{if(error){console.error("IndexedDBAgent error: "+error);return;}
-if(!this._databaseNamesBySecurityOrigin[databaseId.securityOrigin])
-return;var databaseModel=new WebInspector.IndexedDBModel.Database(databaseId,databaseWithObjectStores.version,databaseWithObjectStores.intVersion);this._databases.put(databaseId,databaseModel);for(var i=0;i<databaseWithObjectStores.objectStores.length;++i){var objectStore=databaseWithObjectStores.objectStores[i];var objectStoreIDBKeyPath=WebInspector.IndexedDBModel.idbKeyPathFromKeyPath(objectStore.keyPath);var objectStoreModel=new WebInspector.IndexedDBModel.ObjectStore(objectStore.name,objectStoreIDBKeyPath,objectStore.autoIncrement);for(var j=0;j<objectStore.indexes.length;++j){var index=objectStore.indexes[j];var indexIDBKeyPath=WebInspector.IndexedDBModel.idbKeyPathFromKeyPath(index.keyPath);var indexModel=new WebInspector.IndexedDBModel.Index(index.name,indexIDBKeyPath,index.unique,index.multiEntry);objectStoreModel.indexes[indexModel.name]=indexModel;}
-databaseModel.objectStores[objectStoreModel.name]=objectStoreModel;}
-this.dispatchEventToListeners(WebInspector.IndexedDBModel.EventTypes.DatabaseLoaded,databaseModel);}
-IndexedDBAgent.requestDatabase(databaseId.securityOrigin,databaseId.name,callback.bind(this));},loadObjectStoreData:function(databaseId,objectStoreName,idbKeyRange,skipCount,pageSize,callback)
-{this._requestData(databaseId,databaseId.name,objectStoreName,"",idbKeyRange,skipCount,pageSize,callback);},loadIndexData:function(databaseId,objectStoreName,indexName,idbKeyRange,skipCount,pageSize,callback)
-{this._requestData(databaseId,databaseId.name,objectStoreName,indexName,idbKeyRange,skipCount,pageSize,callback);},_requestData:function(databaseId,databaseName,objectStoreName,indexName,idbKeyRange,skipCount,pageSize,callback)
-{function innerCallback(error,dataEntries,hasMore)
-{if(error){console.error("IndexedDBAgent error: "+error);return;}
-if(!this._databaseNamesBySecurityOrigin[databaseId.securityOrigin])
-return;var entries=[];for(var i=0;i<dataEntries.length;++i){var key=WebInspector.RemoteObject.fromPayload(dataEntries[i].key);var primaryKey=WebInspector.RemoteObject.fromPayload(dataEntries[i].primaryKey);var value=WebInspector.RemoteObject.fromPayload(dataEntries[i].value);entries.push(new WebInspector.IndexedDBModel.Entry(key,primaryKey,value));}
-callback(entries,hasMore);}
-var keyRange=WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange(idbKeyRange);IndexedDBAgent.requestData(databaseId.securityOrigin,databaseName,objectStoreName,indexName,skipCount,pageSize,keyRange?keyRange:undefined,innerCallback.bind(this));},__proto__:WebInspector.Object.prototype}
-WebInspector.IndexedDBModel.Entry=function(key,primaryKey,value)
-{this.key=key;this.primaryKey=primaryKey;this.value=value;}
-WebInspector.IndexedDBModel.DatabaseId=function(securityOrigin,name)
-{this.securityOrigin=securityOrigin;this.name=name;}
-WebInspector.IndexedDBModel.DatabaseId.prototype={equals:function(databaseId)
-{return this.name===databaseId.name&&this.securityOrigin===databaseId.securityOrigin;},}
-WebInspector.IndexedDBModel.Database=function(databaseId,version,intVersion)
-{this.databaseId=databaseId;this.version=version;this.intVersion=intVersion;this.objectStores={};}
-WebInspector.IndexedDBModel.ObjectStore=function(name,keyPath,autoIncrement)
-{this.name=name;this.keyPath=keyPath;this.autoIncrement=autoIncrement;this.indexes={};}
-WebInspector.IndexedDBModel.ObjectStore.prototype={get keyPathString()
-{return WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath(this.keyPath);}}
-WebInspector.IndexedDBModel.Index=function(name,keyPath,unique,multiEntry)
-{this.name=name;this.keyPath=keyPath;this.unique=unique;this.multiEntry=multiEntry;}
-WebInspector.IndexedDBModel.Index.prototype={get keyPathString()
-{return WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath(this.keyPath);}}
-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()
-{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))
-dragY=initialHelperOffset.y;else
-dragX=initialHelperOffset.x;}
-this._hsv[1]=dragX/this.dragWidth;this._hsv[2]=(this.dragHeight-dragY)/this.dragHeight;this._onchange();}
-function alphaDrag()
-{this._hsv[3]=this._alphaElement.value/100;this._onchange();}};WebInspector.Spectrum.Events={ColorChanged:"ColorChanged"};WebInspector.Spectrum.draggable=function(element,onmove,onstart,onstop){var doc=document;var dragging;var offset;var scrollOffset;var maxHeight;var maxWidth;function consume(e)
-{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));}}
-function start(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));}
-dragging=false;}
-element.addEventListener("mousedown",start,false);};WebInspector.Spectrum.prototype={setColor:function(color)
-{this._hsv=color.hsva();},color:function()
-{return WebInspector.Color.fromHSVA(this._hsv);},_colorString:function()
-{var cf=WebInspector.Color.Format;var format=this._originalFormat;var color=this.color();var originalFormatString=color.toString(this._originalFormat);if(originalFormatString)
-return originalFormatString;if(color.hasAlpha()){if(format===cf.HSLA||format===cf.HSL)
-return color.toString(cf.HSLA);else
-return color.toString(cf.RGBA);}
-if(format===cf.ShortHEX)
-return color.toString(cf.HEX);console.assert(format===cf.Nickname);return color.toString(cf.RGB);},set displayText(text)
-{this._displayElement.textContent=text;},_onchange:function()
-{this._updateUI();this.dispatchEventToListeners(WebInspector.Spectrum.Events.ColorChanged,this._colorString());},_updateHelperLocations:function()
-{var h=this._hsv[0];var s=this._hsv[1];var v=this._hsv[2];var dragX=s*this.dragWidth;var dragY=this.dragHeight-(v*this.dragHeight);dragX=Math.max(-this._dragHelperElementHeight,Math.min(this.dragWidth-this._dragHelperElementHeight,dragX-this._dragHelperElementHeight));dragY=Math.max(-this._dragHelperElementHeight,Math.min(this.dragHeight-this._dragHelperElementHeight,dragY-this._dragHelperElementHeight));this._dragHelperElement.positionAt(dragX,dragY);var slideY=this.slideHeight-((h*this.slideHeight)+this.slideHelperHeight);this.slideHelper.style.top=slideY+"px";this._alphaElement.value=this._hsv[3]*100;},_updateUI:function()
-{this._updateHelperLocations();this._draggerElement.style.backgroundColor=WebInspector.Color.fromHSVA([this._hsv[0],1,1,1]).toString(WebInspector.Color.Format.RGB);this._swatchInnerElement.style.backgroundColor=this.color().toString(WebInspector.Color.Format.RGBA);this._alphaElement.value=this._hsv[3]*100;},wasShown:function()
-{this.slideHeight=this._sliderElement.offsetHeight;this.dragWidth=this._draggerElement.offsetWidth;this.dragHeight=this._draggerElement.offsetHeight;this._dragHelperElementHeight=this._dragHelperElement.offsetHeight/2;this.slideHelperHeight=this.slideHelper.offsetHeight/2;this._updateUI();},__proto__:WebInspector.View.prototype}
-WebInspector.SpectrumPopupHelper=function()
-{this._spectrum=new WebInspector.Spectrum();this._spectrum.element.addEventListener("keydown",this._onKeyDown.bind(this),false);this._popover=new WebInspector.Popover();this._popover.setCanShrink(false);this._popover.element.addEventListener("mousedown",consumeEvent,false);this._hideProxy=this.hide.bind(this,true);}
-WebInspector.SpectrumPopupHelper.Events={Hidden:"Hidden"};WebInspector.SpectrumPopupHelper.prototype={spectrum:function()
-{return this._spectrum;},toggle:function(element,color,format)
-{if(this._popover.isShowing())
-this.hide(true);else
-this.show(element,color,format);return this._popover.isShowing();},show:function(element,color,format)
-{if(this._popover.isShowing()){if(this._anchorElement===element)
-return false;this.hide(true);}
-this._anchorElement=element;this._spectrum.setColor(color);this._spectrum._originalFormat=format!==WebInspector.Color.Format.Original?format:color.format();this.reposition(element);document.addEventListener("mousedown",this._hideProxy,false);window.addEventListener("blur",this._hideProxy,false);return true;},reposition:function(element)
-{if(!this._previousFocusElement)
-this._previousFocusElement=WebInspector.currentFocusElement();this._popover.showView(this._spectrum,element);WebInspector.setCurrentFocusElement(this._spectrum.element);},hide:function(commitEdit)
-{if(!this._popover.isShowing())
-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(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)
-{WebInspector.View.call(this);this.element.className="sidebar-pane";this.titleElement=document.createElement("div");this.titleElement.className="sidebar-pane-toolbar";this.bodyElement=this.element.createChild("div","body");this._title=title;this._expandCallback=null;}
-WebInspector.SidebarPane.EventTypes={wasShown:"wasShown"}
-WebInspector.SidebarPane.prototype={title:function()
-{return this._title;},prepareContent:function(callback)
-{if(callback)
-callback();},expand:function()
-{this.prepareContent(this.onContentReady.bind(this));},onContentReady:function()
-{if(this._expandCallback)
-this._expandCallback();else
-this._expandPending=true;},setExpandCallback:function(callback)
-{this._expandCallback=callback;if(this._expandPending){delete this._expandPending;this._expandCallback();}},wasShown:function()
-{WebInspector.View.prototype.wasShown.call(this);this.dispatchEventToListeners(WebInspector.SidebarPane.EventTypes.wasShown);},__proto__:WebInspector.View.prototype}
-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.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.classList.contains("expanded"))
-this._collapse();else
-this._pane.expand();},_onTitleKeyDown:function(event)
-{if(isEnterKey(event)||event.keyCode===WebInspector.KeyboardShortcut.Keys.Space.code)
-this._toggleExpanded();}}
-WebInspector.SidebarPaneStack=function()
-{WebInspector.View.call(this);this.element.className="sidebar-pane-stack fill";this.registerRequiredCSS("sidebarPane.css");}
-WebInspector.SidebarPaneStack.prototype={addPane:function(pane)
-{new WebInspector.SidebarPaneTitle(this.element,pane);},__proto__:WebInspector.View.prototype}
-WebInspector.SidebarTabbedPane=function()
-{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)
-{this.element=document.createElement("ol");this.element.className="elements-tree-outline";this.element.addEventListener("mousedown",this._onmousedown.bind(this),false);this.element.addEventListener("mousemove",this._onmousemove.bind(this),false);this.element.addEventListener("mouseout",this._onmouseout.bind(this),false);this.element.addEventListener("dragstart",this._ondragstart.bind(this),false);this.element.addEventListener("dragover",this._ondragover.bind(this),false);this.element.addEventListener("dragleave",this._ondragleave.bind(this),false);this.element.addEventListener("drop",this._ondrop.bind(this),false);this.element.addEventListener("dragend",this._ondragend.bind(this),false);this.element.addEventListener("keydown",this._onkeydown.bind(this),false);TreeOutline.call(this,this.element);this._includeRootDOMNode=!omitRootDOMNode;this._selectEnabled=selectEnabled;this._rootDOMNode=null;this._selectedDOMNode=null;this._eventSupport=new WebInspector.Object();this._visible=false;this.element.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),true);this._contextMenuCallback=contextMenuCallback;this._setPseudoClassCallback=setPseudoClassCallback;this._createNodeDecorators();}
-WebInspector.ElementsTreeOutline.Events={SelectedNodeChanged:"SelectedNodeChanged",ElementsTreeUpdated:"ElementsTreeUpdated"}
-WebInspector.ElementsTreeOutline.MappedCharToEntity={"\u00a0":"nbsp","\u2002":"ensp","\u2003":"emsp","\u2009":"thinsp","\u200a":"#8202","\u200b":"#8203","\u200c":"zwnj","\u200d":"zwj","\u200e":"lrm","\u200f":"rlm","\u202a":"#8234","\u202b":"#8235","\u202c":"#8236","\u202d":"#8237","\u202e":"#8238"}
-WebInspector.ElementsTreeOutline.prototype={setVisibleWidth:function(width)
-{this._visibleWidth=width;if(this._multilineEditing)
-this._multilineEditing.setWidth(this._visibleWidth);},_createNodeDecorators:function()
-{this._nodeDecorators=[];this._nodeDecorators.push(new WebInspector.ElementsTreeOutline.PseudoStateDecorator());},wireToDomAgent:function()
-{this._elementsTreeUpdater=new WebInspector.ElementsTreeUpdater(this);},setVisible:function(visible)
-{this._visible=visible;if(!this._visible)
-return;this._updateModifiedNodes();if(this._selectedDOMNode)
-this._revealAndSelectNode(this._selectedDOMNode,false);},addEventListener:function(eventType,listener,thisObject)
-{this._eventSupport.addEventListener(eventType,listener,thisObject);},removeEventListener:function(eventType,listener,thisObject)
-{this._eventSupport.removeEventListener(eventType,listener,thisObject);},get rootDOMNode()
-{return this._rootDOMNode;},set rootDOMNode(x)
-{if(this._rootDOMNode===x)
-return;this._rootDOMNode=x;this._isXMLMimeType=x&&x.isXMLNode();this.update();},get isXMLMimeType()
-{return this._isXMLMimeType;},selectedDOMNode:function()
-{return this._selectedDOMNode;},selectDOMNode:function(node,focus)
-{if(this._selectedDOMNode===node){this._revealAndSelectNode(node,!focus);return;}
-this._selectedDOMNode=node;this._revealAndSelectNode(node,!focus);if(this._selectedDOMNode===node)
-this._selectedNodeChanged();},editing:function()
-{var node=this.selectedDOMNode();if(!node)
-return false;var treeElement=this.findTreeElement(node);if(!treeElement)
-return false;return treeElement._editing||false;},update:function()
-{var selectedNode=this.selectedTreeElement?this.selectedTreeElement._node:null;this.removeChildren();if(!this.rootDOMNode)
-return;var treeElement;if(this._includeRootDOMNode){treeElement=new WebInspector.ElementsTreeElement(this.rootDOMNode);treeElement.selectable=this._selectEnabled;this.appendChild(treeElement);}else{var node=this.rootDOMNode.firstChild;while(node){treeElement=new WebInspector.ElementsTreeElement(node);treeElement.selectable=this._selectEnabled;this.appendChild(treeElement);node=node.nextSibling;}}
-if(selectedNode)
-this._revealAndSelectNode(selectedNode,true);},updateSelection:function()
-{if(!this.selectedTreeElement)
-return;var element=this.treeOutline.selectedTreeElement;element.updateSelection();},updateOpenCloseTags:function(node)
-{var treeElement=this.findTreeElement(node);if(treeElement)
-treeElement.updateTitle();var children=treeElement.children;var closingTagElement=children[children.length-1];if(closingTagElement&&closingTagElement._elementCloseTag)
-closingTagElement.updateTitle();},_selectedNodeChanged:function()
-{this._eventSupport.dispatchEventToListeners(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,this._selectedDOMNode);},_fireElementsTreeUpdated:function(nodes)
-{this._eventSupport.dispatchEventToListeners(WebInspector.ElementsTreeOutline.Events.ElementsTreeUpdated,nodes);},findTreeElement:function(node)
-{function isAncestorNode(ancestor,node)
-{return ancestor.isAncestor(node);}
-function parentNode(node)
-{return node.parentNode;}
-var treeElement=TreeOutline.prototype.findTreeElement.call(this,node,isAncestorNode,parentNode);if(!treeElement&&node.nodeType()===Node.TEXT_NODE){treeElement=TreeOutline.prototype.findTreeElement.call(this,node.parentNode,isAncestorNode,parentNode);}
-return treeElement;},createTreeElementFor:function(node)
-{var treeElement=this.findTreeElement(node);if(treeElement)
-return treeElement;if(!node.parentNode)
-return null;treeElement=this.createTreeElementFor(node.parentNode);return treeElement?treeElement._showChild(node):null;},set suppressRevealAndSelect(x)
-{if(this._suppressRevealAndSelect===x)
-return;this._suppressRevealAndSelect=x;},_revealAndSelectNode:function(node,omitFocus)
-{if(this._suppressRevealAndSelect)
-return;if(!this._includeRootDOMNode&&node===this.rootDOMNode&&this.rootDOMNode)
-node=this.rootDOMNode.firstChild;if(!node)
-return;var treeElement=this.createTreeElementFor(node);if(!treeElement)
-return;treeElement.revealAndSelect(omitFocus);},_treeElementFromEvent:function(event)
-{var scrollContainer=this.element.parentElement;var x=scrollContainer.totalOffsetLeft()+scrollContainer.offsetWidth-36;var y=event.pageY;var elementUnderMouse=this.treeElementFromPoint(x,y);var elementAboveMouse=this.treeElementFromPoint(x,y-2);var element;if(elementUnderMouse===elementAboveMouse)
-element=elementUnderMouse;else
-element=this.treeElementFromPoint(x,y+2);return element;},_onmousedown:function(event)
-{var element=this._treeElementFromEvent(event);if(!element||element.isEventWithinDisclosureTriangle(event))
-return;element.select();},_onmousemove:function(event)
-{var element=this._treeElementFromEvent(event);if(element&&this._previousHoveredElement===element)
-return;if(this._previousHoveredElement){this._previousHoveredElement.hovered=false;delete this._previousHoveredElement;}
-if(element){element.hovered=true;this._previousHoveredElement=element;}
-WebInspector.domAgent.highlightDOMNode(element&&element._node?element._node.id:0);},_onmouseout:function(event)
-{var nodeUnderMouse=document.elementFromPoint(event.pageX,event.pageY);if(nodeUnderMouse&&nodeUnderMouse.isDescendant(this.element))
-return;if(this._previousHoveredElement){this._previousHoveredElement.hovered=false;delete this._previousHoveredElement;}
-WebInspector.domAgent.hideDOMNodeHighlight();},_ondragstart:function(event)
-{if(!window.getSelection().isCollapsed)
-return false;if(event.target.nodeName==="A")
-return false;var treeElement=this._treeElementFromEvent(event);if(!treeElement)
-return false;if(!this._isValidDragSourceOrTarget(treeElement))
-return false;if(treeElement._node.nodeName()==="BODY"||treeElement._node.nodeName()==="HEAD")
-return false;event.dataTransfer.setData("text/plain",treeElement.listItemElement.textContent);event.dataTransfer.effectAllowed="copyMove";this._treeElementBeingDragged=treeElement;WebInspector.domAgent.hideDOMNodeHighlight();return true;},_ondragover:function(event)
-{if(!this._treeElementBeingDragged)
-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.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))
-return false;if(!node.parentNode||node.parentNode.nodeType()!==Node.ELEMENT_NODE)
-return false;return true;},_ondrop:function(event)
-{event.preventDefault();var treeElement=this._treeElementFromEvent(event);if(treeElement)
-this._doMove(treeElement);},_doMove:function(treeElement)
-{if(!this._treeElementBeingDragged)
-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.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.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)
-{if(this._contextMenuCallback)
-this._contextMenuCallback(contextMenu,node);},handleShortcut:function(event)
-{var node=this.selectedDOMNode();var treeElement=this.getCachedTreeElement(node);if(!node||!treeElement)
-return;if(event.keyIdentifier==="F2"){this._toggleEditAsHTML(node);event.handled=true;return;}
-if(WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event)&&node.parentNode){if(event.keyIdentifier==="Up"&&node.previousSibling){node.moveTo(node.parentNode,node.previousSibling,this._selectNodeAfterEdit.bind(this,treeElement.expanded));event.handled=true;return;}
-if(event.keyIdentifier==="Down"&&node.nextSibling){node.moveTo(node.parentNode,node.nextSibling.nextSibling,this._selectNodeAfterEdit.bind(this,treeElement.expanded));event.handled=true;return;}}},_toggleEditAsHTML:function(node)
-{var treeElement=this.getCachedTreeElement(node);if(!treeElement)
-return;if(treeElement._editing&&treeElement._htmlEditElement&&WebInspector.isBeingEdited(treeElement._htmlEditElement))
-treeElement._editing.commit();else
-treeElement._editAsHTML();},_selectNodeAfterEdit:function(wasExpanded,error,nodeId)
-{if(error)
-return;this._updateModifiedNodes();var newNode=nodeId?WebInspector.domAgent.nodeForId(nodeId):null;if(!newNode)
-return;this.selectDOMNode(newNode,true);var newTreeItem=this.findTreeElement(newNode);if(wasExpanded){if(newTreeItem)
-newTreeItem.expand();}
-return newTreeItem;},_toggleHideShortcut:function(node,userCallback)
-{var pseudoType=node.pseudoType();var effectiveNode=pseudoType?node.parentNode:node;if(!effectiveNode)
-return;function resolvedNode(object)
-{if(!object)
-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()
-{}
-WebInspector.ElementsTreeOutline.ElementDecorator.prototype={decorate:function(node)
-{},decorateAncestor:function(node)
-{}}
-WebInspector.ElementsTreeOutline.PseudoStateDecorator=function()
-{WebInspector.ElementsTreeOutline.ElementDecorator.call(this);}
-WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName="pseudoState";WebInspector.ElementsTreeOutline.PseudoStateDecorator.prototype={decorate:function(node)
-{if(node.nodeType()!==Node.ELEMENT_NODE)
-return null;var propertyValue=node.getUserProperty(WebInspector.ElementsTreeOutline.PseudoStateDecorator.PropertyName);if(!propertyValue)
-return null;return WebInspector.UIString("Element state: %s",":"+propertyValue.join(", :"));},decorateAncestor:function(node)
-{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);}}
-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;}
-WebInspector.ElementsTreeElement.InitialChildrenLimit=500;WebInspector.ElementsTreeElement.ForbiddenClosingTagElements=["area","base","basefont","br","canvas","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source"].keySet();WebInspector.ElementsTreeElement.EditTagBlacklist=["html","head","body"].keySet();WebInspector.ElementsTreeElement.prototype={highlightSearchResults:function(searchQuery)
-{if(this._searchQuery!==searchQuery){this._updateSearchHighlight(false);delete this._highlightResult;}
-this._searchQuery=searchQuery;this._searchHighlightsVisible=true;this.updateTitle(true);},hideSearchHighlights:function()
-{delete this._searchHighlightsVisible;this._updateSearchHighlight(false);},_updateSearchHighlight:function(show)
-{if(!this._highlightResult)
-return;function updateEntryShow(entry)
-{switch(entry.type){case"added":entry.parent.insertBefore(entry.node,entry.nextSibling);break;case"changed":entry.node.textContent=entry.newText;break;}}
-function updateEntryHide(entry)
-{switch(entry.type){case"added":entry.node.remove();break;case"changed":entry.node.textContent=entry.oldText;break;}}
-if(show){for(var i=0,size=this._highlightResult.length;i<size;++i)
-updateEntryShow(this._highlightResult[i]);}else{for(var i=(this._highlightResult.length-1);i>=0;--i)
-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.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)
-this._updateChildren(true);},get expandedChildCount()
-{var count=this.children.length;if(count&&this.children[count-1]._elementCloseTag)
-count--;if(count&&this.children[count-1].expandAllButton)
-count--;return count;},_showChild:function(child)
-{if(this._elementCloseTag)
-return null;var index=this._visibleChildren().indexOf(child);if(index===-1)
-return null;if(index>=this.expandedChildrenLimit){this._expandedChildrenLimit=index+1;this._updateChildren(true);}
-return this.expandedChildCount>index?this.children[index]:null;},updateSelection:function()
-{var listItemElement=this.listItemElement;if(!listItemElement)
-return;if(!this._readyToUpdateSelection){if(document.body.offsetWidth>0)
-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.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)
-links[i].preventFollowOnDoubleClick=true;},onpopulate:function()
-{if(this.children.length||this._showInlineText()||this._elementCloseTag)
-return;this.updateChildren();},updateChildren:function(fullRefresh)
-{if(this._elementCloseTag)
-return;this._node.getChildNodes(this._updateChildren.bind(this,fullRefresh));},insertChildElement:function(child,index,closingTag)
-{var newElement=new WebInspector.ElementsTreeElement(child,closingTag);newElement.selectable=this.treeOutline._selectEnabled;this.insertChild(newElement,index);return newElement;},moveChild:function(child,targetIndex)
-{var wasSelected=child.selected;this.removeChild(child);this.insertChild(child,targetIndex);if(wasSelected)
-child.select();},_updateChildren:function(fullRefresh)
-{if(this._updateChildrenInProgress||!this.treeOutline._visible)
-return;this._updateChildrenInProgress=true;var selectedNode=this.treeOutline.selectedDOMNode();var originalScrollTop=0;if(fullRefresh){var treeOutlineContainerElement=this.treeOutline.element.parentNode;originalScrollTop=treeOutlineContainerElement.scrollTop;var selectedTreeElement=this.treeOutline.selectedTreeElement;if(selectedTreeElement&&selectedTreeElement.hasAncestor(this))
-this.select();this.removeChildren();}
-var treeElement=this;var treeChildIndex=0;var elementToSelect;function updateChildrenOfNode()
-{var treeOutline=treeElement.treeOutline;var visibleChildren=this._visibleChildren();for(var i=0;i<visibleChildren.length;++i){var child=visibleChildren[i];var currentTreeElement=treeElement.children[treeChildIndex];if(!currentTreeElement||currentTreeElement._node!==child){var existingTreeElement=null;for(var j=(treeChildIndex+1),size=treeElement.expandedChildCount;j<size;++j){if(treeElement.children[j]._node===child){existingTreeElement=treeElement.children[j];break;}}
-if(existingTreeElement&&existingTreeElement.parent===treeElement){treeElement.moveChild(existingTreeElement,treeChildIndex);}else{if(treeChildIndex<treeElement.expandedChildrenLimit){var newElement=treeElement.insertChildElement(child,treeChildIndex);if(child===selectedNode)
-elementToSelect=newElement;if(treeElement.expandedChildCount>treeElement.expandedChildrenLimit)
-treeElement.expandedChildrenLimit++;}}}
-++treeChildIndex;}}
-for(var i=(this.children.length-1);i>=0;--i){var currentChild=this.children[i];var currentNode=currentChild._node;if(!currentNode)
-continue;var currentParentNode=currentNode.parentNode;if(currentParentNode===this._node)
-continue;var selectedTreeElement=this.treeOutline.selectedTreeElement;if(selectedTreeElement&&(selectedTreeElement===currentChild||selectedTreeElement.hasAncestor(currentChild)))
-this.select();this.removeChildAtIndex(i);}
-updateChildrenOfNode.call(this);this._adjustCollapsedRange();var lastChild=this.children[this.children.length-1];if(this._node.nodeType()==Node.ELEMENT_NODE&&(!lastChild||!lastChild._elementCloseTag))
-this.insertChildElement(this._node,this.children.length,true);if(fullRefresh&&elementToSelect){elementToSelect.select();if(treeOutlineContainerElement&&originalScrollTop<=treeOutlineContainerElement.scrollHeight)
-treeOutlineContainerElement.scrollTop=originalScrollTop;}
-delete this._updateChildrenInProgress;},_adjustCollapsedRange:function()
-{var visibleChildren=this._visibleChildren();if(this.expandAllButtonElement&&this.expandAllButtonElement.__treeElement.parent)
-this.removeChild(this.expandAllButtonElement.__treeElement);const childNodeCount=visibleChildren.length;for(var i=this.expandedChildCount,limit=Math.min(this.expandedChildrenLimit,childNodeCount);i<limit;++i)
-this.insertChildElement(visibleChildren[i],i);const expandedChildCount=this.expandedChildCount;if(childNodeCount>this.expandedChildCount){var targetButtonIndex=expandedChildCount;if(!this.expandAllButtonElement){var button=document.createElement("button");button.className="show-all-nodes";button.value="";var item=new TreeElement(button,null,false);item.selectable=false;item.expandAllButton=true;this.insertChild(item,targetButtonIndex);this.expandAllButtonElement=item.listItemElement.firstChild;this.expandAllButtonElement.__treeElement=item;this.expandAllButtonElement.addEventListener("click",this.handleLoadAllChildren.bind(this),false);}else if(!this.expandAllButtonElement.__treeElement.parent)
-this.insertChild(this.expandAllButtonElement.__treeElement,targetButtonIndex);this.expandAllButtonElement.textContent=WebInspector.UIString("Show All Nodes (%d More)",childNodeCount-expandedChildCount);}else if(this.expandAllButtonElement)
-delete this.expandAllButtonElement;},handleLoadAllChildren:function()
-{this.expandedChildrenLimit=Math.max(this._visibleChildCount(),this.expandedChildrenLimit+WebInspector.ElementsTreeElement.InitialChildrenLimit);},expandRecursively:function()
-{function callback()
-{TreeElement.prototype.expandRecursively.call(this,Number.MAX_VALUE);}
-this._node.getSubtree(-1,callback.bind(this));},onexpand:function()
-{if(this._elementCloseTag)
-return;this.updateTitle();this.treeOutline.updateSelection();},oncollapse:function()
-{if(this._elementCloseTag)
-return;this.updateTitle();this.treeOutline.updateSelection();},onreveal:function()
-{if(this.listItemElement){var tagSpans=this.listItemElement.getElementsByClassName("webkit-html-tag-name");if(tagSpans.length)
-tagSpans[0].scrollIntoViewIfNeeded(true);else
-this.listItemElement.scrollIntoViewIfNeeded(true);}},onselect:function(selectedByUser)
-{this.treeOutline.suppressRevealAndSelect=true;this.treeOutline.selectDOMNode(this._node,selectedByUser);if(selectedByUser)
-WebInspector.domAgent.highlightDOMNode(this._node.id);this.updateSelection();this.treeOutline.suppressRevealAndSelect=false;return true;},ondelete:function()
-{var startTagTreeElement=this.treeOutline.findTreeElement(this._node);startTagTreeElement?startTagTreeElement.remove():this.remove();return true;},onenter:function()
-{if(this._editing)
-return false;this._startEditing();return true;},selectOnMouseDown:function(event)
-{TreeElement.prototype.selectOnMouseDown.call(this,event);if(this._editing)
-return;if(this.treeOutline._showInElementsPanelEnabled){WebInspector.showPanel("elements");this.treeOutline.selectDOMNode(this._node,true);}
-if(event.detail>=2)
-event.preventDefault();},ondblclick:function(event)
-{if(this._editing||this._elementCloseTag)
-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)
-{if(this.treeOutline.selectedDOMNode()!=this._node)
-return;if(this._node.nodeType()!=Node.ELEMENT_NODE&&this._node.nodeType()!=Node.TEXT_NODE)
-return false;var textNode=eventTarget.enclosingNodeOrSelfWithClass("webkit-html-text-node");if(textNode)
-return this._startEditingTextNode(textNode);var attribute=eventTarget.enclosingNodeOrSelfWithClass("webkit-html-attribute");if(attribute)
-return this._startEditingAttribute(attribute,eventTarget);var tagName=eventTarget.enclosingNodeOrSelfWithClass("webkit-html-tag-name");if(tagName)
-return this._startEditingTagName(tagName);var newAttribute=eventTarget.enclosingNodeOrSelfWithClass("add-attribute");if(newAttribute)
-return this._addNewAttribute();return false;},_populateTagContextMenu:function(contextMenu,event)
-{var treeElement=this._elementCloseTag?this.treeOutline.findTreeElement(this._node):this;contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Add attribute":"Add Attribute"),this._addNewAttribute.bind(treeElement));var attribute=event.target.enclosingNodeOrSelfWithClass("webkit-html-attribute");var newAttribute=event.target.enclosingNodeOrSelfWithClass("add-attribute");if(attribute&&!newAttribute)
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Edit attribute":"Edit Attribute"),this._startEditingAttribute.bind(this,attribute,event.target));contextMenu.appendSeparator();if(this.treeOutline._setPseudoClassCallback){var pseudoSubMenu=contextMenu.appendSubMenuItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Force element state":"Force Element State"));this._populateForcedPseudoStateItems(pseudoSubMenu);contextMenu.appendSeparator();}
-this._populateNodeContextMenu(contextMenu);this.treeOutline._populateContextMenu(contextMenu,this._node);this._populateScrollIntoView(contextMenu);},_populateScrollIntoView:function(contextMenu)
-{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));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.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.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)
-return false;var attributeName=attributeNameElement.textContent;var attributeValueElement=attribute.getElementsByClassName("webkit-html-attribute-value")[0];function removeZeroWidthSpaceRecursive(node)
-{if(node.nodeType===Node.TEXT_NODE){node.nodeValue=node.nodeValue.replace(/\u200B/g,"");return;}
-if(node.nodeType!==Node.ELEMENT_NODE)
-return;for(var child=node.firstChild;child;child=child.nextSibling)
-removeZeroWidthSpaceRecursive(child);}
-var domNode;var listItemElement=attribute.enclosingNodeOrSelfWithNodeName("li");if(attributeName&&attributeValueElement&&listItemElement&&listItemElement.treeElement)
-domNode=listItemElement.treeElement.representedObject;var attributeValue=domNode?domNode.getAttribute(attributeName):undefined;if(typeof attributeValue!=="undefined")
-attributeValueElement.textContent=attributeValue;removeZeroWidthSpaceRecursive(attribute);var config=new WebInspector.EditingConfig(this._attributeEditingCommitted.bind(this),this._editingCancelled.bind(this),attributeName);function handleKeyDownEvents(event)
-{var isMetaOrCtrl=WebInspector.isMac()?event.metaKey&&!event.shiftKey&&!event.ctrlKey&&!event.altKey:event.ctrlKey&&!event.shiftKey&&!event.metaKey&&!event.altKey;if(isEnterKey(event)&&(event.isMetaOrCtrlForTest||!config.multiline||isMetaOrCtrl))
-return"commit";else if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Esc.code||event.keyIdentifier==="U+001B")
-return"cancel";else if(event.keyIdentifier==="U+0009")
-return"move-"+(event.shiftKey?"backward":"forward");else{WebInspector.handleElementValueModifications(event,attribute);return"";}}
-config.customFinishHandler=handleKeyDownEvents.bind(this);this._editing=WebInspector.startEditing(attribute,config);window.getSelection().setBaseAndExtent(elementForSelection,0,elementForSelection,1);return true;},_startEditingTextNode:function(textNodeElement)
-{if(WebInspector.isBeingEdited(textNodeElement))
-return true;var textNode=this._node;if(textNode.nodeType()===Node.ELEMENT_NODE&&textNode.firstChild)
-textNode=textNode.firstChild;var container=textNodeElement.enclosingNodeOrSelfWithClass("webkit-html-text-node");if(container)
-container.textContent=textNode.nodeValue();var config=new WebInspector.EditingConfig(this._textNodeEditingCommitted.bind(this,textNode),this._editingCancelled.bind(this));this._editing=WebInspector.startEditing(textNodeElement,config);window.getSelection().setBaseAndExtent(textNodeElement,0,textNodeElement,1);return true;},_startEditingTagName:function(tagNameElement)
-{if(!tagNameElement){tagNameElement=this.listItemElement.getElementsByClassName("webkit-html-tag-name")[0];if(!tagNameElement)
-return false;}
-var tagName=tagNameElement.textContent;if(WebInspector.ElementsTreeElement.EditTagBlacklist[tagName.toLowerCase()])
-return false;if(WebInspector.isBeingEdited(tagNameElement))
-return true;var closingTagElement=this._distinctClosingTagElement();function keyupListener(event)
-{if(closingTagElement)
-closingTagElement.textContent="</"+tagNameElement.textContent+">";}
-function editingComitted(element,newTagName)
-{tagNameElement.removeEventListener('keyup',keyupListener,false);this._tagNameEditingCommitted.apply(this,arguments);}
-function editingCancelled()
-{tagNameElement.removeEventListener('keyup',keyupListener,false);this._editingCancelled.apply(this,arguments);}
-tagNameElement.addEventListener('keyup',keyupListener,false);var config=new WebInspector.EditingConfig(editingComitted.bind(this),editingCancelled.bind(this),tagName);this._editing=WebInspector.startEditing(tagNameElement,config);window.getSelection().setBaseAndExtent(tagNameElement,0,tagNameElement,1);return true;},_startEditingAsHTML:function(commitCallback,error,initialValue)
-{if(error)
-return;if(this._editing)
-return;function consume(event)
-{if(event.eventPhase===Event.AT_TARGET)
-event.consume(true);}
-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);}
-function dispose()
-{delete this._editing;delete this.treeOutline._multilineEditing;this.listItemElement.removeChild(this._htmlEditElement);delete this._htmlEditElement;if(this._childrenListNode)
-this._childrenListNode.style.removeProperty("display");var child=this.listItemElement.firstChild;while(child){child.style.removeProperty("display");child=child.nextSibling;}
-this.treeOutline.childrenListElement.parentElement.removeEventListener("mousedown",consume,false);this.updateSelection();this.treeOutline.element.focus();}
-var config=new WebInspector.EditingConfig(commit.bind(this),dispose.bind(this));config.setMultilineOptions(initialValue,{name:"xml",htmlMode:true},"web-inspector-html",WebInspector.settings.domWordWrap.get(),true);this._editing=WebInspector.startEditing(this._htmlEditElement,config);this._editing.setWidth(this.treeOutline._visibleWidth);this.treeOutline._multilineEditing=this._editing;},_attributeEditingCommitted:function(element,newText,oldText,attributeName,moveDirection)
-{delete this._editing;var treeOutline=this.treeOutline;function moveToNextAttributeIfNeeded(error)
-{if(error)
-this._editingCancelled(element,attributeName);if(!moveDirection)
-return;treeOutline._updateModifiedNodes();var attributes=this._node.attributes();for(var i=0;i<attributes.length;++i){if(attributes[i].name!==attributeName)
-continue;if(moveDirection==="backward"){if(i===0)
-this._startEditingTagName();else
-this._triggerEditAttribute(attributes[i-1].name);}else{if(i===attributes.length-1)
-this._addNewAttribute();else
-this._triggerEditAttribute(attributes[i+1].name);}
-return;}
-if(moveDirection==="backward"){if(newText===" "){if(attributes.length>0)
-this._triggerEditAttribute(attributes[attributes.length-1].name);}else{if(attributes.length>1)
-this._triggerEditAttribute(attributes[attributes.length-2].name);}}else if(moveDirection==="forward"){if(!/^\s*$/.test(newText))
-this._addNewAttribute();else
-this._startEditingTagName();}}
-if(!attributeName.trim()&&!newText.trim()){element.remove();moveToNextAttributeIfNeeded.call(this);return;}
-if(oldText!==newText){this._node.setAttribute(attributeName,newText,moveToNextAttributeIfNeeded.bind(this));return;}
-this.updateTitle();moveToNextAttributeIfNeeded.call(this);},_tagNameEditingCommitted:function(element,newText,oldText,tagName,moveDirection)
-{delete this._editing;var self=this;function cancel()
-{var closingTagElement=self._distinctClosingTagElement();if(closingTagElement)
-closingTagElement.textContent="</"+tagName+">";self._editingCancelled(element,tagName);moveToNextAttributeIfNeeded.call(self);}
-function moveToNextAttributeIfNeeded()
-{if(moveDirection!=="forward"){this._addNewAttribute();return;}
-var attributes=this._node.attributes();if(attributes.length>0)
-this._triggerEditAttribute(attributes[0].name);else
-this._addNewAttribute();}
-newText=newText.trim();if(newText===oldText){cancel();return;}
-var treeOutline=this.treeOutline;var wasExpanded=this.expanded;function changeTagNameCallback(error,nodeId)
-{if(error||!nodeId){cancel();return;}
-var newTreeItem=treeOutline._selectNodeAfterEdit(wasExpanded,error,nodeId);moveToNextAttributeIfNeeded.call(newTreeItem);}
-this._node.setNodeName(newText,changeTagNameCallback);},_textNodeEditingCommitted:function(textNode,element,newText)
-{delete this._editing;function callback()
-{this.updateTitle();}
-textNode.setNodeValue(newText,callback.bind(this));},_editingCancelled:function(element,context)
-{delete this._editing;this.updateTitle();},_distinctClosingTagElement:function()
-{if(this.expanded){var closers=this._childrenListNode.querySelectorAll(".close");return closers[closers.length-1];}
-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 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;}
-if(this.expanded||this._elementCloseTag)
-continue;message=decorator.decorateAncestor(node);if(message)
-parentDecoratorMessages.push(message)}
-if(!decoratorMessages.length&&!parentDecoratorMessages.length)
-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,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");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 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");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");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)
-return false;if(!this._node.firstChild||this._node.firstChild!==this._node.lastChild||this._node.firstChild.nodeType()!==Node.TEXT_NODE)
-return false;var textChild=this._node.firstChild;if(textChild.nodeValue().length<Preferences.maxInlineTextChildLength)
-return true;return false;},remove:function()
-{if(this._node.pseudoType())
-return;var parentElement=this.parent;if(!parentElement)
-return;var self=this;function removeNodeCallback(error,removedNodeId)
-{if(error)
-return;parentElement.removeChild(self);parentElement._adjustCollapsedRange();}
-if(!this._node.parentNode||this._node.parentNode.nodeType()===Node.DOCUMENT_NODE)
-return;this._node.removeNode(removeNodeCallback);},_editAsHTML:function()
-{var node=this._node;if(node.pseudoType())
-return;var treeOutline=this.treeOutline;var parentNode=node.parentNode;var index=node.index;var wasExpanded=this.expanded;function selectNode(error,nodeId)
-{if(error)
-return;treeOutline._updateModifiedNodes();var newNode=parentNode?parentNode.children()[index]||parentNode:null;if(!newNode)
-return;treeOutline.selectDOMNode(newNode,true);if(wasExpanded){var newTreeItem=treeOutline.findTreeElement(newNode);if(newTreeItem)
-newTreeItem.expand();}}
-function commitChange(initialValue,value)
-{if(initialValue!==value)
-node.setOuterHTML(value,selectNode);else
-return;}
-node.getOuterHTML(this._startEditingAsHTML.bind(this,commitChange));},_copyHTML: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(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(text);}
-if(!matchRanges.length)
-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);}
-if(object)
-object.callFunction(scrollIntoView);}
-WebInspector.RemoteObject.resolveNode(this._node,"",scrollIntoViewCallback);},_visibleChildren:function()
-{var visibleChildren=WebInspector.ElementsTreeOutline.showShadowDOM()?this._node.shadowRoots():[];if(this._node.templateContent())
-visibleChildren.push(this._node.templateContent());var pseudoElements=this._node.pseudoElements();if(pseudoElements[WebInspector.DOMNode.PseudoElementNames.Before])
-visibleChildren.push(pseudoElements[WebInspector.DOMNode.PseudoElementNames.Before]);if(this._node.childNodeCount())
-visibleChildren=visibleChildren.concat(this._node.children());if(pseudoElements[WebInspector.DOMNode.PseudoElementNames.After])
-visibleChildren.push(pseudoElements[WebInspector.DOMNode.PseudoElementNames.After]);return visibleChildren;},_visibleChildCount:function()
-{var childCount=this._node.childNodeCount();if(this._node.templateContent())
-++childCount;if(WebInspector.ElementsTreeOutline.showShadowDOM())
-childCount+=this._node.shadowRoots().length;for(var pseudoType in this._node.pseudoElements())
-++childCount;return childCount;},_updateHasChildren:function()
-{this.hasChildren=!this._elementCloseTag&&!this._showInlineText()&&this._visibleChildCount()>0;},__proto__:TreeElement.prototype}
-WebInspector.ElementsTreeUpdater=function(treeOutline)
-{WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.NodeInserted,this._nodeInserted,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.NodeRemoved,this._nodeRemoved,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrModified,this._attributesUpdated,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.AttrRemoved,this._attributesUpdated,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.CharacterDataModified,this._characterDataModified,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated,this._documentUpdated,this);WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.ChildNodeCountUpdated,this._childNodeCountUpdated,this);this._treeOutline=treeOutline;this._recentlyModifiedNodes=new Map();}
-WebInspector.ElementsTreeUpdater.prototype={_nodeModified:function(node,isUpdated,parentNode)
-{if(this._treeOutline._visible)
-this._updateModifiedNodesSoon();var entry=this._recentlyModifiedNodes.get(node);if(!entry){entry=new WebInspector.ElementsTreeUpdater.UpdateEntry(isUpdated,parentNode);this._recentlyModifiedNodes.put(node,entry);return;}
-entry.isUpdated|=isUpdated;if(parentNode)
-entry.parent=parentNode;},_documentUpdated:function(event)
-{var inspectedRootDocument=event.data;this._reset();if(!inspectedRootDocument)
-return;this._treeOutline.rootDOMNode=inspectedRootDocument;},_attributesUpdated:function(event)
-{this._nodeModified(event.data.node,true);},_characterDataModified:function(event)
-{this._nodeModified(event.data,true);},_nodeInserted:function(event)
-{this._nodeModified(event.data,false,event.data.parentNode);},_nodeRemoved:function(event)
-{this._nodeModified(event.data.node,false,event.data.parent);},_childNodeCountUpdated:function(event)
-{var treeElement=this._treeOutline.findTreeElement(event.data);if(treeElement)
-treeElement._updateHasChildren();},_updateModifiedNodesSoon:function()
-{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;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.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();}}
-WebInspector.ElementsTreeUpdater.UpdateEntry=function(isUpdated,parent)
-{this.isUpdated=isUpdated;if(parent)
-this.parent=parent;}
-WebInspector.DOMPresentationUtils={}
-WebInspector.DOMPresentationUtils.decorateNodeLabel=function(node,parentElement)
-{var title=node.nodeNameInCorrectCase();var nameElement=document.createElement("span");nameElement.textContent=title;parentElement.appendChild(nameElement);var idAttribute=node.getAttribute("id");if(idAttribute){var idElement=document.createElement("span");parentElement.appendChild(idElement);var part="#"+idAttribute;title+=part;idElement.appendChild(document.createTextNode(part));nameElement.className="extra";}
-var classAttribute=node.getAttribute("class");if(classAttribute){var classes=classAttribute.split(/\s+/);var foundClasses={};if(classes.length){var classesElement=document.createElement("span");classesElement.className="extra";parentElement.appendChild(classesElement);for(var i=0;i<classes.length;++i){var className=classes[i];if(className&&!(className in foundClasses)){var part="."+className;title+=part;classesElement.appendChild(document.createTextNode(part));foundClasses[className]=true;}}}}
-parentElement.title=title;}
-WebInspector.DOMPresentationUtils.createSpansForNodeTitle=function(container,nodeTitle)
-{var match=nodeTitle.match(/([^#.]+)(#[^.]+)?(\..*)?/);container.createChild("span","webkit-html-tag-name").textContent=match[1];if(match[2])
-container.createChild("span","webkit-html-attribute-value").textContent=match[2];if(match[3])
-container.createChild("span","webkit-html-attribute-name").textContent=match[3];}
-WebInspector.DOMPresentationUtils.linkifyNodeReference=function(node)
-{var link=document.createElement("span");link.className="node-link";WebInspector.DOMPresentationUtils.decorateNodeLabel(node,link);link.addEventListener("click",WebInspector.domAgent.inspectElement.bind(WebInspector.domAgent,node.id),false);link.addEventListener("mouseover",WebInspector.domAgent.highlightDOMNode.bind(WebInspector.domAgent,node.id,"",undefined),false);link.addEventListener("mouseout",WebInspector.domAgent.hideDOMNodeHighlight.bind(WebInspector.domAgent),false);return link;}
-WebInspector.DOMPresentationUtils.linkifyNodeById=function(nodeId)
-{var node=WebInspector.domAgent.nodeForId(nodeId);if(!node)
-return document.createTextNode(WebInspector.UIString("<node>"));return WebInspector.DOMPresentationUtils.linkifyNodeReference(node);}
-WebInspector.DOMPresentationUtils.buildImagePreviewContents=function(imageURL,showDimensions,userCallback,precomputedDimensions)
-{var resource=WebInspector.resourceTreeModel.resourceForURL(imageURL);if(!resource){userCallback();return;}
-var imageElement=document.createElement("img");imageElement.addEventListener("load",buildContent,false);imageElement.addEventListener("error",errorCallback,false);resource.populateImageSource(imageElement);function errorCallback()
-{userCallback();}
-function buildContent()
-{var container=document.createElement("table");container.className="image-preview-container";var naturalWidth=precomputedDimensions?precomputedDimensions.naturalWidth:imageElement.naturalWidth;var naturalHeight=precomputedDimensions?precomputedDimensions.naturalHeight:imageElement.naturalHeight;var offsetWidth=precomputedDimensions?precomputedDimensions.offsetWidth:naturalWidth;var offsetHeight=precomputedDimensions?precomputedDimensions.offsetHeight:naturalHeight;var description;if(showDimensions){if(offsetHeight===naturalHeight&&offsetWidth===naturalWidth)
-description=WebInspector.UIString("%d \xd7 %d pixels",offsetWidth,offsetHeight);else
-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()
-{},get smallChildren()
-{return this._smallChildren;},set smallChildren(x)
-{if(this._smallChildren===x)
-return;this._smallChildren=x;if(this._smallChildren)
-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)
-{TreeElement.call(this,"",representedObject,hasChildren);if(hasChildren){this.disclosureButton=document.createElement("button");this.disclosureButton.className="disclosure-button";}
-if(!this.iconElement){this.iconElement=document.createElement("img");this.iconElement.className="icon";}
-this.statusElement=document.createElement("div");this.statusElement.className="status";this.titlesElement=document.createElement("div");this.titlesElement.className="titles";this.titleElement=document.createElement("span");this.titleElement.className="title";this.titlesElement.appendChild(this.titleElement);this.subtitleElement=document.createElement("span");this.subtitleElement.className="subtitle";this.titlesElement.appendChild(this.subtitleElement);this.className=className;this.mainTitle=title;this.subtitle=subtitle;}
-WebInspector.SidebarTreeElement.prototype={get small()
-{return this._small;},set small(x)
-{this._small=x;if(this._listItemNode){if(this._small)
-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();},set wait(x)
-{if(x)
-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.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.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}
-WebInspector.Section=function(title,subtitle)
-{this.element=document.createElement("div");this.element.className="section";this.element._section=this;this.headerElement=document.createElement("div");this.headerElement.className="header";this.titleElement=document.createElement("div");this.titleElement.className="title";this.subtitleElement=document.createElement("div");this.subtitleElement.className="subtitle";this.headerElement.appendChild(this.subtitleElement);this.headerElement.appendChild(this.titleElement);this.headerElement.addEventListener("click",this.handleClick.bind(this),false);this.element.appendChild(this.headerElement);this.title=title;this.subtitle=subtitle;this._expanded=false;}
-WebInspector.Section.prototype={get title()
-{return this._title;},set title(x)
-{if(this._title===x)
-return;this._title=x;if(x instanceof Node){this.titleElement.removeChildren();this.titleElement.appendChild(x);}else
-this.titleElement.textContent=x;},get subtitle()
-{return this._subtitle;},set subtitle(x)
-{if(this._subtitle===x)
-return;this._subtitle=x;this.subtitleElement.textContent=x;},get subtitleAsTextForTest()
-{var result=this.subtitleElement.textContent;var child=this.subtitleElement.querySelector("[data-uncopyable]");if(child){var linkData=child.getAttribute("data-uncopyable");if(linkData)
-result+=linkData;}
-return result;},get expanded()
-{return this._expanded;},set expanded(x)
-{if(x)
-this.expand();else
-this.collapse();},get populated()
-{return this._populated;},set populated(x)
-{this._populated=x;if(!x&&this._expanded){this.onpopulate();this._populated=true;}},onpopulate:function()
-{},get firstSibling()
-{var parent=this.element.parentElement;if(!parent)
-return null;var childElement=parent.firstChild;while(childElement){if(childElement._section)
-return childElement._section;childElement=childElement.nextSibling;}
-return null;},get lastSibling()
-{var parent=this.element.parentElement;if(!parent)
-return null;var childElement=parent.lastChild;while(childElement){if(childElement._section)
-return childElement._section;childElement=childElement.previousSibling;}
-return null;},get nextSibling()
-{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.classList.add("expanded");if(!this._populated){this.onpopulate();this._populated=true;}},collapse:function()
-{if(!this._expanded)
-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.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;}}
-WebInspector.RemoteObject.fromPrimitiveValue=function(value)
-{return new WebInspector.RemoteObject(undefined,typeof value,undefined,value);}
-WebInspector.RemoteObject.fromLocalObject=function(value)
-{return new WebInspector.LocalJSONObject(value);}
-WebInspector.RemoteObject.resolveNode=function(node,objectGroup,callback)
-{function mycallback(error,object)
-{if(!callback)
-return;if(error||!object)
-callback(null);else
-callback(WebInspector.RemoteObject.fromPayload(object));}
-DOMAgent.resolveNode(node.id,objectGroup,mycallback);}
-WebInspector.RemoteObject.fromPayload=function(payload)
-{console.assert(typeof payload==="object","Remote object payload should only be an object");return new WebInspector.RemoteObject(payload.objectId,payload.type,payload.subtype,payload.value,payload.description,payload.preview);}
-WebInspector.RemoteObject.type=function(remoteObject)
-{if(remoteObject===null)
-return"null";var type=typeof remoteObject;if(type!=="object"&&type!=="function")
-return type;return remoteObject.type;}
-WebInspector.RemoteObject.prototype={get objectId()
-{return this._objectId;},get type()
-{return this._type;},get subtype()
-{return this._subtype;},get description()
-{return this._description;},get hasChildren()
-{return this._hasChildren;},get preview()
-{return this._preview;},getOwnProperties:function(callback)
-{this.doGetProperties(true,false,callback);},getAllProperties:function(accessorPropertiesOnly,callback)
-{this.doGetProperties(false,accessorPropertiesOnly,callback);},getProperty:function(propertyPath,callback)
-{function remoteFunction(arrayStr)
-{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,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];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;}
-RuntimeAgent.evaluate.invoke({expression:value,doNotPauseOnExceptionsAndMuteConsole:true},evaluatedCallback.bind(this));function evaluatedCallback(error,result,wasThrown)
-{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"&&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)
-{if(this._objectId)
-WebInspector.domAgent.pushNodeToFrontend(this._objectId,callback);else
-callback(0);},highlightAsDOMNode:function()
-{WebInspector.domAgent.highlightDOMNode(undefined,undefined,this._objectId);},hideDOMNodeHighlight:function()
-{WebInspector.domAgent.hideDOMNodeHighlight();},callFunction:function(functionDeclaration,args,callback)
-{function mycallback(error,result,wasThrown)
-{if(!callback)
-return;if(error)
-callback(null,false);else
-callback(WebInspector.RemoteObject.fromPayload(result),wasThrown);}
-RuntimeAgent.callFunctionOn(this._objectId,functionDeclaration.toString(),args,true,undefined,undefined,mycallback);},callFunctionJSON:function(functionDeclaration,args,callback)
-{function mycallback(error,result,wasThrown)
-{callback((error||wasThrown)?null:result.value);}
-RuntimeAgent.callFunctionOn(this._objectId,functionDeclaration.toString(),args,true,true,false,mycallback);},release:function()
-{if(!this._objectId)
-return;RuntimeAgent.releaseObject(this._objectId);},arrayLength:function()
-{if(this.subtype!=="array")
-return 0;var matches=this._description.match(/\[([0-9]+)\]/);if(!matches)
-return 0;return parseInt(matches[1],10);}};WebInspector.RemoteObject.loadFromObject=function(object,flattenProtoChain,callback)
-{if(flattenProtoChain)
-object.getAllProperties(false,callback);else
-WebInspector.RemoteObject.loadFromObjectPerProto(object,callback);};WebInspector.RemoteObject.loadFromObjectPerProto=function(object,callback)
-{var savedOwnProperties;var savedAccessorProperties;var savedInternalProperties;var resultCounter=2;function processCallback()
-{if(--resultCounter)
-return;if(savedOwnProperties&&savedAccessorProperties){var combinedList=savedAccessorProperties.slice(0);for(var i=0;i<savedOwnProperties.length;i++){var property=savedOwnProperties[i];if(!property.isAccessorProperty())
-combinedList.push(property);}
-return callback(combinedList,savedInternalProperties?savedInternalProperties:null);}else{callback(null,null);}}
-function allAccessorPropertiesCallback(properties,internalProperties)
-{savedAccessorProperties=properties;processCallback();}
-function ownPropertiesCallback(properties,internalProperties)
-{savedOwnProperties=properties;savedInternalProperties=internalProperties;processCallback();}
-object.getAllProperties(true,allAccessorPropertiesCallback);object.getOwnProperties(ownPropertiesCallback);};WebInspector.ScopeRemoteObject=function(objectId,scopeRef,type,subtype,value,description,preview)
-{WebInspector.RemoteObject.call(this,objectId,type,subtype,value,description,preview);this._scopeRef=scopeRef;this._savedScopeProperties=undefined;};WebInspector.ScopeRemoteObject.fromPayload=function(payload,scopeRef)
-{if(scopeRef)
-return new WebInspector.ScopeRemoteObject(payload.objectId,scopeRef,payload.type,payload.subtype,payload.value,payload.description,payload.preview);else
-return new WebInspector.RemoteObject(payload.objectId,payload.type,payload.subtype,payload.value,payload.description,payload.preview);}
-WebInspector.ScopeRemoteObject.prototype={doGetProperties:function(ownProperties,accessorPropertiesOnly,callback)
-{if(accessorPropertiesOnly){callback([],[]);return;}
-if(this._savedScopeProperties){callback(this._savedScopeProperties.slice(),[]);return;}
-function wrappedCallback(properties,internalProperties)
-{if(this._scopeRef&&properties instanceof Array)
-this._savedScopeProperties=properties.slice();callback(properties,internalProperties);}
-WebInspector.RemoteObject.prototype.doGetProperties.call(this,ownProperties,accessorPropertiesOnly,wrappedCallback.bind(this));},doSetObjectPropertyValue:function(result,name,callback)
-{var newValue;switch(result.type){case"undefined":newValue={};break;case"object":case"function":newValue={objectId:result.objectId};break;default:newValue={value:result.value};}
-DebuggerAgent.setVariableValue(this._scopeRef.number,name,newValue,this._scopeRef.callFrameId,this._scopeRef.functionId,setVariableValueCallback.bind(this));function setVariableValueCallback(error)
-{if(error){callback(error);return;}
-if(this._savedScopeProperties){for(var i=0;i<this._savedScopeProperties.length;i++){if(this._savedScopeProperties[i].name===name)
-this._savedScopeProperties[i].value=WebInspector.RemoteObject.fromPayload(result);}}
-callback();}},__proto__:WebInspector.RemoteObject.prototype};WebInspector.ScopeRef=function(number,callFrameId,functionId)
-{this.number=number;this.callFrameId=callFrameId;this.functionId=functionId;}
-WebInspector.RemoteObjectProperty=function(name,value,descriptor)
-{this.name=name;this.enumerable=descriptor?!!descriptor.enumerable:true;this.writable=descriptor?!!descriptor.writable:true;if(value===null&&descriptor){if(descriptor.value)
-this.value=WebInspector.RemoteObject.fromPayload(descriptor.value)
-if(descriptor.get&&descriptor.get.type!=="undefined")
-this.getter=WebInspector.RemoteObject.fromPayload(descriptor.get);if(descriptor.set&&descriptor.set.type!=="undefined")
-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 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;}
-WebInspector.LocalJSONObject=function(value)
-{this._value=value;}
-WebInspector.LocalJSONObject.prototype={get description()
-{if(this._cachedDescription)
-return this._cachedDescription;function formatArrayItem(property)
-{return property.value.description;}
-function formatObjectItem(property)
-{return property.name+":"+property.value.description;}
-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)
-buffer+=", ";buffer+=itemDescription;}
-buffer+=suffix;return buffer;},get type()
-{return typeof this._value;},get subtype()
-{if(this._value===null)
-return"null";if(this._value instanceof Array)
-return"array";if(this._value instanceof Date)
-return"date";return undefined;},get hasChildren()
-{if((typeof this._value!=="object")||(this._value===null))
-return false;return!!Object.keys((this._value)).length;},getOwnProperties:function(callback)
-{callback(this._children());},getAllProperties:function(accessorPropertiesOnly,callback)
-{if(accessorPropertiesOnly)
-callback([]);else
-callback(this._children());},_children:function()
-{if(!this.hasChildren)
-return[];var value=(this._value);function buildProperty(propName)
-{return new WebInspector.RemoteObjectProperty(propName,new WebInspector.LocalJSONObject(this._value[propName]));}
-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;},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()
-{this.element.addEventListener("contextmenu",this._contextMenuEventFired.bind(this),false);},_contextMenuEventFired:function(event)
-{var contextMenu=new WebInspector.ContextMenu(event);contextMenu.appendApplicableItems(this.object);contextMenu.show();},onpopulate:function()
-{this.update();},update:function()
-{if(this.object.arrayLength()>WebInspector.ObjectPropertiesSection._arrayLoadThreshold){this.propertiesTreeOutline.removeChildren();WebInspector.ArrayGroupingTreeElement._populateArray(this.propertiesTreeOutline,this.object,0,this.object.arrayLength()-1);return;}
-function callback(properties,internalProperties)
-{if(!properties)
-return;this.updateProperties(properties,internalProperties);}
-WebInspector.RemoteObject.loadFromObject(this.object,!!this.ignoreHasOwnProperty,callback.bind(this));},updateProperties:function(properties,internalProperties,rootTreeElementConstructor,rootPropertyComparer)
-{if(!rootTreeElementConstructor)
-rootTreeElementConstructor=this.treeElementConstructor;if(!rootPropertyComparer)
-rootPropertyComparer=WebInspector.ObjectPropertiesSection.CompareProperties;if(this.extraProperties){for(var i=0;i<this.extraProperties.length;++i)
-properties.push(this.extraProperties[i]);}
-this.propertiesTreeOutline.removeChildren();WebInspector.ObjectPropertyTreeElement.populateWithProperties(this.propertiesTreeOutline,properties,internalProperties,rootTreeElementConstructor,rootPropertyComparer,this.skipProto,this.object);this.propertiesForTest=properties;if(!this.propertiesTreeOutline.children.length){var title=document.createElement("div");title.className="info";title.textContent=this.emptyPlaceholder;var infoElement=new TreeElement(title,null,false);this.propertiesTreeOutline.appendChild(infoElement);}},__proto__:WebInspector.PropertiesSection.prototype}
-WebInspector.ObjectPropertiesSection.CompareProperties=function(propertyA,propertyB)
-{var a=propertyA.name;var b=propertyB.name;if(a==="__proto__")
-return 1;if(b==="__proto__")
-return-1;return String.naturalOrderComparator(a,b);}
-WebInspector.ObjectPropertyTreeElement=function(property)
-{this.property=property;TreeElement.call(this,"",null,false);this.toggleOnClick=true;this.selectable=false;}
-WebInspector.ObjectPropertyTreeElement.prototype={onpopulate:function()
-{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);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.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.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)
-{},_mouseMove:function(event)
-{this.property.value.highlightAsDOMNode();},_mouseOut:function(event)
-{this.property.value.hideDOMNodeHighlight();},updateSiblings:function()
-{if(this.parent.root)
-this.treeOutline.section.update();else
-this.parent.shouldRefreshChildren=true;},renderPromptAsBlock:function()
-{return false;},elementAndValueToEdit:function(event)
-{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.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.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){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)
-this.update();if(!expressionLength){this.parent.removeChild(this);}else{this.updateSiblings();}};this.property.parentObject.setPropertyValue(this.property.name,expression.trim(),callback.bind(this));},propertyPath:function()
-{if("_cachedPropertyPath"in this)
-return this._cachedPropertyPath;var current=this;var result;do{if(current.property){if(result)
-result=current.property.name+"."+result;else
-result=current.property.name;}
-current=current.parent;}while(current&&!current.root);this._cachedPropertyPath=result;return result;},_onInvokeGetterClick:function(result,wasThrown)
-{if(!result)
-return;this.property.value=result;this.property.wasThrown=wasThrown;this.update();this.shouldRefreshChildren=true;},__proto__:TreeElement.prototype}
-WebInspector.ObjectPropertyTreeElement.populate=function(treeElement,value){if(treeElement.children.length&&!treeElement.shouldRefreshChildren)
-return;if(value.arrayLength()>WebInspector.ObjectPropertiesSection._arrayLoadThreshold){treeElement.removeChildren();WebInspector.ArrayGroupingTreeElement._populateArray(treeElement,value,0,value.arrayLength()-1);return;}
-function callback(properties,internalProperties)
-{treeElement.removeChildren();if(!properties)
-return;if(!internalProperties)
-internalProperties=[];WebInspector.ObjectPropertyTreeElement.populateWithProperties(treeElement,properties,internalProperties,treeElement.treeOutline.section.treeElementConstructor,WebInspector.ObjectPropertiesSection.CompareProperties,treeElement.treeOutline.section.skipProto,value);}
-WebInspector.RemoteObject.loadFromObjectPerProto(value,callback);}
-WebInspector.ObjectPropertyTreeElement.populateWithProperties=function(treeElement,properties,internalProperties,treeElementConstructor,comparator,skipProto,value){properties.sort(comparator);for(var i=0;i<properties.length;++i){var property=properties[i];if(skipProto&&property.name==="__proto__")
-continue;if(property.isAccessorProperty()){if(property.name!=="__proto__"&&property.getter){property.parentObject=value;treeElement.appendChild(new treeElementConstructor(property));}
-if(property.isOwn){if(property.getter){var getterProperty=new WebInspector.RemoteObjectProperty("get "+property.name,property.getter);getterProperty.parentObject=value;treeElement.appendChild(new treeElementConstructor(getterProperty));}
-if(property.setter){var setterProperty=new WebInspector.RemoteObjectProperty("set "+property.name,property.setter);setterProperty.parentObject=value;treeElement.appendChild(new treeElementConstructor(setterProperty));}}}else{property.parentObject=value;treeElement.appendChild(new treeElementConstructor(property));}}
-if(value&&value.type==="function"){var hasTargetFunction=false;if(internalProperties){for(var i=0;i<internalProperties.length;i++){if(internalProperties[i].name=="[[TargetFunction]]"){hasTargetFunction=true;break;}}}
-if(!hasTargetFunction)
-treeElement.appendChild(new WebInspector.FunctionScopeMainTreeElement(value));}
-if(internalProperties){for(var i=0;i<internalProperties.length;i++){internalProperties[i].parentObject=value;treeElement.appendChild(new treeElementConstructor(internalProperties[i]));}}}
-WebInspector.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan=function(object,propertyPath,callback)
-{var rootElement=document.createElement("span");var element=rootElement.createChild("span","properties-calculate-value-button");element.textContent=WebInspector.UIString("(...)");element.title=WebInspector.UIString("Invoke property getter");element.addEventListener("click",onInvokeGetterClick,false);function onInvokeGetterClick(event)
-{event.consume();object.getProperty(propertyPath,callback);}
-return rootElement;}
-WebInspector.FunctionScopeMainTreeElement=function(remoteObject)
-{TreeElement.call(this,"<function scope>",null,false);this.toggleOnClick=true;this.selectable=false;this._remoteObject=remoteObject;this.hasChildren=true;}
-WebInspector.FunctionScopeMainTreeElement.prototype={onpopulate:function()
-{if(this.children.length&&!this.shouldRefreshChildren)
-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 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()
-{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)
-{WebInspector.ArrayGroupingTreeElement._populateRanges(treeElement,object,fromIndex,toIndex,true);}
-WebInspector.ArrayGroupingTreeElement._populateRanges=function(treeElement,object,fromIndex,toIndex,topLevel)
-{object.callFunctionJSON(packRanges,[{value:fromIndex},{value:toIndex},{value:WebInspector.ArrayGroupingTreeElement._bucketThreshold},{value:WebInspector.ArrayGroupingTreeElement._sparseIterationThreshold}],callback.bind(this));function packRanges(fromIndex,toIndex,bucketThreshold,sparseIterationThreshold)
-{var ownPropertyNames=null;function doLoop(iterationCallback)
-{if(toIndex-fromIndex<sparseIterationThreshold){for(var i=fromIndex;i<=toIndex;++i){if(i in this)
-iterationCallback(i);}}else{ownPropertyNames=ownPropertyNames||Object.getOwnPropertyNames(this);for(var i=0;i<ownPropertyNames.length;++i){var name=ownPropertyNames[i];var index=name>>>0;if(String(index)===name&&fromIndex<=index&&index<=toIndex)
-iterationCallback(index);}}}
-var count=0;function countIterationCallback()
-{++count;}
-doLoop.call(this,countIterationCallback);var bucketSize=count;if(count<=bucketThreshold)
-bucketSize=count;else
-bucketSize=Math.pow(bucketThreshold,Math.ceil(Math.log(count)/Math.log(bucketThreshold))-1);var ranges=[];count=0;var groupStart=-1;var groupEnd=0;function loopIterationCallback(i)
-{if(groupStart===-1)
-groupStart=i;groupEnd=i;if(++count===bucketSize){ranges.push([groupStart,groupEnd,count]);count=0;groupStart=-1;}}
-doLoop.call(this,loopIterationCallback);if(count>0)
-ranges.push([groupStart,groupEnd,count]);return ranges;}
-function callback(ranges)
-{if(ranges.length==1)
-WebInspector.ArrayGroupingTreeElement._populateAsFragment(treeElement,object,ranges[0][0],ranges[0][1]);else{for(var i=0;i<ranges.length;++i){var fromIndex=ranges[i][0];var toIndex=ranges[i][1];var count=ranges[i][2];if(fromIndex==toIndex)
-WebInspector.ArrayGroupingTreeElement._populateAsFragment(treeElement,object,fromIndex,toIndex);else
-treeElement.appendChild(new WebInspector.ArrayGroupingTreeElement(object,fromIndex,toIndex,count));}}
-if(topLevel)
-WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties(treeElement,object);}}
-WebInspector.ArrayGroupingTreeElement._populateAsFragment=function(treeElement,object,fromIndex,toIndex)
-{object.callFunction(buildArrayFragment,[{value:fromIndex},{value:toIndex},{value:WebInspector.ArrayGroupingTreeElement._sparseIterationThreshold}],processArrayFragment.bind(this));function buildArrayFragment(fromIndex,toIndex,sparseIterationThreshold)
-{var result=Object.create(null);if(toIndex-fromIndex<sparseIterationThreshold){for(var i=fromIndex;i<=toIndex;++i){if(i in this)
-result[i]=this[i];}}else{var ownPropertyNames=Object.getOwnPropertyNames(this);for(var i=0;i<ownPropertyNames.length;++i){var name=ownPropertyNames[i];var index=name>>>0;if(String(index)===name&&fromIndex<=index&&index<=toIndex)
-result[index]=this[index];}}
-return result;}
-function processArrayFragment(arrayFragment,wasThrown)
-{if(!arrayFragment||wasThrown)
-return;arrayFragment.getAllProperties(false,processProperties.bind(this));}
-function processProperties(properties,internalProperties)
-{if(!properties)
-return;properties.sort(WebInspector.ObjectPropertiesSection.CompareProperties);for(var i=0;i<properties.length;++i){properties[i].parentObject=this._object;var childTreeElement=new treeElement.treeOutline.section.treeElementConstructor(properties[i]);childTreeElement._readOnly=true;treeElement.appendChild(childTreeElement);}}}
-WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties=function(treeElement,object)
-{object.callFunction(buildObjectFragment,undefined,processObjectFragment.bind(this));function buildObjectFragment()
-{var result=Object.create(this.__proto__);var names=Object.getOwnPropertyNames(this);for(var i=0;i<names.length;++i){var name=names[i];if(String(name>>>0)===name&&name>>>0!==0xffffffff)
-continue;var descriptor=Object.getOwnPropertyDescriptor(this,name);if(descriptor)
-Object.defineProperty(result,name,descriptor);}
-return result;}
-function processObjectFragment(arrayFragment,wasThrown)
-{if(!arrayFragment||wasThrown)
-return;arrayFragment.getOwnProperties(processProperties.bind(this));}
-function processProperties(properties,internalProperties)
-{if(!properties)
-return;properties.sort(WebInspector.ObjectPropertiesSection.CompareProperties);for(var i=0;i<properties.length;++i){properties[i].parentObject=this._object;var childTreeElement=new treeElement.treeOutline.section.treeElementConstructor(properties[i]);childTreeElement._readOnly=true;treeElement.appendChild(childTreeElement);}}}
-WebInspector.ArrayGroupingTreeElement.prototype={onpopulate:function()
-{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.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();}
-WebInspector.ObjectPropertyPrompt.prototype={__proto__:WebInspector.TextPrompt.prototype}
-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 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"){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.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)
-this._onHideCallback();RuntimeAgent.releaseObjectGroup(this._popoverObjectGroup);},_updateHTMLId:function(properties,rootTreeElementConstructor,rootPropertyComparer)
-{for(var i=0;i<properties.length;++i){if(properties[i].name==="id"){if(properties[i].value.description)
-this._titleElement.textContent+="#"+properties[i].value.description;break;}}
-this._sectionUpdateProperties(properties,rootTreeElementConstructor,rootPropertyComparer);},__proto__:WebInspector.PopoverHelper.prototype}
-WebInspector.NativeBreakpointsSidebarPane=function(title)
-{WebInspector.SidebarPane.call(this,title);this.registerRequiredCSS("breakpointsList.css");this.listElement=document.createElement("ol");this.listElement.className="breakpoint-list";this.emptyElement=document.createElement("div");this.emptyElement.className="info";this.emptyElement.textContent=WebInspector.UIString("No Breakpoints");this.bodyElement.appendChild(this.emptyElement);}
-WebInspector.NativeBreakpointsSidebarPane.prototype={_addListElement:function(element,beforeElement)
-{if(beforeElement)
-this.listElement.insertBefore(element,beforeElement);else{if(!this.listElement.firstChild){this.bodyElement.removeChild(this.emptyElement);this.bodyElement.appendChild(this.listElement);}
-this.listElement.appendChild(element);}},_removeListElement:function(element)
-{this.listElement.removeChild(element);if(!this.listElement.firstChild){this.bodyElement.removeChild(this.listElement);this.bodyElement.appendChild(this.emptyElement);}},_reset:function()
-{this.listElement.removeChildren();if(this.listElement.parentElement){this.bodyElement.removeChild(this.listElement);this.bodyElement.appendChild(this.emptyElement);}},__proto__:WebInspector.SidebarPane.prototype}
-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)
-{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;}
-function toggleBreakpoint(type)
-{if(!nodeBreakpoints[type])
-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"]);targetNodeObject.pushNodeToFrontend(didPushNodeToFrontend.bind(this));}else
-this._doCreateBreakpointHitStatusMessage(auxData,null,callback);function didPushNodeToFrontend(targetNodeId)
-{if(targetNodeId)
-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
-message="Paused on a \"%s\" breakpoint set on %s.";var element=document.createElement("span");var formatters={s:function(substitution)
-{return substitution;}};function append(a,b)
-{if(typeof b==="string")
-b=document.createTextNode(b);element.appendChild(b);}
-WebInspector.formatLocalized(message,substitutions,formatters,"",append);callback(element);},_nodeRemoved:function(event)
-{var node=event.data.node;this._removeBreakpointsForNode(event.data.node);var children=node.children();if(!children)
-return;for(var i=0;i<children.length;++i)
-this._removeBreakpointsForNode(children[i]);this._saveBreakpoints();},_removeBreakpointsForNode:function(node)
-{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.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()
-{for(var id in this._breakpointElements){var element=this._breakpointElements[id];this._removeBreakpoint(element._node,element._type);}
-this._saveBreakpoints();},_removeBreakpoint:function(node,type)
-{var breakpointId=this._createBreakpointId(node.id,type);var element=this._breakpointElements[breakpointId];if(!element)
-return;this._removeListElement(element);delete this._breakpointElements[breakpointId];if(element._checkboxElement.checked)
-DOMDebuggerAgent.removeDOMBreakpoint(node.id,type);},_contextMenu:function(node,type,event)
-{var contextMenu=new WebInspector.ContextMenu(event);function removeBreakpoint()
-{this._removeBreakpoint(node,type);this._saveBreakpoints();}
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove breakpoint":"Remove Breakpoint"),removeBreakpoint.bind(this));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Remove all DOM breakpoints":"Remove All DOM Breakpoints"),this._removeAllBreakpoints.bind(this));contextMenu.show();},_checkboxClicked:function(node,type,event)
-{if(event.target.checked)
-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.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);}
-for(var id in this._breakpointElements){var element=this._breakpointElements[id];breakpoints.push({url:this._inspectedURL,path:element._node.path(),type:element._type,enabled:element._checkboxElement.checked});}
-WebInspector.settings.domBreakpoints.set(breakpoints);},restoreBreakpoints:function()
-{var pathToBreakpoints={};function didPushNodeByPathToFrontend(path,nodeId)
-{var node=nodeId?WebInspector.domAgent.nodeForId(nodeId):null;if(!node)
-return;var breakpoints=pathToBreakpoints[path];for(var i=0;i<breakpoints.length;++i)
-this._setBreakpoint(node,breakpoints[i].type,breakpoints[i].enabled);}
-var breakpoints=WebInspector.settings.domBreakpoints.get();for(var i=0;i<breakpoints.length;++i){var breakpoint=breakpoints[i];if(breakpoint.url!==this._inspectedURL)
-continue;var path=breakpoint.path;if(!pathToBreakpoints[path]){pathToBreakpoints[path]=[];WebInspector.domAgent.pushNodeByPathToFrontend(path,didPushNodeByPathToFrontend.bind(this,path));}
-pathToBreakpoints[path].push(breakpoint);}},createProxy:function(panel)
-{var proxy=new WebInspector.DOMBreakpointsSidebarPane.Proxy(this,panel);if(!this._proxies)
-this._proxies=[];this._proxies.push(proxy);return proxy;},onContentReady:function()
-{for(var i=0;i!=this._proxies.length;i++)
-this._proxies[i].onContentReady();},__proto__:WebInspector.NativeBreakpointsSidebarPane.prototype}
-WebInspector.DOMBreakpointsSidebarPane.Proxy=function(pane,panel)
-{WebInspector.View._assert(!pane.titleElement.firstChild,"Cannot create proxy for a sidebar pane with a toolbar");WebInspector.SidebarPane.call(this,pane.title());this.registerRequiredCSS("breakpointsList.css");this._wrappedPane=pane;this._panel=panel;this.bodyElement.remove();this.bodyElement=this._wrappedPane.bodyElement;}
-WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype={expand:function()
-{this._wrappedPane.expand();},onContentReady:function()
-{if(this._panel.isShowing())
-this._reattachBody();WebInspector.SidebarPane.prototype.onContentReady.call(this);},wasShown:function()
-{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;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)
-this._rgba[i]=1;}}
-WebInspector.Color.parse=function(text)
-{var value=text.toLowerCase().replace(/\s+/g,"");var simple=/^(?:#([0-9a-f]{3,6})|rgb\(([^)]+)\)|(\w+)|hsl\(([^)]+)\))$/i;var match=value.match(simple);if(match){if(match[1]){var hex=match[1].toUpperCase();var format;if(hex.length===3){format=WebInspector.Color.Format.ShortHEX;hex=hex.charAt(0)+hex.charAt(0)+hex.charAt(1)+hex.charAt(1)+hex.charAt(2)+hex.charAt(2);}else
-format=WebInspector.Color.Format.HEX;var r=parseInt(hex.substring(0,2),16);var g=parseInt(hex.substring(2,4),16);var b=parseInt(hex.substring(4,6),16);return new WebInspector.Color([r/255,g/255,b/255,1],format,text);}
-if(match[2]){var rgbString=match[2].split(/\s*,\s*/);var rgba=[WebInspector.Color._parseRgbNumeric(rgbString[0]),WebInspector.Color._parseRgbNumeric(rgbString[1]),WebInspector.Color._parseRgbNumeric(rgbString[2]),1];return new WebInspector.Color(rgba,WebInspector.Color.Format.RGB,text);}
-if(match[3]){var nickname=match[3].toLowerCase();if(nickname in WebInspector.Color.Nicknames){var rgba=WebInspector.Color.Nicknames[nickname];var color=WebInspector.Color.fromRGBA(rgba);color._format=WebInspector.Color.Format.Nickname;color._originalText=nickname;return color;}
-return null;}
-if(match[4]){var hslString=match[4].replace(/%/g,"").split(/\s*,\s*/);var hsla=[WebInspector.Color._parseHueNumeric(hslString[0]),WebInspector.Color._parseSatLightNumeric(hslString[1]),WebInspector.Color._parseSatLightNumeric(hslString[2]),1];var rgba=WebInspector.Color._hsl2rgb(hsla);return new WebInspector.Color(rgba,WebInspector.Color.Format.HSL,text);}
-return null;}
-var advanced=/^(?:rgba\(([^)]+)\)|hsla\(([^)]+)\))$/;match=value.match(advanced);if(match){if(match[1]){var rgbaString=match[1].split(/\s*,\s*/);var rgba=[WebInspector.Color._parseRgbNumeric(rgbaString[0]),WebInspector.Color._parseRgbNumeric(rgbaString[1]),WebInspector.Color._parseRgbNumeric(rgbaString[2]),WebInspector.Color._parseAlphaNumeric(rgbaString[3])];return new WebInspector.Color(rgba,WebInspector.Color.Format.RGBA,text);}
-if(match[2]){var hslaString=match[2].replace(/%/g,"").split(/\s*,\s*/);var hsla=[WebInspector.Color._parseHueNumeric(hslaString[0]),WebInspector.Color._parseSatLightNumeric(hslaString[1]),WebInspector.Color._parseSatLightNumeric(hslaString[2]),WebInspector.Color._parseAlphaNumeric(hslaString[3])];var rgba=WebInspector.Color._hsl2rgb(hsla);return new WebInspector.Color(rgba,WebInspector.Color.Format.HSLA,text);}}
-return null;}
-WebInspector.Color.fromRGBA=function(rgba)
-{return new WebInspector.Color([rgba[0]/255,rgba[1]/255,rgba[2]/255,rgba[3]]);}
-WebInspector.Color.fromHSVA=function(hsva)
-{var h=hsva[0];var s=hsva[1];var v=hsva[2];var t=(2-s)*v;if(v===0||s===0)
-s=0;else
-s*=v/(t<1?t:2-t);var hsla=[h,s,t/2,hsva[3]];return new WebInspector.Color(WebInspector.Color._hsl2rgb(hsla),WebInspector.Color.Format.HSLA);}
-WebInspector.Color.prototype={format:function()
-{return this._format;},hsla:function()
-{if(this._hsla)
-return this._hsla;var r=this._rgba[0];var g=this._rgba[1];var b=this._rgba[2];var max=Math.max(r,g,b);var min=Math.min(r,g,b);var diff=max-min;var add=max+min;if(min===max)
-var h=0;else if(r===max)
-var h=((1/6*(g-b)/diff)+1)%1;else if(g===max)
-var h=(1/6*(b-r)/diff)+1/3;else
-var h=(1/6*(r-g)/diff)+2/3;var l=0.5*add;if(l===0)
-var s=0;else if(l===1)
-var s=1;else if(l<=0.5)
-var s=diff/add;else
-var s=diff/(2-add);this._hsla=[h,s,l,this._rgba[3]];return this._hsla;},hsva:function()
-{var hsla=this.hsla();var h=hsla[0];var s=hsla[1];var l=hsla[2];s*=l<0.5?l:1-l;return[h,s!==0?2*s/(l+s):0,(l+s),hsla[3]];},hasAlpha:function()
-{return this._rgba[3]!==1;},canBeShortHex:function()
-{if(this.hasAlpha())
-return false;for(var i=0;i<3;++i){var c=Math.round(this._rgba[i]*255);if(c%17)
-return false;}
-return true;},toString:function(format)
-{if(!format)
-format=this._format;function toRgbValue(value)
-{return Math.round(value*255);}
-function toHexValue(value)
-{var hex=Math.round(value*255).toString(16);return hex.length===1?"0"+hex:hex;}
-function toShortHexValue(value)
-{return(Math.round(value*255)/17).toString(16);}
-switch(format){case WebInspector.Color.Format.Original:return this._originalText;case WebInspector.Color.Format.RGB:if(this.hasAlpha())
-return null;return String.sprintf("rgb(%d, %d, %d)",toRgbValue(this._rgba[0]),toRgbValue(this._rgba[1]),toRgbValue(this._rgba[2]));case WebInspector.Color.Format.RGBA:return String.sprintf("rgba(%d, %d, %d, %f)",toRgbValue(this._rgba[0]),toRgbValue(this._rgba[1]),toRgbValue(this._rgba[2]),this._rgba[3]);case WebInspector.Color.Format.HSL:if(this.hasAlpha())
-return null;var hsl=this.hsla();return String.sprintf("hsl(%d, %d%, %d%)",Math.round(hsl[0]*360),Math.round(hsl[1]*100),Math.round(hsl[2]*100));case WebInspector.Color.Format.HSLA:var hsla=this.hsla();return String.sprintf("hsla(%d, %d%, %d%, %f)",Math.round(hsla[0]*360),Math.round(hsla[1]*100),Math.round(hsla[2]*100),hsla[3]);case WebInspector.Color.Format.HEX:if(this.hasAlpha())
-return null;return String.sprintf("#%s%s%s",toHexValue(this._rgba[0]),toHexValue(this._rgba[1]),toHexValue(this._rgba[2])).toUpperCase();case WebInspector.Color.Format.ShortHEX:if(!this.canBeShortHex())
-return null;return String.sprintf("#%s%s%s",toShortHexValue(this._rgba[0]),toShortHexValue(this._rgba[1]),toShortHexValue(this._rgba[2])).toUpperCase();case WebInspector.Color.Format.Nickname:return this.nickname();}
-return this._originalText;},_canonicalRGBA:function()
-{var rgba=new Array(3);for(var i=0;i<3;++i)
-rgba[i]=Math.round(this._rgba[i]*255);if(this._rgba[3]!==1)
-rgba.push(this._rgba[3]);return rgba;},nickname:function()
-{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;},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
-parsed/=255;return parsed;}
-WebInspector.Color._parseHueNumeric=function(value)
-{return isNaN(value)?0:(parseFloat(value)/360)%1;}
-WebInspector.Color._parseSatLightNumeric=function(value)
-{return parseFloat(value)/100;}
-WebInspector.Color._parseAlphaNumeric=function(value)
-{return isNaN(value)?0:parseFloat(value);}
-WebInspector.Color._hsl2rgb=function(hsl)
-{var h=hsl[0];var s=hsl[1];var l=hsl[2];function hue2rgb(p,q,h)
-{if(h<0)
-h+=1;else if(h>1)
-h-=1;if((h*6)<1)
-return p+(q-p)*h*6;else if((h*2)<1)
-return q;else if((h*3)<2)
-return p+(q-p)*((2/3)-h)*6;else
-return p;}
-if(s<0)
-s=0;if(l<=0.5)
-var q=l*(1+s);else
-var q=l+s-(l*s);var p=2*l-q;var tr=h+(1/3);var tg=h;var tb=h-(1/3);var r=hue2rgb(p,q,tr);var g=hue2rgb(p,q,tg);var b=hue2rgb(p,q,tb);return[r,g,b,hsl[3]];}
-WebInspector.Color.Nicknames={"aliceblue":[240,248,255],"antiquewhite":[250,235,215],"aquamarine":[127,255,212],"azure":[240,255,255],"beige":[245,245,220],"bisque":[255,228,196],"black":[0,0,0],"blanchedalmond":[255,235,205],"blue":[0,0,255],"blueviolet":[138,43,226],"brown":[165,42,42],"burlywood":[222,184,135],"cadetblue":[95,158,160],"chartreuse":[127,255,0],"chocolate":[210,105,30],"coral":[255,127,80],"cornflowerblue":[100,149,237],"cornsilk":[255,248,220],"crimson":[237,20,61],"cyan":[0,255,255],"darkblue":[0,0,139],"darkcyan":[0,139,139],"darkgoldenrod":[184,134,11],"darkgray":[169,169,169],"darkgreen":[0,100,0],"darkkhaki":[189,183,107],"darkmagenta":[139,0,139],"darkolivegreen":[85,107,47],"darkorange":[255,140,0],"darkorchid":[153,50,204],"darkred":[139,0,0],"darksalmon":[233,150,122],"darkseagreen":[143,188,143],"darkslateblue":[72,61,139],"darkslategray":[47,79,79],"darkturquoise":[0,206,209],"darkviolet":[148,0,211],"deeppink":[255,20,147],"deepskyblue":[0,191,255],"dimgray":[105,105,105],"dodgerblue":[30,144,255],"firebrick":[178,34,34],"floralwhite":[255,250,240],"forestgreen":[34,139,34],"gainsboro":[220,220,220],"ghostwhite":[248,248,255],"gold":[255,215,0],"goldenrod":[218,165,32],"gray":[128,128,128],"green":[0,128,0],"greenyellow":[173,255,47],"honeydew":[240,255,240],"hotpink":[255,105,180],"indianred":[205,92,92],"indigo":[75,0,130],"ivory":[255,255,240],"khaki":[240,230,140],"lavender":[230,230,250],"lavenderblush":[255,240,245],"lawngreen":[124,252,0],"lemonchiffon":[255,250,205],"lightblue":[173,216,230],"lightcoral":[240,128,128],"lightcyan":[224,255,255],"lightgoldenrodyellow":[250,250,210],"lightgreen":[144,238,144],"lightgrey":[211,211,211],"lightpink":[255,182,193],"lightsalmon":[255,160,122],"lightseagreen":[32,178,170],"lightskyblue":[135,206,250],"lightslategray":[119,136,153],"lightsteelblue":[176,196,222],"lightyellow":[255,255,224],"lime":[0,255,0],"limegreen":[50,205,50],"linen":[250,240,230],"magenta":[255,0,255],"maroon":[128,0,0],"mediumaquamarine":[102,205,170],"mediumblue":[0,0,205],"mediumorchid":[186,85,211],"mediumpurple":[147,112,219],"mediumseagreen":[60,179,113],"mediumslateblue":[123,104,238],"mediumspringgreen":[0,250,154],"mediumturquoise":[72,209,204],"mediumvioletred":[199,21,133],"midnightblue":[25,25,112],"mintcream":[245,255,250],"mistyrose":[255,228,225],"moccasin":[255,228,181],"navajowhite":[255,222,173],"navy":[0,0,128],"oldlace":[253,245,230],"olive":[128,128,0],"olivedrab":[107,142,35],"orange":[255,165,0],"orangered":[255,69,0],"orchid":[218,112,214],"palegoldenrod":[238,232,170],"palegreen":[152,251,152],"paleturquoise":[175,238,238],"palevioletred":[219,112,147],"papayawhip":[255,239,213],"peachpuff":[255,218,185],"peru":[205,133,63],"pink":[255,192,203],"plum":[221,160,221],"powderblue":[176,224,230],"purple":[128,0,128],"red":[255,0,0],"rosybrown":[188,143,143],"royalblue":[65,105,225],"saddlebrown":[139,69,19],"salmon":[250,128,114],"sandybrown":[244,164,96],"seagreen":[46,139,87],"seashell":[255,245,238],"sienna":[160,82,45],"silver":[192,192,192],"skyblue":[135,206,235],"slateblue":[106,90,205],"slategray":[112,128,144],"snow":[255,250,250],"springgreen":[0,255,127],"steelblue":[70,130,180],"tan":[210,180,140],"teal":[0,128,128],"thistle":[216,191,216],"tomato":[255,99,71],"turquoise":[64,224,208],"violet":[238,130,238],"wheat":[245,222,179],"white":[255,255,255],"whitesmoke":[245,245,245],"yellow":[255,255,0],"yellowgreen":[154,205,50],"transparent":[0,0,0,0],};WebInspector.Color.PageHighlight={Content:WebInspector.Color.fromRGBA([111,168,220,.66]),ContentLight:WebInspector.Color.fromRGBA([111,168,220,.5]),ContentOutline:WebInspector.Color.fromRGBA([9,83,148]),Padding:WebInspector.Color.fromRGBA([147,196,125,.55]),PaddingLight:WebInspector.Color.fromRGBA([147,196,125,.4]),Border:WebInspector.Color.fromRGBA([255,229,153,.66]),BorderLight:WebInspector.Color.fromRGBA([255,229,153,.5]),Margin:WebInspector.Color.fromRGBA([246,178,107,.66]),MarginLight:WebInspector.Color.fromRGBA([246,178,107,.5]),EventTarget:WebInspector.Color.fromRGBA([255,196,196,.66])}
-WebInspector.Color.Format={Original:"original",Nickname:"nickname",HEX:"hex",ShortHEX:"shorthex",RGB:"rgb",RGBA:"rgba",HSL:"hsl",HSLA:"hsla"}
-WebInspector.CSSMetadata=function(properties)
-{this._values=([]);this._longhands={};this._shorthands={};for(var i=0;i<properties.length;++i){var property=properties[i];if(typeof property==="string"){this._values.push(property);continue;}
-var propertyName=property.name;this._values.push(propertyName);var longhands=properties[i].longhands;if(longhands){this._longhands[propertyName]=longhands;for(var j=0;j<longhands.length;++j){var longhandName=longhands[j];var shorthands=this._shorthands[longhandName];if(!shorthands){shorthands=[];this._shorthands[longhandName]=shorthands;}
-shorthands.push(propertyName);}}}
-this._values.sort();}
-WebInspector.CSSMetadata.cssPropertiesMetainfo=new WebInspector.CSSMetadata([]);WebInspector.CSSMetadata.isColorAwareProperty=function(propertyName)
-{return WebInspector.CSSMetadata._colorAwareProperties[propertyName]===true;}
-WebInspector.CSSMetadata.colors=function()
-{if(!WebInspector.CSSMetadata._colorsKeySet)
-WebInspector.CSSMetadata._colorsKeySet=WebInspector.CSSMetadata._colors.keySet();return WebInspector.CSSMetadata._colorsKeySet;}
-WebInspector.CSSMetadata.InheritedProperties=["azimuth","border-collapse","border-spacing","caption-side","color","cursor","direction","elevation","empty-cells","font-family","font-size","font-style","font-variant","font-weight","font","letter-spacing","line-height","list-style-image","list-style-position","list-style-type","list-style","orphans","pitch-range","pitch","quotes","resize","richness","speak-header","speak-numeral","speak-punctuation","speak","speech-rate","stress","text-align","text-indent","text-transform","text-shadow","visibility","voice-family","volume","white-space","widows","word-spacing","zoom"].keySet();WebInspector.CSSMetadata.NonStandardInheritedProperties=["-webkit-font-smoothing"].keySet();WebInspector.CSSMetadata.canonicalPropertyName=function(name)
-{if(!name||name.length<9||name.charAt(0)!=="-")
-return name.toLowerCase();var match=name.match(/(?:-webkit-)(.+)/);if(!match)
-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"]},"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)
-acceptedKeywords.push.apply(acceptedKeywords,WebInspector.CSSMetadata._colors);return new WebInspector.CSSMetadata(acceptedKeywords);}
-WebInspector.CSSMetadata.descriptor=function(propertyName)
-{if(!propertyName)
-return null;var unprefixedName=propertyName.replace(/^-webkit-/,"");var entry=WebInspector.CSSMetadata._propertyDataMap[propertyName];if(!entry&&unprefixedName!==propertyName)
-entry=WebInspector.CSSMetadata._propertyDataMap[unprefixedName];return entry||null;}
-WebInspector.CSSMetadata.requestCSSShorthandData=function()
-{function propertyNamesCallback(error,properties)
-{if(!error)
-WebInspector.CSSMetadata.cssPropertiesMetainfo=new WebInspector.CSSMetadata(properties);}
-CSSAgent.getSupportedCSSProperties(propertyNamesCallback);}
-WebInspector.CSSMetadata.cssPropertiesMetainfoKeySet=function()
-{if(!WebInspector.CSSMetadata._cssPropertiesMetainfoKeySet)
-WebInspector.CSSMetadata._cssPropertiesMetainfoKeySet=WebInspector.CSSMetadata.cssPropertiesMetainfo.keySet();return WebInspector.CSSMetadata._cssPropertiesMetainfoKeySet;}
-WebInspector.CSSMetadata.Weight={"-webkit-animation":1,"-webkit-animation-duration":1,"-webkit-animation-iteration-count":1,"-webkit-animation-name":1,"-webkit-animation-timing-function":1,"-webkit-appearance":1,"-webkit-background-clip":2,"-webkit-border-horizontal-spacing":1,"-webkit-border-vertical-spacing":1,"-webkit-box-shadow":24,"-webkit-font-smoothing":2,"-webkit-transform":1,"-webkit-transition":8,"-webkit-transition-delay":7,"-webkit-transition-duration":7,"-webkit-transition-property":7,"-webkit-transition-timing-function":6,"-webkit-user-select":1,"background":222,"background-attachment":144,"background-clip":143,"background-color":222,"background-image":201,"background-origin":142,"background-size":25,"border":121,"border-bottom":121,"border-bottom-color":121,"border-bottom-left-radius":50,"border-bottom-right-radius":50,"border-bottom-style":114,"border-bottom-width":120,"border-collapse":3,"border-left":95,"border-left-color":95,"border-left-style":89,"border-left-width":94,"border-radius":50,"border-right":93,"border-right-color":93,"border-right-style":88,"border-right-width":93,"border-top":111,"border-top-color":111,"border-top-left-radius":49,"border-top-right-radius":49,"border-top-style":104,"border-top-width":109,"bottom":16,"box-shadow":25,"box-sizing":2,"clear":23,"color":237,"cursor":34,"direction":4,"display":210,"fill":2,"filter":1,"float":105,"font":174,"font-family":25,"font-size":174,"font-style":9,"font-weight":89,"height":161,"left":54,"letter-spacing":3,"line-height":75,"list-style":17,"list-style-image":8,"list-style-position":8,"list-style-type":17,"margin":241,"margin-bottom":226,"margin-left":225,"margin-right":213,"margin-top":241,"max-height":5,"max-width":11,"min-height":9,"min-width":6,"opacity":24,"outline":10,"outline-color":10,"outline-style":10,"outline-width":10,"overflow":57,"overflow-x":56,"overflow-y":57,"padding":216,"padding-bottom":208,"padding-left":216,"padding-right":206,"padding-top":216,"position":136,"resize":1,"right":29,"stroke":1,"stroke-width":1,"table-layout":1,"text-align":66,"text-decoration":53,"text-indent":9,"text-overflow":8,"text-shadow":19,"text-transform":5,"top":71,"unicode-bidi":1,"vertical-align":37,"visibility":11,"white-space":24,"width":255,"word-wrap":6,"z-index":32,"zoom":10};WebInspector.CSSMetadata.prototype={startsWith:function(prefix)
-{var firstIndex=this._firstIndexOfPrefix(prefix);if(firstIndex===-1)
-return[];var results=[];while(firstIndex<this._values.length&&this._values[firstIndex].startsWith(prefix))
-results.push(this._values[firstIndex++]);return results;},mostUsedOf:function(properties)
-{var maxWeight=0;var index=0;for(var i=0;i<properties.length;i++){var weight=WebInspector.CSSMetadata.Weight[properties[i]];if(weight>maxWeight){maxWeight=weight;index=i;}}
-return index;},_firstIndexOfPrefix:function(prefix)
-{if(!this._values.length)
-return-1;if(!prefix)
-return 0;var maxIndex=this._values.length-1;var minIndex=0;var foundIndex;do{var middleIndex=(maxIndex+minIndex)>>1;if(this._values[middleIndex].startsWith(prefix)){foundIndex=middleIndex;break;}
-if(this._values[middleIndex]<prefix)
-minIndex=middleIndex+1;else
-maxIndex=middleIndex-1;}while(minIndex<=maxIndex);if(foundIndex===undefined)
-return-1;while(foundIndex&&this._values[foundIndex-1].startsWith(prefix))
-foundIndex--;return foundIndex;},keySet:function()
-{if(!this._keySet)
-this._keySet=this._values.keySet();return this._keySet;},next:function(str,prefix)
-{return this._closest(str,prefix,1);},previous:function(str,prefix)
-{return this._closest(str,prefix,-1);},_closest:function(str,prefix,shift)
-{if(!str)
-return"";var index=this._values.indexOf(str);if(index===-1)
-return"";if(!prefix){index=(index+this._values.length+shift)%this._values.length;return this._values[index];}
-var propertiesWithPrefix=this.startsWith(prefix);var j=propertiesWithPrefix.indexOf(str);j=(j+propertiesWithPrefix.length+shift)%propertiesWithPrefix.length;return propertiesWithPrefix[j];},longhands:function(shorthand)
-{return this._longhands[shorthand];},shorthands:function(longhand)
-{return this._shorthands[longhand];}}
-WebInspector.StatusBarItem=function(element)
-{this.element=element;this._enabled=true;}
-WebInspector.StatusBarItem.prototype={setEnabled:function(value)
-{if(this._enabled===value)
-return;this._enabled=value;this._applyEnabledState();},_applyEnabledState:function()
-{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.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),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(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)
-{if(this._title===x)
-return;this._title=x;this.element.title=x;},get state()
-{return this._state;},set state(x)
-{if(this._state===x)
-return;if(this.states===2)
-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)
-{if(this.states!==2)
-throw("Only used toggled when there are 2 states, otherwise, use state");this.state=x;},get visible()
-{return this._visible;},set visible(x)
-{if(this._visible===x)
-return;this.element.enableStyleClass("hidden",!x);this._visible=x;},makeLongClickEnabled:function()
-{var boundMouseDown=mouseDown.bind(this);var boundMouseUp=mouseUp.bind(this);this.element.addEventListener("mousedown",boundMouseDown,false);this.element.addEventListener("mouseout",boundMouseUp,false);this.element.addEventListener("mouseup",boundMouseUp,false);var longClicks=0;this._longClickData={mouseUp:boundMouseUp,mouseDown:boundMouseDown};function mouseDown(e)
-{if(e.which!==1)
-return;longClicks=0;this._longClickInterval=setInterval(longClicked.bind(this),200);}
-function mouseUp(e)
-{if(e.which!==1)
-return;if(this._longClickInterval){clearInterval(this._longClickInterval);delete this._longClickInterval;}}
-function longClicked()
-{++longClicks;this.dispatchEventToListeners(longClicks===1?"longClickDown":"longClickPress");}},unmakeLongClickEnabled:function()
-{if(!this._longClickData)
-return;this.element.removeEventListener("mousedown",this._longClickData.mouseDown,false);this.element.removeEventListener("mouseout",this._longClickData.mouseUp,false);this.element.removeEventListener("mouseup",this._longClickData.mouseUp,false);delete this._longClickData;},setLongClickOptionsEnabled:function(buttonsProvider)
-{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.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.classList.add("emulate-active");function mouseOver(e)
-{if(e.which!==1)
-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.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.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.classList.add(className);}
-WebInspector.StatusBarComboBox.prototype={selectElement:function()
-{return this._selectElement;},size:function()
-{return this._selectElement.childElementCount;},addOption:function(option)
-{this._selectElement.appendChild(option);},createOption:function(label,title,value)
-{var option=this._selectElement.createChild("option");option.text=label;if(title)
-option.title=title;if(typeof value!=="undefined")
-option.value=value;return option;},_applyEnabledState:function()
-{this._selectElement.disabled=!this._enabled;},removeOption:function(option)
-{this._selectElement.removeChild(option);},removeOptions:function()
-{this._selectElement.removeChildren();},selectedOption:function()
-{if(this._selectElement.selectedIndex>=0)
-return this._selectElement[this._selectElement.selectedIndex];return null;},select:function(option)
-{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={};}
-WebInspector.SampleCompletionDictionary.prototype={addWord:function(word)
-{if(!this._words[word])
-this._words[word]=1;else
-++this._words[word];},removeWord:function(word)
-{if(!this._words[word])
-return;if(this._words[word]===1)
-delete this._words[word];else
---this._words[word];},wordsWithPrefix:function(prefix)
-{var words=[];for(var i in this._words){if(i.startsWith(prefix))
-words.push(i);}
-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(){},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){},onJumpToPosition:function(from,to){}}
-WebInspector.SourceFrame=function(contentProvider)
-{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",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()
-{return this.isShowing()&&this._editorAttached;},willHide:function()
-{WebInspector.View.prototype.willHide.call(this);this._clearPositionHighlight();this._clearLineToReveal();},statusBarText:function()
-{return this._sourcePosition.element;},statusBarItems:function()
-{return[];},defaultFocusedElement:function()
-{return this._textEditor.defaultFocusedElement();},get loaded()
-{return this._loaded;},hasContent:function()
-{return true;},get textEditor()
-{return this._textEditor;},_ensureContentLoaded:function()
-{if(!this._contentRequested){this._contentRequested=true;this._contentProvider.requestContent(this.setContent.bind(this));}},addMessage:function(msg)
-{this._messages.push(msg);if(this.loaded)
-this.addMessageToSource(msg.line-1,msg);},clearMessages:function()
-{for(var line in this._messageBubbles){var bubble=this._messageBubbles[line];var lineNumber=parseInt(line,10);this._textEditor.removeDecoration(lineNumber,bubble);}
-this._messages=[];this._rowMessages={};this._messageBubbles={};},canHighlightPosition:function()
-{return true;},highlightPosition:function(line,column)
-{this._clearLineToReveal();this._clearLineToScrollTo();this._clearSelectionToSet();this._positionToHighlight={line:line,column:column};this._innerHighlightPositionIfNeeded();},_innerHighlightPositionIfNeeded:function()
-{if(!this._positionToHighlight)
-return;if(!this.loaded||!this._isEditorShowing())
-return;this._textEditor.highlightPosition(this._positionToHighlight.line,this._positionToHighlight.column);delete this._positionToHighlight;},_clearPositionHighlight:function()
-{this._textEditor.clearPositionHighlight();delete this._positionToHighlight;},revealLine:function(line)
-{this._clearPositionHighlight();this._clearLineToScrollTo();this._clearSelectionToSet();this._lineToReveal=line;this._innerRevealLineIfNeeded();},_innerRevealLineIfNeeded:function()
-{if(typeof this._lineToReveal==="number"){if(this.loaded&&this._isEditorShowing()){this._textEditor.revealLine(this._lineToReveal);delete this._lineToReveal;}}},_clearLineToReveal:function()
-{delete this._lineToReveal;},scrollToLine:function(line)
-{this._clearPositionHighlight();this._clearLineToReveal();this._lineToScrollTo=line;this._innerScrollToLineIfNeeded();},_innerScrollToLineIfNeeded:function()
-{if(typeof this._lineToScrollTo==="number"){if(this.loaded&&this._isEditorShowing()){this._textEditor.scrollToLine(this._lineToScrollTo);delete this._lineToScrollTo;}}},_clearLineToScrollTo:function()
-{delete this._lineToScrollTo;},setSelection:function(textRange)
-{this._selectionToSet=textRange;this._innerSetSelectionIfNeeded();},_innerSetSelectionIfNeeded:function()
-{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._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))
-return"application/x-httpd-php";return mimeType;},setHighlighterType:function(highlighterType)
-{this._highlighterType=highlighterType;this._updateHighlighterType("");},_updateHighlighterType:function(content)
-{this._textEditor.setMimeType(this._simplifyMimeType(content,this._highlighterType));},setContent:function(content)
-{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,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;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)
-return;this._currentSearchResultIndex=-1;if(this._currentSearchMatchChangedCallback)
-this._currentSearchMatchChangedCallback(this._currentSearchResultIndex);this._textEditor.highlightSearchResults(this._searchRegex,null);},_searchResultAfterSelectionIndex:function(selection)
-{if(!selection)
-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;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()
-{return this._searchResults.length>0;},jumpToFirstSearchResult:function()
-{this.jumpToSearchResult(0);},jumpToLastSearchResult:function()
-{this.jumpToSearchResult(this._searchResults.length-1);},jumpToNextSearchResult:function()
-{var currentIndex=this._searchResultAfterSelectionIndex(this._textEditor.selection());var nextIndex=this._currentSearchResultIndex===-1?currentIndex:currentIndex+1;this.jumpToSearchResult(nextIndex);},jumpToPreviousSearchResult:function()
-{var currentIndex=this._searchResultAfterSelectionIndex(this._textEditor.selection());this.jumpToSearchResult(currentIndex-1);},showingFirstSearchResult:function()
-{return this._searchResults.length&&this._currentSearchResultIndex===0;},showingLastSearchResult:function()
-{return this._searchResults.length&&this._currentSearchResultIndex===(this._searchResults.length-1);},get currentSearchResultIndex()
-{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]);},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)
-text=text.replace(regex,replacement);else
-text=text.replace(regex,function(){return replacement;});this._isReplacing=true;this._textEditor.editRange(range,text);delete this._isReplacing;},_collectRegexMatches:function(regexObject)
-{var ranges=[];for(var i=0;i<this._textEditor.linesCount;++i){var line=this._textEditor.line(i);var offset=0;do{var match=regexObject.exec(line);if(match){if(match[0].length)
-ranges.push(new WebInspector.TextRange(i,offset+match.index,i,offset+match.index+match[0].length));offset+=match.index+1;line=line.substring(match.index+1);}}while(match&&line);}
-return ranges;},_addExistingMessagesToSource:function()
-{var length=this._messages.length;for(var i=0;i<length;++i)
-this.addMessageToSource(this._messages[i].line-1,this._messages[i]);},addMessageToSource:function(lineNumber,msg)
-{if(lineNumber>=this._textEditor.linesCount)
-lineNumber=this._textEditor.linesCount-1;if(lineNumber<0)
-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.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;}
-rowMessage.repeatCountElement.textContent=WebInspector.UIString(" (repeated %d times)",rowMessage.repeatCount);},removeMessageFromSource:function(lineNumber,msg)
-{if(lineNumber>=this._textEditor.linesCount)
-lineNumber=this._textEditor.linesCount-1;if(lineNumber<0)
-lineNumber=0;var rowMessages=this._rowMessages[lineNumber];for(var i=0;rowMessages&&i<rowMessages.length;++i){var rowMessage=rowMessages[i];if(rowMessage.consoleMessage!==msg)
-continue;var messageLineElement=rowMessage.element;var messageBubbleElement=messageLineElement.parentElement;messageBubbleElement.removeChild(messageLineElement);rowMessages.remove(rowMessage);if(!rowMessages.length)
-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)
-{},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)
-{this._updateSourcePosition(textRange);this.dispatchEventToListeners(WebInspector.SourceFrame.Events.SelectionChanged,textRange);WebInspector.notifications.dispatchEventToListeners(WebInspector.SourceFrame.Events.SelectionChanged,textRange);},_updateSourcePosition:function(textRange)
-{if(!textRange)
-return;if(textRange.isEmpty()){this._sourcePosition.setText(WebInspector.UIString("Line %d, Column %d",textRange.endLine+1,textRange.endColumn+1));return;}
-textRange=textRange.normalize();var selectedText=this._textEditor.copyRange(textRange);if(textRange.startLine===textRange.endLine)
-this._sourcePosition.setText(WebInspector.UIString("%d characters selected",selectedText.length));else
-this._sourcePosition.setText(WebInspector.UIString("%d lines, %d characters selected",textRange.endLine-textRange.startLine+1,selectedText.length));},scrollChanged:function(lineNumber)
-{this.dispatchEventToListeners(WebInspector.SourceFrame.Events.ScrollChanged,lineNumber);},_handleKeyDown:function(e)
-{var shortcutKey=WebInspector.KeyboardShortcut.makeKeyFromEvent(e);var handler=this._shortcuts[shortcutKey];if(handler&&handler())
-e.consume(true);},_commitEditing:function()
-{if(this._textEditor.readOnly())
-return false;var content=this._textEditor.text();this.commitEditing(content);return true;},__proto__:WebInspector.View.prototype}
-WebInspector.TextEditorDelegateForSourceFrame=function(sourceFrame)
-{this._sourceFrame=sourceFrame;}
-WebInspector.TextEditorDelegateForSourceFrame.prototype={onTextChanged:function(oldRange,newRange)
-{this._sourceFrame.onTextChanged(oldRange,newRange);},selectionChanged:function(textRange)
-{this._sourceFrame.selectionChanged(textRange);},scrollChanged:function(lineNumber)
-{this._sourceFrame.scrollChanged(lineNumber);},editorFocused:function()
-{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);},onJumpToPosition:function(from,to)
-{this._sourceFrame.onJumpToPosition(from,to);}}
-WebInspector.ResourceView=function(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;}
-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)
-{this._resource=resource;WebInspector.SourceFrame.call(this,resource);}
-WebInspector.ResourceSourceFrame.prototype={get resource()
-{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.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.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)
-return;var uniqueFontName="WebInspectorFontPreview"+(++WebInspector.FontView._fontId);this.fontStyleElement=document.createElement("style");this.fontStyleElement.textContent="@font-face { font-family: \""+uniqueFontName+"\"; src: url("+this.resource.url+"); }";document.head.appendChild(this.fontStyleElement);var fontPreview=document.createElement("div");for(var i=0;i<WebInspector.FontView._fontPreviewLines.length;++i){if(i>0)
-fontPreview.appendChild(document.createElement("br"));fontPreview.appendChild(document.createTextNode(WebInspector.FontView._fontPreviewLines[i]));}
-this.fontPreviewElement=fontPreview.cloneNode(true);this.fontPreviewElement.style.setProperty("font-family",uniqueFontName);this.fontPreviewElement.style.setProperty("visibility","hidden");this._dummyElement=fontPreview;this._dummyElement.style.visibility="hidden";this._dummyElement.style.zIndex="-1";this._dummyElement.style.display="inline";this._dummyElement.style.position="absolute";this._dummyElement.style.setProperty("font-family",uniqueFontName);this._dummyElement.style.setProperty("font-size",WebInspector.FontView._measureFontSize+"px");this.element.appendChild(this.fontPreviewElement);},wasShown:function()
-{this._createContentIfNeeded();this.updateFontPreviewSize();},onResize:function()
-{if(this._inResize)
-return;this._inResize=true;try{this.updateFontPreviewSize();}finally{delete this._inResize;}},_measureElement:function()
-{this.element.appendChild(this._dummyElement);var result={width:this._dummyElement.offsetWidth,height:this._dummyElement.offsetHeight};this.element.removeChild(this._dummyElement);return result;},updateFontPreviewSize:function()
-{if(!this.fontPreviewElement||!this.isShowing())
-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.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.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);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));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.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();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;},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().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);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,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._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")
-this._minimumSidebarHeight=minHeight;},setMainElementConstraints:function(minWidth,minHeight)
-{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 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)
-return from;if(fromInPercents&&sidebarSize<=to&&to<totalSize)
-return to;return-1;},wasShown:function()
-{this._updateLayout();},onResize:function()
-{if(this._muteOnResize)
-return;this._updateLayout();},_startResizerDragging:function(event)
-{if(!this._resizable)
-return false;this._saveSidebarSizeRecursively();this._dragOffset=(this._secondIsSidebar?this.totalSize()-this._sidebarSize:this._sidebarSize)-(this._isVertical?event.pageX:event.pageY);return true;},_resizerDragging:function(event)
-{var newOffset=(this._isVertical?event.pageX:event.pageY)+this._dragOffset;var newSize=(this._secondIsSidebar?this.totalSize()-newOffset:newOffset);this.setSidebarSize(newSize);event.preventDefault();},_endResizerDragging:function(event)
-{delete this._dragOffset;this._saveSidebarSizeRecursively();},_saveSidebarSizeRecursively:function()
-{function doSaveSidebarSizeRecursively()
-{if(this._saveSidebarSize)
-this._saveSidebarSize();this._callOnVisibleChildren(doSaveSidebarSizeRecursively);}
-this._saveSidebarSize();this._callOnVisibleChildren(doSaveSidebarSizeRecursively);},installResizer:function(resizerElement)
-{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()
-{var sizeSetting=this._sizeSetting();var size=sizeSetting?sizeSetting.get():0;if(!size)
-size=this._isVertical?this._savedSidebarWidth:this._savedSidebarHeight;if(this._useFraction)
-size*=this.totalSize();return size;},_saveSidebarSize:function()
-{var size=this._sidebarSize;if(size<0)
-return;if(this._useFraction)
-size/=this.totalSize();if(this._isVertical)
-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"}
-WebInspector.SidebarView.SidebarPosition={Start:"Start",End:"End"}
-WebInspector.SidebarView.prototype={setSidebarWidth:function(width)
-{this.setSidebarSize(width);},sidebarWidth:function()
-{return this.sidebarSize();},onResize:function()
-{WebInspector.SplitView.prototype.onResize.call(this);this.dispatchEventToListeners(WebInspector.SidebarView.EventTypes.Resized,this.sidebarWidth());},hideMainElement:function()
-{if(this.isSidebarSecond())
-this.showOnlySecond();else
-this.showOnlyFirst();},showMainElement:function()
-{this.showBoth();},hideSidebarElement:function()
-{if(this.isSidebarSecond())
-this.showOnlyFirst();else
-this.showOnlySecond();},showSidebarElement:function()
-{this.showBoth();},elementsToRestoreScrollPositionsFor:function()
-{return[this.mainElement(),this.sidebarElement()];},__proto__:WebInspector.SplitView.prototype}
-WebInspector.ConsolePanel=function()
-{WebInspector.Panel.call(this,"console");this._view=WebInspector.consoleView;}
-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",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;}
-EventSinkImpl.prototype={addListener:function(callback)
-{if(typeof callback!=="function")
-throw"addListener: callback is not a function";if(this._listeners.length===0)
-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(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)
-this._customDispatch.call(this,request);else
-this._fire.apply(this,request.arguments);}}
-function InspectorExtensionAPI()
-{this.audits=new Audits();this.inspectedWindow=new InspectedWindow();this.panels=new Panels();this.network=new Network();defineDeprecatedProperty(this,"webInspector","resources","network");this.timeline=new Timeline();this.console=new ConsoleAPI();}
-function ConsoleAPI()
-{this.onMessageAdded=new EventSink(events.ConsoleMessageAdded);}
-ConsoleAPI.prototype={getMessages:function(callback)
-{extensionServer.sendRequest({command:commands.GetConsoleMessages},callback);},addMessage:function(severity,text,url,line)
-{extensionServer.sendRequest({command:commands.AddConsoleMessage,severity:severity,text:text,url:url,line:line});},get Severity()
-{return apiPrivate.console.Severity;}}
-function Network()
-{function dispatchRequestEvent(message)
-{var request=message.arguments[1];request.__proto__=new Request(message.arguments[0]);this._fire(request);}
-this.onRequestFinished=new EventSink(events.NetworkRequestFinished,dispatchRequestEvent);defineDeprecatedProperty(this,"network","onFinished","onRequestFinished");this.onNavigated=new EventSink(events.InspectedURLChanged);}
-Network.prototype={getHAR:function(callback)
-{function callbackWrapper(result)
-{var entries=(result&&result.entries)||[];for(var i=0;i<entries.length;++i){entries[i].__proto__=new Request(entries[i]._requestId);delete entries[i]._requestId;}
-callback(result);}
-return extensionServer.sendRequest({command:commands.GetHAR},callback&&callbackWrapper);},addRequestHeaders:function(headers)
-{return extensionServer.sendRequest({command:commands.AddRequestHeaders,headers:headers,extensionId:window.location.hostname});}}
-function RequestImpl(id)
-{this._id=id;}
-RequestImpl.prototype={getContent:function(callback)
-{function callbackWrapper(response)
-{callback(response.content,response.encoding);}
-extensionServer.sendRequest({command:commands.GetRequestContent,id:this._id},callback&&callbackWrapper);}}
-function Panels()
-{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.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);function callbackWrapper(message)
-{userAction=true;try{callback.call(null,new Resource(message.resource),message.lineNumber);}finally{userAction=false;}}
-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;}}
-function ExtensionViewImpl(id)
-{this._id=id;function dispatchShowEvent(message)
-{var frameIndex=message.arguments[0];if(typeof frameIndex==="number")
-this._fire(window.parent.frames[frameIndex]);else
-this._fire();}
-this.onShown=new EventSink(events.ViewShown+id,dispatchShowEvent);this.onHidden=new EventSink(events.ViewHidden+id);}
-function PanelWithSidebarImpl(hostPanelName)
-{this._hostPanelName=hostPanelName;this.onSelectionChanged=new EventSink(events.PanelObjectSelected+hostPanelName);}
-PanelWithSidebarImpl.prototype={createSidebarPane:function(title,callback)
-{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 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)
-{var id="button-"+extensionServer.nextObjectId();var request={command:commands.CreateStatusBarButton,panel:this._id,id:id,icon:iconPath,tooltip:tooltipText,disabled:!!disabled};extensionServer.sendRequest(request);return new Button(id);},show:function()
-{if(!userAction)
-return;var request={command:commands.ShowPanel,id:this._id};extensionServer.sendRequest(request);},__proto__:ExtensionViewImpl.prototype}
-function ExtensionSidebarPaneImpl(id)
-{ExtensionViewImpl.call(this,id);}
-ExtensionSidebarPaneImpl.prototype={setHeight:function(height)
-{extensionServer.sendRequest({command:commands.SetSidebarHeight,id:this._id,height:height});},setExpression:function(expression,rootTitle,evaluateOptions)
-{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});},__proto__:ExtensionViewImpl.prototype}
-function ButtonImpl(id)
-{this._id=id;this.onClicked=new EventSink(events.ButtonClicked+id);}
-ButtonImpl.prototype={update:function(iconPath,tooltipText,disabled)
-{var request={command:commands.UpdateButton,id:this._id,icon:iconPath,tooltip:tooltipText,disabled:!!disabled};extensionServer.sendRequest(request);}};function Audits()
-{}
-Audits.prototype={addCategory:function(displayName,resultCount)
-{var id="extension-audit-category-"+extensionServer.nextObjectId();if(typeof resultCount!=="undefined")
-console.warn("Passing resultCount to audits.addCategory() is deprecated. Use AuditResult.updateProgress() instead.");extensionServer.sendRequest({command:commands.AddAuditCategory,id:id,displayName:displayName,resultCount:resultCount});return new AuditCategory(id);}}
-function AuditCategoryImpl(id)
-{function dispatchAuditEvent(request)
-{var auditResult=new AuditResult(request.arguments[0]);try{this._fire(auditResult);}catch(e){console.error("Uncaught exception in extension audit event handler: "+e);auditResult.done();}}
-this._id=id;this.onAuditStarted=new EventSink(events.AuditStarted+id,dispatchAuditEvent);}
-function AuditResultImpl(id)
-{this._id=id;this.createURL=this._nodeFactory.bind(null,"url");this.createSnippet=this._nodeFactory.bind(null,"snippet");this.createText=this._nodeFactory.bind(null,"text");this.createObject=this._nodeFactory.bind(null,"object");this.createNode=this._nodeFactory.bind(null,"node");}
-AuditResultImpl.prototype={addResult:function(displayName,description,severity,details)
-{if(details&&!(details instanceof AuditResultNode))
-details=new AuditResultNode(details instanceof Array?details:[details]);var request={command:commands.AddAuditResult,resultId:this._id,displayName:displayName,description:description,severity:severity,details:details};extensionServer.sendRequest(request);},createResult:function()
-{return new AuditResultNode(Array.prototype.slice.call(arguments));},updateProgress:function(worked,totalWork)
-{extensionServer.sendRequest({command:commands.UpdateAuditProgress,resultId:this._id,progress:worked/totalWork});},done:function()
-{extensionServer.sendRequest({command:commands.StopAuditCategoryRun,resultId:this._id});},get Severity()
-{return apiPrivate.audits.Severity;},createResourceLink:function(url,lineNumber)
-{return{type:"resourceLink",arguments:[url,lineNumber&&lineNumber-1]};},_nodeFactory:function(type)
-{return{type:type,arguments:Array.prototype.slice.call(arguments,1)};}}
-function AuditResultNode(contents)
-{this.contents=contents;this.children=[];this.expanded=false;}
-AuditResultNode.prototype={addChild:function()
-{var node=new AuditResultNode(Array.prototype.slice.call(arguments));this.children.push(node);return node;}};function InspectedWindow()
-{function dispatchResourceEvent(message)
-{this._fire(new Resource(message.arguments[0]));}
-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);}
-InspectedWindow.prototype={reload:function(optionsOrUserAgent)
-{var options=null;if(typeof optionsOrUserAgent==="object")
-options=optionsOrUserAgent;else if(typeof optionsOrUserAgent==="string"){options={userAgent:optionsOrUserAgent};console.warn("Passing userAgent as string parameter to inspectedWindow.reload() is deprecated. "+"Use inspectedWindow.reload({ userAgent: value}) instead.");}
-return extensionServer.sendRequest({command:commands.Reload,options:options});},eval:function(expression,evaluateOptions)
-{var callback=extractCallbackArgument(arguments);function callbackWrapper(result)
-{if(result.isError||result.isException)
-callback(undefined,result);else
-callback(result.value);}
-var request={command:commands.EvaluateOnInspectedPage,expression:expression};if(typeof evaluateOptions==="object")
-request.evaluateOptions=evaluateOptions;return extensionServer.sendRequest(request,callback&&callbackWrapper);},getResources:function(callback)
-{function wrapResource(resourceData)
-{return new Resource(resourceData);}
-function callbackWrapper(resources)
-{callback(resources.map(wrapResource));}
-return extensionServer.sendRequest({command:commands.GetPageResources},callback&&callbackWrapper);}}
-function ResourceImpl(resourceData)
-{this._url=resourceData.url
-this._type=resourceData.type;}
-ResourceImpl.prototype={get url()
-{return this._url;},get type()
-{return this._type;},getContent:function(callback)
-{function callbackWrapper(response)
-{callback(response.content,response.encoding);}
-return extensionServer.sendRequest({command:commands.GetResourceContent,url:this._url},callback&&callbackWrapper);},setContent:function(content,commit,callback)
-{return extensionServer.sendRequest({command:commands.SetResourceContent,url:this._url,content:content,commit:commit},callback);}}
-function TimelineImpl()
-{this.onEventRecorded=new EventSink(events.TimelineEventRecorded);}
-function forwardKeyboardEvent(event)
-{const Esc="U+001B";if(!event.ctrlKey&&!event.altKey&&!event.metaKey&&!/^F\d+$/.test(event.keyIdentifier)&&event.keyIdentifier!==Esc)
-return;var request={command:commands.ForwardKeyboardEvent,eventType:event.type,ctrlKey:event.ctrlKey,altKey:event.altKey,metaKey:event.metaKey,keyIdentifier:event.keyIdentifier,location:event.location};extensionServer.sendRequest(request);}
-document.addEventListener("keydown",forwardKeyboardEvent,false);document.addEventListener("keypress",forwardKeyboardEvent,false);function ExtensionServerClient()
-{this._callbacks={};this._handlers={};this._lastRequestId=0;this._lastObjectId=0;this.registerHandler("callback",this._onCallback.bind(this));var channel=new MessageChannel();this._port=channel.port1;this._port.addEventListener("message",this._onMessage.bind(this),false);this._port.start();window.parent.postMessage("registerExtension",[channel.port2],"*");}
-ExtensionServerClient.prototype={sendRequest:function(message,callback)
-{if(typeof callback==="function")
-message.requestId=this._registerCallback(callback);return this._port.postMessage(message);},hasHandler:function(command)
-{return!!this._handlers[command];},registerHandler:function(command,handler)
-{this._handlers[command]=handler;},unregisterHandler:function(command)
-{delete this._handlers[command];},nextObjectId:function()
-{return injectedScriptId+"_"+ ++this._lastObjectId;},_registerCallback:function(callback)
-{var id=++this._lastRequestId;this._callbacks[id]=callback;return id;},_onCallback:function(request)
-{if(request.requestId in this._callbacks){var callback=this._callbacks[request.requestId];delete this._callbacks[request.requestId];callback(request.result);}},_onMessage:function(event)
-{var request=event.data;var handler=this._handlers[request.command];if(handler)
-handler.call(this,request);}}
-function populateInterfaceClass(interface,implementation)
-{for(var member in implementation){if(member.charAt(0)==="_")
-continue;var descriptor=null;for(var owner=implementation;owner&&!descriptor;owner=owner.__proto__)
-descriptor=Object.getOwnPropertyDescriptor(owner,member);if(!descriptor)
-continue;if(typeof descriptor.value==="function")
-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);}}
-if(!extensionServer)
-extensionServer=new ExtensionServerClient();return new InspectorExtensionAPI();}
-function buildExtensionAPIInjectedScript(extensionInfo)
-{return"(function(injectedScriptId){ "+"var extensionServer;"+
-defineCommonExtensionSymbols.toString()+";"+
-injectedExtensionAPI.toString()+";"+
-buildPlatformExtensionAPI(extensionInfo)+";"+"platformExtensionAPI(injectedExtensionAPI(injectedScriptId));"+"return {};"+"})";}
-WebInspector.ExtensionAuditCategory=function(extensionOrigin,id,displayName,ruleCount)
-{this._extensionOrigin=extensionOrigin;this._id=id;this._displayName=displayName;this._ruleCount=ruleCount;}
-WebInspector.ExtensionAuditCategory.prototype={get id()
-{return this._id;},get displayName()
-{return this._displayName;},run:function(requests,ruleResultCallback,categoryDoneCallback,progress)
-{var results=new WebInspector.ExtensionAuditCategoryResults(this,ruleResultCallback,categoryDoneCallback,progress);WebInspector.extensionServer.startAuditRun(this,results);}}
-WebInspector.ExtensionAuditCategoryResults=function(category,ruleResultCallback,categoryDoneCallback,progress)
-{this._category=category;this._ruleResultCallback=ruleResultCallback;this._categoryDoneCallback=categoryDoneCallback;this._progress=progress;this._progress.setTotalWork(1);this._expectedResults=category._ruleCount;this._actualResults=0;this.id=category.id+"-"+ ++WebInspector.ExtensionAuditCategoryResults._lastId;}
-WebInspector.ExtensionAuditCategoryResults.prototype={done:function()
-{WebInspector.extensionServer.stopAuditRun(this);this._progress.done();this._categoryDoneCallback();},addResult:function(displayName,description,severity,details)
-{var result=new WebInspector.AuditRuleResult(displayName);result.addChild(description);result.severity=severity;if(details)
-this._addNode(result,details);this._addResult(result);},_addNode:function(parent,node)
-{var contents=WebInspector.auditFormatters.partiallyApply(WebInspector.ExtensionAuditFormatters,this,node.contents);var addedNode=parent.addChild(contents,node.expanded);if(node.children){for(var i=0;i<node.children.length;++i)
-this._addNode(addedNode,node.children[i]);}},_addResult:function(result)
-{this._ruleResultCallback(result);++this._actualResults;if(typeof this._expectedResults==="number"){this._progress.setWorked(this._actualResults/this._expectedResults);if(this._actualResults===this._expectedResults)
-this.done();}},updateProgress:function(progress)
-{this._progress.setWorked(progress);},evaluate:function(expression,evaluateOptions,callback)
-{function onEvaluate(error,result,wasThrown)
-{if(wasThrown)
-return;var object=WebInspector.RemoteObject.fromPayload(result);callback(object);}
-WebInspector.extensionServer.evaluate(expression,false,false,evaluateOptions,this._category._extensionOrigin,onEvaluate);}}
-WebInspector.ExtensionAuditFormatters={object:function(expression,title,evaluateOptions)
-{var parentElement=document.createElement("div");function onEvaluate(remoteObject)
-{var section=new WebInspector.ObjectPropertiesSection(remoteObject,title);section.expanded=true;section.editable=false;parentElement.appendChild(section.element);}
-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.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.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)
-{this._postNotification(WebInspector.extensionAPI.Events.ViewShown+identifier,frameIndex);},notifyViewHidden:function(identifier)
-{this._postNotification(WebInspector.extensionAPI.Events.ViewHidden+identifier);},notifyButtonClicked:function(identifier)
-{this._postNotification(WebInspector.extensionAPI.Events.ButtonClicked+identifier);},_inspectedURLChanged:function(event)
-{this._requests={};var url=event.data;this._postNotification(WebInspector.extensionAPI.Events.InspectedURLChanged,url);},startAuditRun:function(category,auditRun)
-{this._clientObjects[auditRun.id]=auditRun;this._postNotification("audit-started-"+category.id,auditRun.id);},stopAuditRun:function(auditRun)
-{delete this._clientObjects[auditRun.id];},hasSubscribers:function(type)
-{return!!this._subscribers[type];},_postNotification:function(type,vararg)
-{var subscribers=this._subscribers[type];if(!subscribers)
-return;var message={command:"notify-"+type,arguments:Array.prototype.slice.call(arguments,1)};for(var i=0;i<subscribers.length;++i)
-subscribers[i].postMessage(message);},_onSubscribe:function(message,port)
-{var subscribers=this._subscribers[message.type];if(subscribers)
-subscribers.push(port);else{this._subscribers[message.type]=[port];if(this._subscriptionStartHandlers[message.type])
-this._subscriptionStartHandlers[message.type]();}},_onUnsubscribe:function(message,port)
-{var subscribers=this._subscribers[message.type];if(!subscribers)
-return;subscribers.remove(port);if(!subscribers.length){delete this._subscribers[message.type];if(this._subscriptionStopHandlers[message.type])
-this._subscriptionStopHandlers[message.type]();}},_onAddRequestHeaders:function(message)
-{var id=message.extensionId;if(typeof id!=="string")
-return this._status.E_BADARGTYPE("extensionId",typeof id,"string");var extensionHeaders=this._extraHeaders[id];if(!extensionHeaders){extensionHeaders={};this._extraHeaders[id]=extensionHeaders;}
-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);},_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.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)
-{var button=this._clientObjects[message.id];if(!button||!(button instanceof WebInspector.ExtensionButton))
-return this._status.E_NOTFOUND(message.id);button.update(this._expandResourcePath(port._extensionOrigin,message.icon),message.tooltip,message.disabled);return this._status.OK();},_onCreateSidebarPane:function(message)
-{var panel=WebInspector.panel(message.panel);if(!panel)
-return this._status.E_NOTFOUND(message.panel);if(!panel.addExtensionSidebarPane)
-return this._status.E_NOTSUPPORTED();var id=message.id;var sidebar=new WebInspector.ExtensionSidebarPane(message.title,id);this._clientObjects[id]=sidebar;panel.addExtensionSidebarPane(id,sidebar);return this._status.OK();},_onSetSidebarHeight:function(message)
-{var sidebar=this._clientObjects[message.id];if(!sidebar)
-return this._status.E_NOTFOUND(message.id);sidebar.setHeight(message.height);return this._status.OK();},_onSetSidebarContent:function(message,port)
-{var sidebar=this._clientObjects[message.id];if(!sidebar)
-return this._status.E_NOTFOUND(message.id);function callback(error)
-{var result=error?this._status.E_FAILED(error):this._status.OK();this._dispatchCallback(message.requestId,port,result);}
-if(message.evaluateOnPage)
-return sidebar.setExpression(message.expression,message.rootTitle,message.evaluateOptions,port._extensionOrigin,callback.bind(this));sidebar.setObject(message.expression,message.rootTitle,callback.bind(this));},_onSetSidebarPage:function(message,port)
-{var sidebar=this._clientObjects[message.id];if(!sidebar)
-return this._status.E_NOTFOUND(message.id);sidebar.setPage(this._expandResourcePath(port._extensionOrigin,message.page));},_onOpenResource:function(message)
-{var a=document.createElement("a");a.href=message.url;a.lineNumber=message.lineNumber;return WebInspector.showAnchorLocation(a)?this._status.OK():this._status.E_NOTFOUND(message.url);},_onSetOpenResourceHandler:function(message,port)
-{var name=this._registeredExtensions[port._extensionOrigin].name||("Extension "+port._extensionOrigin);if(message.handlerPresent)
-WebInspector.openAnchorLocationRegistry.registerHandler(name,this._handleOpenURL.bind(this,port));else
-WebInspector.openAnchorLocationRegistry.unregisterHandler(name);},_handleOpenURL:function(port,details)
-{var url=(details.url);var contentProvider=WebInspector.workspace.uiSourceCodeForOriginURL(url)||WebInspector.resourceForURL(url);if(!contentProvider)
-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;WebInspector.resourceTreeModel.reloadPage(!!options.ignoreCache,injectedScript,preprocessingScript);return this._status.OK();},_onEvaluateOnInspectedPage:function(message,port)
-{function callback(error,resultPayload,wasThrown)
-{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);}
-return this.evaluate(message.expression,true,true,message.evaluateOptions,port._extensionOrigin,callback.bind(this));},_onGetConsoleMessages:function()
-{return WebInspector.console.messages.map(this._makeConsoleMessage);},_onAddConsoleMessage:function(message)
-{function convertSeverity(level)
-{switch(level){case WebInspector.extensionAPI.console.Severity.Log:return WebInspector.ConsoleMessage.MessageLevel.Log;case WebInspector.extensionAPI.console.Severity.Warning:return WebInspector.ConsoleMessage.MessageLevel.Warning;case WebInspector.extensionAPI.console.Severity.Error:return WebInspector.ConsoleMessage.MessageLevel.Error;case WebInspector.extensionAPI.console.Severity.Debug:return WebInspector.ConsoleMessage.MessageLevel.Debug;}}
-var level=convertSeverity(message.severity);if(!level)
-return this._status.E_BADARG("message.severity",message.severity);var consoleMessage=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.JS,level,message.text,WebInspector.ConsoleMessage.MessageType.Log,message.url,message.line);WebInspector.console.addMessage(consoleMessage);},_makeConsoleMessage:function(message)
-{function convertLevel(level)
-{if(!level)
-return;switch(level){case WebInspector.ConsoleMessage.MessageLevel.Log:return WebInspector.extensionAPI.console.Severity.Log;case WebInspector.ConsoleMessage.MessageLevel.Warning:return WebInspector.extensionAPI.console.Severity.Warning;case WebInspector.ConsoleMessage.MessageLevel.Error:return WebInspector.extensionAPI.console.Severity.Error;case WebInspector.ConsoleMessage.MessageLevel.Debug:return WebInspector.extensionAPI.console.Severity.Debug;default:return WebInspector.extensionAPI.console.Severity.Log;}}
-var result={severity:convertLevel(message.level),text:message.text,};if(message.url)
-result.url=message.url;if(message.line)
-result.line=message.line;return result;},_onGetHAR:function()
-{var requests=WebInspector.networkLog.requests;var harLog=(new WebInspector.HARLog(requests)).build();for(var i=0;i<harLog.entries.length;++i)
-harLog.entries[i]._requestId=this._requestId(requests[i]);return harLog;},_makeResource:function(contentProvider)
-{return{url:contentProvider.contentURL(),type:contentProvider.contentType().name()};},_onGetPageResources:function()
-{var resources={};function pushResourceData(contentProvider)
-{if(!resources[contentProvider.contentURL()])
-resources[contentProvider.contentURL()]=this._makeResource(contentProvider);}
-var uiSourceCodes=WebInspector.workspace.uiSourceCodesForProjectType(WebInspector.projectTypes.Network);uiSourceCodes.forEach(pushResourceData.bind(this));WebInspector.resourceTreeModel.forAllResources(pushResourceData.bind(this));return Object.values(resources);},_getResourceContent:function(contentProvider,message,port)
-{function onContentAvailable(content)
-{var response={encoding:(content===null)||contentProvider.contentType().isTextType()?"":"base64",content:content};this._dispatchCallback(message.requestId,port,response);}
-contentProvider.requestContent(onContentAvailable.bind(this));},_onGetRequestContent:function(message,port)
-{var request=this._requestById(message.id);if(!request)
-return this._status.E_NOTFOUND(message.id);this._getResourceContent(request,message,port);},_onGetResourceContent:function(message,port)
-{var url=(message.url);var contentProvider=WebInspector.workspace.uiSourceCodeForOriginURL(url)||WebInspector.resourceForURL(url);if(!contentProvider)
-return this._status.E_NOTFOUND(url);this._getResourceContent(contentProvider,message,port);},_onSetResourceContent:function(message,port)
-{function callbackWrapper(error)
-{var response=error?this._status.E_FAILED(error):this._status.OK();this._dispatchCallback(message.requestId,port,response);}
-var url=(message.url);var uiSourceCode=WebInspector.workspace.uiSourceCodeForOriginURL(url);if(!uiSourceCode){var resource=WebInspector.resourceTreeModel.resourceForURL(url);if(!resource)
-return this._status.E_NOTFOUND(url);return this._status.E_NOTSUPPORTED("Resource is not editable")}
-uiSourceCode.setWorkingCopy(message.content);if(message.commit)
-uiSourceCode.commitWorkingCopy(callbackWrapper.bind(this));else
-callbackWrapper.call(this,null);},_requestId:function(request)
-{if(!request._extensionRequestId){request._extensionRequestId=++this._lastRequestId;this._requests[request._extensionRequestId]=request;}
-return request._extensionRequestId;},_requestById:function(id)
-{return this._requests[id];},_onAddAuditCategory:function(message,port)
-{var category=new WebInspector.ExtensionAuditCategory(port._extensionOrigin,message.id,message.displayName,message.resultCount);if(WebInspector.panel("audits").getCategory(category.id))
-return this._status.E_EXISTS(category.id);this._clientObjects[message.id]=category;WebInspector.panel("audits").addCategory(category);},_onAddAuditResult:function(message)
-{var auditResult=this._clientObjects[message.resultId];if(!auditResult)
-return this._status.E_NOTFOUND(message.resultId);try{auditResult.addResult(message.displayName,message.description,message.severity,message.details);}catch(e){return e;}
-return this._status.OK();},_onUpdateAuditProgress:function(message)
-{var auditResult=this._clientObjects[message.resultId];if(!auditResult)
-return this._status.E_NOTFOUND(message.resultId);auditResult.updateProgress(Math.min(Math.max(0,message.progress),1));},_onStopAuditCategoryRun:function(message)
-{var auditRun=this._clientObjects[message.resultId];if(!auditRun)
-return this._status.E_NOTFOUND(message.resultId);auditRun.done();},_onForwardKeyboardEvent:function(message)
-{const Esc="U+001B";if(!message.ctrlKey&&!message.altKey&&!message.metaKey&&!/^F\d+$/.test(message.keyIdentifier)&&message.keyIdentifier!==Esc)
-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._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);}
-this._registerSubscriptionHandler(WebInspector.extensionAPI.Events.TimelineEventRecorded,onTimelineSubscriptionStarted.bind(this),onTimelineSubscriptionStopped.bind(this));WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,this._inspectedURLChanged,this);this._initDone=true;if(this._pendingExtensions){this._pendingExtensions.forEach(this._innerAddExtension,this);delete this._pendingExtensions;}
-InspectorExtensionRegistry.getExtensionsAsync();},_makeSourceSelection:function(textRange)
-{var sourcesPanel=WebInspector.inspectorView.panel("sources");var selection={startLine:textRange.startLine,startColumn:textRange.startColumn,endLine:textRange.endLine,endColumn:textRange.endColumn,url:sourcesPanel.tabbedEditorContainer.currentFile().uri()};return selection;},_notifySourceFrameSelectionChanged:function(event)
-{this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelected+"sources",this._makeSourceSelection(event.data));},_notifyConsoleMessageAdded:function(event)
-{this._postNotification(WebInspector.extensionAPI.Events.ConsoleMessageAdded,this._makeConsoleMessage(event.data));},_notifyResourceAdded:function(event)
-{var uiSourceCode=(event.data);this._postNotification(WebInspector.extensionAPI.Events.ResourceAdded,this._makeResource(uiSourceCode));},_notifyUISourceCodeContentCommitted:function(event)
-{var uiSourceCode=(event.data.uiSourceCode);var content=(event.data.content);this._postNotification(WebInspector.extensionAPI.Events.ResourceContentCommitted,this._makeResource(uiSourceCode),content);},_notifyRequestFinished:function(event)
-{var request=(event.data);this._postNotification(WebInspector.extensionAPI.Events.NetworkRequestFinished,this._requestId(request),(new WebInspector.HAREntry(request)).build());},_notifyElementsSelectionChanged:function()
-{this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelected+"elements");},_notifyTimelineEventRecorded:function(event)
-{this._postNotification(WebInspector.extensionAPI.Events.TimelineEventRecorded,event.data);},_addExtensions:function(extensions)
-{extensions.forEach(this._addExtension,this);},_addExtension:function(extensionInfo)
-{if(this._initDone){this._innerAddExtension(extensionInfo);return;}
-if(this._pendingExtensions)
-this._pendingExtensions.push(extensionInfo);else
-this._pendingExtensions=[extensionInfo];},_innerAddExtension:function(extensionInfo)
-{const urlOriginRegExp=new RegExp("([^:]+:\/\/[^/]*)\/");var startPage=extensionInfo.startPage;var name=extensionInfo.name;try{var originMatch=urlOriginRegExp.exec(startPage);if(!originMatch){console.error("Skipping extension with invalid URL: "+startPage);return false;}
-var extensionOrigin=originMatch[1];if(!this._registeredExtensions[extensionOrigin]){InspectorFrontendHost.setInjectedScriptForOrigin(extensionOrigin,buildExtensionAPIInjectedScript(extensionInfo));this._registeredExtensions[extensionOrigin]={name:name};}
-var iframe=document.createElement("iframe");iframe.src=startPage;iframe.style.display="none";document.body.appendChild(iframe);}catch(e){console.error("Failed to initialize extension "+startPage+":"+e);return false;}
-return true;},_onWindowMessage:function(event)
-{if(event.data==="registerExtension")
-this._registerExtension(event.origin,event.ports[0]);},_registerExtension:function(origin,port)
-{if(!this._registeredExtensions.hasOwnProperty(origin)){if(origin!==window.location.origin)
-console.error("Ignoring unauthorized client request from "+origin);return;}
-port._extensionOrigin=origin;port.addEventListener("message",this._onmessage.bind(this),false);port.start();},_onmessage:function(event)
-{var message=event.data;var result;if(message.command in this._handlers)
-result=this._handlers[message.command](message,event.target);else
-result=this._status.E_NOTSUPPORTED(message.command);if(result&&message.requestId)
-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));},_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]===".")
-continue;if(source[i]==="")
-continue;if(source[i]==="..")
-result.pop();else
-result.push(source[i]);}
-return"/"+result.join("/");},evaluate:function(expression,exposeCommandLineAPI,returnByValue,options,securityOrigin,callback)
-{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;}
-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 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.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,});}
-WebInspector.ExtensionView=function(id,src,className)
-{WebInspector.View.call(this);this.element.className="extension-view";this._id=id;this._iframe=document.createElement("iframe");this._iframe.addEventListener("load",this._onLoad.bind(this),false);this._iframe.src=src;this._iframe.className=className;this.setDefaultFocusedElement(this._iframe);this.element.appendChild(this._iframe);}
-WebInspector.ExtensionView.prototype={wasShown:function()
-{if(typeof this._frameIndex==="number")
-WebInspector.extensionServer.notifyViewShown(this._id,this._frameIndex);},willHide:function()
-{if(typeof this._frameIndex==="number")
-WebInspector.extensionServer.notifyViewHidden(this._id);},_onLoad:function()
-{var frames=(window.frames);this._frameIndex=Array.prototype.indexOf.call(frames,this._iframe.contentWindow);if(this.isShowing())
-WebInspector.extensionServer.notifyViewShown(this._id,this._frameIndex);},__proto__:WebInspector.View.prototype}
-WebInspector.ExtensionNotifierView=function(id)
-{WebInspector.View.call(this);this._id=id;}
-WebInspector.ExtensionNotifierView.prototype={wasShown:function()
-{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.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.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);},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)
-{if(typeof iconURL==="string")
-this.element.style.backgroundImage="url("+iconURL+")";if(typeof tooltip==="string")
-this.element.title=tooltip;if(typeof disabled==="boolean")
-this.element.disabled=disabled;},_onClicked:function()
-{WebInspector.extensionServer.notifyButtonClicked(this._id);}}
-WebInspector.ExtensionSidebarPane=function(title,id)
-{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();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)
-this.setHeight("150px");},setHeight:function(height)
-{this.bodyElement.style.height=height;},_onEvaluate:function(title,callback,error,result,wasThrown)
-{if(error)
-callback(error.toString());else
-this._setObject(WebInspector.RemoteObject.fromPayload(result),title,callback);},_createObjectPropertiesView:function()
-{if(this._objectPropertiesView)
-return;if(this._extensionView){this._extensionView.detach(true);delete this._extensionView;}
-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.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()
-{this.element.className="empty-view";this.element.textContent=this._text;},set text(text)
-{this._text=text;if(this.isShowing())
-this.element.textContent=this._text;},__proto__:WebInspector.View.prototype}
-WebInspector.Formatter=function()
-{}
-WebInspector.Formatter.createFormatter=function(contentType)
-{if(contentType===WebInspector.resourceTypes.Script||contentType===WebInspector.resourceTypes.Document||contentType===WebInspector.resourceTypes.Stylesheet)
-return new WebInspector.ScriptFormatter();return new WebInspector.IdentityFormatter();}
-WebInspector.Formatter.locationToPosition=function(lineEndings,lineNumber,columnNumber)
-{var position=lineNumber?lineEndings[lineNumber-1]+1:0;return position+columnNumber;}
-WebInspector.Formatter.positionToLocation=function(lineEndings,position)
-{var lineNumber=lineEndings.upperBound(position-1);if(!lineNumber)
-var columnNumber=position;else
-var columnNumber=position-lineEndings[lineNumber-1]-1;return[lineNumber,columnNumber];}
-WebInspector.Formatter.prototype={formatContent:function(mimeType,content,callback)
-{}}
-WebInspector.ScriptFormatter=function()
-{this._tasks=[];}
-WebInspector.ScriptFormatter.prototype={formatContent:function(mimeType,content,callback)
-{content=content.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,'');const method="format";var parameters={mimeType:mimeType,content:content,indentString:WebInspector.settings.textEditorIndent.get()};this._tasks.push({data:parameters,callback:callback});this._worker.postMessage({method:method,params:parameters});},_didFormatContent:function(event)
-{var task=this._tasks.shift();var originalContent=task.data.content;var formattedContent=event.data.content;var mapping=event.data["mapping"];var sourceMapping=new WebInspector.FormatterSourceMappingImpl(originalContent.lineEndings(),formattedContent.lineEndings(),mapping);task.callback(formattedContent,sourceMapping);},get _worker()
-{if(!this._cachedWorker){this._cachedWorker=new Worker("ScriptFormatterWorker.js");this._cachedWorker.onmessage=(this._didFormatContent.bind(this));}
-return this._cachedWorker;}}
-WebInspector.IdentityFormatter=function()
-{this._tasks=[];}
-WebInspector.IdentityFormatter.prototype={formatContent:function(mimeType,content,callback)
-{callback(content,new WebInspector.IdentityFormatterSourceMapping());}}
-WebInspector.FormatterMappingPayload=function()
-{this.original=[];this.formatted=[];}
-WebInspector.FormatterSourceMapping=function()
-{}
-WebInspector.FormatterSourceMapping.prototype={originalToFormatted:function(lineNumber,columnNumber){},formattedToOriginal:function(lineNumber,columnNumber){}}
-WebInspector.IdentityFormatterSourceMapping=function()
-{}
-WebInspector.IdentityFormatterSourceMapping.prototype={originalToFormatted:function(lineNumber,columnNumber)
-{return[lineNumber,columnNumber||0];},formattedToOriginal:function(lineNumber,columnNumber)
-{return[lineNumber,columnNumber||0];}}
-WebInspector.FormatterSourceMappingImpl=function(originalLineEndings,formattedLineEndings,mapping)
-{this._originalLineEndings=originalLineEndings;this._formattedLineEndings=formattedLineEndings;this._mapping=mapping;}
-WebInspector.FormatterSourceMappingImpl.prototype={originalToFormatted:function(lineNumber,columnNumber)
-{var originalPosition=WebInspector.Formatter.locationToPosition(this._originalLineEndings,lineNumber,columnNumber||0);var formattedPosition=this._convertPosition(this._mapping.original,this._mapping.formatted,originalPosition||0);return WebInspector.Formatter.positionToLocation(this._formattedLineEndings,formattedPosition);},formattedToOriginal:function(lineNumber,columnNumber)
-{var formattedPosition=WebInspector.Formatter.locationToPosition(this._formattedLineEndings,lineNumber,columnNumber||0);var originalPosition=this._convertPosition(this._mapping.formatted,this._mapping.original,formattedPosition);return WebInspector.Formatter.positionToLocation(this._originalLineEndings,originalPosition||0);},_convertPosition:function(positions1,positions2,position)
-{var index=positions1.upperBound(position)-1;var convertedPosition=positions2[index]+position-positions1[index];if(index<positions2.length-1&&convertedPosition>positions2[index+1])
-convertedPosition=positions2[index+1];return convertedPosition;}}
-WebInspector.DOMSyntaxHighlighter=function(mimeType,stripExtraWhitespace)
-{loadScript("CodeMirrorTextEditor.js");this._mimeType=mimeType;this._stripExtraWhitespace=stripExtraWhitespace;}
-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();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)
-{return new WebInspector.TextRange(line,column,line,column);}
-WebInspector.TextRange.fromObject=function(serializedTextRange)
-{return new WebInspector.TextRange(serializedTextRange.startLine,serializedTextRange.startColumn,serializedTextRange.endLine,serializedTextRange.endColumn);}
-WebInspector.TextRange.prototype={isEmpty:function()
-{return this.startLine===this.endLine&&this.startColumn===this.endColumn;},immediatelyPrecedes:function(range)
-{if(!range)
-return false;return this.endLine===range.startLine&&this.endColumn===range.startColumn;},immediatelyFollows:function(range)
-{if(!range)
-return false;return range.immediatelyPrecedes(this);},get linesCount()
-{return this.endLine-this.startLine;},collapseToEnd:function()
-{return new WebInspector.TextRange(this.endLine,this.endColumn,this.endLine,this.endColumn);},normalize:function()
-{if(this.startLine>this.endLine||(this.startLine===this.endLine&&this.startColumn>this.endColumn))
-return new WebInspector.TextRange(this.endLine,this.endColumn,this.startLine,this.startColumn);else
-return this.clone();},clone:function()
-{return new WebInspector.TextRange(this.startLine,this.startColumn,this.endLine,this.endColumn);},serializeToObject:function()
-{var serializedTextRange={};serializedTextRange.startLine=this.startLine;serializedTextRange.startColumn=this.startColumn;serializedTextRange.endLine=this.endLine;serializedTextRange.endColumn=this.endColumn;return serializedTextRange;},compareTo:function(other)
-{if(this.startLine>other.startLine)
-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;},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)
-{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.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();}
-WebInspector.FileSystemModel.prototype={_reset:function()
-{for(var securityOrigin in this._fileSystemsForOrigin)
-this._removeOrigin(securityOrigin);var securityOrigins=WebInspector.resourceTreeModel.securityOrigins();for(var i=0;i<securityOrigins.length;++i)
-this._addOrigin(securityOrigins[i]);},_securityOriginAdded:function(event)
-{var securityOrigin=(event.data);this._addOrigin(securityOrigin);},_securityOriginRemoved:function(event)
-{var securityOrigin=(event.data);this._removeOrigin(securityOrigin);},_addOrigin:function(securityOrigin)
-{this._fileSystemsForOrigin[securityOrigin]={};var types=["persistent","temporary"];for(var i=0;i<types.length;++i)
-this._requestFileSystemRoot(securityOrigin,types[i],this._fileSystemRootReceived.bind(this,securityOrigin,types[i],this._fileSystemsForOrigin[securityOrigin]));},_removeOrigin:function(securityOrigin)
-{for(var type in this._fileSystemsForOrigin[securityOrigin]){var fileSystem=this._fileSystemsForOrigin[securityOrigin][type];delete this._fileSystemsForOrigin[securityOrigin][type];this._fileSystemRemoved(fileSystem);}
-delete this._fileSystemsForOrigin[securityOrigin];},_requestFileSystemRoot:function(origin,type,callback)
-{function innerCallback(error,errorCode,backendRootEntry)
-{if(error){callback(FileError.SECURITY_ERR);return;}
-callback(errorCode,backendRootEntry);}
-FileSystemAgent.requestFileSystemRoot(origin,type,innerCallback.bind(this));},_fileSystemAdded:function(fileSystem)
-{this.dispatchEventToListeners(WebInspector.FileSystemModel.EventTypes.FileSystemAdded,fileSystem);},_fileSystemRemoved:function(fileSystem)
-{this.dispatchEventToListeners(WebInspector.FileSystemModel.EventTypes.FileSystemRemoved,fileSystem);},refreshFileSystemList:function()
-{this._reset();},_fileSystemRootReceived:function(origin,type,store,errorCode,backendRootEntry)
-{if(!errorCode&&backendRootEntry&&this._fileSystemsForOrigin[origin]===store){var fileSystem=new WebInspector.FileSystemModel.FileSystem(this,origin,type,backendRootEntry);store[type]=fileSystem;this._fileSystemAdded(fileSystem);}},requestDirectoryContent:function(directory,callback)
-{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);return;}
-callback(errorCode,backendEntries);}
-FileSystemAgent.requestDirectoryContent(url,innerCallback.bind(this));},_directoryContentReceived:function(parentDirectory,callback,errorCode,backendEntries)
-{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)
-{function innerCallback(error,errorCode,metadata)
-{if(error){callback(FileError.SECURITY_ERR);return;}
-callback(errorCode,metadata);}
-FileSystemAgent.requestMetadata(entry.url,innerCallback.bind(this));},requestFileContent:function(file,readAsText,start,end,charset,callback)
-{this._requestFileContent(file.url,readAsText,start,end,charset,callback);},_requestFileContent:function(url,readAsText,start,end,charset,callback)
-{function innerCallback(error,errorCode,content,charset)
-{if(error){if(callback)
-callback(FileError.SECURITY_ERR);return;}
-if(callback)
-callback(errorCode,content,charset);}
-FileSystemAgent.requestFileContent(url,readAsText,start,end,charset,innerCallback.bind(this));},deleteEntry:function(entry,callback)
-{var fileSystemModel=this;if(entry===entry.fileSystem.root)
-this._deleteEntry(entry.url,hookFileSystemDeletion);else
-this._deleteEntry(entry.url,callback);function hookFileSystemDeletion(errorCode)
-{callback(errorCode);if(!errorCode)
-fileSystemModel._removeFileSystem(entry.fileSystem);}},_deleteEntry:function(url,callback)
-{function innerCallback(error,errorCode)
-{if(error){if(callback)
-callback(FileError.SECURITY_ERR);return;}
-if(callback)
-callback(errorCode);}
-FileSystemAgent.deleteEntry(url,innerCallback.bind(this));},_removeFileSystem:function(fileSystem)
-{var origin=fileSystem.origin;var type=fileSystem.type;if(this._fileSystemsForOrigin[origin]&&this._fileSystemsForOrigin[origin][type]){delete this._fileSystemsForOrigin[origin][type];this._fileSystemRemoved(fileSystem);if(Object.isEmpty(this._fileSystemsForOrigin[origin]))
-delete this._fileSystemsForOrigin[origin];}},__proto__:WebInspector.Object.prototype}
-WebInspector.FileSystemModel.EventTypes={FileSystemAdded:"FileSystemAdded",FileSystemRemoved:"FileSystemRemoved"}
-WebInspector.FileSystemModel.FileSystem=function(fileSystemModel,origin,type,backendRootEntry)
-{this.origin=origin;this.type=type;this.root=new WebInspector.FileSystemModel.Directory(fileSystemModel,this,backendRootEntry);}
-WebInspector.FileSystemModel.FileSystem.prototype={get name()
-{return"filesystem:"+this.origin+"/"+this.type;}}
-WebInspector.FileSystemModel.Entry=function(fileSystemModel,fileSystem,backendEntry)
-{this._fileSystemModel=fileSystemModel;this._fileSystem=fileSystem;this._url=backendEntry.url;this._name=backendEntry.name;this._isDirectory=backendEntry.isDirectory;}
-WebInspector.FileSystemModel.Entry.compare=function(x,y)
-{if(x.isDirectory!=y.isDirectory)
-return y.isDirectory?1:-1;return x.name.compareTo(y.name);}
-WebInspector.FileSystemModel.Entry.prototype={get fileSystemModel()
-{return this._fileSystemModel;},get fileSystem()
-{return this._fileSystem;},get url()
-{return this._url;},get name()
-{return this._name;},get isDirectory()
-{return this._isDirectory;},requestMetadata:function(callback)
-{this.fileSystemModel.requestMetadata(this,callback);},deleteEntry:function(callback)
-{this.fileSystemModel.deleteEntry(this,callback);}}
-WebInspector.FileSystemModel.Directory=function(fileSystemModel,fileSystem,backendEntry)
-{WebInspector.FileSystemModel.Entry.call(this,fileSystemModel,fileSystem,backendEntry);}
-WebInspector.FileSystemModel.Directory.prototype={requestDirectoryContent:function(callback)
-{this.fileSystemModel.requestDirectoryContent(this,callback);},__proto__:WebInspector.FileSystemModel.Entry.prototype}
-WebInspector.FileSystemModel.File=function(fileSystemModel,fileSystem,backendEntry)
-{WebInspector.FileSystemModel.Entry.call(this,fileSystemModel,fileSystem,backendEntry);this._mimeType=backendEntry.mimeType;this._resourceType=WebInspector.resourceTypes[backendEntry.resourceType];this._isTextFile=backendEntry.isTextFile;}
-WebInspector.FileSystemModel.File.prototype={get mimeType()
-{return this._mimeType;},get resourceType()
-{return this._resourceType;},get isTextFile()
-{return this._isTextFile;},requestFileContent:function(readAsText,start,end,charset,callback)
-{this.fileSystemModel.requestFileContent(this,readAsText,start,end,charset,callback);},__proto__:WebInspector.FileSystemModel.Entry.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.FileOutputStream=function()
-{}
-WebInspector.FileOutputStream.prototype={open:function(fileName,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)
-{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.DebuggerModel=function()
-{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"}
-WebInspector.DebuggerModel.BreakReason={DOM:"DOM",EventListener:"EventListener",XHR:"XHR",Exception:"exception",Assert:"assert",CSPViolation:"CSPViolation",DebugCommand:"debugCommand"}
-WebInspector.DebuggerModel.prototype={debuggerEnabled:function()
-{return!!this._debuggerEnabled;},enableDebugger:function()
-{if(this._debuggerEnabled)
-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);},_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)
-{if(error)
-return;this._pendingStepIntoLocation=requestedLocation;};DebuggerAgent.continueToLocation(rawLocation,true,callback.bind(this,rawLocation));},stepInto:function()
-{function callback()
-{DebuggerAgent.stepInto();}
-DebuggerAgent.setOverlayMessage(undefined,callback.bind(this));},stepOver:function()
-{function callback()
-{DebuggerAgent.stepOver();}
-DebuggerAgent.setOverlayMessage(undefined,callback.bind(this));},stepOut:function()
-{function callback()
-{DebuggerAgent.stepOut();}
-DebuggerAgent.setOverlayMessage(undefined,callback.bind(this));},resume:function()
-{function callback()
-{DebuggerAgent.resume();}
-DebuggerAgent.setOverlayMessage(undefined,callback.bind(this));},setBreakpointByScriptLocation:function(rawLocation,condition,callback)
-{var script=this.scriptForId(rawLocation.scriptId);if(script.sourceURL)
-this.setBreakpointByURL(script.sourceURL,rawLocation.lineNumber,rawLocation.columnNumber,condition,callback);else
-this.setBreakpointBySourceId(rawLocation,condition,callback);},setBreakpointByURL:function(url,lineNumber,columnNumber,condition,callback)
-{var minColumnNumber=0;var scripts=this._scriptsBySourceURL[url]||[];for(var i=0,l=scripts.length;i<l;++i){var script=scripts[i];if(lineNumber===script.lineOffset)
-minColumnNumber=minColumnNumber?Math.min(minColumnNumber,script.columnOffset):script.columnOffset;}
-columnNumber=Math.max(columnNumber,minColumnNumber);function didSetBreakpoint(error,breakpointId,locations)
-{if(callback){var rawLocations=(locations);callback(error?null:breakpointId,rawLocations);}}
-DebuggerAgent.setBreakpointByUrl(lineNumber,url,undefined,columnNumber,condition,undefined,didSetBreakpoint.bind(this));WebInspector.userMetrics.ScriptsBreakpointSet.record();},setBreakpointBySourceId:function(rawLocation,condition,callback)
-{function didSetBreakpoint(error,breakpointId,actualLocation)
-{if(callback){var rawLocation=(actualLocation);callback(error?null:breakpointId,[rawLocation]);}}
-DebuggerAgent.setBreakpoint(rawLocation,condition,didSetBreakpoint.bind(this));WebInspector.userMetrics.ScriptsBreakpointSet.record();},removeBreakpoint:function(breakpointId,callback)
-{DebuggerAgent.removeBreakpoint(breakpointId,callback);},_breakpointResolved:function(breakpointId,location)
-{this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointResolved,{breakpointId:breakpointId,location:location});},_globalObjectCleared:function()
-{this._setDebuggerPausedDetails(null);this._reset();this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.GlobalObjectCleared);},_reset:function()
-{this._scripts={};this._scriptsBySourceURL={};},get scripts()
-{return this._scripts;},scriptForId:function(scriptId)
-{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,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,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,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(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())
-return;var scripts=this._scriptsBySourceURL[script.sourceURL];if(!scripts){scripts=[];this._scriptsBySourceURL[script.sourceURL]=scripts;}
-scripts.push(script);},createRawLocation:function(script,lineNumber,columnNumber)
-{if(script.sourceURL)
-return this.createRawLocationByURL(script.sourceURL,lineNumber,columnNumber)
-return new WebInspector.DebuggerModel.Location(script.scriptId,lineNumber,columnNumber);},createRawLocationByURL:function(sourceURL,lineNumber,columnNumber)
-{var closestScript=null;var scripts=this._scriptsBySourceURL[sourceURL]||[];for(var i=0,l=scripts.length;i<l;++i){var script=scripts[i];if(!closestScript)
-closestScript=script;if(script.lineOffset>lineNumber||(script.lineOffset===lineNumber&&script.columnOffset>columnNumber))
-continue;if(script.endLine<lineNumber||(script.endLine===lineNumber&&script.endColumn<=columnNumber))
-continue;closestScript=script;break;}
-return closestScript?new WebInspector.DebuggerModel.Location(closestScript.scriptId,lineNumber,columnNumber):null;},isPaused:function()
-{return!!this.debuggerPausedDetails();},setSelectedCallFrame:function(callFrame)
-{this._selectedCallFrame=callFrame;if(!this._selectedCallFrame)
-return;this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.CallFrameSelected,callFrame);},selectedCallFrame:function()
-{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(!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);}
-this.selectedCallFrame().evaluate(code,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,didEvaluate.bind(this));},getSelectedCallFrameVariables:function(callback)
-{var result={this:true};var selectedCallFrame=this._selectedCallFrame;if(!selectedCallFrame)
-callback(result);var pendingRequests=0;function propertiesCollected(properties)
-{for(var i=0;properties&&i<properties.length;++i)
-result[properties[i].name]=true;if(--pendingRequests==0)
-callback(result);}
-for(var i=0;i<selectedCallFrame.scopeChain.length;++i){var scope=selectedCallFrame.scopeChain[i];var object=WebInspector.RemoteObject.fromPayload(scope.object);pendingRequests++;object.getAllProperties(false,propertiesCollected);}},setBreakpointsActive:function(active)
-{if(this._breakpointsActive===active)
-return;this._breakpointsActive=active;DebuggerAgent.setBreakpointsActive(active);this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointsActiveStateChanged,active);},breakpointsActive:function()
-{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,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,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,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,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 returnValue()
-{return this._payload.returnValue;},get functionName()
-{return this._payload.functionName;},get location()
-{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,asyncStackTrace)
-{if(!error)
-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));}
-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()
-{for(var i=0;i<this._locations.length;++i)
-this._locations[i].dispose();this._locations=[];}}
-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)
-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);}
-WebInspector.SourceMap._sourceMapRequestHeaderName="X-Source-Map-Request-From";WebInspector.SourceMap._sourceMapRequestHeaderValue="inspector";WebInspector.SourceMap.hasSourceMapRequestHeader=function(request)
-{return request&&request.requestHeaderValue(WebInspector.SourceMap._sourceMapRequestHeaderName)===WebInspector.SourceMap._sourceMapRequestHeaderValue;}
-WebInspector.SourceMap.load=function(sourceMapURL,compiledURL,callback)
-{var headers={};headers[WebInspector.SourceMap._sourceMapRequestHeaderName]=WebInspector.SourceMap._sourceMapRequestHeaderValue;NetworkAgent.loadResourceForFrontend(WebInspector.resourceTreeModel.mainFrame.id,sourceMapURL,headers,contentLoaded.bind(this));function contentLoaded(error,statusCode,headers,content)
-{if(error||!content||statusCode>=400){callback(null);return;}
-if(content.slice(0,3)===")]}")
-content=content.substring(content.indexOf('\n'));try{var payload=(JSON.parse(content));var baseURL=sourceMapURL.startsWith("data:")?compiledURL:sourceMapURL;callback(new WebInspector.SourceMap(baseURL,payload));}catch(e){console.error(e.message);callback(null);}}}
-WebInspector.SourceMap.prototype={url:function()
-{return this._sourceMappingURL;},sources:function()
-{return Object.keys(this._sources);},sourceContent:function(sourceURL)
-{return this._sourceContentByURL[sourceURL];},sourceContentProvider:function(sourceURL,contentType)
-{var sourceContent=this.sourceContent(sourceURL);if(sourceContent)
-return new WebInspector.StaticContentProvider(contentType,sourceContent);return new WebInspector.CompilerSourceMappingContentProvider(sourceURL,contentType);},_parseMappingPayload:function(mappingPayload)
-{if(mappingPayload.sections)
-this._parseSections(mappingPayload.sections);else
-this._parseMap(mappingPayload,0,0);},_parseSections:function(sections)
-{for(var i=0;i<sections.length;++i){var section=sections[i];this._parseMap(section.map,section.offset.line,section.offset.column);}},findEntry:function(lineNumber,columnNumber)
-{var first=0;var count=this._mappings.length;while(count>1){var step=count>>1;var middle=first+step;var mapping=this._mappings[middle];if(lineNumber<mapping[0]||(lineNumber===mapping[0]&&columnNumber<mapping[1]))
-count=step;else{first=middle;count-=step;}}
-var entry=this._mappings[first];if(!first&&entry&&(lineNumber<entry[0]||(lineNumber===entry[0]&&columnNumber<entry[1])))
-return null;return entry;},findEntryReversed:function(sourceURL,lineNumber)
-{var mappings=this._reverseMappingsBySourceURL[sourceURL];for(;lineNumber<mappings.length;++lineNumber){var mapping=mappings[lineNumber];if(mapping)
-return mapping;}
-return this._mappings[0];},_parseMap:function(map,lineNumber,columnNumber)
-{var sourceIndex=0;var sourceLineNumber=0;var sourceColumnNumber=0;var nameIndex=0;var sources=[];var originalToCanonicalURLMap={};for(var i=0;i<map.sources.length;++i){var originalSourceURL=map.sources[i];var sourceRoot=map.sourceRoot||"";if(sourceRoot&&!sourceRoot.endsWith("/"))
-sourceRoot+="/";var href=sourceRoot+originalSourceURL;var url=WebInspector.ParsedURL.completeURL(this._sourceMappingURL,href)||href;originalToCanonicalURLMap[originalSourceURL]=url;sources.push(url);this._sources[url]=true;if(map.sourcesContent&&map.sourcesContent[i])
-this._sourceContentByURL[url]=map.sourcesContent[i];}
-var stringCharIterator=new WebInspector.SourceMap.StringCharIterator(map.mappings);var sourceURL=sources[sourceIndex];while(true){if(stringCharIterator.peek()===",")
-stringCharIterator.next();else{while(stringCharIterator.peek()===";"){lineNumber+=1;columnNumber=0;stringCharIterator.next();}
-if(!stringCharIterator.hasNext())
-break;}
-columnNumber+=this._decodeVLQ(stringCharIterator);if(this._isSeparator(stringCharIterator.peek())){this._mappings.push([lineNumber,columnNumber]);continue;}
-var sourceIndexDelta=this._decodeVLQ(stringCharIterator);if(sourceIndexDelta){sourceIndex+=sourceIndexDelta;sourceURL=sources[sourceIndex];}
-sourceLineNumber+=this._decodeVLQ(stringCharIterator);sourceColumnNumber+=this._decodeVLQ(stringCharIterator);if(!this._isSeparator(stringCharIterator.peek()))
-nameIndex+=this._decodeVLQ(stringCharIterator);this._mappings.push([lineNumber,columnNumber,sourceURL,sourceLineNumber,sourceColumnNumber]);}
-for(var i=0;i<this._mappings.length;++i){var mapping=this._mappings[i];var url=mapping[2];if(!url)
-continue;if(!this._reverseMappingsBySourceURL[url])
-this._reverseMappingsBySourceURL[url]=[];var reverseMappings=this._reverseMappingsBySourceURL[url];var sourceLine=mapping[3];if(!reverseMappings[sourceLine])
-reverseMappings[sourceLine]=[mapping[0],mapping[1]];}},_isSeparator:function(char)
-{return char===","||char===";";},_decodeVLQ:function(stringCharIterator)
-{var result=0;var shift=0;do{var digit=this._base64Map[stringCharIterator.next()];result+=(digit&this._VLQ_BASE_MASK)<<shift;shift+=this._VLQ_BASE_SHIFT;}while(digit&this._VLQ_CONTINUATION_MASK);var negative=result&1;result>>=1;return negative?-result:result;},_VLQ_BASE_SHIFT:5,_VLQ_BASE_MASK:(1<<5)-1,_VLQ_CONTINUATION_MASK:1<<5}
-WebInspector.SourceMap.StringCharIterator=function(string)
-{this._string=string;this._position=0;}
-WebInspector.SourceMap.StringCharIterator.prototype={next:function()
-{return this._string.charAt(this._position++);},peek:function()
-{return this._string.charAt(this._position);},hasNext:function()
-{return this._position<this._string.length;}}
-WebInspector.SourceMapping=function()
-{}
-WebInspector.SourceMapping.prototype={rawLocationToUILocation:function(rawLocation){},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber){}}
-WebInspector.ScriptSourceMapping=function()
-{}
-WebInspector.ScriptSourceMapping.prototype={addScript:function(script){}}
-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._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=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)
-{if(error)
-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([]);},_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,asyncStackTrace,needsStepIn);if(!error)
-this.dispatchEventToListeners(WebInspector.Script.Events.ScriptEdited,newSource);}
-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()
-{return!!this.sourceURL&&this.sourceURL.startsWith(WebInspector.Script.snippetSourceURLPrefix);},rawLocationToUILocation:function(lineNumber,columnNumber)
-{var uiLocation;var rawLocation=new WebInspector.DebuggerModel.Location(this.scriptId,lineNumber,columnNumber||0);for(var i=this._sourceMappings.length-1;!uiLocation&&i>=0;--i)
-uiLocation=this._sourceMappings[i].rawLocationToUILocation(rawLocation);console.assert(uiLocation,"Script raw location can not be mapped to any ui location.");return uiLocation.uiSourceCode.overrideLocation(uiLocation);},pushSourceMapping:function(sourceMapping)
-{this._sourceMappings.push(sourceMapping);this.updateLocations();},updateLocations:function()
-{var items=this._locations.items();for(var i=0;i<items.length;++i)
-items[i].update();},createLiveLocation:function(rawLocation,updateDelegate)
-{console.assert(rawLocation.scriptId===this.scriptId);var location=new WebInspector.Script.Location(this,rawLocation,updateDelegate);this._locations.add(location);location.update();return location;},__proto__:WebInspector.Object.prototype}
-WebInspector.Script.Location=function(script,rawLocation,updateDelegate)
-{WebInspector.LiveLocation.call(this,rawLocation,updateDelegate);this._script=script;}
-WebInspector.Script.Location.prototype={uiLocation:function()
-{var debuggerModelLocation=(this.rawLocation());return this._script.rawLocationToUILocation(debuggerModelLocation.lineNumber,debuggerModelLocation.columnNumber);},dispose:function()
-{WebInspector.LiveLocation.prototype.dispose.call(this);this._script._locations.remove(this);},__proto__:WebInspector.LiveLocation.prototype}
-WebInspector.LinkifierFormatter=function()
-{}
-WebInspector.LinkifierFormatter.prototype={formatLiveAnchor:function(anchor,uiLocation){}}
-WebInspector.Linkifier=function(formatter)
-{this._formatter=formatter||new WebInspector.Linkifier.DefaultFormatter(WebInspector.Linkifier.MaxLengthForDisplayedURLs);this._liveLocations=[];}
-WebInspector.Linkifier.prototype={linkifyLocation:function(sourceURL,lineNumber,columnNumber,classes)
-{var rawLocation=WebInspector.debuggerModel.createRawLocationByURL(sourceURL,lineNumber,columnNumber||0);if(!rawLocation)
-return WebInspector.linkifyResourceAsNode(sourceURL,lineNumber,classes);return this.linkifyRawLocation(rawLocation,classes);},linkifyRawLocation:function(rawLocation,classes)
-{var script=WebInspector.debuggerModel.scriptForId(rawLocation.scriptId);if(!script)
-return null;var anchor=WebInspector.linkifyURLAsNode("","",classes,false);var liveLocation=script.createLiveLocation(rawLocation,this._updateAnchor.bind(this,anchor));this._liveLocations.push(liveLocation);return anchor;},linkifyCSSLocation:function(styleSheetId,rawLocation,classes)
-{var anchor=WebInspector.linkifyURLAsNode("","",classes,false);var liveLocation=WebInspector.cssModel.createLiveLocation(styleSheetId,rawLocation,this._updateAnchor.bind(this,anchor));if(!liveLocation)
-return null;this._liveLocations.push(liveLocation);return anchor;},reset:function()
-{for(var i=0;i<this._liveLocations.length;++i)
-this._liveLocations[i].dispose();this._liveLocations=[];},_updateAnchor:function(anchor,uiLocation)
-{anchor.preferredPanel="sources";anchor.href=sanitizeHref(uiLocation.uiSourceCode.originURL());anchor.uiSourceCode=uiLocation.uiSourceCode;anchor.lineNumber=uiLocation.lineNumber;anchor.columnNumber=uiLocation.columnNumber;this._formatter.formatLiveAnchor(anchor,uiLocation);}}
-WebInspector.Linkifier.DefaultFormatter=function(maxLength)
-{this._maxLength=maxLength;}
-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;}}
-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)
-{WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor.call(this,anchor,uiLocation);anchor.classList.add("webkit-html-resource-link");anchor.setAttribute("data-uncopyable",anchor.textContent);anchor.textContent="";},__proto__:WebInspector.Linkifier.DefaultFormatter.prototype}
-WebInspector.Linkifier.MaxLengthForDisplayedURLs=150;WebInspector.DebuggerScriptMapping=function(workspace,networkWorkspaceProvider)
-{this._defaultMapping=new WebInspector.DefaultScriptMapping(workspace);this._resourceMapping=new WebInspector.ResourceScriptMapping(workspace);this._compilerMapping=new WebInspector.CompilerScriptMapping(workspace,networkWorkspaceProvider);this._snippetMapping=WebInspector.scriptSnippetModel.scriptMapping;WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource,this._parsedScriptSource,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource,this._parsedScriptSource,this);}
-WebInspector.DebuggerScriptMapping.prototype={_parsedScriptSource:function(event)
-{var script=(event.data);this._defaultMapping.addScript(script);if(script.isSnippet()){this._snippetMapping.addScript(script);return;}
-this._resourceMapping.addScript(script);if(WebInspector.settings.jsSourceMapsEnabled.get())
-this._compilerMapping.addScript(script);}}
-WebInspector.PresentationConsoleMessageHelper=function(workspace)
-{this._pendingConsoleMessages={};this._presentationConsoleMessages=[];this._workspace=workspace;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);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource,this._parsedScriptSource,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.FailedToParseScriptSource,this._parsedScriptSource,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);}
-WebInspector.PresentationConsoleMessageHelper.prototype={_consoleMessageAdded:function(event)
-{var message=(event.data);if(!message.url||!message.isErrorOrWarning())
-return;var rawLocation=message.location();if(rawLocation)
-this._addConsoleMessageToScript(message,rawLocation);else
-this._addPendingConsoleMessage(message);},_addConsoleMessageToScript:function(message,rawLocation)
-{this._presentationConsoleMessages.push(new WebInspector.PresentationConsoleMessage(message,rawLocation));},_addPendingConsoleMessage:function(message)
-{if(!message.url)
-return;if(!this._pendingConsoleMessages[message.url])
-this._pendingConsoleMessages[message.url]=[];this._pendingConsoleMessages[message.url].push(message);},_parsedScriptSource:function(event)
-{var script=(event.data);var messages=this._pendingConsoleMessages[script.sourceURL];if(!messages)
-return;var pendingMessages=[];for(var i=0;i<messages.length;i++){var message=messages[i];var rawLocation=(message.location());if(script.scriptId===rawLocation.scriptId)
-this._addConsoleMessageToScript(message,rawLocation);else
-pendingMessages.push(message);}
-if(pendingMessages.length)
-this._pendingConsoleMessages[script.sourceURL]=pendingMessages;else
-delete this._pendingConsoleMessages[script.sourceURL];},_consoleCleared:function()
-{this._pendingConsoleMessages={};for(var i=0;i<this._presentationConsoleMessages.length;++i)
-this._presentationConsoleMessages[i].dispose();this._presentationConsoleMessages=[];var uiSourceCodes=this._workspace.uiSourceCodes();for(var i=0;i<uiSourceCodes.length;++i)
-uiSourceCodes[i].consoleMessagesCleared();},_debuggerReset:function()
-{this._pendingConsoleMessages={};this._presentationConsoleMessages=[];}}
-WebInspector.PresentationConsoleMessage=function(message,rawLocation)
-{this.originalMessage=message;this._liveLocation=WebInspector.debuggerModel.createLiveLocation(rawLocation,this._updateLocation.bind(this));}
-WebInspector.PresentationConsoleMessage.prototype={_updateLocation:function(uiLocation)
-{if(this._uiLocation)
-this._uiLocation.uiSourceCode.consoleMessageRemoved(this);this._uiLocation=uiLocation;this._uiLocation.uiSourceCode.consoleMessageAdded(this);},get lineNumber()
-{return this._uiLocation.lineNumber;},dispose:function()
-{this._liveLocation.dispose();}}
-WebInspector.FileSystemProjectDelegate=function(isolatedFileSystem,workspace)
-{this._fileSystem=isolatedFileSystem;this._normalizedFileSystemPath=this._fileSystem.path();if(WebInspector.isWin())
-this._normalizedFileSystemPath=this._normalizedFileSystemPath.replace(/\\/g,"/");this._fileSystemURL="file://"+this._normalizedFileSystemPath+"/";this._workspace=workspace;this._searchCallbacks={};this._indexingCallbacks={};this._indexingProgresses={};}
-WebInspector.FileSystemProjectDelegate._scriptExtensions=["js","java","coffee","ts","dart"].keySet();WebInspector.FileSystemProjectDelegate._styleSheetExtensions=["css","scss","sass","less"].keySet();WebInspector.FileSystemProjectDelegate._documentExtensions=["htm","html","asp","aspx","phtml","jsp"].keySet();WebInspector.FileSystemProjectDelegate.projectId=function(fileSystemPath)
-{return"filesystem:"+fileSystemPath;}
-WebInspector.FileSystemProjectDelegate._lastRequestId=0;WebInspector.FileSystemProjectDelegate.prototype={id:function()
-{return WebInspector.FileSystemProjectDelegate.projectId(this._fileSystem.path());},type:function()
-{return WebInspector.projectTypes.FileSystem;},fileSystemPath:function()
-{return this._fileSystem.path();},displayName:function()
-{return this._normalizedFileSystemPath.substr(this._normalizedFileSystemPath.lastIndexOf("/")+1);},_filePathForPath:function(path)
-{return"/"+path;},requestFileContent:function(path,callback)
-{var filePath=this._filePathForPath(path);this._fileSystem.requestFileContent(filePath,callback);},requestMetadata:function(path,callback)
-{var filePath=this._filePathForPath(path);this._fileSystem.requestMetadata(filePath,callback);},canSetFileContent:function()
-{return true;},setFileContent:function(path,newContent,callback)
-{var filePath=this._filePathForPath(path);this._fileSystem.setFileContent(filePath,newContent,callback.bind(this,""));},canRename:function()
-{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 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);}},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));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)
-{if(!this._indexingProgresses[requestId])
-return;InspectorFrontendHost.stopIndexing(requestId);delete this._indexingProgresses[requestId];delete this._indexingCallbacks[requestId];},indexingTotalWorkCalculated:function(requestId,totalWork)
-{if(!this._indexingProgresses[requestId])
-return;var progress=this._indexingProgresses[requestId];progress.setTotalWork(totalWork);},indexingWorked:function(requestId,worked)
-{if(!this._indexingProgresses[requestId])
-return;var progress=this._indexingProgresses[requestId];progress.worked(worked);},indexingDone:function(requestId)
-{if(!this._indexingProgresses[requestId])
-return;var progress=this._indexingProgresses[requestId];var callback=this._indexingCallbacks[requestId];delete this._indexingProgresses[requestId];delete this._indexingCallbacks[requestId];progress.done();callback.call();},_extensionForPath:function(path)
-{var extensionIndex=path.lastIndexOf(".");if(extensionIndex===-1)
-return"";return path.substring(extensionIndex+1).toLowerCase();},_contentTypeForExtension:function(extension)
-{if(WebInspector.FileSystemProjectDelegate._scriptExtensions[extension])
-return WebInspector.resourceTypes.Script;if(WebInspector.FileSystemProjectDelegate._styleSheetExtensions[extension])
-return WebInspector.resourceTypes.Stylesheet;if(WebInspector.FileSystemProjectDelegate._documentExtensions[extension])
-return WebInspector.resourceTypes.Document;return WebInspector.resourceTypes.Other;},populate:function()
-{this._fileSystem.requestFilesRecursive("",this._addFile.bind(this));},refresh:function(path)
-{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)
-{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)
-{this._fileSystem.deleteFile(path);this._removeFile(path);},remove:function()
-{WebInspector.isolatedFileSystemManager.removeFileSystem(this._fileSystem.path());},_addFile:function(filePath)
-{if(!filePath)
-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;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)
-this._projectDelegates[projectDelegate.id()]=projectDelegate;console.assert(!this._workspace.project(projectDelegate.id()));this._workspace.addProject(projectDelegate);projectDelegate.populate();},_fileSystemRemoved:function(event)
-{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;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
-defaultExcludedFolders=defaultExcludedFolders.concat(defaultLinuxExcludedFolders);var defaultExcludedFoldersPattern=defaultExcludedFolders.join("|");WebInspector.settings.workspaceFolderExcludePattern=WebInspector.settings.createSetting("workspaceFolderExcludePattern",defaultExcludedFoldersPattern);this._fileSystemMappings={};this._excludedFolders={};this._loadFromSettings();}
-WebInspector.FileSystemMapping.Events={FileMappingAdded:"FileMappingAdded",FileMappingRemoved:"FileMappingRemoved",ExcludedFolderAdded:"ExcludedFolderAdded",ExcludedFolderRemoved:"ExcludedFolderRemoved"}
-WebInspector.FileSystemMapping.prototype={_loadFromSettings:function()
-{var savedMapping=this._fileSystemMappingSetting.get();this._fileSystemMappings={};for(var fileSystemPath in savedMapping){var savedFileSystemMappings=savedMapping[fileSystemPath];this._fileSystemMappings[fileSystemPath]=[];var fileSystemMappings=this._fileSystemMappings[fileSystemPath];for(var i=0;i<savedFileSystemMappings.length;++i){var savedEntry=savedFileSystemMappings[i];var entry=new WebInspector.FileSystemMapping.Entry(savedEntry.fileSystemPath,savedEntry.urlPrefix,savedEntry.pathPrefix);fileSystemMappings.push(entry);}}
-var savedExcludedFolders=this._excludedFoldersSetting.get();this._excludedFolders={};for(var fileSystemPath in savedExcludedFolders){var savedExcludedFoldersForPath=savedExcludedFolders[fileSystemPath];this._excludedFolders[fileSystemPath]=[];var excludedFolders=this._excludedFolders[fileSystemPath];for(var i=0;i<savedExcludedFoldersForPath.length;++i){var savedEntry=savedExcludedFoldersForPath[i];var entry=new WebInspector.FileSystemMapping.ExcludedFolderEntry(savedEntry.fileSystemPath,savedEntry.path);excludedFolders.push(entry);}}
-var workspaceFolderExcludePattern=WebInspector.settings.workspaceFolderExcludePattern.get()
-try{var flags=WebInspector.isWin()?"i":"";this._workspaceFolderExcludeRegex=workspaceFolderExcludePattern?new RegExp(workspaceFolderExcludePattern,flags):null;}catch(e){}
-this._rebuildIndexes();},_saveToSettings:function()
-{var savedMapping=this._fileSystemMappings;this._fileSystemMappingSetting.set(savedMapping);var savedExcludedFolders=this._excludedFolders;this._excludedFoldersSetting.set(savedExcludedFolders);this._rebuildIndexes();},_rebuildIndexes:function()
-{this._mappingForURLPrefix={};this._urlPrefixes=[];for(var fileSystemPath in this._fileSystemMappings){var fileSystemMapping=this._fileSystemMappings[fileSystemPath];for(var i=0;i<fileSystemMapping.length;++i){var entry=fileSystemMapping[i];this._mappingForURLPrefix[entry.urlPrefix]=entry;this._urlPrefixes.push(entry.urlPrefix);}}
-this._urlPrefixes.sort();},addFileSystem:function(fileSystemPath)
-{if(this._fileSystemMappings[fileSystemPath])
-return;this._fileSystemMappings[fileSystemPath]=[];this._saveToSettings();},removeFileSystem:function(fileSystemPath)
-{if(!this._fileSystemMappings[fileSystemPath])
-return;delete this._fileSystemMappings[fileSystemPath];delete this._excludedFolders[fileSystemPath];this._saveToSettings();},addFileMapping:function(fileSystemPath,urlPrefix,pathPrefix)
-{var entry=new WebInspector.FileSystemMapping.Entry(fileSystemPath,urlPrefix,pathPrefix);this._fileSystemMappings[fileSystemPath].push(entry);this._saveToSettings();this.dispatchEventToListeners(WebInspector.FileSystemMapping.Events.FileMappingAdded,entry);},removeFileMapping:function(fileSystemPath,urlPrefix,pathPrefix)
-{var entry=this._mappingEntryForPathPrefix(fileSystemPath,pathPrefix);if(!entry)
-return;this._fileSystemMappings[fileSystemPath].remove(entry);this._saveToSettings();this.dispatchEventToListeners(WebInspector.FileSystemMapping.Events.FileMappingRemoved,entry);},addExcludedFolder:function(fileSystemPath,excludedFolderPath)
-{if(!this._excludedFolders[fileSystemPath])
-this._excludedFolders[fileSystemPath]=[];var entry=new WebInspector.FileSystemMapping.ExcludedFolderEntry(fileSystemPath,excludedFolderPath);this._excludedFolders[fileSystemPath].push(entry);this._saveToSettings();this.dispatchEventToListeners(WebInspector.FileSystemMapping.Events.ExcludedFolderAdded,entry);},removeExcludedFolder:function(fileSystemPath,path)
-{var entry=this._excludedFolderEntryForPath(fileSystemPath,path);if(!entry)
-return;this._excludedFolders[fileSystemPath].remove(entry);this._saveToSettings();this.dispatchEventToListeners(WebInspector.FileSystemMapping.Events.ExcludedFolderRemoved,entry);},fileSystemPaths:function()
-{return Object.keys(this._fileSystemMappings);},_mappingEntryForURL:function(url)
-{for(var i=this._urlPrefixes.length-1;i>=0;--i){var urlPrefix=this._urlPrefixes[i];if(url.startsWith(urlPrefix))
-return this._mappingForURLPrefix[urlPrefix];}
-return null;},_excludedFolderEntryForPath:function(fileSystemPath,path)
-{var entries=this._excludedFolders[fileSystemPath];if(!entries)
-return null;for(var i=0;i<entries.length;++i){if(entries[i].path===path)
-return entries[i];}
-return null;},_mappingEntryForPath:function(fileSystemPath,filePath)
-{var entries=this._fileSystemMappings[fileSystemPath];if(!entries)
-return null;var entry=null;for(var i=0;i<entries.length;++i){var pathPrefix=entries[i].pathPrefix;if(entry&&entry.pathPrefix.length>pathPrefix.length)
-continue;if(filePath.startsWith(pathPrefix.substr(1)))
-entry=entries[i];}
-return entry;},_mappingEntryForPathPrefix:function(fileSystemPath,pathPrefix)
-{var entries=this._fileSystemMappings[fileSystemPath];for(var i=0;i<entries.length;++i){if(pathPrefix===entries[i].pathPrefix)
-return entries[i];}
-return null;},isFileExcluded:function(fileSystemPath,folderPath)
-{var excludedFolders=this._excludedFolders[fileSystemPath]||[];for(var i=0;i<excludedFolders.length;++i){var entry=excludedFolders[i];if(entry.path===folderPath)
-return true;}
-return this._workspaceFolderExcludeRegex&&this._workspaceFolderExcludeRegex.test(folderPath);},excludedFolders:function(fileSystemPath)
-{var excludedFolders=this._excludedFolders[fileSystemPath];return excludedFolders?excludedFolders.slice():[];},mappingEntries:function(fileSystemPath)
-{return this._fileSystemMappings[fileSystemPath].slice();},hasMappingForURL:function(url)
-{return!!this._mappingEntryForURL(url);},fileForURL:function(url)
-{var entry=this._mappingEntryForURL(url);if(!entry)
-return null;var file={};file.fileSystemPath=entry.fileSystemPath;file.filePath=entry.pathPrefix.substr(1)+url.substr(entry.urlPrefix.length);return file;},urlForPath:function(fileSystemPath,filePath)
-{var entry=this._mappingEntryForPath(fileSystemPath,filePath);if(!entry)
-return"";return entry.urlPrefix+filePath.substring(entry.pathPrefix.length-1);},removeMappingForURL:function(url)
-{var entry=this._mappingEntryForURL(url);if(!entry)
-return;this._fileSystemMappings[entry.fileSystemPath].remove(entry);this._saveToSettings();},addMappingForResource:function(url,fileSystemPath,filePath)
-{var commonPathSuffixLength=0;var normalizedFilePath="/"+filePath;for(var i=0;i<normalizedFilePath.length;++i){var filePathCharacter=normalizedFilePath[normalizedFilePath.length-1-i];var urlCharacter=url[url.length-1-i];if(filePathCharacter!==urlCharacter)
-break;if(filePathCharacter==="/")
-commonPathSuffixLength=i;}
-var pathPrefix=normalizedFilePath.substr(0,normalizedFilePath.length-commonPathSuffixLength);var urlPrefix=url.substr(0,url.length-commonPathSuffixLength);this.addFileMapping(fileSystemPath,urlPrefix,pathPrefix);},__proto__:WebInspector.Object.prototype}
-WebInspector.FileSystemMapping.Entry=function(fileSystemPath,urlPrefix,pathPrefix)
-{this.fileSystemPath=fileSystemPath;this.urlPrefix=urlPrefix;this.pathPrefix=pathPrefix;}
-WebInspector.FileSystemMapping.ExcludedFolderEntry=function(fileSystemPath,path)
-{this.fileSystemPath=fileSystemPath;this.path=path;}
-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=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);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(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.bind(this));function fileCreated(entry)
-{callback(entry.fullPath.substr(1));}
-function fileCreationError(error)
-{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(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(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(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)
-{var reader=new FileReader();reader.onloadend=readerLoadEnd;reader.readAsText(file);}
-function readerLoadEnd()
-{callback((this.result));}
-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(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)
-{fileWriter.onerror=errorHandler.bind(this);fileWriter.onwriteend=fileTruncated;fileWriter.truncate(0);function fileTruncated()
-{fileWriter.onwriteend=writerEnd;var blob=new Blob([content],{type:"text/plain"});fileWriter.write(blob);}}
-function writerEnd()
-{callback();}
-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(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));}
-function dirEntryLoaded(entry)
-{dirEntry=entry;dirEntry.getFile(newName,null,newFileEntryLoaded,newFileEntryLoadErrorHandler);}
-function newFileEntryLoaded(entry)
-{callback(false);}
-function newFileEntryLoadErrorHandler(error)
-{if(error.code!==FileError.NOT_FOUND_ERR){callback(false);return;}
-fileEntry.moveTo(dirEntry,newName,fileRenamed,errorHandler.bind(this));}
-function fileRenamed(entry)
-{callback(true,entry.name);}
-function errorHandler(error)
-{var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when renaming file '"+(this._path+"/"+path)+"' to '"+newName+"'");callback(false);}},_readDirectory:function(dirEntry,callback)
-{var dirReader=dirEntry.createReader();var entries=[];function innerCallback(results)
-{if(!results.length)
-callback(entries.sort());else{entries=entries.concat(toArray(results));dirReader.readEntries(innerCallback,errorHandler);}}
-function toArray(list)
-{return Array.prototype.slice.call(list||[],0);}
-dirReader.readEntries(innerCallback,errorHandler);function errorHandler(error)
-{var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when reading directory '"+dirEntry.fullPath+"'");callback([]);}},_requestEntries:function(domFileSystem,path,callback)
-{domFileSystem.root.getDirectory(path,null,innerCallback.bind(this),errorHandler);function innerCallback(dirEntry)
-{this._readDirectory(dirEntry,callback)}
-function errorHandler(error)
-{var errorMessage=WebInspector.IsolatedFileSystem.errorMessage(error);console.error(errorMessage+" when requesting entry '"+path+"'");callback([]);}}}
-WebInspector.IsolatedFileSystemManager=function()
-{this._fileSystems={};this._pendingFileSystemRequests={};this._fileSystemMapping=new WebInspector.FileSystemMapping();if(this.supportsFileSystems())
-this._requestFileSystems();}
-WebInspector.IsolatedFileSystemManager.FileSystem;WebInspector.IsolatedFileSystemManager.Events={FileSystemAdded:"FileSystemAdded",FileSystemRemoved:"FileSystemRemoved"}
-WebInspector.IsolatedFileSystemManager.prototype={mapping:function()
-{return this._fileSystemMapping;},supportsFileSystems:function()
-{return InspectorFrontendHost.supportsFileSystems();},_requestFileSystems:function()
-{console.assert(!this._loaded);InspectorFrontendHost.requestFileSystems();},addFileSystem:function()
-{InspectorFrontendHost.addFileSystem();},removeFileSystem:function(fileSystemPath)
-{InspectorFrontendHost.removeFileSystem(fileSystemPath);},_fileSystemsLoaded:function(fileSystems)
-{var addedFileSystemPaths={};for(var i=0;i<fileSystems.length;++i){this._innerAddFileSystem(fileSystems[i]);addedFileSystemPaths[fileSystems[i].fileSystemPath]=true;}
-var fileSystemPaths=this._fileSystemMapping.fileSystemPaths();for(var i=0;i<fileSystemPaths.length;++i){var fileSystemPath=fileSystemPaths[i];if(!addedFileSystemPaths[fileSystemPath])
-this._fileSystemRemoved(fileSystemPath);}
-this._loaded=true;this._processPendingFileSystemRequests();},_innerAddFileSystem:function(fileSystem)
-{var fileSystemPath=fileSystem.fileSystemPath;this._fileSystemMapping.addFileSystem(fileSystemPath);var isolatedFileSystem=new WebInspector.IsolatedFileSystem(this,fileSystemPath,fileSystem.fileSystemName,fileSystem.rootURL);this._fileSystems[fileSystemPath]=isolatedFileSystem;this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemAdded,isolatedFileSystem);},_fileSystemPaths:function()
-{return Object.keys(this._fileSystems);},_processPendingFileSystemRequests:function()
-{for(var fileSystemPath in this._pendingFileSystemRequests){var callbacks=this._pendingFileSystemRequests[fileSystemPath];for(var i=0;i<callbacks.length;++i)
-callbacks[i](this._isolatedFileSystem(fileSystemPath));}
-delete this._pendingFileSystemRequests;},_fileSystemAdded:function(errorMessage,fileSystem)
-{var fileSystemPath;if(errorMessage)
-WebInspector.showErrorMessage(errorMessage)
-else if(fileSystem){this._innerAddFileSystem(fileSystem);fileSystemPath=fileSystem.fileSystemPath;}},_fileSystemRemoved:function(fileSystemPath)
-{this._fileSystemMapping.removeFileSystem(fileSystemPath);var isolatedFileSystem=this._fileSystems[fileSystemPath];delete this._fileSystems[fileSystemPath];if(isolatedFileSystem)
-this.dispatchEventToListeners(WebInspector.IsolatedFileSystemManager.Events.FileSystemRemoved,isolatedFileSystem);},_isolatedFileSystem:function(fileSystemPath)
-{var fileSystem=this._fileSystems[fileSystemPath];if(!fileSystem)
-return null;if(!InspectorFrontendHost.isolatedFileSystem)
-return null;return InspectorFrontendHost.isolatedFileSystem(fileSystem.name(),fileSystem.rootURL());},requestDOMFileSystem:function(fileSystemPath,callback)
-{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;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;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){},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()
-{return this._projectDelegate.id();},type:function()
-{return this._projectDelegate.type();},displayName:function()
-{return this._displayName;},isServiceProject:function()
-{return this._projectDelegate.type()===WebInspector.projectTypes.Debugger||this._projectDelegate.type()===WebInspector.projectTypes.LiveEdit;},_fileAdded:function(event)
-{var fileDescriptor=(event.data);var path=fileDescriptor.parentPath?fileDescriptor.parentPath+"/"+fileDescriptor.name:fileDescriptor.name;var uiSourceCode=this.uiSourceCode(path);if(uiSourceCode)
-return;uiSourceCode=new WebInspector.UISourceCode(this,fileDescriptor.parentPath,fileDescriptor.name,fileDescriptor.originURL,fileDescriptor.url,fileDescriptor.contentType,fileDescriptor.isEditable);uiSourceCode.isContentScript=fileDescriptor.isContentScript;this._uiSourceCodesMap[path]={uiSourceCode:uiSourceCode,index:this._uiSourceCodesList.length};this._uiSourceCodesList.push(uiSourceCode);this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.UISourceCodeAdded,uiSourceCode);},_fileRemoved:function(event)
-{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=[];},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;}
-return null;},uiSourceCodes:function()
-{return this._uiSourceCodesList;},requestMetadata:function(uiSourceCode,callback)
-{this._projectDelegate.requestMetadata(uiSourceCode.path(),callback);},requestFileContent:function(uiSourceCode,callback)
-{this._projectDelegate.requestFileContent(uiSourceCode.path(),callback);},canSetFileContent:function()
-{return this._projectDelegate.canSetFileContent();},setFileContent:function(uiSourceCode,newContent,callback)
-{this._projectDelegate.setFileContent(uiSourceCode.path(),newContent,onSetContent.bind(this));function onSetContent(content)
-{this._workspace.dispatchEventToListeners(WebInspector.Workspace.Events.UISourceCodeContentCommitted,{uiSourceCode:uiSourceCode,content:newContent});callback(content);}},canRename:function()
-{return this._projectDelegate.canRename();},rename:function(uiSourceCode,newName,callback)
-{if(newName===uiSourceCode.name()){callback(true,uiSourceCode.name(),uiSourceCode.url,uiSourceCode.originURL(),uiSourceCode.contentType());return;}
-this._projectDelegate.rename(uiSourceCode.path(),newName,innerCallback.bind(this));function innerCallback(success,newName,newURL,newOriginURL,newContentType)
-{if(!success||!newName){callback(false);return;}
-var oldPath=uiSourceCode.path();var newPath=uiSourceCode.parentPath()?uiSourceCode.parentPath()+"/"+newName:newName;this._uiSourceCodesMap[newPath]=this._uiSourceCodesMap[oldPath];delete this._uiSourceCodesMap[oldPath];callback(true,newName,newURL,newOriginURL,newContentType);}},refresh:function(path)
-{this._projectDelegate.refresh(path);},excludeFolder:function(path)
-{this._projectDelegate.excludeFolder(path);var uiSourceCodes=this._uiSourceCodesList.slice();for(var i=0;i<uiSourceCodes.length;++i){var uiSourceCode=uiSourceCodes[i];if(uiSourceCode.path().startsWith(path.substr(1)))
-this._removeFile(uiSourceCode.path());}},createFile:function(path,name,content,callback)
-{this._projectDelegate.createFile(path,name,content,innerCallback);function innerCallback(filePath)
-{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);},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._hasResourceContentTrackingExtensions=false;}
-WebInspector.Workspace.Events={UISourceCodeAdded:"UISourceCodeAdded",UISourceCodeRemoved:"UISourceCodeRemoved",UISourceCodeContentCommitted:"UISourceCodeContentCommitted",ProjectWillReset:"ProjectWillReset"}
-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)
-return uiSourceCode;}
-return null;},uiSourceCodesForProjectType:function(type)
-{var result=[];for(var projectName in this._projects){var project=this._projects[projectName];if(project.type()===type)
-result=result.concat(project.uiSourceCodes());}
-return result;},addProject:function(projectDelegate)
-{var projectId=projectDelegate.id();this._projects[projectId]=new WebInspector.Project(this,projectDelegate);return this._projects[projectId];},removeProject:function(projectId)
-{var project=this._projects[projectId];if(!project)
-return;project.dispose();delete this._projects[projectId];},project:function(projectId)
-{return this._projects[projectId];},projects:function()
-{return Object.values(this._projects);},projectsForType:function(type)
-{function filterByType(project)
-{return project.type()===type;}
-return this.projects().filter(filterByType);},uiSourceCodes:function()
-{var result=[];for(var projectId in this._projects){var project=this._projects[projectId];result=result.concat(project.uiSourceCodes());}
-return result;},hasMappingForURL:function(url)
-{if(!InspectorFrontendHost.supportsFileSystems())
-return false;return this._fileSystemMapping.hasMappingForURL(url);},_networkUISourceCodeForURL:function(url)
-{var splitURL=WebInspector.ParsedURL.splitURL(url);var projectId=WebInspector.SimpleProjectDelegate.projectId(splitURL[0],WebInspector.projectTypes.Network);var project=this.project(projectId);return project?project.uiSourceCode(splitURL.slice(1).join("/")):null;},uiSourceCodeForURL:function(url)
-{if(!InspectorFrontendHost.supportsFileSystems())
-return this._networkUISourceCodeForURL(url);var file=this._fileSystemMapping.fileForURL(url);if(!file)
-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();},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)
-{if(this._fileSystemRefreshTimeout)
-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.ContentProviderBasedProjectDelegate=function(type)
-{this._type=type;this._contentProviders={};this._isContentScriptMap={};}
-WebInspector.ContentProviderBasedProjectDelegate.prototype={id:function()
-{return"";},type:function()
-{return this._type;},displayName:function()
-{return"";},requestMetadata:function(path,callback)
-{callback(null,null);},requestFileContent:function(path,callback)
-{var contentProvider=this._contentProviders[path];contentProvider.requestContent(callback);function innerCallback(content,encoded,mimeType)
-{callback(content);}},canSetFileContent:function()
-{return false;},setFileContent:function(path,newContent,callback)
-{callback(null);},canRename:function()
-{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)
-{},excludeFolder:function(path)
-{},createFile:function(path,name,content,callback)
-{},deleteFile:function(path)
-{},remove:function()
-{},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);},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 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()
-{progress.done();callback();}},addContentProvider:function(parentPath,name,url,contentProvider,isEditable,isContentScript)
-{var path=parentPath?parentPath+"/"+name:name;var fileDescriptor=new WebInspector.FileDescriptor(parentPath,name,url,url,contentProvider.contentType(),isEditable,isContentScript);this._contentProviders[path]=contentProvider;this._isContentScriptMap[path]=isContentScript||false;this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileAdded,fileDescriptor);return path;},removeFile:function(path)
-{delete this._contentProviders[path];delete this._isContentScriptMap[path];this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.FileRemoved,path);},contentProviders:function()
-{return this._contentProviders;},reset:function()
-{this._contentProviders={};this._isContentScriptMap={};this.dispatchEventToListeners(WebInspector.ProjectDelegate.Events.Reset,null);},__proto__:WebInspector.Object.prototype}
-WebInspector.SimpleProjectDelegate=function(name,type)
-{WebInspector.ContentProviderBasedProjectDelegate.call(this,type);this._name=name;this._lastUniqueSuffix=0;}
-WebInspector.SimpleProjectDelegate.projectId=function(name,type)
-{var typePrefix=type!==WebInspector.projectTypes.Network?(type+":"):"";return typePrefix+name;}
-WebInspector.SimpleProjectDelegate.prototype={id:function()
-{return WebInspector.SimpleProjectDelegate.projectId(this._name,this.type());},displayName:function()
-{if(typeof this._displayName!=="undefined")
-return this._displayName;if(!this._name){this._displayName=this.type()!==WebInspector.projectTypes.Snippets?WebInspector.UIString("(no domain)"):"";return this._displayName;}
-var parsedURL=new WebInspector.ParsedURL(this._name);if(parsedURL.isValid){this._displayName=parsedURL.host+(parsedURL.port?(":"+parsedURL.port):"");if(!this._displayName)
-this._displayName=this._name;}
-else
-this._displayName=this._name;return this._displayName;},addFile:function(parentPath,name,forceUniquePath,url,contentProvider,isEditable,isContentScript)
-{if(forceUniquePath)
-name=this._ensureUniqueName(parentPath,name);return this.addContentProvider(parentPath,name,url,contentProvider,isEditable,isContentScript);},_ensureUniqueName:function(parentPath,name)
-{var path=parentPath?parentPath+"/"+name:name;var uniquePath=path;var suffix="";var contentProviders=this.contentProviders();while(contentProviders[uniquePath]){suffix=" ("+(++this._lastUniqueSuffix)+")";uniquePath=path+suffix;}
-return name+suffix;},__proto__:WebInspector.ContentProviderBasedProjectDelegate.prototype}
-WebInspector.SimpleWorkspaceProvider=function(workspace,type)
-{this._workspace=workspace;this._type=type;this._simpleProjectDelegates={};}
-WebInspector.SimpleWorkspaceProvider.prototype={_projectDelegate:function(projectName)
-{if(this._simpleProjectDelegates[projectName])
-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);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)
-{this._storage=new WebInspector.BreakpointManager.Storage(this,breakpointStorage);this._debuggerModel=debuggerModel;this._workspace=workspace;this._breakpointForDebuggerId={};this._breakpointsForUISourceCode=new Map();this._breakpointsForPrimaryUISourceCode=new Map();this._sourceFilesWithRestoredBreakpoints={};this._debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.BreakpointResolved,this._breakpointResolved,this);this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._projectWillReset,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved,this._uiSourceCodeRemoved,this);}
-WebInspector.BreakpointManager.Events={BreakpointAdded:"breakpoint-added",BreakpointRemoved:"breakpoint-removed"}
-WebInspector.BreakpointManager._sourceFileId=function(uiSourceCode)
-{if(!uiSourceCode.url)
-return"";var deobfuscatedPrefix=uiSourceCode.formatted()?"deobfuscated:":"";return deobfuscatedPrefix+uiSourceCode.uri();}
-WebInspector.BreakpointManager._breakpointStorageId=function(sourceFileId,lineNumber)
-{if(!sourceFileId)
-return"";return sourceFileId+":"+lineNumber;}
-WebInspector.BreakpointManager.prototype={_provisionalBreakpointsForSourceFileId:function(sourceFileId)
-{var result=new StringMap();for(var debuggerId in this._breakpointForDebuggerId){var breakpoint=this._breakpointForDebuggerId[debuggerId];if(breakpoint._sourceFileId===sourceFileId)
-result.put(breakpoint._breakpointStorageId(),breakpoint);}
-return result;},_restoreBreakpoints:function(uiSourceCode)
-{var sourceFileId=WebInspector.BreakpointManager._sourceFileId(uiSourceCode);if(!sourceFileId||this._sourceFilesWithRestoredBreakpoints[sourceFileId])
-return;this._sourceFilesWithRestoredBreakpoints[sourceFileId]=true;this._storage.mute();var breakpointItems=this._storage.breakpointItems(uiSourceCode);var provisionalBreakpoints=this._provisionalBreakpointsForSourceFileId(sourceFileId);for(var i=0;i<breakpointItems.length;++i){var breakpointItem=breakpointItems[i];var itemStorageId=WebInspector.BreakpointManager._breakpointStorageId(breakpointItem.sourceFileId,breakpointItem.lineNumber);var provisionalBreakpoint=provisionalBreakpoints.get(itemStorageId);if(provisionalBreakpoint){if(!this._breakpointsForPrimaryUISourceCode.get(uiSourceCode))
-this._breakpointsForPrimaryUISourceCode.put(uiSourceCode,[]);this._breakpointsForPrimaryUISourceCode.get(uiSourceCode).push(provisionalBreakpoint);provisionalBreakpoint._updateInDebugger();}else{this._innerSetBreakpoint(uiSourceCode,breakpointItem.lineNumber,breakpointItem.condition,breakpointItem.enabled);}}
-this._storage.unmute();},_uiSourceCodeAdded:function(event)
-{var uiSourceCode=(event.data);this._restoreBreakpoints(uiSourceCode);if(uiSourceCode.contentType()===WebInspector.resourceTypes.Script||uiSourceCode.contentType()===WebInspector.resourceTypes.Document){uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged,this._uiSourceCodeMappingChanged,this);uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._uiSourceCodeFormatted,this);}},_uiSourceCodeFormatted:function(event)
-{var uiSourceCode=(event.target);this._restoreBreakpoints(uiSourceCode);},_uiSourceCodeRemoved:function(event)
-{var uiSourceCode=(event.data);this._removeUISourceCode(uiSourceCode);},_uiSourceCodeMappingChanged:function(event)
-{var uiSourceCode=(event.target);var breakpoints=this._breakpointsForPrimaryUISourceCode.get(uiSourceCode)||[];for(var i=0;i<breakpoints.length;++i)
-breakpoints[i]._updateInDebugger();},_removeUISourceCode:function(uiSourceCode)
-{var breakpoints=this._breakpointsForPrimaryUISourceCode.get(uiSourceCode)||[];for(var i=0;i<breakpoints.length;++i)
-breakpoints[i]._resetLocations();var sourceFileId=WebInspector.BreakpointManager._sourceFileId(uiSourceCode);delete this._sourceFilesWithRestoredBreakpoints[sourceFileId];uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.FormattedChanged,this._uiSourceCodeFormatted,this);uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.SourceMappingChanged,this._uiSourceCodeMappingChanged,this);this._breakpointsForPrimaryUISourceCode.remove(uiSourceCode);},setBreakpoint:function(uiSourceCode,lineNumber,condition,enabled)
-{this._debuggerModel.setBreakpointsActive(true);return this._innerSetBreakpoint(uiSourceCode,lineNumber,condition,enabled);},_innerSetBreakpoint:function(uiSourceCode,lineNumber,condition,enabled)
-{var breakpoint=this.findBreakpoint(uiSourceCode,lineNumber);if(breakpoint){breakpoint._updateBreakpoint(condition,enabled);return breakpoint;}
-var projectId=uiSourceCode.project().id();var path=uiSourceCode.path();var sourceFileId=WebInspector.BreakpointManager._sourceFileId(uiSourceCode);breakpoint=new WebInspector.BreakpointManager.Breakpoint(this,projectId,path,sourceFileId,lineNumber,condition,enabled);if(!this._breakpointsForPrimaryUISourceCode.get(uiSourceCode))
-this._breakpointsForPrimaryUISourceCode.put(uiSourceCode,[]);this._breakpointsForPrimaryUISourceCode.get(uiSourceCode).push(breakpoint);return breakpoint;},findBreakpoint:function(uiSourceCode,lineNumber)
-{var breakpoints=this._breakpointsForUISourceCode.get(uiSourceCode);var lineBreakpoints=breakpoints?breakpoints[lineNumber]:null;return lineBreakpoints?lineBreakpoints[0]:null;},breakpointsForUISourceCode:function(uiSourceCode)
-{var breakpoints=this._breakpointsForUISourceCode.get(uiSourceCode);var allLineBreakpoints=breakpoints?Object.values(breakpoints):[];var result=[];for(var i=0;i<allLineBreakpoints.length;++i)
-result=result.concat(allLineBreakpoints[i]);return result;},allBreakpoints:function()
-{var result=[];var uiSourceCodes=this._breakpointsForUISourceCode.keys();for(var i=0;i<uiSourceCodes.length;++i)
-result=result.concat(this.breakpointsForUISourceCode(uiSourceCodes[i]));return result;},breakpointLocationsForUISourceCode:function(uiSourceCode)
-{var breakpoints=this._breakpointsForUISourceCode.get(uiSourceCode);var breakpointLines=breakpoints?Object.keys(breakpoints):[];var result=[];for(var i=0;i<breakpointLines.length;++i){var lineNumber=parseInt(breakpointLines[i],10);if(isNaN(lineNumber))
-continue;var lineBreakpoints=breakpoints[lineNumber];for(var j=0;j<lineBreakpoints.length;++j){var breakpoint=lineBreakpoints[j];var uiLocation=new WebInspector.UILocation(uiSourceCode,lineNumber,0);result.push({breakpoint:breakpoint,uiLocation:uiLocation});}}
-return result;},allBreakpointLocations:function()
-{var result=[];var uiSourceCodes=this._breakpointsForUISourceCode.keys();for(var i=0;i<uiSourceCodes.length;++i)
-result=result.concat(this.breakpointLocationsForUISourceCode(uiSourceCodes[i]));return result;},toggleAllBreakpoints:function(toggleState)
-{var breakpoints=this.allBreakpoints();for(var i=0;i<breakpoints.length;++i)
-breakpoints[i].setEnabled(toggleState);},removeAllBreakpoints:function()
-{var breakpoints=this.allBreakpoints();for(var i=0;i<breakpoints.length;++i)
-breakpoints[i].remove();},removeProvisionalBreakpoints:function()
-{for(var debuggerId in this._breakpointForDebuggerId)
-this._debuggerModel.removeBreakpoint(debuggerId);},_projectWillReset:function(event)
-{var project=(event.data);var uiSourceCodes=project.uiSourceCodes();for(var i=0;i<uiSourceCodes.length;++i)
-this._removeUISourceCode(uiSourceCodes[i]);},_breakpointResolved:function(event)
-{var breakpointId=(event.data.breakpointId);var location=(event.data.location);var breakpoint=this._breakpointForDebuggerId[breakpointId];if(!breakpoint)
-return;breakpoint._addResolvedLocation(location);},_removeBreakpoint:function(breakpoint,removeFromStorage)
-{var uiSourceCode=breakpoint.uiSourceCode();var breakpoints=uiSourceCode?this._breakpointsForPrimaryUISourceCode.get(uiSourceCode)||[]:[];var index=breakpoints.indexOf(breakpoint);if(index>-1)
-breakpoints.splice(index,1);console.assert(!breakpoint._debuggerId)
-if(removeFromStorage)
-this._storage._removeBreakpoint(breakpoint);},_uiLocationAdded:function(breakpoint,uiLocation)
-{var breakpoints=this._breakpointsForUISourceCode.get(uiLocation.uiSourceCode);if(!breakpoints){breakpoints={};this._breakpointsForUISourceCode.put(uiLocation.uiSourceCode,breakpoints);}
-var lineBreakpoints=breakpoints[uiLocation.lineNumber];if(!lineBreakpoints){lineBreakpoints=[];breakpoints[uiLocation.lineNumber]=lineBreakpoints;}
-lineBreakpoints.push(breakpoint);this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.BreakpointAdded,{breakpoint:breakpoint,uiLocation:uiLocation});},_uiLocationRemoved:function(breakpoint,uiLocation)
-{var breakpoints=this._breakpointsForUISourceCode.get(uiLocation.uiSourceCode);if(!breakpoints)
-return;var lineBreakpoints=breakpoints[uiLocation.lineNumber];if(!lineBreakpoints)
-return;lineBreakpoints.remove(breakpoint);if(!lineBreakpoints.length)
-delete breakpoints[uiLocation.lineNumber];if(Object.keys(breakpoints).length===0)
-this._breakpointsForUISourceCode.remove(uiLocation.uiSourceCode);this.dispatchEventToListeners(WebInspector.BreakpointManager.Events.BreakpointRemoved,{breakpoint:breakpoint,uiLocation:uiLocation});},__proto__:WebInspector.Object.prototype}
-WebInspector.BreakpointManager.Breakpoint=function(breakpointManager,projectId,path,sourceFileId,lineNumber,condition,enabled)
-{this._breakpointManager=breakpointManager;this._projectId=projectId;this._path=path;this._lineNumber=lineNumber;this._sourceFileId=sourceFileId;this._liveLocations=[];this._uiLocations={};this._condition;this._enabled;this._updateBreakpoint(condition,enabled);}
-WebInspector.BreakpointManager.Breakpoint.prototype={projectId:function()
-{return this._projectId;},path:function()
-{return this._path;},lineNumber:function()
-{return this._lineNumber;},uiSourceCode:function()
-{return this._breakpointManager._workspace.uiSourceCode(this._projectId,this._path);},_addResolvedLocation:function(location)
-{this._liveLocations.push(this._breakpointManager._debuggerModel.createLiveLocation(location,this._locationUpdated.bind(this,location)));},_locationUpdated:function(location,uiLocation)
-{var stringifiedLocation=location.scriptId+":"+location.lineNumber+":"+location.columnNumber;var oldUILocation=(this._uiLocations[stringifiedLocation]);if(oldUILocation)
-this._breakpointManager._uiLocationRemoved(this,oldUILocation);if(this._uiLocations[""]){var defaultLocation=this._uiLocations[""];delete this._uiLocations[""];this._breakpointManager._uiLocationRemoved(this,defaultLocation);}
-this._uiLocations[stringifiedLocation]=uiLocation;this._breakpointManager._uiLocationAdded(this,uiLocation);},enabled:function()
-{return this._enabled;},setEnabled:function(enabled)
-{this._updateBreakpoint(this._condition,enabled);},condition:function()
-{return this._condition;},setCondition:function(condition)
-{this._updateBreakpoint(condition,this._enabled);},_updateBreakpoint:function(condition,enabled)
-{if(this._enabled===enabled&&this._condition===condition)
-return;this._removeFromDebugger();this._enabled=enabled;this._condition=condition;this._breakpointManager._storage._updateBreakpoint(this);this._fakeBreakpointAtPrimaryLocation();this._updateInDebugger();},_updateInDebugger:function()
-{var uiSourceCode=this.uiSourceCode();if(!uiSourceCode||!uiSourceCode.hasSourceMapping())
-return;var scriptFile=uiSourceCode&&uiSourceCode.scriptFile();if(this._enabled&&!(scriptFile&&scriptFile.hasDivergedFromVM()))
-this._setInDebugger();},remove:function(keepInStorage)
-{var removeFromStorage=!keepInStorage;this._resetLocations();this._removeFromDebugger();this._breakpointManager._removeBreakpoint(this,removeFromStorage);},_setInDebugger:function()
-{this._removeFromDebugger();var uiSourceCode=this._breakpointManager._workspace.uiSourceCode(this._projectId,this._path);if(!uiSourceCode)
-return;var rawLocation=uiSourceCode.uiLocationToRawLocation(this._lineNumber,0);var debuggerModelLocation=(rawLocation);if(debuggerModelLocation)
-this._breakpointManager._debuggerModel.setBreakpointByScriptLocation(debuggerModelLocation,this._condition,this._didSetBreakpointInDebugger.bind(this));else if(uiSourceCode.url)
-this._breakpointManager._debuggerModel.setBreakpointByURL(uiSourceCode.url,this._lineNumber,0,this._condition,this._didSetBreakpointInDebugger.bind(this));},_didSetBreakpointInDebugger:function(breakpointId,locations)
-{if(!breakpointId){this._resetLocations();this._breakpointManager._removeBreakpoint(this,false);return;}
-this._debuggerId=breakpointId;this._breakpointManager._breakpointForDebuggerId[breakpointId]=this;if(!locations.length){this._fakeBreakpointAtPrimaryLocation();return;}
-this._resetLocations();for(var i=0;i<locations.length;++i){var script=this._breakpointManager._debuggerModel.scriptForId(locations[i].scriptId);var uiLocation=script.rawLocationToUILocation(locations[i].lineNumber,locations[i].columnNumber);if(this._breakpointManager.findBreakpoint(uiLocation.uiSourceCode,uiLocation.lineNumber)){this.remove();return;}}
-for(var i=0;i<locations.length;++i)
-this._addResolvedLocation(locations[i]);},_removeFromDebugger:function()
-{if(!this._debuggerId)
-return;this._breakpointManager._debuggerModel.removeBreakpoint(this._debuggerId);delete this._breakpointManager._breakpointForDebuggerId[this._debuggerId];delete this._debuggerId;},_resetLocations:function()
-{for(var stringifiedLocation in this._uiLocations)
-this._breakpointManager._uiLocationRemoved(this,this._uiLocations[stringifiedLocation]);for(var i=0;i<this._liveLocations.length;++i)
-this._liveLocations[i].dispose();this._liveLocations=[];this._uiLocations={};},_breakpointStorageId:function()
-{return WebInspector.BreakpointManager._breakpointStorageId(this._sourceFileId,this._lineNumber);},_fakeBreakpointAtPrimaryLocation:function()
-{this._resetLocations();var uiSourceCode=this._breakpointManager._workspace.uiSourceCode(this._projectId,this._path);if(!uiSourceCode)
-return;var uiLocation=new WebInspector.UILocation(uiSourceCode,this._lineNumber,0);this._uiLocations[""]=uiLocation;this._breakpointManager._uiLocationAdded(this,uiLocation);}}
-WebInspector.BreakpointManager.Storage=function(breakpointManager,setting)
-{this._breakpointManager=breakpointManager;this._setting=setting;var breakpoints=this._setting.get();this._breakpoints={};for(var i=0;i<breakpoints.length;++i){var breakpoint=(breakpoints[i]);this._breakpoints[breakpoint.sourceFileId+":"+breakpoint.lineNumber]=breakpoint;}}
-WebInspector.BreakpointManager.Storage.prototype={mute:function()
-{this._muted=true;},unmute:function()
-{delete this._muted;},breakpointItems:function(uiSourceCode)
-{var result=[];var sourceFileId=WebInspector.BreakpointManager._sourceFileId(uiSourceCode);for(var id in this._breakpoints){var breakpoint=this._breakpoints[id];if(breakpoint.sourceFileId===sourceFileId)
-result.push(breakpoint);}
-return result;},_updateBreakpoint:function(breakpoint)
-{if(this._muted||!breakpoint._breakpointStorageId())
-return;this._breakpoints[breakpoint._breakpointStorageId()]=new WebInspector.BreakpointManager.Storage.Item(breakpoint);this._save();},_removeBreakpoint:function(breakpoint)
-{if(this._muted)
-return;delete this._breakpoints[breakpoint._breakpointStorageId()];this._save();},_save:function()
-{var breakpointsArray=[];for(var id in this._breakpoints)
-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;WebInspector.ConcatenatedScriptsContentProvider=function(scripts)
-{this._scripts=scripts;}
-WebInspector.ConcatenatedScriptsContentProvider.scriptOpenTag="<script>";WebInspector.ConcatenatedScriptsContentProvider.scriptCloseTag="</script>";WebInspector.ConcatenatedScriptsContentProvider.prototype={_sortedScripts:function()
-{if(this._sortedScriptsArray)
-return this._sortedScriptsArray;this._sortedScriptsArray=[];var scripts=this._scripts.slice();scripts.sort(function(x,y){return x.lineOffset-y.lineOffset||x.columnOffset-y.columnOffset;});var scriptOpenTagLength=WebInspector.ConcatenatedScriptsContentProvider.scriptOpenTag.length;var scriptCloseTagLength=WebInspector.ConcatenatedScriptsContentProvider.scriptCloseTag.length;this._sortedScriptsArray.push(scripts[0]);for(var i=1;i<scripts.length;++i){var previousScript=this._sortedScriptsArray[this._sortedScriptsArray.length-1];var lineNumber=previousScript.endLine;var columnNumber=previousScript.endColumn+scriptCloseTagLength+scriptOpenTagLength;if(lineNumber<scripts[i].lineOffset||(lineNumber===scripts[i].lineOffset&&columnNumber<=scripts[i].columnOffset))
-this._sortedScriptsArray.push(scripts[i]);}
-return this._sortedScriptsArray;},contentURL:function()
-{return"";},contentType:function()
-{return WebInspector.resourceTypes.Document;},requestContent:function(callback)
-{var scripts=this._sortedScripts();var sources=[];function didRequestSource(content)
-{sources.push(content);if(sources.length==scripts.length)
-callback(this._concatenateScriptsContent(scripts,sources));}
-for(var i=0;i<scripts.length;++i)
-scripts[i].requestContent(didRequestSource.bind(this));},searchInContent:function(query,caseSensitive,isRegex,callback)
-{var results={};var scripts=this._sortedScripts();var scriptsLeft=scripts.length;function maybeCallback()
-{if(scriptsLeft)
-return;var result=[];for(var i=0;i<scripts.length;++i)
-result=result.concat(results[scripts[i].scriptId]);callback(result);}
-function searchCallback(script,searchMatches)
-{results[script.scriptId]=[];for(var i=0;i<searchMatches.length;++i){var searchMatch=new WebInspector.ContentProvider.SearchMatch(searchMatches[i].lineNumber+script.lineOffset,searchMatches[i].lineContent);results[script.scriptId].push(searchMatch);}
-scriptsLeft--;maybeCallback.call(this);}
-maybeCallback();for(var i=0;i<scripts.length;++i)
-scripts[i].searchInContent(query,caseSensitive,isRegex,searchCallback.bind(this,scripts[i]));},_concatenateScriptsContent:function(scripts,sources)
-{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;}}
-WebInspector.CompilerSourceMappingContentProvider=function(sourceURL,contentType)
-{this._sourceURL=sourceURL;this._contentType=contentType;}
-WebInspector.CompilerSourceMappingContentProvider.prototype={contentURL:function()
-{return this._sourceURL;},contentType:function()
-{return this._contentType;},requestContent:function(callback)
-{NetworkAgent.loadResourceForFrontend(WebInspector.resourceTreeModel.mainFrame.id,this._sourceURL,undefined,contentLoaded.bind(this));function contentLoaded(error,statusCode,headers,content)
-{if(error||statusCode>=400){console.error("Could not load content for "+this._sourceURL+" : "+(error||("HTTP status code: "+statusCode)));callback(null);return;}
-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));}}}
-WebInspector.StaticContentProvider=function(contentType,content)
-{this._content=content;this._contentType=contentType;}
-WebInspector.StaticContentProvider.prototype={contentURL:function()
-{return"";},contentType:function()
-{return this._contentType;},requestContent:function(callback)
-{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);}}
-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);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()
-{WebInspector.ContentProviderBasedProjectDelegate.call(this,WebInspector.projectTypes.Debugger);}
-WebInspector.DebuggerProjectDelegate.prototype={id:function()
-{return"debugger:";},displayName:function()
-{return"debugger";},addScript:function(script)
-{var contentProvider=script.isInlineScript()?new WebInspector.ConcatenatedScriptsContentProvider([script]):script;var splitURL=WebInspector.ParsedURL.splitURL(script.sourceURL);var name=splitURL[splitURL.length-1];name="VM"+script.scriptId+(name?" "+name:"");return this.addContentProvider("",name,script.sourceURL,contentProvider,false,script.isContentScript);},__proto__:WebInspector.ContentProviderBasedProjectDelegate.prototype}
-WebInspector.ResourceScriptMapping=function(workspace)
-{this._workspace=workspace;this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAddedToWorkspace,this);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);this._initialize();}
-WebInspector.ResourceScriptMapping.prototype={rawLocationToUILocation:function(rawLocation)
-{var debuggerModelLocation=(rawLocation);var script=WebInspector.debuggerModel.scriptForId(debuggerModelLocation.scriptId);var uiSourceCode=this._workspaceUISourceCodeForScript(script);if(!uiSourceCode)
-return null;var scriptFile=uiSourceCode.scriptFile();if(scriptFile&&((scriptFile.hasDivergedFromVM()&&!scriptFile.isMergingToVM())||scriptFile.isDivergingFromVM()))
-return null;return new WebInspector.UILocation(uiSourceCode,debuggerModelLocation.lineNumber,debuggerModelLocation.columnNumber||0);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
-{var scripts=this._scriptsForUISourceCode(uiSourceCode);console.assert(scripts.length);return WebInspector.debuggerModel.createRawLocation(scripts[0],lineNumber,columnNumber);},addScript:function(script)
-{if(script.isAnonymousScript())
-return;script.pushSourceMapping(this);var scriptsForSourceURL=script.isInlineScript()?this._inlineScriptsForSourceURL:this._nonInlineScriptsForSourceURL;scriptsForSourceURL.put(script.sourceURL,scriptsForSourceURL.get(script.sourceURL)||[]);scriptsForSourceURL.get(script.sourceURL).push(script);var uiSourceCode=this._workspaceUISourceCodeForScript(script);if(!uiSourceCode)
-return;this._bindUISourceCodeToScripts(uiSourceCode,[script]);},_uiSourceCodeAddedToWorkspace:function(event)
-{var uiSourceCode=(event.data);if(!uiSourceCode.url)
-return;var scripts=this._scriptsForUISourceCode(uiSourceCode);if(!scripts.length)
-return;this._bindUISourceCodeToScripts(uiSourceCode,scripts);},_hasMergedToVM:function(uiSourceCode)
-{var scripts=this._scriptsForUISourceCode(uiSourceCode);if(!scripts.length)
-return;for(var i=0;i<scripts.length;++i)
-scripts[i].updateLocations();},_hasDivergedFromVM:function(uiSourceCode)
-{var scripts=this._scriptsForUISourceCode(uiSourceCode);if(!scripts.length)
-return;for(var i=0;i<scripts.length;++i)
-scripts[i].updateLocations();},_workspaceUISourceCodeForScript:function(script)
-{if(script.isAnonymousScript())
-return null;return this._workspace.uiSourceCodeForURL(script.sourceURL);},_scriptsForUISourceCode:function(uiSourceCode)
-{var isInlineScript;switch(uiSourceCode.contentType()){case WebInspector.resourceTypes.Document:isInlineScript=true;break;case WebInspector.resourceTypes.Script:isInlineScript=false;break;default:return[];}
-if(!uiSourceCode.url)
-return[];var scriptsForSourceURL=isInlineScript?this._inlineScriptsForSourceURL:this._nonInlineScriptsForSourceURL;return scriptsForSourceURL.get(uiSourceCode.url)||[];},_bindUISourceCodeToScripts:function(uiSourceCode,scripts)
-{console.assert(scripts.length);var scriptFile=new WebInspector.ResourceScriptFile(this,uiSourceCode,scripts);uiSourceCode.setScriptFile(scriptFile);for(var i=0;i<scripts.length;++i)
-scripts[i].updateLocations();uiSourceCode.setSourceMapping(this);},_unbindUISourceCodeFromScripts:function(uiSourceCode,scripts)
-{console.assert(scripts.length);var scriptFile=(uiSourceCode.scriptFile());if(scriptFile){scriptFile.dispose();uiSourceCode.setScriptFile(null);}
-uiSourceCode.setSourceMapping(null);},_initialize:function()
-{this._inlineScriptsForSourceURL=new StringMap();this._nonInlineScriptsForSourceURL=new StringMap();},_debuggerReset:function()
-{function unbindUISourceCodesForScripts(scripts)
-{if(!scripts.length)
-return;var uiSourceCode=this._workspaceUISourceCodeForScript(scripts[0]);if(!uiSourceCode)
-return;this._unbindUISourceCodeFromScripts(uiSourceCode,scripts);}
-this._inlineScriptsForSourceURL.values().forEach(unbindUISourceCodesForScripts.bind(this));this._nonInlineScriptsForSourceURL.values().forEach(unbindUISourceCodesForScripts.bind(this));this._initialize();},}
-WebInspector.ScriptFile=function()
-{}
-WebInspector.ScriptFile.Events={DidMergeToVM:"DidMergeToVM",DidDivergeFromVM:"DidDivergeFromVM",}
-WebInspector.ScriptFile.prototype={hasDivergedFromVM:function(){return false;},isDivergingFromVM:function(){return false;},isMergingToVM:function(){return false;},checkMapping:function(){},}
-WebInspector.ResourceScriptFile=function(resourceScriptMapping,uiSourceCode,scripts)
-{console.assert(scripts.length);WebInspector.ScriptFile.call(this);this._resourceScriptMapping=resourceScriptMapping;this._uiSourceCode=uiSourceCode;if(this._uiSourceCode.contentType()===WebInspector.resourceTypes.Script)
-this._script=scripts[0];this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);this._update();}
-WebInspector.ResourceScriptFile.prototype={_workingCopyCommitted:function(event)
-{function innerCallback(error,errorData)
-{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();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._uiSourceCode.workingCopy()!==this._scriptSource;},_workingCopyChanged:function(event)
-{this._update();},_update:function()
-{if(this._isDiverged()&&!this._hasDivergedFromVM)
-this._divergeFromVM();else if(!this._isDiverged()&&this._hasDivergedFromVM)
-this._mergeToVM();},_divergeFromVM:function()
-{this._isDivergingFromVM=true;this._resourceScriptMapping._hasDivergedFromVM(this._uiSourceCode);delete this._isDivergingFromVM;this._hasDivergedFromVM=true;this.dispatchEventToListeners(WebInspector.ScriptFile.Events.DidDivergeFromVM,this._uiSourceCode);},_mergeToVM:function()
-{delete this._hasDivergedFromVM;this._isMergingToVM=true;this._resourceScriptMapping._hasMergedToVM(this._uiSourceCode);delete this._isMergingToVM;this.dispatchEventToListeners(WebInspector.ScriptFile.Events.DidMergeToVM,this._uiSourceCode);},hasDivergedFromVM:function()
-{return this._hasDivergedFromVM;},isDivergingFromVM:function()
-{return this._isDivergingFromVM;},isMergingToVM:function()
-{return this._isMergingToVM;},checkMapping:function()
-{if(!this._script)
-return;if(typeof this._scriptSource!=="undefined")
-return;this._script.requestContent(callback.bind(this));function callback(source)
-{this._scriptSource=source;this._update();}},dispose:function()
-{this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);this._uiSourceCode.removeEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);},__proto__:WebInspector.Object.prototype}
-WebInspector.CompilerScriptMapping=function(workspace,networkWorkspaceProvider)
-{this._workspace=workspace;this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAddedToWorkspace,this);this._networkWorkspaceProvider=networkWorkspaceProvider;this._sourceMapForSourceMapURL={};this._pendingSourceMapLoadingCallbacks={};this._sourceMapForScriptId={};this._scriptForSourceMap=new Map();this._sourceMapForURL=new StringMap();WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);}
-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)
-{if(!uiSourceCode.url)
-return null;var sourceMap=this._sourceMapForURL.get(uiSourceCode.url);if(!sourceMap)
-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;}
-this._sourceMapForScriptId[script.scriptId]=sourceMap;this._scriptForSourceMap.put(sourceMap,script);var sourceURLs=sourceMap.sources();for(var i=0;i<sourceURLs.length;++i){var sourceURL=sourceURLs[i];if(this._sourceMapForURL.get(sourceURL))
-continue;this._sourceMapForURL.put(sourceURL,sourceMap);if(!this._workspace.hasMappingForURL(sourceURL)&&!this._workspace.uiSourceCodeForURL(sourceURL)){var contentProvider=sourceMap.sourceContentProvider(sourceURL,WebInspector.resourceTypes.Script);this._networkWorkspaceProvider.addFileForURL(sourceURL,contentProvider,true);}
-var uiSourceCode=this._workspace.uiSourceCodeForURL(sourceURL);if(uiSourceCode){this._bindUISourceCode(uiSourceCode);uiSourceCode.isContentScript=script.isContentScript;}else{WebInspector.showErrorMessage(WebInspector.UIString("Failed to locate workspace file mapped to URL %s from source map %s",sourceURL,sourceMap.url()));}}
-script.updateLocations();}},_bindUISourceCode:function(uiSourceCode)
-{uiSourceCode.setSourceMapping(this);},_unbindUISourceCode:function(uiSourceCode)
-{uiSourceCode.setSourceMapping(null);},_uiSourceCodeAddedToWorkspace:function(event)
-{var uiSourceCode=(event.data);if(!uiSourceCode.url||!this._sourceMapForURL.get(uiSourceCode.url))
-return;this._bindUISourceCode(uiSourceCode);},loadSourceMapForScript:function(script,callback)
-{if(!script.sourceMapURL){callback(null);return;}
-var scriptURL=WebInspector.ParsedURL.completeURL(WebInspector.inspectedPageURL,script.sourceURL);if(!scriptURL){callback(null);return;}
-var sourceMapURL=WebInspector.ParsedURL.completeURL(scriptURL,script.sourceMapURL);if(!sourceMapURL){callback(null);return;}
-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 url=(sourceMapURL);var callbacks=this._pendingSourceMapLoadingCallbacks[url];delete this._pendingSourceMapLoadingCallbacks[url];if(!callbacks)
-return;if(sourceMap)
-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)
-continue;this._unbindUISourceCode(uiSourceCode);}}
-this._sourceMapForURL.values().forEach(unbindUISourceCodesForSourceMap.bind(this));this._sourceMapForSourceMapURL={};this._pendingSourceMapLoadingCallbacks={};this._sourceMapForScriptId={};this._scriptForSourceMap.clear();this._sourceMapForURL.clear();}}
-WebInspector.LiveEditSupport=function(workspace)
-{this._workspaceProvider=new WebInspector.SimpleWorkspaceProvider(workspace,WebInspector.projectTypes.LiveEdit);WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);this._debuggerReset();}
-WebInspector.LiveEditSupport.prototype={uiSourceCodeForLiveEdit:function(uiSourceCode)
-{var rawLocation=uiSourceCode.uiLocationToRawLocation(0,0);var debuggerModelLocation=(rawLocation);var script=WebInspector.debuggerModel.scriptForId(debuggerModelLocation.scriptId);var uiLocation=script.rawLocationToUILocation(0,0);if(uiLocation.uiSourceCode!==uiSourceCode)
-return uiLocation.uiSourceCode;if(this._uiSourceCodeForScriptId[script.scriptId])
-return this._uiSourceCodeForScriptId[script.scriptId];console.assert(!script.isInlineScript());var liveEditUISourceCode=this._workspaceProvider.addUniqueFileForURL(script.sourceURL,script,true,script.isContentScript);liveEditUISourceCode.setScriptFile(new WebInspector.LiveEditScriptFile(uiSourceCode,liveEditUISourceCode,script.scriptId));this._uiSourceCodeForScriptId[script.scriptId]=liveEditUISourceCode;this._scriptIdForUISourceCode.put(liveEditUISourceCode,script.scriptId);return liveEditUISourceCode;},_debuggerReset:function()
-{this._uiSourceCodeForScriptId={};this._scriptIdForUISourceCode=new Map();this._workspaceProvider.reset();},}
-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 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)
-{WebInspector.ScriptFile.call(this);this._uiSourceCode=uiSourceCode;this._liveEditUISourceCode=liveEditUISourceCode;this._scriptId=scriptId;this._liveEditUISourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyCommitted,this._workingCopyCommitted,this);}
-WebInspector.LiveEditScriptFile.prototype={_workingCopyCommitted:function(event)
-{function innerCallback(error,errorData)
-{if(error){var script=WebInspector.debuggerModel.scriptForId(this._scriptId);WebInspector.LiveEditSupport.logDetailedError(error,errorData,script);return;}
-WebInspector.LiveEditSupport.logSuccess();}
-var script=WebInspector.debuggerModel.scriptForId(this._scriptId);WebInspector.debuggerModel.setScriptSource(script.scriptId,this._liveEditUISourceCode.workingCopy(),innerCallback.bind(this));},hasDivergedFromVM:function()
-{return true;},isDivergingFromVM:function()
-{return false;},isMergingToVM:function()
-{return false;},checkMapping:function()
-{},__proto__:WebInspector.Object.prototype}
-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)
-{var header=(event.data);this._stylesSourceMapping.removeHeader(header);this._sassSourceMapping.removeHeader(header);}}
-WebInspector.SASSSourceMapping=function(cssModel,workspace,networkWorkspaceProvider)
-{this.pollPeriodMs=5000;this.pollIntervalMs=200;this._cssModel=cssModel;this._workspace=workspace;this._networkWorkspaceProvider=networkWorkspaceProvider;this._addingRevisionCounter=0;this._reset();WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventTypes.SavedURL,this._fileSaveFinished,this);WebInspector.settings.cssSourceMapsEnabled.addChangeListener(this._toggleSourceMapSupport,this)
-this._cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetChanged,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAdded,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeContentCommitted,this._uiSourceCodeContentCommitted,this);this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._reset,this);}
-WebInspector.SASSSourceMapping.prototype={_styleSheetChanged:function(event)
-{var id=(event.data.styleSheetId);if(this._addingRevisionCounter){--this._addingRevisionCounter;return;}
-var header=this._cssModel.styleSheetHeaderForId(id);if(!header)
-return;this.removeHeader(header);},_toggleSourceMapSupport:function(event)
-{var enabled=(event.data);var headers=this._cssModel.styleSheetHeaders();for(var i=0;i<headers.length;++i){if(enabled)
-this.addHeader(headers[i]);else
-this.removeHeader(headers[i]);}},_fileSaveFinished:function(event)
-{var sassURL=(event.data);this._sassFileSaved(sassURL,false);},_headerValue:function(headerName,headers)
-{headerName=headerName.toLowerCase();var value=null;for(var name in headers){if(name.toLowerCase()===headerName){value=headers[name];break;}}
-return value;},_lastModified:function(headers)
-{var lastModifiedHeader=this._headerValue("last-modified",headers);if(!lastModifiedHeader)
-return null;var lastModified=new Date(lastModifiedHeader);if(isNaN(lastModified.getTime()))
-return null;return lastModified;},_checkLastModified:function(headers,url)
-{var lastModified=this._lastModified(headers);if(lastModified)
-return lastModified;var etagMessage=this._headerValue("etag",headers)?", \"ETag\" response header found instead":"";var message=String.sprintf("The \"Last-Modified\" response header is missing or invalid for %s%s. The CSS auto-reload functionality will not work correctly.",url,etagMessage);WebInspector.log(message);return null;},_sassFileSaved:function(sassURL,wasLoadedFromFileSystem)
-{var cssURLs=this._cssURLsForSASSURL[sassURL];if(!cssURLs)
-return;if(!WebInspector.settings.cssReloadEnabled.get())
-return;var sassFile=this._workspace.uiSourceCodeForURL(sassURL);console.assert(sassFile);if(wasLoadedFromFileSystem)
-sassFile.requestMetadata(metadataReceived.bind(this));else
-NetworkAgent.loadResourceForFrontend(WebInspector.resourceTreeModel.mainFrame.id,sassURL,undefined,sassLoadedViaNetwork.bind(this));function sassLoadedViaNetwork(error,statusCode,headers,content)
-{if(error||statusCode>=400){console.error("Could not load content for "+sassURL+" : "+(error||("HTTP status code: "+statusCode)));return;}
-var lastModified=this._checkLastModified(headers,sassURL);if(!lastModified)
-return;metadataReceived.call(this,lastModified);}
-function metadataReceived(timestamp)
-{if(!timestamp)
-return;var now=Date.now();var deadlineMs=now+this.pollPeriodMs;var pollData=this._pollDataForSASSURL[sassURL];if(pollData){var dataByURL=pollData.dataByURL;for(var url in dataByURL)
-clearTimeout(dataByURL[url].timer);}
-pollData={dataByURL:{},deadlineMs:deadlineMs,sassTimestamp:timestamp};this._pollDataForSASSURL[sassURL]=pollData;for(var i=0;i<cssURLs.length;++i){pollData.dataByURL[cssURLs[i]]={previousPoll:now};this._pollCallback(cssURLs[i],sassURL,false);}}},_pollCallback:function(cssURL,sassURL,stopPolling)
-{var now;var pollData=this._pollDataForSASSURL[sassURL];if(!pollData)
-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(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)
-{var cssURL=cssUISourceCode.url;var data=this._pollDataForSASSURL[sassURL];if(!data){callback(cssURL,sassURL,true);return;}
-var headers={"if-modified-since":new Date(data.sassTimestamp.getTime()-1000).toUTCString()};NetworkAgent.loadResourceForFrontend(WebInspector.resourceTreeModel.mainFrame.id,cssURL,headers,contentLoaded.bind(this));function contentLoaded(error,statusCode,headers,content)
-{if(error||statusCode>=400){console.error("Could not load content for "+cssURL+" : "+(error||("HTTP status code: "+statusCode)));callback(cssURL,sassURL,true);return;}
-if(!this._pollDataForSASSURL[sassURL]){callback(cssURL,sassURL,true);return;}
-if(statusCode===304){callback(cssURL,sassURL,false);return;}
-var lastModified=this._checkLastModified(headers,cssURL);if(!lastModified){callback(cssURL,sassURL,true);return;}
-if(lastModified.getTime()<data.sassTimestamp.getTime()){callback(cssURL,sassURL,false);return;}
-this._updateCSSRevision(cssUISourceCode,content,sassURL,callback);}},_updateCSSRevision:function(cssUISourceCode,content,sassURL,callback)
-{++this._addingRevisionCounter;cssUISourceCode.addRevision(content);this._cssUISourceCodeUpdated(cssUISourceCode.url,sassURL,callback);},_reloadCSSFromFileSystem:function(cssUISourceCode,sassURL,callback)
-{cssUISourceCode.requestMetadata(metadataCallback.bind(this));function metadataCallback(timestamp)
-{var cssURL=cssUISourceCode.url;if(!timestamp){callback(cssURL,sassURL,false);return;}
-var cssTimestamp=timestamp.getTime();var pollData=this._pollDataForSASSURL[sassURL];if(!pollData){callback(cssURL,sassURL,true);return;}
-if(cssTimestamp<pollData.sassTimestamp.getTime()){callback(cssURL,sassURL,false);return;}
-cssUISourceCode.requestOriginalContent(contentCallback.bind(this));function contentCallback(content)
-{if(content===null)
-return;this._updateCSSRevision(cssUISourceCode,content,sassURL,callback);}}},_cssUISourceCodeUpdated:function(cssURL,sassURL,callback)
-{var completeSourceMapURL=this._completeSourceMapURLForCSSURL[cssURL];if(!completeSourceMapURL)
-return;var ids=this._cssModel.styleSheetIdsForURL(cssURL);if(!ids)
-return;var headers=[];for(var i=0;i<ids.length;++i)
-headers.push(this._cssModel.styleSheetHeaderForId(ids[i]));for(var i=0;i<ids.length;++i)
-this._loadSourceMapAndBindUISourceCode(headers,true,completeSourceMapURL);callback(cssURL,sassURL,true);},addHeader:function(header)
-{if(!header.sourceMapURL||!header.sourceURL||header.isInline||!WebInspector.settings.cssSourceMapsEnabled.get())
-return;var completeSourceMapURL=WebInspector.ParsedURL.completeURL(header.sourceURL,header.sourceMapURL);if(!completeSourceMapURL)
-return;this._completeSourceMapURLForCSSURL[header.sourceURL]=completeSourceMapURL;this._loadSourceMapAndBindUISourceCode([header],false,completeSourceMapURL);},removeHeader:function(header)
-{var sourceURL=header.sourceURL;if(!sourceURL||!header.sourceMapURL||header.isInline||!this._completeSourceMapURLForCSSURL[sourceURL])
-return;delete this._sourceMapByStyleSheetURL[sourceURL];delete this._completeSourceMapURLForCSSURL[sourceURL];for(var sassURL in this._cssURLsForSASSURL){var urls=this._cssURLsForSASSURL[sassURL];urls.remove(sourceURL);if(!urls.length)
-delete this._cssURLsForSASSURL[sassURL];}
-var completeSourceMapURL=WebInspector.ParsedURL.completeURL(sourceURL,header.sourceMapURL);if(completeSourceMapURL)
-delete this._sourceMapByURL[completeSourceMapURL];header.updateLocations();},_loadSourceMapAndBindUISourceCode:function(headersWithSameSourceURL,forceRebind,completeSourceMapURL)
-{console.assert(headersWithSameSourceURL.length);var sourceURL=headersWithSameSourceURL[0].sourceURL;this._loadSourceMapForStyleSheet(completeSourceMapURL,sourceURL,forceRebind,sourceMapLoaded.bind(this));function sourceMapLoaded(sourceMap)
-{if(!sourceMap)
-return;this._sourceMapByStyleSheetURL[sourceURL]=sourceMap;for(var i=0;i<headersWithSameSourceURL.length;++i){if(forceRebind)
-headersWithSameSourceURL[i].updateLocations();else
-this._bindUISourceCode(headersWithSameSourceURL[i],sourceMap);}}},_addCSSURLforSASSURL:function(cssURL,sassURL)
-{var cssURLs;if(this._cssURLsForSASSURL.hasOwnProperty(sassURL))
-cssURLs=this._cssURLsForSASSURL[sassURL];else{cssURLs=[];this._cssURLsForSASSURL[sassURL]=cssURLs;}
-if(cssURLs.indexOf(cssURL)===-1)
-cssURLs.push(cssURL);},_loadSourceMapForStyleSheet:function(completeSourceMapURL,completeStyleSheetURL,forceReload,callback)
-{var sourceMap=this._sourceMapByURL[completeSourceMapURL];if(sourceMap&&!forceReload){callback(sourceMap);return;}
-var pendingCallbacks=this._pendingSourceMapLoadingCallbacks[completeSourceMapURL];if(pendingCallbacks){pendingCallbacks.push(callback);return;}
-pendingCallbacks=[callback];this._pendingSourceMapLoadingCallbacks[completeSourceMapURL]=pendingCallbacks;WebInspector.SourceMap.load(completeSourceMapURL,completeStyleSheetURL,sourceMapLoaded.bind(this));function sourceMapLoaded(sourceMap)
-{var callbacks=this._pendingSourceMapLoadingCallbacks[completeSourceMapURL];delete this._pendingSourceMapLoadingCallbacks[completeSourceMapURL];if(!callbacks)
-return;if(sourceMap)
-this._sourceMapByURL[completeSourceMapURL]=sourceMap;else
-delete this._sourceMapByURL[completeSourceMapURL];for(var i=0;i<callbacks.length;++i)
-callbacks[i](sourceMap);}},_bindUISourceCode:function(header,sourceMap)
-{header.pushSourceMapping(this);var rawURL=header.sourceURL;var sources=sourceMap.sources();for(var i=0;i<sources.length;++i){var url=sources[i];this._addCSSURLforSASSURL(rawURL,url);if(!this._workspace.hasMappingForURL(url)&&!this._workspace.uiSourceCodeForURL(url)){var contentProvider=sourceMap.sourceContentProvider(url,WebInspector.resourceTypes.Stylesheet);this._networkWorkspaceProvider.addFileForURL(url,contentProvider,true);}}},rawLocationToUILocation:function(rawLocation)
-{var location=(rawLocation);var entry;var sourceMap=this._sourceMapByStyleSheetURL[location.url];if(!sourceMap)
-return null;entry=sourceMap.findEntry(location.lineNumber,location.columnNumber);if(!entry||entry.length===2)
-return null;var uiSourceCode=this._workspace.uiSourceCodeForURL(entry[2]);if(!uiSourceCode)
-return null;return new WebInspector.UILocation(uiSourceCode,entry[3],entry[4]);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
-{return new WebInspector.CSSLocation(uiSourceCode.url||"",lineNumber,columnNumber);},_uiSourceCodeAdded:function(event)
-{var uiSourceCode=(event.data);var cssURLs=this._cssURLsForSASSURL[uiSourceCode.url];if(!cssURLs)
-return;for(var i=0;i<cssURLs.length;++i){var ids=this._cssModel.styleSheetIdsForURL(cssURLs[i]);for(var j=0;j<ids.length;++j){var header=this._cssModel.styleSheetHeaderForId(ids[j]);console.assert(header);header.updateLocations();}}},_uiSourceCodeContentCommitted:function(event)
-{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._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)
-this._setChildrenPayload(payload.children);this._setPseudoElements(payload.pseudoElements);if(payload.contentDocument){this._contentDocument=new WebInspector.DOMDocument(domAgent,payload.contentDocument);this._children=[this._contentDocument];this._renumber();}
-if(this._nodeType===Node.ELEMENT_NODE){if(this.ownerDocument&&!this.ownerDocument.documentElement&&this._nodeName==="HTML")
-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.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()
-{return this._childNodeCount;},hasShadowRoots:function()
-{return!!this._shadowRoots.length;},shadowRoots:function()
-{return this._shadowRoots.slice();},templateContent:function()
-{return this._templateContent;},nodeType:function()
-{return this._nodeType;},nodeName:function()
-{return this._nodeName;},pseudoType:function()
-{return this._pseudoType;},hasPseudoElements:function()
-{return Object.keys(this._pseudoElements).length!==0;},pseudoElements:function()
-{return this._pseudoElements;},isInShadowTree: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()
-{return this._nodeValue;},setNodeValue:function(value,callback)
-{DOMAgent.setNodeValue(this.id,value,WebInspector.domAgent._markRevision(this,callback));},getAttribute:function(name)
-{var attr=this._attributesMap[name];return attr?attr.value:undefined;},setAttribute:function(name,text,callback)
-{DOMAgent.setAttributesAsText(this.id,text,name,WebInspector.domAgent._markRevision(this,callback));},setAttributeValue:function(name,value,callback)
-{DOMAgent.setAttributeValue(this.id,name,value,WebInspector.domAgent._markRevision(this,callback));},attributes:function()
-{return this._attributes;},removeAttribute:function(name,callback)
-{function mycallback(error)
-{if(!error){delete this._attributesMap[name];for(var i=0;i<this._attributes.length;++i){if(this._attributes[i].name===name){this._attributes.splice(i,1);break;}}}
-WebInspector.domAgent._markRevision(this,callback)(error);}
-DOMAgent.removeAttribute(this.id,name,mycallback.bind(this));},getChildNodes:function(callback)
-{if(this._children){if(callback)
-callback(this.children());return;}
-function mycallback(error)
-{if(callback)
-callback(error?null:this.children());}
-DOMAgent.requestChildNodes(this.id,undefined,mycallback.bind(this));},getSubtree:function(depth,callback)
-{function mycallback(error)
-{if(callback)
-callback(error?null:this._children);}
-DOMAgent.requestChildNodes(this.id,depth,mycallback.bind(this));},getOuterHTML:function(callback)
-{DOMAgent.getOuterHTML(this.id,callback);},setOuterHTML:function(html,callback)
-{DOMAgent.setOuterHTML(this.id,html,WebInspector.domAgent._markRevision(this,callback));},removeNode:function(callback)
-{DOMAgent.removeNode(this.id,WebInspector.domAgent._markRevision(this,callback));},copyNode:function()
-{function copy(error,text)
-{if(!error)
-InspectorFrontendHost.copyText(text);}
-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(",");},isAncestor:function(node)
-{if(!node)
-return false;var currentNode=node.parentNode;while(currentNode){if(this===currentNode)
-return true;currentNode=currentNode.parentNode;}
-return false;},isDescendant:function(descendant)
-{return descendant!==null&&descendant.isAncestor(this);},_setAttributesPayload:function(attrs)
-{var attributesChanged=!this._attributes||attrs.length!==this._attributes.length*2;var oldAttributesMap=this._attributesMap||{};this._attributes=[];this._attributesMap={};for(var i=0;i<attrs.length;i+=2){var name=attrs[i];var value=attrs[i+1];this._addAttribute(name,value);if(attributesChanged)
-continue;if(!oldAttributesMap[name]||oldAttributesMap[name].value!==value)
-attributesChanged=true;}
-return attributesChanged;},_insertChild:function(prev,payload)
-{var node=new WebInspector.DOMNode(this._domAgent,this.ownerDocument,this._isInShadowTree,payload);this._children.splice(this._children.indexOf(prev)+1,0,node);this._renumber();return node;},_removeChild:function(node)
-{if(node.pseudoType()){delete this._pseudoElements[node.pseudoType()];}else{var shadowRootIndex=this._shadowRoots.indexOf(node);if(shadowRootIndex!==-1)
-this._shadowRoots.splice(shadowRootIndex,1);else
-this._children.splice(this._children.indexOf(node),1);}
-node.parentNode=null;node._updateChildUserPropertyCountsOnRemoval(this);this._renumber();},_setChildrenPayload:function(payloads)
-{if(this._contentDocument)
-return;this._children=[];for(var i=0;i<payloads.length;++i){var payload=payloads[i];var node=new WebInspector.DOMNode(this._domAgent,this.ownerDocument,this._isInShadowTree,payload);this._children.push(node);}
-this._renumber();},_setPseudoElements:function(payloads)
-{this._pseudoElements={};if(!payloads)
-return;for(var i=0;i<payloads.length;++i){var node=new WebInspector.DOMNode(this._domAgent,this.ownerDocument,this._isInShadowTree,payloads[i]);node.parentNode=this;this._pseudoElements[node.pseudoType()]=node;}},_renumber:function()
-{this._childNodeCount=this._children.length;if(this._childNodeCount==0){this.firstChild=null;this.lastChild=null;return;}
-this.firstChild=this._children[0];this.lastChild=this._children[this._childNodeCount-1];for(var i=0;i<this._childNodeCount;++i){var child=this._children[i];child.index=i;child.nextSibling=i+1<this._childNodeCount?this._children[i+1]:null;child.previousSibling=i-1>=0?this._children[i-1]:null;child.parentNode=this;}},_addAttribute:function(name,value)
-{var attr={name:name,value:value,_node:this};this._attributesMap[name]=attr;this._attributes.push(attr);},_setAttribute:function(name,value)
-{var attr=this._attributesMap[name];if(attr)
-attr.value=value;else
-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;},_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;}}
-for(var name in result)
-parentNode._updateDescendantUserPropertyCount(name,-result[name]);},_updateDescendantUserPropertyCount:function(name,delta)
-{if(!this._descendantUserPropertyCounters.hasOwnProperty(name))
-this._descendantUserPropertyCounters[name]=0;this._descendantUserPropertyCounters[name]+=delta;if(!this._descendantUserPropertyCounters[name])
-delete this._descendantUserPropertyCounters[name];if(this.parentNode)
-this.parentNode._updateDescendantUserPropertyCount(name,delta);},setUserProperty:function(name,value)
-{if(value===null){this.removeUserProperty(name);return;}
-if(this.parentNode&&!this._userProperties.hasOwnProperty(name))
-this.parentNode._updateDescendantUserPropertyCount(name,1);this._userProperties[name]=value;},removeUserProperty:function(name)
-{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._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||"";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"}
-WebInspector.DOMAgent.prototype={requestDocument:function(callback)
-{if(this._document){if(callback)
-callback(this._document);return;}
-if(this._pendingDocumentRequestCallbacks){this._pendingDocumentRequestCallbacks.push(callback);return;}
-this._pendingDocumentRequestCallbacks=[callback];function onDocumentAvailable(error,root)
-{if(!error)
-this._setDocument(root);for(var i=0;i<this._pendingDocumentRequestCallbacks.length;++i){var callback=this._pendingDocumentRequestCallbacks[i];if(callback)
-callback(this._document);}
-delete this._pendingDocumentRequestCallbacks;}
-DOMAgent.getDocument(onDocumentAvailable.bind(this));},existingDocument:function()
-{return this._document;},pushNodeToFrontend:function(objectId,callback)
-{this._dispatchWhenDocumentAvailable(DOMAgent.requestNode.bind(DOMAgent,objectId),callback);},pushNodeByPathToFrontend:function(path,callback)
-{this._dispatchWhenDocumentAvailable(DOMAgent.pushNodeByPathToFrontend.bind(DOMAgent,path),callback);},pushNodeByBackendIdToFrontend:function(backendNodeId,callback)
-{this._dispatchWhenDocumentAvailable(DOMAgent.pushNodeByBackendIdToFrontend.bind(DOMAgent,backendNodeId),callback);},_wrapClientCallback:function(callback)
-{if(!callback)
-return;return function(error,result)
-{callback(error?null:result);}},_dispatchWhenDocumentAvailable:function(func,callback)
-{var callbackWrapper=this._wrapClientCallback(callback);function onDocumentAvailable()
-{if(this._document)
-func(callbackWrapper);else{if(callbackWrapper)
-callbackWrapper("No document");}}
-this.requestDocument(onDocumentAvailable.bind(this));},_attributeModified:function(nodeId,name,value)
-{var node=this._idToDOMNode[nodeId];if(!node)
-return;node._setAttribute(name,value);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrModified,{node:node,name:name});},_attributeRemoved:function(nodeId,name)
-{var node=this._idToDOMNode[nodeId];if(!node)
-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),20);},_loadNodeAttributes:function()
-{function callback(nodeId,error,attributes)
-{if(error){return;}
-var node=this._idToDOMNode[nodeId];if(node){if(node._setAttributesPayload(attributes))
-this.dispatchEventToListeners(WebInspector.DOMAgent.Events.AttrModified,{node:node,name:"style"});}}
-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]||null;},_documentUpdated:function()
-{this._setDocument(null);},_setDocument:function(payload)
-{this._idToDOMNode={};if(payload&&"nodeId"in payload)
-this._document=new WebInspector.DOMDocument(this,payload);else
-this._document=null;this.dispatchEventToListeners(WebInspector.DOMAgent.Events.DocumentUpdated,this._document);},_setDetachedRoot:function(payload)
-{if(payload.nodeName==="#document")
-new WebInspector.DOMDocument(this,payload);else
-new WebInspector.DOMNode(this,null,false,payload);},_setChildNodes:function(parentId,payloads)
-{if(!parentId&&payloads.length){this._setDetachedRoot(payloads[0]);return;}
-var parent=this._idToDOMNode[parentId];parent._setChildrenPayload(payloads);},_childNodeCountUpdated:function(nodeId,newValue)
-{var node=this._idToDOMNode[nodeId];node._childNodeCount=newValue;this.dispatchEventToListeners(WebInspector.DOMAgent.Events.ChildNodeCountUpdated,node);},_childNodeInserted:function(parentId,prevId,payload)
-{var parent=this._idToDOMNode[parentId];var prev=this._idToDOMNode[prevId];var node=parent._insertChild(prev,payload);this._idToDOMNode[node.id]=node;this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted,node);},_childNodeRemoved:function(parentId,nodeId)
-{var parent=this._idToDOMNode[parentId];var node=this._idToDOMNode[nodeId];parent._removeChild(node);this._unbind(node);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved,{node:node,parent:parent});},_shadowRootPushed:function(hostId,root)
-{var host=this._idToDOMNode[hostId];if(!host)
-return;var node=new WebInspector.DOMNode(this,host.ownerDocument,true,root);node.parentNode=host;this._idToDOMNode[node.id]=node;host._shadowRoots.push(node);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted,node);},_shadowRootPopped:function(hostId,rootId)
-{var host=this._idToDOMNode[hostId];if(!host)
-return;var root=this._idToDOMNode[rootId];if(!root)
-return;host._removeChild(root);this._unbind(root);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved,{node:root,parent:host});},_pseudoElementAdded:function(parentId,pseudoElement)
-{var parent=this._idToDOMNode[parentId];if(!parent)
-return;var node=new WebInspector.DOMNode(this,parent.ownerDocument,false,pseudoElement);node.parentNode=parent;this._idToDOMNode[node.id]=node;console.assert(!parent._pseudoElements[node.pseudoType()]);parent._pseudoElements[node.pseudoType()]=node;this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeInserted,node);},_pseudoElementRemoved:function(parentId,pseudoElementId)
-{var parent=this._idToDOMNode[parentId];if(!parent)
-return;var pseudoElement=this._idToDOMNode[pseudoElementId];if(!pseudoElement)
-return;parent._removeChild(pseudoElement);this._unbind(pseudoElement);this.dispatchEventToListeners(WebInspector.DOMAgent.Events.NodeRemoved,{node:pseudoElement,parent:parent});},_unbind:function(node)
-{delete this._idToDOMNode[node.id];for(var i=0;node._children&&i<node._children.length;++i)
-this._unbind(node._children[i]);for(var i=0;i<node._shadowRoots.length;++i)
-this._unbind(node._shadowRoots[i]);var pseudoElements=node.pseudoElements();for(var id in pseudoElements)
-this._unbind(pseudoElements[id]);if(node._templateContent)
-this._unbind(node._templateContent);},inspectElement:function(nodeId)
-{var node=this._idToDOMNode[nodeId];if(node)
-this.dispatchEventToListeners(WebInspector.DOMAgent.Events.InspectNodeRequested,nodeId);},_inspectNodeRequested:function(nodeId)
-{this.dispatchEventToListeners(WebInspector.DOMAgent.Events.InspectNodeRequested,nodeId);},performSearch:function(query,searchCallback)
-{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)
-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.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)
-{if(this._hideDOMNodeHighlightTimeout){clearTimeout(this._hideDOMNodeHighlightTimeout);delete this._hideDOMNodeHighlightTimeout;}
-this._highlighter.highlightDOMNode(nodeId||0,this._buildHighlightConfig(mode),objectId);},hideDOMNodeHighlight:function()
-{this.highlightDOMNode(0);},highlightDOMNodeForTwoSeconds:function(nodeId)
-{this.highlightDOMNode(nodeId);this._hideDOMNodeHighlightTimeout=setTimeout(this.hideDOMNodeHighlight.bind(this),2000);},setInspectModeEnabled:function(enabled,inspectShadowDOM,callback)
-{function onDocumentAvailable()
-{this._highlighter.setInspectModeEnabled(enabled,inspectShadowDOM,this._buildHighlightConfig(),callback);}
-this.requestDocument(onDocumentAvailable.bind(this));},_buildHighlightConfig:function(mode)
-{mode=mode||"all";var highlightConfig={showInfo:mode==="all",showRulers:WebInspector.settings.showMetricsRulers.get()};if(mode==="all"||mode==="content")
-highlightConfig.contentColor=WebInspector.Color.PageHighlight.Content.toProtocolRGBA();if(mode==="all"||mode==="padding")
-highlightConfig.paddingColor=WebInspector.Color.PageHighlight.Padding.toProtocolRGBA();if(mode==="all"||mode==="border")
-highlightConfig.borderColor=WebInspector.Color.PageHighlight.Border.toProtocolRGBA();if(mode==="all"||mode==="margin")
-highlightConfig.marginColor=WebInspector.Color.PageHighlight.Margin.toProtocolRGBA();if(mode==="all")
-highlightConfig.eventTargetColor=WebInspector.Color.PageHighlight.EventTarget.toProtocolRGBA();return highlightConfig;},_markRevision:function(node,callback)
-{function wrapperFunction(error)
-{if(!error)
-this.markUndoableState();if(callback)
-callback.apply(this,arguments);}
-return wrapperFunction.bind(this);},emulateTouchEventObjects:function(emulationEnabled)
-{const injectedFunction=function(){const touchEvents=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];var recepients=[window.__proto__,document.__proto__];for(var i=0;i<touchEvents.length;++i){for(var j=0;j<recepients.length;++j){if(!(touchEvents[i]in recepients[j]))
-Object.defineProperty(recepients[j],touchEvents[i],{value:null,writable:true,configurable:true,enumerable:true});}}}
-if(emulationEnabled&&!this._addTouchEventsScriptInjecting){this._addTouchEventsScriptInjecting=true;PageAgent.addScriptToEvaluateOnLoad("("+injectedFunction.toString()+")()",scriptAddedCallback.bind(this));}else{if(typeof this._addTouchEventsScriptId!=="undefined"){PageAgent.removeScriptToEvaluateOnLoad(this._addTouchEventsScriptId);delete this._addTouchEventsScriptId;}}
-function scriptAddedCallback(error,scriptId)
-{delete this._addTouchEventsScriptInjecting;if(error)
-return;this._addTouchEventsScriptId=scriptId;}
-PageAgent.setTouchEmulationEnabled(emulationEnabled);},markUndoableState:function()
-{DOMAgent.markUndoableState();},undo:function(callback)
-{function mycallback(error)
-{this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoCompleted);callback(error);}
-this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoRequested);DOMAgent.undo(callback);},redo:function(callback)
-{function mycallback(error)
-{this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoCompleted);callback(error);}
-this.dispatchEventToListeners(WebInspector.DOMAgent.Events.UndoRedoRequested);DOMAgent.redo(callback);},setHighlighter:function(highlighter)
-{this._highlighter=highlighter||this._defaultHighlighter;},__proto__:WebInspector.Object.prototype}
-WebInspector.DOMDispatcher=function(domAgent)
-{this._domAgent=domAgent;}
-WebInspector.DOMDispatcher.prototype={documentUpdated:function()
-{this._domAgent._documentUpdated();},inspectNodeRequested:function(nodeId)
-{this._domAgent._inspectNodeRequested(nodeId);},attributeModified:function(nodeId,name,value)
-{this._domAgent._attributeModified(nodeId,name,value);},attributeRemoved:function(nodeId,name)
-{this._domAgent._attributeRemoved(nodeId,name);},inlineStyleInvalidated:function(nodeIds)
-{this._domAgent._inlineStyleInvalidated(nodeIds);},characterDataModified:function(nodeId,characterData)
-{this._domAgent._characterDataModified(nodeId,characterData);},setChildNodes:function(parentId,payloads)
-{this._domAgent._setChildNodes(parentId,payloads);},childNodeCountUpdated:function(nodeId,childNodeCount)
-{this._domAgent._childNodeCountUpdated(nodeId,childNodeCount);},childNodeInserted:function(parentNodeId,previousNodeId,payload)
-{this._domAgent._childNodeInserted(parentNodeId,previousNodeId,payload);},childNodeRemoved:function(parentNodeId,nodeId)
-{this._domAgent._childNodeRemoved(parentNodeId,nodeId);},shadowRootPushed:function(hostId,root)
-{this._domAgent._shadowRootPushed(hostId,root);},shadowRootPopped:function(hostId,rootId)
-{this._domAgent._shadowRootPopped(hostId,rootId);},pseudoElementAdded:function(parentId,pseudoElement)
-{this._domAgent._pseudoElementAdded(parentId,pseudoElement);},pseudoElementRemoved:function(parentId,pseudoElementId)
-{this._domAgent._pseudoElementRemoved(parentId,pseudoElementId);}}
-WebInspector.DOMNodeHighlighter=function(){}
-WebInspector.DOMNodeHighlighter.prototype={highlightDOMNode:function(nodeId,config,objectId){},setInspectModeEnabled:function(enabled,inspectShadowDOM,config,callback){}}
-WebInspector.DefaultDOMNodeHighlighter=function(){}
-WebInspector.DefaultDOMNodeHighlighter.prototype={highlightDOMNode:function(nodeId,config,objectId)
-{if(objectId||nodeId)
-DOMAgent.highlightNode(config,objectId?undefined:nodeId,objectId);else
-DOMAgent.hideHighlight();},setInspectModeEnabled:function(enabled,inspectShadowDOM,config,callback)
-{DOMAgent.setInspectModeEnabled(enabled,inspectShadowDOM,config,callback);}}
-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();}
-RuntimeAgent.evaluate("didEvaluateForTestInFrontend("+callId+", "+message+")","test");}
-InspectorBackend.runAfterPendingDispatches(invokeMethod);}
-WebInspector.Dialog=function(relativeToElement,delegate)
-{this._delegate=delegate;this._relativeToElement=relativeToElement;this._glassPane=new WebInspector.GlassPane();this._glassPane.element.tabIndex=0;this._glassPane.element.addEventListener("focus",this._onGlassPaneFocus.bind(this),false);this._element=this._glassPane.element.createChild("div");this._element.tabIndex=0;this._element.addEventListener("focus",this._onFocus.bind(this),false);this._element.addEventListener("keydown",this._onKeyDown.bind(this),false);this._closeKeys=[WebInspector.KeyboardShortcut.Keys.Enter.code,WebInspector.KeyboardShortcut.Keys.Esc.code,];delegate.show(this._element);this._position();this._windowResizeHandler=this._position.bind(this);window.addEventListener("resize",this._windowResizeHandler,true);this._delegate.focus();}
-WebInspector.Dialog.currentInstance=function()
-{return WebInspector.Dialog._instance;}
-WebInspector.Dialog.show=function(relativeToElement,delegate)
-{if(WebInspector.Dialog._instance)
-return;WebInspector.Dialog._instance=new WebInspector.Dialog(relativeToElement,delegate);}
-WebInspector.Dialog.hide=function()
-{if(!WebInspector.Dialog._instance)
-return;WebInspector.Dialog._instance._hide();}
-WebInspector.Dialog.prototype={_hide:function()
-{if(this._isHiding)
-return;this._isHiding=true;this._delegate.willHide();delete WebInspector.Dialog._instance;this._glassPane.dispose();window.removeEventListener("resize",this._windowResizeHandler,true);},_onGlassPaneFocus:function(event)
-{this._hide();},_onFocus:function(event)
-{this._delegate.focus();},_position:function()
-{this._delegate.position(this._element,this._relativeToElement);},_onKeyDown:function(event)
-{if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Tab.code){event.preventDefault();return;}
-if(event.keyCode===WebInspector.KeyboardShortcut.Keys.Enter.code)
-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.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)
-{var goToLineShortcut=WebInspector.GoToLineDialog.createShortcut();panel.registerShortcuts([goToLineShortcut],WebInspector.GoToLineDialog._show.bind(null,viewGetter));}
-WebInspector.GoToLineDialog._show=function(viewGetter,event)
-{var sourceView=viewGetter();if(!sourceView||!sourceView.canHighlightPosition())
-return false;WebInspector.Dialog.show(sourceView.element,new WebInspector.GoToLineDialog(sourceView));return true;}
-WebInspector.GoToLineDialog.createShortcut=function()
-{var isMac=WebInspector.isMac();var shortcut;return WebInspector.KeyboardShortcut.makeDescriptor("g",WebInspector.KeyboardShortcut.Modifiers.Ctrl);}
-WebInspector.GoToLineDialog.prototype={focus:function()
-{WebInspector.setCurrentFocusElement(this._input);this._input.select();},_onGoClick:function()
-{this._applyLineNumber();WebInspector.Dialog.hide();},_applyLineNumber:function()
-{var value=this._input.value;var lineNumber=parseInt(value,10)-1;if(!isNaN(lineNumber)&&lineNumber>=0)
-this._view.highlightPosition(lineNumber);},onEnter:function()
-{this._applyLineNumber();},__proto__:WebInspector.DialogDelegate.prototype}
-WebInspector.SidebarOverlay=function(view,widthSettingName,minimalWidth)
-{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.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.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()
-{if(!this._widthSettingName)
-return this._savedWidth;return WebInspector.settings[this._widthSettingName].get()||this._savedWidth;},_saveWidth:function()
-{this._savedWidth=this._width;if(!this._widthSettingName)
-return;WebInspector.settings[this._widthSettingName].set(this._width);},_startResizerDragging:function(event)
-{var width=this._width;this._dragOffset=width-event.pageX;return true;},_resizerDragging:function(event)
-{var width=event.pageX+this._dragOffset;this._setWidth(width);event.preventDefault();},_endResizerDragging:function(event)
-{delete this._dragOffset;},_installResizer:function(resizerElement)
-{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.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:WebInspector.UIString("Invalid pattern");}
-WebInspector.SettingsScreen.integerValidator=function(min,max,text)
-{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)
-{this._lastSelectedTabSetting.set(this._tabbedPane.selectedTabId);},wasShown:function()
-{this._tabbedPane.show(this.element);WebInspector.HelpScreen.prototype.wasShown.call(this);},isClosingKey:function(keyCode)
-{return[WebInspector.KeyboardShortcut.Keys.Enter.code,WebInspector.KeyboardShortcut.Keys.Esc.code,].indexOf(keyCode)>=0;},willHide:function()
-{this._onHide();WebInspector.HelpScreen.prototype.willHide.call(this);},__proto__:WebInspector.HelpScreen.prototype}
-WebInspector.SettingsTab=function(name,id)
-{WebInspector.View.call(this);this.element.className="settings-tab-container";if(id)
-this.element.id=id;var header=this.element.createChild("header");header.createChild("h3").appendChild(document.createTextNode(name));this.containerElement=this.element.createChild("div","help-container-wrapper").createChild("div","settings-tab help-content help-container");}
-WebInspector.SettingsTab.createCheckbox=function(name,getter,setter,omitParagraphElement,inputElement,tooltip)
-{var input=inputElement||document.createElement("input");input.type="checkbox";input.name=name;input.checked=getter();function listener()
-{setter(input.checked);}
-input.addEventListener("click",listener,false);var label=document.createElement("label");label.appendChild(input);label.appendChild(document.createTextNode(name));if(tooltip)
-label.title=tooltip;if(omitParagraphElement)
-return label;var p=document.createElement("p");p.appendChild(label);return p;}
-WebInspector.SettingsTab.createSettingCheckbox=function(name,setting,omitParagraphElement,inputElement,tooltip)
-{return WebInspector.SettingsTab.createCheckbox(name,setting.get.bind(setting),setting.set.bind(setting),omitParagraphElement,inputElement,tooltip);}
-WebInspector.SettingsTab.createSettingFieldset=function(setting)
-{var fieldset=document.createElement("fieldset");fieldset.disabled=!setting.get();setting.addChangeListener(settingChanged);return fieldset;function settingChanged()
-{fieldset.disabled=!setting.get();}}
-WebInspector.SettingsTab.prototype={_appendSection:function(name)
-{var block=this.containerElement.createChild("div","help-block");if(name)
-block.createChild("div","help-section-title").textContent=name;return block;},_createSelectSetting:function(name,options,setting)
-{var p=document.createElement("p");var labelElement=p.createChild("label");labelElement.textContent=name;var select=p.createChild("select");var settingValue=setting.get();for(var i=0;i<options.length;++i){var option=options[i];select.add(new Option(option[0],option[1]));if(settingValue===option[1])
-select.selectedIndex=i;}
-function changeListener(e)
-{setting.set(options[select.selectedIndex][1]);}
-select.addEventListener("change",changeListener,false);return p;},_createInputSetting:function(label,setting,numeric,maxLength,width,validatorCallback)
-{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.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()
-{setting.set(numeric?Number(inputElement.value):inputElement.value);}
-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("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={_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();},_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.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.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(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)
-return"";var fileSystemPath=id;var textElement=columnElement.createChild("span","list-column-text");var pathElement=textElement.createChild("span","file-system-path");pathElement.title=fileSystemPath;const maxTotalPathLength=55;const maxFolderNameLength=30;var lastIndexOfSlash=fileSystemPath.lastIndexOf(WebInspector.isWin()?"\\":"/");var folderName=fileSystemPath.substr(lastIndexOfSlash+1);var folderPath=fileSystemPath.substr(0,lastIndexOfSlash+1);folderPath=folderPath.trimMiddle(maxTotalPathLength-Math.min(maxFolderNameLength,folderName.length));folderName=folderName.trimMiddle(maxFolderNameLength);var folderPathElement=pathElement.createChild("span");folderPathElement.textContent=folderPath;var nameElement=pathElement.createChild("span","file-system-path-name");nameElement.textContent=folderName;},_fileSystemRemovedfromList:function(event)
-{var id=(event.data);if(!id)
-return;WebInspector.isolatedFileSystemManager.removeFileSystem(id);},_addFileSystemClicked:function()
-{WebInspector.isolatedFileSystemManager.addFileSystem();},_fileSystemAdded:function(event)
-{var fileSystem=(event.data);if(!this._fileSystemsList)
-this._reset();else
-this._fileSystemsList.addItem(fileSystem.path());},_fileSystemRemoved:function(event)
-{var fileSystem=(event.data);var selectedFileSystemPath=this._selectedFileSystemPath();if(this._fileSystemsList.itemForId(fileSystem.path()))
-this._fileSystemsList.removeItem(fileSystem.path());if(!this._fileSystemsList.itemIds().length)
-this._reset();this._updateEditFileSystemButtonState();},_selectedFileSystemPath:function()
-{return this._fileSystemsList?this._fileSystemsList.selectedId():null;},__proto__:WebInspector.SettingsTab.prototype}
-WebInspector.ExperimentsSettingsTab=function()
-{WebInspector.SettingsTab.call(this,WebInspector.UIString("Experiments"),"experiments-tab-content");var experiments=WebInspector.experimentsSettings.experiments;if(experiments.length){var experimentsSection=this._appendSection();experimentsSection.appendChild(this._createExperimentsWarningSubsection());for(var i=0;i<experiments.length;++i)
-experimentsSection.appendChild(this._createExperimentCheckbox(experiments[i]));}}
-WebInspector.ExperimentsSettingsTab.prototype={_createExperimentsWarningSubsection:function()
-{var subsection=document.createElement("div");var warning=subsection.createChild("span","settings-experiments-warning-subsection-warning");warning.textContent=WebInspector.UIString("WARNING:");subsection.appendChild(document.createTextNode(" "));var message=subsection.createChild("span","settings-experiments-warning-subsection-message");message.textContent=WebInspector.UIString("These experiments could be dangerous and may require restart.");return subsection;},_createExperimentCheckbox:function(experiment)
-{var input=document.createElement("input");input.type="checkbox";input.name=experiment.name;input.checked=experiment.isEnabled();function listener()
-{experiment.setEnabled(input.checked);}
-input.addEventListener("click",listener,false);var p=document.createElement("p");var label=document.createElement("label");label.appendChild(input);label.appendChild(document.createTextNode(WebInspector.UIString(experiment.title)));p.appendChild(label);return p;},__proto__:WebInspector.SettingsTab.prototype}
-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()
-{this.showSettingsScreen();},_onHideSettingsScreen:function()
-{delete this._settingsScreenVisible;},showSettingsScreen:function(tabId)
-{if(!this._settingsScreen)
-this._settingsScreen=new WebInspector.SettingsScreen(this._onHideSettingsScreen.bind(this));if(tabId)
-this._settingsScreen.selectTab(tabId);this._settingsScreen.showModal();this._settingsScreenVisible=true;},_hideSettingsScreen:function()
-{if(this._settingsScreen)
-this._settingsScreen.hide();},resize:function()
-{if(this._settingsScreen&&this._settingsScreen.isShowing())
-this._settingsScreen.doResize();}}
-WebInspector.SettingsList=function(columns,itemRenderer)
-{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.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)
-this._ids.splice(this._ids.indexOf(beforeId),0,itemId);else
-this._ids.push(itemId);function removeItemClicked(event)
-{removeItemButton.disabled=true;this.removeItem(itemId);this.dispatchEventToListeners(WebInspector.SettingsList.Events.Removed,itemId);event.consume();}
-return listItem;},removeItem:function(id)
-{this._listItems[id].remove();delete this._listItems[id];this._ids.remove(id);if(id===this._selectedId){delete this._selectedId;if(this._ids.length)
-this.selectItem(this._ids[0]);}},itemIds:function()
-{return this._ids.slice();},columns:function()
-{return this._columns.slice();},selectedId:function()
-{return this._selectedId;},selectedItem:function()
-{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].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.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.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.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=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]||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.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.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.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.classList.add("settings-glass-pane");}
-WebInspector.EditFileSystemDialog.prototype={show:function(element)
-{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)
-return;delete this._entries[entry.urlPrefix];if(this._fileMappingsList.itemForId(entry.urlPrefix))
-this._fileMappingsList.removeItem(entry.urlPrefix);this._resize();},_fileMappingValuesProvider:function(itemId,columnId)
-{if(!itemId)
-return"";var entry=this._entries[itemId];switch(columnId){case"url":return entry.urlPrefix;case"path":return entry.pathPrefix;default:console.assert("Should not be reached.");}
-return"";},_fileMappingValidate:function(itemId,data)
-{var oldPathPrefix=itemId?this._entries[itemId].pathPrefix:null;return this._validateMapping(data["url"],itemId,data["path"],oldPathPrefix);},_fileMappingEdit:function(itemId,data)
-{if(itemId){var urlPrefix=itemId;var pathPrefix=this._entries[itemId].pathPrefix;var fileSystemPath=this._entries[itemId].fileSystemPath;WebInspector.isolatedFileSystemManager.mapping().removeFileMapping(fileSystemPath,urlPrefix,pathPrefix);}
-this._addFileMapping(data["url"],data["path"]);},_validateMapping:function(urlPrefix,allowedURLPrefix,path,allowedPathPrefix)
-{var columns=[];if(!this._checkURLPrefix(urlPrefix,allowedURLPrefix))
-columns.push("url");if(!this._checkPathPrefix(path,allowedPathPrefix))
-columns.push("path");return columns;},_fileMappingRemovedfromList:function(event)
-{var urlPrefix=(event.data);if(!urlPrefix)
-return;var entry=this._entries[urlPrefix];WebInspector.isolatedFileSystemManager.mapping().removeFileMapping(entry.fileSystemPath,entry.urlPrefix,entry.pathPrefix);},_addFileMapping:function(urlPrefix,pathPrefix)
-{var normalizedURLPrefix=this._normalizePrefix(urlPrefix);var normalizedPathPrefix=this._normalizePrefix(pathPrefix);WebInspector.isolatedFileSystemManager.mapping().addFileMapping(this._fileSystemPath,normalizedURLPrefix,normalizedPathPrefix);this._fileMappingsList.selectItem(normalizedURLPrefix);return true;},_normalizePrefix:function(prefix)
-{if(!prefix)
-return"";return prefix+(prefix[prefix.length-1]==="/"?"":"/");},_addMappingRow:function(entry)
-{var fileSystemPath=entry.fileSystemPath;var urlPrefix=entry.urlPrefix;if(!this._fileSystemPath||this._fileSystemPath!==fileSystemPath)
-return;this._entries[urlPrefix]=entry;var fileMappingListItem=this._fileMappingsList.addItem(urlPrefix,null);this._resize();},_excludedFolderAdded:function(event)
-{var entry=(event.data);this._addExcludedFolderRow(entry);},_excludedFolderRemoved:function(event)
-{var entry=(event.data);var fileSystemPath=entry.fileSystemPath;if(!fileSystemPath||this._fileSystemPath!==fileSystemPath)
-return;delete this._excludedFolderEntries[entry.path];if(this._excludedFolderList.itemForId(entry.path))
-this._excludedFolderList.removeItem(entry.path);},_excludedFolderValueProvider:function(itemId,columnId)
-{return itemId;},_excludedFolderValidate:function(itemId,data)
-{var fileSystemPath=this._fileSystemPath;var columns=[];if(!this._validateExcludedFolder(data["path"],itemId))
-columns.push("path");return columns;},_validateExcludedFolder:function(path,allowedPath)
-{return!!path&&(path===allowedPath||!this._excludedFolderEntries.contains(path));},_excludedFolderEdit:function(itemId,data)
-{var fileSystemPath=this._fileSystemPath;if(itemId)
-WebInspector.isolatedFileSystemManager.mapping().removeExcludedFolder(fileSystemPath,itemId);var excludedFolderPath=data["path"];WebInspector.isolatedFileSystemManager.mapping().addExcludedFolder(fileSystemPath,excludedFolderPath);},_excludedFolderRemovedfromList:function(event)
-{var itemId=(event.data);if(!itemId)
-return;WebInspector.isolatedFileSystemManager.mapping().removeExcludedFolder(this._fileSystemPath,itemId);},_addExcludedFolderRow:function(entry)
-{var fileSystemPath=entry.fileSystemPath;if(!fileSystemPath||this._fileSystemPath!==fileSystemPath)
-return;var path=entry.path;this._excludedFolderEntries.put(path,entry);this._excludedFolderList.addItem(path,null);},_checkURLPrefix:function(value,allowedPrefix)
-{var prefix=this._normalizePrefix(value);return!!prefix&&(prefix===allowedPrefix||!this._entries[prefix]);},_checkPathPrefix:function(value,allowedPrefix)
-{var prefix=this._normalizePrefix(value);if(!prefix)
-return false;if(prefix===allowedPrefix)
-return true;for(var urlPrefix in this._entries){var entry=this._entries[urlPrefix];if(urlPrefix&&entry.pathPrefix===prefix)
-return false;}
-return true;},focus:function()
-{WebInspector.setCurrentFocusElement(this.element);},_onDoneClick:function()
-{WebInspector.Dialog.hide();},onEnter:function()
-{},__proto__:WebInspector.DialogDelegate.prototype}
-WebInspector.ShortcutsScreen=function()
-{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()
-{var orderedSections=[];for(var section in this._sections)
-orderedSections.push(this._sections[section]);function compareSections(a,b)
-{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;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)
-{this._addLine(this._renderSequence(keys,WebInspector.UIString("or")),description);},_addLine:function(keyElement,description)
-{this._lines.push({key:keyElement,text:description})},renderSection:function(container)
-{var parent=container.createChild("div","help-block");var headLine=parent.createChild("div","help-line");headLine.createChild("div","help-key-cell");headLine.createChild("div","help-section-title help-cell").textContent=this.name;for(var i=0;i<this._lines.length;++i){var line=parent.createChild("div","help-line");var keyCell=line.createChild("div","help-key-cell");keyCell.appendChild(this._lines[i].key);keyCell.appendChild(this._createSpan("help-key-delimiter",":"));line.createChild("div","help-cell").textContent=this._lines[i].text;}},_renderSequence:function(sequence,delimiter)
-{var delimiterSpan=this._createSpan("help-key-delimiter",delimiter);return this._joinNodes(sequence.map(this._renderKey.bind(this)),delimiterSpan);},_renderKey:function(key)
-{var keyName=key.name;var plus=this._createSpan("help-combine-keys","+");return this._joinNodes(keyName.split(" + ").map(this._createSpan.bind(this,"help-key")),plus);},_createSpan:function(className,textContent)
-{var node=document.createElement("span");node.className=className;node.textContent=textContent;return node;},_joinNodes:function(nodes,delimiter)
-{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.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)
-entry.connection=String(this._request.connectionId);var page=WebInspector.networkLog.pageLoadForRequest(this._request);if(page)
-entry.pageref="page_"+page.id;return entry;},_buildRequest:function()
-{var headersText=this._request.requestHeadersText();var res={method:this._request.requestMethod,url:this._buildRequestURL(this._request.url),httpVersion:this._request.requestHttpVersion(),headers:this._request.requestHeaders(),queryString:this._buildParameters(this._request.queryParameters||[]),cookies:this._buildCookies(this._request.requestCookies||[]),headersSize:headersText?headersText.length:-1,bodySize:this.requestBodySize};if(this._request.requestFormData)
-res.postData=this._buildPostData();return res;},_buildResponse:function()
-{return{status:this._request.statusCode,statusText:this._request.statusText,httpVersion:this._request.responseHttpVersion,headers:this._request.responseHeaders,cookies:this._buildCookies(this._request.responseCookies||[]),content:this._buildContent(),redirectURL:this._request.responseHeaderValue("Location")||"",headersSize:this._request.responseHeadersSize,bodySize:this.responseBodySize};},_buildContent:function()
-{var content={size:this._request.resourceSize,mimeType:this._request.mimeType,};var compression=this.responseCompression;if(typeof compression==="number")
-content.compression=compression;return content;},_buildTimings:function()
-{var timing=this._request.timing;if(!timing)
-return{blocked:-1,dns:-1,connect:-1,send:0,wait:0,receive:0,ssl:-1};function firstNonNegative(values)
-{for(var i=0;i<values.length;++i){if(values[i]>=0)
-return values[i];}
-console.assert(false,"Incomplete requet timing information.");}
-var blocked=firstNonNegative([timing.dnsStart,timing.connectStart,timing.sendStart]);var dns=-1;if(timing.dnsStart>=0)
-dns=firstNonNegative([timing.connectStart,timing.sendStart])-timing.dnsStart;var connect=-1;if(timing.connectStart>=0)
-connect=timing.sendStart-timing.connectStart;var send=timing.sendEnd-timing.sendStart;var wait=timing.receiveHeadersEnd-timing.sendEnd;var receive=WebInspector.HAREntry._toMilliseconds(this._request.duration)-timing.receiveHeadersEnd;var ssl=-1;if(timing.sslStart>=0&&timing.sslEnd>=0)
-ssl=timing.sslEnd-timing.sslStart;return{blocked:blocked,dns:dns,connect:connect,send:send,wait:wait,receive:receive,ssl:ssl};},_buildPostData:function()
-{var res={mimeType:this._request.requestContentType(),text:this._request.requestFormData};if(this._request.formParameters)
-res.params=this._buildParameters(this._request.formParameters);return res;},_buildParameters:function(parameters)
-{return parameters.slice();},_buildRequestURL:function(url)
-{return url.split("#",2)[0];},_buildCookies:function(cookies)
-{return cookies.map(this._buildCookie.bind(this));},_buildCookie:function(cookie)
-{return{name:cookie.name(),value:cookie.value(),path:cookie.path(),domain:cookie.domain(),expires:cookie.expiresDate(new Date(this._request.startTime*1000)),httpOnly:cookie.httpOnly(),secure:cookie.secure()};},get requestBodySize()
-{return!this._request.requestFormData?0:this._request.requestFormData.length;},get responseBodySize()
-{if(this._request.cached||this._request.statusCode===304)
-return 0;return this._request.transferSize-this._request.responseHeadersSize;},get responseCompression()
-{if(this._request.cached||this._request.statusCode===304||this._request.statusCode===206)
-return;return this._request.resourceSize-this.responseBodySize;}}
-WebInspector.HAREntry._toMilliseconds=function(time)
-{return time===-1?-1:time*1000;}
-WebInspector.HARLog=function(requests)
-{this._requests=requests;}
-WebInspector.HARLog.prototype={build:function()
-{return{version:"1.2",creator:this._creator(),pages:this._buildPages(),entries:this._requests.map(this._convertResource.bind(this))}},_creator:function()
-{var webKitVersion=/AppleWebKit\/([^ ]+)/.exec(window.navigator.userAgent);return{name:"WebInspector",version:webKitVersion?webKitVersion[1]:"n/a"};},_buildPages:function()
-{var seenIdentifiers={};var pages=[];for(var i=0;i<this._requests.length;++i){var page=WebInspector.networkLog.pageLoadForRequest(this._requests[i]);if(!page||seenIdentifiers[page.id])
-continue;seenIdentifiers[page.id]=true;pages.push(this._convertPage(page));}
-return pages;},_convertPage:function(page)
-{return{startedDateTime:new Date(page.startTime*1000),id:"page_"+page.id,title:page.url,pageTimings:{onContentLoad:this._pageEventTime(page,page.contentLoadTime),onLoad:this._pageEventTime(page,page.loadTime)}}},_convertResource:function(request)
-{return(new WebInspector.HAREntry(request)).build();},_pageEventTime:function(page,time)
-{var startTime=page.startTime;if(time===-1||startTime===-1)
-return-1;return WebInspector.HAREntry._toMilliseconds(time-startTime);}}
-WebInspector.HARWriter=function()
-{}
-WebInspector.HARWriter.prototype={write:function(stream,requests,progress)
-{this._stream=stream;this._harLog=(new WebInspector.HARLog(requests)).build();this._pendingRequests=1;var entries=this._harLog.entries;for(var i=0;i<entries.length;++i){var content=requests[i].content;if(typeof content==="undefined"&&requests[i].finished){++this._pendingRequests;requests[i].requestContent(this._onContentAvailable.bind(this,entries[i]));}else if(content!==null)
-entries[i].response.content.text=content;}
-var compositeProgress=new WebInspector.CompositeProgress(progress);this._writeProgress=compositeProgress.createSubProgress();if(--this._pendingRequests){this._requestsProgress=compositeProgress.createSubProgress();this._requestsProgress.setTitle(WebInspector.UIString("Collecting content…"));this._requestsProgress.setTotalWork(this._pendingRequests);}else
-this._beginWrite();},_onContentAvailable:function(entry,content)
-{if(content!==null)
-entry.response.content.text=content;if(this._requestsProgress)
-this._requestsProgress.worked();if(!--this._pendingRequests){this._requestsProgress.done();this._beginWrite();}},_beginWrite:function()
-{const jsonIndent=2;this._text=JSON.stringify({log:this._harLog},null,jsonIndent);this._writeProgress.setTitle(WebInspector.UIString("Writing file…"));this._writeProgress.setTotalWork(this._text.length);this._bytesWritten=0;this._writeNextChunk(this._stream);},_writeNextChunk:function(stream,error)
-{if(this._bytesWritten>=this._text.length||error){stream.close();this._writeProgress.done();return;}
-const chunkSize=100000;var text=this._text.substring(this._bytesWritten,this._bytesWritten+chunkSize);this._bytesWritten+=text.length;stream.write(text,this._writeNextChunk.bind(this));this._writeProgress.setWorked(this._bytesWritten);}}
-WebInspector.CookieParser=function()
-{}
-WebInspector.CookieParser.KeyValue=function(key,value,position)
-{this.key=key;this.value=value;this.position=position;}
-WebInspector.CookieParser.prototype={cookies:function()
-{return this._cookies;},parseCookie:function(cookieHeader)
-{if(!this._initialize(cookieHeader))
-return null;for(var kv=this._extractKeyValue();kv;kv=this._extractKeyValue()){if(kv.key.charAt(0)==="$"&&this._lastCookie)
-this._lastCookie.addAttribute(kv.key.slice(1),kv.value);else if(kv.key.toLowerCase()!=="$version"&&typeof kv.value==="string")
-this._addCookie(kv,WebInspector.Cookie.Type.Request);this._advanceAndCheckCookieDelimiter();}
-this._flushCookie();return this._cookies;},parseSetCookie:function(setCookieHeader)
-{if(!this._initialize(setCookieHeader))
-return null;for(var kv=this._extractKeyValue();kv;kv=this._extractKeyValue()){if(this._lastCookie)
-this._lastCookie.addAttribute(kv.key,kv.value);else
-this._addCookie(kv,WebInspector.Cookie.Type.Response);if(this._advanceAndCheckCookieDelimiter())
-this._flushCookie();}
-this._flushCookie();return this._cookies;},_initialize:function(headerValue)
-{this._input=headerValue;if(typeof headerValue!=="string")
-return false;this._cookies=[];this._lastCookie=null;this._originalInputLength=this._input.length;return true;},_flushCookie:function()
-{if(this._lastCookie)
-this._lastCookie.setSize(this._originalInputLength-this._input.length-this._lastCookiePosition);this._lastCookie=null;},_extractKeyValue:function()
-{if(!this._input||!this._input.length)
-return null;var keyValueMatch=/^[ \t]*([^\s=;]+)[ \t]*(?:=[ \t]*([^;\n]*))?/.exec(this._input);if(!keyValueMatch){console.log("Failed parsing cookie header before: "+this._input);return null;}
-var result=new WebInspector.CookieParser.KeyValue(keyValueMatch[1],keyValueMatch[2]&&keyValueMatch[2].trim(),this._originalInputLength-this._input.length);this._input=this._input.slice(keyValueMatch[0].length);return result;},_advanceAndCheckCookieDelimiter:function()
-{var match=/^\s*[\n;]\s*/.exec(this._input);if(!match)
-return false;this._input=this._input.slice(match[0].length);return match[0].match("\n")!==null;},_addCookie:function(keyValue,type)
-{if(this._lastCookie)
-this._lastCookie.setSize(keyValue.position-this._lastCookiePosition);this._lastCookie=typeof keyValue.value==="string"?new WebInspector.Cookie(keyValue.key,keyValue.value,type):new WebInspector.Cookie("",keyValue.key,type);this._lastCookiePosition=keyValue.position;this._cookies.push(this._lastCookie);}};WebInspector.CookieParser.parseCookie=function(header)
-{return(new WebInspector.CookieParser()).parseCookie(header);}
-WebInspector.CookieParser.parseSetCookie=function(header)
-{return(new WebInspector.CookieParser()).parseSetCookie(header);}
-WebInspector.Cookie=function(name,value,type)
-{this._name=name;this._value=value;this._type=type;this._attributes={};}
-WebInspector.Cookie.prototype={name:function()
-{return this._name;},value:function()
-{return this._value;},type:function()
-{return this._type;},httpOnly:function()
-{return"httponly"in this._attributes;},secure:function()
-{return"secure"in this._attributes;},session:function()
-{return!("expires"in this._attributes||"max-age"in this._attributes);},path:function()
-{return this._attributes["path"];},port:function()
-{return this._attributes["port"];},domain:function()
-{return this._attributes["domain"];},expires:function()
-{return this._attributes["expires"];},maxAge:function()
-{return this._attributes["max-age"];},size:function()
-{return this._size;},setSize:function(size)
-{this._size=size;},expiresDate:function(requestDate)
-{if(this.maxAge()){var targetDate=requestDate===null?new Date():requestDate;return new Date(targetDate.getTime()+1000*this.maxAge());}
-if(this.expires())
-return new Date(this.expires());return null;},attributes:function()
-{return this._attributes;},addAttribute:function(key,value)
-{this._attributes[key.toLowerCase()]=value;},remove:function(callback)
-{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)
-{if(error)
-return;callback(cookies.map(WebInspector.Cookies.buildCookieProtocolObject));}
-PageAgent.getCookies(mycallback);}
-WebInspector.Cookies.buildCookieProtocolObject=function(protocolCookie)
-{var cookie=new WebInspector.Cookie(protocolCookie.name,protocolCookie.value,null);cookie.addAttribute("domain",protocolCookie["domain"]);cookie.addAttribute("path",protocolCookie["path"]);cookie.addAttribute("port",protocolCookie["port"]);if(protocolCookie["expires"])
-cookie.addAttribute("expires",protocolCookie["expires"]);if(protocolCookie["httpOnly"])
-cookie.addAttribute("httpOnly");if(protocolCookie["secure"])
-cookie.addAttribute("secure");cookie.setSize(protocolCookie["size"]);return cookie;}
-WebInspector.Cookies.cookieMatchesResourceURL=function(cookie,resourceURL)
-{var url=resourceURL.asParsedURL();if(!url||!WebInspector.Cookies.cookieDomainMatchesResourceDomain(cookie.domain(),url.host))
-return false;return(url.path.startsWith(cookie.path())&&(!cookie.port()||url.port==cookie.port())&&(!cookie.secure()||url.scheme==="https"));}
-WebInspector.Cookies.cookieDomainMatchesResourceDomain=function(cookieDomain,resourceDomain)
-{if(cookieDomain.charAt(0)!=='.')
-return resourceDomain===cookieDomain;return!!resourceDomain.match(new RegExp("^([^\\.]+\\.)*"+cookieDomain.substring(1).escapeForRegExp()+"$","i"));}
-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());},_toggleSearchBar:function(toggled)
-{this._footerElementContainer.enableStyleClass("hidden",!toggled);this.doResize();},cancelSearch:function()
-{if(!this._searchIsVisible)
-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();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()
-{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.classList.contains("enabled"))
-return;if(isBackwardSearch)
-this._searchProvider.jumpToPreviousSearchResult();else
-this._searchProvider.jumpToNextSearchResult();},_onNextButtonSearch:function(event)
-{if(!this._searchNavigationNextElement.classList.contains("enabled"))
-return;this._jumpToNextSearchResult();this._searchInputElement.focus();},_onPrevButtonSearch:function(event)
-{if(!this._searchNavigationPrevElement.classList.contains("enabled"))
-return;this._jumpToNextSearchResult(true);this._searchInputElement.focus();},_clearSearch:function()
-{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;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._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);},__proto__:WebInspector.View.prototype}
-WebInspector.Searchable=function()
-{}
-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;},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)
-{this._updateFilterButton();},_filterBarState:function()
-{if(this._filtersShown)
-return WebInspector.FilterBar.FilterBarState.Shown;var isActive=false;for(var i=0;i<this._filters.length;++i){if(this._filters[i].isActive())
-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);},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(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()
-{return this._regex;},_onFilterFieldManualFocus:function(event)
-{WebInspector.setCurrentFocusElement(event.target);},_onInput:function(event)
-{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._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];},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];},_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);},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._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;},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,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._checked;},element:function()
-{return this._filterElement;},checked:function()
-{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()
-{return WebInspector.KeyboardShortcut.makeDescriptor("c",WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta|WebInspector.KeyboardShortcut.Modifiers.Shift);}
-WebInspector.InspectElementModeController.prototype={enabled:function()
-{return this.toggleSearchButton.toggled;},disable:function()
-{if(this.enabled())
-this.toggleSearch();},toggleSearch:function()
-{var enabled=!this.enabled();function callback(error)
-{if(!error)
-this.toggleSearchButton.toggled=enabled;}
-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;WebInspector.WorkerManager=function()
-{this._workerIdToWindow={};InspectorBackend.registerWorkerDispatcher(new WebInspector.WorkerDispatcher(this));}
-WebInspector.WorkerManager.isWorkerFrontend=function()
-{return!!WebInspector.queryParamsObject["dedicatedWorkerId"]||!!WebInspector.queryParamsObject["isSharedWorker"];}
-WebInspector.WorkerManager.isDedicatedWorkerFrontend=function()
-{return!!WebInspector.queryParamsObject["dedicatedWorkerId"];}
-WebInspector.WorkerManager.loaded=function()
-{var workerId=WebInspector.queryParamsObject["dedicatedWorkerId"];if(workerId)
-WebInspector.WorkerManager._initializeDedicatedWorkerFrontend(workerId);else
-WebInspector.workerManager=new WebInspector.WorkerManager();}
-WebInspector.WorkerManager.loadCompleted=function()
-{if(WebInspector.queryParamsObject["workerPaused"]){DebuggerAgent.pause();RuntimeAgent.run(calculateTitle);}else if(WebInspector.WorkerManager.isWorkerFrontend())
-calculateTitle();function calculateTitle()
-{WebInspector.WorkerManager._calculateWorkerInspectorTitle();}
-if(WebInspector.workerManager)
-WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,WebInspector.workerManager._mainFrameNavigated,WebInspector.workerManager);}
-WebInspector.WorkerManager._initializeDedicatedWorkerFrontend=function(workerId)
-{function receiveMessage(event)
-{var message=event.data;InspectorBackend.dispatch(message);}
-window.addEventListener("message",receiveMessage,true);InspectorBackend.sendMessageObjectToBackend=function(message)
-{window.opener.postMessage({workerId:workerId,command:"sendMessageToBackend",message:message},"*");}}
-WebInspector.WorkerManager._calculateWorkerInspectorTitle=function()
-{var expression="location.href";if(WebInspector.queryParamsObject["isSharedWorker"])
-expression+=" + (this.name ? ' (' + this.name + ')' : '')";RuntimeAgent.evaluate.invoke({expression:expression,doNotPauseOnExceptionsAndMuteConsole:true,returnByValue:true},evalCallback.bind(this));function evalCallback(error,result,wasThrown)
-{if(error||wasThrown){console.error(error);return;}
-InspectorFrontendHost.inspectedURLChanged(result.value);}}
-WebInspector.WorkerManager.Events={WorkerAdded:"worker-added",WorkerRemoved:"worker-removed",WorkersCleared:"workers-cleared",}
-WebInspector.WorkerManager.prototype={_workerCreated:function(workerId,url,inspectorConnected)
-{if(inspectorConnected)
-this._openInspectorWindow(workerId,true);this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerAdded,{workerId:workerId,url:url,inspectorConnected:inspectorConnected});},_workerTerminated:function(workerId)
-{this.closeWorkerInspector(workerId);this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerRemoved,workerId);},_sendMessageToWorkerInspector:function(workerId,message)
-{var workerInspectorWindow=this._workerIdToWindow[workerId];if(workerInspectorWindow)
-workerInspectorWindow.postMessage(message,"*");},openWorkerInspector:function(workerId)
-{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=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)
-this.closeWorkerInspector(workerId);this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkersCleared);},_pageInspectorClosing:function()
-{this._ignoreWorkerInspectorClosing=true;for(var workerId in this._workerIdToWindow){this._workerIdToWindow[workerId].close();WorkerAgent.disconnectFromWorker(parseInt(workerId,10));}},_onWorkerInspectorResize:function(workerInspectorWindow)
-{var doc=workerInspectorWindow.document;WebInspector.settings.workerInspectorWidth.set(doc.width);WebInspector.settings.workerInspectorHeight.set(doc.height);},_workerInspectorClosing:function(workerId,event)
-{if(event.target.location.href==="about:blank")
-return;if(this._ignoreWorkerInspectorClosing)
-return;delete this._workerIdToWindow[workerId];WorkerAgent.disconnectFromWorker(workerId);},_disconnectedFromWorker:function()
-{var screen=new WebInspector.WorkerTerminatedScreen();WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,screen.hide,screen);screen.showModal();},__proto__:WebInspector.Object.prototype}
-WebInspector.WorkerDispatcher=function(workerManager)
-{this._workerManager=workerManager;window.addEventListener("message",this._receiveMessage.bind(this),true);}
-WebInspector.WorkerDispatcher.prototype={_receiveMessage:function(event)
-{var workerId=event.data["workerId"];workerId=parseInt(workerId,10);var command=event.data.command;var message=event.data.message;if(command=="sendMessageToBackend")
-WorkerAgent.sendMessageToWorker(workerId,message);},workerCreated:function(workerId,url,inspectorConnected)
-{this._workerManager._workerCreated(workerId,url,inspectorConnected);},workerTerminated:function(workerId)
-{this._workerManager._workerTerminated(workerId);},dispatchMessageFromWorker:function(workerId,message)
-{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.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()
-{for(var actionName in WebInspector.UserMetrics._ActionCodes){var actionCode=WebInspector.UserMetrics._ActionCodes[actionName];this[actionName]=new WebInspector.UserMetrics._Recorder(actionCode);}
-function settingChanged(trueCode,falseCode,event)
-{if(event.data)
-InspectorFrontendHost.recordSettingChanged(trueCode);else
-InspectorFrontendHost.recordSettingChanged(falseCode);}
-WebInspector.settings.domWordWrap.addChangeListener(settingChanged.bind(this,WebInspector.UserMetrics._SettingCodes.ElementsDOMWrapOn,WebInspector.UserMetrics._SettingCodes.ElementsDOMWrapOff));WebInspector.settings.monitoringXHREnabled.addChangeListener(settingChanged.bind(this,WebInspector.UserMetrics._SettingCodes.ConsoleMonitorXHROn,WebInspector.UserMetrics._SettingCodes.ConsoleMonitorXHROff));WebInspector.settings.preserveConsoleLog.addChangeListener(settingChanged.bind(this,WebInspector.UserMetrics._SettingCodes.ConsolePreserveLogOn,WebInspector.UserMetrics._SettingCodes.ConsolePreserveLogOff));WebInspector.settings.resourcesLargeRows.addChangeListener(settingChanged.bind(this,WebInspector.UserMetrics._SettingCodes.NetworkShowLargeRowsOn,WebInspector.UserMetrics._SettingCodes.NetworkShowLargeRowsOff));}
-WebInspector.UserMetrics._ActionCodes={WindowDocked:1,WindowUndocked:2,ScriptsBreakpointSet:3,TimelineStarted:4,ProfilesCPUProfileTaken:5,ProfilesHeapProfileTaken:6,AuditsStarted:7,ConsoleEvaluated:8}
-WebInspector.UserMetrics._SettingCodes={ElementsDOMWrapOn:1,ElementsDOMWrapOff:2,ConsoleMonitorXHROn:3,ConsoleMonitorXHROff:4,ConsolePreserveLogOn:5,ConsolePreserveLogOff:6,NetworkShowLargeRowsOn:7,NetworkShowLargeRowsOff:8}
-WebInspector.UserMetrics._PanelCodes={elements:1,resources:2,network:3,scripts:4,timeline:5,profiles:6,audits:7,console:8}
-WebInspector.UserMetrics.UserAction="UserAction";WebInspector.UserMetrics.UserActionNames={ForcedElementState:"forcedElementState",FileSaved:"fileSaved",RevertRevision:"revertRevision",ApplyOriginalContent:"applyOriginalContent",TogglePrettyPrint:"togglePrettyPrint",SetBreakpoint:"setBreakpoint",OpenSourceLink:"openSourceLink",NetworkSort:"networkSort",NetworkRequestSelected:"networkRequestSelected",NetworkRequestTabSelected:"networkRequestTabSelected",HeapSnapshotFilterChanged:"heapSnapshotFilterChanged"};WebInspector.UserMetrics.prototype={panelShown:function(panelName)
-{InspectorFrontendHost.recordPanelShown(WebInspector.UserMetrics._PanelCodes[panelName]||0);}}
-WebInspector.UserMetrics._Recorder=function(actionCode)
-{this._actionCode=actionCode;}
-WebInspector.UserMetrics._Recorder.prototype={record:function()
-{InspectorFrontendHost.recordActionTaken(this._actionCode);}}
-WebInspector.userMetrics=new WebInspector.UserMetrics();WebInspector.RuntimeModel=function(resourceTreeModel)
-{resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameAdded,this._frameAdded,this);resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated,this._frameNavigated,this);resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameDetached,this._frameDetached,this);resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.CachedResourcesLoaded,this._didLoadCachedResources,this);this._frameIdToContextList={};}
-WebInspector.RuntimeModel.Events={FrameExecutionContextListAdded:"FrameExecutionContextListAdded",FrameExecutionContextListRemoved:"FrameExecutionContextListRemoved",}
-WebInspector.RuntimeModel.prototype={setCurrentExecutionContext:function(executionContext)
-{this._currentExecutionContext=executionContext;},currentExecutionContext:function()
-{return this._currentExecutionContext;},contextLists:function()
-{return Object.values(this._frameIdToContextList);},contextListByFrame:function(frame)
-{return this._frameIdToContextList[frame.id];},_frameAdded:function(event)
-{var frame=event.data;var context=new WebInspector.FrameExecutionContextList(frame);this._frameIdToContextList[frame.id]=context;this.dispatchEventToListeners(WebInspector.RuntimeModel.Events.FrameExecutionContextListAdded,context);},_frameNavigated:function(event)
-{var frame=event.data;var context=this._frameIdToContextList[frame.id];if(context)
-context._frameNavigated(frame);},_frameDetached:function(event)
-{var frame=event.data;var context=this._frameIdToContextList[frame.id];if(!context)
-return;this.dispatchEventToListeners(WebInspector.RuntimeModel.Events.FrameExecutionContextListRemoved,context);delete this._frameIdToContextList[frame.id];},_didLoadCachedResources:function()
-{InspectorBackend.registerRuntimeDispatcher(new WebInspector.RuntimeDispatcher(this));RuntimeAgent.enable();},_executionContextCreated:function(context)
-{var contextList=this._frameIdToContextList[context.frameId];if(!contextList)
-return;contextList._addExecutionContext(new WebInspector.ExecutionContext(context.id,context.name,context.isPageContext));},evaluate:function(expression,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,callback)
-{if(WebInspector.debuggerModel.selectedCallFrame()){WebInspector.debuggerModel.evaluateOnSelectedCallFrame(expression,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,returnByValue,generatePreview,callback);return;}
-if(!expression){expression="this";}
-function evalCallback(error,result,wasThrown)
-{if(error){callback(null,false);return;}
-if(returnByValue)
-callback(null,!!wasThrown,wasThrown?null:result);else
-callback(WebInspector.RemoteObject.fromPayload(result),!!wasThrown);}
-RuntimeAgent.evaluate(expression,objectGroup,includeCommandLineAPI,doNotPauseOnExceptionsAndMuteConsole,this._currentExecutionContext?this._currentExecutionContext.id:undefined,returnByValue,generatePreview,evalCallback);},completionsForTextPrompt:function(proxyElement,wordRange,force,completionsReadyCallback)
-{var expressionRange=wordRange.startContainer.rangeOfWord(wordRange.startOffset," =:[({;,!+-*/&|^<>",proxyElement,"backward");var expressionString=expressionRange.toString();var prefix=wordRange.toString();this._completionsForExpression(expressionString,prefix,force,completionsReadyCallback);},_completionsForExpression:function(expressionString,prefix,force,completionsReadyCallback)
-{var lastIndex=expressionString.length-1;var dotNotation=(expressionString[lastIndex]===".");var bracketNotation=(expressionString[lastIndex]==="[");if(dotNotation||bracketNotation)
-expressionString=expressionString.substr(0,lastIndex);if(expressionString&&parseInt(expressionString,10)==expressionString){completionsReadyCallback([]);return;}
-if(!prefix&&!expressionString&&!force){completionsReadyCallback([]);return;}
-if(!expressionString&&WebInspector.debuggerModel.selectedCallFrame())
-WebInspector.debuggerModel.getSelectedCallFrameVariables(receivedPropertyNames.bind(this));else
-this.evaluate(expressionString,"completion",true,true,false,false,evaluated.bind(this));function evaluated(result,wasThrown)
-{if(!result||wasThrown){completionsReadyCallback([]);return;}
-function getCompletions(primitiveType)
-{var object;if(primitiveType==="string")
-object=new String("");else if(primitiveType==="number")
-object=new Number(0);else if(primitiveType==="boolean")
-object=new Boolean(false);else
-object=this;var resultSet={};for(var o=object;o;o=o.__proto__){try{var names=Object.getOwnPropertyNames(o);for(var i=0;i<names.length;++i)
-resultSet[names[i]]=true;}catch(e){}}
-return resultSet;}
-if(result.type==="object"||result.type==="function")
-result.callFunctionJSON(getCompletions,undefined,receivedPropertyNames.bind(this));else if(result.type==="string"||result.type==="number"||result.type==="boolean")
-this.evaluate("("+getCompletions+")(\""+result.type+"\")","completion",false,true,true,false,receivedPropertyNamesFromEval.bind(this));}
-function receivedPropertyNamesFromEval(notRelevant,wasThrown,result)
-{if(result&&!wasThrown)
-receivedPropertyNames.call(this,result.value);else
-completionsReadyCallback([]);}
-function receivedPropertyNames(propertyNames)
-{RuntimeAgent.releaseObjectGroup("completion");if(!propertyNames){completionsReadyCallback([]);return;}
-var includeCommandLineAPI=(!dotNotation&&!bracketNotation);if(includeCommandLineAPI){const commandLineAPI=["dir","dirxml","keys","values","profile","profileEnd","monitorEvents","unmonitorEvents","inspect","copy","clear","getEventListeners","debug","undebug","monitor","unmonitor","table","$","$$","$x"];for(var i=0;i<commandLineAPI.length;++i)
-propertyNames[commandLineAPI[i]]=true;}
-this._reportCompletions(completionsReadyCallback,dotNotation,bracketNotation,expressionString,prefix,Object.keys(propertyNames));}},_reportCompletions:function(completionsReadyCallback,dotNotation,bracketNotation,expressionString,prefix,properties){if(bracketNotation){if(prefix.length&&prefix[0]==="'")
-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_$\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;WebInspector.RuntimeDispatcher=function(runtimeModel)
-{this._runtimeModel=runtimeModel;}
-WebInspector.RuntimeDispatcher.prototype={executionContextCreated:function(context)
-{this._runtimeModel._executionContextCreated(context);}}
-WebInspector.ExecutionContext=function(id,name,isPageContext)
-{this.id=id;this.name=(isPageContext&&!name)?"<page context>":name;this.isMainWorldContext=isPageContext;}
-WebInspector.ExecutionContext.comparator=function(a,b)
-{if(a.isMainWorldContext)
-return-1;if(b.isMainWorldContext)
-return+1;return a.name.localeCompare(b.name);}
-WebInspector.FrameExecutionContextList=function(frame)
-{this._frame=frame;this._executionContexts=[];}
-WebInspector.FrameExecutionContextList.EventTypes={ContextsUpdated:"ContextsUpdated",ContextAdded:"ContextAdded"}
-WebInspector.FrameExecutionContextList.prototype={_frameNavigated:function(frame)
-{this._frame=frame;this._executionContexts=[];this.dispatchEventToListeners(WebInspector.FrameExecutionContextList.EventTypes.ContextsUpdated,this);},_addExecutionContext:function(context)
-{var insertAt=insertionIndexForObjectInListSortedByFunction(context,this._executionContexts,WebInspector.ExecutionContext.comparator);this._executionContexts.splice(insertAt,0,context);this.dispatchEventToListeners(WebInspector.FrameExecutionContextList.EventTypes.ContextAdded,this);},executionContexts:function()
-{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;}
-return null;},get frameId()
-{return this._frame.id;},get url()
-{return this._frame.url;},get displayName()
-{if(!this._frame.parentFrame)
-return"<top frame>";var name=this._frame.name||"";var subtitle=new WebInspector.ParsedURL(this._frame.url).displayName;if(subtitle){if(!name)
-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.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)
-{this._activeHandler=value;this._setting.set(value);},dispatch:function(data)
-{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);},_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);}
-function save(forceSaveAs)
-{if(contentProvider instanceof WebInspector.UISourceCode){var uiSourceCode=(contentProvider);uiSourceCode.saveToFileSystem(forceSaveAs);return;}
-contentProvider.requestContent(doSave.bind(this,forceSaveAs));}
-contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString("Save"),save.bind(this,false));contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Save as...":"Save As..."),save.bind(this,true));},_appendHrefItems:function(contextMenu,target)
-{if(!(target instanceof Node))
-return;var targetNode=(target);var anchorElement=targetNode.enclosingNodeOrSelfWithClass("webkit-html-resource-link")||targetNode.enclosingNodeOrSelfWithClass("webkit-html-external-link");if(!anchorElement)
-return;var resourceURL=anchorElement.href;if(!resourceURL)
-return;contextMenu.appendItem(WebInspector.openLinkExternallyLabel(),WebInspector.openResource.bind(WebInspector,resourceURL,false));if(WebInspector.resourceForURL(resourceURL))
-contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Open link in Resources panel":"Open Link in Resources Panel"),WebInspector.openResource.bind(null,resourceURL,true));contextMenu.appendItem(WebInspector.copyLinkAddressLabel(),InspectorFrontendHost.copyText.bind(InspectorFrontendHost,resourceURL));},__proto__:WebInspector.Object.prototype}
-WebInspector.HandlerRegistry.EventTypes={HandlersUpdated:"HandlersUpdated"}
-WebInspector.HandlerSelector=function(handlerRegistry)
-{this._handlerRegistry=handlerRegistry;this.element=document.createElement("select");this.element.addEventListener("change",this._onChange.bind(this),false);this._update();this._handlerRegistry.addEventListener(WebInspector.HandlerRegistry.EventTypes.HandlersUpdated,this._update.bind(this));}
-WebInspector.HandlerSelector.prototype={_update:function()
-{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.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()
-{var savedSnippets=[];for(var id in this._snippets)
-savedSnippets.push(this._snippets[id].serializeToObject());this._snippetsSetting.set(savedSnippets);},snippets:function()
-{var result=[];for(var id in this._snippets)
-result.push(this._snippets[id]);return result;},snippetForId:function(id)
-{return this._snippets[id];},snippetForName:function(name)
-{var snippets=Object.values(this._snippets);for(var i=0;i<snippets.length;++i)
-if(snippets[i].name===name)
-return snippets[i];return null;},_loadSettings:function()
-{var savedSnippets=this._snippetsSetting.get();for(var i=0;i<savedSnippets.length;++i)
-this._snippetAdded(WebInspector.Snippet.fromObject(this,savedSnippets[i]));},deleteSnippet:function(snippet)
-{delete this._snippets[snippet.id];this._saveSettings();},createSnippet:function()
-{var nextId=this._lastSnippetIdentifierSetting.get()+1;var snippetId=String(nextId);this._lastSnippetIdentifierSetting.set(nextId);var snippet=new WebInspector.Snippet(this,snippetId);this._snippetAdded(snippet);this._saveSettings();return snippet;},_snippetAdded:function(snippet)
-{this._snippets[snippet.id]=snippet;},reset:function()
-{this._lastSnippetIdentifierSetting.set(0);this._snippetsSetting.set([]);this._snippets={};},__proto__:WebInspector.Object.prototype}
-WebInspector.Snippet=function(storage,id,name,content)
-{this._storage=storage;this._id=id;this._name=name||storage.namePrefix+id;this._content=content||"";}
-WebInspector.Snippet.fromObject=function(storage,serializedSnippet)
-{return new WebInspector.Snippet(storage,serializedSnippet.id,serializedSnippet.name,serializedSnippet.content);}
-WebInspector.Snippet.prototype={get id()
-{return this._id;},get name()
-{return this._name;},set name(name)
-{if(this._name===name)
-return;this._name=name;this._storage._saveSettings();},get content()
-{return this._content;},set content(content)
-{if(this._content===content)
-return;this._content=content;this._storage._saveSettings();},serializeToObject:function()
-{var serializedSnippet={};serializedSnippet.id=this.id;serializedSnippet.name=this.name;serializedSnippet.content=this.content;return serializedSnippet;},__proto__:WebInspector.Object.prototype}
-WebInspector.ScriptSnippetModel=function(workspace)
-{this._workspace=workspace;this._uiSourceCodeForScriptId={};this._scriptForUISourceCode=new Map();this._uiSourceCodeForSnippetId={};this._snippetIdForUISourceCode=new Map();this._snippetStorage=new WebInspector.SnippetStorage("script","Script snippet #");this._lastSnippetEvaluationIndexSetting=WebInspector.settings.createSetting("lastSnippetEvaluationIndex",0);this._snippetScriptMapping=new WebInspector.SnippetScriptMapping(this);this._projectDelegate=new WebInspector.SnippetsProjectDelegate(this);this._project=this._workspace.addProject(this._projectDelegate);this.reset();WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,this._debuggerReset,this);}
-WebInspector.ScriptSnippetModel.prototype={get scriptMapping()
-{return this._snippetScriptMapping;},project:function()
-{return this._project;},_loadSnippets:function()
-{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);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)
-{var script=this._scriptForUISourceCode.get(uiSourceCode);if(!script)
-return;var breakpointLocations=this._removeBreakpoints(uiSourceCode);this._releaseSnippetScript(uiSourceCode);this._restoreBreakpoints(uiSourceCode,breakpointLocations);var scriptUISourceCode=script.rawLocationToUILocation(0,0).uiSourceCode;if(scriptUISourceCode)
-this._restoreBreakpoints(scriptUISourceCode,breakpointLocations);},_nextEvaluationIndex:function(snippetId)
-{var evaluationIndex=this._lastSnippetEvaluationIndexSetting.get()+1;this._lastSnippetEvaluationIndexSetting.set(evaluationIndex);return evaluationIndex;},evaluateScriptSnippet:function(uiSourceCode)
-{var breakpointLocations=this._removeBreakpoints(uiSourceCode);this._releaseSnippetScript(uiSourceCode);this._restoreBreakpoints(uiSourceCode,breakpointLocations);var snippetId=this._snippetIdForUISourceCode.get(uiSourceCode)||"";var evaluationIndex=this._nextEvaluationIndex(snippetId);uiSourceCode._evaluationIndex=evaluationIndex;var evaluationUrl=this._evaluationSourceURL(uiSourceCode);var expression=uiSourceCode.workingCopy();if(WebInspector.debuggerModel.selectedCallFrame()){expression=uiSourceCode.workingCopy()+"\n//# sourceURL="+evaluationUrl+"\n";WebInspector.evaluateInConsole(expression,true);return;}
-WebInspector.showConsole();DebuggerAgent.compileScript(expression,evaluationUrl,compileCallback.bind(this));function compileCallback(error,scriptId,syntaxErrorMessage)
-{if(!uiSourceCode||uiSourceCode._evaluationIndex!==evaluationIndex)
-return;if(error){console.error(error);return;}
-if(!scriptId){var consoleMessage=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.JS,WebInspector.ConsoleMessage.MessageLevel.Error,syntaxErrorMessage||"");WebInspector.console.addMessage(consoleMessage);return;}
-var breakpointLocations=this._removeBreakpoints(uiSourceCode);this._restoreBreakpoints(uiSourceCode,breakpointLocations);this._runScript(scriptId);}},_runScript:function(scriptId)
-{var currentExecutionContext=WebInspector.runtimeModel.currentExecutionContext();DebuggerAgent.runScript(scriptId,currentExecutionContext?currentExecutionContext.id:undefined,"console",false,runCallback.bind(this));function runCallback(error,result,wasThrown)
-{if(error){console.error(error);return;}
-this._printRunScriptResult(result,wasThrown);}},_printRunScriptResult:function(result,wasThrown)
-{var level=(wasThrown?WebInspector.ConsoleMessage.MessageLevel.Error:WebInspector.ConsoleMessage.MessageLevel.Log);var message=WebInspector.ConsoleMessage.create(WebInspector.ConsoleMessage.MessageSource.JS,level,"",undefined,undefined,undefined,undefined,undefined,[result]);WebInspector.console.addMessage(message)},_rawLocationToUILocation:function(rawLocation)
-{var uiSourceCode=this._uiSourceCodeForScriptId[rawLocation.scriptId];if(!uiSourceCode)
-return null;return new WebInspector.UILocation(uiSourceCode,rawLocation.lineNumber,rawLocation.columnNumber||0);},_uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
-{var script=this._scriptForUISourceCode.get(uiSourceCode);if(!script)
-return null;return WebInspector.debuggerModel.createRawLocation(script,lineNumber,columnNumber);},_addScript:function(script)
-{var snippetId=this._snippetIdForSourceURL(script.sourceURL);if(!snippetId)
-return;var uiSourceCode=this._uiSourceCodeForSnippetId[snippetId];if(!uiSourceCode||this._evaluationSourceURL(uiSourceCode)!==script.sourceURL)
-return;console.assert(!this._scriptForUISourceCode.get(uiSourceCode));this._uiSourceCodeForScriptId[script.scriptId]=uiSourceCode;this._scriptForUISourceCode.put(uiSourceCode,script);uiSourceCode.scriptFile().setHasDivergedFromVM(false);script.pushSourceMapping(this._snippetScriptMapping);},_removeBreakpoints:function(uiSourceCode)
-{var breakpointLocations=WebInspector.breakpointManager.breakpointLocationsForUISourceCode(uiSourceCode);for(var i=0;i<breakpointLocations.length;++i)
-breakpointLocations[i].breakpoint.remove();return breakpointLocations;},_restoreBreakpoints:function(uiSourceCode,breakpointLocations)
-{for(var i=0;i<breakpointLocations.length;++i){var uiLocation=breakpointLocations[i].uiLocation;var breakpoint=breakpointLocations[i].breakpoint;WebInspector.breakpointManager.setBreakpoint(uiSourceCode,uiLocation.lineNumber,breakpoint.condition(),breakpoint.enabled());}},_releaseSnippetScript:function(uiSourceCode)
-{var script=this._scriptForUISourceCode.get(uiSourceCode);if(!script)
-return null;uiSourceCode.scriptFile().setIsDivergingFromVM(true);uiSourceCode.scriptFile().setHasDivergedFromVM(true);delete this._uiSourceCodeForScriptId[script.scriptId];this._scriptForUISourceCode.remove(uiSourceCode);delete uiSourceCode._evaluationIndex;uiSourceCode.scriptFile().setIsDivergingFromVM(false);},_debuggerReset:function()
-{for(var snippetId in this._uiSourceCodeForSnippetId){var uiSourceCode=this._uiSourceCodeForSnippetId[snippetId];this._releaseSnippetScript(uiSourceCode);}},_evaluationSourceURL:function(uiSourceCode)
-{var evaluationSuffix="_"+uiSourceCode._evaluationIndex;var snippetId=this._snippetIdForUISourceCode.get(uiSourceCode);return WebInspector.Script.snippetSourceURLPrefix+snippetId+evaluationSuffix;},_snippetIdForSourceURL:function(sourceURL)
-{var snippetPrefix=WebInspector.Script.snippetSourceURLPrefix;if(!sourceURL.startsWith(snippetPrefix))
-return null;var splitURL=sourceURL.substring(snippetPrefix.length).split("_");var snippetId=splitURL[0];return snippetId;},reset:function()
-{this._uiSourceCodeForScriptId={};this._scriptForUISourceCode=new Map();this._uiSourceCodeForSnippetId={};this._snippetIdForUISourceCode=new Map();this._projectDelegate.reset();this._loadSnippets();},__proto__:WebInspector.Object.prototype}
-WebInspector.SnippetScriptFile=function(scriptSnippetModel,uiSourceCode)
-{WebInspector.ScriptFile.call(this);this._scriptSnippetModel=scriptSnippetModel;this._uiSourceCode=uiSourceCode;this._hasDivergedFromVM=true;this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.WorkingCopyChanged,this._workingCopyChanged,this);}
-WebInspector.SnippetScriptFile.prototype={hasDivergedFromVM:function()
-{return this._hasDivergedFromVM;},setHasDivergedFromVM:function(hasDivergedFromVM)
-{this._hasDivergedFromVM=hasDivergedFromVM;},isDivergingFromVM:function()
-{return this._isDivergingFromVM;},checkMapping:function()
-{},isMergingToVM:function()
-{return false;},setIsDivergingFromVM:function(isDivergingFromVM)
-{this._isDivergingFromVM=isDivergingFromVM;},_workingCopyChanged:function()
-{this._scriptSnippetModel._scriptSnippetEdited(this._uiSourceCode);},__proto__:WebInspector.Object.prototype}
-WebInspector.SnippetScriptMapping=function(scriptSnippetModel)
-{this._scriptSnippetModel=scriptSnippetModel;}
-WebInspector.SnippetScriptMapping.prototype={rawLocationToUILocation:function(rawLocation)
-{var debuggerModelLocation=(rawLocation);return this._scriptSnippetModel._rawLocationToUILocation(debuggerModelLocation);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
-{return this._scriptSnippetModel._uiLocationToRawLocation(uiSourceCode,lineNumber,columnNumber);},snippetIdForSourceURL:function(sourceURL)
-{return this._scriptSnippetModel._snippetIdForSourceURL(sourceURL);},addScript:function(script)
-{this._scriptSnippetModel._addScript(script);}}
-WebInspector.SnippetContentProvider=function(snippet)
-{this._snippet=snippet;}
-WebInspector.SnippetContentProvider.prototype={contentURL:function()
-{return"";},contentType:function()
-{return WebInspector.resourceTypes.Script;},requestContent:function(callback)
-{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);}}
-WebInspector.SnippetsProjectDelegate=function(model)
-{WebInspector.ContentProviderBasedProjectDelegate.call(this,WebInspector.projectTypes.Snippets);this._model=model;}
-WebInspector.SnippetsProjectDelegate.prototype={id:function()
-{return WebInspector.projectTypes.Snippets+":";},addSnippet:function(name,contentProvider)
-{return this.addContentProvider("",name,name,contentProvider,true,false);},canSetFileContent:function()
-{return true;},setFileContent:function(path,newContent,callback)
-{this._model._setScriptSnippetContent(path,newContent);callback("");},canRename:function()
-{return true;},performRename:function(path,newName,callback)
-{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;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){}}
-WebInspector.CompositeProgress=function(parent)
-{this._parent=parent;this._children=[];this._childrenDone=0;this._parent.setTotalWork(1);this._parent.setWorked(0);parent.addEventListener(WebInspector.Progress.Events.Canceled,this._parentCanceled.bind(this));}
-WebInspector.CompositeProgress.prototype={_childDone:function()
-{if(++this._childrenDone===this._children.length)
-this._parent.done();},_parentCanceled:function()
-{this.dispatchEventToListeners(WebInspector.Progress.Events.Canceled);for(var i=0;i<this._children.length;++i){this._children[i].dispatchEventToListeners(WebInspector.Progress.Events.Canceled);}},createSubProgress:function(weight)
-{var child=new WebInspector.SubProgress(this,weight);this._children.push(child);return child;},_update:function()
-{var totalWeights=0;var done=0;for(var i=0;i<this._children.length;++i){var child=this._children[i];if(child._totalWork)
-done+=child._weight*child._worked/child._totalWork;totalWeights+=child._weight;}
-this._parent.setWorked(done/totalWeights);},__proto__:WebInspector.Object.prototype}
-WebInspector.SubProgress=function(composite,weight)
-{this._composite=composite;this._weight=weight||1;this._worked=0;}
-WebInspector.SubProgress.prototype={isCanceled:function()
-{return this._composite._parent.isCanceled();},setTitle:function(title)
-{this._composite._parent.setTitle(title);},done:function()
-{this.setWorked(this._totalWork);this._composite._childDone();},setTotalWork:function(totalWork)
-{this._totalWork=totalWork;this._composite._update();},setWorked:function(worked,title)
-{this._worked=worked;if(typeof title!=="undefined")
-this.setTitle(title);this._composite._update();},worked:function(worked)
-{this.setWorked(this._worked+(worked||1));},__proto__:WebInspector.Object.prototype}
-WebInspector.ProgressIndicator=function()
-{this.element=document.createElement("div");this.element.className="progress-bar-container";this._labelElement=this.element.createChild("span");this._progressElement=this.element.createChild("progress");this._stopButton=new WebInspector.StatusBarButton(WebInspector.UIString("Cancel"),"progress-bar-stop-button");this._stopButton.addEventListener("click",this.cancel,this);this.element.appendChild(this._stopButton.element);this._isCanceled=false;this._worked=0;}
-WebInspector.ProgressIndicator.Events={Done:"Done"}
-WebInspector.ProgressIndicator.prototype={show:function(parent)
-{parent.appendChild(this.element);},hide:function()
-{var parent=this.element.parentElement;if(parent)
-parent.removeChild(this.element);},done:function()
-{if(this._isDone)
-return;this._isDone=true;this.hide();this.dispatchEventToListeners(WebInspector.ProgressIndicator.Events.Done);},cancel:function()
-{this._isCanceled=true;this.dispatchEventToListeners(WebInspector.Progress.Events.Canceled);},isCanceled:function()
-{return this._isCanceled;},setTitle:function(title)
-{this._labelElement.textContent=title;},setTotalWork:function(totalWork)
-{this._progressElement.max=totalWork;},setWorked:function(worked,title)
-{this._worked=worked;this._progressElement.value=worked;if(title)
-this.setTitle(title);},worked:function(worked)
-{this.setWorked(this._worked+(worked||1));},__proto__:WebInspector.Object.prototype}
-WebInspector.StylesSourceMapping=function(cssModel,workspace)
-{this._cssModel=cssModel;this._workspace=workspace;this._workspace.addEventListener(WebInspector.Workspace.Events.ProjectWillReset,this._projectWillReset,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded,this._uiSourceCodeAddedToWorkspace,this);this._workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved,this._uiSourceCodeRemoved,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameCreatedOrNavigated,this._mainFrameCreatedOrNavigated,this);this._cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetChanged,this._styleSheetChanged,this);this._initialize();}
-WebInspector.StylesSourceMapping.MinorChangeUpdateTimeoutMs=1000;WebInspector.StylesSourceMapping.prototype={rawLocationToUILocation:function(rawLocation)
-{var location=(rawLocation);var uiSourceCode=this._workspace.uiSourceCodeForURL(location.url);if(!uiSourceCode)
-return null;return new WebInspector.UILocation(uiSourceCode,location.lineNumber,location.columnNumber);},uiLocationToRawLocation:function(uiSourceCode,lineNumber,columnNumber)
-{return new WebInspector.CSSLocation(uiSourceCode.url||"",lineNumber,columnNumber);},addHeader:function(header)
-{var url=header.resourceURL();if(!url)
-return;header.pushSourceMapping(this);var map=this._urlToHeadersByFrameId[url];if(!map){map=(new StringMap());this._urlToHeadersByFrameId[url]=map;}
-var headersById=map.get(header.frameId);if(!headersById){headersById=(new StringMap());map.put(header.frameId,headersById);}
-headersById.put(header.id,header);var uiSourceCode=this._workspace.uiSourceCodeForURL(url);if(uiSourceCode)
-this._bindUISourceCode(uiSourceCode,header);},removeHeader:function(header)
-{var url=header.resourceURL();if(!url)
-return;var map=this._urlToHeadersByFrameId[url];console.assert(map);var headersById=map.get(header.frameId);console.assert(headersById);headersById.remove(header.id);if(!headersById.size()){map.remove(header.frameId);if(!map.size()){delete this._urlToHeadersByFrameId[url];var uiSourceCode=this._workspace.uiSourceCodeForURL(url);if(uiSourceCode)
-this._unbindUISourceCode(uiSourceCode);}}},_unbindUISourceCode:function(uiSourceCode)
-{var styleFile=this._styleFiles.get(uiSourceCode);if(!styleFile)
-return;styleFile.dispose();this._styleFiles.remove(uiSourceCode);},_uiSourceCodeAddedToWorkspace:function(event)
-{var uiSourceCode=(event.data);var url=uiSourceCode.url;if(!url||!this._urlToHeadersByFrameId[url])
-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.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)
-{for(var url in this._urlToHeadersByFrameId){var uiSourceCode=this._workspace.uiSourceCodeForURL(url);if(!uiSourceCode)
-continue;this._unbindUISourceCode(uiSourceCode);}
-this._initialize();},_setStyleContent:function(uiSourceCode,content,majorChange,userCallback)
-{var styleSheetIds=this._cssModel.styleSheetIdsForURL(uiSourceCode.url);if(!styleSheetIds.length){userCallback("No stylesheet found: "+uiSourceCode.url);return;}
-this._isSettingContent=true;function callback(error)
-{userCallback(error);delete this._isSettingContent;}
-this._cssModel.setStyleSheetText(styleSheetIds[0],content,majorChange,callback.bind(this));},_styleSheetChanged:function(event)
-{if(this._isSettingContent)
-return;if(event.data.majorChange){this._updateStyleSheetText(event.data.styleSheetId);return;}
-this._updateStyleSheetTextSoon(event.data.styleSheetId);},_updateStyleSheetTextSoon:function(styleSheetId)
-{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;}
-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;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.prototype={_workingCopyCommitted:function(event)
-{if(this._isAddingRevision)
-return;this._commitIncrementalEdit(true);},_workingCopyChanged:function(event)
-{if(this._isAddingRevision)
-return;if(WebInspector.StyleFile.updateTimeout>=0){this._incrementalUpdateTimer=setTimeout(this._commitIncrementalEdit.bind(this,false),WebInspector.StyleFile.updateTimeout)}else
-this._commitIncrementalEdit(false);},_commitIncrementalEdit:function(majorChange)
-{this._clearIncrementalUpdateTimer();this._mapping._setStyleContent(this._uiSourceCode,this._uiSourceCode.workingCopy(),majorChange,this._styleContentSet.bind(this));},_styleContentSet:function(error)
-{if(error)
-WebInspector.showErrorMessage(error);},_clearIncrementalUpdateTimer:function()
-{if(!this._incrementalUpdateTimer)
-return;clearTimeout(this._incrementalUpdateTimer);delete this._incrementalUpdateTimer;},addRevision:function(content)
-{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={};}
-WebInspector.NetworkUISourceCodeProvider.prototype={_populate:function()
-{function populateFrame(frame)
-{for(var i=0;i<frame.childFrames.length;++i)
-populateFrame.call(this,frame.childFrames[i]);var resources=frame.resources();for(var i=0;i<resources.length;++i)
-this._resourceAdded({data:resources[i]});}
-populateFrame.call(this,WebInspector.resourceTreeModel.mainFrame);},_parsedScriptSource:function(event)
-{var script=(event.data);if(!script.sourceURL||script.isInlineScript()||script.isSnippet())
-return;if(script.isContentScript&&!script.hasSourceURL){var parsedURL=new WebInspector.ParsedURL(script.sourceURL);if(!parsedURL.isValid)
-return;}
-this._addFile(script.sourceURL,script,script.isContentScript);},_styleSheetAdded:function(event)
-{var header=(event.data);if((!header.hasSourceURL||header.isInline)&&header.origin!=="inspector")
-return;this._addFile(header.resourceURL(),header,false);},_resourceAdded:function(event)
-{var resource=(event.data);this._addFile(resource.url,resource);},_mainFrameNavigated:function(event)
-{this._reset();},_addFile:function(url,contentProvider,isContentScript)
-{if(this._workspace.hasMappingForURL(url))
-return;var type=contentProvider.contentType();if(type!==WebInspector.resourceTypes.Stylesheet&&type!==WebInspector.resourceTypes.Document&&type!==WebInspector.resourceTypes.Script)
-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;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.moduleManager.registerModule({name:"LayersPanel",extensions:[{type:"@WebInspector.Panel",name:"layers",title:"Layers",className:"WebInspector.LayersPanel"}],scripts:["LayersPanel.js"]});}
-WebInspector.DockController=function()
-{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 WebInspector.queryParamsObject["can_dock"]?this._dockToggleButton.element:null;},dockSide:function()
-{return this._dockSide;},_dockSideChanged:function(dockSide)
-{if(this._dockSide===dockSide)
-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,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)
-{Array.prototype.push.apply(this._events,events);},_tracingComplete:function()
-{this._active=false;if(this._pendingStopCallback){this._pendingStopCallback();this._pendingStopCallback=null;}}}
-WebInspector.TracingDispatcher=function(tracingAgent)
-{this._tracingAgent=tracingAgent;}
-WebInspector.TracingDispatcher.prototype={dataCollected:function(data)
-{this._tracingAgent._eventsCollected(data);},tracingComplete:function()
-{this._tracingAgent._tracingComplete();}}
-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=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)
-{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){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.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")
-this._canvasElement.focus();return;}
-var position=this._convertIntoScreenSpace(event);DOMAgent.getNodeForLocation(position.x/this._pageScaleFactor,position.y/this._pageScaleFactor,callback.bind(this));function callback(error,nodeId)
-{if(error)
-return;if(event.type==="mousemove")
-this.highlightDOMNode(nodeId,this._inspectModeConfig);else if(event.type==="click")
-WebInspector.domAgent.dispatchEventToListeners(WebInspector.DOMAgent.Events.InspectNodeRequested,nodeId);}},_handleKeyEvent:function(event)
-{if(this._isGlassPaneActive()){event.consume();return;}
-var shortcutKey=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcutKey];if(handler&&handler(event)){event.consume();return;}
-var type;switch(event.type){case"keydown":type="keyDown";break;case"keyup":type="keyUp";break;case"keypress":type="char";break;default:return;}
-var text=event.type==="keypress"?String.fromCharCode(event.charCode):undefined;InputAgent.dispatchKeyEvent(type,this._modifiersForEvent(event),event.timeStamp/1000,text,text?text.toLowerCase():undefined,event.keyIdentifier,event.keyCode,event.keyCode,undefined,false,false,false);event.consume();this._canvasElement.focus();},_handleContextMenuEvent:function(event)
-{event.consume(true);},_simulateTouchGestureForMouseEvent:function(event)
-{var position=this._convertIntoScreenSpace(event);var timeStamp=event.timeStamp/1000;var x=position.x;var y=position.y;switch(event.which){case 1:if(event.type==="mousedown"){InputAgent.dispatchGestureEvent("scrollBegin",x,y,timeStamp);}else if(event.type==="mousemove"){var dx=this._lastScrollPosition?position.x-this._lastScrollPosition.x:0;var dy=this._lastScrollPosition?position.y-this._lastScrollPosition.y:0;if(dx||dy)
-InputAgent.dispatchGestureEvent("scrollUpdate",x,y,timeStamp,dx,dy);}else if(event.type==="mouseup"){InputAgent.dispatchGestureEvent("scrollEnd",x,y,timeStamp);}else if(event.type==="mousewheel"){if(event.altKey){var factor=1.1;var scale=event.wheelDeltaY<0?1/factor:factor;InputAgent.dispatchGestureEvent("pinchBegin",x,y,timeStamp);InputAgent.dispatchGestureEvent("pinchUpdate",x,y,timeStamp,0,0,scale);InputAgent.dispatchGestureEvent("pinchEnd",x,y,timeStamp);}else{InputAgent.dispatchGestureEvent("scrollBegin",x,y,timeStamp);InputAgent.dispatchGestureEvent("scrollUpdate",x,y,timeStamp,event.wheelDeltaX,event.wheelDeltaY);InputAgent.dispatchGestureEvent("scrollEnd",x,y,timeStamp);}}else if(event.type==="click"){InputAgent.dispatchMouseEvent("mousePressed",x,y,0,timeStamp,"left",1,true);InputAgent.dispatchMouseEvent("mouseReleased",x,y,0,timeStamp,"left",1,true);}
-this._lastScrollPosition=position;break;case 2:if(event.type==="mousedown"){InputAgent.dispatchGestureEvent("tapDown",x,y,timeStamp);}else if(event.type==="mouseup"){InputAgent.dispatchGestureEvent("tap",x,y,timeStamp);}
-break;case 3:if(event.type==="mousedown"){this._pinchStart=position;InputAgent.dispatchGestureEvent("pinchBegin",x,y,timeStamp);}else if(event.type==="mousemove"){var dx=this._pinchStart?position.x-this._pinchStart.x:0;var dy=this._pinchStart?position.y-this._pinchStart.y:0;if(dx||dy){var scale=Math.pow(dy<0?0.999:1.001,Math.abs(dy));InputAgent.dispatchGestureEvent("pinchUpdate",this._pinchStart.x,this._pinchStart.y,timeStamp,0,0,scale);}}else if(event.type==="mouseup"){InputAgent.dispatchGestureEvent("pinchEnd",x,y,timeStamp);}
-break;case 0:default:}},_convertIntoScreenSpace:function(event)
-{var zoom=this._canvasElement.offsetWidth/this._viewport.width/this._pageScaleFactor;var position={};position.x=Math.round(event.offsetX/zoom);position.y=Math.round(event.offsetY/zoom-this._screenOffsetTop);return position;},_modifiersForEvent:function(event)
-{var modifiers=0;if(event.altKey)
-modifiers=1;if(event.ctrlKey)
-modifiers+=2;if(event.metaKey)
-modifiers+=4;if(event.shiftKey)
-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.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)
-{var scale=this._canvasElement.offsetWidth/this._viewport.width;function scaleQuad(quad)
-{for(var i=0;i<quad.length;i+=2){quad[i]=(quad[i]-this._viewport.x)*scale;quad[i+1]=(quad[i+1]-this._viewport.y)*scale+this._screenOffsetTop*this._screenZoom;}}
-scaleQuad.call(this,model.content);scaleQuad.call(this,model.padding);scaleQuad.call(this,model.border);scaleQuad.call(this,model.margin);return model;},_repaint:function()
-{var model=this._model;var config=this._config;this._canvasElement.width=window.devicePixelRatio*this._canvasElement.offsetWidth;this._canvasElement.height=window.devicePixelRatio*this._canvasElement.offsetHeight;this._context.save();this._context.scale(window.devicePixelRatio,window.devicePixelRatio);this._context.save();this._context.fillStyle=this._checkerboardPattern;this._context.fillRect(0,0,this._canvasElement.offsetWidth,this._screenOffsetTop*this._screenZoom);this._context.fillRect(0,this._screenOffsetTop*this._screenZoom+this._imageElement.naturalHeight*this._imageZoom,this._canvasElement.offsetWidth,this._canvasElement.offsetHeight);this._context.restore();if(model&&config){this._context.save();const transparentColor="rgba(0, 0, 0, 0)";var hasContent=model.content&&config.contentColor!==transparentColor;var hasPadding=model.padding&&config.paddingColor!==transparentColor;var hasBorder=model.border&&config.borderColor!==transparentColor;var hasMargin=model.margin&&config.marginColor!==transparentColor;var clipQuad;if(hasMargin&&(!hasBorder||!this._quadsAreEqual(model.margin,model.border))){this._drawOutlinedQuadWithClip(model.margin,model.border,config.marginColor);clipQuad=model.border;}
-if(hasBorder&&(!hasPadding||!this._quadsAreEqual(model.border,model.padding))){this._drawOutlinedQuadWithClip(model.border,model.padding,config.borderColor);clipQuad=model.padding;}
-if(hasPadding&&(!hasContent||!this._quadsAreEqual(model.padding,model.content))){this._drawOutlinedQuadWithClip(model.padding,model.content,config.paddingColor);clipQuad=model.content;}
-if(hasContent)
-this._drawOutlinedQuad(model.content,config.contentColor);this._context.restore();this._drawElementTitle();this._context.globalCompositeOperation="destination-over";}
-this._context.drawImage(this._imageElement,0,this._screenOffsetTop*this._screenZoom,this._imageElement.naturalWidth*this._imageZoom,this._imageElement.naturalHeight*this._imageZoom);this._context.restore();},_quadsAreEqual:function(quad1,quad2)
-{for(var i=0;i<quad1.length;++i){if(quad1[i]!==quad2[i])
-return false;}
-return true;},_cssColor:function(color)
-{if(!color)
-return"transparent";return WebInspector.Color.fromRGBA([color.r,color.g,color.b,color.a]).toString(WebInspector.Color.Format.RGBA)||"";},_quadToPath:function(quad)
-{this._context.beginPath();this._context.moveTo(quad[0],quad[1]);this._context.lineTo(quad[2],quad[3]);this._context.lineTo(quad[4],quad[5]);this._context.lineTo(quad[6],quad[7]);this._context.closePath();return this._context;},_drawOutlinedQuad:function(quad,fillColor)
-{this._context.save();this._context.lineWidth=2;this._quadToPath(quad).clip();this._context.fillStyle=this._cssColor(fillColor);this._context.fill();this._context.restore();},_drawOutlinedQuadWithClip:function(quad,clipQuad,fillColor)
-{this._context.fillStyle=this._cssColor(fillColor);this._context.save();this._context.lineWidth=0;this._quadToPath(quad).fill();this._context.globalCompositeOperation="destination-out";this._context.fillStyle="red";this._quadToPath(clipQuad).fill();this._context.restore();},_drawElementTitle:function()
-{if(!this._node)
-return;var canvasWidth=this._canvasElement.offsetWidth;var canvasHeight=this._canvasElement.offsetHeight;var lowerCaseName=this._node.localName()||this._node.nodeName().toLowerCase();this._tagNameElement.textContent=lowerCaseName;this._nodeIdElement.textContent=this._node.getAttribute("id")?"#"+this._node.getAttribute("id"):"";this._nodeIdElement.textContent=this._node.getAttribute("id")?"#"+this._node.getAttribute("id"):"";var className=this._node.getAttribute("class");if(className&&className.length>50)
-className=className.substring(0,50)+"\u2026";this._classNameElement.textContent=className||"";this._nodeWidthElement.textContent=this._model.width;this._nodeHeightElement.textContent=this._model.height;var marginQuad=this._model.margin;var titleWidth=this._titleElement.offsetWidth+6;var titleHeight=this._titleElement.offsetHeight+4;var anchorTop=this._model.margin[1];var anchorBottom=this._model.margin[7];const arrowHeight=7;var renderArrowUp=false;var renderArrowDown=false;var boxX=Math.max(2,this._model.margin[0]);if(boxX+titleWidth>canvasWidth)
-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.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;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()
-{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))
-url="http://"+url;PageAgent.navigate(url);this._canvasElement.focus();},_requestNavigationHistory:function()
-{PageAgent.getNavigationHistory(this._onNavigationHistory.bind(this));},_onNavigationHistory:function(error,currentIndex,entries)
-{if(error)
-return;this._historyIndex=currentIndex;this._historyEntries=entries;this._navigationBack.disabled=currentIndex==0;this._navigationForward.disabled=currentIndex==(entries.length-1);var url=entries[currentIndex].url;var match=url.match(WebInspector.ScreencastView._HttpRegex);if(match)
-url=match[1];this._navigationUrl.value=url;},_focusNavigationBar:function()
-{this._navigationUrl.focus();this._navigationUrl.select();return true;},__proto__:WebInspector.View.prototype}
-WebInspector.ScreencastView.ProgressTracker=function(element){this._element=element;WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._onMainFrameNavigated,this);WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.Load,this._onLoad,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestStarted,this._onRequestStarted,this);WebInspector.networkManager.addEventListener(WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestFinished,this);};WebInspector.ScreencastView.ProgressTracker.prototype={_onMainFrameNavigated:function()
-{this._requestIds={};this._startedRequests=0;this._finishedRequests=0;this._maxDisplayedProgress=0;this._updateProgress(0.1);},_onLoad:function()
-{delete this._requestIds;this._updateProgress(1);setTimeout(function(){if(!this._navigationProgressVisible())
-this._displayProgress(0);}.bind(this),500);},_navigationProgressVisible:function()
-{return!!this._requestIds;},_onRequestStarted:function(event)
-{if(!this._navigationProgressVisible())
-return;var request=(event.data);if(request.type===WebInspector.resourceTypes.WebSocket)
-return;this._requestIds[request.requestId]=request;++this._startedRequests;},_onRequestFinished:function(event)
-{if(!this._navigationProgressVisible())
-return;var request=(event.data);if(!(request.requestId in this._requestIds))
-return;++this._finishedRequests;setTimeout(function(){this._updateProgress(this._finishedRequests/this._startedRequests*0.9);}.bind(this),500);},_updateProgress:function(progress)
-{if(!this._navigationProgressVisible())
-return;if(this._maxDisplayedProgress>=progress)
-return;this._maxDisplayedProgress=progress;this._displayProgress(progress);},_displayProgress:function(progress)
-{this._element.style.width=(100*progress)+"%";}};function platformExtensionAPI(coreAPI)
-{function getTabId()
-{return tabId;}
-chrome=window.chrome||{};var devtools_descriptor=Object.getOwnPropertyDescriptor(chrome,"devtools");if(!devtools_descriptor||devtools_descriptor.get)
-Object.defineProperty(chrome,"devtools",{value:{},enumerable:true});chrome.devtools.inspectedWindow={};chrome.devtools.inspectedWindow.__defineGetter__("tabId",getTabId);chrome.devtools.inspectedWindow.__proto__=coreAPI.inspectedWindow;chrome.devtools.network=coreAPI.network;chrome.devtools.panels=coreAPI.panels;if(extensionInfo.exposeExperimentalAPIs!==false){chrome.experimental=chrome.experimental||{};chrome.experimental.devtools=chrome.experimental.devtools||{};var properties=Object.getOwnPropertyNames(coreAPI);for(var i=0;i<properties.length;++i){var descriptor=Object.getOwnPropertyDescriptor(coreAPI,properties[i]);Object.defineProperty(chrome.experimental.devtools,properties[i],descriptor);}
-chrome.experimental.devtools.inspectedWindow=chrome.devtools.inspectedWindow;}
-if(extensionInfo.exposeWebInspectorNamespace)
-window.webInspector=coreAPI;}
-if(window.domAutomationController){var ___interactiveUiTestsMode=true;TestSuite=function()
-{this.controlTaken_=false;this.timerId_=-1;};TestSuite.prototype.fail=function(message)
-{if(this.controlTaken_)
-this.reportFailure_(message);else
-throw message;};TestSuite.prototype.assertEquals=function(expected,actual,opt_message)
-{if(expected!==actual){var message="Expected: '"+expected+"', but was '"+actual+"'";if(opt_message)
-message=opt_message+"("+message+")";this.fail(message);}};TestSuite.prototype.assertTrue=function(value,opt_message)
-{this.assertEquals(true,!!value,opt_message);};TestSuite.prototype.assertHasKey=function(object,key)
-{if(!object.hasOwnProperty(key))
-this.fail("Expected object to contain key '"+key+"'");};TestSuite.prototype.assertContains=function(string,substring)
-{if(string.indexOf(substring)===-1)
-this.fail("Expected to: '"+string+"' to contain '"+substring+"'");};TestSuite.prototype.takeControl=function()
-{this.controlTaken_=true;var self=this;this.timerId_=setTimeout(function(){self.reportFailure_("Timeout exceeded: 20 sec");},20000);};TestSuite.prototype.releaseControl=function()
-{if(this.timerId_!==-1){clearTimeout(this.timerId_);this.timerId_=-1;}
-this.reportOk_();};TestSuite.prototype.reportOk_=function()
-{window.domAutomationController.send("[OK]");};TestSuite.prototype.reportFailure_=function(error)
-{if(this.timerId_!==-1){clearTimeout(this.timerId_);this.timerId_=-1;}
-window.domAutomationController.send("[FAILED] "+error);};TestSuite.prototype.runTest=function(testName)
-{try{this[testName]();if(!this.controlTaken_)
-this.reportOk_();}catch(e){this.reportFailure_(e);}};TestSuite.prototype.showPanel=function(panelName)
-{var button=document.getElementById("tab-"+panelName);button.selectTabForTest();this.assertEquals(WebInspector.panels[panelName],WebInspector.inspectorView.currentPanel());};TestSuite.prototype.addSniffer=function(receiver,methodName,override,opt_sticky)
-{var orig=receiver[methodName];if(typeof orig!=="function")
-this.fail("Cannot find method to override: "+methodName);var test=this;receiver[methodName]=function(var_args){try{var result=orig.apply(this,arguments);}finally{if(!opt_sticky)
-receiver[methodName]=orig;}
-try{override.apply(this,arguments);}catch(e){test.fail("Exception in overriden method '"+methodName+"': "+e);}
-return result;};};TestSuite.prototype.testEnableResourcesTab=function()
-{}
-TestSuite.prototype.testCompletionOnPause=function()
-{}
-TestSuite.prototype.testShowScriptsTab=function()
-{this.showPanel("sources");var test=this;this._waitUntilScriptsAreParsed(["debugger_test_page.html"],function(){test.releaseControl();});this.takeControl();};TestSuite.prototype.testScriptsTabIsPopulatedOnInspectedPageRefresh=function()
-{var test=this;this.assertEquals(WebInspector.panels.elements,WebInspector.inspectorView.currentPanel(),"Elements panel should be current one.");WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,waitUntilScriptIsParsed);test.evaluateInConsole_("window.location.reload(true);",function(resultText){});function waitUntilScriptIsParsed()
-{WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.GlobalObjectCleared,waitUntilScriptIsParsed);test.showPanel("sources");test._waitUntilScriptsAreParsed(["debugger_test_page.html"],function(){test.releaseControl();});}
-this.takeControl();};TestSuite.prototype.testContentScriptIsPresent=function()
-{this.showPanel("sources");var test=this;test._waitUntilScriptsAreParsed(["page_with_content_script.html","simple_content_script.js"],function(){test.releaseControl();});this.takeControl();};TestSuite.prototype.testNoScriptDuplicatesOnPanelSwitch=function()
-{var test=this;var expectedScriptsCount=2;var parsedScripts=[];this.showPanel("sources");function switchToElementsTab(){test.showPanel("elements");setTimeout(switchToScriptsTab,0);}
-function switchToScriptsTab(){test.showPanel("sources");setTimeout(checkScriptsPanel,0);}
-function checkScriptsPanel(){test.assertTrue(test._scriptsAreParsed(["debugger_test_page.html"]),"Some scripts are missing.");checkNoDuplicates();test.releaseControl();}
-function checkNoDuplicates(){var uiSourceCodes=test.nonAnonymousUISourceCodes_();for(var i=0;i<uiSourceCodes.length;i++){var scriptName=uiSourceCodes[i].url;for(var j=i+1;j<uiSourceCodes.length;j++)
-test.assertTrue(scriptName!==uiSourceCodes[j].url,"Found script duplicates: "+test.uiSourceCodesToString_(uiSourceCodes));}}
-test._waitUntilScriptsAreParsed(["debugger_test_page.html"],function(){checkNoDuplicates();setTimeout(switchToElementsTab,0);});this.takeControl();};TestSuite.prototype.testPauseWhenLoadingDevTools=function()
-{this.showPanel("sources");if(WebInspector.debuggerModel.debuggerPausedDetails)
-return;this._waitForScriptPause(this.releaseControl.bind(this));this.takeControl();};TestSuite.prototype.testPauseWhenScriptIsRunning=function()
-{this.showPanel("sources");this.evaluateInConsole_('setTimeout("handleClick()" , 0)',didEvaluateInConsole.bind(this));function didEvaluateInConsole(resultText){this.assertTrue(!isNaN(resultText),"Failed to get timer id: "+resultText);setTimeout(testScriptPause.bind(this),300);}
-function testScriptPause(){WebInspector.panels.sources._pauseButton.element.click();this._waitForScriptPause(this.releaseControl.bind(this));}
-this.takeControl();};TestSuite.prototype.testNetworkSize=function()
-{var test=this;function finishResource(resource,finishTime)
-{test.assertEquals(219,resource.transferSize,"Incorrect total encoded data length");test.assertEquals(25,resource.resourceSize,"Incorrect total data length");test.releaseControl();}
-this.addSniffer(WebInspector.NetworkDispatcher.prototype,"_finishNetworkRequest",finishResource);test.evaluateInConsole_("window.location.reload(true);",function(resultText){});this.takeControl();};TestSuite.prototype.testNetworkSyncSize=function()
-{var test=this;function finishResource(resource,finishTime)
-{test.assertEquals(219,resource.transferSize,"Incorrect total encoded data length");test.assertEquals(25,resource.resourceSize,"Incorrect total data length");test.releaseControl();}
-this.addSniffer(WebInspector.NetworkDispatcher.prototype,"_finishNetworkRequest",finishResource);test.evaluateInConsole_("var xhr = new XMLHttpRequest(); xhr.open(\"GET\", \"chunked\", false); xhr.send(null);",function(){});this.takeControl();};TestSuite.prototype.testNetworkRawHeadersText=function()
-{var test=this;function finishResource(resource,finishTime)
-{if(!resource.responseHeadersText)
-test.fail("Failure: resource does not have response headers text");test.assertEquals(164,resource.responseHeadersText.length,"Incorrect response headers text length");test.releaseControl();}
-this.addSniffer(WebInspector.NetworkDispatcher.prototype,"_finishNetworkRequest",finishResource);test.evaluateInConsole_("window.location.reload(true);",function(resultText){});this.takeControl();};TestSuite.prototype.testNetworkTiming=function()
-{var test=this;function finishResource(resource,finishTime)
-{test.assertTrue(resource.timing.receiveHeadersEnd-resource.timing.connectStart>=70,"Time between receiveHeadersEnd and connectStart should be >=70ms, but was "+"receiveHeadersEnd="+resource.timing.receiveHeadersEnd+", connectStart="+resource.timing.connectStart+".");test.assertTrue(resource.responseReceivedTime-resource.startTime>=0.07,"Time between responseReceivedTime and startTime should be >=0.07s, but was "+"responseReceivedTime="+resource.responseReceivedTime+", startTime="+resource.startTime+".");test.assertTrue(resource.endTime-resource.startTime>=0.14,"Time between endTime and startTime should be >=0.14s, but was "+"endtime="+resource.endTime+", startTime="+resource.startTime+".");test.releaseControl();}
-this.addSniffer(WebInspector.NetworkDispatcher.prototype,"_finishNetworkRequest",finishResource);test.evaluateInConsole_("window.location.reload(true);",function(resultText){});this.takeControl();};TestSuite.prototype.testConsoleOnNavigateBack=function()
-{if(WebInspector.console.messages.length===1)
-firstConsoleMessageReceived.call(this);else
-WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,firstConsoleMessageReceived,this);function firstConsoleMessageReceived(){WebInspector.console.removeEventListener(WebInspector.ConsoleModel.Events.MessageAdded,firstConsoleMessageReceived,this);this.evaluateInConsole_("clickLink();",didClickLink.bind(this));}
-function didClickLink(){this.assertEquals(3,WebInspector.console.messages.length);this.assertEquals(1,WebInspector.console.messages[0].totalRepeatCount);this.evaluateInConsole_("history.back();",didNavigateBack.bind(this));}
-function didNavigateBack()
-{this.evaluateInConsole_("void 0;",didCompleteNavigation.bind(this));}
-function didCompleteNavigation(){this.assertEquals(7,WebInspector.console.messages.length);this.assertEquals(1,WebInspector.console.messages[0].totalRepeatCount);this.releaseControl();}
-this.takeControl();};TestSuite.prototype.testReattachAfterCrash=function()
-{this.evaluateInConsole_("1+1;",this.releaseControl.bind(this));this.takeControl();};TestSuite.prototype.testSharedWorker=function()
-{function didEvaluateInConsole(resultText){this.assertEquals("2011",resultText);this.releaseControl();}
-this.evaluateInConsole_("globalVar",didEvaluateInConsole.bind(this));this.takeControl();};TestSuite.prototype.testPauseInSharedWorkerInitialization=function()
-{if(WebInspector.debuggerModel.debuggerPausedDetails)
-return;this._waitForScriptPause(this.releaseControl.bind(this));this.takeControl();};TestSuite.prototype.testTimelineFrames=function()
-{var test=this;function step1()
-{test.recordTimeline(onTimelineRecorded);test.evaluateInConsole_("runTest()",function(){});}
-function onTimelineRecorded(records)
-{var frameCount=0;var recordsInFrame={};for(var i=0;i<records.length;++i){var record=records[i];if(record.type!=="BeginFrame"){recordsInFrame[record.type]=(recordsInFrame[record.type]||0)+1;continue;}
-if(!frameCount++)
-continue;test.assertHasKey(recordsInFrame,"FireAnimationFrame");test.assertHasKey(recordsInFrame,"Layout");test.assertHasKey(recordsInFrame,"RecalculateStyles");test.assertHasKey(recordsInFrame,"Paint");recordsInFrame={};}
-test.assertTrue(frameCount>=5,"Not enough frames");test.releaseControl();}
-step1();test.takeControl();}
-TestSuite.prototype.testPageOverlayUpdate=function()
-{var test=this;function populatePage()
-{var div1=document.createElement("div");div1.id="div1";div1.style.webkitTransform="translateZ(0)";document.body.appendChild(div1);var div2=document.createElement("div");div2.id="div2";document.body.appendChild(div2);}
-function step1()
-{test.evaluateInConsole_(populatePage.toString()+"; populatePage();"+"inspect(document.getElementById('div1'))",function(){});WebInspector.notifications.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,step2);}
-function step2()
-{WebInspector.notifications.removeEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,step2);test.recordTimeline(onTimelineRecorded);setTimeout(step3,500);}
-function step3()
-{test.evaluateInConsole_("inspect(document.getElementById('div2'))",function(){});WebInspector.notifications.addEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,step4);}
-function step4()
-{WebInspector.notifications.removeEventListener(WebInspector.ElementsTreeOutline.Events.SelectedNodeChanged,step4);test.stopTimeline();}
-function onTimelineRecorded(records)
-{var types={};for(var i=0;i<records.length;++i)
-types[records[i].type]=(types[records[i].type]||0)+1;var frameCount=types["BeginFrame"];test.assertTrue(frameCount>=2,"Not enough DevTools overlay updates");test.assertTrue(frameCount<6,"Too many updates caused by DevTools overlay");test.releaseControl();}
-step1();this.takeControl();}
-TestSuite.prototype.recordTimeline=function(callback)
-{var records=[];var dispatchOnRecordType={}
-WebInspector.timelineManager.addEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,addRecord);WebInspector.timelineManager.start();function addRecord(event)
-{innerAddRecord(event.data);}
-function innerAddRecord(record)
-{records.push(record);if(record.type==="TimeStamp"&&record.data.message==="ready")
-done();if(record.children)
-record.children.forEach(innerAddRecord);}
-function done()
-{WebInspector.timelineManager.stop();WebInspector.timelineManager.removeEventListener(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded,addRecord);callback(records);}}
-TestSuite.prototype.stopTimeline=function()
-{this.evaluateInConsole_("console.timeStamp('ready')",function(){});}
-TestSuite.prototype.waitForTestResultsInConsole=function()
-{var messages=WebInspector.console.messages;for(var i=0;i<messages.length;++i){var text=messages[i].text;if(text==="PASS")
-return;else if(/^FAIL/.test(text))
-this.fail(text);}
-function onConsoleMessage(event)
-{var text=event.data.text;if(text==="PASS")
-this.releaseControl();else if(/^FAIL/.test(text))
-this.fail(text);}
-WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,onConsoleMessage,this);this.takeControl();};TestSuite.prototype.checkLogAndErrorMessages=function()
-{var messages=WebInspector.console.messages;var matchesCount=0;function validMessage(message)
-{if(message.text==="log"&&message.level===WebInspector.ConsoleMessage.MessageLevel.Log){++matchesCount;return true;}
-if(message.text==="error"&&message.level===WebInspector.ConsoleMessage.MessageLevel.Error){++matchesCount;return true;}
-return false;}
-for(var i=0;i<messages.length;++i){if(validMessage(messages[i]))
-continue;this.fail(messages[i].text+":"+messages[i].level);}
-if(matchesCount===2)
-return;function onConsoleMessage(event)
-{var message=event.data;if(validMessage(message)){if(matchesCount===2){this.releaseControl();return;}}else
-this.fail(message.text+":"+messages[i].level);}
-WebInspector.console.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,onConsoleMessage,this);this.takeControl();};TestSuite.prototype.uiSourceCodesToString_=function(uiSourceCodes)
-{var names=[];for(var i=0;i<uiSourceCodes.length;i++)
-names.push('"'+uiSourceCodes[i].url+'"');return names.join(",");};TestSuite.prototype.nonAnonymousUISourceCodes_=function()
-{function filterOutAnonymous(uiSourceCode)
-{return!!uiSourceCode.url;}
-function filterOutService(uiSourceCode)
-{return!uiSourceCode.project().isServiceProject();}
-var uiSourceCodes=WebInspector.workspace.uiSourceCodes();uiSourceCodes=uiSourceCodes.filter(filterOutService);return uiSourceCodes.filter(filterOutAnonymous);};TestSuite.prototype.evaluateInConsole_=function(code,callback)
-{WebInspector.showConsole();WebInspector.consoleView.prompt.text=code;WebInspector.consoleView.promptElement.dispatchEvent(TestSuite.createKeyEvent("Enter"));this.addSniffer(WebInspector.ConsoleView.prototype,"_showConsoleMessage",function(messageIndex){var commandResult=WebInspector.console.messages[messageIndex];callback(commandResult.toMessageElement().textContent);});};TestSuite.prototype._scriptsAreParsed=function(expected)
-{var uiSourceCodes=this.nonAnonymousUISourceCodes_();var missing=expected.slice(0);for(var i=0;i<uiSourceCodes.length;++i){for(var j=0;j<missing.length;++j){if(uiSourceCodes[i].name().search(missing[j])!==-1){missing.splice(j,1);break;}}}
-return missing.length===0;};TestSuite.prototype._waitForScriptPause=function(callback)
-{function pauseListener(event){WebInspector.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,pauseListener,this);callback();}
-WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.DebuggerPaused,pauseListener,this);};TestSuite.prototype._executeCodeWhenScriptsAreParsed=function(code,expectedScripts)
-{var test=this;function executeFunctionInInspectedPage(){test.evaluateInConsole_('setTimeout("'+code+'" , 0)',function(resultText){test.assertTrue(!isNaN(resultText),"Failed to get timer id: "+resultText+". Code: "+code);});}
-test._waitUntilScriptsAreParsed(expectedScripts,executeFunctionInInspectedPage);};TestSuite.prototype._waitUntilScriptsAreParsed=function(expectedScripts,callback)
-{var test=this;function waitForAllScripts(){if(test._scriptsAreParsed(expectedScripts))
-callback();else
-test.addSniffer(WebInspector.panels.sources,"_addUISourceCode",waitForAllScripts);}
-waitForAllScripts();};TestSuite.createKeyEvent=function(keyIdentifier)
-{var evt=document.createEvent("KeyboardEvent");evt.initKeyboardEvent("keydown",true,true,null,keyIdentifier,"");return evt;};var uiTests={};uiTests.runAllTests=function()
-{for(var name in TestSuite.prototype){if(name.substring(0,4)==="test"&&typeof TestSuite.prototype[name]==="function")
-uiTests.runTest(name);}};uiTests.runTest=function(name)
-{if(uiTests._populatedInterface)
-new TestSuite().runTest(name);else
-uiTests._pendingTestName=name;};(function(){function runTests()
-{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();}})();}
-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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspectorCommon.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/inspectorCommon.css
deleted file mode 100644 (file)
index 75f040a..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-html {
-    height: 100%;
-}
-
-body {
-    cursor: default;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    overflow: hidden;
-    font-family: Lucida Grande, sans-serif;
-    font-size: 12px;
-    margin: 0;
-    tab-size: 4;
-    -webkit-user-select: none;
-    color: #222;
-}
-
-body.platform-linux {
-  color: rgb(48, 57, 66);
-  font-family: Ubuntu, Arial, sans-serif;
-}
-
-body.platform-mac {
-  color: rgb(48, 57, 66);
-  font-family: 'Lucida Grande', sans-serif;
-}
-
-body.platform-windows {
-  font-family: 'Segoe UI', Tahoma, sans-serif;
-}
-
-* {
-    box-sizing: border-box;
-}
-
-:focus {
-    outline: none;
-}
-
-img {
-    -webkit-user-drag: none;
-}
-
-iframe,
-a img {
-    border: none;
-}
-
-iframe.view {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    left: 0;
-    right: 0;
-    top: 0;
-    bottom: 0;
-}
-
-.hidden {
-    display: none !important;
-}
-
-.monospace {
-    font-size: 10px !important;
-    font-family: monospace;
-}
-
-.resources-dividers {
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-    z-index: -100;
-    bottom: 0;
-}
-
-.resources-event-dividers {
-    position: absolute;
-    left: 0;
-    right: 0;
-    height: 100%;
-    top: 0;
-    z-index: 300;
-    pointer-events: none;
-}
-
-.resources-dividers-label-bar {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    background-color: rgba(255, 255, 255, 0.85);
-    background-clip: padding-box;
-    height: 20px;
-    z-index: 200;
-    pointer-events: none;
-    overflow: hidden;
-}
-
-.resources-divider {
-    position: absolute;
-    width: 1px;
-    top: 0;
-    bottom: 0;
-    background-color: rgba(0, 0, 0, 0.1);
-}
-
-.resources-event-divider-padding {
-    position: absolute;
-    width: 8px;
-    top: 0;
-    bottom: 0;
-    pointer-events: auto;
-}
-
-.resources-event-divider {
-    position: absolute;
-    width: 2px;
-    top: 0;
-    bottom: 0;
-    z-index: 300;
-}
-
-.resources-divider-label {
-    position: absolute;
-    top: 4px;
-    right: 3px;
-    font-size: 80%;
-    white-space: nowrap;
-    pointer-events: none;
-}
-
-.overview-grid-window-selector {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    background-color: rgba(125, 173, 217, 0.5);
-    z-index: 250;
-    pointer-events: none;
-}
-
-.overview-grid-window {
-    background-color: white;
-    position: absolute;
-    left: 0;
-    right: 0;
-    top: 0;
-    height: 20px;
-    z-index: 150;
-}
-
-.overview-grid-dividers-background {
-    left: 0%;
-    right: 0%;
-    top: 0;
-    height: 20px;
-    background-color: black;
-    position: absolute;
-}
-
-.overview-grid-window-rulers {
-    top: 0;
-    bottom: 0;
-    position: absolute;
-    opacity: 0.2;
-    border-right: 1px solid black;
-    border-left: 1px solid black;
-    z-index: 250;
-    pointer-events: none;
-}
-
-.overview-grid-window-resizer {
-    position: absolute;
-    top: 0;
-    height: 20px;
-    width: 5px;
-    margin-left: -2px;
-    margin-right: -3px;
-    background-color: rgb(153, 153, 153);
-    z-index: 500;
-    border-radius: 2px;
-    box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
-}
-
-.overview-grid-window-resizer-right {
-    margin-left: -3px;
-    margin-right: -2px;
-}
-
-/* Network timing is shared between popover and network item view pane */
-
-.network-timing-table td {
-    padding: 0;
-}
-
-.network-timing-row {
-    position: relative;
-    height: 16px;
-}
-
-.network-timing-bar {
-    position: absolute;
-    background-color: red;
-    border-left: 1px solid red;
-    opacity: 0.4;
-    top: 0;
-    bottom: 0;
-}
-
-.network-timing-bar-title {
-    position: absolute;
-    color: #222;
-    top: 1px;
-}
-
-.highlighted-search-result {
-    border-radius: 1px;
-    padding: 1px;
-    margin: -1px;
-    background-color: rgba(255, 255, 0, 0.8);
-}
-
-.sidebar-separator {
-    background-color: rgb(230, 230, 230);
-    padding: 0 5px;
-    border-top: 1px solid rgb(189, 189, 189);
-    border-bottom: 1px solid rgb(189, 189, 189);
-    color: rgb(50, 50, 50);
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    line-height: 16px;
-}
-
-.sidebar-label {
-    font-size: 11px;
-}
-
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/layersPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/layersPanel.css
deleted file mode 100644 (file)
index c558fb8..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * 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.
- */
-
-.layers.panel .outline-disclosure {
-    z-index: 10;
-}
-
-.layers.panel div.outline-disclosure > ol {
-    margin-left: -12px;
-}
-
-.layers.panel .outline-disclosure ol.children {
-    padding-left: 12px;
-}
-
-.layers.panel .outline-disclosure li {
-    margin-top: 0;
-    margin-bottom: 0;
-    padding: 1 1 1 14px;
-    white-space: nowrap;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-
-.layers.panel .outline-disclosure .dimmed {
-    opacity: 0.6;
-}
-
-.layers-3d-view {
-    overflow: hidden;
-}
-
-.layers-3d-view .rotating-container {
-    -webkit-transform-style: preserve-3d;
-}
-
-.layers-3d-view .rotating-container > .layer-container {
-    -webkit-transform-origin: 0 0;
-}
-
-.layers-3d-view .layer-container {
-    position: absolute;
-    border: 1px solid rgba(40, 40, 40, 0.8);
-    -webkit-transform-style: preserve-3d;
-}
-
-.layers-3d-view .layer-container.invisible {
-    opacity: 0.4;
-    border-type: dashed;
-}
-
-.layer-container .side-wall {
-    position: absolute;
-    background-color: inherit;
-    top: 0px;
-    right: 0px;
-    bottom: 0px;
-    left: 0px;
-    -webkit-transform-origin: 0 0;
-    border: inherit;
-    border-width: 1px;
-}
-
-.layer-container .back-wall {
-    background-color: inherit;
-    border: inherit;
-    border-width: 1px;
-}
-
-.layer-container .side-wall.top {
-    width: auto;
-    bottom: auto;
-    -webkit-transform: rotateX(-90deg);
-}
-
-.layer-container .side-wall.bottom {
-    width: auto;
-    top: auto;
-    -webkit-transform: translateY(100%) rotateX(-90deg);
-}
-
-.layer-container .side-wall.left {
-    height: auto;
-    right: auto;
-    -webkit-transform: rotateY(90deg);
-}
-
-.layer-container .side-wall.right {
-    height: auto;
-    left: auto;
-    -webkit-transform: translateX(100%) rotateY(90deg);
-}
-
-.layer-container.selected {
-    border-color: black;
-}
-
-.layer-container.hovered:not(.selected) {
-    border-color: rgb(150, 150, 255);
-}
-
-.layer-container .paint-rect {
-    position: absolute;
-    border-style: solid;
-}
-
-.layer-details-view .empty-view {
-    font-size: 16px;
-}
-
-.layer-details-view table td {
-    padding-left: 8px;
-}
-
-.layer-details-view table td:first-child {
-    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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/navigatorView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/navigatorView.css
deleted file mode 100644 (file)
index 598090d..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-.navigator-domain-tree-item .icon {
-    content: url(Images/domain.png);
-}
-
-.navigator-folder-tree-item .icon {
-    opacity: 0.7;
-    content: url(Images/frame.png);
-}
-
-.navigator-script-tree-item .icon {
-    content: url(Images/resourceJSIcon.png);
-}
-
-.navigator-stylesheet-tree-item .icon {
-    content: url(Images/resourceCSSIcon.png);
-}
-
-.navigator-document-tree-item .icon {
-    content: url(Images/resourceDocumentIcon.png);
-}
-
-.navigator-other-tree-item .icon {
-    content: url(Images/resourcePlainIcon.png);
-}
-
-.navigator > ol {
-    min-height: 100%;
-    display: inline-block;
-}
-
-.navigator li {
-    height: 18px;
-    line-height: 17px;
-    white-space: nowrap;
-}
-
-.navigator :focus li.selected {
-    color: white;
-}
-
-.navigator li.selected .selection {
-    height: 18px;
-}
-
-.navigator > ol.being-edited li.selected .selection {
-    background-color: rgb(56, 121, 217);
-}
-
-
-.navigator .icon {
-    width: 16px;
-    height: 16px;
-    float: left;
-}
-
-.navigator .base-navigator-tree-element-title {
-    display: inline-block;
-    position: relative;
-    padding-left: 2px;
-}
-
-.navigator .base-navigator-tree-element-title.editing {
-    margin: auto;
-}
-
-.navigator-tabbed-pane {
-    flex: auto;
-}
-
-.navigator-tabbed-pane .tabbed-pane-content {
-    overflow: hidden;
-}
-
-.navigator-tabbed-pane .navigator-container {
-    overflow: auto;
-}
-
-.navigator-tabbed-pane .navigator {
-    padding-left: 0;
-}
-
-.navigator-tabbed-pane .tabbed-pane-header-contents {
-    margin-left: 2px;
-    margin-right: 28px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkLogView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkLogView.css
deleted file mode 100644 (file)
index da54643..0000000
+++ /dev/null
@@ -1,583 +0,0 @@
-/*
- * 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.
- */
-
-.network-log-grid.data-grid {
-    border: none;
-    flex: 1 1;
-}
-
-.network-summary-bar {
-    flex: 0 0 19px;
-    padding-left: 5px;
-    line-height: 18px;
-    background-color: rgb(236, 236, 236);
-    border-top: 1px solid #ccc;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    overflow: hidden;
-}
-
-.network-summary-bar .warning-icon-small {
-    margin-right: 6px;
-}
-
-.network-log-grid.data-grid table.data {
-    background-size: 1px 82px;
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(0.5, rgba(0, 0, 0, 0)), color-stop(0.5, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.05)));
-}
-
-.network-log-grid.data-grid.small table.data {
-    background-size: 1px 42px;
-}
-
-.network-log-grid.data-grid td {
-    line-height: 17px;
-    height: 41px;
-    border-left: 1px solid rgb(210, 210, 210);
-    vertical-align: middle;
-}
-
-.network-log-grid.data-grid.small td {
-    height: 21px;
-}
-
-.network-log-grid.data-grid th {
-    border-bottom: 1px solid rgb(205, 205, 205);
-    border-left: 1px solid rgb(205, 205, 205);
-    height: 30px;
-}
-
-.network-log-grid.data-grid.small th {
-    height: 22px;
-}
-
-.network-log-grid.data-grid th,
-.network-log-grid.data-grid th.sort-descending,
-.network-log-grid.data-grid th.sort-ascending {
-    background: white;
-}
-
-.network-log-grid.data-grid .data-container {
-    top: 31px;
-}
-
-.network-log-grid.data-grid.small .data-container {
-    top: 23px;
-}
-
-.network-log-grid.data-grid select {
-    -webkit-appearance: none;
-    background-color: transparent;
-    border: none;
-    width: 100%;
-    color: inherit;
-}
-
-.network-log-grid.data-grid.small tr.offscreen {
-    height: 21px;
-}
-
-.network-log-grid.data-grid tr.offscreen {
-    height: 41px;
-}
-
-.network-log-grid.data-grid tr.offscreen > td > div {
-    display: none;
-}
-
-.network-log-grid.data-grid tr.filler {
-    background-color: white;
-}
-
-.network-log-grid.data-grid tr:not(.filler) td.name-column {
-    cursor: pointer;
-}
-
-#network-container:not(.brief-mode) .network-log-grid.data-grid td.name-column:hover {
-    text-decoration: underline;
-}
-
-.network-log-grid.data-grid.small .network-graph-side {
-    height: 14px;
-}
-
-.network-log-grid.data-grid th.sortable:active {
-    background-image: none !important;
-}
-
-.network-cell-subtitle {
-    font-weight: normal;
-    color: gray;
-}
-
-.network-error-row,
-.network-error-row .network-cell-subtitle {
-    color: rgb(230, 0, 0);
-}
-
-.initiator-column a {
-    color: inherit;
-}
-
-.network-log-grid.data-grid tr.selected .network-cell-subtitle {
-    color: white;
-}
-
-.network-log-grid tr.highlighted-row {
-    -webkit-animation: "network-row-highlight-fadeout" 2s 0s;
-}
-
-@-webkit-keyframes network-row-highlight-fadeout {
-    from {background-color: rgba(255, 255, 120, 1); }
-    to { background-color: rgba(255, 255, 120, 0); }
-}
-
-.network-header-subtitle {
-    color: gray;
-}
-
-.network-log-grid.data-grid.small .network-cell-subtitle,
-.network-log-grid.data-grid.small .network-header-subtitle {
-    display: none;
-}
-
-/* Resource preview icons */
-
-.network-log-grid.data-grid .icon {
-    content: url(Images/resourcePlainIcon.png);
-}
-
-.network-log-grid.data-grid.small .icon {
-    content: url(Images/resourcePlainIconSmall.png);
-}
-
-.network-log-grid.data-grid .network-type-script .icon {
-    content: url(Images/resourceJSIcon.png);
-}
-
-.network-log-grid.data-grid.small .network-type-script .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.network-log-grid.data-grid .network-type-document .icon {
-    content: url(Images/resourceDocumentIcon.png);
-}
-
-.network-log-grid.data-grid.small .network-type-document .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.network-log-grid.data-grid .network-type-stylesheet .icon {
-    content: url(Images/resourceCSSIcon.png);
-}
-
-.network-log-grid.data-grid.small .network-type-stylesheet .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.network-log-grid.data-grid .network-type-image .icon {
-    position: relative;
-    background-image: url(Images/resourcePlainIcon.png);
-    background-repeat: no-repeat;
-    content: "";
-}
-
-.network-log-grid.data-grid.small .network-type-image .icon {
-    background-image: url(Images/resourcePlainIconSmall.png);
-    content: "";
-}
-
-.network-log-grid.data-grid .icon {
-    float: left;
-    width: 32px;
-    height: 32px;
-    margin-top: 1px;
-    margin-right: 3px;
-}
-
-.network-log-grid.data-grid th {
-    border-bottom: 1px solid rgb(205,205,205) !important;
-}
-
-.network-log-grid.data-grid.small .icon {
-    width: 16px;
-    height: 16px;
-}
-
-.network-log-grid.data-grid .image-network-icon-preview {
-    position: absolute;
-    margin: auto;
-    top: 3px;
-    bottom: 4px;
-    left: 5px;
-    right: 5px;
-    max-width: 18px;
-    max-height: 21px;
-    min-width: 1px;
-    min-height: 1px;
-}
-
-.network-log-grid.data-grid.small .image-network-icon-preview {
-    top: 2px;
-    bottom: 1px;
-    left: 3px;
-    right: 3px;
-    max-width: 8px;
-    max-height: 11px;
-}
-
-/* Graph styles */
-
-.network-graph-side {
-    position: relative;
-    height: 36px;
-    padding: 0;
-    white-space: nowrap;
-    margin-top: 1px;
-    border-top: 1px solid transparent;
-    overflow: hidden;
-}
-
-.network-graph-bar-area {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-}
-
-.network-graph-bar-area,
-.network-timeline-grid .resources-dividers,
-.network-timeline-grid .resources-event-dividers,
-.network-timeline-grid .resources-dividers-label-bar {
-    right: 12px;
-    left: 12px;
-}
-
-.network-graph-label {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    margin: auto -7px;
-    height: 13px;
-    line-height: 13px;
-    font-size: 90%;
-    color: rgba(0, 0, 0, 0.75);
-    text-shadow: rgba(255, 255, 255, 0.25) 1px 0 0, rgba(255, 255, 255, 0.25) -1px 0 0, rgba(255, 255, 255, 0.333) 0 1px 0, rgba(255, 255, 255, 0.25) 0 -1px 0;
-    z-index: 150;
-    overflow: hidden;
-    text-align: center;
-    opacity: 0;
-    -webkit-transition: opacity 250ms ease-in-out;
-}
-
-.network-graph-side:hover .network-graph-label {
-    opacity: 1;
-}
-
-.network-graph-label:empty {
-    display: none;
-}
-
-.network-graph-label.waiting {
-    margin-right: 5px;
-}
-
-.network-graph-label.waiting-right {
-    margin-left: 5px;
-}
-
-.network-graph-label.before {
-    color: rgba(0, 0, 0, 0.7);
-    text-shadow: none;
-    text-align: right;
-    margin-right: 2px;
-}
-
-.network-graph-label.before::after {
-    padding-left: 2px;
-    height: 6px;
-    content: url(Images/graphLabelCalloutLeft.png);
-}
-
-.network-graph-label.after {
-    color: rgba(0, 0, 0, 0.7);
-    text-shadow: none;
-    text-align: left;
-    margin-left: 2px;
-}
-
-.network-graph-label.after::before {
-    padding-right: 2px;
-    height: 6px;
-    content: url(Images/graphLabelCalloutRight.png);
-}
-
-.network-graph-bar {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    margin: auto -7px;
-    height: 12px;
-    min-width: 14px;
-    opacity: 0.65;
-    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,
-.network-graph-bar.waiting-right {
-    opacity: 0.35;
-}
-
-/* Resource categories */
-
-
-.resource-cached .network-graph-bar {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    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 {
-    color: grey;
-}
-
-/* Dividers */
-
-.network-timeline-grid {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 14px; /* Keep in sync with td.corner width */
-    pointer-events: none;
-}
-
-.data-grid td.timeline-column {
-    padding-left: 0;
-    padding-right: 0;
-}
-
-.network-event-divider-padding {
-    position: absolute;
-    width: 8px;
-    top: 0;
-    bottom: 0;
-    pointer-events: auto;
-}
-
-.network-event-divider {
-    position: absolute;
-    width: 2px;
-    top: 31px;
-    bottom: 0;
-    z-index: 300;
-}
-
-.network-timeline-grid.small .network-event-divider {
-    top: 23px;
-}
-
-.network-red-divider {
-    background-color: rgba(255, 0, 0, 0.5);
-}
-
-.network-blue-divider {
-    background-color: rgba(0, 0, 255, 0.5);
-}
-
-.network-log-grid.data-grid .resources-dividers {
-    z-index: 0;
-}
-
-.network-log-grid.data-grid .resources-dividers-label-bar {
-    background-color: transparent;
-    border: none;
-    height: 30px;
-    pointer-events: none;
-}
-
-.network-timeline-grid.small .resources-dividers-label-bar {
-    height: 23px;
-}
-
-.network-timeline-grid .resources-divider-label {
-    top: 0;
-    margin-top: -5px;
-}
-
-.network-timeline-grid .resources-dividers-label-bar .resources-divider {
-    top: 23px;
-}
-
-.network-timeline-grid.small .resources-dividers-label-bar .resources-divider {
-    top: 15px;
-}
-
-.network-timeline-grid .resources-divider:first-child .resources-divider-label {
-    display: none;
-}
-
-.network-timeline-grid .resources-dividers-label-bar .resources-divider:first-child {
-    background-color: transparent;
-}
-
-/* Filters */
-
-.network-log-grid.data-grid table.data tr.revealed.network-item.filtered-out {
-    display: none;
-}
-
-/* Summary */
-
-.network-log-grid.data-grid tr.filler td {
-    padding-bottom: 20px !important;
-}
-
-#network-container {
-    overflow-y: auto;
-    overflow-x: hidden;
-}
-
-/* Brief mode peculiarities. */
-#network-container.brief-mode .network-timeline-grid {
-    display: none;
-}
-
-#network-container.brief-mode td,
-#network-container.brief-mode th {
-    border-left: none;
-}
-
-#network-container.brief-mode .network-log-grid.data-grid .data-grid-resizer {
-    display: none;
-}
-
-#network-container.brief-mode .network-timeline-grid {
-    display: none;
-}
-
-#network-container:not(.brief-mode) .data-grid tr.selected {
-    background-color: transparent;
-    color: #222;
-}
-
-#network-container.brief-mode .data-grid .data-container {
-    padding-right: 0;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/networkPanel.css
deleted file mode 100644 (file)
index e52a63b..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * 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.
- */
-
-.network-larger-resources-status-bar-item .glyph {
-    -webkit-mask-position: -224px 0;
-}
-
-#network-views {
-    background: rgb(203, 203, 203);
-}
-
-#network-close-button {
-    position: absolute;
-    top: 8px;
-    left: 5px;
-    z-index: 10;
-    display: none;
-}
-
-#network-views.small #network-close-button {
-    top: 4px;
-}
-
-.network.panel.viewing-resource #network-close-button  {
-    display: block;
-}
-
-.network.panel .sidebar {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    width: auto;
-    border: none;
-    background: inherit;
-}
-
-.network.panel:not(.viewing-resource) .sidebar-resizer-vertical {
-    display: none;
-}
-
-.network.panel .data-grid th.sort-descending,
-.network.panel .data-grid th.sort-ascending {
-    background: white;
-}
-
-#network-views .network-item-view .tabbed-pane-header {
-    flex: 0 0 31px;
-    padding-top: 8px;
-    padding-left: 13px;
-    white-space: nowrap;
-}
-
-#network-views.small .network-item-view .tabbed-pane-header {
-    flex-basis: 23px;
-    padding-top: 0;
-}
-
-.network-item-view {
-    display: none;
-    position: absolute;
-    background: white;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.network-item-view.visible {
-    display: -webkit-flex;
-}
-
-.network-item-view .tabbed-pane-header {
-    border-bottom: 1px solid rgb(205, 205, 205);
-}
-
-.resource-headers-view {
-    display: none;
-    margin: 6px;
-    -webkit-user-select: text;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    overflow: auto;
-}
-
-.resource-headers-view.visible {
-    display: block;
-}
-
-.resource-headers-view .outline-disclosure .parent {
-    -webkit-user-select: none;
-    font-weight: bold;
-}
-
-.resource-headers-view .outline-disclosure .parent .section * {
-    font-weight: normal;
-}
-
-.resource-headers-view .outline-disclosure .children li {
-    white-space: nowrap;
-}
-
-.resource-headers-view .outline-disclosure li.expanded .caution {
-    color: rgb(255, 128, 0);
-}
-
-.resource-headers-view .outline-disclosure li:not(.expanded) .caution {
-    display: none;
-}
-
-.resource-headers-view .outline-disclosure li.expanded .header-count {
-    display: none;
-}
-
-.resource-headers-view .outline-disclosure li .header-toggle {
-    display: none;
-}
-
-.resource-headers-view .outline-disclosure li .status-from-cache {
-    color: gray;
-}
-
-.resource-headers-view .outline-disclosure li.expanded .header-toggle {
-    display: inline;
-    margin-left: 30px;
-    font-weight: normal;
-    color: rgb(45%, 45%, 45%);
-}
-
-.resource-headers-view .outline-disclosure li .header-toggle:hover {
-    color: rgb(20%, 20%, 45%);
-    cursor: pointer;
-}
-
-.resource-headers-view .outline-disclosure .header-name {
-    color: rgb(33%, 33%, 33%);
-    display: inline-block;
-    margin-right: 0.5em;
-    font-weight: bold;
-    vertical-align: top;
-    white-space: pre-wrap;
-}
-
-.resource-headers-view .outline-disclosure .header-value {
-    display: inline;
-    margin-right: 100px;
-    white-space: pre-wrap;
-    word-break: break-all;
-    margin-top: 1px;
-}
-
-.resource-cookies-view {
-    display: none;
-    position: absolute;
-    top: 0;
-    right: 0;
-    left: 0;
-    bottom: 0;
-    overflow: auto;
-    margin: 12px;
-    height: 100%;
-}
-
-.resource-cookies-view.visible {
-    display: block;
-}
-
-.resource-cookies-view .data-grid {
-    height: 100%;
-}
-
-.resource-cookies-view .data-grid .row-group {
-    font-weight: bold;
-    font-size: 11px;
-}
-
-.resource-timing-view {
-    display: none;
-    position: absolute;
-    top: 0;
-    right: 0;
-    left: 0;
-    bottom: 0;
-    margin: 6px;
-    font-weight: bold;
-    font-size: 11px;
-    color: rgb(30%, 30%, 30%);
-}
-
-.resource-timing-view table {
-    border-spacing: 21px 0;
-}
-
-.resource-timing-view .network-timing-bar {
-    opacity: 1;
-}
-
-.resource-timing-view .network-timing-bar.blocking,
-.resource-timing-view .network-timing-bar.proxy {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(242, 242, 194)), to(rgb(204, 204, 102)));
-    border-left: 1px solid rgb(204, 204, 102);
-}
-
-.resource-timing-view .network-timing-bar.dns {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 242, 194)), to(rgb(102, 204, 102)));
-    border-left: 1px solid rgb(102, 204, 102);
-}
-
-.resource-timing-view .network-timing-bar.connecting,
-.resource-timing-view .network-timing-bar.ssl {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 242, 242)), to(rgb(102, 204, 204)));
-    border-left: 1px solid rgb(102, 204, 204);
-}
-
-.resource-timing-view .network-timing-bar.sending {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 242)), to(rgb(102, 102, 204)));
-    border-left: 1px solid rgb(102, 102, 204);
-}
-
-.resource-timing-view .network-timing-bar.waiting {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(242, 194, 242)), to(rgb(204, 102, 204)));
-    border-left: 1px solid rgb(204, 102, 204);
-}
-
-.resource-timing-view .network-timing-bar.receiving {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(242, 194, 194)), to(rgb(204, 102, 102)));
-    border-left: 1px solid rgb(204, 102, 102);
-}
-
-.resource-timing-view.visible {
-    display: block;
-}
-
-.resource-websocket {
-    -webkit-user-select: text;
-}
-
-.resource-websocket,
-.resource-websocket .data-grid {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    border: none;
-}
-
-.resource-websocket .data-grid .data {
-    background-image: none;
-}
-
-.resource-websocket td {
-    padding-top: 3px;
-    padding-bottom: 3px;
-    border-top: 1px solid rgb(240, 240, 240);
-}
-
-.resource-websocket .data-column div {
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-}
-
-.resource-websocket-row-outcoming {
-    background-color: rgb(226, 247, 218);
-}
-
-.resource-websocket-row-outcoming:not(.selected) td {
-    border-left-color: rgb(177, 209, 165);
-}
-
-.resource-websocket-row-outcoming:not(.selected) td, .resource-websocket-row-outcoming:not(.selected) + tr td {
-    border-top-color: rgb(199, 236, 185);
-}
-
-.resource-websocket-row-opcode {
-    background-color: rgb(255, 255, 232);
-    color: rgb(170, 111, 71);
-}
-
-.resource-websocket-row-opcode td {
-    border-color: rgb(211, 187, 171);
-}
-
-.resource-websocket-row-opcode td, .resource-websocket-row-opcode + tr td {
-    border-top-color: rgb(248, 240, 210);
-}
-
-.resource-websocket-row-error {
-    background-color: rgb(255, 237, 237);
-    color: rgb(182, 0, 0);
-}
-
-.panel.network .split-view {
-    flex: auto;
-    position: relative;
-}
-
-.network-filters-header {
-    flex: 0 0 23px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/overrides.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/overrides.css
deleted file mode 100644 (file)
index f06fffd..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * 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.
- */
-
-
-.overrides-view .tabbed-pane {
-    flex-direction: row;
-}
-
-.overrides-view .tabbed-pane-header {
-    border: none transparent !important;
-    width: auto;
-    flex: 0 0 auto;
-}
-
-.overrides-view .tabbed-pane-content {
-    padding-top: 10px;
-    padding-left: 10px;
-    padding-right: 10px;
-    overflow-x: hidden;
-}
-
-.overrides-view .tabbed-pane-header-contents {
-    margin: 0;
-}
-
-.overrides-view .tabbed-pane-header-tabs {
-    display: flex;
-    flex-direction: column;
-    padding-top: 5px;
-    width: 100px;
-}
-
-.overrides-view .tabbed-pane-header-tab {
-    background-color: transparent;
-    border: none transparent;
-    font-weight: normal;
-    text-shadow: none;
-    color: #777;
-    height: 22px;
-    padding-left: 0;
-    padding-left: 10px;
-    border-left: 4px solid transparent;
-}
-
-.overrides-view .tabbed-pane-header-tab:not(.selected) {
-    cursor: pointer !important;
-}
-
-.overrides-view .tabbed-pane-header-tab.selected {
-    color: inherit;
-    border: none transparent;
-    border-left: 4px solid #666;
-}
-
-.overrides-view fieldset {
-    border: none;
-    padding: 0 0 5px 15px;
-}
-
-.overrides-user-agent fieldset {
-    padding-top: 5px;
-}
-
-.overrides-device > select {
-    margin-bottom: 10px;
-    width: 400px;
-    max-width: 90%;
-}
-
-.overrides-device button {
-    margin-right: 10px;
-}
-
-.overrides-device > label {
-    display: block;
-    margin-bottom: 7px;
-    white-space: nowrap;
-}
-
-.overrides-device-value {
-    padding-left: 10px;
-    color: gray;
-}
-
-.overrides-device-value-label {
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    padding-top: 3px;
-}
-
-.overrides-viewport {
-    width: 100%;
-}
-
-.overrides-viewport input {
-    text-align: right;
-}
-
-.overrides-viewport input[type=range] {
-    width: 100%;
-}
-
-button.overrides-swap {
-    height: 20px;
-}
-
-.overrides-viewport label {
-    display: block;
-    margin-bottom: 5px;
-}
-
-.overrides-viewport table {
-    margin-bottom: 5px;
-}
-
-.overrides-viewport > label {
-    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%;
-}
-
-.overrides-user-agent select {
-    margin: 7px 0;
-}
-
-.overrides-sensors > label {
-    display: block;
-    margin-bottom: 10px;
-}
-
-.overrides-sensors input {
-    text-align: right;
-}
-
-.overrides-activate-device #tab-device,
-.overrides-activate-viewport #tab-viewport,
-.overrides-activate-user-agent #tab-user-agent,
-.overrides-activate-sensors #tab-sensors {
-    color: rgb(25, 100, 228);
-    opacity: 0.8;
-}
-
-.overrides-activate-device #tab-device.selected,
-.overrides-activate-viewport #tab-viewport.selected,
-.overrides-activate-user-agent #tab-user-agent.selected,
-.overrides-activate-sensors #tab-sensors.selected {
-    opacity: 1;
-}
-
-.overrides-view input[type=text]:enabled:focus,
-.overrides-view select:enabled:focus {
-    -webkit-transition: border-color 200ms;
-    border-color: rgb(77, 144, 254);
-    outline: none;
-}
-
-.overrides-view input[type=text],
-.overrides-view select {
-    border: 1px solid #bfbfbf;
-    border-radius: 2px;
-    box-sizing: border-box;
-    color: #444;
-    font: inherit;
-    border-width: 1px;
-}
-
-.overrides-view input[type=text] {
-    margin: 0;
-    min-height: 2em;
-    padding: 3px;
-}
-
-.overrides-view .overrides-footer {
-    flex: none;
-    padding: 0 0 1px 3px;
-    border-top: 1px solid rgb(203,203,203);
-    background-color: rgb(236,236,236);
-}
-
-.overrides-view .overrides-footer::before {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    width: 10px;
-    height: 10px;
-    content: "";
-    position: relative;
-    top: 2px;
-    background-position: -202px -107px;
-    float: left;
-    margin-right: 4px;
-}
-
-.overrides-view .overrides-footer .warning-icon-small {
-    margin-right: 3px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/panelEnablerView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/panelEnablerView.css
deleted file mode 100644 (file)
index 7274383..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.
- */
-
-.panel-enabler-view {
-    background-color: white;
-    font-size: 13px;
-    text-align: center;
-    overflow-x: hidden;
-    overflow-y: overlay;
-    flex: auto;
-    display: flex;
-}
-
-.panel-enabler-view h1 {
-    color: rgb(110, 116, 128);
-    font-size: 16px;
-    line-height: 20px;
-    font-weight: normal;
-    margin-top: 0;
-}
-
-.panel-enabler-view img {
-    height: 100%;
-    min-height: 200px;
-    max-width: 100%;
-    top: 0;
-    bottom: 0;
-    padding: 20px 0 20px 20px;
-    margin: auto;
-    vertical-align: middle;
-}
-
-.panel-enabler-view img.hidden {
-    display: initial !important;
-    width: 0;
-}
-
-.panel-enabler-view .flexible-space {
-    -webkit-flex: 1;
-}
-
-.panel-enabler-view form {
-    display: inline-block;
-    vertical-align: middle;
-    width: 330px;
-    margin: 0;
-    padding: 15px;
-    white-space: normal;
-}
-
-.panel-enabler-view label {
-    position: relative;
-    display: block;
-    text-align: left;
-    word-break: break-word;
-    margin: 0 0 5px 20px;
-}
-
-.panel-enabler-view button:not(.status-bar-item) {
-    font-size: 13px;
-    margin: 6px 0 0 0;
-    padding: 2px 20px;
-    height: 24px;
-    color: rgb(6, 6, 6);
-    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 .panel-enabler-view button:not(.status-bar-item),
-.panel-enabler-view button:disabled:not(.status-bar-item) {
-    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)));
-}
-
-.panel-enabler-view button:active:not(.status-bar-item) {
-    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)));
-}
-
-.panel-enabler-view input[type="radio"] {
-    height: 17px;
-    width: 17px;
-    border: 1px solid rgb(165, 165, 165);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
-    border-radius: 8px;
-    -webkit-appearance: none;
-    vertical-align: middle;
-    margin: 0 5px 5px 0;
-}
-
-.panel-enabler-view input[type="radio"]:active:not(:disabled) {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
-}
-
-.panel-enabler-view input[type="radio"]:checked {
-    background: url(Images/radioDot.png) center no-repeat,
-                -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223)));
-}
-
-.panel-enabler-view input[type="radio"]:checked:active {
-    background: url(Images/radioDot.png) center no-repeat,
-                -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239)));
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profilesPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/profilesPanel.css
deleted file mode 100644 (file)
index 731ed63..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * 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.
- */
-
-/* Profiler Style */
-
-#profile-views {
-    flex: auto;
-    position: relative;
-}
-
-.profiles-status-bar {
-    background-color: rgb(236, 236, 236);
-    flex: 0 0 23px;
-}
-
-.profile-launcher-view-tree-item > .icon {
-    width: 4px !important;
-    visibility: hidden;
-}
-
-.profiles-sidebar-tree-box {
-    overflow: auto;
-    flex: auto;
-}
-
-.profile-sidebar-tree-item .icon {
-    content: url(Images/profileIcon.png);
-}
-
-.profile-sidebar-tree-item.small .icon {
-    content: url(Images/profileSmallIcon.png);
-}
-
-.profile-group-sidebar-tree-item .icon {
-    content: url(Images/profileGroupIcon.png);
-}
-
-.profile-view {
-    display: none;
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.profile-view.visible {
-    display: block;
-}
-
-.profile-view .data-grid {
-    border: none;
-    height: 100%;
-}
-
-.profile-view .data-grid th.average-column {
-    text-align: center;
-}
-
-.profile-view .data-grid td.average-column {
-    text-align: right;
-}
-
-.profile-view .data-grid th.self-column {
-    text-align: center;
-}
-
-.profile-view .data-grid td.self-column {
-    text-align: right;
-}
-
-.profile-view .data-grid th.total-column {
-    text-align: center;
-}
-
-.profile-view .data-grid td.total-column {
-    text-align: right;
-}
-
-.profile-view .data-grid .calls-column {
-    text-align: center;
-}
-
-.profile-node-file {
-    float: right;
-    color: gray;
-    margin-top: -1px;
-}
-
-.profile-warn-marker {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    background-position: -201px -105px;
-    padding-left: 12px;
-    width: 10px;
-    height: 10px;
-    vertical-align: -1px;
-    margin-right: 2px;
-}
-
-.data-grid tr.selected .profile-node-file {
-    color: rgb(33%, 33%, 33%);
-}
-
-.data-grid:focus tr.selected .profile-node-file {
-    color: white;
-}
-
-.percent-time-status-bar-item .glyph {
-    -webkit-mask-position: -192px -24px;
-}
-
-.focus-profile-node-status-bar-item .glyph {
-    -webkit-mask-position: -96px 0;
-}
-
-.exclude-profile-node-status-bar-item .glyph {
-    -webkit-mask-position: -128px 0;
-}
-
-.reset-profile-status-bar-item .glyph {
-    -webkit-mask-position: 0 0;
-}
-
-.garbage-collect-status-bar-item .glyph {
-    -webkit-mask-position: -128px -24px;
-}
-
-.profile-launcher-view-content {
-    padding: 0 16px;
-    text-align: left;
-}
-
-.control-profiling {
-    -webkit-align-self: flex-start;
-}
-
-.profile-launcher-view-content h1 {
-    padding: 15px 0 10px;
-}
-
-.panel-enabler-view.profile-launcher-view form {
-    padding: 0;
-    font-size: 13px;
-    width: 100%;
-}
-
-.panel-enabler-view.profile-launcher-view label {
-    margin: 0;
-}
-
-.profile-launcher-view-content p {
-    color: grey;
-    margin-top: 1px;
-    margin-left: 22px;
-}
-
-.panel-enabler-view.profile-launcher-view button:not(.status-bar-item) {
-    color: rgb(6, 6, 6);
-    margin: 0 0 16px;
-}
-
-.profile-launcher-view-content button.running:not(.status-bar-item) {
-    color: red;
-}
-
-body.inactive .profile-launcher-view-content button.running:not(.status-bar-item) {
-    color: rgb(220, 130, 130);
-}
-
-.highlighted-row {
-    -webkit-animation: "row_highlight" 2s 0s;
-}
-
-@-webkit-keyframes row_highlight {
-    from {background-color: rgba(255, 255, 120, 1); }
-    to { background-color: rgba(255, 255, 120, 0); }
-}
-
-.profile-canvas-decoration .warning-icon-small {
-    margin-right: 4px;
-}
-.profile-canvas-decoration {
-    color: red;
-    margin: -14px 0 13px 22px;
-    padding-left: 14px;
-}
-
-.profile-canvas-decoration button {
-    margin: 0 0 0 10px !important;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourceView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourceView.css
deleted file mode 100644 (file)
index 30fa31e..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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.
- */
-
-.resource-view {
-    display: none;
-    position: absolute;
-    top: 0;
-    right: 0;
-    left: 0;
-    bottom: 0;
-    overflow: auto;
-}
-
-.resource-view.visible {
-    display: block;
-}
-
-.resource-view.font {
-    font-size: 60px;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-    text-align: center;
-    padding: 15px;
-}
-
-.resource-view .script-view {
-    background-color: rgb(240, 240, 240);
-}
-
-.resource-view.image > .image {
-    padding: 20px 20px 10px 20px;
-    text-align: center;
-}
-
-.resource-view.image > .info {
-    padding-bottom: 10px;
-    font-size: 11px;
-    -webkit-user-select: text;
-}
-
-.resource-view.image img.resource-image-view {
-    max-width: 100%;
-    max-height: 1000px;
-    background-image: url(Images/checker.png);
-    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
-    -webkit-user-select: text;
-    -webkit-user-drag: auto;
-}
-
-.resource-status-image {
-    margin-top: -2px;
-    margin-right: 3px;
-    vertical-align: middle;
-}
-
-.resource-view.image .title {
-    text-align: center;
-    font-size: 13px;
-}
-
-.resource-view.image .infoList {
-    margin: 0;
-}
-
-.resource-view.image .infoList dt {
-    font-weight: bold;
-    display: inline-block;
-    width: 50%;
-    text-align: right;
-    color: rgb(76, 76, 76);
-}
-
-.resource-view.image .infoList dd {
-    display: inline-block;
-    padding-left: 8px;
-    width: 50%;
-    text-align: left;
-    margin: 0;
-}
-
-.resource-view.image .infoList dd::after {
-    white-space: pre;
-    content: "\A";
-}
-
-.script-view-fallback {
-    word-wrap: break-word;
-    white-space: pre-wrap;
-    -webkit-user-select: text;
-    background-color: inherit;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourcesPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/resourcesPanel.css
deleted file mode 100644 (file)
index 0032f26..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * 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.
- */
-
-.resources.panel .sidebar-resizer-vertical {
-    top: 23px;
-}
-
-.resources.panel .sidebar {
-    padding-left: 0;
-    z-index: 10;
-}
-
-.resources.panel .sidebar li {
-    height: 18px;
-    white-space: nowrap;
-}
-
-.resources.panel .sidebar li.selected {
-    color: white;
-    text-shadow: rgba(0, 0, 0, 0.33) 1px 1px 0;
-}
-
-.resources.panel .sidebar li.selected .selection {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(162, 177, 207)), to(rgb(120, 138, 177)));
-    border-top: 1px solid #979797;
-    height: 18px;
-}
-
-.resources.panel .sidebar :focus li.selected .selection {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(92, 147, 213)), to(rgb(21, 83, 170)));
-    border-top: 1px solid rgb(68, 128, 200);
-}
-
-body.inactive .resources.panel .sidebar li.selected .selection {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(180, 180, 180)), to(rgb(138, 138, 138)));
-    border-top: 1px solid rgb(151, 151, 151);
-}
-
-.resources.panel .sidebar .icon {
-    width: 16px;
-    height: 16px;
-    float: left;
-}
-
-.resources.panel .base-storage-tree-element-title {
-    overflow: hidden;
-    position: relative;
-    text-overflow: ellipsis;
-    padding-left: 2px;
-    top: 1px;
-}
-
-.resources-main {
-    position: absolute;
-    top: 0;
-    bottom: 23px;
-    left: 0;
-    right: 0;
-}
-
-.resources-status-bar {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    height: 23px;
-    background-color: rgb(236, 236, 236);
-}
-
-li.selected .base-storage-tree-element-subtitle {
-    color: white;
-}
-
-.base-storage-tree-element-subtitle {
-    padding-left: 2px;
-    color: rgb(80, 80, 80);
-    text-shadow: none;
-}
-
-.resources.panel .status {
-    float: right;
-    height: 16px;
-    margin-top: 1px;
-    margin-left: 4px;
-    line-height: 1em;
-}
-
-.resources.panel li .status .bubble {
-    height: 13px;
-    padding-top: 0;
-}
-
-.storage-view {
-    display: none;
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-}
-
-.storage-view.visible {
-    display: block;
-}
-
-.storage-view {
-    overflow: hidden;
-}
-
-.storage-view .data-grid:not(.inline) {
-    border: none;
-    height: 100%;
-}
-
-.storage-view .storage-table-error {
-    color: rgb(66%, 33%, 33%);
-}
-
-.storage-view.query {
-    padding: 2px 0;
-    overflow-y: overlay;
-    overflow-x: hidden;
-}
-
-.database-query-prompt {
-    position: relative;
-    padding: 1px 22px 1px 24px;
-    min-height: 16px;
-    white-space: pre-wrap;
-    -webkit-user-modify: read-write-plaintext-only;
-    -webkit-user-select: text;
-}
-
-.database-user-query::before,
-.database-query-prompt::before,
-.database-query-result::before {
-    position: absolute;
-    display: block;
-    content: "";
-    left: 7px;
-    top: 0.8em;
-    width: 10px;
-    height: 10px;
-    margin-top: -7px;
-    -webkit-user-select: none;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.database-user-query::before,
-.database-query-prompt::before,
-.database-query-result::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.database-query-prompt::before {
-    background-position: -192px -96px;
-}
-
-.database-user-query {
-    position: relative;
-    border-bottom: 1px solid rgb(245, 245, 245);
-    padding: 1px 22px 1px 24px;
-    min-height: 16px;
-}
-
-.database-user-query::before {
-    background-position: -192px -107px;
-}
-
-.database-query-text {
-    color: rgb(0, 128, 255);
-    -webkit-user-select: text;
-}
-
-.database-query-result {
-    position: relative;
-    padding: 1px 22px 1px 24px;
-    min-height: 16px;
-    margin-left: -24px;
-    padding-right: 0;
-}
-
-.database-query-result.error {
-    color: red;
-    -webkit-user-select: text;
-}
-
-.database-query-result.error::before {
-    background-position: -213px -96px;
-}
-
-.resource-sidebar-tree-item .icon {
-    content: url(Images/resourcePlainIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item .icon {
-    content: url(Images/resourcePlainIconSmall.png);
-}
-
-.resource-sidebar-tree-item.resources-type-image .icon {
-    position: relative;
-    background-image: url(Images/resourcePlainIcon.png);
-    background-repeat: no-repeat;
-    content: "";
-}
-
-.resources-type-image .image-resource-icon-preview {
-    position: absolute;
-    margin: auto;
-    top: 3px;
-    bottom: 4px;
-    left: 5px;
-    right: 5px;
-    max-width: 18px;
-    max-height: 21px;
-    min-width: 1px;
-    min-height: 1px;
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-image .icon {
-    background-image: url(Images/resourcePlainIconSmall.png);
-    content: "";
-}
-
-.children.small .resources-type-image .image-resource-icon-preview {
-    top: 2px;
-    bottom: 1px;
-    left: 3px;
-    right: 3px;
-    max-width: 8px;
-    max-height: 11px;
-}
-
-.resource-sidebar-tree-item.resources-type-document .icon {
-    content: url(Images/resourceDocumentIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-document .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.resource-sidebar-tree-item.resources-type-stylesheet .icon {
-    content: url(Images/resourceCSSIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-stylesheet .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.resource-sidebar-tree-item.resources-type-image .icon {
-    position: relative;
-    background-image: url(Images/resourcePlainIcon.png);
-    background-repeat: no-repeat;
-    content: "";
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-image .icon {
-    background-image: url(Images/resourcePlainIconSmall.png);
-    content: "";
-}
-
-.resource-sidebar-tree-item.resources-type-font .icon {
-    content: url(Images/resourcePlainIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-font .icon {
-    content: url(Images/resourcePlainIconSmall.png);
-}
-
-.resource-sidebar-tree-item.resources-type-script .icon {
-    content: url(Images/resourceJSIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-script .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.resource-sidebar-tree-item.resources-type-xhr .icon {
-    content: url(Images/resourcePlainIcon.png);
-}
-
-.children.small .resource-sidebar-tree-item.resources-type-xhr .icon {
-    content: url(Images/resourceDocumentIconSmall.png);
-}
-
-.frame-storage-tree-item .icon {
-    content: url(Images/frame.png);
-}
-
-.database-storage-tree-item .icon {
-    content: url(Images/database.png);
-}
-
-.database-table-storage-tree-item .icon {
-    content: url(Images/databaseTable.png);
-}
-
-.indexed-db-storage-tree-item .icon {
-    content: url(Images/indexedDB.png);
-}
-
-.indexed-db-object-store-storage-tree-item .icon {
-    content: url(Images/indexedDBObjectStore.png);
-}
-
-.indexed-db-index-storage-tree-item .icon {
-    content: url(Images/indexedDBIndex.png);
-}
-
-.domstorage-storage-tree-item.local-storage .icon {
-    content: url(Images/localStorage.png);
-}
-
-.domstorage-storage-tree-item.session-storage .icon {
-    content: url(Images/sessionStorage.png);
-}
-
-.cookie-storage-tree-item .icon {
-    content: url(Images/cookie.png);
-}
-
-.application-cache-storage-tree-item .icon {
-    content: url(Images/applicationCache.png);
-}
-
-.file-system-storage-tree-item .icon {
-    content: url(Images/fileSystem.png);
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/revisionHistory.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/revisionHistory.css
deleted file mode 100644 (file)
index 0c77ec7..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2012 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:
- *
- * 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.
- */
-
-.outline-disclosure.revision-history-drawer {
-    -webkit-padding-start: 0;
-    overflow: auto;
-}
-
-.outline-disclosure.revision-history-drawer ol {
-    margin-top: 2px;
-    -webkit-padding-start: 0;
-    padding-left: 0 !important;
-}
-
-.outline-disclosure.revision-history-drawer > ol {
-    padding-left: 0;
-}
-
-.outline-disclosure.revision-history-drawer li {
-    padding-left: 6px;
-    margin-top: 0;
-    margin-bottom: 0;
-    height: 13px;
-}
-
-.outline-disclosure.revision-history-drawer li.parent {
-    margin-left: 4px;
-}
-
-.revision-history-link {
-    text-decoration: underline;
-    cursor: pointer;
-    color: #00e;
-    padding: 0 4px;
-}
-
-.revision-history-link-row {
-    padding-left: 16px;
-}
-
-.outline-disclosure.revision-history-drawer .revision-history-line {
-    padding-left: 0;
-    -webkit-user-select: text;
-}
-
-.revision-history-drawer .webkit-line-number {
-    border-right: 1px solid #BBB;
-    background-color: #F0F0F0;    
-}
-
-.revision-history-drawer li.revision-history-revision {
-    padding-left: 16px;
-}
-
-.revision-history-line-added {
-    background-color: rgb(153, 238, 153);
-}
-
-.revision-history-line-removed {
-    background-color: rgb(255, 221, 221);
-}
-
-.revision-history-line-separator .webkit-line-number {
-    color: transparent;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/screencastView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/screencastView.css
deleted file mode 100644 (file)
index b602ebc..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * 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.
- */
-
-.screencast-navigation {
-    -webkit-flex-direction: row;
-    display: -webkit-flex;
-    height: 25px;
-    position: relative;
-}
-
-.screencast-navigation button {
-    -webkit-border-radius: 2px;
-    background-color: transparent;
-    background-image: -webkit-image-set(
-        url(Images/navigationControls.png) 1x,
-        url(Images/navigationControls_2x.png) 2x);
-    background-clip: content-box;
-    background-origin: content-box;
-    background-repeat: no-repeat;
-    border: 1px solid transparent;
-    height: 23px;
-    padding: 3px 2px 1px;
-    width: 23px;
-}
-
-.screencast-navigation button:hover {
-    border-color: #ccc;
-}
-
-.screencast-navigation button:active {
-    border-color: #aaa;
-}
-
-.screencast-navigation button[disabled] {
-    opacity: 0.5;
-}
-
-.screencast-navigation button.back {
-    background-position-x: -1px;
-}
-
-.screencast-navigation button.forward {
-    background-position-x: -18px;
-}
-
-.screencast-navigation button.reload {
-    background-position-x: -37px;
-}
-
-.screencast-navigation input {
-    -webkit-flex: 1;
-    border: 1px solid #aaa;
-    border-radius: 2px;
-    margin: 1px;
-    padding-left: 5px;
-}
-
-.screencast-navigation input:focus {
-    border: 1px solid #aaa;
-    outline: none !important;
-}
-
-.screencast-navigation .progress {
-    background-color: rgb(66, 129, 235);
-    height: 3px;
-    left: 0;
-    position: absolute;
-    top: 100%;  /* Align with the bottom edge of the parent. */
-    width: 0;
-    z-index: 2;  /* Above .screencast-glasspane. */
-}
-
-.screencast-viewport {
-    border: 20px solid #333;
-    border-radius: 20px;
-    position: absolute;
-    top: 36px;
-    left: 10px;
-    right: 10px;
-    bottom: 10px;
-}
-
-.screencast canvas {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-}
-
-.screencast-px {
-    color: rgb(128, 128, 128);
-}
-
-.screencast-element-title {
-    position: absolute;
-    z-index: 10;
-}
-
-.screencast-tag-name {
-    /* Keep this in sync with view-source.css (.webkit-html-tag) */
-    color: rgb(136, 18, 128);
-}
-
-.screencast-node-id {
-    /* Keep this in sync with view-source.css (.webkit-html-attribute-value) */
-    color: rgb(26, 26, 166);
-}
-
-.screencast-class-name {
-    /* Keep this in sync with view-source.css (.webkit-html-attribute-name) */
-    color: rgb(153, 69, 0);
-}
-
-.screencast-glasspane {
-  -webkit-box-orient: horizontal;
-  -webkit-box-align: center;
-  -webkit-box-pack: center;
-  background-color: rgba(255, 255, 255, 0.8);
-  bottom: 0;
-  display: -webkit-box;
-  left: 0;
-  position: absolute;
-  right: 0;
-  top: 25px;  /* Align with the botton edge of .screencast .navigation. */
-  font-size: 30px;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sidebarPane.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sidebarPane.css
deleted file mode 100644 (file)
index 590c12d..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * 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.
- */
-
-.sidebar-pane {
-    position: relative;
-    flex: auto;
-}
-
-.sidebar-pane > .body {
-    position: relative;
-    display: none;
-    overflow-y: auto;
-    overflow-x: hidden;
-}
-
-.sidebar-pane > .body .info {
-    text-align: center;
-    font-style: italic;
-    font-size: 90%;
-    padding: 6px;
-    color: #888;
-}
-
-.sidebar-pane > .body .placard + .info {
-    border-top: 1px solid rgb(189, 189, 189);
-    background-color: rgb(255, 255, 194);
-}
-
-.sidebar-pane.visible > .body {
-    display: block;
-}
-
-.sidebar-pane .section .properties {
-    padding-left: 16px;
-}
-
-.sidebar-tabbed-pane .tabbed-pane-header {
-    border-bottom: 1px solid rgb(202, 202, 202);
-    background-color: rgb(236, 236, 236);
-}
-
-.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1) {
-    border-bottom: 1px solid rgb(189, 189, 189);
-}
-
-.sidebar-pane-title {
-    position: relative;
-    background: rgb(240, 240, 240);
-    height: 20px;
-    padding: 0 5px;
-    border-top: 1px solid rgb(189, 189, 189);
-    border-bottom: 1px solid rgb(189, 189, 189);
-    line-height: 18px;
-    background-origin: padding;
-    background-clip: padding;
-    margin-top: -1px;
-}
-
-.sidebar-pane-title:active {
-    background-color: rgb(204, 204, 204);
-    border-top: 1px solid rgb(178, 178, 178);
-    border-bottom: 1px solid rgb(178, 178, 178);
-}
-
-.sidebar-pane-title::before {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    opacity: 0.5;
-    float: left;
-    width: 11px;
-    height: 11px;
-    margin-right: 2px;
-    content: "a";
-    color: transparent;
-    position: relative;
-    top: 3px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.sidebar-pane-title::before {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.sidebar-pane-title::before {
-    background-position: -4px -96px;
-}
-
-.sidebar-pane-title.expanded::before {
-    background-position: -20px -96px;
-}
-
-.sidebar-pane-toolbar {
-    line-height: 18px;
-    left: 0;
-    right: 4px;
-    top: 0;
-    height: 20px;
-    position: absolute;
-    pointer-events: none;
-}
-
-.sidebar-pane-toolbar > * {
-    pointer-events: auto;
-}
-
-.sidebar-pane-toolbar > .pane-title-button,
-.sidebar-pane-toolbar > label {
-    float: right;
-    height: 17px;
-    background-color: transparent;
-    border: none;
-    background-repeat: no-repeat;
-    margin: 1px 0 0 0;
-    padding: 0;
-    border-radius: 0;
-    -webkit-appearance: none;
-}
-
-.sidebar-pane-toolbar > .pane-title-button {
-    width: 23px;
-    color: transparent;
-}
-
-.sidebar-pane-toolbar > .pane-title-button:hover {
-    background-position: -23px 0;
-}
-
-.sidebar-pane-toolbar > .pane-title-button:active,
-.sidebar-pane-toolbar > .pane-title-button.toggled {
-    background-position: -46px 0;
-}
-
-.sidebar-pane-toolbar > .pane-title-button.add {
-    background-image: url(Images/paneAddButtons.png);
-}
-
-.sidebar-pane-toolbar > .pane-title-button.element-state {
-    background-image: url(Images/paneElementStateButtons.png);
-}
-
-.sidebar-pane-toolbar > .pane-title-button.refresh {
-    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;
-}
-
-body.platform-windows .sidebar-pane-subtitle {
-    padding-top: 1px;
-}
-
-.sidebar-pane-subtitle input,
-.section > .header input[type=checkbox] {
-    height: 1em;
-    width: 1em;
-    margin-left: 0;
-    margin-top: 0;
-    margin-bottom: 0.25em;
-    vertical-align: bottom;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesPanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesPanel.css
deleted file mode 100644 (file)
index 30b3e8d..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * 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.
- */
-
-.scripts-pause-on-exceptions-status-bar-item .glyph {
-    -webkit-mask-position: -256px 0;
-}
-
-.scripts-pause-on-exceptions-status-bar-item.toggled-uncaught .glyph {
-    background-color: rgb(66, 129, 235);
-}
-
-.scripts-pause-on-exceptions-status-bar-item.toggled-all .glyph {
-    background-color: purple;
-}
-
-.evaluate-snippet-status-bar-item .glyph {
-    -webkit-mask-position: -64px -48px;
-}
-
-.evaluate-snippet-status-bar-item.toggled .glyph {
-    background-color: rgb(66, 129, 235);
-}
-
-#scripts-debug-toolbar {
-    position: relative;
-    margin-top: -1px;
-    height: 24px;
-    border-bottom: 1px solid rgb(202, 202, 202);
-    background-color: rgb(236, 236, 236);
-}
-
-#scripts-editor-toolbar {
-    position: relative;
-    margin-top: -1px;
-    height: 24px;
-}
-
-.scripts-run-snippet .glyph {
-    -webkit-mask-position: -64px -48px;
-}
-
-.scripts-pause .glyph {
-    -webkit-mask-position: -32px -72px;
-}
-
-.scripts-pause.toggled-on .glyph {
-    -webkit-mask-position: 0 -72px;
-}
-
-.scripts-step-over .glyph {
-    -webkit-mask-position: -128px -72px;
-}
-
-.scripts-step-into .glyph {
-    -webkit-mask-position: -64px -72px;
-}
-
-.scripts-step-out .glyph {
-    -webkit-mask-position: -96px -72px;
-}
-
-.scripts-long-resume .glyph {
-    -webkit-mask-position: -64px -48px;
-}
-
-.scripts-toggle-breakpoints.toggled-on .glyph {
-    -webkit-mask-position: -32px 0;
-}
-
-.scripts-toggle-breakpoints .glyph {
-    -webkit-mask-position: 0 -24px;
-}
-
-.status-bar-item.scripts-navigator-show-hide-button,
-.status-bar-item.scripts-debugger-show-hide-button {
-    opacity: 0.9;
-}
-
-.panel.sources .tabbed-pane-header {
-    background-color: rgb(236, 236, 236);
-}
-
-button.status-bar-item.scripts-navigator-show-hide-button {
-    left: 0;
-}
-
-button.status-bar-item.scripts-navigator-show-hide-button.toggled-overlay {
-    left: auto;
-    right: 15px;
-}
-
-.scripts-views-container {
-    position: absolute;
-    top: 23px;
-    right: 0;
-    bottom: 0;
-    left: 0;
-}
-
-.script-view {
-    display: none;
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-}
-
-.script-view.visible {
-    display: block;
-}
-
-.dedicated-worker-item {
-    margin: 5px 0 5px 1px;
-}
-
-#shared-workers-list {
-    margin: 5px 0 5px 20px;
-    font-style:italic;
-}
-
-#pause-workers-checkbox > input {
-    position: relative;
-    top: 2px;
-}
-
-.panel.sources #sources-editor-container-tabbed-pane .tabbed-pane-header-contents {
-    margin-left: 20px;
-    margin-right: 36px;
-}
-
-.function-location-link {
-    float: right;
-    margin-left: 10px;
-}
-
-.function-popover-title {
-    border-bottom: 1px solid #AAA;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-.function-popover-title .function-name {
-    font-weight: bold;
-}
-
-button.status-bar-item.scripts-debugger-show-hide-button {
-    right: 15px;
-}
-
-button.status-bar-item.scripts-debugger-show-hide-button.toggled-left {
-    right: 0;
-}
-
-div.sidebar-pane-stack#scripts-debug-sidebar-contents,
-#scripts-sidebar-stack-pane {
-    top: 23px;
-    overflow: auto;
-}
-
-.workers-list > li {
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    margin-left: 1em;
-    font-size: 12px;
-}
-
-a.worker-item {
-    color: rgb(33%, 33%, 33%);
-    cursor: pointer;
-    text-decoration: none;
-}
-
-a.worker-item:hover {
-    color: rgb(15%, 15%, 15%);
-}
-
-.source-frame-debugger-script {
-    background-color: rgba(255, 255, 194, 0.5);
-}
-
-.source-frame-unsaved-committed-changes {
-    background-color: rgba(255, 225, 205, 0.40);
-}
-
-.tabbed-pane-placeholder {
-    font-size: 14px;
-    text-align: center;
-    margin-top: 20px;
-    text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
-}
-
-.tabbed-pane-header-tab-icon {
-    width: 11px;
-    height: 10px;
-    margin-top: 3px;
-    float: left;
-    display: block;
-    margin-right: 1px;
-}
-
-.editor-container-unsaved-committed-changes-icon {
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/sourcesView.css
deleted file mode 100644 (file)
index ef1bb35..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-#sources-panel-sources-view {
-    flex: auto;
-    position: relative;
-}
-
-#sources-editor-container-tabbed-pane {
-    flex: auto;
-}
-
-#sources-editor-container-tabbed-pane .tabbed-pane-header-tab {
-    border-bottom: 1px solid #BBB;
-}
-
-#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);
-}
-
-#sources-panel-sources-view .sources-status-bar .status-bar-item {
-    margin-top: -1px;
-    height: 20px;
-}
-
-#sources-panel-sources-view .source-frame-cursor-position {
-    -webkit-user-select: text;
-}
-
-#sources-panel-sources-view .sources-toggle-pretty-print-status-bar-item .glyph {
-    -webkit-mask-position: -256px -24px;
-}
-
-#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/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/spectrum.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/spectrum.css
deleted file mode 100644 (file)
index e5aae8c..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/* https://github.com/bgrins/spectrum */
-.spectrum-container {
-    position: absolute;
-    top: 0;
-    left: 0;
-    display: inline-block;
-    background: rgba(230, 230, 230, 1) !important;
-    border: 1px solid #646464;
-    padding: 10px;
-    width: 220px;
-    z-index: 10;
-    -webkit-user-select: none;
-}
-
-.spectrum-top {
-    position: relative;
-    width: 100%;
-    display: inline-block;
-}
-
-.spectrum-color {
-    position: absolute;
-    top: 0;
-    left: 0;
-    bottom: 0;
-    right: 40px;
-}
-
-.spectrum-display-value {
-    -webkit-user-select: text;
-    position: relative;
-    left: 2px;
-    top: -6px;
-}
-
-.spectrum-hue {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 170px;
-    -webkit-box-reflect: right -28px;
-}
-
-.spectrum-fill {
-    /* Same as spectrum-color width to force aspect ratio. */
-    margin-top: 150px;
-}
-
-.spectrum-range-container {
-    position: relative;
-    padding-bottom: 5px;
-}
-
-.spectrum-range-container * {
-    font-size: 11px;
-    vertical-align: middle;
-}
-
-.spectrum-range-container label {
-    display: inline-block;
-    padding-right: 4px;
-}
-
-.spectrum-range-container input {
-    position: absolute;
-    left: 15px;
-    right: 40px;
-    margin: 3px 0 0 0;
-}
-
-.spectrum-dragger,
-.spectrum-slider {
-    -webkit-user-select: none;
-}
-
-.spectrum-sat {
-    background-image: -webkit-linear-gradient(left, white, rgba(204, 154, 129, 0));
-}
-
-.spectrum-val {
-    background-image: -webkit-linear-gradient(bottom, black, rgba(204, 154, 129, 0));
-}
-
-.spectrum-hue {
-    background: -webkit-linear-gradient(bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
-}
-
-.spectrum-dragger {
-    border-radius: 5px;
-    height: 5px;
-    width: 5px;
-    border: 1px solid white;
-    cursor: pointer;
-    position: absolute;
-    top: 0;
-    left: 0;
-    background: black;
-}
-
-.spectrum-slider {
-    position: absolute;
-    top: 0;
-    cursor: pointer;
-    border: 1px solid black;
-    height: 4px;
-    left: -1px;
-    right: -1px;
-}
-
-.spectrum-container .swatch {
-    width: 20px;
-    height:20px;
-    margin: 0;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/splitView.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/splitView.css
deleted file mode 100644 (file)
index eef9641..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2011 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:
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. 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 GOOGLE INC.
- * 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.
- */
-
-.split-view {
-    overflow: hidden;
-}
-
-.split-view-contents {
-    overflow: auto;
-    cursor: default;
-    position: relative;
-}
-
-.split-view-sidebar {
-    flex: none;
-}
-
-.split-view-main, .split-view-sidebar.maximized {
-    flex: auto;
-}
-
-.split-view.hbox > .split-view-sidebar.split-view-contents-first:not(.maximized) {
-    border-right: 1px solid rgb(64%, 64%, 64%);
-}
-
-.split-view.hbox > .split-view-sidebar.split-view-contents-second:not(.maximized) {
-    border-left: 1px solid rgb(64%, 64%, 64%);
-}
-
-.split-view.vbox > .split-view-sidebar.split-view-contents-first:not(.maximized) {
-    border-bottom: 1px solid rgb(64%, 64%, 64%);
-}
-
-.split-view.vbox > .split-view-sidebar.split-view-contents-second:not(.maximized) {
-    border-top: 1px solid rgb(64%, 64%, 64%);
-}
-
-.split-view.hbox > .split-view-resizer {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    width: 5px;
-    z-index: 1500;
-}
-
-.split-view.vbox > .split-view-resizer {
-    position: absolute;
-    left: 0;
-    right: 0;
-    height: 5px;
-    z-index: 1500;
-}
-
-.sidebar-overlay {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    z-index: 12;
-    background-color: white;
-    border-right: 1px solid gray;
-    box-shadow: rgb(90,90,90) 20px 0 50px -25px;
-    display: -webkit-flex;
-    -webkit-flex-direction: column;
-}
-
-.sidebar-overlay-resizer {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    width: 5px;
-    z-index: 500;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/textPrompt.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/textPrompt.css
deleted file mode 100644 (file)
index ca4ba07..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-.suggest-box {
-    position: absolute;
-    background-color: #FFFFFF;
-    display: block;
-    border: 1px solid black;
-    padding: 2px;
-    z-index: 100;
-}
-
-.suggest-box .container {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-
-.suggest-box-content-item {
-    padding: 1px;
-    margin: 0;
-    font-size: 11px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    border: 1px solid transparent;
-}
-
-.suggest-box-content-item .prefix {
-    font-weight: bold;
-}
-
-.suggest-box-content-item.selected {
-    background-color: rgb(212, 212, 212);
-}
-
-.suggest-box-content-item:hover:not(.selected) {
-    border: 1px solid rgb(204, 204, 204);
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/timelinePanel.css b/src/chrome/tools/test/reference_build/chrome_linux/resources/inspector/timelinePanel.css
deleted file mode 100644 (file)
index 73aa17f..0000000
+++ /dev/null
@@ -1,838 +0,0 @@
-/*
- * 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.
- */
-
-#timeline-overview-panel {
-    flex: 0 0 81px;
-    position: relative;
-    border-bottom: 1px solid rgb(140, 140, 140);
-}
-
-#timeline-overview-panel .timeline-graph-bar {
-    pointer-events: none;
-}
-
-.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 {
-    flex: none;
-    padding-right: 10px;
-    border-right: 1px solid rgb(64%, 64%, 64%);
-}
-
-#timeline-overview-grid {
-    background-color: rgb(255, 255, 255);
-}
-
-.timeline-frames-view .timeline-records-counter {
-    display: none;
-}
-
-.timeline-frames-view #timeline-overview-grid {
-    display: none;
-}
-
-#timeline-overview-grid .resources-dividers-label-bar {
-    pointer-events: auto;
-}
-
-.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 {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    height: 80px;
-}
-
-#timeline-container {
-    border-right: 0 none transparent;
-    overflow-y: scroll;
-    overflow-x: hidden;
-}
-
-.timeline-records-view {
-    overflow: hidden !important;
-}
-
-.timeline-details-split {
-    flex: auto;
-}
-
-.timeline-view {
-    flex: auto;
-}
-
-.timeline-view-stack {
-    flex: auto;
-}
-
-#timeline-container .webkit-html-external-link,
-#timeline-container .webkit-html-resource-link {
-    color: inherit;
-}
-
-.timeline-tree-item {
-    height: 18px;
-    line-height: 15px;
-    padding-right: 5px;
-    padding-left: 5px;
-    padding-top: 2px;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    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 {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    width: 3px;
-    border-top: 1px solid rgb(163, 163, 163);
-    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 144px;
-    opacity: 0.5;
-    width: 10px;
-    height: 10px;
-    position: relative;
-    top: 3px;
-    left: 2px;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.timeline-expandable-arrow {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.timeline-expandable-collapsed .timeline-expandable-arrow {
-    background-position: -4px -96px;
-}
-
-.timeline-expandable-expanded .timeline-expandable-arrow {
-    background-position: -20px -96px;
-}
-
-.timeline-tree-item .type {
-    padding-left: 5px;
-}
-
-.timeline-tree-item .count {
-    font-weight: bold;
-}
-
-.timeline-tree-item .timeline-tree-icon {
-    position: relative;
-    top: -1px;
-    left: 1px;
-    width: 7px;
-    height: 7px;
-    border-radius: 1px;
-    border: solid 1px;
-    display: inline-block;
-}
-
-.timeline-tree-item.background .timeline-tree-icon {
-    background: none !important;
-}
-
-.timeline-tree-item-warning {
-    display: block;
-    background-image: url(Images/statusbarButtonGlyphs.png);
-    background-size: 320px 144px;
-    width: 10px;
-    height: 10px;
-    float: right;
-    background-position: -202px -107px;
-    position: relative;
-    top: 2px;
-}
-
-.timeline-tree-item-child-warning {
-    opacity: 0.6;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-.timeline-tree-item-warning {
-    background-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.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,
-#timeline-overview-memory {
-    position: absolute;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    top: 20px;
-    z-index: 160;
-}
-
-#timeline-overview-memory  {
-    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%;
-}
-
-#timeline-overview-frames canvas {
-    z-index: 200;
-    background-color: rgba(255, 255, 255, 0.8);
-}
-
-#timeline-graphs {
-    position: absolute;
-    left: 0;
-    right: 0;
-    max-height: 100%;
-    top: 20px;
-}
-
-.timeline-graph-side {
-    position: relative;
-    height: 18px;
-    padding: 0 5px;
-    white-space: nowrap;
-    margin-top: 0;
-    border-top: 1px solid transparent;
-    overflow: hidden;
-}
-
-.timeline-graph-side.selected {
-    background-color: rgba(56, 121, 217, 0.1) !important;
-}
-
-.timeline-graph-bar-area {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    right: 0;
-    left: 3px;
-    pointer-events: none;
-}
-
-.timeline-graph-bar {
-    position: absolute;
-    top: -1px;
-    bottom: 0;
-    margin: auto -2px;
-    height: 10px;
-    min-width: 5px;
-    z-index: 180;
-    pointer-events: visibleFill;
-    border-radius: 1px;
-    border: 1px solid;
-}
-
-.timeline-graph-bar.with-children {
-    opacity: 0.25;
-    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
-}
-
-.timeline-graph-bar.cpu {
-    opacity: 0.7;
-}
-
-.timeline-graph-side.background .timeline-graph-bar {
-    background: transparent !important;
-    border-width: 2px;
-}
-
-.timeline-aggregated-category {
-    display: inline-block;
-    height: 11px;
-    margin-right: 2px;
-    margin-left: 6px;
-    position: relative;
-    top: 2px;
-    width: 10px;
-    border: solid 1px;
-}
-
-.popover .timeline-aggregated-category.timeline-loading {
-    margin-left: 0;
-}
-
-.popover ul {
-    margin: 0;
-    padding: 0;
-    list-style-type: none;
-}
-
-.garbage-collect-status-bar-item .glyph {
-    -webkit-mask-position: -128px -24px;
-}
-
-.glue-async-status-bar-item .glyph {
-    -webkit-mask-position: -128px -48px;
-}
-
-.glue-async-status-bar-item.toggled-on:disabled .glyph {
-    background-color: rgba(0, 0, 0, 0.75);
-}
-
-#resources-container-content {
-    overflow: hidden;
-    min-height: 100%;
-}
-
-#resources-graphs {
-    position: absolute;
-    left: 0;
-    right: 0;
-    max-height: 100%;
-    top: 112px;
-}
-
-.resources-graph-side {
-    position: relative;
-    height: 36px;
-    padding: 0 5px;
-    white-space: nowrap;
-    margin-top: 1px;
-    border-top: 1px solid transparent;
-    overflow: hidden;
-}
-
-.resources-graph-bar-area {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    right: 8px;
-    left: 9px;
-}
-
-#timeline-overview-sidebar .sidebar-tree {
-    height: 100%;
-}
-
-#timeline-overview-sidebar .sidebar-tree-item {
-    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: initial;
-}
-
-#timeline-overview-sidebar .icon {
-    height: 24px;
-    margin: 0;
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs.png);
-    -webkit-mask-size: 320px 144px;
-    background-color: black;
-}
-
-@media (-webkit-min-device-pixel-ratio: 1.5) {
-#timeline-overview-sidebar .icon {
-    -webkit-mask-image: url(Images/statusbarButtonGlyphs2x.png);
-}
-} /* media */
-
-.timeline-overview-sidebar-events .icon {
-    -webkit-mask-position: -192px -48px;
-}
-
-.timeline-overview-sidebar-frames .icon {
-    -webkit-mask-position: -160px -48px;
-}
-
-.timeline-overview-sidebar-memory .icon {
-    -webkit-mask-position: -224px -48px;
-}
-
-.memory-graph-label {
-    position: absolute;
-    left: 5px;
-    font-size: 9px;
-    color: rgb(50%, 50%, 50%);
-    white-space: nowrap;
-}
-
-.max.memory-graph-label {
-    top: 5px;
-}
-
-.min.memory-graph-label {
-    bottom: 5px;
-}
-
-#memory-counters-graph {
-    border-right: 1px solid rgb(196, 196, 196);
-}
-
-#memory-graphs-canvas-container {
-    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: 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 {
-    border-bottom: 1px solid #AAA;
-}
-
-.memory-counter-sidebar-info .title {
-    margin: 4px;
-}
-
-.memory-counter-value {
-    margin: 4px;
-}
-
-#counter-values-bar {
-    border-bottom: solid 1px lightgray;
-    width: 100%;
-    height: 17px;
-    overflow: hidden;
-}
-
-.timeline .resources-event-divider {
-    height: 19px;
-    width: 8px;
-    border-left-width: 2px;
-    border-left-style: solid;
-    bottom: auto;
-    pointer-events: auto;
-}
-
-.resources-red-divider {
-    border-color: rgba(255, 0, 0, 0.5);
-}
-
-.resources-blue-divider {
-    border-color: rgba(0, 0, 255, 0.5);
-}
-
-.resources-orange-divider {
-    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;
-}
-
-.timeline .resources-event-divider.timeline-frame-divider {
-    background-color: rgba(180, 180, 180, 0.8);
-    border-style: none;
-    width: 1px;
-    height: 100%;
-    pointer-events: none;
-}
-
-.timeline-frame-container {
-    height: 19px;
-    overflow: hidden;
-    background-color: rgb(220, 220, 220);
-    opacity: 0.8;
-    color: black;
-    text-align: center;
-    padding-top: 3px;
-    z-index: 350;
-    pointer-events: auto;
-}
-
-.timeline-frame-strip {
-    position: absolute;
-    height: 19px;
-}
-
-#timeline-grid-header {
-    pointer-events: none;
-}
-
-.timeline-utilization-strips {
-    height: 19px;
-    padding: 1px 0;
-    justify-content: center;
-}
-
-.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);
-    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(210, 210, 210, 0.5);
-    position: absolute;
-    top: 0;
-    height: 100%;
-    z-index: 300;
-}
-
-.timeline-cpu-curtain-left {
-    left: 0;
-}
-
-.timeline-cpu-curtain-right {
-    right: 0;
-}
-
-.image-preview-container {
-    background: transparent;
-    text-align: left;
-    border-spacing: 0;
-}
-
-.image-preview-container img {
-    max-width: 100px;
-    max-height: 100px;
-    background-image: url(Images/checker.png);
-    -webkit-user-select: text;
-    -webkit-user-drag: auto;
-}
-
-.image-container {
-    padding: 0;
-}
-
-.memory-category-value {
-    float: right;
-}
-
-.highlighted-timeline-record {
-    -webkit-animation: "timeline_record_highlight" 2s 0s;
-}
-
-@-webkit-keyframes timeline_record_highlight {
-    from {background-color: rgba(255, 255, 120, 1); }
-    to { background-color: rgba(255, 255, 120, 0); }
-}
-
-.timeline-filters-header {
-    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;
-}
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.exe b/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.exe
new file mode 100644 (file)
index 0000000..42407cd
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.exe differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.pdb b/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.pdb
new file mode 100644 (file)
index 0000000..c09502e
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/servers/chrome_launcher.pdb differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.dll b/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.dll
new file mode 100644 (file)
index 0000000..5535444
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.dll differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.pdb b/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.pdb
new file mode 100644 (file)
index 0000000..f59f63d
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/servers/npchrome_frame.pdb differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/wow_helper.exe b/src/chrome/tools/test/reference_build/chrome_linux/wow_helper.exe
new file mode 100755 (executable)
index 0000000..f9bfb4b
Binary files /dev/null and b/src/chrome/tools/test/reference_build/chrome_linux/wow_helper.exe differ
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/xdg-mime b/src/chrome/tools/test/reference_build/chrome_linux/xdg-mime
deleted file mode 100755 (executable)
index e0d9799..0000000
+++ /dev/null
@@ -1,1402 +0,0 @@
-#!/bin/sh
-#---------------------------------------------
-#   xdg-mime
-#
-#   Utility script to manipulate MIME related information
-#   on XDG compliant systems.
-#
-#   Refer to the usage() function below for usage.
-#
-#   Copyright 2009-2010, Fathi Boudra <fabo@freedesktop.org>
-#   Copyright 2009-2010, Rex Dieter <rdieter@fedoraproject.org>
-#   Copyright 2006, Kevin Krammer <kevin.krammer@gmx.at>
-#   Copyright 2006, Jeremy White <jwhite@codeweavers.com>
-#
-#   LICENSE:
-#
-#   Permission is hereby granted, free of charge, to any person obtaining a
-#   copy of this software and associated documentation files (the "Software"),
-#   to deal in the Software without restriction, including without limitation
-#   the rights to use, copy, modify, merge, publish, distribute, sublicense,
-#   and/or sell copies of the Software, and to permit persons to whom the
-#   Software is furnished to do so, subject to the following conditions:
-#
-#   The above copyright notice and this permission notice shall be included
-#   in all copies or substantial portions of the Software.
-#
-#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-#   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-#   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-#   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#   OTHER DEALINGS IN THE SOFTWARE.
-#
-#---------------------------------------------
-
-manualpage()
-{
-cat << _MANUALPAGE
-Name
-
-xdg-mime - command line tool for querying information about file type handling
-and adding descriptions for new file types
-
-Synopsis
-
-xdg-mime query { filetype | default } ...
-
-xdg-mime default application mimetype(s)
-
-xdg-mime install [--mode mode] [--novendor] mimetypes-file
-
-xdg-mime uninstall [--mode mode] mimetypes-file
-
-xdg-mime { --help | --manual | --version }
-
-Description
-
-The xdg-mime program can be used to query information about file types and to
-add descriptions for new file types.
-
-Commands
-
-query
-
-    Returns information related to file types.
-
-    The query option is for use inside a desktop session only. It is not
-    recommended to use xdg-mime query as root.
-
-    The following queries are supported:
-
-    query filetype FILE: Returns the file type of FILE in the form of a MIME
-    type.
-
-    query default mimetype: Returns the default application that the desktop
-    environment uses for opening files of type mimetype. The default
-    application is identified by its *.desktop file.
-
-default
-
-    Ask the desktop environment to make application the default application for
-    opening files of type mimetype. An application can be made the default for
-    several file types by specifying multiple mimetypes.
-
-    application is the desktop file id of the application and has the form
-    vendor-name.desktop application must already be installed in the desktop
-    menu before it can be made the default handler. The aplication's desktop
-    file must list support for all the MIME types that it wishes to be the
-    default handler for.
-
-    Requests to make an application a default handler may be subject to system
-    policy or approval by the end-user. xdg-mime query can be used to verify
-    whether an application is the actual default handler for a specific file
-    type.
-
-    The default option is for use inside a desktop session only. It is not
-    recommended to use xdg-mime default as root.
-
-install
-    Adds the file type descriptions provided in mimetypes-file to the desktop
-    environment. mimetypes-file must be a XML file that follows the
-    freedesktop.org Shared MIME-info Database specification and that has a
-    mime-info element as its document root. For each new file type one or more
-    icons with name type-subtype must be installed with the xdg-icon-resource
-    command in the mimetypes context. For example the filetype application/
-    vnd.oasis.opendocument.text requires an icon named
-    application-vnd.oasis.opendocument.text to be installed (unless the file
-    type recommends another icon name).
-uninstall
-    Removes the file type descriptions provided in mimetypes-file and
-    previously added with xdg-mime install from the desktop environment.
-    mimetypes-file must be a XML file that follows the freedesktop.org Shared
-    MIME-info Database specification and that has a mime-info element as its
-    document root.
-
-Options
-
---mode mode
-
-    mode can be user or system. In user mode the file is (un)installed for the
-    current user only. In system mode the file is (un)installed for all users
-    on the system. Usually only root is allowed to install in system mode.
-
-    The default is to use system mode when called by root and to use user mode
-    when called by a non-root user.
-
---novendor
-
-    Normally, xdg-mime checks to ensure that the mimetypes-file to be installed
-    has a proper vendor prefix. This option can be used to disable that check.
-
-    A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated
-    with a dash ("-"). Companies and organizations are encouraged to use a word
-    or phrase, preferably the organizations name, for which they hold a
-    trademark as their vendor prefix. The purpose of the vendor prefix is to
-    prevent name conflicts.
-
---help
-    Show command synopsis.
---manual
-    Show this manualpage.
---version
-    Show the xdg-utils version information.
-
-Environment Variables
-
-xdg-mime honours the following environment variables:
-
-XDG_UTILS_DEBUG_LEVEL
-    Setting this environment variable to a non-zero numerical value makes
-    xdg-mime do more verbose reporting on stderr. Setting a higher value
-    increases the verbosity.
-XDG_UTILS_INSTALL_MODE
-    This environment variable can be used by the user or administrator to
-    override the installation mode. Valid values are user and system.
-
-Exit Codes
-
-An exit code of 0 indicates success while a non-zero exit code indicates
-failure. The following failure codes can be returned:
-
-1
-    Error in command line syntax.
-2
-    One of the files passed on the command line did not exist.
-3
-    A required tool could not be found.
-4
-    The action failed.
-5
-    No permission to read one of the files passed on the command line.
-
-See Also
-
-xdg-icon-resource(1), xdg-desktop-menu(1)
-
-Examples
-
-xdg-mime query filetype /tmp/foobar.png
-
-Prints the MIME type of the file /tmp/foobar.png, in this case image/png
-
-xdg-mime query default image/png
-
-Prints the .desktop filename of the application which is registered to open PNG
-files.
-
-xdg-mime install shinythings-shiny.xml
-
-Adds a file type description for "shiny"-files. "shinythings-" is used as the
-vendor prefix. The file type description could look as folows.
-
-shinythings-shiny.xml:
-
-<?xml version="1.0"?>
-<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
-  <mime-type type="text/x-shiny">
-    <comment>Shiny new file type</comment>
-    <glob pattern="*.shiny"/>
-    <glob pattern="*.shi"/>
-  </mime-type>
-</mime-info>
-
-An icon for this new file type must also be installed, for example with:
-
-xdg-icon-resource install --context mimetypes --size 64 shiny-file-icon.png text-x-shiny
-
-_MANUALPAGE
-}
-
-usage()
-{
-cat << _USAGE
-xdg-mime - command line tool for querying information about file type handling
-and adding descriptions for new file types
-
-Synopsis
-
-xdg-mime query { filetype | default } ...
-
-xdg-mime default application mimetype(s)
-
-xdg-mime install [--mode mode] [--novendor] mimetypes-file
-
-xdg-mime uninstall [--mode mode] mimetypes-file
-
-xdg-mime { --help | --manual | --version }
-
-_USAGE
-}
-
-#@xdg-utils-common@
-
-#----------------------------------------------------------------------------
-#   Common utility functions included in all XDG wrapper scripts
-#----------------------------------------------------------------------------
-
-DEBUG()
-{
-  [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0;
-  [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
-  shift
-  echo "$@" >&2
-}
-
-# This handles backslashes but not quote marks.
-first_word()
-{
-    read first rest
-    echo "$first"
-}
-
-#-------------------------------------------------------------
-# map a binary to a .desktop file
-binary_to_desktop_file()
-{
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    binary="`which "$1"`"
-    binary="`readlink -f "$binary"`"
-    base="`basename "$binary"`"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" ] || continue
-        [ -d "$dir/applications" -o -d "$dir/applnk" ] || continue
-        for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do
-            [ -r "$file" ] || continue
-            # Check to make sure it's worth the processing.
-            grep -q "^Exec.*$base" "$file" || continue
-            # Make sure it's a visible desktop file (e.g. not "preferred-web-browser.desktop").
-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
-            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
-            command="`which "$command"`"
-            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
-                # Fix any double slashes that got added path composition
-                echo "$file" | sed -e 's,//*,/,g'
-                return
-            fi
-        done
-    done
-}
-
-#-------------------------------------------------------------
-# map a .desktop file to a binary
-## FIXME: handle vendor dir case
-desktop_file_to_binary()
-{
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    desktop="`basename "$1"`"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/applications" ] || continue
-        file="$dir/applications/$desktop"
-        [ -r "$file" ] || continue
-        # Remove any arguments (%F, %f, %U, %u, etc.).
-        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
-        command="`which "$command"`"
-        readlink -f "$command"
-        return
-    done
-}
-
-#-------------------------------------------------------------
-# Exit script on successfully completing the desired operation
-
-exit_success()
-{
-    if [ $# -gt 0 ]; then
-        echo "$@"
-        echo
-    fi
-
-    exit 0
-}
-
-
-#-----------------------------------------
-# Exit script on malformed arguments, not enough arguments
-# or missing required option.
-# prints usage information
-
-exit_failure_syntax()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-        echo "Try 'xdg-mime --help' for more information." >&2
-    else
-        usage
-        echo "Use 'man xdg-mime' or 'xdg-mime --manual' for additional info."
-    fi
-
-    exit 1
-}
-
-#-------------------------------------------------------------
-# Exit script on missing file specified on command line
-
-exit_failure_file_missing()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-    fi
-
-    exit 2
-}
-
-#-------------------------------------------------------------
-# Exit script on failure to locate necessary tool applications
-
-exit_failure_operation_impossible()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-    fi
-
-    exit 3
-}
-
-#-------------------------------------------------------------
-# Exit script on failure returned by a tool application
-
-exit_failure_operation_failed()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-    fi
-
-    exit 4
-}
-
-#------------------------------------------------------------
-# Exit script on insufficient permission to read a specified file
-
-exit_failure_file_permission_read()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-    fi
-
-    exit 5
-}
-
-#------------------------------------------------------------
-# Exit script on insufficient permission to write a specified file
-
-exit_failure_file_permission_write()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-mime: $@" >&2
-    fi
-
-    exit 6
-}
-
-check_input_file()
-{
-    if [ ! -e "$1" ]; then
-        exit_failure_file_missing "file '$1' does not exist"
-    fi
-    if [ ! -r "$1" ]; then
-        exit_failure_file_permission_read "no permission to read file '$1'"
-    fi
-}
-
-check_vendor_prefix()
-{
-    file_label="$2"
-    [ -n "$file_label" ] || file_label="filename"
-    file=`basename "$1"`
-    case "$file" in
-       [a-zA-Z]*-*)
-         return
-         ;;
-    esac
-
-    echo "xdg-mime: $file_label '$file' does not have a proper vendor prefix" >&2
-    echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
-    echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2
-    echo "Use --novendor to override or 'xdg-mime --manual' for additional info." >&2
-    exit 1
-}
-
-check_output_file()
-{
-    # if the file exists, check if it is writeable
-    # if it does not exists, check if we are allowed to write on the directory
-    if [ -e "$1" ]; then
-        if [ ! -w "$1" ]; then
-            exit_failure_file_permission_write "no permission to write to file '$1'"
-        fi
-    else
-        DIR=`dirname "$1"`
-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
-            exit_failure_file_permission_write "no permission to create file '$1'"
-        fi
-    fi
-}
-
-#----------------------------------------
-# Checks for shared commands, e.g. --help
-
-check_common_commands()
-{
-    while [ $# -gt 0 ] ; do
-        parm="$1"
-        shift
-
-        case "$parm" in
-            --help)
-            usage
-            echo "Use 'man xdg-mime' or 'xdg-mime --manual' for additional info."
-            exit_success
-            ;;
-
-            --manual)
-            manualpage
-            exit_success
-            ;;
-
-            --version)
-            echo "xdg-mime 1.1.0 rc1"
-            exit_success
-            ;;
-        esac
-    done
-}
-
-check_common_commands "$@"
-
-[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
-if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
-    # Be silent
-    xdg_redirect_output=" > /dev/null 2> /dev/null"
-else
-    # All output to stderr
-    xdg_redirect_output=" >&2"
-fi
-
-#--------------------------------------
-# Checks for known desktop environments
-# set variable DE to the desktop environments name, lowercase
-
-detectDE()
-{
-    # see https://bugs.freedesktop.org/show_bug.cgi?id=34164
-    unset GREP_OPTIONS
-
-    if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
-      case "${XDG_CURRENT_DESKTOP}" in
-         GNOME)
-           DE=gnome;
-           ;;
-         KDE)
-           DE=kde;
-           ;;
-         LXDE)
-           DE=lxde;
-           ;;
-         XFCE)
-           DE=xfce
-      esac
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # classic fallbacks
-      if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
-      elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
-      elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
-      elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
-      elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce
-      fi
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # fallback to checking $DESKTOP_SESSION
-      case "$DESKTOP_SESSION" in
-         gnome)
-           DE=gnome;
-           ;;
-         LXDE)
-           DE=lxde; 
-           ;;
-         xfce|xfce4)
-           DE=xfce;
-           ;;
-      esac
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # fallback to uname output for other platforms
-      case "$(uname 2>/dev/null)" in 
-        Darwin)
-          DE=darwin;
-          ;;
-      esac
-    fi
-
-    if [ x"$DE" = x"gnome" ]; then
-      # gnome-default-applications-properties is only available in GNOME 2.x
-      # but not in GNOME 3.x
-      which gnome-default-applications-properties > /dev/null 2>&1  || DE="gnome3"
-    fi
-}
-
-#----------------------------------------------------------------------------
-# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
-# It also always returns 1 in KDE 3.4 and earlier
-# Simply return 0 in such case
-
-kfmclient_fix_exit_code()
-{
-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
-    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
-    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
-    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
-    test "$major" -gt 3 && return $1
-    test "$minor" -gt 5 && return $1
-    test "$release" -gt 4 && return $1
-    return 0
-}
-
-update_mime_database()
-{
-   if [ x"$mode" = x"user" -a -n "$DISPLAY" ] ; then
-      detectDE
-      if [ x"$DE" = x"kde" ] ; then
-         DEBUG 1 "Running kbuildsycoca"
-         if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
-             eval 'kbuildsycoca4'$xdg_redirect_output
-         else
-             eval 'kbuildsycoca'$xdg_redirect_output
-         fi
-      fi
-   fi
-   for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
-      if [ -x $x/update-mime-database ] ; then
-         DEBUG 1 "Running $x/update-mime-database $1"
-         eval '$x/update-mime-database $1'$xdg_redirect_output
-         return
-      fi
-   done
-}
-
-info_kde()
-{
-    if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
-        DEBUG 1 "Running kmimetypefinder \"$1\""
-        kmimetypefinder "$1" 2>/dev/null | head -n 1
-    else
-        DEBUG 1 "Running kfile \"$1\""
-        kfile "$1" 2> /dev/null | head -n 1 | cut -d "(" -f 2 | cut -d ")" -f 1
-    fi
-
-    if [ $? -eq 0 ]; then
-        exit_success
-    else
-        exit_failure_operation_failed
-    fi
-}
-
-info_gnome()
-{
-    if gvfs-info --help 2>/dev/null 1>&2; then
-        DEBUG 1 "Running gvfs-info \"$1\""
-        gvfs-info "$1" 2> /dev/null | grep standard::content-type | cut -d' ' -f4
-    elif gnomevfs-info --help 2>/dev/null 1>&2; then
-       DEBUG 1 "Running gnomevfs-info \"$1\""
-       gnomevfs-info --slow-mime "$1" 2> /dev/null | grep "^MIME" | cut -d ":" -f 2 | sed s/"^ "//
-    else
-       # according to https://bugs.freedesktop.org/show_bug.cgi?id=33094#c5
-       # neither gvfs-info or gnomevfs-info are present in a default Ubuntu Natty
-       # install, so fallback to info_generic
-       info_generic "$1"
-    fi
-
-    if [ $? -eq 0 ]; then
-        exit_success
-    else
-        exit_failure_operation_failed
-    fi
-}
-
-info_generic()
-{
-    if mimetype --version >/dev/null 2>&1; then
-        DEBUG 1 "Running mimetype -b \"$1\""
-        mimetype -b "$1"
-    else
-        DEBUG 1 "Running file --mime-type \"$1\""
-        /usr/bin/file --mime-type "$1" 2> /dev/null | cut -d ":" -f 2 | sed s/"^ "//
-    fi
-
-    if [ $? -eq 0 ]; then
-        exit_success
-    else
-        exit_failure_operation_failed
-    fi
-}
-
-make_default_kde()
-{
-    # $1 is vendor-name.desktop
-    # $2 is mime/type
-    #
-    # On KDE 3, add to $KDE_CONFIG_PATH/profilerc:
-    # [$2 - 1]
-    # Application=$1
-    #
-    # Remove all [$2 - *] sections, or even better,
-    # renumber [$2 - *] sections and remove duplicate
-    #
-    # On KDE 4, add $2=$1 to $XDG_DATA_APPS/mimeapps.list
-    #
-    # Example file:
-    #
-    # [Added Associations]
-    # text/plain=kde4-kate.desktop;kde4-kwrite.desktop;
-    #
-    # [Removed Associations]
-    # text/plain=gnome-gedit.desktop;gnu-emacs.desktop;
-    vendor="$1"
-    mimetype="$2"
-    if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
-        default_dir=`kde4-config --path xdgdata-apps 2> /dev/null | cut -d ':' -f 1`
-        default_file="$default_dir/mimeapps.list"
-    else
-        default_dir=`kde-config --path config 2> /dev/null | cut -d ':' -f 1`
-        default_file="$default_dir/profilerc"
-    fi
-    if [ -z "$default_dir" ]; then
-        DEBUG 2 "make_default_kde: No kde runtime detected"
-        return
-    fi
-    DEBUG 2 "make_default_kde $vendor $mimetype"
-    DEBUG 1 "Updating $default_file"
-    mkdir -p "$default_dir"
-    [ -f "$default_file" ] || touch "$default_file"
-    if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
-        [ -f "$default_file" ] || touch "$default_file"
-        awk -v application="$vendor" -v mimetype="$mimetype" '
-    BEGIN {
-        prefix=mimetype "="
-        associations=0
-        found=0
-        blanks=0
-    }
-    {
-        suppress=0
-        if (index($0, "[Added Associations]") == 1) {
-            associations=1
-        } else if (index($0, "[") == 1) {
-            if (associations && !found) {
-                print prefix application
-                found=1
-            }
-            associations=0
-        } else if ($0 == "") {
-            blanks++
-            suppress=1
-        } else if (associations && index($0, prefix) == 1) {
-            value=substr($0, length(prefix) + 1, length)
-            split(value, apps, ";")
-            value=application ";"
-            count=0
-            for (i in apps) {
-              count++
-            }
-            for (i=0; i < count; i++) {
-                if (apps[i] != application && apps[i] != "") {
-                    value=value apps[i] ";"
-                }
-            }
-            $0=prefix value
-            found=1
-        }
-        if (!suppress) {
-            while (blanks > 0) {
-                print ""
-                blanks--
-            }
-            print $0
-        }
-    }
-    END {
-        if (!found) {
-            if (!associations) {
-                print "[Added Associations]"
-            }
-            print prefix application
-        }
-        while (blanks > 0) {
-            print ""
-            blanks--
-        }
-    }
-' "$default_file" > "${default_file}.new" && mv "${default_file}.new" "$default_file"
-        eval 'kbuildsycoca4'$xdg_redirect_output
-    else
-        awk -v application="$vendor" -v mimetype="$mimetype" '
-    BEGIN {
-        header_start="[" mimetype " - "
-        suppress=0
-    }
-    {
-        if (index($0, header_start) == 1 )
-            suppress=1
-        else
-            if (/^\[/) { suppress=0 }
-
-        if (!suppress) {
-            print $0
-        }
-    }
-    END {
-        print ""
-        print "[" mimetype " - 1]"
-        print "Application=" application
-        print "AllowAsDefault=true"
-        print "GenericServiceType=Application"
-        print "Preference=1"
-        print "ServiceType=" mimetype
-    }
-' "$default_file" > "${default_file}.new" && mv "${default_file}.new" "$default_file"
-    fi
-}
-
-make_default_generic()
-{
-    # $1 is vendor-name.desktop
-    # $2 is mime/type
-    # Add $2=$1 to XDG_DATA_HOME/applications/mimeapps.list
-    xdg_user_dir="$XDG_DATA_HOME"
-    [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
-    default_file="$xdg_user_dir/applications/mimeapps.list"
-    DEBUG 2 "make_default_generic $1 $2"
-    DEBUG 1 "Updating $default_file"
-    [ -f "$default_file" ] || touch "$default_file"
-    awk -v mimetype="$2" -v application="$1" '
-    BEGIN {
-        prefix=mimetype "="
-        indefault=0
-        added=0
-        blanks=0
-        found=0
-    }
-    {
-        suppress=0
-        if (index($0, "[Default Applications]") == 1) {
-            indefault=1
-            found=1
-        } else if (index($0, "[") == 1) {
-            if (!added && indefault) {
-                print prefix application
-                added=1
-            }
-            indefault=0
-        } else if ($0 == "") {
-            suppress=1
-            blanks++
-        } else if (indefault && !added && index($0, prefix) == 1) {
-                $0=prefix application
-                added=1
-        }
-        if (!suppress) {
-            while (blanks > 0) {
-                print ""
-                blanks--
-            }
-            print $0
-        }
-    }
-    END {
-        if (!added) {
-            if (!found) {
-                print ""
-                print "[Default Applications]"
-            }
-            print prefix application
-        }
-        while (blanks > 0) {
-            print ""
-            blanks--
-        }
-    }
-' "$default_file" > "${default_file}.new" && mv "${default_file}.new" "$default_file"
-}
-
-defapp_generic()
-{
-    MIME="$1"
-    xdg_user_dir="$XDG_DATA_HOME"
-    [ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
-    xdg_user_dir="$xdg_user_dir/$xdg_dir_name"
-    xdg_system_dirs="$XDG_DATA_DIRS"
-    [ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
-
-    for x in `echo "$xdg_user_dir" | sed 's/:/ /g'`; do
-        mimeapps_list="$x/applications/mimeapps.list"
-        if [ -f "$mimeapps_list" ] ; then
-            DEBUG 2 "Checking $mimeapps_list"
-            trader_result=`awk -v mimetype="$MIME" '
-    BEGIN {
-        prefix=mimetype "="
-        indefault=0
-        found=0
-    }
-    {
-        if (index($0, "[Default Applications]") == 1) {
-            indefault=1
-        } else if (index($0, "[") == 1) {
-            indefault=0
-        } else if (!found && indefault && index($0, prefix) == 1) {
-            print substr($0, length(prefix) +1, length)
-            found=1
-        }
-    }
-' $mimeapps_list`
-            if [ -n "$trader_result" ] ; then
-                echo $trader_result
-                exit_success
-            fi
-        fi
-    done
-
-    for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
-       DEBUG 2 "Checking $x/applications/defaults.list"
-       trader_result=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2 | cut -d ';' -f 1`
-       if [ -n "$trader_result" ] ; then
-          echo $trader_result
-          exit_success
-       fi
-    done
-    exit_success
-}
-
-defapp_kde()
-{
-    MIME="$1"
-    if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
-        KTRADER=`which ktraderclient 2> /dev/null`
-        MIMETYPE="--mimetype"
-        SERVICETYPE="--servicetype"
-    else
-        KTRADER=`which ktradertest 2> /dev/null`
-    fi
-    if [ -n "$KTRADER" ] ; then
-        DEBUG 1 "Running KDE trader query \"$MIME\" mimetype and \"Application\" servicetype"
-        trader_result=`$KTRADER $MIMETYPE "$MIME" $SERVICETYPE Application 2>/dev/null \
-            | grep DesktopEntryPath | head -n 1 | cut -d ':' -f 2 | cut -d \' -f 2`
-        if [ -n "$trader_result" ] ; then
-            basename "$trader_result"
-            exit_success
-        else
-            exit_failure_operation_failed
-        fi
-    else
-        defapp_generic "$1"
-    fi
-}
-
-[ x"$1" != x"" ] || exit_failure_syntax
-
-mode=
-action=
-filename=
-mimetype=
-
-case $1 in
-  install)
-    action=install
-    ;;
-
-  uninstall)
-    action=uninstall
-    ;;
-
-  query)
-    shift
-
-    if [ -z "$1" ] ; then
-        exit_failure_syntax "query type argument missing"
-    fi
-
-    case $1 in
-      filetype)
-        action=info
-
-        filename="$2"
-        if [ -z "$filename" ] ; then
-            exit_failure_syntax "FILE argument missing"
-        fi
-        case $filename in
-          -*)
-            exit_failure_syntax "unexpected option '$filename'"
-            ;;
-        esac
-        check_input_file "$filename"
-        filename=`readlink -f -- "$filename"`
-        ;;
-
-      default)
-        action=defapp
-        mimetype="$2"
-        if [ -z "$mimetype" ] ; then
-            exit_failure_syntax "mimetype argument missing"
-        fi
-        case $mimetype in
-          -*)
-            exit_failure_syntax "unexpected option '$mimetype'"
-            ;;
-
-          */*)
-            # Ok
-            ;;
-
-          *)
-            exit_failure_syntax "mimetype '$mimetype' is not in the form 'minor/major'"
-            ;;
-        esac
-        ;;
-
-      *)
-      exit_failure_syntax "unknown query type '$1'"
-      ;;
-    esac
-    ;;
-
-  default)
-    action=makedefault
-    shift
-
-    if [ -z "$1" ] ; then
-        exit_failure_syntax "application argument missing"
-    fi
-    case $1 in
-      -*)
-        exit_failure_syntax "unexpected option '$1'"
-        ;;
-
-      *.desktop)
-        filename="$1"
-        ;;
-
-      *)
-        exit_failure_syntax "malformed argument '$1', expected *.desktop"
-        ;;
-    esac
-    ;;
-
-  *)
-  exit_failure_syntax "unknown command '$1'"
-  ;;
-esac
-
-shift
-
-
-if [ "$action" = "makedefault" ]; then
-    if [ -z "$1" ] ; then
-        exit_failure_syntax "mimetype argument missing"
-    fi
-
-    while [ $# -gt 0 ] ; do
-        case $1 in
-          -*)
-            exit_failure_syntax "unexpected option '$1'"
-            ;;
-        esac
-        mimetype="$1"
-        shift
-
-        make_default_kde "$filename" "$mimetype"
-        make_default_generic "$filename" "$mimetype"
-    done
-    exit_success
-fi
-
-if [ "$action" = "info" ]; then
-    detectDE
-
-    if [ x"$DE" = x"" ]; then
-        if [ -x /usr/bin/file ]; then
-            DE=generic
-        fi
-    fi
-
-    case "$DE" in
-        kde)
-        info_kde "$filename"
-        ;;
-
-        gnome*)
-        info_gnome "$filename"
-        ;;
-
-        *)
-        info_generic "$filename"
-        ;;
-    esac
-    exit_failure_operation_impossible "no method available for quering MIME type of '$filename'"
-fi
-
-if [ "$action" = "defapp" ]; then
-    detectDE
-
-    case "$DE" in
-        kde)
-        defapp_kde "$mimetype"
-        ;;
-
-        *)
-        defapp_generic "$mimetype"
-        ;;
-    esac
-    exit_failure_operation_impossible "no method available for quering default application for '$mimetype'"
-fi
-
-vendor=true
-while [ $# -gt 0 ] ; do
-    parm="$1"
-    shift
-
-    case $parm in
-      --mode)
-        if [ -z "$1" ] ; then
-            exit_failure_syntax "mode argument missing for --mode"
-        fi
-        case "$1" in
-          user)
-            mode="user"
-            ;;
-
-          system)
-            mode="system"
-            ;;
-
-          *)
-            exit_failure_syntax "unknown mode '$1'"
-            ;;
-        esac
-        shift
-        ;;
-
-      --novendor)
-        vendor=false
-        ;;
-
-      -*)
-        exit_failure_syntax "unexpected option '$parm'"
-        ;;
-
-      *)
-        if [ -n "$filename" ] ; then
-            exit_failure_syntax "unexpected argument '$parm'"
-        fi
-
-        filename="$parm"
-        check_input_file "$filename"
-        ;;
-    esac
-done
-
-if [ -z "$action" ] ; then
-    exit_failure_syntax "command argument missing"
-fi
-
-if [ -n "$XDG_UTILS_INSTALL_MODE" ] ; then
-    if [ "$XDG_UTILS_INSTALL_MODE" = "system" ] ; then
-        mode="system"
-    elif [ "$XDG_UTILS_INSTALL_MODE" = "user" ] ; then
-        mode="user"
-    fi
-fi
-
-if [ -z "$mode" ] ; then
-    if [ `whoami` = "root" ] ; then
-        mode="system"
-    else
-        mode="user"
-    fi
-fi
-
-if [ -z "$filename" ] ; then
-    exit_failure_syntax "mimetypes-file argument missing"
-fi
-
-if [ "$vendor" =  "true" -a "$action" = "install" ] ; then
-    check_vendor_prefix "$filename"
-fi
-
-xdg_base_dir=
-xdg_dir_name=mime/packages/
-
-xdg_user_dir="$XDG_DATA_HOME"
-[ -n "$xdg_user_dir" ] || xdg_user_dir="$HOME/.local/share"
-[ x"$mode" = x"user" ] && xdg_base_dir="$xdg_user_dir/mime"
-xdg_user_dir="$xdg_user_dir/$xdg_dir_name"
-
-xdg_system_dirs="$XDG_DATA_DIRS"
-[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
-for x in `echo $xdg_system_dirs | sed 's/:/ /g'`; do
-    if [ -w $x/$xdg_dir_name ] ; then
-        [ x"$mode" = x"system" ] && xdg_base_dir="$x/mime"
-        xdg_global_dir="$x/$xdg_dir_name"
-        break
-    fi
-done
-[ -w $xdg_global_dir ] || xdg_global_dir=
-DEBUG 3 "xdg_user_dir: $xdg_user_dir"
-DEBUG 3 "xdg_global_dir: $xdg_global_dir"
-
-# Find KDE3 mimelnk directory
-kde_user_dir=
-kde_global_dir=
-kde_global_dirs=`kde${KDE_SESSION_VERSION}-config --path mime 2> /dev/null`
-DEBUG 3 "kde_global_dirs: $kde_global_dirs"
-first=
-for x in `echo $kde_global_dirs | sed 's/:/ /g'` ; do
-    if [ -z "$first" ] ; then
-        first=false
-        kde_user_dir="$x"
-    elif [ -w $x ] ; then
-        kde_global_dir="$x"
-    fi
-done
-DEBUG 3 "kde_user_dir: $kde_user_dir"
-DEBUG 3 "kde_global_dir: $kde_global_dir"
-
-# TODO: Gnome legacy support
-# See http://forums.fedoraforum.org/showthread.php?t=26875
-gnome_user_dir="$HOME/.gnome/apps"
-gnome_global_dir=/usr/share/gnome/apps
-[ -w $gnome_global_dir ] || gnome_global_dir=
-DEBUG 3 "gnome_user_dir: $gnome_user_dir"
-DEBUG 3 "gnome_global_dir: $gnome_global_dir"
-
-if [ x"$mode" = x"user" ] ; then
-    xdg_dir="$xdg_user_dir"
-    kde_dir="$kde_user_dir"
-    gnome_dir="$gnome_user_dir"
-    my_umask=077
-else
-    xdg_dir="$xdg_global_dir"
-    kde_dir="$kde_global_dir"
-    gnome_dir="$gnome_global_dir"
-    my_umask=022
-    if [ -z "${xdg_dir}${kde_dir}${gnome_dir}" ] ; then
-        exit_failure_operation_impossible "No writable system mimetype directory found."
-    fi
-fi
-
-# echo "[xdg|$xdg_user_dir|$xdg_global_dir]"
-# echo "[kde|$kde_user_dir|$kde_global_dir]"
-# echo "[gnome|$gnome_user_dir|$gnome_global_dir]"
-# echo "[using|$xdg_dir|$kde_dir|$gnome_dir]"
-
-basefile=`basename "$filename"`
-#[ -z $vendor ] || basefile="$vendor-$basefile"
-
-mimetypes=
-if [ -n "$kde_dir" ] ; then
-    DEBUG 2 "KDE3 mimelnk directory found, extracting mimetypes from XML file"
-
-    mimetypes=`awk < "$filename" '
-# Strip XML comments
-BEGIN {
- suppress=0
-}
-{
- do
-    if (suppress) {
-       if (match($0,/-->/)) {
-           $0=substr($0,RSTART+RLENGTH)
-           suppress=0
-       }
-       else {
-           break
-       }
-    }
-    else {
-       if (match($0,/<!--/)) {
-           if (RSTART>1) print substr($0,0,RSTART)
-           $0=substr($0,RSTART+RLENGTH)
-           suppress=1
-       }
-       else {
-           if ($0) print $0
-           break
-       }
-    }
- while(1)
-}
-' | awk '
-# List MIME types listed in <mime-type> tags
-BEGIN {
-  RS="<"
-}
-/^mime-info/, /^\/mime-info/ {
-  if (match($0,/^mime-type/)) {
-    if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
-      print substr($0,RSTART+6,RLENGTH-6)
-    }
-  }
-}'`
-fi
-
-DEBUG 1 "$action mimetype in $xdg_dir"
-
-case $action in
-    install)
-        save_umask=`umask`
-        umask $my_umask
-
-        for x in $xdg_dir ; do
-            mkdir -p $x
-            eval 'cp $filename $x/$basefile'$xdg_redirect_output
-        done
-
-        if [ -n "$mimetypes" ] ; then
-            # No quotes around $mimetypes
-            for x in $mimetypes ; do
-                DEBUG 1 "Installing $kde_dir/$x.desktop (KDE 3.x support)"
-                mkdir -p `dirname $kde_dir/$x.desktop`
-                awk < "$filename" '
-# Strip XML comments
-BEGIN {
- suppress=0
-}
-{
- do
-    if (suppress) {
-       if (match($0,/-->/)) {
-           $0=substr($0,RSTART+RLENGTH)
-           suppress=0
-       }
-       else {
-           break
-       }
-    }
-    else {
-       if (match($0,/<!--/)) {
-           if (RSTART>1) print substr($0,0,RSTART)
-           $0=substr($0,RSTART+RLENGTH)
-           suppress=1
-       }
-       else {
-           if ($0) print $0
-           break
-       }
-    }
- while(1)
-}
-' | awk > $kde_dir/$x.desktop '
-# Extract mimetype $x from the XML file $filename
-# Note that bash requires us to escape a single quote as '"'"'
-BEGIN {
-  the_type=ARGV[1]
-  the_source=ARGV[2]
-  ARGC=1
-  RS="<"
-  found=0
-  glob_patterns=""
-}
-/^mime-info/, /^\/mime-info/ {
-  if (match($0,/^mime-type/)) {
-    if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
-      if (substr($0,RSTART+6,RLENGTH-6) == the_type) {
-        found=1
-        print "[Desktop Entry]"
-        print "# Installed by xdg-mime from " the_source
-        print "Type=MimeType"
-        print "MimeType=" the_type
-        the_icon=the_type
-        sub("/", "-", the_icon)
-        print "Icon=" the_icon
-      }
-    }
-  }
-  else if (found) {
-    if (match($0,/^\/mime-type/)) {
-      if (glob_patterns)
-         print "Patterns=" glob_patterns
-      exit 0
-    }
-
-    if (match($0,/^sub-class-of/)) {
-      if (match($0,/type="[^"]*/) || match($0,/type='"'"'[^'"'"']*/)) {
-        print "X-KDE-IsAlso=" substr($0,RSTART+6,RLENGTH-6)
-      }
-      else {
-        print "Error: '"'"'type'"'"' argument missing in " RS $0
-        exit 1
-      }
-    }
-    if (match($0,/^glob/)) {
-      if (match($0,/pattern="[^"]*/) || match($0,/pattern='"'"'[^'"'"']*/)) {
-        glob_patterns = glob_patterns substr($0,RSTART+9,RLENGTH-9) ";"
-      }
-      else {
-        print "Error: '"'"'pattern'"'"' argument missing in " RS $0
-        exit 1
-      }
-    }
-    if (match($0,/^comment/)) {
-      if (match($0,/xml:lang="[^"]*/) || match($0,/xml:lang='"'"'[^'"'"']*/)) {
-        lang=substr($0,RSTART+10,RLENGTH-10)
-      }
-      else {
-        lang=""
-      }
-      if (match($0,/>/)) {
-        comment=substr($0,RSTART+1)
-        sub("&lt;", "<", comment)
-        sub("&gt;", ">", comment)
-        sub("&amp;", "\\&", comment)
-        if (lang)
-           print "Comment[" lang "]=" comment
-        else
-           print "Comment=" comment
-      }
-    }
-  }
-}
-END {
-  if (!found) {
-    print "Error: Mimetype '"'"'" the_type "'"'"' not found"
-    exit 1
-  }
-}
-' $x $basefile
-                if [ "$?" = "1" ] ; then
-                    grep -A 10 "^Error:" $kde_dir/$x.desktop >&2
-                    rm $kde_dir/$x.desktop
-                    exit 1
-                fi
-            done
-        fi
-
-        umask $save_umask
-        ;;
-
-    uninstall)
-        for x in $xdg_dir ; do
-            rm -f $x/$basefile
-        done
-
-        # No quotes around $mimetypes
-        for x in $mimetypes ; do
-            if grep '^# Installed by xdg-mime' $kde_dir/$x.desktop >/dev/null 2>&1; then
-                DEBUG 1 "Removing $kde_dir/$x.desktop (KDE 3.x support)"
-                rm -f $kde_dir/$x.desktop
-            fi
-        done
-        ;;
-esac
-
-update_mime_database $xdg_base_dir
-
-exit_success
-
diff --git a/src/chrome/tools/test/reference_build/chrome_linux/xdg-settings b/src/chrome/tools/test/reference_build/chrome_linux/xdg-settings
deleted file mode 100755 (executable)
index e101297..0000000
+++ /dev/null
@@ -1,1187 +0,0 @@
-#!/bin/sh
-#---------------------------------------------
-#   xdg-settings
-#
-#   Utility script to get various settings from the desktop environment.
-#
-#   Refer to the usage() function below for usage.
-#
-#   Copyright 2009, Google Inc.
-#
-#   LICENSE:
-#
-#   Permission is hereby granted, free of charge, to any person obtaining a
-#   copy of this software and associated documentation files (the "Software"),
-#   to deal in the Software without restriction, including without limitation
-#   the rights to use, copy, modify, merge, publish, distribute, sublicense,
-#   and/or sell copies of the Software, and to permit persons to whom the
-#   Software is furnished to do so, subject to the following conditions:
-#
-#   The above copyright notice and this permission notice shall be included
-#   in all copies or substantial portions of the Software.
-#
-#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-#   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-#   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-#   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#   OTHER DEALINGS IN THE SOFTWARE.
-#
-#---------------------------------------------
-
-manualpage()
-{
-cat << _MANUALPAGE
-Name
-
-xdg-settings - get various settings from the desktop environment
-
-Synopsis
-
-xdg-settings { get | check | set } {property} [subproperty] [value]
-
-xdg-settings { --help | --list | --manual | --version }
-
-Description
-
-xdg-settings gets various settings from the desktop environment. For instance,
-desktop environments often provide proxy configuration and default web browser
-settings. Using xdg-settings these parameters can be extracted for use by
-applications that do not use the desktop environment's libraries (which would
-use the settings natively).
-
-xdg-settings is for use inside a desktop session only. It is not recommended to
-use xdg-settings as root.
-
-Options
-
---help
-    Show command synopsis.
---list
-    List all properties xdg-settings knows about.
---manual
-    Show this manualpage.
---version
-    Show the xdg-utils version information.
-
-Properties
-
-When using xdg-settings to get, check or set a destkop setting, properties and
-possibly sub-properties are used to specify the setting to be changed.
-
-Some properties (such as default-web-browser) fully describe the setting to be
-changed. Other properties (such as default-url-scheme-handler) require more
-information (in this case the actual scheme to set the default handler for)
-which must be provided in a sub-property.
-
-Exit Codes
-
-An exit code of 0 indicates success while a non-zero exit code indicates
-failure. The following failure codes can be returned:
-
-1
-    Error in command line syntax.
-2
-    One of the files passed on the command line did not exist.
-3
-    A required tool could not be found.
-4
-    The action failed.
-
-Examples
-
-Get the desktop file name of the current default web browser
-
-        xdg-settings get default-web-browser
-
-
-Check whether the default web browser is firefox.desktop, which can be false
-even if "get default-web-browser" says that is the current value (if only some
-of the underlying settings actually reflect that value)
-
-        xdg-settings check default-web-browser firefox.desktop
-
-
-Set the default web browser to google-chrome.desktop
-
-        xdg-settings set default-web-browser google-chrome.desktop
-
-
-Set the default mailto URL scheme handler to be evolution.desktop
-
-        xdg-settings set default-url-scheme-handler mailto evolution.desktop
-
-
-_MANUALPAGE
-}
-
-usage()
-{
-cat << _USAGE
-xdg-settings - get various settings from the desktop environment
-
-Synopsis
-
-xdg-settings { get | check | set } {property} [subproperty] [value]
-
-xdg-settings { --help | --list | --manual | --version }
-
-_USAGE
-}
-
-#@xdg-utils-common@
-
-#----------------------------------------------------------------------------
-#   Common utility functions included in all XDG wrapper scripts
-#----------------------------------------------------------------------------
-
-DEBUG()
-{
-  [ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && return 0;
-  [ ${XDG_UTILS_DEBUG_LEVEL} -lt $1 ] && return 0;
-  shift
-  echo "$@" >&2
-}
-
-# This handles backslashes but not quote marks.
-first_word()
-{
-    read first rest
-    echo "$first"
-}
-
-#-------------------------------------------------------------
-# map a binary to a .desktop file
-binary_to_desktop_file()
-{
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    binary="`which "$1"`"
-    binary="`readlink -f "$binary"`"
-    base="`basename "$binary"`"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" ] || continue
-        [ -d "$dir/applications" -o -d "$dir/applnk" ] || continue
-        for file in "$dir"/applications/*.desktop "$dir"/applications/*/*.desktop "$dir"/applnk/*.desktop "$dir"/applnk/*/*.desktop; do
-            [ -r "$file" ] || continue
-            # Check to make sure it's worth the processing.
-            grep -q "^Exec.*$base" "$file" || continue
-            # Make sure it's a visible desktop file (e.g. not "preferred-web-browser.desktop").
-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
-            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
-            command="`which "$command"`"
-            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
-                # Fix any double slashes that got added path composition
-                echo "$file" | sed -e 's,//*,/,g'
-                return
-            fi
-        done
-    done
-}
-
-#-------------------------------------------------------------
-# map a .desktop file to a binary
-## FIXME: handle vendor dir case
-desktop_file_to_binary()
-{
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    desktop="`basename "$1"`"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/applications" ] || continue
-        file="$dir/applications/$desktop"
-        [ -r "$file" ] || continue
-        # Remove any arguments (%F, %f, %U, %u, etc.).
-        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
-        command="`which "$command"`"
-        readlink -f "$command"
-        return
-    done
-}
-
-#-------------------------------------------------------------
-# Exit script on successfully completing the desired operation
-
-exit_success()
-{
-    if [ $# -gt 0 ]; then
-        echo "$@"
-        echo
-    fi
-
-    exit 0
-}
-
-
-#-----------------------------------------
-# Exit script on malformed arguments, not enough arguments
-# or missing required option.
-# prints usage information
-
-exit_failure_syntax()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-        echo "Try 'xdg-settings --help' for more information." >&2
-    else
-        usage
-        echo "Use 'man xdg-settings' or 'xdg-settings --manual' for additional info."
-    fi
-
-    exit 1
-}
-
-#-------------------------------------------------------------
-# Exit script on missing file specified on command line
-
-exit_failure_file_missing()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-    fi
-
-    exit 2
-}
-
-#-------------------------------------------------------------
-# Exit script on failure to locate necessary tool applications
-
-exit_failure_operation_impossible()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-    fi
-
-    exit 3
-}
-
-#-------------------------------------------------------------
-# Exit script on failure returned by a tool application
-
-exit_failure_operation_failed()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-    fi
-
-    exit 4
-}
-
-#------------------------------------------------------------
-# Exit script on insufficient permission to read a specified file
-
-exit_failure_file_permission_read()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-    fi
-
-    exit 5
-}
-
-#------------------------------------------------------------
-# Exit script on insufficient permission to write a specified file
-
-exit_failure_file_permission_write()
-{
-    if [ $# -gt 0 ]; then
-        echo "xdg-settings: $@" >&2
-    fi
-
-    exit 6
-}
-
-check_input_file()
-{
-    if [ ! -e "$1" ]; then
-        exit_failure_file_missing "file '$1' does not exist"
-    fi
-    if [ ! -r "$1" ]; then
-        exit_failure_file_permission_read "no permission to read file '$1'"
-    fi
-}
-
-check_vendor_prefix()
-{
-    file_label="$2"
-    [ -n "$file_label" ] || file_label="filename"
-    file=`basename "$1"`
-    case "$file" in
-       [a-zA-Z]*-*)
-         return
-         ;;
-    esac
-
-    echo "xdg-settings: $file_label '$file' does not have a proper vendor prefix" >&2
-    echo 'A vendor prefix consists of alpha characters ([a-zA-Z]) and is terminated' >&2
-    echo 'with a dash ("-"). An example '"$file_label"' is '"'example-$file'" >&2
-    echo "Use --novendor to override or 'xdg-settings --manual' for additional info." >&2
-    exit 1
-}
-
-check_output_file()
-{
-    # if the file exists, check if it is writeable
-    # if it does not exists, check if we are allowed to write on the directory
-    if [ -e "$1" ]; then
-        if [ ! -w "$1" ]; then
-            exit_failure_file_permission_write "no permission to write to file '$1'"
-        fi
-    else
-        DIR=`dirname "$1"`
-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
-            exit_failure_file_permission_write "no permission to create file '$1'"
-        fi
-    fi
-}
-
-#----------------------------------------
-# Checks for shared commands, e.g. --help
-
-check_common_commands()
-{
-    while [ $# -gt 0 ] ; do
-        parm="$1"
-        shift
-
-        case "$parm" in
-            --help)
-            usage
-            echo "Use 'man xdg-settings' or 'xdg-settings --manual' for additional info."
-            exit_success
-            ;;
-
-            --manual)
-            manualpage
-            exit_success
-            ;;
-
-            --version)
-            echo "xdg-settings 1.1.0 rc1"
-            exit_success
-            ;;
-        esac
-    done
-}
-
-check_common_commands "$@"
-
-[ -z "${XDG_UTILS_DEBUG_LEVEL}" ] && unset XDG_UTILS_DEBUG_LEVEL;
-if [ ${XDG_UTILS_DEBUG_LEVEL-0} -lt 1 ]; then
-    # Be silent
-    xdg_redirect_output=" > /dev/null 2> /dev/null"
-else
-    # All output to stderr
-    xdg_redirect_output=" >&2"
-fi
-
-#--------------------------------------
-# Checks for known desktop environments
-# set variable DE to the desktop environments name, lowercase
-
-detectDE()
-{
-    # see https://bugs.freedesktop.org/show_bug.cgi?id=34164
-    unset GREP_OPTIONS
-
-    if [ -n "${XDG_CURRENT_DESKTOP}" ]; then
-      case "${XDG_CURRENT_DESKTOP}" in
-         GNOME)
-           DE=gnome;
-           ;;
-         KDE)
-           DE=kde;
-           ;;
-         LXDE)
-           DE=lxde;
-           ;;
-         XFCE)
-           DE=xfce
-      esac
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # classic fallbacks
-      if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
-      elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
-      elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
-      elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
-      elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce
-      fi
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # fallback to checking $DESKTOP_SESSION
-      case "$DESKTOP_SESSION" in
-         gnome)
-           DE=gnome;
-           ;;
-         LXDE)
-           DE=lxde; 
-           ;;
-         xfce|xfce4)
-           DE=xfce;
-           ;;
-      esac
-    fi
-
-    if [ x"$DE" = x"" ]; then
-      # fallback to uname output for other platforms
-      case "$(uname 2>/dev/null)" in 
-        Darwin)
-          DE=darwin;
-          ;;
-      esac
-    fi
-
-    if [ x"$DE" = x"gnome" ]; then
-      # gnome-default-applications-properties is only available in GNOME 2.x
-      # but not in GNOME 3.x
-      which gnome-default-applications-properties > /dev/null 2>&1  || DE="gnome3"
-    fi
-}
-
-#----------------------------------------------------------------------------
-# kfmclient exec/openURL can give bogus exit value in KDE <= 3.5.4
-# It also always returns 1 in KDE 3.4 and earlier
-# Simply return 0 in such case
-
-kfmclient_fix_exit_code()
-{
-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
-    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
-    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
-    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
-    test "$major" -gt 3 && return $1
-    test "$minor" -gt 5 && return $1
-    test "$release" -gt 4 && return $1
-    return 0
-}
-
-check_desktop_filename()
-{
-    case "$1" in
-      */*)
-        exit_failure_syntax "invalid application name"
-        ;;
-      *.desktop)
-        return
-        ;;
-      *)
-        exit_failure_syntax "invalid application name"
-        ;;
-    esac
-}
-
-# {{{ default browser
-# {{{ utility functions
-
-# In order to remove an application from the automatically-generated list of
-# applications for handling a given MIME type, the desktop environment may copy
-# the global .desktop file into the user's .local directory, and remove that
-# MIME type from its list. In that case, we must restore the MIME type to the
-# application's list of MIME types before we can set it as the default for that
-# MIME type. (We can't just delete the local version, since the user may have
-# made other changes to it as well. So, tweak the existing file.)
-# This function is hard-coded for text/html but it could be adapted if needed.
-fix_local_desktop_file()
-{
-    if test -z "$2" ; then
-        MIME="text/html"
-    else
-        MIME="$2"
-    fi
-    apps="${XDG_DATA_HOME:-$HOME/.local/share}/applications"
-    # No local desktop file?
-    [ ! -f "$apps/$1" ] && return
-    MIMETYPES="`grep "^MimeType=" "$apps/$1" | cut -d= -f 2-`"
-    case "$MIMETYPES" in
-      $MIME\;*|*\;$MIME\;*|*\;$MIME\;|*\;$MIME)
-        # Already has the mime-type? Great!
-        return 0
-        ;;
-    esac
-
-    # Add the mime-type to the list
-    temp="`mktemp "$apps/$1.XXXXXX"`" || return
-    grep -v "^MimeType=" "$apps/$1" >> "$temp"
-    echo "MimeType=$MIME;$MIMETYPES" >> "$temp"
-
-    oldlines="`wc -l < "$apps/$1"`"
-    newlines="`wc -l < "$temp"`"
-    # The new file should have at least as many lines as the old.
-    if [ $oldlines -le $newlines ]; then
-        mv "$temp" "$apps/$1"
-        # This can take a little bit to get noticed.
-        sleep 4
-    else
-        rm -f "$temp"
-        return 1
-    fi
-}
-
-# }}} utility functions
-# {{{ MIME utilities
-
-xdg_mime_fixup()
-{
-    # xdg-mime may use ktradertest, which will fork off a copy of kdeinit if
-    # one does not already exist. It will exit after about 15 seconds if no
-    # further processes need it around. But since it does not close its stdout,
-    # the shell (via grep) will wait around for kdeinit to exit. If we start a
-    # copy here, that copy will be used in xdg-mime and we will avoid waiting.
-    if [ "$DE" = kde -a -z "$XDG_MIME_FIXED" ]; then
-        ktradertest text/html Application > /dev/null 2>&1
-        # Only do this once, as we only need it once.
-        XDG_MIME_FIXED=yes
-    fi
-}
-
-get_browser_mime()
-{
-    if test -z "$1" ; then
-        MIME="text/html"
-    else
-        MIME="$1"
-    fi
-    xdg_mime_fixup
-    xdg-mime query default "$MIME"
-}
-
-set_browser_mime()
-{
-    xdg_mime_fixup
-    if test -z "$2" ; then
-        MIME="text/html"
-    else
-        MIME="$2"
-    fi
-    orig="`get_browser_mime $MIME`"
-    # Fixing the local desktop file can actually change the default browser all
-    # by itself, so we fix it only after querying to find the current default.
-    fix_local_desktop_file "$1" "$MIME" || return
-    mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/applications"
-    xdg-mime default "$1" "$MIME" || return
-    if [ x"`get_browser_mime`" != x"$1" ]; then
-        # Put back the original value
-        xdg-mime default "$orig" "$MIME"
-        exit_failure_operation_failed
-    fi
-}
-
-# }}} MIME utilities
-# {{{ KDE utilities
-
-# Reads the KDE configuration setting, compensating for a bug in some versions of kreadconfig.
-read_kde_config()
-{
-    configfile="$1"
-    configsection="$2"
-    configkey="$3"
-    application="`kreadconfig --file $configfile --group $configsection --key $configkey`"
-    if [ x"$application" != x ]; then
-        echo "$application"
-    else
-        # kreadconfig in KDE 4 may not notice Key[$*]=... localized settings, so
-        # check by hand if it didn't find anything (oddly kwriteconfig works
-        # fine though).
-        configfile_dir=`kde${KDE_SESSION_VERSION}-config --path config  | cut -d ':' -f 1`
-        configfile_path="$configfile_dir/$configfile"
-        [ ! -f "$configfile_path" ] && return
-        # This will only take the first value if there is more than one.
-        grep "^$configkey"'\[$[^]=]*\]=' "$configfile_path" | head -n 1 | cut -d= -f 2-
-    fi
-}
-
-# }}} KDE utilities
-# {{{ KDE
-
-# Resolves the KDE browser setting to a binary: if prefixed with !, simply removes it;
-# otherwise, uses desktop_file_to_binary to get the binary out of the desktop file.
-resolve_kde_browser()
-{
-    [ -z "$browser" ] && return
-    case "$browser" in
-      !*)
-        echo "${browser#!}"
-        ;;
-      *)
-        desktop_file_to_binary "$browser"
-        ;;
-    esac
-}
-
-# Does the opposite of resolve_kde_browser: if prefixed with !, tries to find a desktop
-# file corresponding to the binary, otherwise just returns the desktop file name.
-resolve_kde_browser_desktop()
-{
-    [ -z "$browser" ] && return
-    case "$browser" in
-      !*)
-        desktop="`binary_to_desktop_file "${browser#!}"`"
-        basename "$desktop"
-        ;;
-      *)
-        echo "$browser"
-        ;;
-    esac
-}
-
-read_kde_browser()
-{
-    read_kde_config kdeglobals General BrowserApplication
-}
-
-get_browser_kde()
-{
-    browser="`read_kde_browser`"
-    if [ x"$browser" = x ]; then
-        # No explicit default browser; KDE will use the MIME type text/html.
-        get_browser_mime
-    else
-        resolve_kde_browser_desktop
-    fi
-}
-
-check_browser_kde()
-{
-    check="`desktop_file_to_binary "$1"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    browser="`read_kde_browser`"
-    binary="`resolve_kde_browser`"
-    # Because KDE will use the handler for MIME type text/html if this value
-    # is empty, we allow either the empty string or a match to $check here.
-    if [ x"$binary" != x -a x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    browser="`get_browser_mime`"
-    binary="`desktop_file_to_binary "$browser"`"
-    if [ x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-set_browser_kde()
-{
-    set_browser_mime "$1" || return
-    kwriteconfig --file kdeglobals --group General --key BrowserApplication "$1"
-}
-
-# }}} KDE
-# {{{ GNOME
-
-get_browser_gnome()
-{
-    binary="`gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word`"
-    if [ x"$binary" = x ]; then
-        # No default browser; GNOME might use the MIME type text/html.
-        get_browser_mime
-    else
-        # gconftool gives the binary (maybe with %s etc. afterward),
-        # but we want the desktop file name, not the binary. So, we
-        # have to find the desktop file to which it corresponds.
-        desktop="`binary_to_desktop_file "$binary"`"
-        basename "$desktop"
-    fi
-}
-
-check_browser_gnome()
-{
-    check="`desktop_file_to_binary "$1"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    binary="`gconftool-2 --get /desktop/gnome/applications/browser/exec | first_word`"
-    if [ x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    # Check HTTP and HTTPS, but not about: and unknown:.
-    for protocol in http https; do
-        binary="`gconftool-2 --get /desktop/gnome/url-handlers/$protocol/command | first_word`"
-        if [ x"$binary" != x"$check" ]; then
-            echo no
-            exit_success
-        fi
-    done
-    browser="`get_browser_mime`"
-    binary="`desktop_file_to_binary "$browser"`"
-    if [ x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-set_browser_gnome()
-{
-    binary="`desktop_file_to_binary "$1"`"
-    [ "$binary" ] || exit_failure_file_missing
-    set_browser_mime "$1" || return
-
-    # Set the default browser.
-    gconftool-2 --type string --set /desktop/gnome/applications/browser/exec "$binary"
-    gconftool-2 --type bool --set /desktop/gnome/applications/browser/needs_term false
-    gconftool-2 --type bool --set /desktop/gnome/applications/browser/nremote true
-    # Set the handler for HTTP and HTTPS.
-    for protocol in http https; do
-        gconftool-2 --type string --set /desktop/gnome/url-handlers/$protocol/command "$binary %s"
-        gconftool-2 --type bool --set /desktop/gnome/url-handlers/$protocol/needs_terminal false
-        gconftool-2 --type bool --set /desktop/gnome/url-handlers/$protocol/enabled true
-    done
-    # Set the handler for about: and unknown URL types.
-    for protocol in about unknown; do
-        gconftool-2 --type string --set /desktop/gnome/url-handlers/$protocol/command "$binary %s"
-    done
-}
-
-# }}} GNOME
-# {{{ GNOME 3.x
-
-get_browser_gnome3()
-{
-    get_browser_mime "x-scheme-handler/http"
-}
-
-check_browser_gnome3()
-{
-    desktop="$1"
-    check="`desktop_file_to_binary "$1"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    # Check HTTP and HTTPS, but not about: and unknown:.
-    for protocol in http https; do
-        browser="`get_browser_mime "x-scheme-handler/$protocol"`"
-        if [ x"$browser" != x"$desktop" ]; then
-            echo no
-            exit_success
-        fi
-    done
-    echo yes
-    exit_success
-}
-
-set_browser_gnome3()
-{
-    binary="`desktop_file_to_binary "$1"`"
-    [ "$binary" ] || exit_failure_file_missing
-    set_browser_mime "$1" || return
-
-    # Set the default browser.
-    for protocol in http https about unknown; do
-        set_browser_mime "$1" "x-scheme-handler/$protocol" || return
-    done
-}
-# }}} GNOME 3.x
-# {{{ xfce
-
-get_browser_xfce()
-{
-    search="${XDG_CONFIG_HOME:-$HOME/.config}:${XDG_CONFIG_DIRS:-/etc/xdg}"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/xfce4" ] || continue
-        file="$dir/xfce4/helpers.rc"
-        [ -r "$file" ] || continue
-        grep -q "^WebBrowser=" "$file" || continue
-        desktop="`grep "^WebBrowser=" "$file" | cut -d= -f 2-`"
-        echo "$desktop.desktop"
-        return
-    done
-    exit_failure_operation_failed
-}
-
-check_browser_xfce()
-{
-    browser="`get_browser_xfce`"
-    if [ x"$browser" != x"$1" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-check_xfce_desktop_file()
-{
-    # Annoyingly, xfce wants its .desktop files in a separate directory instead
-    # of the standard locations, and requires a few custom tweaks to them:
-    # "Type" must be "X-XFCE-Helper"
-    # "X-XFCE-Category" must be "WebBrowser" (for web browsers, anyway)
-    # "X-XFCE-Commands" and "X-XFCE-CommandsWithParameter" must be set
-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/xfce4/helpers" ] || continue
-        file="$dir/xfce4/helpers/$1"
-        # We have the file, no need to create it.
-        [ -r "$file" ] && return
-    done
-    IFS=:
-    for dir in $search; do
-        unset IFS
-        [ "$dir" -a -d "$dir/applications" ] || continue
-        file="$dir/applications/$1"
-        if [ -r "$file" ]; then
-            # Found a file to convert.
-            target="${XDG_DATA_HOME:-$HOME/.local/share}/xfce4/helpers"
-            mkdir -p "$target"
-            grep -v "^Type=" "$file" > "$target/$1"
-            echo "Type=X-XFCE-Helper" >> "$target/$1"
-            echo "X-XFCE-Category=WebBrowser" >> "$target/$1"
-            # Change %F, %f, %U, and %u to "%s".
-            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | sed -e 's/%[FfUu]/"%s"/g'`"
-            echo "X-XFCE-Commands=`echo "$command" | first_word`" >> "$target/$1"
-            echo "X-XFCE-CommandsWithParameter=$command" >> "$target/$1"
-            return
-        fi
-    done
-    return 1
-}
-
-set_browser_xfce()
-{
-    check_xfce_desktop_file "$1" || exit_failure_operation_failed
-
-    helper_dir="${XDG_CONFIG_HOME:-$HOME/.config}/xfce4"
-    if [ ! -d "$helper_dir" ]; then
-        mkdir -p "$helper_dir" || exit_failure_operation_failed
-    fi
-
-    helpers_rc="$helper_dir/helpers.rc"
-    # Create the file if it does not exist to avoid special cases below.
-    if [ ! -r "$helpers_rc" ]; then
-        touch "$helpers_rc" || exit_failure_operation_failed
-    fi
-
-    temp="`mktemp "$helpers_rc.XXXXXX"`" || return
-    grep -v "^WebBrowser=" "$helpers_rc" >> "$temp"
-    echo "WebBrowser=${1%.desktop}" >> "$temp"
-
-    oldlines="`wc -l < "$helpers_rc"`"
-    newlines="`wc -l < "$temp"`"
-    # The new file should have at least as many lines as the old.
-    if [ $oldlines -le $newlines ]; then
-        mv "$temp" "$helpers_rc"
-    else
-        rm -f "$temp"
-        return 1
-    fi
-}
-
-# }}} xfce
-# }}} default browser
-
-# {{{ default url scheme handler
-
-exit_unimplemented_default_handler()
-{
-    exit_failure_operation_impossible "default-url-scheme-handler not implemented for $DE"
-}
-
-# {{{ KDE
-
-# Recent versions of KDE support default scheme handler applications using the
-# mime type of x-scheme-handler/scheme. Older versions will not support this
-# but do have support for setting a default mail handler. There is also a
-# system in KDE where .protocol files can be used, however this is not
-# supported by this script. When reading a scheme handler we will use the
-# default mail handler for the mailto scheme, otherwise we will use the mime
-# type x-scheme-handler/scheme.
-
-get_url_scheme_handler_kde()
-{
-    if [ "$1" = "mailto" ]; then
-        handler="`read_kde_config emaildefaults PROFILE_Default EmailClient | first_word`"
-        echo "handler is $handler"
-        if [ x"$handler" != x ]; then
-            binary_to_desktop_file "$handler"
-        else
-            get_browser_mime "x-scheme-handler/$1"
-        fi
-    else 
-        get_browser_mime "x-scheme-handler/$1"
-    fi
-}
-
-check_url_scheme_handler_kde()
-{
-    check="`desktop_file_to_binary "$2"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    if [ x"$1" = "mailto" ]; then
-        binary="`read_kde_config emaildefaults PROFILE_Default EmailClient`"
-        if [ x"$binary" != x"$check" ]; then
-            echo no
-            exit_success
-        fi
-    fi
-    handler="`get_browser_mime x-scheme-handler/$1`"
-    binary="`desktop_file_to_binary "$handler"`"
-    if [ x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-set_url_scheme_handler_kde()
-{
-    set_browser_mime "$2" "x-scheme-handler/$1" || return
-    if [ "$1" = "mailto" ]; then
-        binary="`desktop_file_to_binary "$2"`"
-        kwriteconfig --file emaildefaults --group PROFILE_Default --key EmailClient "$binary"
-    fi
-}
-
-# }}} KDE
-# {{{ GNOME
-
-get_url_scheme_handler_gnome()
-{
-    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
-    if [ x"$binary" != x"" ]; then
-        # gconftool gives the binary (maybe with %s etc. afterward),
-        # but we want the desktop file name, not the binary. So, we
-        # have to find the desktop file to which it corresponds.
-        desktop="`binary_to_desktop_file "$binary"`"
-        basename "$desktop"
-    fi
-}
-
-check_url_scheme_handler_gnome()
-{
-    check="`desktop_file_to_binary "$2"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
-    if [ x"$binary" != x"$check" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-set_url_scheme_handler_gnome()
-{
-    binary="`desktop_file_to_binary "$2"`"
-    [ "$binary" ] || exit_failure_file_missing
-
-    gconftool-2 --type string --set /desktop/gnome/url-handlers/$1/command "$binary %s"
-    gconftool-2 --type bool --set /desktop/gnome/url-handlers/$1/needs_terminal false
-    gconftool-2 --type bool --set /desktop/gnome/url-handlers/$1/enabled true
-}
-
-# }}} GNOME
-# {{{ GNOME 3.x
-
-get_url_scheme_handler_gnome3()
-{
-    get_browser_mime "x-scheme-handler/$1"
-}
-
-check_url_scheme_handler_gnome3()
-{
-    desktop="$2"
-    check="`desktop_file_to_binary "$2"`"
-    if [ -z "$check" ]; then
-        echo no
-        exit_success
-    fi
-    browser="`get_browser_mime "x-scheme-handler/$1"`"
-    if [ x"$browser" != x"$desktop" ]; then
-        echo no
-        exit_success
-    fi
-    echo yes
-    exit_success
-}
-
-set_url_scheme_handler_gnome3()
-{
-    binary="`desktop_file_to_binary "$2"`"
-    [ "$binary" ] || exit_failure_file_missing
-    set_browser_mime "$2" || return
-
-    # Set the default browser.
-    set_browser_mime "$2" "x-scheme-handler/$1" || return
-}
-
-# }}} GNOME 3.x
-# {{{ xfce
-
-get_url_scheme_handler_xfce()
-{
-    exit_unimplemented_default_handler "$1"
-}
-
-check_url_scheme_handler_xfce()
-{
-    exit_unimplemented_default_handler "$1"
-}
-
-set_url_scheme_handler_xfce()
-{
-    exit_unimplemented_default_handler "$1"
-}
-
-# }}} xfce
-# }}} default protocol handler
-
-dispatch_specific()
-{
-    # The PROP comments in this function are used to generate the output of
-    # the --list option. The formatting is important. Make sure to line up the
-    # property descriptions with spaces so that it will look nice.
-    if [ x"$op" = x"get" ]; then
-        case "$parm" in
-          default-web-browser) # PROP:           Default web browser
-            get_browser_$DE
-            ;;
-
-          default-url-scheme-handler) # PROP:    Default handler for URL scheme
-            get_url_scheme_handler_$DE "$1"
-            ;;
-
-          *)
-            exit_failure_syntax
-            ;;
-        esac
-    elif [ x"$op" = x"check" ]; then
-        case "$parm" in
-          default-web-browser)
-            check_desktop_filename "$1"
-            check_browser_$DE "$1"
-            ;;
-
-          default-url-scheme-handler)
-            check_desktop_filename "$2"
-            check_url_scheme_handler_$DE "$1" "$2"
-            ;;
-
-          *)
-            exit_failure_syntax
-            ;;
-        esac
-    else # set
-        case "$parm" in
-          default-web-browser)
-           [ $# -eq 1 ] || exit_failure_syntax "unexpected/missing argument"
-            check_desktop_filename "$1"
-            set_browser_$DE "$1"
-            ;;
-
-          default-url-scheme-handler)
-           [ $# -eq 2 ] || exit_failure_syntax "unexpected/missing argument"
-            check_desktop_filename "$2"
-            set_url_scheme_handler_$DE "$1" "$2"
-            ;;
-
-          *)
-            exit_failure_syntax
-            ;;
-        esac
-    fi
-
-    if [ $? -eq 0 ]; then
-        exit_success
-    else
-        exit_failure_operation_failed
-    fi
-}
-
-dispatch_generic()
-{
-    # We only know how to get or check the default web browser.
-    [ x"$op" != x"get" -a x"$op" != x"check" ] && exit_failure_operation_impossible
-    [ x"$parm" != x"default-web-browser" ] && exit_failure_operation_impossible
-
-    # First look in $BROWSER
-    if [ x"$BROWSER" != x ]; then
-        binary="`which "${BROWSER%%:*}"`"
-    else
-        # Debian and Ubuntu (and others?) have x-www-browser.
-        binary="`which x-www-browser`"
-    fi
-
-    [ "$binary" ] || exit_failure_operation_failed
-
-    binary="`readlink -f "$binary"`"
-
-    [ "$binary" ] || exit_failure_operation_failed
-
-    if [ x"$op" = x"get" ]; then
-        desktop="`binary_to_desktop_file "$binary"`"
-        basename "$desktop"
-    else
-        # $op = "check"
-        check="`desktop_file_to_binary "$1"`"
-        if [ -z "$check" ]; then
-            echo no
-            exit_success
-        fi
-        if [ x"$binary" != x"$check" ]; then
-            echo no
-            exit_success
-        fi
-        echo yes
-    fi
-    exit_success
-}
-
-if [ x"$1" = x"--list" ]; then
-    echo "Known properties:"
-    # Extract the property names from dispatch_specific() above.
-    grep "^[   ]*[^)]*) # PROP:" "$0" | sed -e 's/^[   ]*\([^)]*\)) # PROP: \(.*\)$/  \1 \2/' | sort
-    exit_success
-fi
-
-[ x"$1" != x ] || exit_failure_syntax "no operation given"
-[ x"$2" != x ] || exit_failure_syntax "no parameter name given"
-[ x"$1" = x"get" -o x"$3" != x ] || exit_failure_syntax "no parameter value given"
-
-op="$1"
-parm="$2"
-shift 2
-
-if [ x"$op" != x"get" -a x"$op" != x"check" -a x"$op" != x"set" ]; then
-  exit_failure_syntax "invalid operation"
-fi
-
-detectDE
-
-case "$DE" in
-    kde|gnome*|xfce)
-    dispatch_specific "$@"
-    ;;
-
-    generic)
-    dispatch_generic "$@"
-    ;;
-
-    *)
-    exit_failure_operation_impossible "unknown desktop environment"
-    ;;
-esac
diff --git a/src/third_party/libaddressinput/src/java/android.jar b/src/third_party/libaddressinput/src/java/android.jar
new file mode 100644 (file)
index 0000000..8bf318d
Binary files /dev/null and b/src/third_party/libaddressinput/src/java/android.jar differ
diff --git a/src/third_party/libaddressinput/src/java/build.xml b/src/third_party/libaddressinput/src/java/build.xml
new file mode 100644 (file)
index 0000000..8d207ee
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" ?>
+
+<project name="libaddressinput" default="compile">
+  <property name="src.dir" value="src"/>
+  <property name="test.dir" value="test"/>
+  <property name="build.dir" value="build"/>
+  <property name="classes.dir" value="${build.dir}/classes"/>
+  <property name="jar.dir" value="${build.dir}/jar"/>
+  <property name="testdata.dir" value="../testdata"/>
+  <property name="testlibs.dir" value="testlibs"/>
+  <property name="report.dir" value="${build.dir}/junitreport"/>
+
+  <path id="classpath">
+    <fileset dir="${src.dir}" includes="src/com/android/i18n/**"/>
+    <pathelement location="android.jar"/>
+  </path>
+  <path id="test.classpath">
+    <pathelement location="${classes.dir}"/>
+    <pathelement location="${jar.dir}/${ant.project.name}-test.jar"/>
+    <fileset dir="${testlibs.dir}" includes="**/*.jar"/>
+  </path>
+
+  <target name="compile" description="Compile Java source.">
+    <mkdir dir="${classes.dir}"/>
+    <!-- AddressWidget.java must be excluded, as it depends on R.class, which
+         would be generated by the Android resource compiler. -->
+    <javac srcdir="${src.dir}/"
+           encoding="utf-8"
+           includes="com/android/i18n/**"
+           excludes="com/android/i18n/addressinput/AddressWidget.java"
+           destdir="${classes.dir}"
+           classpathref="classpath"
+           includeantruntime="false"
+           debug="on">
+      <compilerarg value="-Xlint"/>
+    </javac>
+    <javac srcdir="${test.dir}"
+           destdir="${classes.dir}"
+           classpathref="test.classpath"
+           encoding="utf-8"
+           includeantruntime="true"
+           debug="on"/>
+  </target>
+
+  <target name="jar" depends="compile">
+    <mkdir dir="${jar.dir}"/>
+    <jar destfile="${jar.dir}/${ant.project.name}.jar">
+      <fileset dir="${classes.dir}">
+        <include name="**/*.class"/>
+        <exclude name="**/*Test*"/>
+      </fileset>
+    </jar>
+  </target>
+
+  <target name="test-jar" depends="compile">
+    <mkdir dir="${jar.dir}"/>
+    <jar destfile="${jar.dir}/${ant.project.name}-test.jar">
+      <fileset dir="${classes.dir}">
+        <include name="**/*.class"/>
+        <exclude name="**/*Test*"/>
+      </fileset>
+      <fileset dir="${testdata.dir}" />
+    </jar>
+  </target>
+
+ <target name="junit" depends="test-jar">
+    <mkdir dir="${report.dir}"/>
+    <junit printsummary="yes">
+      <classpath refid="test.classpath"/>
+      <formatter type="xml"/>
+      <batchtest fork="no" todir="${report.dir}">
+        <fileset dir="${test.dir}">
+          <include name="**/*Test*"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+  <target name="junitreport">
+    <junitreport todir="${report.dir}">
+      <fileset dir="${report.dir}" includes="TEST-*.xml"/>
+        <report todir="${report.dir}"/>
+    </junitreport>
+  </target>
+
+  <target name="clean" description="Remove generated files.">
+    <delete dir="${build.dir}"/>
+  </target>
+
+  <target name="clean-build" depends="clean,jar"/>
+</project>
diff --git a/src/third_party/libaddressinput/src/java/res/layout/address_edittext.xml b/src/third_party/libaddressinput/src/java/res/layout/address_edittext.xml
new file mode 100644 (file)
index 0000000..e36c330
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<EditText
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/address_edit_text"
+    android:singleLine="true"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:inputType = "textPostalAddress|textCapWords" />
diff --git a/src/third_party/libaddressinput/src/java/res/layout/address_layout.xml b/src/third_party/libaddressinput/src/java/res/layout/address_layout.xml
new file mode 100644 (file)
index 0000000..1256968
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/address_layout"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content" />
diff --git a/src/third_party/libaddressinput/src/java/res/layout/address_spinner.xml b/src/third_party/libaddressinput/src/java/res/layout/address_spinner.xml
new file mode 100644 (file)
index 0000000..9f2bf30
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<Spinner
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/address_spinner"
+    android:drawSelectorOnTop="true"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content" />
diff --git a/src/third_party/libaddressinput/src/java/res/layout/address_textview.xml b/src/third_party/libaddressinput/src/java/res/layout/address_textview.xml
new file mode 100644 (file)
index 0000000..669eb64
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/**
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/address_text_view"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="4dip"
+    android:layout_marginLeft="3dip"
+    android:textColor="?android:attr/textColorPrimary" />
diff --git a/src/third_party/libaddressinput/src/java/res/values/address_strings.xml b/src/third_party/libaddressinput/src/java/res/values/address_strings.xml
new file mode 100644 (file)
index 0000000..57b34c4
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Strings used in the AddressInput widget. The first section contains strings
+ * that may need to be changed for consistency with the client application, the
+ * second section contains widget-specific labels and error messages.
+ */
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+    <!-- The first section of strings are for strings that may need to be changed
+         to be consistent with other parts of the client application. -->
+
+    <!-- Message displayed to the user when data is being loaded from the
+         server.  The u2026 is the unicode character for the ellipses (...) -->
+    <string name="address_data_loading">Loading\u2026</string>
+
+    <!-- Strings below this point are address-specific and relate either to
+    labels for input fields or to error messages that the widget may report. -->
+
+    <!-- A country or a political region (countries like the United States or
+         regions like Hong Kong) [CHAR LIMIT=30] -->
+    <string name="i18n_country_label">Country</string>
+
+    <!-- A city or town, such as New York City [CHAR LIMIT=30] -->
+    <string name="i18n_locality_label">City</string>
+
+    <!-- Area of a town (a neighbourhood/suburb) used for addresses in Korea and
+         China, or a district of a country such as Nauru [CHAR LIMIT=30] -->
+    <string name="i18n_dependent_locality_label">District</string>
+
+    <!-- Company/Organization of the address [CHAR LIMIT=30] -->
+    <string name="i18n_organization_label">Company</string>
+
+    <!-- Label indicating the person to be contacted as part of this address, to
+         be used for example as "Contact Name: John Doe".[CHAR LIMIT=30] -->
+    <string name="i18n_recipient_label">Contact Name</string>
+
+    <!-- Street-level part of an address, e.g., 18th Street, Unit 3 [CHAR LIMIT=30] -->
+    <string name="i18n_address_line1_label">Street Address</string>
+
+    <!-- Postal Code. Values are frequently alphanumeric. [CHAR LIMIT=30] -->
+    <string name="i18n_postal_code_label">Postal Code</string>
+
+    <!-- Label to represent ZIP codes, used in countries like the US. [CHAR LIMIT=30] -->
+    <string name="i18n_zip_code_label">ZIP Code</string>
+
+    <!-- Administrative Area for Hong Kong (e.g., Kowloon) [CHAR LIMIT=30] -->
+    <string name="i18n_area">Area</string>
+
+    <!-- Administrative Area for the United Kingdom (e.g., Yorkshire) [CHAR LIMIT=30] -->
+    <string name="i18n_county_label">County</string>
+
+    <!-- Administrative Area, as used for countries like Nicaragua (e.g., Boaco)
+         [CHAR LIMIT=30] -->
+    <string name="i18n_department">Department</string>
+
+    <!-- Administrative Area for Korea (e.g., Gyeonggi-do or Busan-si) [CHAR LIMIT=30] -->
+    <string name="i18n_do_si">Do</string>
+
+    <!-- Administrative Area for United Arab Emirates (e.g., Abu Dhabi) [CHAR LIMIT=30] -->
+    <string name="i18n_emirate">Emirate</string>
+
+    <!-- Administrative Area for certain countries (e.g., Bahama's Cat Island) [CHAR LIMIT=30] -->
+    <string name="i18n_island">Island</string>
+
+    <!-- Administrative Area for certain countries (e.g., Andorra's Canillo) [CHAR LIMIT=30] -->
+    <string name="i18n_parish">Parish</string>
+
+    <!-- Administrative Area for Japan (e.g., Hokkaido) [CHAR LIMIT=30] -->
+    <string name="i18n_prefecture">Prefecture</string>
+
+    <!-- Administrative Area for certain countries (e.g., France's Champagne) [CHAR LIMIT=30] -->
+    <string name="i18n_province">Province</string>
+
+    <!-- Administrative Area for certain countries (e.g., US' California) [CHAR LIMIT=30] -->
+    <string name="i18n_state_label">State</string>
+
+    <!-- Message to be shown when a required field is empty [CHAR LIMIT=30] -->
+    <string name="i18n_missing_required_field">Required</string>
+
+    <!-- Message to be shown when the value entered by the user in a given field is invalid
+         [CHAR LIMIT=30] -->
+    <string name="invalid_entry">Invalid entry</string>
+
+    <!-- Message to be shown when a city or town entered by the user, such as
+         New York City, is invalid. [CHAR LIMIT=30] -->
+    <string name="invalid_locality_label">Invalid city</string>
+
+    <!-- Message to be shown when an area of a city which is entered by the user (a
+         neighbourhood/suburb), is invalid. Used for addresses in Korea and
+         China, or for districts of a country such as Nauru [CHAR LIMIT=30] -->
+    <string name="invalid_dependent_locality_label">Invalid district</string>
+
+    <!-- Message to be shown when an incorrect postal code is entered by the user. Postal codes
+         are used in countries like New Zealand. [CHAR LIMIT=30] -->
+    <string name="invalid_postal_code_label">Invalid postal code</string>
+
+    <!-- Message to be shown when an incorrect ZIP code is entered by the user.
+         ZIP codes are used in countries like the US. [CHAR LIMIT=30] -->
+    <string name="invalid_zip_code_label">Invalid ZIP code</string>
+
+    <!-- Message to be shown when the administrative area for Hong Kong (e.g., Kowloon)
+         is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_area">Invalid area</string>
+
+    <!-- Message to be shown when the administrative area (county) for the United Kingdom
+         is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_county_label">Invalid county</string>
+
+    <!-- Message to be shown when the administrative area (department) used for countries like
+         Nicaragua (e.g., Boaco) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_department">Invalid department</string>
+
+    <!-- Message to be shown when the administrative area for Korea (e.g., Gyeonggi-do or Busan-si)
+         is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_do_si">Invalid do</string>
+
+    <!-- Message to be shown when the administrative area (emirate) for United Arab Emirates
+         (e.g., Abu Dhabi) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_emirate">Invalid emirate</string>
+
+    <!-- Message to be shown when the administrative area (island) for certain countries
+         (e.g., Bahama) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_island">Invalid island</string>
+
+    <!-- Message to be shown when the administrative area (parish) for certain countries
+         (e.g., Andorra) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_parish">Invalid parish</string>
+
+    <!-- Message to be shown when the administrative area (prefecture) for Japan (e.g., Hokkaido)
+         is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_prefecture">Invalid prefecture</string>
+
+    <!-- Message to be shown when the administrative area (province) for certain countries
+         (e.g., France's Champagne) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_province">Invalid province</string>
+
+    <!-- Message to be shown when the administrative area (state) for certain countries
+         (e.g., the USA) is entered incorrectly by the user [CHAR LIMIT=30] -->
+    <string name="invalid_state_label">Invalid state</string>
+</resources>
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressData.java
new file mode 100644 (file)
index 0000000..a568b01
--- /dev/null
@@ -0,0 +1,394 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A simple data structure for international postal addresses.
+ *
+ * Addresses may seem simple, but even within the US there are many quirks (hyphenated street
+ * addresses, etc.), and internationally addresses vary a great deal. The most sane and complete in
+ * many ways is the OASIS "extensible Address Language", xAL, which is a published and documented
+ * XML schema:
+ *
+ * http://www.oasis-open.org/committees/ciq/download.shtml
+ *
+ * We have not represented all the fields, but the intent is that if you need to add something, you
+ * should follow the OASIS standard.
+ *
+ * An example address:
+ * <p>postalCountry: US</p>
+ * <p>addressLine1: 1098 Alta Ave</p>
+ * <p>addressLine2:</p>
+ * <p>adminstrativeArea: CA</p>
+ * <p>locality: Mountain View</p>
+ * <p>dependentLocality:</p>
+ * <p>postalCode: 94043</p>
+ * <p>sortingCode:</p>
+ * <p>organization: Google</p>
+ * <p>recipient: Chen-Kang Yang</p>
+ * <p>language code: en</p>
+ *
+ * Note that sub-administrative area is NOT used in Address Widget. Sub-administrative Area is
+ * second-level administrative subdivision of this country. For examples: US county, IT province, UK
+ * county. This level of geo information is not required to fill out address form, therefore is
+ * neglected.
+ *
+ * All values stored in this class are trimmed. Also, if you try to set a field with an empty string
+ * or a string consists of only spaces, it will not be set.
+ */
+public class AddressData {
+    // ISO 3166-1-alpha-2 country code (two letter codes, as used in DNS)
+    // For example, "US" for United States.
+    // (Note: Use "GB", not "UK", for Great Britain)
+    private final String mPostalCountry;
+
+    // street street, line 1
+    private final String mAddressLine1;
+
+    // street street, line 2
+    private final String mAddressLine2;
+
+    // Top-level administrative subdivision of this country.
+    // Examples: US state, IT region, UK constituent nation, JP prefecture.
+    private final String mAdministrativeArea;
+
+    // Locality. A fuzzy term, but it generally refers to
+    // the city/town portion of an address.  In regions of the world where
+    // localities are not well defined or do not fit into this structure well
+    // (for example, Japan and China), leave locality empty and use
+    // addressLine1.
+    // Examples: US city, IT comune, UK post town.
+    private final String mLocality;
+
+    // Dependent locality or sublocality.  Used for UK dependent localities,
+    // or neighborhoods or boroughs in other locations.  If trying to
+    // represent a UK double-dependent locality, include both the
+    // double-dependent locality and the dependent locality in this field,
+    // e.g. "Whaley, Langwith".
+    private final String mDependentLocality;
+
+    // Postal Code. values are frequently alphanumeric.
+    // Examples: "94043", "94043-1351", "SW1W", "SW1W 9TQ".
+    private final String mPostalCode;
+
+    // Sorting code - use is very country-specific.
+    // This corresponds to the SortingCode sub-element of the xAL
+    // PostalServiceElements element.
+    // Examples: FR CEDEX.
+    private final String mSortingCode;
+
+    // The firm or organization. This goes at a finer granularity than
+    // address lines in the address. Omit if not needed.
+    private final String mOrganization;
+
+    // The recipient. This goes at a finer granularity than address lines
+    // in the address. Not present in xAL. Omit if not needed.
+    private final String mRecipient;
+
+    // Language code of the address. Can be set to null. See its getter and setter
+    // for more information.
+    private final String mLanguageCode;
+
+    /**
+     * Use {@link Builder} to create instances.
+     */
+    private AddressData(Builder builder) {
+        mPostalCountry = builder.mValues.get(AddressField.COUNTRY);
+        mAdministrativeArea = builder.mValues.get(AddressField.ADMIN_AREA);
+        mLocality = builder.mValues.get(AddressField.LOCALITY);
+        mDependentLocality = builder.mValues.get(AddressField.DEPENDENT_LOCALITY);
+        mPostalCode = builder.mValues.get(AddressField.POSTAL_CODE);
+        mSortingCode = builder.mValues.get(AddressField.SORTING_CODE);
+        mOrganization = builder.mValues.get(AddressField.ORGANIZATION);
+        mRecipient = builder.mValues.get(AddressField.RECIPIENT);
+        mAddressLine1 = builder.mValues.get(AddressField.ADDRESS_LINE_1);
+        mAddressLine2 = builder.mValues.get(AddressField.ADDRESS_LINE_2);
+        mLanguageCode = builder.mLanguage;
+    }
+
+    /**
+     * Returns the postal country.
+     *
+     * <p>The returned value is not user-presentable. For example, {@code getPostalCountry()} may
+     * return {@code "GB"}, while addresses in Great Britain should be displayed using "UK".
+     */
+    public String getPostalCountry() {
+        return mPostalCountry;
+    }
+
+    public String getAddressLine1() {
+        return mAddressLine1;
+    }
+
+    public String getAddressLine2() {
+        return mAddressLine2;
+    }
+
+    /**
+     * Returns the top-level administrative subdivision of this country. Different postal countries
+     * use different names to refer to their administrative areas. For example, this is called
+     * "state" in the United States, "region" in Italy, "constituent nation" in Great Britain, or
+     * "prefecture" in Japan.
+     */
+    public String getAdministrativeArea() {
+        return mAdministrativeArea;
+    }
+
+    /**
+     * Returns the locality. The usage of this field varies by region, but it generally refers to
+     * the "city" or "town" of the address. Some regions do not use this field; their address lines
+     * are sufficient to locate an address within a sub-administrative area. For example, this is
+     * called "city" in the United States, "comune" in Italy, or "post town" in Great Britain.
+     */
+    public String getLocality() {
+        return mLocality;
+    }
+
+    /**
+     * Returns the dependent locality.
+     *
+     * <p>This is used for Great Britain dependent localities, or neighborhoods or boroughs in other
+     * locations.
+     *
+     * <p>In cases such as Great Britain, this field may contain a double-dependent locality, such
+     * as "Whaley, Langwith".
+     */
+    public String getDependentLocality() {
+        return mDependentLocality;
+    }
+
+    /**
+     * Returns the firm or organization.
+     */
+    public String getOrganization() {
+        return mOrganization;
+    }
+
+    /**
+     * Returns the recipient. Examples: "Jesse Wilson" or "Jesse Wilson c/o Apurva Mathad".
+     */
+    public String getRecipient() {
+        return mRecipient;
+    }
+
+    /**
+     * Returns the country-specific postal code. Examples: "94043", "94043-1351", "SW1W",
+     * "SW1W 9TQ".
+     */
+    public String getPostalCode() {
+        return mPostalCode;
+    }
+
+    /**
+     * Returns the country-specific sorting code. For example, the
+     * <a href="http://en.wikipedia.org/wiki/List_of_postal_codes_in_France"> French CEDEX</a>
+     */
+    public String getSortingCode() {
+        return mSortingCode;
+    }
+
+    public String getFieldValue(AddressField field) {
+        switch (field) {
+            case COUNTRY:
+                return mPostalCountry;
+            case ADMIN_AREA:
+                return mAdministrativeArea;
+            case LOCALITY:
+                return mLocality;
+            case DEPENDENT_LOCALITY:
+                return mDependentLocality;
+            case POSTAL_CODE:
+                return mPostalCode;
+            case SORTING_CODE:
+                return mSortingCode;
+            case ADDRESS_LINE_1:
+                return mAddressLine1;
+            case ADDRESS_LINE_2:
+                return mAddressLine2;
+            case ORGANIZATION:
+                return mOrganization;
+            case RECIPIENT:
+                return mRecipient;
+            default:
+                throw new IllegalArgumentException("unrecognized key: " + field);
+        }
+    }
+
+    /**
+     * Returns the language of the text of this address. Languages are used to guide how the address
+     * is <a href="http://en.wikipedia.org/wiki/Mailing_address_format_by_country"> formatted for
+     * display</a>. The same address may have different {@link AddressData} representations in
+     * different languages. For example, the French name of "New Mexico" is "Nouveau-Mexique".
+     */
+    public String getLanguageCode() {
+        return mLanguageCode;
+    }
+
+    /**
+     * Builder for AddressData
+     */
+    public static class Builder {
+
+        private final Map<AddressField, String> mValues;
+
+        private String mLanguage = null;
+
+        public Builder() {
+            mValues = new HashMap<AddressField, String>();
+        }
+
+        /**
+         * A constructor that sets address field with input data. Street fields will be normalized
+         * in the process. I.e., after copy, there will not be any empty street line in front of
+         * non-empty ones. For example, if input data's street line 1 is null but street line 2
+         * has a value, this method will copy street line 2's value and set it to street line 1.
+         */
+        public Builder(AddressData addr) {
+            mValues = new HashMap<AddressField, String>();
+            set(addr);
+        }
+
+        public Builder setCountry(String value) {
+            return set(AddressField.COUNTRY, value);
+        }
+
+        public Builder setAdminArea(String value) {
+            return set(AddressField.ADMIN_AREA, value);
+        }
+
+        public Builder setLocality(String value) {
+            return set(AddressField.LOCALITY, value);
+        }
+
+        public Builder setDependentLocality(String value) {
+            return set(AddressField.DEPENDENT_LOCALITY, value);
+        }
+
+        public Builder setPostalCode(String value) {
+            return set(AddressField.POSTAL_CODE, value);
+        }
+
+        public Builder setSortingCode(String value) {
+            return set(AddressField.SORTING_CODE, value);
+        }
+
+        /**
+         * Sets the language code.
+         *
+         * @param languageCode the language to use, or {@code null} for no specified language.
+         */
+        public Builder setLanguageCode(String languageCode) {
+            this.mLanguage = languageCode;
+            return this;
+        }
+
+        /**
+         * Sets address lines 1 and 2 (if necessary) from a string that may contain multiple lines.
+         *
+         * <p> Example: Input "  \n   \n1600 Amphitheatre Ave\n\nRoom 122" will set the following
+         * values:<br/> line 1: 1600 Amphitheatre Ave<br/> line 2: Room 122<br/> </p>
+         *
+         * @param value a street string
+         */
+        public Builder setAddress(String value) {
+            setAddressLine1(value);
+            return this;
+        }
+
+        /**
+         * Sets address by copying from input address data. Street fields will be normalized in the
+         * process. I.e., after copy, there will not be any empty street lines in front of non-empty
+         * ones. For example, if input data's street line 1 is null but street line 2 has a value,
+         * this method will copy street line 2's value and set it to street line 1.
+         */
+        public Builder set(AddressData data) {
+            mValues.clear();
+            for (AddressField addressField : AddressField.values()) {
+                if (addressField == AddressField.STREET_ADDRESS) {
+                    continue;  // Do nothing.
+                } else {
+                    set(addressField, data.getFieldValue(addressField));
+                }
+            }
+            normalizeAddresses();
+            setLanguageCode(data.getLanguageCode());
+            return this;
+        }
+
+        public Builder setAddressLine1(String value) {
+            return set(AddressField.ADDRESS_LINE_1, value);
+        }
+
+        public Builder setAddressLine2(String value) {
+            return set(AddressField.ADDRESS_LINE_2, value);
+        }
+
+        public Builder setOrganization(String value) {
+            return set(AddressField.ORGANIZATION, value);
+        }
+
+        public Builder setRecipient(String value) {
+            return set(AddressField.RECIPIENT, value);
+        }
+
+        /**
+         * Sets an address field with the specified value. If the value is empty (a null string,
+         * empty string, or a string that contains only spaces), the original value associated with
+         * the field will be removed.
+         */
+        public Builder set(AddressField field, String value) {
+            if (value == null || value.length() == 0) {
+                mValues.remove(field);
+            } else {
+                mValues.put(field, value.trim());
+            }
+            normalizeAddresses();
+            return this;
+        }
+
+        public AddressData build() {
+            return new AddressData(this);
+        }
+
+        /**
+         * Parses content of address line fields.
+         * If address_line_1 is empty, address_line_2 will be used to populate address_line_1 if
+         * possible. If address_line_1 contains a new line, content after the new line will be
+         * saved in address_line_2.
+         */
+        private void normalizeAddresses() {
+            String address1 = mValues.get(AddressField.ADDRESS_LINE_1);
+            String address2 = mValues.get(AddressField.ADDRESS_LINE_2);
+            if (address1 == null || address1.trim().length() == 0) {
+                address1 = address2;
+                address2 = null;
+            }
+            if (address1 != null) {
+                String[] addressLines = address1.split("\n");
+                if (addressLines.length > 1) {
+                    address1 = addressLines[0];
+                    address2 = addressLines[1];
+                }
+            }
+            mValues.put(AddressField.ADDRESS_LINE_1, address1);
+            mValues.put(AddressField.ADDRESS_LINE_2, address2);
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressDataKey.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressDataKey.java
new file mode 100644 (file)
index 0000000..33ffd74
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Enumerates all the data fields found in the JSON-format address property data that are used by
+ * the Android Address Input Widget.
+ */
+enum AddressDataKey {
+    /**
+     * Identifies the countries for which data is provided.
+     */
+    COUNTRIES,
+    /**
+     * The standard format string.  This identifies which fields can be used in the address, along
+     * with their order.  This also carries additional information for use in formatting the fields
+     * into multiple lines. This is also used to indicate which fields should _not_ be used for an
+     * address.
+     */
+    FMT,
+    /**
+     * The unique ID of the region, in the form of a path from parent IDs to the key.
+     */
+    ID,
+    /**
+     * The key of the region, unique to its parent. If there is an accepted abbreviation for this
+     * region, then the key will be set to this and name will be set to the local name for this
+     * region. If there is no accepted abbreviation, then this key will be the local name and there
+     * will be no local name specified. This value must be present.
+     */
+    KEY,
+    /**
+     * The language of this data, if known.
+     */
+    LANG,
+    /**
+     * The latin format string {@link #FMT} used when a country defines an alternative format for
+     * use with the latin script, such as in China.
+     */
+    LFMT,
+    /**
+     * Indicates which fields must be present in a valid address.
+     */
+    REQUIRE,
+    /**
+     * Indicates the name used for the admin areas for a particular region.
+     */
+    STATE_NAME_TYPE,
+    /**
+     * Encodes the {@link #KEY} value of all the children of this region.
+     */
+    SUB_KEYS,
+    /**
+     * Encodes the transliterated latin name value of all the children of this region, if the local
+     * names are not in latin script already.
+     */
+    SUB_LNAMES,
+    /**
+     * Indicates, for each child of this region, whether that child has additional children.
+     */
+    SUB_MORES,
+    /**
+     * Encodes the local name value of all the children of this region.
+     */
+    SUB_NAMES,
+    /**
+     * Encodes the {@link #ZIP} value for the subtree beneath this region.
+     */
+    XZIP,
+    /**
+     * Encodes the postal code pattern if at the country level, and the postal code prefix if at a
+     * level below country.
+     */
+    ZIP,
+    /**
+     * Indicates the name used for the postal code for a particular region.
+     */
+    ZIP_NAME_TYPE;
+
+    /**
+     * Returns a field based on its keyname (value in the JSON-format file), or null if no field
+     * matches.
+     */
+    static AddressDataKey get(String keyname) {
+        return ADDRESS_KEY_NAME_MAP.get(keyname.toLowerCase());
+    }
+
+    private static final Map<String, AddressDataKey> ADDRESS_KEY_NAME_MAP =
+        new HashMap<String, AddressDataKey>();
+
+    static {
+        // Populates the map of enums against their lower-cased string values for easy look-up.
+        for (AddressDataKey field : values()) {
+            ADDRESS_KEY_NAME_MAP.put(field.toString().toLowerCase(), field);
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressField.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressField.java
new file mode 100644 (file)
index 0000000..07f458c
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Defines the character codes used in the metadata to specify the types of fields used in address
+ * formatting. Note that the metadata also has a character for newlines, which is not defined here.
+ */
+public enum AddressField {
+    ADMIN_AREA('S', "state"),
+    LOCALITY('C', "city"),
+    RECIPIENT('N', "name"),
+    ORGANIZATION('O', "organization"),
+    ADDRESS_LINE_1('1', "street1"),
+    ADDRESS_LINE_2('2', "street2"),
+    DEPENDENT_LOCALITY('D'),
+    POSTAL_CODE('Z'),
+    SORTING_CODE('X'),
+
+    // TODO: Remove STREET_ADDRESS and use ADDRESS_LINE_1 and ADDRESS_LINE_2
+    // instead. This will involve updating the metadata to specify '1' and '2' instead
+    // of 'A'.
+    // Deprecated.
+    STREET_ADDRESS('A'),
+
+    COUNTRY('R');
+
+    private static final Map<Character, AddressField> FIELD_MAPPING
+            = new HashMap<Character, AddressField>();
+
+    static {
+        for (AddressField value : values()) {
+            FIELD_MAPPING.put(value.getChar(), value);
+        }
+    }
+
+    private final char mField;
+
+    private final String mAttributeName;
+
+    private AddressField(char field, String attributeName) {
+        mField = field;
+        mAttributeName = attributeName;
+    }
+
+    private AddressField(char field) {
+        this(field, null);
+    }
+
+    /**
+     * Gets the corresponding AddressField for the character code. Returns null if the character is
+     * not recognized.
+     */
+    static AddressField of(char field) {
+        return FIELD_MAPPING.get(field);
+    }
+
+    /**
+     * Gets attribute name. Attribute names are used as keys to JSON address data returned from the
+     * server. Returns null if the field does not have a corresponding attribute name.
+     *
+     * Note: Not all address fields have attribute names. Fields like postal code, country, sorting
+     * code, or street address do not have attribute names.
+     */
+    String getAttributeName() {
+        return mAttributeName;
+    }
+
+    /**
+     * Gets the field's identification character, as used in the metadata.
+     *
+     * @return identification char.
+     */
+    char getChar() {
+        return mField;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblemType.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblemType.java
new file mode 100644 (file)
index 0000000..4cab705
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ * Enumerates problems that default address verification can report.
+ */
+public enum AddressProblemType {
+
+    /**
+     * The field is not null and not whitespace, and the field should not be used for this country.
+     *
+     * <p>For example, in the U.S. the SORTING_CODE field is unused, so its presence is an error.
+     */
+    USING_UNUSED_FIELD,
+
+    /**
+     * The field is null or whitespace, and the field is required.
+     *
+     * <p>For example, in the U.S. ADMIN_AREA is a required field.
+     */
+    MISSING_REQUIRED_FIELD,
+
+    /**
+     * A list of values for the field is defined and the value does not occur in the list. Applies
+     * to hierarchical elements like REGION, ADMIN_AREA, LOCALITY, and DEPENDENT_LOCALITY.
+     *
+     * <p>For example, in the U.S. the only valid values for ADMIN_AREA are the two-letter state
+     * codes.
+     */
+    UNKNOWN_VALUE,
+
+    /**
+     * A format for the field is defined and the value does not match. This is used to match
+     * POSTAL_CODE against the the format pattern generally.
+     *
+     * <p>For example, in the U.S. postal codes are five digits with an optional hyphen followed by
+     * four digits.
+     */
+    UNRECOGNIZED_FORMAT,
+
+    /**
+     * A pattern for the field is defined and the value does not match. This is used to match
+     * POSTAL_CODE against a regular expression.
+     *
+     * <p>For example, in the U.S. postal codes in the state of California start with '9'.
+     */
+    MISMATCHING_VALUE;
+
+    /**
+     * Returns a unique string identifying this problem (for use in a message catalog).
+     */
+    public String keyname() {
+        return name().toLowerCase();
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblems.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressProblems.java
new file mode 100644 (file)
index 0000000..9371140
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This structure keeps track of any errors found when validating the AddressData.
+ */
+public class AddressProblems {
+
+    private Map<AddressField, AddressProblemType> mProblems =
+        new HashMap<AddressField, AddressProblemType>();
+
+    /**
+     * Only one address problem type is saved per addressField. Address field as used here refers to
+     * the different data parts in the AddressData class.
+     */
+    void add(AddressField addressField, AddressProblemType problem) {
+        mProblems.put(addressField, problem);
+    }
+
+    /**
+     * Returns true if no problems have been added.
+     */
+    public boolean isEmpty() {
+        return mProblems.isEmpty();
+    }
+
+    @Override
+    public String toString() {
+        return mProblems.toString();
+    }
+
+    public void clear() {
+        mProblems.clear();
+    }
+
+    /**
+     * Returns null if no problems exists.
+     */
+    public AddressProblemType getProblem(AddressField addressField) {
+        return mProblems.get(addressField);
+    }
+
+    /**
+     * This will return an empty map if there are no problems.
+     */
+    public Map<AddressField, AddressProblemType> getProblems() {
+        return mProblems;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressUIComponent.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressUIComponent.java
new file mode 100644 (file)
index 0000000..384ff10
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Spinner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Represents a component in the address widget UI. It could be either a text box (when there is no
+ * candidate) or a spinner.
+ */
+class AddressUIComponent {
+    // The label for the UI component
+    private String mFieldName;
+
+    // The type of the UI component
+    private UIComponent mUiType;
+
+    // The list of elements in the UI component
+    private List<RegionData> mCandidatesList = new ArrayList<RegionData>();
+
+    // The id of this UI component
+    private AddressField mId;
+
+    // The id of the parent UI component. When the parent UI component is updated, this UI
+    // component should be updated.
+    private AddressField mParentId;
+
+    // The View representing the UI component
+    private View mView;
+
+    /**
+     * Type of UI component. There are only EDIT (text-box) and SPINNER (drop-down) components.
+     */
+    enum UIComponent {
+        EDIT, SPINNER,
+    }
+
+    AddressUIComponent(AddressField id) {
+        mId = id;
+        // By default, an AddressUIComponent doesn't depend on anything else.
+        mParentId = null;
+        mUiType = UIComponent.EDIT;
+    }
+
+    /**
+     * Initializes the candidatesList, and set the uiType and parentId.
+     * @param candidatesList
+     */
+    void initializeCandidatesList(List<RegionData> candidatesList) {
+        mCandidatesList = candidatesList;
+        if (candidatesList.size() > 1) {
+            mUiType = UIComponent.SPINNER;
+            switch (mId) {
+                case DEPENDENT_LOCALITY:
+                    mParentId = AddressField.LOCALITY;
+                    break;
+                case LOCALITY:
+                    mParentId = AddressField.ADMIN_AREA;
+                    break;
+                case ADMIN_AREA:
+                    mParentId = AddressField.COUNTRY;
+                    break;
+                default:
+                    // Ignore.
+            }
+        }
+    }
+
+    /**
+     * Gets the value entered in the UI component.
+     */
+    String getValue() {
+        if (mView == null) {
+            return (mCandidatesList.size() == 0) ? "" : mCandidatesList.get(0).getDisplayName();
+        }
+        switch (mUiType) {
+            case SPINNER:
+                Object selectedItem = ((Spinner) mView).getSelectedItem();
+                if (selectedItem == null) {
+                    return "";
+                }
+                return selectedItem.toString();
+            case EDIT:
+                return ((EditText) mView).getText().toString();
+            default:
+                return "";
+        }
+    }
+
+    String getFieldName() {
+        return mFieldName;
+    }
+
+    void setFieldName(String fieldName) {
+        mFieldName = fieldName;
+    }
+
+    UIComponent getUIType() {
+        return mUiType;
+    }
+
+    void setUIType(UIComponent uiType) {
+        mUiType = uiType;
+    }
+
+    List<RegionData> getCandidatesList() {
+        return mCandidatesList;
+    }
+
+    void setCandidatesList(List<RegionData> candidatesList) {
+        mCandidatesList = candidatesList;
+    }
+
+    AddressField getId() {
+        return mId;
+    }
+
+    void setId(AddressField id) {
+        mId = id;
+    }
+
+    AddressField getParentId() {
+        return mParentId;
+    }
+
+    void setParentId(AddressField parentId) {
+        mParentId = parentId;
+    }
+
+    void setView(View view) {
+        mView = view;
+    }
+
+    View getView() {
+        return mView;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationData.java
new file mode 100644 (file)
index 0000000..58f4366
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Wraps a Map of address property data to provide the AddressVerificationData API.
+ */
+class AddressVerificationData implements DataSource {
+
+    private final Map<String, String> mPropertiesMap;
+
+    private static final Pattern KEY_VALUES_PATTERN = Pattern.compile("\"([^\"]+)\":\"([^\"]*)\"");
+
+    private static final Pattern SEPARATOR_PATTERN = Pattern.compile("\",\"");
+
+    /**
+     * Constructs from a map of address property data.  This keeps a reference to the map.  This
+     * does not mutate the map. The map should not be mutated subsequent to this call.
+     */
+    AddressVerificationData(Map<String, String> propertiesMap) {
+        mPropertiesMap = propertiesMap;
+    }
+
+    @Override
+    public AddressVerificationNodeData get(String key) {
+        String json = mPropertiesMap.get(key);
+        if (json != null && isValidKey(key)) {
+            return createNodeData(json);
+        }
+        return null;
+    }
+
+    /**
+     * Returns a set of the keys for which verification data is provided.  The returned set is
+     * immutable.
+     */
+    Set<String> keys() {
+        Set<String> result = new HashSet<String>();
+        for (String key : mPropertiesMap.keySet()) {
+            if (isValidKey(key)) {
+                result.add(key);
+            }
+        }
+        return Collections.unmodifiableSet(result);
+    }
+
+    /**
+     * We can be initialized with the full set of address information, but validation only uses
+     * info prefixed with "data" (in particular, no info prefixed with "examples").
+     */
+    private boolean isValidKey(String key) {
+        return key.startsWith("data");
+    }
+
+    /**
+     * Returns the contents of the JSON-format string as a map.
+     */
+    AddressVerificationNodeData createNodeData(String json) {
+        // Remove leading and trailing { and }.
+        json = json.substring(1, json.length() - 1);
+        Map<AddressDataKey, String> map =
+                new EnumMap<AddressDataKey, String>(AddressDataKey.class);
+
+        // our objects are very simple so we parse manually
+        // - no double quotes within strings
+        // - no extra spaces
+        // can't use split "," since some data has commas in it.
+        Matcher sm = SEPARATOR_PATTERN.matcher(json);
+        int pos = 0;
+        while (pos < json.length()) {
+            String pair;
+            if (sm.find()) {
+                pair = json.substring(pos, sm.start() + 1);
+                pos = sm.start() + 2;
+            } else {
+                pair = json.substring(pos);
+                pos = json.length();
+            }
+
+            Matcher m = KEY_VALUES_PATTERN.matcher(pair);
+            if (m.matches()) {
+                String value = m.group(2);
+
+                // Remove escaped backslashes.
+                // Java regex doesn't handle a replacement String consisting of
+                // a single backslash, and treats a replacement String consisting of
+                // two backslashes as two backslashes instead of one.  So there's
+                // no way to use regex to replace a match with a single backslash,
+                // apparently.
+                if (value.length() > 0) {
+                    char[] linechars = m.group(2).toCharArray();
+                    int w = 1;
+                    for (int r = w; r < linechars.length; ++r) {
+                        char c = linechars[r];
+                        if (c == '\\' && linechars[w - 1] == '\\') {
+                            // don't increment w;
+                            continue;
+                        }
+                        linechars[w++] = c;
+                    }
+                    value = new String(linechars, 0, w);
+                }
+
+                AddressDataKey df = AddressDataKey.get(m.group(1));
+                if (df == null) {
+                    // Skip this data - it isn't used in the Android version.
+                } else {
+                    map.put(df, value);
+                }
+            } else {
+                // This is a runtime data sanity check.  The data should be
+                // checked when the data is built.  The JSON data string should
+                // be parsable into string pairs using SEP_PAT.
+                throw new RuntimeException("could not match '" + pair + "' in '" + json + "'");
+            }
+        }
+
+        return new AddressVerificationNodeData(map);
+    }
+
+    @Override
+    public AddressVerificationNodeData getDefaultData(String key) {
+        // gets country key
+        if (key.split("/").length > 1) {
+            String[] parts = key.split("/");
+            key = parts[0] + "/" + parts[1];
+        }
+
+        AddressVerificationNodeData data = get(key);
+        if (data == null) {
+            throw new RuntimeException("failed to get default data with key " + key);
+        }
+        return data;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationNodeData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressVerificationNodeData.java
new file mode 100644 (file)
index 0000000..bb291d9
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * A map of {@link AddressDataKey}s to JSON strings. Provides data for a single node in the address
+ * data hierarchy (for example, "data/US/CA"). Key is an AddressDataKey and the value is the raw
+ * string representing that data. This is either a single string, or an array of strings represented
+ * as a single string using '~' to separate the elements of the array, depending on the
+ * AddressDataKey.
+ */
+public class AddressVerificationNodeData {
+
+    private final Map<AddressDataKey, String> mMap;
+
+    public AddressVerificationNodeData(Map<AddressDataKey, String> map) {
+        Util.checkNotNull("Cannot construct StandardNodeData with null map");
+        mMap = map;
+    }
+
+    /**
+     * Iterates through the map.
+     */
+    public Iterator<AddressDataKey> iterator() {
+        return mMap.keySet().iterator();
+    }
+
+    public boolean containsKey(AddressDataKey key) {
+        return mMap.containsKey(key);
+    }
+
+    /**
+     * Gets the value for a particular key in the map.
+     */
+    public String get(AddressDataKey key) {
+        return mMap.get(key);
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressWidget.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/AddressWidget.java
new file mode 100644 (file)
index 0000000..161cf9d
--- /dev/null
@@ -0,0 +1,729 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.os.Handler;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.LinearLayout.LayoutParams;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import com.android.i18n.addressinput.AddressUIComponent.UIComponent;
+import com.android.i18n.addressinput.LookupKey.KeyType;
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import java.util.ArrayList;
+import java.text.Collator;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Address widget that lays out address fields, validate and format addresses according to local
+ * customs.
+ */
+public class AddressWidget implements AdapterView.OnItemSelectedListener {
+    private Context mContext;
+
+    private ViewGroup mRootView;
+
+    private LayoutInflater mInflater;
+
+    private CacheData mCacheData;
+
+    // A map for all address fields except for country.
+    private final EnumMap<AddressField, AddressUIComponent> mInputWidgets =
+        new EnumMap<AddressField, AddressUIComponent>(AddressField.class);
+
+    private FormController mFormController;
+
+    private FormatInterpreter mFormatInterpreter;
+
+    private FormOptions mFormOptions;
+
+    private StandardAddressVerifier mVerifier;
+
+    private ProgressDialog mProgressDialog;
+
+    private String mCurrentRegion;
+
+    // The current language the widget use in BCP47 format. It differs from the default locale of
+    // the phone in that it contains information on the script to use.
+    private String mWidgetLocale;
+
+    private ScriptType mScript;
+
+    // The appropriate label that should be applied to the admin area field of the current country.
+    // Examples include "state", "province", "emirate", etc.
+    private String mAdminLabel;
+
+    private static final Map<String, Integer> ADMIN_LABELS;
+    private static final Map<String, Integer> ADMIN_ERROR_MESSAGES;
+
+    private static final FormOptions SHOW_ALL_FIELDS = new FormOptions.Builder().build();
+
+    // The appropriate label that should be applied to the zip code field of the current country.
+    private enum ZipLabel {
+        ZIP,
+        POSTAL
+    }
+
+    private ZipLabel mZipLabel;
+
+    static {
+        Map<String, Integer> adminLabelMap = new HashMap<String, Integer>(15);
+        adminLabelMap.put("area", R.string.i18n_area);
+        adminLabelMap.put("county", R.string.i18n_county_label);
+        adminLabelMap.put("department", R.string.i18n_department);
+        adminLabelMap.put("district", R.string.i18n_dependent_locality_label);
+        adminLabelMap.put("do_si", R.string.i18n_do_si);
+        adminLabelMap.put("emirate", R.string.i18n_emirate);
+        adminLabelMap.put("island", R.string.i18n_island);
+        adminLabelMap.put("parish", R.string.i18n_parish);
+        adminLabelMap.put("prefecture", R.string.i18n_prefecture);
+        adminLabelMap.put("province", R.string.i18n_province);
+        adminLabelMap.put("state", R.string.i18n_state_label);
+        ADMIN_LABELS = Collections.unmodifiableMap(adminLabelMap);
+
+        Map<String, Integer> adminErrorMap = new HashMap<String, Integer>(15);
+        adminErrorMap.put("area", R.string.invalid_area);
+        adminErrorMap.put("county", R.string.invalid_county_label);
+        adminErrorMap.put("department", R.string.invalid_department);
+        adminErrorMap.put("district", R.string.invalid_dependent_locality_label);
+        adminErrorMap.put("do_si", R.string.invalid_do_si);
+        adminErrorMap.put("emirate", R.string.invalid_emirate);
+        adminErrorMap.put("island", R.string.invalid_island);
+        adminErrorMap.put("parish", R.string.invalid_parish);
+        adminErrorMap.put("prefecture", R.string.invalid_prefecture);
+        adminErrorMap.put("province", R.string.invalid_province);
+        adminErrorMap.put("state", R.string.invalid_state_label);
+        ADMIN_ERROR_MESSAGES = Collections.unmodifiableMap(adminErrorMap);
+    }
+
+    // Need handler for callbacks to the UI thread
+    final Handler mHandler = new Handler();
+
+    final Runnable mUpdateMultipleFields = new Runnable() {
+        @Override
+        public void run() {
+            updateFields();
+        }
+    };
+
+    private class UpdateRunnable implements Runnable {
+        private AddressField myId;
+
+        public UpdateRunnable(AddressField id) {
+            myId = id;
+        }
+
+        @Override
+        public void run() {
+            updateInputWidget(myId);
+        }
+    }
+
+    private static class AddressSpinnerInfo {
+        private Spinner mView;
+
+        private AddressField mId;
+
+        private AddressField mParentId;
+
+        private ArrayAdapter<String> mAdapter;
+
+        private List<RegionData> mCurrentRegions;
+
+        public AddressSpinnerInfo(Spinner view, AddressField id, AddressField parentId) {
+            mView = view;
+            mId = id;
+            mParentId = parentId;
+        }
+
+        // Initializes the adapter that manages the Spinner.
+        public void initAdapter(Context context, int textViewId, int dropDownId) {
+            mAdapter = new ArrayAdapter<String>(context, textViewId);
+            mAdapter.setDropDownViewResource(dropDownId);
+        }
+
+        public void setSpinnerList(List<RegionData> list, String defaultKey) {
+            mCurrentRegions = list;
+            mAdapter.clear();
+            for (RegionData item : list) {
+                mAdapter.add(item.getDisplayName());
+            }
+            mAdapter.sort(Collator.getInstance(Locale.getDefault()));
+            if (defaultKey.length() == 0) {
+                mView.setSelection(0);
+            } else {
+                int position = mAdapter.getPosition(defaultKey);
+                mView.setSelection(position);
+            }
+        }
+
+        // Returns the region key of the currently selected region in the Spinner.
+        public String getRegionCode(int position) {
+            if (mAdapter.getCount() <= position) {
+                return "";
+            }
+            String value = mAdapter.getItem(position);
+            return getRegionDataKeyForValue(value);
+        }
+
+        // Returns the region key for the region value.
+        public String getRegionDataKeyForValue(String value) {
+            for (RegionData data : mCurrentRegions) {
+                if (data.getDisplayName().endsWith(value)) {
+                    return data.getKey();
+                }
+            }
+            return "";
+        }
+    }
+
+    private ArrayList<AddressSpinnerInfo> mSpinners = new ArrayList<AddressSpinnerInfo>();
+
+    private void createView(ViewGroup rootView, AddressUIComponent field, String defaultKey,
+            boolean readOnly) {
+        @SuppressWarnings("deprecation")  // FILL_PARENT renamed MATCH_PARENT in API Level 8.
+        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
+                LayoutParams.WRAP_CONTENT);
+        String fieldText = field.getFieldName();
+
+        if (fieldText.length() > 0) {
+            TextView textView = (TextView) mInflater.inflate(R.layout.address_textview, rootView,
+                    false);
+            rootView.addView(textView, lp);
+            textView.setText(fieldText);
+        }
+        if (field.getUIType().equals(UIComponent.EDIT)) {
+            View view = mInflater.inflate(R.layout.address_edittext, rootView, false);
+            field.setView(view);
+            EditText editText = (EditText) view;
+            editText.setEnabled(!readOnly);
+            rootView.addView(editText, lp);
+        } else if (field.getUIType().equals(UIComponent.SPINNER)) {
+            View view = mInflater.inflate(R.layout.address_spinner, rootView, false);
+            field.setView(view);
+            Spinner spinner = (Spinner) view;
+            rootView.addView(spinner, lp);
+            AddressSpinnerInfo spinnerInfo =
+                new AddressSpinnerInfo(spinner, field.getId(), field.getParentId());
+            spinnerInfo.initAdapter(mContext, android.R.layout.simple_spinner_item,
+                    android.R.layout.simple_spinner_dropdown_item);
+            spinner.setAdapter(spinnerInfo.mAdapter);
+            spinnerInfo.setSpinnerList(field.getCandidatesList(), defaultKey);
+
+            if (fieldText.length() > 0) {
+                spinner.setPrompt(fieldText);
+            }
+            spinner.setOnItemSelectedListener(this);
+            mSpinners.add(spinnerInfo);
+        }
+    }
+
+    /**
+     *  Associates each field with its corresponding AddressUIComponent.
+     */
+    private void buildFieldWidgets() {
+        AddressData data = new AddressData.Builder().setCountry(mCurrentRegion).build();
+        LookupKey key = new LookupKey.Builder(LookupKey.KeyType.DATA).setAddressData(data).build();
+        AddressVerificationNodeData countryNode =
+            (new ClientData(mCacheData)).getDefaultData(key.toString());
+
+        // Set up AddressField.ADMIN_AREA
+        AddressUIComponent adminAreaUI = new AddressUIComponent(AddressField.ADMIN_AREA);
+        adminAreaUI.setFieldName(getAdminAreaFieldName(countryNode));
+        mInputWidgets.put(AddressField.ADMIN_AREA, adminAreaUI);
+
+        // Set up AddressField.LOCALITY
+        AddressUIComponent localityUI = new AddressUIComponent(AddressField.LOCALITY);
+        localityUI.setFieldName(mContext.getString(R.string.i18n_locality_label));
+        mInputWidgets.put(AddressField.LOCALITY, localityUI);
+
+        // Set up AddressField.DEPENDENT_LOCALITY
+        AddressUIComponent subLocalityUI = new AddressUIComponent(AddressField.DEPENDENT_LOCALITY);
+        subLocalityUI.setFieldName(mContext.getString(R.string.i18n_dependent_locality_label));
+        mInputWidgets.put(AddressField.DEPENDENT_LOCALITY, subLocalityUI);
+
+        // Set up AddressField.ADDRESS_LINE_1
+        AddressUIComponent addressLine1UI = new AddressUIComponent(AddressField.ADDRESS_LINE_1);
+        addressLine1UI.setFieldName(mContext.getString(R.string.i18n_address_line1_label));
+        mInputWidgets.put(AddressField.ADDRESS_LINE_1, addressLine1UI);
+
+        // Set up AddressField.ADDRESS_LINE_2
+        AddressUIComponent addressLine2UI = new AddressUIComponent(AddressField.ADDRESS_LINE_2);
+        addressLine2UI.setFieldName("");
+        mInputWidgets.put(AddressField.ADDRESS_LINE_2, addressLine2UI);
+
+        // Set up AddressField.ORGANIZATION
+        AddressUIComponent organizationUI = new AddressUIComponent(AddressField.ORGANIZATION);
+        organizationUI.setFieldName(mContext.getString(R.string.i18n_organization_label));
+        mInputWidgets.put(AddressField.ORGANIZATION, organizationUI);
+
+        // Set up AddressField.RECIPIENT
+        AddressUIComponent recipientUI = new AddressUIComponent(AddressField.RECIPIENT);
+        recipientUI.setFieldName(mContext.getString(R.string.i18n_recipient_label));
+        mInputWidgets.put(AddressField.RECIPIENT, recipientUI);
+
+        // Set up AddressField.POSTAL_CODE
+        AddressUIComponent postalCodeUI = new AddressUIComponent(AddressField.POSTAL_CODE);
+        postalCodeUI.setFieldName(getZipFieldName(countryNode));
+        mInputWidgets.put(AddressField.POSTAL_CODE, postalCodeUI);
+
+        // Set up AddressField.SORTING_CODE
+        AddressUIComponent sortingCodeUI = new AddressUIComponent(AddressField.SORTING_CODE);
+        sortingCodeUI.setFieldName("CEDEX");
+        mInputWidgets.put(AddressField.SORTING_CODE, sortingCodeUI);
+    }
+
+    private void initializeDropDowns() {
+        AddressUIComponent adminAreaUI = mInputWidgets.get(AddressField.ADMIN_AREA);
+        List<RegionData> adminAreaList = getRegionData(AddressField.COUNTRY);
+        adminAreaUI.initializeCandidatesList(adminAreaList);
+
+        AddressUIComponent localityUI = mInputWidgets.get(AddressField.LOCALITY);
+        List<RegionData> localityList = getRegionData(AddressField.ADMIN_AREA);
+        localityUI.initializeCandidatesList(localityList);
+    }
+
+    // Zip code is called postal code in some countries. This method returns the appropriate name
+    // for the given countryNode.
+    private String getZipFieldName(AddressVerificationNodeData countryNode) {
+        String zipName;
+        String zipType = countryNode.get(AddressDataKey.ZIP_NAME_TYPE);
+        if (zipType == null) {
+            mZipLabel = ZipLabel.POSTAL;
+            zipName = mContext.getString(R.string.i18n_postal_code_label);
+        } else {
+            mZipLabel = ZipLabel.ZIP;
+            zipName = mContext.getString(R.string.i18n_zip_code_label);
+        }
+        return zipName;
+    }
+
+    private String getAdminAreaFieldName(AddressVerificationNodeData countryNode) {
+        String adminLabelType = countryNode.get(AddressDataKey.STATE_NAME_TYPE);
+        mAdminLabel = adminLabelType;
+        Integer result = ADMIN_LABELS.get(adminLabelType);
+        if (result == null) {
+            // Fallback to province.
+            result = R.string.i18n_province;
+        }
+        return mContext.getString(result);
+    }
+
+    private void buildCountryListBox() {
+        // Set up AddressField.COUNTRY
+        AddressUIComponent countryUI = new AddressUIComponent(AddressField.COUNTRY);
+        countryUI.setFieldName(mContext.getString(R.string.i18n_country_label));
+        ArrayList<RegionData> countries = new ArrayList<RegionData>();
+        for (RegionData regionData : mFormController.getRegionData(new LookupKey.Builder(
+                KeyType.DATA).build())) {
+            String regionKey = regionData.getKey();
+            // ZZ represents an unknown region code.
+            if (!regionKey.equals("ZZ")) {
+                String localCountryName = getLocalCountryName(regionKey);
+                RegionData country = new RegionData.Builder().setKey(regionKey).setName(
+                        localCountryName).build();
+                countries.add(country);
+            }
+        }
+        countryUI.initializeCandidatesList(countries);
+        mInputWidgets.put(AddressField.COUNTRY, countryUI);
+    }
+
+    private String getLocalCountryName(String regionCode) {
+        return (new Locale("", regionCode)).getDisplayCountry(Locale.getDefault());
+    }
+
+    private AddressSpinnerInfo findSpinnerByView(View view) {
+        for (AddressSpinnerInfo spinnerInfo : mSpinners) {
+            if (spinnerInfo.mView == view) {
+                return spinnerInfo;
+            }
+        }
+        return null;
+    }
+
+    private void updateFields() {
+        removePreviousViews();
+        buildFieldWidgets();
+        initializeDropDowns();
+        layoutAddressFields();
+    }
+
+    private void removePreviousViews() {
+        if (mRootView == null) {
+            return;
+        }
+        int childCount = mRootView.getChildCount();
+        if (mFormOptions.isHidden(AddressField.COUNTRY)) {
+            if (childCount > 0) {
+                mRootView.removeAllViews();
+            }
+        } else if (childCount > 2) {
+            // Keep the TextView and Spinner for Country and remove everything else.
+            mRootView.removeViews(2, mRootView.getChildCount() - 2);
+        }
+    }
+
+    private void layoutAddressFields() {
+        for (AddressField field : mFormatInterpreter.getAddressFieldOrder(mScript,
+                mCurrentRegion)) {
+            if (!mFormOptions.isHidden(field)) {
+              createView(mRootView, mInputWidgets.get(field), "", mFormOptions.isReadonly(field));
+            }
+        }
+    }
+
+    private void updateChildNodes(AdapterView<?> parent, int position) {
+        AddressSpinnerInfo spinnerInfo = findSpinnerByView(parent);
+        if (spinnerInfo == null) {
+            return;
+        }
+
+        // Find all the child spinners, if any, that depend on this one.
+        final AddressField myId = spinnerInfo.mId;
+        if (myId != AddressField.COUNTRY && myId != AddressField.ADMIN_AREA
+                && myId != AddressField.LOCALITY) {
+            // Only a change in the three AddressFields above will trigger a change in other
+            // AddressFields. Therefore, for all other AddressFields, we return immediately.
+            return;
+        }
+
+        String regionCode = spinnerInfo.getRegionCode(position);
+        if (myId == AddressField.COUNTRY) {
+            updateWidgetOnCountryChange(regionCode);
+            return;
+        }
+
+        mFormController.requestDataForAddress(getAddressData(), new DataLoadListener() {
+            @Override
+            public void dataLoadingBegin(){
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                Runnable updateChild = new UpdateRunnable(myId);
+                mHandler.post(updateChild);
+            }
+        });
+    }
+
+    public void updateWidgetOnCountryChange(String regionCode) {
+        if (mCurrentRegion.equalsIgnoreCase(regionCode)) {
+            return;
+        }
+        mCurrentRegion = regionCode;
+        mFormController.setCurrentCountry(mCurrentRegion);
+        renderForm();
+    }
+
+    private void updateInputWidget(AddressField myId) {
+        for (AddressSpinnerInfo child : mSpinners) {
+            if (child.mParentId == myId) {
+                List<RegionData> candidates = getRegionData(child.mParentId);
+                child.setSpinnerList(candidates, "");
+            }
+        }
+    }
+
+    public void renderForm() {
+        setWidgetLocaleAndScript();
+        AddressData data = new AddressData.Builder().setCountry(mCurrentRegion)
+                .setLanguageCode(mWidgetLocale).build();
+        mFormController.requestDataForAddress(data, new DataLoadListener() {
+            @Override
+            public void dataLoadingBegin() {
+                mProgressDialog = ProgressDialog.show(mContext, "",
+                        mContext.getString(R.string.address_data_loading));
+                Log.d(this.toString(), "Progress dialog started.");
+            }
+            @Override
+            public void dataLoadingEnd() {
+                Log.d(this.toString(), "Data loading completed.");
+                mProgressDialog.dismiss();
+                Log.d(this.toString(), "Progress dialog stopped.");
+                mHandler.post(mUpdateMultipleFields);
+            }
+        });
+    }
+
+    private void setWidgetLocaleAndScript() {
+        mWidgetLocale = Util.getWidgetCompatibleLanguageCode(Locale.getDefault(), mCurrentRegion);
+        mFormController.setLanguageCode(mWidgetLocale);
+        mScript = Util.isExplicitLatinScript(mWidgetLocale)
+                ? ScriptType.LATIN
+                : ScriptType.LOCAL;
+    }
+
+    private List<RegionData> getRegionData(AddressField parentField) {
+        AddressData address = getAddressData();
+
+        // Removes language code from address if it is default. This address is used to build
+        // lookup key, which neglects default language. For example, instead of "data/US--en/CA",
+        // the right lookup key is "data/US/CA".
+        if (mFormController.isDefaultLanguage(address.getLanguageCode())) {
+            address = new AddressData.Builder(address).setLanguageCode(null).build();
+        }
+
+        LookupKey parentKey = mFormController.getDataKeyFor(address).getKeyForUpperLevelField(
+                parentField);
+        List<RegionData> candidates;
+        // Can't build a key with parent field, quit.
+        if (parentKey == null) {
+            Log.w(this.toString(), "Can't build key with parent field " + parentField + ". One of"
+                    + " the ancestor fields might be empty");
+
+            // Removes candidates that exist from previous settings. For example, data/US has a
+            // list of candidates AB, BC, CA, etc, that list should be cleaned up when user updates
+            // the address by changing country to Channel Islands.
+            candidates = new ArrayList<RegionData>(1);
+        } else {
+            candidates = mFormController.getRegionData(parentKey);
+        }
+        return candidates;
+    }
+
+    /**
+     * Creates an AddressWidget to be attached to rootView for the specific context.
+     */
+    public AddressWidget(Context context, ViewGroup rootView, FormOptions formOptions,
+            ClientCacheManager cacheManager) {
+        mCurrentRegion =
+            ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE))
+                    .getSimCountryIso().toUpperCase(Locale.US);
+        if (mCurrentRegion.length() == 0) {
+            mCurrentRegion = "US";
+        }
+        init(context, rootView, formOptions, cacheManager);
+        renderForm();
+    }
+
+    /**
+     * Creates an AddressWidget to be attached to rootView for the specific context, and fill out
+     * the address form with savedAddress.
+     */
+    public AddressWidget(Context context, ViewGroup rootView, FormOptions formOptions,
+            ClientCacheManager cacheManager, AddressData savedAddress) {
+        mCurrentRegion = savedAddress.getPostalCountry();
+        // Postal country must be 2 letter country code. Otherwise default to US.
+        if (mCurrentRegion == null || mCurrentRegion.length() != 2) {
+            mCurrentRegion = "US";
+        }
+        init(context, rootView, formOptions, cacheManager);
+        renderFormWithSavedAddress(savedAddress);
+    }
+
+    public void renderFormWithSavedAddress(AddressData savedAddress) {
+        setWidgetLocaleAndScript();
+        removePreviousViews();
+        buildFieldWidgets();
+        layoutAddressFields();
+        initializeFieldsWithAddress(savedAddress);
+    }
+
+    private void initializeFieldsWithAddress(AddressData savedAddress) {
+        for (AddressField field : mFormatInterpreter.getAddressFieldOrder(mScript,
+                mCurrentRegion)) {
+            String value = savedAddress.getFieldValue(field);
+            if (value == null) {
+                value = "";
+            }
+            AddressUIComponent uiComponent = mInputWidgets.get(field);
+            EditText view = (EditText) uiComponent.getView();
+            if (view != null) {
+               view.setText(value);
+            }
+        }
+    }
+
+    private void init(Context context, ViewGroup rootView, FormOptions formOptions,
+            ClientCacheManager cacheManager) {
+        mContext = context;
+        mRootView = rootView;
+        mFormOptions = formOptions;
+        mCacheData = new CacheData(cacheManager);
+        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mFormController =
+            new FormController(new ClientData(mCacheData),
+                               mWidgetLocale, mCurrentRegion);
+        mFormatInterpreter = new FormatInterpreter(mFormOptions);
+        mVerifier = new StandardAddressVerifier(
+                new FieldVerifier(new ClientData(mCacheData)));
+        if (!formOptions.isHidden(AddressField.COUNTRY)) {
+            buildCountryListBox();
+            createView(mRootView, mInputWidgets.get(AddressField.COUNTRY),
+                    getLocalCountryName(mCurrentRegion),
+                    formOptions.isReadonly(AddressField.COUNTRY));
+        }
+    }
+
+    /**
+     * Sets address data server URL. Input URL cannot be null.
+     *
+     * @param url The service URL.
+     */
+    public void setUrl(String url) {
+        mCacheData.setUrl(url);
+    }
+
+    /**
+     * Gets user input address in AddressData format.
+     */
+    public AddressData getAddressData() {
+        AddressData.Builder builder = new AddressData.Builder();
+        builder.setCountry(mCurrentRegion);
+        for (AddressField field : mFormatInterpreter.getAddressFieldOrder(mScript,
+                mCurrentRegion)) {
+            AddressUIComponent addressUIComponent = mInputWidgets.get(field);
+            if (addressUIComponent != null) {
+                String value = addressUIComponent.getValue();
+                if (addressUIComponent.getUIType() == UIComponent.SPINNER) {
+                     // For drop-downs, return the key of the region selected instead of the value.
+                     View view = getViewForField(field);
+                     AddressSpinnerInfo spinnerInfo = findSpinnerByView(view);
+                     if (spinnerInfo != null) {
+                         value = spinnerInfo.getRegionDataKeyForValue(value);
+                     }
+                }
+                builder.set(field, value);
+            }
+        }
+        builder.setLanguageCode(mWidgetLocale);
+        return builder.build();
+    }
+
+    /**
+     * Gets the formatted address.
+     *
+     * This method does not validate addresses. Also, it will "normalize" the result strings by
+     * removing redundant spaces and empty lines.
+     *
+     * @return the formatted address
+     */
+    public List<String> getEnvelopeAddress() {
+        return mFormatInterpreter.getEnvelopeAddress(getAddressData());
+    }
+
+    /**
+     * Gets the formatted address based on the AddressData passed in.
+     */
+    public List<String> getEnvelopeAddress(AddressData address) {
+        return mFormatInterpreter.getEnvelopeAddress(address);
+    }
+
+    /**
+     * Gets the formatted address based on the AddressData passed in with none of the relevant
+     * fields hidden.
+     */
+    public static List<String> getFullEnvelopeAddress(AddressData address) {
+        return new FormatInterpreter(SHOW_ALL_FIELDS).getEnvelopeAddress(address);
+    }
+
+    /**
+     * Get problems found in the address data entered by the user.
+     */
+    public AddressProblems getAddressProblems() {
+        AddressProblems problems = new AddressProblems();
+        AddressData addressData = getAddressData();
+        mVerifier.verify(addressData, problems);
+        return problems;
+    }
+
+    /**
+     * Displays an appropriate error message when the AddressField contains an invalid entry.
+     *
+     * @return the View object representing the AddressField.
+     */
+    public View displayErrorMessageForInvalidEntryIn(AddressField field) {
+        Log.d(this.toString(), "Display error message for the field: " + field.toString());
+        AddressUIComponent addressUIComponent = mInputWidgets.get(field);
+        if (addressUIComponent != null && addressUIComponent.getUIType() == UIComponent.EDIT) {
+            int errorMessageId = getErrorMessageIdForInvalidEntryIn(field);
+            EditText view = (EditText) addressUIComponent.getView();
+            view.setError(mContext.getString(errorMessageId));
+            return view;
+        }
+        return null;
+    }
+
+    private int getErrorMessageIdForInvalidEntryIn(AddressField field) {
+        switch (field) {
+            case ADMIN_AREA:
+                return ADMIN_ERROR_MESSAGES.get(mAdminLabel);
+            case LOCALITY:
+                return R.string.invalid_locality_label;
+            case DEPENDENT_LOCALITY:
+                return R.string.invalid_dependent_locality_label;
+            case POSTAL_CODE:
+                return (mZipLabel == ZipLabel.POSTAL
+                        ? R.string.invalid_postal_code_label
+                        : R.string.invalid_zip_code_label);
+            default:
+                return R.string.invalid_entry;
+        }
+    }
+
+    /**
+     * Clears all error messages in the UI.
+     */
+    public void clearErrorMessage() {
+        for (AddressField field : mFormatInterpreter.getAddressFieldOrder(mScript,
+                mCurrentRegion)) {
+            AddressUIComponent addressUIComponent = mInputWidgets.get(field);
+
+            if (addressUIComponent != null && addressUIComponent.getUIType() == UIComponent.EDIT) {
+                EditText view = (EditText) addressUIComponent.getView();
+                if (view != null) {
+                    view.setError(null);
+                }
+            }
+        }
+    }
+
+    public View getViewForField(AddressField field) {
+      AddressUIComponent component = mInputWidgets.get(field);
+      if (component == null) {
+        return null;
+      }
+      return component.getView();
+    }
+
+    @Override
+    public void onNothingSelected(AdapterView<?> arg0) {
+    }
+
+    @Override
+    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+        updateChildNodes(parent, position);
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/CacheData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/CacheData.java
new file mode 100644 (file)
index 0000000..4f98e6f
--- /dev/null
@@ -0,0 +1,418 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import static com.android.i18n.addressinput.Util.checkNotNull;
+
+import com.android.i18n.addressinput.JsonpRequestBuilder.AsyncCallback;
+
+import android.util.Log;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.EventListener;
+import java.util.HashMap;
+import java.util.HashSet;
+
+/**
+ * Cache for dynamic address data.
+ */
+public final class CacheData {
+
+    /**
+     * Used to identify the source of a log message.
+     */
+    private static final String TAG = "CacheData";
+
+    /**
+     * Time out value for the server to respond in millisecond.
+     */
+    private static final int TIMEOUT = 5000;
+
+    /**
+     * URL to get address data. You can also reset it by calling {@link #setUrl(String)}.
+     */
+    private String mServiceUrl;
+
+    /**
+     * Storage for all dynamically retrieved data.
+     */
+    private final JsoMap mCache;
+
+    /**
+     * CacheManager that handles caching that is needed by the client of the Address Widget.
+     */
+    private final ClientCacheManager mClientCacheManager;
+
+    /**
+     * All requests that have been sent.
+     */
+    private final HashSet<String> mRequestedKeys = new HashSet<String>();
+
+    /**
+     * All invalid requested keys. For example, if we request a random string "asdfsdf9o", and the
+     * server responds by saying this key is invalid, it will be stored here.
+     */
+    private final HashSet<String> mBadKeys = new HashSet<String>();
+
+    /**
+     * Temporary store for {@code CacheListener}s. When a key is requested and still waiting for
+     * server's response, the listeners for the same key will be temporary stored here. When the
+     * server responded, these listeners will be triggered and then removed.
+     */
+    private final HashMap<LookupKey, HashSet<CacheListener>> mTemporaryListenerStore =
+            new HashMap<LookupKey, HashSet<CacheListener>>();
+
+    /**
+     * Creates an instance of CacheData with an empty cache, and uses no caching that is external
+     * to the AddressWidget.
+     */
+    public CacheData() {
+        this(new SimpleClientCacheManager());
+    }
+
+    /**
+     * Creates an instance of CacheData with an empty cache, and uses additional caching (external
+     * to the AddressWidget) specified by clientCacheManager.
+     */
+    public CacheData(ClientCacheManager clientCacheManager) {
+        mClientCacheManager = clientCacheManager;
+        setUrl(mClientCacheManager.getAddressServerUrl());
+        mCache = JsoMap.createEmptyJsoMap();
+    }
+
+    /**
+     * This constructor is meant to be used together with external caching.
+     *
+     * Use case:
+     *
+     * After having finished using the address widget:
+     * String allCachedData = getJsonString();
+     * Cache (save) allCachedData wherever makes sense for your service / activity
+     *
+     * Before using it next time:
+     * Get the saved allCachedData string
+     * new ClientData(new CacheData(allCachedData))
+     *
+     * If you don't have any saved data you can either just pass an empty string to
+     * this constructor or use the other constructor.
+     *
+     * @param jsonString cached data from last time the class was used
+     */
+    public CacheData(String jsonString) {
+        mClientCacheManager = new SimpleClientCacheManager();
+        setUrl(mClientCacheManager.getAddressServerUrl());
+        JsoMap tempMap = null;
+        try {
+            tempMap = JsoMap.buildJsoMap(jsonString);
+        } catch (JSONException jsonE) {
+            // If parsing the JSON string throws an exception, default to
+            // starting with an empty cache.
+            Log.w(TAG, "Could not parse json string, creating empty cache instead.");
+            tempMap = JsoMap.createEmptyJsoMap();
+        } finally {
+            mCache = tempMap;
+        }
+    }
+
+    /**
+     * Interface for all listeners to {@link CacheData} change. This is only used when multiple
+     * requests of the same key is dispatched and server has not responded yet.
+     */
+    private static interface CacheListener extends EventListener {
+
+        /**
+         * The function that will be called when valid data is about to be put in the cache.
+         *
+         * @param key the key for newly arrived data.
+         */
+        void onAdd(String key);
+    }
+
+    /**
+     * Class to handle JSON response.
+     */
+    private class JsonHandler {
+
+        /**
+         * Key for the requested data.
+         */
+        private final String mKey;
+
+        /**
+         * Pre-existing data for the requested key. Null is allowed.
+         */
+        private final JSONObject mExistingJso;
+
+        private final DataLoadListener mListener;
+
+        /**
+         * Constructs a JsonHandler instance.
+         *
+         * @param key    The key for requested data.
+         * @param oldJso Pre-existing data for this key or null.
+         */
+        private JsonHandler(String key, JSONObject oldJso, DataLoadListener listener) {
+            checkNotNull(key);
+            mKey = key;
+            mExistingJso = oldJso;
+            mListener = listener;
+        }
+
+        /**
+         * Saves valid responded data to the cache once data arrives, or if the key is invalid,
+         * saves it in the invalid cache. If there is pre-existing data for the key, it will merge
+         * the new data will the old one. It also triggers {@link DataLoadListener#dataLoadingEnd()}
+         * method before it returns (even when the key is invalid, or input jso is null). This is
+         * called from a background thread.
+         *
+         * @param map The received JSON data as a map.
+         */
+        private void handleJson(JsoMap map) {
+            // Can this ever happen?
+            if (map == null) {
+                Log.w(TAG, "server returns null for key:" + mKey);
+                mBadKeys.add(mKey);
+                notifyListenersAfterJobDone(mKey);
+                triggerDataLoadingEndIfNotNull(mListener);
+                return;
+            }
+
+            JSONObject json = map;
+            String idKey = AddressDataKey.ID.name().toLowerCase();
+            if (!json.has(idKey)) {
+                Log.w(TAG, "invalid or empty data returned for key: " + mKey);
+                mBadKeys.add(mKey);
+                notifyListenersAfterJobDone(mKey);
+                triggerDataLoadingEndIfNotNull(mListener);
+                return;
+            }
+
+            if (mExistingJso != null) {
+                map.mergeData((JsoMap) mExistingJso);
+            }
+
+            mCache.putObj(mKey, map);
+            notifyListenersAfterJobDone(mKey);
+            triggerDataLoadingEndIfNotNull(mListener);
+        }
+    }
+
+    /**
+     * Sets address data server URL. Input URL cannot be null.
+     *
+     * @param url The service URL.
+     */
+    public void setUrl(String url) {
+        checkNotNull(url, "Cannot set URL of address data server to null.");
+        mServiceUrl = url;
+    }
+
+    /**
+     * Gets address data server URL.
+     */
+    public String getUrl() {
+        return mServiceUrl;
+    }
+
+    /**
+     * Returns a JSON string representing the data currently stored in this cache. It can be used
+     * to later create a new CacheData object containing the same cached data.
+     *
+     * @return a JSON string representing the data stored in this cache
+     */
+    public String getJsonString() {
+        return mCache.toString();
+    }
+
+    /**
+     * Checks if key and its value is cached (Note that only valid ones are cached).
+     */
+    public boolean containsKey(String key) {
+        return mCache.containsKey(key);
+    }
+
+    // This method is called from a background thread.
+    private void triggerDataLoadingEndIfNotNull(DataLoadListener listener) {
+        if (listener != null) {
+            listener.dataLoadingEnd();
+        }
+    }
+
+    /**
+     * Fetches data from server, or returns if the data is already cached. If the fetched data is
+     * valid, it will be added to the cache. This method also triggers {@link
+     * DataLoadListener#dataLoadingEnd()} method before it returns.
+     *
+     * @param existingJso Pre-existing data for this key or null if none.
+     * @param listener    An optional listener to call when done.
+     */
+    void fetchDynamicData(final LookupKey key, JSONObject existingJso,
+            final DataLoadListener listener) {
+        checkNotNull(key, "null key not allowed.");
+
+        if (listener != null) {
+            listener.dataLoadingBegin();
+        }
+
+        // Key is valid and cached.
+        if (mCache.containsKey(key.toString())) {
+            triggerDataLoadingEndIfNotNull(listener);
+            return;
+        }
+
+        // Key is invalid and cached.
+        if (mBadKeys.contains(key.toString())) {
+            triggerDataLoadingEndIfNotNull(listener);
+            return;
+        }
+
+        // Already requested the key, and is still waiting for server's response.
+        if (!mRequestedKeys.add(key.toString())) {
+            Log.d(TAG, "data for key " + key + " requested but not cached yet");
+            addListenerToTempStore(key, new CacheListener() {
+                @Override
+                public void onAdd(String myKey) {
+                    triggerDataLoadingEndIfNotNull(listener);
+                }
+            });
+            return;
+        }
+
+        // Key is in the cache maintained by the client of the AddressWidget.
+        String dataFromClientCache = mClientCacheManager.get(key.toString());
+        if (dataFromClientCache != null && dataFromClientCache.length() > 0) {
+            final JsonHandler handler = new JsonHandler(key.toString(),
+                existingJso, listener);
+            try {
+                handler.handleJson(JsoMap.buildJsoMap(dataFromClientCache));
+                return;
+            } catch (JSONException e) {
+                Log.w(TAG, "Data from client's cache is in the wrong format: "
+                        + dataFromClientCache);
+            }
+        }
+
+        // Key is not cached yet, now sending the request to the server.
+        JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
+        jsonp.setTimeout(TIMEOUT);
+        final JsonHandler handler = new JsonHandler(key.toString(),
+                existingJso, listener);
+        jsonp.requestObject(mServiceUrl + "/" + key.toString(),
+                new AsyncCallback<JsoMap>() {
+                    @Override
+                    public void onFailure(Throwable caught) {
+                        Log.w(TAG, "Request for key " + key + " failed");
+                        mRequestedKeys.remove(key.toString());
+                        notifyListenersAfterJobDone(key.toString());
+                        triggerDataLoadingEndIfNotNull(listener);
+                    }
+
+                    @Override
+                    public void onSuccess(JsoMap result) {
+                        handler.handleJson(result);
+                        // Put metadata into the cache maintained by the client of the
+                        // AddressWidget.
+                        String dataRetrieved = result.toString();
+                        mClientCacheManager.put(key.toString(), dataRetrieved);
+                    }
+                });
+    }
+
+    /**
+     * Gets region data from our compiled-in java file and stores it in the
+     * cache. This is only called when data cannot be obtained from the server,
+     * so there will be no pre-existing data for this key.
+     */
+    void getFromRegionDataConstants(final LookupKey key) {
+        checkNotNull(key, "null key not allowed.");
+        String data = RegionDataConstants.getCountryFormatMap().get(
+                key.getValueForUpperLevelField(AddressField.COUNTRY));
+        if (data != null) {
+            try {
+                mCache.putObj(key.toString(), JsoMap.buildJsoMap(data));
+            } catch (JSONException e) {
+                Log.w(TAG, "Failed to parse data for key " + key +
+                      " from RegionDataConstants");
+            }
+        }
+    }
+
+    /**
+     * Retrieves string data identified by key.
+     *
+     * @param key Non-null key. E.g., "data/US/CA".
+     * @return String value for specified key.
+     */
+    public String get(String key) {
+        checkNotNull(key, "null key not allowed");
+        return mCache.get(key);
+    }
+
+    /**
+     * Retrieves JsoMap data identified by key.
+     *
+     * @param key Non-null key. E.g., "data/US/CA".
+     * @return String value for specified key.
+     */
+    public JsoMap getObj(String key) {
+        checkNotNull(key, "null key not allowed");
+        return mCache.getObj(key);
+    }
+
+    private void notifyListenersAfterJobDone(String key) {
+        LookupKey lookupKey = new LookupKey.Builder(key).build();
+        HashSet<CacheListener> listeners = mTemporaryListenerStore.get(lookupKey);
+        if (listeners != null) {
+            for (CacheListener listener : listeners) {
+                listener.onAdd(key.toString());
+            }
+            listeners.clear();
+        }
+    }
+
+    private void addListenerToTempStore(LookupKey key, CacheListener listener) {
+        checkNotNull(key);
+        checkNotNull(listener);
+        HashSet<CacheListener> listeners = mTemporaryListenerStore.get(key);
+        if (listeners == null) {
+            listeners = new HashSet<CacheListener>();
+            mTemporaryListenerStore.put(key, listeners);
+        }
+        listeners.add(listener);
+    }
+
+    /**
+     * Added for testing purposes.
+     * Adds a new object into the cache.
+     * @param id string of the format "data/country/.." ie. "data/US/CA"
+     * @param object The JSONObject to be put into cache.
+     */
+    void addToJsoMap(String id, JSONObject object) {
+        mCache.putObj(id, object);
+    }
+
+    /**
+     * Added for testing purposes.
+     * Checks to see if the cache is empty,
+     * @return true if the internal cache is empty
+     */
+    boolean isEmpty() {
+        return mCache.length() == 0;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientCacheManager.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientCacheManager.java
new file mode 100644 (file)
index 0000000..0ee1816
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ *  Used by AddressWidget to handle caching in client-specific ways.
+ */
+public interface ClientCacheManager {
+    /** Get the data that is cached for the given key. */
+    public String get(String key);
+    /** Put the data for the given key into the cache. */
+    public void put(String key, String data);
+    /** Get the Url of the server that serves address metadata. */
+    public String getAddressServerUrl();
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/ClientData.java
new file mode 100644 (file)
index 0000000..72be34f
--- /dev/null
@@ -0,0 +1,300 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.KeyType;
+
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Access point for the cached address verification data. The data contained here will mainly be
+ * used to build {@link FieldVerifier}'s. This class is implemented as a singleton.
+ */
+public class ClientData implements DataSource {
+
+    private static final String TAG = "ClientData";
+
+    /**
+     * Data to bootstrap the process. The data are all regional (country level)
+     * data. Keys are like "data/US/CA"
+     */
+    private final Map<String, JsoMap> mBootstrapMap = new HashMap<String, JsoMap>();
+
+    private CacheData mCacheData;
+
+    public ClientData(CacheData cacheData) {
+        this.mCacheData = cacheData;
+        buildRegionalData();
+    }
+
+    @Override
+    public AddressVerificationNodeData get(String key) {
+        JsoMap jso = mCacheData.getObj(key);
+        if (jso == null) {  // Not cached.
+            fetchDataIfNotAvailable(key);
+            jso = mCacheData.getObj(key);
+        }
+        if (jso != null && isValidDataKey(key)) {
+            return createNodeData(jso);
+        }
+        return null;
+    }
+
+    @Override
+    public AddressVerificationNodeData getDefaultData(String key) {
+        // root data
+        if (key.split("/").length == 1) {
+            JsoMap jso = mBootstrapMap.get(key);
+            if (jso == null || !isValidDataKey(key)) {
+                throw new RuntimeException("key " + key + " does not have bootstrap data");
+            }
+            return createNodeData(jso);
+        }
+
+        key = getCountryKey(key);
+        JsoMap jso = mBootstrapMap.get(key);
+        if (jso == null || !isValidDataKey(key)) {
+            throw new RuntimeException("key " + key + " does not have bootstrap data");
+        }
+        return createNodeData(jso);
+    }
+
+    private String getCountryKey(String hierarchyKey) {
+        if (hierarchyKey.split("/").length <= 1) {
+            throw new RuntimeException("Cannot get country key with key '" + hierarchyKey + "'");
+        }
+        if (isCountryKey(hierarchyKey)) {
+            return hierarchyKey;
+        }
+
+        String[] parts = hierarchyKey.split("/");
+
+        return new StringBuilder().append(parts[0])
+                .append("/")
+                .append(parts[1])
+                .toString();
+    }
+
+    private boolean isCountryKey(String hierarchyKey) {
+        Util.checkNotNull(hierarchyKey, "Cannot use null as a key");
+        return hierarchyKey.split("/").length == 2;
+    }
+
+
+    /**
+     * Returns the contents of the JSON-format string as a map.
+     */
+    protected AddressVerificationNodeData createNodeData(JsoMap jso) {
+        Map<AddressDataKey, String> map =
+                new EnumMap<AddressDataKey, String>(AddressDataKey.class);
+
+        JSONArray arr = jso.getKeys();
+        for (int i = 0; i < arr.length(); i++) {
+            try {
+                AddressDataKey key = AddressDataKey.get(arr.getString(i));
+
+                if (key == null) {
+                    // Not all keys are supported by Android, so we continue if we encounter one
+                    // that is not used.
+                    continue;
+                }
+
+                String value = jso.get(key.toString().toLowerCase());
+                map.put(key, value);
+            } catch (JSONException e) {
+                // This should not happen - we should not be fetching a key from outside the bounds
+                // of the array.
+            }
+        }
+
+        return new AddressVerificationNodeData(map);
+    }
+
+    /**
+     * We can be initialized with the full set of address information, but validation only uses info
+     * prefixed with "data" (in particular, no info prefixed with "examples").
+     */
+    private boolean isValidDataKey(String key) {
+        return key.startsWith("data");
+    }
+
+    /**
+     * Initializes regionalData structure based on property file.
+     */
+    private void buildRegionalData() {
+        StringBuilder countries = new StringBuilder();
+
+        for (String countryCode : RegionDataConstants.getCountryFormatMap().keySet()) {
+            countries.append(countryCode + "~");
+            String json = RegionDataConstants.getCountryFormatMap().get(countryCode);
+            JsoMap jso = null;
+            try {
+                jso = JsoMap.buildJsoMap(json);
+            } catch (JSONException e) {
+                // Ignore.
+            }
+
+            AddressData data = new AddressData.Builder().setCountry(countryCode).build();
+            LookupKey key = new LookupKey.Builder(KeyType.DATA).setAddressData(data).build();
+            mBootstrapMap.put(key.toString(), jso);
+        }
+        countries.setLength(countries.length() - 1);
+
+        // TODO: this is messy. do we have better ways to do it?
+        /* Creates verification data for key="data". This will be used for the
+         * root FieldVerifier.
+         */
+        String str = "{\"id\":\"data\",\"" +
+                AddressDataKey.COUNTRIES.toString().toLowerCase() +
+                "\": \"" + countries.toString() + "\"}";
+        JsoMap jsoData = null;
+        try {
+            jsoData = JsoMap.buildJsoMap(str);
+        } catch (JSONException e) {
+            // Ignore.
+        }
+        mBootstrapMap.put("data", jsoData);
+    }
+
+    /**
+     * Fetches data from remote server if it is not cached yet.
+     *
+     * @param key The key for data that being requested. Key can be either a data key (starts with
+     *            "data") or example key (starts with "examples")
+     */
+    private void fetchDataIfNotAvailable(String key) {
+        JsoMap jso = mCacheData.getObj(key);
+        if (jso == null) {
+            // If there is bootstrap data for the key, pass the data to fetchDynamicData
+            JsoMap regionalData = mBootstrapMap.get(key);
+            NotifyingListener listener = new NotifyingListener(this);
+            // If the key was invalid, we don't want to attempt to fetch it.
+            if (LookupKey.hasValidKeyPrefix(key)) {
+                LookupKey lookupKey = new LookupKey.Builder(key).build();
+                mCacheData.fetchDynamicData(lookupKey, regionalData, listener);
+                try {
+                    listener.waitLoadingEnd();
+                    // Check to see if there is data for this key now.
+                    if (mCacheData.getObj(key) == null && isCountryKey(key)) {
+                        // If not, see if there is data in RegionDataConstants.
+                        Log.i(TAG, "Server failure: looking up key in region data constants.");
+                        mCacheData.getFromRegionDataConstants(lookupKey);
+                    }
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+    }
+
+    public void requestData(LookupKey key, DataLoadListener listener) {
+        Util.checkNotNull(key, "Null lookup key not allowed");
+        JsoMap regionalData = mBootstrapMap.get(key.toString());
+        mCacheData.fetchDynamicData(key, regionalData, listener);
+    }
+
+    /**
+     * Fetches all data for the specified country from the remote server.
+     */
+    public void prefetchCountry(String country, DataLoadListener listener) {
+        String key = "data/" + country;
+        Set<RecursiveLoader> loaders = new HashSet<RecursiveLoader>();
+        listener.dataLoadingBegin();
+        mCacheData.fetchDynamicData(
+                new LookupKey.Builder(key).build(),
+                null,
+                new RecursiveLoader(key, loaders, listener));
+    }
+
+    /**
+     * A helper class to recursively load all sub keys using fetchDynamicData().
+     */
+    private class RecursiveLoader implements DataLoadListener {
+
+        private final String key;
+
+        private final Set<RecursiveLoader> loaders;
+
+        private final DataLoadListener listener;
+
+        public RecursiveLoader(String key, Set<RecursiveLoader> loaders,
+                DataLoadListener listener) {
+            this.key = key;
+            this.loaders = loaders;
+            this.listener = listener;
+
+            synchronized (loaders) {
+                loaders.add(this);
+            }
+        }
+
+        @Override
+        public void dataLoadingBegin() {
+        }
+
+        @Override
+        public void dataLoadingEnd() {
+            final String subKeys = AddressDataKey.SUB_KEYS.name().toLowerCase();
+            final String subMores = AddressDataKey.SUB_MORES.name().toLowerCase();
+
+            JsoMap map = mCacheData.getObj(key);
+
+            if (map.containsKey(subMores)) {
+                // This key could have sub keys.
+                String[] mores = {};
+                String[] keys = {};
+
+                mores = map.get(subMores).split("~");
+
+                if (map.containsKey(subKeys)) {
+                    keys = map.get(subKeys).split("~");
+                }
+
+                if (mores.length != keys.length) {  // This should never happen.
+                    throw new IndexOutOfBoundsException("mores.length != keys.length");
+                }
+
+                for (int i = 0; i < mores.length; i++) {
+                    if (mores[i].equalsIgnoreCase("true")) {
+                        // This key should have sub keys.
+                        String subKey = key + "/" + keys[i];
+                        mCacheData.fetchDynamicData(
+                                new LookupKey.Builder(subKey).build(),
+                                null,
+                                new RecursiveLoader(subKey, loaders, listener));
+                    }
+                }
+            }
+
+            synchronized (loaders) {
+                loaders.remove(this);
+                if (loaders.isEmpty()) {
+                    listener.dataLoadingEnd();
+                }
+            }
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataLoadListener.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataLoadListener.java
new file mode 100644 (file)
index 0000000..fc7782c
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ * Invoked when the data is fetched from the server or the cache.
+ */
+public interface DataLoadListener {
+    // These callbacks are invoked from a background thread.
+    void dataLoadingBegin();
+    void dataLoadingEnd();
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataSource.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/DataSource.java
new file mode 100644 (file)
index 0000000..d77f27f
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+// TODO: This interface and AddressVerificationData will be
+// removed when we have created code for static loading of data without using the
+// AddressVerificationData class.
+public interface DataSource {
+    AddressVerificationNodeData getDefaultData(String key);
+    AddressVerificationNodeData get(String key);
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FieldVerifier.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FieldVerifier.java
new file mode 100644 (file)
index 0000000..bd9c5e5
--- /dev/null
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Pattern;
+
+/**
+ * Accesses address verification data used to verify components of an address.
+ * <p> Not all fields require all types of validation, although this could be done. In particular,
+ * the current implementation only provides known value verification for the hierarchical fields,
+ * and only provides format and match verification for the postal code field.
+ */
+public class FieldVerifier {
+    // Node data values are delimited by this symbol.
+    private static final String DATA_DELIMITER = "~";
+    // Keys are built up using this delimiter: eg data/US, data/US/CA.
+    private static final String KEY_DELIMITER = "/";
+
+    private String mId;
+    private DataSource mDataSource;
+
+    private Set<AddressField> mPossibleFields;
+    private Set<AddressField> mRequired;
+    // Known values. Can be either a key, a name in Latin, or a name in native script.
+    private Map<String, String> mCandidateValues;
+
+    // Keys for the subnodes of this verifier. For example, a key for the US would be CA, since
+    // there is a sub-verifier with the ID "data/US/CA". Keys may be the local names of the
+    // locations in the next level of the hierarchy, or the abbreviations if suitable abbreviations
+    // exist.
+    private String[] mKeys;
+    // Names in Latin. These are only populated if the native/local names are in a script other than
+    // latin.
+    private String[] mLatinNames;
+    // Names in native script.
+    private String[] mLocalNames;
+
+    // Pattern representing the format of a postal code number.
+    private Pattern mFormat;
+    // Defines the valid range of a postal code number.
+    private Pattern mMatch;
+
+    /**
+     * Creates the root field verifier for a particular data source.
+     */
+    public FieldVerifier(DataSource dataSource) {
+        mDataSource = dataSource;
+        populateRootVerifier();
+    }
+
+    /**
+     * Creates a field verifier based on its parent and on the new data for this node supplied by
+     * nodeData (which may be null).
+     */
+    private FieldVerifier(FieldVerifier parent, AddressVerificationNodeData nodeData) {
+        // Most information is inherited from the parent.
+        mPossibleFields = parent.mPossibleFields;
+        mRequired = parent.mRequired;
+        mDataSource = parent.mDataSource;
+        mFormat = parent.mFormat;
+        mMatch = parent.mMatch;
+        // Here we add in any overrides from this particular node as well as information such as
+        // localNames, latinNames and keys.
+        populate(nodeData);
+        // candidateValues should never be inherited from the parent, but built up from the
+        // localNames in this node.
+        mCandidateValues = Util.buildNameToKeyMap(mKeys, mLocalNames, mLatinNames);
+    }
+
+    /**
+     * Sets possibleFieldsUsed, required, keys and candidateValues for the root field verifier. This
+     * is a little messy at the moment since not all the appropriate information is actually under
+     * the root "data" node in the metadata. For example, "possibleFields" and "required" are not
+     * present there.
+     */
+    private void populateRootVerifier() {
+        mId = "data";
+        // Keys come from the countries under "data".
+        AddressVerificationNodeData rootNode = mDataSource.getDefaultData("data");
+        if (rootNode.containsKey(AddressDataKey.COUNTRIES)) {
+            mKeys = rootNode.get(AddressDataKey.COUNTRIES).split(DATA_DELIMITER);
+        }
+        // candidateValues is just the set of keys.
+        mCandidateValues = Util.buildNameToKeyMap(mKeys, null, null);
+
+        // Copy "possibleFieldsUsed" and "required" from the defaults here for bootstrapping.
+        // TODO: Investigate a cleaner way of doing this - maybe we should populate "data" with this
+        // information instead.
+        AddressVerificationNodeData defaultZZ = mDataSource.getDefaultData("data/ZZ");
+        mPossibleFields = new HashSet<AddressField>();
+        if (defaultZZ.containsKey(AddressDataKey.FMT)) {
+            mPossibleFields = parseAddressFields(defaultZZ.get(AddressDataKey.FMT));
+        }
+        mRequired = new HashSet<AddressField>();
+        if (defaultZZ.containsKey(AddressDataKey.REQUIRE)) {
+            mRequired = parseRequireString(defaultZZ.get(AddressDataKey.REQUIRE));
+        }
+    }
+
+    /**
+     * Populates this verifier with data from the node data passed in. This may be null.
+     */
+    private void populate(AddressVerificationNodeData nodeData) {
+        if (nodeData == null) {
+            return;
+        }
+        if (nodeData.containsKey(AddressDataKey.ID)) {
+            mId = nodeData.get(AddressDataKey.ID);
+        }
+        if (nodeData.containsKey(AddressDataKey.SUB_KEYS)) {
+            mKeys = nodeData.get(AddressDataKey.SUB_KEYS).split(DATA_DELIMITER);
+        }
+        if (nodeData.containsKey(AddressDataKey.SUB_LNAMES)) {
+            mLatinNames = nodeData.get(AddressDataKey.SUB_LNAMES).split(DATA_DELIMITER);
+        }
+        if (nodeData.containsKey(AddressDataKey.SUB_NAMES)) {
+            mLocalNames = nodeData.get(AddressDataKey.SUB_NAMES).split(DATA_DELIMITER);
+        }
+        if (nodeData.containsKey(AddressDataKey.FMT)) {
+            mPossibleFields = parseAddressFields(nodeData.get(AddressDataKey.FMT));
+        }
+        if (nodeData.containsKey(AddressDataKey.REQUIRE)) {
+            mRequired = parseRequireString(nodeData.get(AddressDataKey.REQUIRE));
+        }
+        if (nodeData.containsKey(AddressDataKey.XZIP)) {
+            mFormat = Pattern.compile(nodeData.get(AddressDataKey.XZIP), Pattern.CASE_INSENSITIVE);
+        }
+        if (nodeData.containsKey(AddressDataKey.ZIP)) {
+            // This key has two different meanings, depending on whether this is a country-level key
+            // or not.
+            if (isCountryKey()) {
+                mFormat = Pattern.compile(nodeData.get(AddressDataKey.ZIP),
+                                          Pattern.CASE_INSENSITIVE);
+            } else {
+                mMatch = Pattern.compile(nodeData.get(AddressDataKey.ZIP),
+                                         Pattern.CASE_INSENSITIVE);
+            }
+        }
+        // If there are latin names but no local names, and there are the same number of latin names
+        // as there are keys, then we assume the local names are the same as the keys.
+        if (mKeys != null && mLocalNames == null && mLatinNames != null &&
+            mKeys.length == mLatinNames.length) {
+            mLocalNames = mKeys;
+        }
+    }
+
+    FieldVerifier refineVerifier(String sublevel) {
+        if (Util.trimToNull(sublevel) == null) {
+            return new FieldVerifier(this, null);
+        }
+        // If the parent node didn't exist, then the subLevelName will start with "null".
+        String subLevelName = mId + KEY_DELIMITER + sublevel;
+        // For names with no Latin equivalent, we can look up the sublevel name directly.
+        AddressVerificationNodeData nodeData = mDataSource.get(subLevelName);
+        if (nodeData != null) {
+            return new FieldVerifier(this, nodeData);
+        }
+        // If that failed, then we try to look up the local name equivalent of this latin name.
+        // First check these exist.
+        if (mLatinNames == null) {
+            return new FieldVerifier(this, null);
+        }
+        for (int n = 0; n < mLatinNames.length; n++) {
+            if (mLatinNames[n].equalsIgnoreCase(sublevel)) {
+                // We found a match - we should try looking up a key with the local name at the same
+                // index.
+                subLevelName = mId + KEY_DELIMITER + mLocalNames[n];
+                nodeData = mDataSource.get(subLevelName);
+                if (nodeData != null) {
+                    return new FieldVerifier(this, nodeData);
+                }
+            }
+        }
+        // No sub-verifiers were found.
+        return new FieldVerifier(this, null);
+    }
+
+    /**
+     * Returns the ID of this verifier.
+     */
+    @Override
+    public String toString() {
+        return mId;
+    }
+
+    /**
+     * Checks a value in a particular script for a particular field to see if it causes the problem
+     * specified. If so, this problem is added to the AddressProblems collection passed in. Returns
+     * true if no problem was found.
+     */
+    protected boolean check(ScriptType script, AddressProblemType problem, AddressField field,
+            String value, AddressProblems problems) {
+        boolean problemFound = false;
+
+        String trimmedValue = Util.trimToNull(value);
+        switch (problem) {
+            case USING_UNUSED_FIELD:
+                if (trimmedValue != null && !mPossibleFields.contains(field)) {
+                    problemFound = true;
+                }
+                break;
+            case MISSING_REQUIRED_FIELD:
+                if (mRequired.contains(field) && trimmedValue == null) {
+                    problemFound = true;
+                }
+                break;
+            case UNKNOWN_VALUE:
+                // An empty string will never be an UNKNOWN_VALUE. It is invalid
+                // only when it appears in a required field (In that case it will
+                // be reported as MISSING_REQUIRED_FIELD).
+                if (trimmedValue == null) {
+                    break;
+                }
+                problemFound = !isKnownInScript(script, trimmedValue);
+                break;
+            case UNRECOGNIZED_FORMAT:
+                if (trimmedValue != null && mFormat != null &&
+                        !mFormat.matcher(trimmedValue).matches()) {
+                    problemFound = true;
+                }
+                break;
+            case MISMATCHING_VALUE:
+                if (trimmedValue != null && mMatch != null &&
+                        !mMatch.matcher(trimmedValue).lookingAt()) {
+                    problemFound = true;
+                }
+                break;
+            default:
+                throw new RuntimeException("Unknown problem: " + problem);
+        }
+        if (problemFound) {
+            problems.add(field, problem);
+        }
+        return !problemFound;
+    }
+
+    /**
+     * Checks the value of a particular field in a particular script against the known values for
+     * this field. If script is null, it checks both the local and the latin values. Otherwise it
+     * checks only the values in the script specified.
+     */
+    private boolean isKnownInScript(ScriptType script, String value) {
+        String trimmedValue = Util.trimToNull(value);
+        Util.checkNotNull(trimmedValue);
+        if (script == null) {
+            return (mCandidateValues == null ||
+                    mCandidateValues.containsKey(trimmedValue.toLowerCase()));
+        }
+        // Otherwise, if we know the script, we want to restrict the candidates to only names in
+        // that script.
+        String[] namesToConsider = (script == ScriptType.LATIN) ? mLatinNames : mLocalNames;
+        Set<String> candidates = new HashSet<String>();
+        if (namesToConsider != null) {
+            for (String name : namesToConsider) {
+                candidates.add(name.toLowerCase());
+            }
+        }
+        if (mKeys != null) {
+            for (String name : mKeys) {
+                candidates.add(name.toLowerCase());
+            }
+        }
+
+        if (candidates.size() == 0 || trimmedValue == null) {
+            return true;
+        }
+
+        return candidates.contains(value.toLowerCase());
+    }
+
+    /**
+     * Parses the value of the "fmt" key in the data to see which fields are used for a particular
+     * country. Returns a list of all fields found. Country is always assumed to be present. Skips
+     * characters that indicate new-lines in the format information, as well as any characters not
+     * escaped with "%".
+     */
+    private static Set<AddressField> parseAddressFields(String value) {
+        EnumSet<AddressField> result = EnumSet.of(AddressField.COUNTRY);
+        boolean escaped = false;
+        for (char c : value.toCharArray()) {
+            if (escaped) {
+                escaped = false;
+                if (c == 'n') {
+                    continue;
+                }
+                AddressField f = AddressField.of(c);
+                if (f == null) {
+                    throw new RuntimeException(
+                            "Unrecognized character '" + c + "' in format pattern: " + value);
+                }
+                result.add(f);
+            } else if (c == '%') {
+                escaped = true;
+            }
+        }
+        // These fields are not mentioned in the metadata at the moment since there is an effort to
+        // move away from STREET_ADDRESS and use these fields instead. This means they have to be
+        // removed here.
+        result.remove(AddressField.ADDRESS_LINE_1);
+        result.remove(AddressField.ADDRESS_LINE_2);
+
+        return result;
+    }
+
+    /**
+     * Parses the value of the "required" key in the data. Adds country as well as any other field
+     * mentioned in the string.
+     */
+    private static Set<AddressField> parseRequireString(String value) {
+        // Country is always required
+        EnumSet<AddressField> result = EnumSet.of(AddressField.COUNTRY);
+
+        for (char c : value.toCharArray()) {
+            AddressField f = AddressField.of(c);
+            if (f == null) {
+                throw new RuntimeException("Unrecognized character '" + c + "' in require pattern: "
+                        + value);
+            }
+            result.add(f);
+        }
+        // These fields are not mentioned in the metadata at the moment since there is an effort to
+        // move away from STREET_ADDRESS and use these fields instead. This means they have to be
+        // removed here.
+        result.remove(AddressField.ADDRESS_LINE_1);
+        result.remove(AddressField.ADDRESS_LINE_2);
+
+        return result;
+    }
+
+    /**
+     * Returns true if this key represents a country. We assume all keys with only one delimiter are
+     * at the country level (such as "data/US").
+     */
+    private boolean isCountryKey() {
+        Util.checkNotNull(mId, "Cannot use null as key");
+        return mId.split(KEY_DELIMITER).length == 2;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormController.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormController.java
new file mode 100644 (file)
index 0000000..c8c5953
--- /dev/null
@@ -0,0 +1,334 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.KeyType;
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
+
+/**
+ * Responsible for looking up data for address fields. This fetches possible
+ * values for the next level down in the address hierarchy, if these are known.
+ */
+class FormController {
+    // For address hierarchy in lookup key.
+    private static final String SLASH_DELIM = "/";
+    // For joined values.
+    private static final String TILDE_DELIM = "~";
+    // For language code info in lookup key (E.g., data/CA--fr).
+    private static final String DASH_DELIM = "--";
+    private static final LookupKey ROOT_KEY = FormController.getDataKeyForRoot();
+    private static final String DEFAULT_REGION_CODE = "ZZ";
+    private static final AddressField[] ADDRESS_HIERARCHY = {
+            AddressField.COUNTRY,
+            AddressField.ADMIN_AREA,
+            AddressField.LOCALITY,
+            AddressField.DEPENDENT_LOCALITY
+    };
+
+    // Current user language.
+    private String mLanguageCode;
+    private ClientData mIntegratedData;
+    private String mCurrentCountry;
+
+    /**
+     * Constructor that populates this with data. languageCode should be a BCP language code (such
+     * as "en" or "zh-Hant") and currentCountry should be an ISO 2-letter region code (such as "GB"
+     * or "US").
+     */
+    FormController(ClientData integratedData, String languageCode, String currentCountry) {
+        Util.checkNotNull(integratedData, "null data not allowed");
+        mLanguageCode = languageCode;
+        this.mCurrentCountry = currentCountry;
+
+        AddressData address = new AddressData.Builder().setCountry(DEFAULT_REGION_CODE).build();
+        LookupKey defaultCountryKey = getDataKeyFor(address);
+
+        AddressVerificationNodeData defaultCountryData =
+            integratedData.getDefaultData(defaultCountryKey.toString());
+        Util.checkNotNull(defaultCountryData,
+                "require data for default country key: " + defaultCountryKey);
+        this.mIntegratedData = integratedData;
+    }
+
+    void setLanguageCode(String languageCode) {
+        mLanguageCode = languageCode;
+    }
+
+    void setCurrentCountry(String currentCountry) {
+        mCurrentCountry = currentCountry;
+    }
+
+    private ScriptType getScriptType() {
+        if (mLanguageCode != null && Util.isExplicitLatinScript(mLanguageCode)) {
+            return ScriptType.LATIN;
+        }
+        return ScriptType.LOCAL;
+    }
+
+    private static LookupKey getDataKeyForRoot() {
+        AddressData address = new AddressData.Builder().build();
+        return new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+    }
+
+    LookupKey getDataKeyFor(AddressData address) {
+        return new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+    }
+
+    /**
+     * Requests data for the input address. This method chains multiple requests together. For
+     * example, an address for Mt View, California needs data from "data/US", "data/US/CA", and
+     * "data/US/CA/Mt View" to support it. This method will request them one by one (from top level
+     * key down to the most granular) and evokes {@link DataLoadListener#dataLoadingEnd} method when
+     * all data is collected. If the address is invalid, it will request the first valid child key
+     * instead. For example, a request for "data/US/Foo" will end up requesting data for "data/US",
+     * "data/US/AL".
+     *
+     * @param address  the current address.
+     * @param listener triggered when requested data for the address is returned.
+     */
+    void requestDataForAddress(AddressData address, DataLoadListener listener) {
+        Util.checkNotNull(address.getPostalCountry(), "null country not allowed");
+
+        // Gets the key for deepest available node.
+        Queue<String> subkeys = new LinkedList<String>();
+
+        for (AddressField field : ADDRESS_HIERARCHY) {
+            String value = address.getFieldValue(field);
+            if (value == null) {
+                break;
+            }
+            subkeys.add(value);
+        }
+        if (subkeys.size() == 0) {
+            throw new RuntimeException("Need at least country level info");
+        }
+
+        if (listener != null) {
+            listener.dataLoadingBegin();
+        }
+        requestDataRecursively(ROOT_KEY, subkeys, listener);
+    }
+
+    private void requestDataRecursively(final LookupKey key,
+            final Queue<String> subkeys, final DataLoadListener listener) {
+        Util.checkNotNull(key, "Null key not allowed");
+        Util.checkNotNull(subkeys, "Null subkeys not allowed");
+
+        mIntegratedData.requestData(key, new DataLoadListener() {
+            @Override
+            public void dataLoadingBegin() {
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                List<RegionData> subregions = getRegionData(key);
+                if (subregions.isEmpty()) {
+                    if (listener != null) {
+                        listener.dataLoadingEnd();
+                    }
+                    // TODO: Should update the selectors here.
+                    return;
+                } else if (subkeys.size() > 0) {
+                    String subkey = subkeys.remove();
+                    for (RegionData subregion : subregions) {
+                        if (subregion.isValidName(subkey)) {
+                            LookupKey nextKey = buildDataLookupKey(key, subregion.getKey());
+                            requestDataRecursively(nextKey, subkeys, listener);
+                            return;
+                        }
+                    }
+                }
+
+                // Current value in the field is not valid, use the first valid subkey
+                // to request more data instead.
+                String firstSubkey = subregions.get(0).getKey();
+                LookupKey nextKey = buildDataLookupKey(key, firstSubkey);
+                Queue<String> emptyList = new LinkedList<String>();
+                requestDataRecursively(nextKey, emptyList, listener);
+            }
+        });
+    }
+
+    private LookupKey buildDataLookupKey(LookupKey lookupKey, String subKey) {
+        String[] subKeys = lookupKey.toString().split(SLASH_DELIM);
+        String languageCodeSubTag =
+                (mLanguageCode == null) ? null : Util.getLanguageSubtag(mLanguageCode);
+        String key = lookupKey.toString() + SLASH_DELIM + subKey;
+
+        // Country level key
+        if (subKeys.length == 1 &&
+                languageCodeSubTag != null && !isDefaultLanguage(languageCodeSubTag)) {
+            key += DASH_DELIM + languageCodeSubTag.toString();
+        }
+        return new LookupKey.Builder(key).build();
+    }
+
+    /**
+     * Compares the language subtags of input {@code languageCode} and default language code. For
+     * example, "zh-Hant" and "zh" are viewed as identical.
+     */
+    boolean isDefaultLanguage(String languageCode) {
+        if (languageCode == null) {
+            return true;
+        }
+        AddressData addr = new AddressData.Builder().setCountry(mCurrentCountry).build();
+        LookupKey lookupKey = getDataKeyFor(addr);
+        AddressVerificationNodeData data =
+                mIntegratedData.getDefaultData(lookupKey.toString());
+        String defaultLanguage = data.get(AddressDataKey.LANG);
+
+        // Current language is not the default language for the country.
+        if (Util.trimToNull(defaultLanguage) != null &&
+            !Util.getLanguageSubtag(languageCode).equals(Util.getLanguageSubtag(languageCode))) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Gets a list of {@link RegionData} for sub-regions for a given key. For example, sub regions
+     * for "data/US" are AL/Alabama, AK/Alaska, etc.
+     *
+     * <p> TODO: It seems more straight forward to return a list of pairs instead of RegionData.
+     * Actually, we can remove RegionData since it does not contain anything more than key/value
+     * pairs now.
+     *
+     * @return A list of sub-regions, each sub-region represented by a {@link RegionData}.
+     */
+    List<RegionData> getRegionData(LookupKey key) {
+        if (key.getKeyType() == KeyType.EXAMPLES) {
+            throw new RuntimeException("example key not allowed for getting region data");
+        }
+        Util.checkNotNull(key, "null regionKey not allowed");
+        LookupKey normalizedKey = normalizeLookupKey(key);
+        List<RegionData> results = new ArrayList<RegionData>();
+
+        // Root key.
+        if (normalizedKey.equals(ROOT_KEY)) {
+            AddressVerificationNodeData data =
+                    mIntegratedData.getDefaultData(normalizedKey.toString());
+            String[] countries = splitData(data.get(AddressDataKey.COUNTRIES));
+            for (int i = 0; i < countries.length; i++) {
+                RegionData rd = new RegionData.Builder()
+                        .setKey(countries[i])
+                        .setName(countries[i])
+                        .build();
+                results.add(rd);
+            }
+            return results;
+        }
+
+        AddressVerificationNodeData data =
+                mIntegratedData.get(normalizedKey.toString());
+        if (data != null) {
+            String[] keys = splitData(data.get(AddressDataKey.SUB_KEYS));
+            String[] names = (getScriptType() == ScriptType.LOCAL)
+                    ? splitData(data.get(AddressDataKey.SUB_NAMES))
+                    : splitData(data.get(AddressDataKey.SUB_LNAMES));
+
+            for (int i = 0; i < keys.length; i++) {
+                RegionData rd =
+                        new RegionData.Builder()
+                                .setKey(keys[i])
+                                .setName((i < names.length) ? names[i] : keys[i])
+                                .build();
+                results.add(rd);
+            }
+        }
+        return results;
+    }
+
+    /**
+     * Split a '~' delimited string into an array of strings. This method is null tolerant and
+     * considers an empty string to contain no elements.
+     *
+     * @param raw The data to split
+     * @return an array of strings
+     */
+    private String[] splitData(String raw) {
+        if (raw == null || raw.length() == 0) {
+            return new String[]{};
+        }
+        return raw.split(TILDE_DELIM);
+    }
+
+    private String getSubKey(LookupKey parentKey, String name) {
+        for (RegionData subRegion : getRegionData(parentKey)) {
+            if (subRegion.isValidName(name)) {
+                return subRegion.getKey();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Normalizes {@code key} by replacing field values with sub-keys. For example, California is
+     * replaced with CA. The normalization goes from top (country) to bottom (dependent locality)
+     * and if any field value is empty, unknown, or invalid, it will stop and return whatever it
+     * gets. For example, a key "data/US/California/foobar/kar" will be normalized into
+     * "data/US/CA/foobar/kar" since "foobar" is unknown. This method supports only key of
+     * {@link KeyType#DATA} type.
+     *
+     * @return normalized {@link LookupKey}.
+     */
+    private LookupKey normalizeLookupKey(LookupKey key) {
+        Util.checkNotNull(key);
+        if (key.getKeyType() != KeyType.DATA) {
+            throw new RuntimeException("Only DATA keyType is supported");
+        }
+
+        String subStr[] = key.toString().split(SLASH_DELIM);
+
+        // Root key does not need to be normalized.
+        if (subStr.length < 2) {
+            return key;
+        }
+
+        StringBuilder sb = new StringBuilder(subStr[0]);
+        for (int i = 1; i < subStr.length; ++i) {
+            // Strips the language code if contained.
+            String languageCode = null;
+            if (i == 1 && subStr[i].contains(DASH_DELIM)) {
+                String[] s = subStr[i].split(DASH_DELIM);
+                subStr[i] = s[0];
+                languageCode = s[1];
+            }
+
+            String normalizedSubKey = getSubKey(new LookupKey.Builder(sb.toString()).build(),
+                    subStr[i]);
+
+            // Can't find normalized sub-key; assembles the lookup key with the
+            // remaining sub-keys and returns it.
+            if (normalizedSubKey == null) {
+                for (; i < subStr.length; ++i) {
+                    sb.append(SLASH_DELIM).append(subStr[i]);
+                }
+                break;
+            }
+            sb.append(SLASH_DELIM).append(normalizedSubKey);
+            if (languageCode != null) {
+                sb.append(DASH_DELIM).append(languageCode);
+            }
+        }
+        return new LookupKey.Builder(sb.toString()).build();
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormOptions.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormOptions.java
new file mode 100644 (file)
index 0000000..07bc38e
--- /dev/null
@@ -0,0 +1,287 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.EnumMap;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+/**
+ * Configuration Options that can be used by Address Display components for things like show/hide
+ * fields or make them readonly. By default, all the fields are visible and editable.
+ *
+ * <p>Also, provides the ability to add additional required fields, for e.g. {@link
+ * AddressField#RECIPIENT}.
+ */
+public class FormOptions {
+
+    private final String mBaseId;
+
+    private final EnumSet<AddressField> mHiddenFields;
+
+    private final EnumSet<AddressField> mReadonlyFields;
+
+    private final EnumSet<AddressField> mRequiredFields;
+
+    private final EnumMap<AddressField, String> mCustomLabels =
+            new EnumMap<AddressField, String>(AddressField.class);
+
+    private final Map<String, AddressField[]> mOverrideFieldOrder =
+            new HashMap<String, AddressField[]>();
+
+    private final EnumMap<AddressField, Integer> mMaxLengths =
+            new EnumMap<AddressField, Integer>(AddressField.class);
+
+    private final String mServerUrl;
+
+    private FormOptions(Builder builder) {
+        // copy values from builder
+        mBaseId = builder.mBaseId;
+        mHiddenFields = EnumSet.copyOf(builder.mHiddenFields);
+        mReadonlyFields = EnumSet.copyOf(builder.mReadonlyFields);
+        mRequiredFields = EnumSet.copyOf(builder.mRequiredFields);
+        mCustomLabels.putAll(builder.mCustomLabels);
+        mOverrideFieldOrder.putAll(builder.mOverrideFieldOrder);
+        mMaxLengths.putAll(builder.mMaxLengths);
+        mServerUrl = builder.mServerUrl;
+    }
+
+    /**
+     * Gets base ID of the address form. Default is "addressform".
+     */
+    String getBaseId() {
+        return mBaseId;
+    }
+
+    boolean isHidden(AddressField field) {
+        return mHiddenFields.contains(field);
+    }
+
+    boolean isReadonly(AddressField field) {
+        return mReadonlyFields.contains(field);
+    }
+
+    boolean isRequired(AddressField field) {
+        return mRequiredFields.contains(field);
+    }
+
+    EnumSet<AddressField> getRequiredFields() {
+        return mRequiredFields;
+    }
+
+    /**
+     * Gets the customized label for the {@code field}, or returns null if none.
+     */
+    String getCustomLabel(AddressField field) {
+        return mCustomLabels.get(field);
+    }
+
+    /**
+     * Gets the URL of the Address Data Server.
+     */
+    String getUrl() {
+        return mServerUrl;
+    }
+
+    /**
+     * Gets the overridden field orders with their corresponding region code. Returns null if field
+     * orders for {@code regionCode} is not specified.
+     */
+    AddressField[] getCustomFieldOrder(String regionCode) {
+        if (regionCode == null) {
+            throw new RuntimeException("regionCode cannot be null.");
+        }
+        return mOverrideFieldOrder.get(regionCode);
+    }
+
+    /**
+     * Gets the customized max length for the {@code field}, or null if none.
+     */
+    Integer getCustomMaxLength(AddressField field) {
+        return mMaxLengths.get(field);
+    }
+
+    /**
+     * Class to build the form, specifying the attributes for each field.
+     */
+    public static class Builder {
+
+        private String mBaseId = "addressform";
+
+        private final EnumSet<AddressField> mRequiredFields =
+                EnumSet.noneOf(AddressField.class);
+
+        private final EnumSet<AddressField> mHiddenFields =
+                EnumSet.noneOf(AddressField.class);
+
+        private final EnumSet<AddressField> mReadonlyFields =
+                EnumSet.noneOf(AddressField.class);
+
+        private final EnumMap<AddressField, String> mCustomLabels =
+                new EnumMap<AddressField, String>(AddressField.class);
+
+        private final Map<String, AddressField[]> mOverrideFieldOrder =
+                new HashMap<String, AddressField[]>();
+
+        private final EnumMap<AddressField, Integer> mMaxLengths =
+                new EnumMap<AddressField, Integer>(AddressField.class);
+
+        /**
+         * Uses the default server URL from CacheData.
+         */
+        private String mServerUrl = new CacheData().getUrl();
+
+        /**
+         * Sets the base ID of the address form.
+         */
+        public Builder baseId(String baseId) {
+            if (baseId == null) {
+                throw new RuntimeException("baseId cannot be null.");
+            }
+            mBaseId = baseId;
+            return this;
+        }
+
+        public Builder hide(AddressField field) {
+            if (field == null) {
+                throw new RuntimeException("AddressField field cannot be null.");
+            }
+            mHiddenFields.add(field);
+            return this;
+        }
+
+        /**
+         * Make a field read-only.
+         */
+        public Builder readonly(AddressField field) {
+            if (field == null) {
+                throw new RuntimeException("AddressField field cannot be null.");
+            }
+            mReadonlyFields.add(field);
+            return this;
+        }
+
+        /**
+         * Make a field required.
+         */
+        public Builder required(AddressField field) {
+            if (field == null) {
+                throw new RuntimeException("AddressField field cannot be null.");
+            }
+            mRequiredFields.add(field);
+            return this;
+        }
+
+        /**
+         * Customizes label for an {@code AddressField}.
+         */
+        public Builder customizeLabel(AddressField field, String label) {
+            if (field == null) {
+                throw new RuntimeException("AddressField field cannot be null.");
+            }
+            if (label == null) {
+                throw new RuntimeException("Label cannot be null.");
+            }
+            mCustomLabels.put(field, label);
+            return this;
+        }
+
+        /**
+         * Sets the field order for a region code. The order you set here will override the
+         * predefined one. For example, you can set field order for US to be first {@code
+         * AddressField#ORGANIZATION} then {@code AddressField#RECIPIENT}. Repeated address fields
+         * in {@code fields} are not allowed. Size of {@code fields} has to be larger than one.
+         * Input {@code fields} can be partial or even contain field not needed in the specified
+         * {@code regionCode}. For example, German addresses contain the following fields
+         * (in order):<br/>
+           {@link AddressField#RECIPIENT}, {@link AddressField#ORGANIZATION}, {@link
+         * AddressField#STREET_ADDRESS}, {@link AddressField#POSTAL_CODE}, {@link
+         * AddressField#LOCALITY}. <br/>
+         *
+         * <p>With the following call: <br/>
+         *
+         * customizeFieldOrder("DE", AddressField.ORGANIZATION, AddressField.RECIPIENT,
+         * AddressField.ADMIN_AREA);
+         *
+         * <p>Field order for Germany will become: <br/> {@link AddressField#ORGANIZATION}, {@link
+         * AddressField#RECIPIENT}, {@link AddressField#STREET_ADDRESS}, {@link
+         * AddressField#POSTAL_CODE}, {@link AddressField#LOCALITY}. </p>
+         *
+         * <p>Notice that:<br/> <ol> <li>{@link AddressField#ORGANIZATION} comes before {@link
+         * AddressField#RECIPIENT} after reordering.</li>
+         * <li>Fields not specified stays the same.</li>
+         * <li>{@link AddressField#ADMIN_AREA} is specified but since it is not in German address
+         * format, it is simpled neglected.</li> </ol>
+         *
+         * @param fields the overridden field order.
+         */
+        public Builder customizeFieldOrder(String regionCode, AddressField... fields) {
+            if (regionCode == null) {
+                throw new RuntimeException("regionCode cannot be null.");
+            }
+            if (fields == null) {
+                throw new RuntimeException("Fields cannot be null.");
+            }
+            if (fields.length <= 1) {
+                throw new RuntimeException("There must be more than one field.");
+            }
+            HashSet<AddressField> checkList = new HashSet<AddressField>();
+            AddressField[] f = new AddressField[fields.length];
+            int i = 0;
+            for (AddressField field : fields) {
+                // Can't contain repeated address fields.
+                if (checkList.contains(field)) {
+                    throw new RuntimeException("Address fields cannot be repeated.");
+                }
+                checkList.add(field);
+                f[i] = field;
+                i++;
+            }
+            mOverrideFieldOrder.put(regionCode, f);
+            return this;
+        }
+
+        /**
+         * Sets the URL of address data server. {@code url} cannot be null. This url will override
+         * the default address server url.
+         */
+        public Builder setUrl(String url) {
+            if (url == null) {
+                throw new RuntimeException("Can't set address server URL to null.");
+            }
+            mServerUrl = url;
+            return this;
+        }
+
+        /**
+         * Customizes max length for a {@code AddressField}.
+         */
+        public Builder customizeMaxLength(AddressField field, int maxLength) {
+            if (field == null) {
+                throw new RuntimeException("AddressField field cannot be null.");
+            }
+            mMaxLengths.put(field, maxLength);
+            return this;
+        }
+
+        public FormOptions build() {
+            return new FormOptions(this);
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormatInterpreter.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/FormatInterpreter.java
new file mode 100644 (file)
index 0000000..ffd19b1
--- /dev/null
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Address format interpreter. A utility to find address format related info.
+ */
+class FormatInterpreter {
+
+    private static final String NEW_LINE = "%n";
+
+    private final String mDefaultFormat;
+
+    private final FormOptions mFormOptions;
+
+    /**
+     * Creates a new instance of {@link FormatInterpreter}.
+     */
+    FormatInterpreter(FormOptions options) {
+        Util.checkNotNull(RegionDataConstants.getCountryFormatMap(),
+                "null country name map not allowed");
+        Util.checkNotNull(options);
+        mFormOptions = options;
+        mDefaultFormat = getJsonValue("ZZ", AddressDataKey.FMT);
+        Util.checkNotNull(mDefaultFormat, "null default format not allowed");
+    }
+
+    /**
+     * Returns a list of address fields based on the format of {@code regionCode}. Script type is
+     * needed because some countries uses different address formats for local/Latin scripts.
+     *
+     * @param scriptType if {@link ScriptType#LOCAL}, use local format; else use Latin format.
+     */
+    List<AddressField> getAddressFieldOrder(ScriptType scriptType, String regionCode) {
+        Util.checkNotNull(scriptType);
+        Util.checkNotNull(regionCode);
+        List<AddressField> fieldOrder = new ArrayList<AddressField>();
+        for (String substring : getFormatSubStrings(scriptType, regionCode)) {
+            // Skips un-escaped characters and new lines.
+            if (!substring.matches("%.") || substring.equals(NEW_LINE)) {
+                continue;
+            }
+
+            AddressField field = AddressField.of(substring.charAt(1));
+            fieldOrder.add(field);
+        }
+
+        overrideFieldOrder(regionCode, fieldOrder);
+
+        // Uses two address lines instead of street address.
+        List<AddressField> finalFieldOrder = new ArrayList<AddressField>();
+        for (AddressField field : fieldOrder) {
+            if (field == AddressField.STREET_ADDRESS) {
+                finalFieldOrder.add(AddressField.ADDRESS_LINE_1);
+                finalFieldOrder.add(AddressField.ADDRESS_LINE_2);
+            } else {
+                finalFieldOrder.add(field);
+            }
+        }
+        return finalFieldOrder;
+    }
+
+    /**
+     * Returns a list of address fields based on the format of {@code regionCode} -- assuming script
+     * type is {@link ScriptType#LOCAL}.
+     */
+    List<AddressField> getAddressFieldOrder(String regionCode) {
+        Util.checkNotNull(regionCode);
+        return getAddressFieldOrder(ScriptType.LOCAL, regionCode);
+    }
+
+    private void overrideFieldOrder(String regionCode, List<AddressField> fieldOrder) {
+        if (mFormOptions.getCustomFieldOrder(regionCode) == null) {
+            return;
+        }
+
+        // Constructs a hash for overridden field order.
+        final Map<AddressField, Integer> fieldPriority = new HashMap<AddressField, Integer>();
+        int i = 0;
+        for (AddressField field : mFormOptions.getCustomFieldOrder(regionCode)) {
+            fieldPriority.put(field, i);
+            i++;
+        }
+
+        // Finds union of input fields and priority list.
+        List<AddressField> union = new ArrayList<AddressField>();
+        List<Integer> slots = new ArrayList<Integer>();
+        i = 0;
+        for (AddressField field : fieldOrder) {
+            if (fieldPriority.containsKey(field)) {
+                union.add(field);
+                slots.add(i);
+            }
+            i++;
+        }
+
+        // Overrides field order with priority list.
+        Collections.sort(union, new Comparator<AddressField>() {
+            @Override
+            public int compare(AddressField o1, AddressField o2) {
+                return fieldPriority.get(o1) - fieldPriority.get(o2);
+            }
+        });
+
+        // Puts reordered fields in slots.
+        for (int j = 0; j < union.size(); ++j) {
+            fieldOrder.set(slots.get(j), union.get(j));
+        }
+    }
+
+    /**
+     * Gets formatted address. For example,
+     *
+     * <p> John Doe<br> Dnar Corp<br> 5th St<br> Santa Monica CA 90123 </p>
+     *
+     * This method does not validate addresses. Also, it will "normalize" the result strings by
+     * removing redundant spaces and empty lines.
+     */
+    List<String> getEnvelopeAddress(AddressData address) {
+        Util.checkNotNull(address, "null input address not allowed");
+        String regionCode = address.getPostalCountry();
+
+        String lc = address.getLanguageCode();
+        ScriptType scriptType = ScriptType.LOCAL;
+        if (lc != null) {
+            scriptType = Util.isExplicitLatinScript(lc) ? ScriptType.LATIN : ScriptType.LOCAL;
+        }
+
+        List<String> lines = new ArrayList<String>();
+        StringBuilder currentLine = new StringBuilder();
+        for (String substr : getFormatSubStrings(scriptType, regionCode)) {
+            if (substr.equals(NEW_LINE)) {
+                String normalizedStr = removeAllRedundantSpaces(currentLine.toString());
+                if (normalizedStr.length() > 0) {
+                    lines.add(normalizedStr);
+                    currentLine.setLength(0);
+                }
+            } else if (substr.startsWith("%")) {
+                char c = substr.charAt(1);
+                AddressField field = AddressField.of(c);
+                Util.checkNotNull(field, "null address field for character " + c);
+
+                String value = null;
+                switch (field) {
+                    case STREET_ADDRESS:
+                        value = Util.joinAndSkipNulls("\n",
+                                address.getAddressLine1(),
+                                address.getAddressLine2());
+                        break;
+                    case COUNTRY:
+                        // Country name is treated separately.
+                        break;
+                    case ADMIN_AREA:
+                        value = address.getAdministrativeArea();
+                        break;
+                    case LOCALITY:
+                        value = address.getLocality();
+                        break;
+                    case DEPENDENT_LOCALITY:
+                        value = address.getDependentLocality();
+                        break;
+                    case RECIPIENT:
+                        value = address.getRecipient();
+                        break;
+                    case ORGANIZATION:
+                        value = address.getOrganization();
+                        break;
+                    case POSTAL_CODE:
+                        value = address.getPostalCode();
+                        break;
+                    default:
+                        break;
+                }
+
+                if (value != null) {
+                    currentLine.append(value);
+                }
+            } else {
+                currentLine.append(substr);
+            }
+        }
+        String normalizedStr = removeAllRedundantSpaces(currentLine.toString());
+        if (normalizedStr.length() > 0) {
+            lines.add(normalizedStr);
+        }
+        return lines;
+    }
+
+    /**
+     * Tokenizes the format string and returns the token string list. "%" is treated as an escape
+     * character. So for example "%n%a%nxyz" will be split into "%n", "%a", "%n", "x", "y", and "z".
+     * Escaped tokens correspond to either new line or address fields.
+     */
+    private List<String> getFormatSubStrings(ScriptType scriptType, String regionCode) {
+        String formatString = getFormatString(scriptType, regionCode);
+        List<String> parts = new ArrayList<String>();
+
+        boolean escaped = false;
+        for (char c : formatString.toCharArray()) {
+            if (escaped) {
+                escaped = false;
+                if (NEW_LINE.equals("%" + c)) {
+                    parts.add(NEW_LINE);
+                } else {
+                    Util.checkNotNull(AddressField.of(c), "Unrecognized character '" + c
+                            + "' in format pattern: " + formatString);
+                    parts.add("%" + c);
+                }
+            } else if (c == '%') {
+                escaped = true;
+            } else {
+                parts.add(c + "");
+            }
+        }
+        return parts;
+    }
+
+    private String removeAllRedundantSpaces(String str) {
+        str = str.trim();
+        str = str.replaceAll(" +", " ");
+        return str;
+    }
+
+    private String getFormatString(ScriptType scriptType, String regionCode) {
+        String format = (scriptType == ScriptType.LOCAL)
+                ? getJsonValue(regionCode, AddressDataKey.FMT)
+                : getJsonValue(regionCode, AddressDataKey.LFMT);
+        if (format == null) {
+            format = getJsonValue("ZZ", AddressDataKey.FMT);
+        }
+        return format;
+    }
+
+    private String getJsonValue(String regionCode, AddressDataKey key) {
+        Util.checkNotNull(regionCode);
+        String jsonString = RegionDataConstants.getCountryFormatMap().get(regionCode);
+        Util.checkNotNull(jsonString, "no json data for region code " + regionCode);
+
+        try {
+            JSONObject jsonObj = new JSONObject(new JSONTokener(jsonString));
+            if (!jsonObj.has(key.name().toLowerCase())) {
+                // Key not found. Return null.
+                return null;
+            }
+            // Gets the string for this key.
+            String parsedJsonString = jsonObj.getString(key.name().toLowerCase());
+            return parsedJsonString;
+        } catch (JSONException e) {
+            throw new RuntimeException("Invalid json for region code " + regionCode
+                    + ": " + jsonString);
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsoMap.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsoMap.java
new file mode 100644 (file)
index 0000000..fc5d16b
--- /dev/null
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ * Compatibility methods on top of the JSON data.
+ */
+class JsoMap extends JSONObject {
+
+    /**
+     * Construct a JsoMap object given some json text. This method directly evaluates the String
+     * that you pass in; no error or safety checking is performed, so be very careful about the
+     * source of your data.
+     *
+     * @param json JSON text describing an address format
+     * @return a JsoMap object made from the supplied JSON.
+     */
+    static JsoMap buildJsoMap(String json) throws JSONException {
+        return new JsoMap(new JSONTokener(json));
+    }
+
+    /**
+     * Construct an empty JsoMap.
+     *
+     * @return the empty object.
+     */
+    static JsoMap createEmptyJsoMap() {
+        return new JsoMap();
+    }
+
+    /**
+     * constructor.
+     */
+    protected JsoMap() {
+    }
+
+    private JsoMap(JSONTokener readFrom) throws JSONException {
+        super(readFrom);
+    }
+
+    private JsoMap(JSONObject copyFrom, String[] names) throws JSONException {
+        super(copyFrom, names);
+    }
+
+    /**
+     * Remove the specified key.
+     *
+     * @param key key name.
+     */
+    void delKey(String key) {
+        super.remove(key);
+    }
+
+    /**
+     * Retrieve the string value for specified key.
+     *
+     * @param key key name.
+     * @return string value.
+     * @throws ClassCastException, IllegalArgumentException.
+     */
+    @Override
+    public String get(String key) {  // throws ClassCastException, IllegalArgumentException
+        try {
+            Object o = super.get(key);
+            if (o instanceof String) {
+                return (String) o;
+            } else if (o instanceof Integer) {
+                throw new IllegalArgumentException();
+            } else {
+                throw new ClassCastException();
+            }
+        } catch (JSONException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Access JSONObject.get(String) which is shadowed by JsoMap.get(String).
+     *
+     * @param name A key string.
+     * @return The object associated with the key.
+     * @throws JSONException if the key is not found.
+     */
+    private Object getObject(String name) throws JSONException {
+        return super.get(name);
+    }
+
+    /**
+     * Retrieves the integer value for specified key.
+     *
+     * @return integer value or -1 if value is undefined.
+     */
+    @Override
+    public int getInt(String key) {
+        try {
+            Object o = super.get(key);
+            if (o instanceof Integer) {
+                return ((Integer) o).intValue();
+            } else {
+                throw new RuntimeException("Something other than an int was returned");
+            }
+        } catch (JSONException e) {
+            return -1;
+        }
+    }
+
+    /**
+     * Collect all the keys and return as a JSONArray.
+     *
+     * @return A JSONArray that contains all the keys.
+     */
+    JSONArray getKeys() {
+        return super.names();
+    }
+
+    /**
+     * Retrieve the JsoMap object for specified key.
+     *
+     * @param key key name.
+     * @return JsoMap object.
+     * @throws ClassCastException, IllegalArgumentException.
+     */
+    @SuppressWarnings("unchecked")
+    // JSONObject.keys() has no type information.
+    JsoMap getObj(String key)
+            throws ClassCastException, IllegalArgumentException {
+        try {
+            Object o = super.get(key);
+            if (o instanceof JSONObject) {
+                JSONObject value = (JSONObject) o;
+                ArrayList<String> keys = new ArrayList<String>(value.length());
+                for (Iterator<String> it = value.keys(); it.hasNext();) {
+                    keys.add(it.next());
+                }
+                String[] names = new String[keys.size()];
+                return new JsoMap(value, keys.toArray(names));
+            } else if (o instanceof Integer) {
+                throw new IllegalArgumentException();
+            } else {
+                throw new ClassCastException();
+            }
+        } catch (JSONException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Check if the object has specified key.
+     *
+     * @param key The key name to be checked.
+     * @return true if key can be found.
+     */
+    boolean containsKey(String key) {
+        return super.has(key);
+    }
+
+    /**
+     * Merge those keys not found in this object from specified object.
+     *
+     * @param obj The other object to be merged.
+     */
+    void mergeData(JsoMap obj) {
+        if (obj == null) {
+            return;
+        }
+
+        JSONArray names = obj.names();
+        if (names == null) {
+            return;
+        }
+
+        for (int i = 0; i < names.length(); i++) {
+            try {
+                String name = names.getString(i);
+                try {
+                    if (!super.has(name)) {
+                        super.put(name, obj.getObject(name));
+                    }
+                } catch (JSONException e) {
+                    throw new RuntimeException(e);
+                }
+            } catch (JSONException e) {
+                // Ignored.
+            }
+        }
+    }
+
+    /**
+     * Save a string to string mapping into this map.
+     *
+     * @param key   the string key.
+     * @param value the String value.
+     */
+    void put(String key, String value) {
+        try {
+            super.put(key, value);
+        } catch (JSONException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Save a string to integer mapping into this map.
+     *
+     * @param key   the string key.
+     * @param value the integer value.
+     */
+    void putInt(String key, int value) {
+        try {
+            super.put(key, value);
+        } catch (JSONException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Save a string to JSONObject mapping into this map.
+     *
+     * @param key   the string key.
+     * @param value a JSONObject as value.
+     */
+    void putObj(String key, JSONObject value) {
+        try {
+            super.put(key, value);
+        } catch (JSONException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    String string() throws ClassCastException, IllegalArgumentException {
+        StringBuilder sb = new StringBuilder("JsoMap[\n");
+        JSONArray keys = getKeys();
+        for (int i = 0; i < keys.length(); i++) {
+            String key;
+            try {
+                key = keys.getString(i);
+            } catch (JSONException e) {
+                throw new RuntimeException(e);
+            }
+            sb.append('(').append(key).append(':').append(get(key)).append(')').append('\n');
+        }
+        sb.append(']');
+        return sb.toString();
+    }
+
+    String map() throws ClassCastException, IllegalArgumentException {
+        StringBuilder sb = new StringBuilder("JsoMap[\n");
+        JSONArray keys = getKeys();
+        for (int i = 0; i < keys.length(); i++) {
+            String key;
+            try {
+                key = keys.getString(i);
+            } catch (JSONException e) {
+                throw new RuntimeException(e);
+            }
+            sb.append('(').append(key).append(':').append(getObj(key).string()).append(')')
+                    .append('\n');
+        }
+        sb.append(']');
+        return sb.toString();
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsonpRequestBuilder.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/JsonpRequestBuilder.java
new file mode 100644 (file)
index 0000000..0f40f15
--- /dev/null
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.params.HttpConnectionParams;
+import org.apache.http.params.HttpParams;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+/**
+ * Android implementation of those parts of the com.google.gwt.jsonp.client.JsonpRequestBuilder
+ * class that the CacheData class uses.
+ */
+class JsonpRequestBuilder {
+
+    /**
+     * Re-implementation of the com.google.gwt.user.client.rpc.AsyncCallback interface.
+     */
+    interface AsyncCallback<T> {
+
+        public void onFailure(Throwable caught);
+
+        public void onSuccess(T result);
+    }
+
+    /**
+     * @param timeout The expected timeout (ms) for this request.
+     */
+    void setTimeout(int timeout) {
+        HttpParams params = AsyncHttp.CLIENT.getParams();
+        HttpConnectionParams.setConnectionTimeout(params, timeout);
+        HttpConnectionParams.setSoTimeout(params, timeout);
+    }
+
+    /**
+     * Sends a JSONP request and expects a JsoMap object as a result.
+     */
+    void requestObject(String url, AsyncCallback<JsoMap> callback) {
+        HttpUriRequest request = new HttpGet(encodeUrl(url));
+        (new AsyncHttp(request, callback)).start();
+    }
+
+    /**
+     * Simple implementation of asynchronous HTTP GET.
+     */
+    private static class AsyncHttp extends Thread {
+
+        private static final HttpClient CLIENT = new DefaultHttpClient();
+
+        private HttpUriRequest mRequest;
+
+        private AsyncCallback<JsoMap> mCallback;
+
+        protected AsyncHttp(HttpUriRequest request, AsyncCallback<JsoMap> callback) {
+            mRequest = request;
+            mCallback = callback;
+        }
+
+        @Override
+        public void run() {
+            try {
+                final String response;
+                synchronized (CLIENT) {
+                    response = CLIENT.execute(mRequest, new BasicResponseHandler());
+                }
+                mCallback.onSuccess(JsoMap.buildJsoMap(response));
+            } catch (Exception e) {
+                mCallback.onFailure(e);
+            }
+        }
+    }
+
+    /**
+     * A quick hack to transform a string into an RFC 3986 compliant URL.
+     *
+     * TODO: Refactor the code to stop passing URLs around as strings, to eliminate the need for
+     * this hack.
+     */
+    private static String encodeUrl(String url) {
+        int length = url.length();
+        StringBuilder tmp = new StringBuilder(length);
+
+        try {
+            for (int i = 0; i < length; i++) {
+                int j = i;
+                char c = '\0';
+                for (; j < length; j++) {
+                    c = url.charAt(j);
+                    if (c == ':' || c == '/') {
+                        break;
+                    }
+                }
+                if (j == length) {
+                    tmp.append(URLEncoder.encode(url.substring(i), "UTF-8"));
+                    break;
+                } else if (j > i) {
+                    tmp.append(URLEncoder.encode(url.substring(i, j), "UTF-8"));
+                    tmp.append(c);
+                    i = j;
+                } else {
+                    tmp.append(c);
+                }
+            }
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);  // Impossible.
+        }
+
+        return tmp.toString();
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/LookupKey.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/LookupKey.java
new file mode 100644 (file)
index 0000000..35aad1d
--- /dev/null
@@ -0,0 +1,436 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.EnumMap;
+import java.util.Map;
+
+/**
+ * A builder for creating keys that are used to lookup data in the local cache and fetch data from
+ * the server. There are two key types: {@code KeyType#DATA} or {@code KeyType#EXAMPLES}.
+ *
+ * <p> The {@code KeyType#DATA} key is built based on a universal Address hierarchy, which is:<br>
+ *
+ * {@code AddressField#Country} -> {@code AddressField#ADMIN_AREA} -> {@code AddressField#Locality}
+ * -> {@code AddressField#DEPENDENT_LOCALITY} </p>
+ *
+ * <p> The {@code KeyType#EXAMPLES} key is built with the following format:<br>
+ *
+ * {@code AddressField#Country} -> {@code ScriptType} -> language. </p>
+ */
+final class LookupKey {
+
+    /**
+     * Key types. Address Widget organizes address info based on key types. For example, if you want
+     * to know how to verify or format an US address, you need to use {@link KeyType#DATA} to get
+     * that info; if you want to get an example address, you use {@link KeyType#EXAMPLES} instead.
+     */
+    enum KeyType {
+
+        /**
+         * Key type for getting address data.
+         */
+        DATA,
+        /**
+         * Key type for getting examples.
+         */
+        EXAMPLES
+    }
+
+    /**
+     * Script types. This is used for countries that do not use Latin script, but accept it for
+     * transcribing their addresses. For example, you can write a Japanese address in Latin script
+     * instead of Japanese:
+     *
+     * <p> 7-2, Marunouchi 2-Chome, Chiyoda-ku, Tokyo 100-8799 </p>
+     *
+     * Notice that {@link ScriptType} is based on country/region, not language.
+     */
+    enum ScriptType {
+
+        /**
+         * The script that uses Roman characters like ABC (as opposed to scripts like Cyrillic or
+         * Arabic).
+         */
+        LATIN,
+
+        /**
+         * Local scripts. For Japan, it's Japanese (including Hiragana, Katagana, and Kanji); For
+         * Saudi Arabia, it's Arabic. Notice that for US, the local script is actually Latin script
+         * (The same goes for other countries that use Latin script). For these countries, we do not
+         * provide two set of data (Latin and local) since they use only Latin script. You have to
+         * specify the {@link ScriptType} as local instead Latin.
+         */
+        LOCAL
+    }
+
+    /**
+     * The universal address hierarchy. Notice that sub-administrative area is neglected here since
+     * it is not required to fill out address form.
+     */
+    private static final AddressField[] HIERARCHY = {
+            AddressField.COUNTRY,
+            AddressField.ADMIN_AREA,
+            AddressField.LOCALITY,
+            AddressField.DEPENDENT_LOCALITY};
+
+    private static final String SLASH_DELIM = "/";
+
+    private static final String DASH_DELIM = "--";
+
+    private static final String DEFAULT_LANGUAGE = "_default";
+
+    private final KeyType mKeyType;
+
+    private final ScriptType mScriptType;
+
+    // Values for hierarchy address fields.
+    private final Map<AddressField, String> mNodes;
+
+    private final String mKeyString;
+
+    private final String mLanguageCode;
+
+    private LookupKey(Builder builder) {
+        this.mKeyType = builder.keyType;
+        this.mScriptType = builder.script;
+        this.mNodes = builder.nodes;
+        this.mLanguageCode = builder.languageCode;
+        this.mKeyString = getKeyString();
+    }
+
+    /**
+     * Gets lookup key for the input address field. This method does not allow key with key type of
+     * {@link KeyType#EXAMPLES}.
+     *
+     * @param field a field in the address hierarchy.
+     * @return key of the specified address field. If address field is not in the hierarchy, or is
+     *         more granular than the current key has, returns null. For example, if your current
+     *         key is "data/US" (down to country level), and you want to get the key for Locality
+     *         (more granular than country), it will return null.
+     */
+    LookupKey getKeyForUpperLevelField(AddressField field) {
+        if (mKeyType != KeyType.DATA) {
+            // We only support getting the parent key for the data key type.
+            throw new RuntimeException("Only support getting parent keys for the data key type.");
+        }
+        Builder newKeyBuilder = new Builder(this);
+
+        boolean removeNode = false;
+        boolean fieldInHierarchy = false;
+        for (AddressField hierarchyField : HIERARCHY) {
+            if (removeNode) {
+                if (newKeyBuilder.nodes.containsKey(hierarchyField)) {
+                    newKeyBuilder.nodes.remove(hierarchyField);
+                }
+            }
+            if (hierarchyField == field) {
+                if (!newKeyBuilder.nodes.containsKey(hierarchyField)) {
+                    return null;
+                }
+                removeNode = true;
+                fieldInHierarchy = true;
+            }
+        }
+
+        if (!fieldInHierarchy) {
+            return null;
+        }
+
+        newKeyBuilder.languageCode = mLanguageCode;
+        newKeyBuilder.script = mScriptType;
+
+        return newKeyBuilder.build();
+    }
+
+    /**
+     * Returns the string value of a field in a key for a particular
+     * AddressField. For example, for the key "data/US/CA" and the address
+     * field AddressField.COUNTRY, "US" would be returned. Returns an empty
+     * string if the key does not have this field in it.
+     */
+    String getValueForUpperLevelField(AddressField field) {
+        // First, get the key for this field.
+        LookupKey key = getKeyForUpperLevelField(field);
+        // Now we know the last value in the string is the value for this field.
+        if (key != null) {
+            String keyString = key.toString();
+            int lastSlashPosition = keyString.lastIndexOf(SLASH_DELIM);
+            if (lastSlashPosition > 0 && lastSlashPosition != keyString.length()) {
+                return keyString.substring(lastSlashPosition + 1);
+            }
+        }
+        return "";
+    }
+
+    /**
+     * Gets parent key for data key. For example, parent key for "data/US/CA" is "data/US". This
+     * method does not allow key with key type of {@link KeyType#EXAMPLES}.
+     */
+    LookupKey getParentKey() {
+        if (mKeyType != KeyType.DATA) {
+            throw new RuntimeException("Only support getting parent keys for the data key type.");
+        }
+        // Root key's parent should be null.
+        if (!mNodes.containsKey(AddressField.COUNTRY)) {
+            return null;
+        }
+
+        Builder parentKeyBuilder = new Builder(this);
+        AddressField mostGranularField = AddressField.COUNTRY;
+
+        for (AddressField hierarchyField : HIERARCHY) {
+            if (!mNodes.containsKey(hierarchyField)) {
+                break;
+            }
+            mostGranularField = hierarchyField;
+        }
+        parentKeyBuilder.nodes.remove(mostGranularField);
+        return parentKeyBuilder.build();
+    }
+
+    KeyType getKeyType() {
+        return mKeyType;
+    }
+
+    /**
+     * Gets a key in string format. E.g., "data/US/CA".
+     */
+    private String getKeyString() {
+        StringBuilder keyBuilder = new StringBuilder(mKeyType.name().toLowerCase());
+
+        if (mKeyType == KeyType.DATA) {
+            for (AddressField field : HIERARCHY) {
+                if (!mNodes.containsKey(field)) {
+                    break;
+                }
+                if (field == AddressField.COUNTRY && mLanguageCode != null) {
+                    keyBuilder.append(SLASH_DELIM)
+                            .append(mNodes.get(field)).append(DASH_DELIM)
+                            .append(mLanguageCode);
+                } else {
+                    keyBuilder.append(SLASH_DELIM).append(mNodes.get(field));
+                }
+            }
+        } else {
+            if (mNodes.containsKey(AddressField.COUNTRY)) {
+                // Example key. E.g., "examples/TW/local/_default".
+                keyBuilder.append(SLASH_DELIM).append(mNodes.get(AddressField.COUNTRY))
+                        .append(SLASH_DELIM).append(mScriptType.name().toLowerCase())
+                        .append(SLASH_DELIM).append(DEFAULT_LANGUAGE);
+            }
+        }
+
+        return keyBuilder.toString();
+    }
+
+    /**
+     * Gets a lookup key as a plain text string., e.g., "data/US/CA".
+     */
+    @Override
+    public String toString() {
+        return mKeyString;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if ((obj == null) || (obj.getClass() != this.getClass())) {
+            return false;
+        }
+
+        return ((LookupKey) obj).toString().equals(mKeyString);
+    }
+
+    @Override
+    public int hashCode() {
+        return mKeyString.hashCode();
+    }
+
+    static boolean hasValidKeyPrefix(String key) {
+        for (KeyType type : KeyType.values()) {
+            if (key.startsWith(type.name().toLowerCase())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Builds lookup keys.
+     */
+    static class Builder {
+
+        private KeyType keyType;
+
+        // Default to LOCAL script.
+
+        private ScriptType script = ScriptType.LOCAL;
+
+        private Map<AddressField, String> nodes = new EnumMap<AddressField, String>(
+                AddressField.class);
+
+        private String languageCode;
+
+        /**
+         * Creates a new builder for the specified key type. keyType cannot be null.
+         */
+        Builder(KeyType keyType) {
+            this.keyType = keyType;
+        }
+
+        /**
+         * Creates a new builder for the specified key. oldKey cannot be null.
+         */
+        Builder(LookupKey oldKey) {
+            this.keyType = oldKey.mKeyType;
+            this.script = oldKey.mScriptType;
+            this.languageCode = oldKey.mLanguageCode;
+            for (AddressField field : HIERARCHY) {
+                if (!oldKey.mNodes.containsKey(field)) {
+                    break;
+                }
+                this.nodes.put(field, oldKey.mNodes.get(field));
+            }
+        }
+
+        /**
+         * Builds the {@link LookupKey} with the input key string. Input string has to represent
+         * either a {@link KeyType#DATA} key or a {@link KeyType#EXAMPLES} key. Also, key hierarchy
+         * deeper than {@link AddressField#DEPENDENT_LOCALITY} is not allowed. Notice that if any
+         * node in the hierarchy is empty, all the descendant nodes' values will be neglected. For
+         * example, input string "data/US//Mt View" will become "data/US".
+         *
+         * @param keyString e.g., "data/US/CA"
+         */
+        Builder(String keyString) {
+            String[] parts = keyString.split(SLASH_DELIM);
+            // Check some pre-conditions.
+            if (!parts[0].equals(KeyType.DATA.name().toLowerCase()) &&
+                    !parts[0].equals(KeyType.EXAMPLES.name().toLowerCase())) {
+                throw new RuntimeException("Wrong key type: " + parts[0]);
+            }
+            if (parts.length > HIERARCHY.length + 1) {
+                throw new RuntimeException(
+                        "input key '" + keyString + "' deeper than supported hierarchy");
+            }
+            if (parts[0].equals("data")) {
+                keyType = KeyType.DATA;
+
+                // Parses country and language info.
+                if (parts.length > 1) {
+                    String substr = Util.trimToNull(parts[1]);
+                    if (substr.contains(DASH_DELIM)) {
+                        String[] s = substr.split(DASH_DELIM);
+                        if (s.length != 2) {
+                            throw new RuntimeException(
+                                    "Wrong format: Substring should be country "
+                                            + "code--language code");
+                        }
+                        substr = s[0];
+                        languageCode = s[1];
+                    }
+                    this.nodes.put(HIERARCHY[0], substr);
+                }
+
+                // Parses sub-country info.
+                if (parts.length > 2) {
+                    for (int i = 2; i < parts.length; ++i) {
+                        String substr = Util.trimToNull(parts[i]);
+                        if (substr == null) {
+                            break;
+                        }
+                        this.nodes.put(HIERARCHY[i - 1], substr);
+                    }
+                }
+            } else if (parts[0].equals("examples")) {
+                keyType = KeyType.EXAMPLES;
+
+                // Parses country info.
+                if (parts.length > 1) {
+                    this.nodes.put(AddressField.COUNTRY, parts[1]);
+                }
+
+                // Parses script types.
+                if (parts.length > 2) {
+                    String scriptStr = parts[2];
+                    if (scriptStr.equals("local")) {
+                        this.script = ScriptType.LOCAL;
+                    } else if (scriptStr.equals("latin")) {
+                        this.script = ScriptType.LATIN;
+                    } else {
+                        throw new RuntimeException("Script type has to be either latin or local.");
+                    }
+                }
+
+                // Parses language code. Example: "zh_Hant" in
+                // "examples/TW/local/zH_Hant".
+                if (parts.length > 3 && !parts[3].equals(DEFAULT_LANGUAGE)) {
+                    languageCode = parts[3];
+                }
+            }
+        }
+
+        Builder setLanguageCode(String languageCode) {
+            this.languageCode = languageCode;
+            return this;
+        }
+
+        /**
+         * Sets key using {@link AddressData}. Notice that if any node in the hierarchy is empty,
+         * all the descendant nodes' values will be neglected. For example, the following address
+         * misses {@link AddressField#ADMIN_AREA}, thus its data key will be "data/US".
+         *
+         * <p> country: US<br> administrative area: null<br> locality: Mt. View </p>
+         */
+        Builder setAddressData(AddressData data) {
+            languageCode = data.getLanguageCode();
+            if (languageCode != null) {
+                if (Util.isExplicitLatinScript(languageCode)) {
+                    script = ScriptType.LATIN;
+                }
+            }
+
+            if (data.getPostalCountry() == null) {
+                return this;
+            }
+            this.nodes.put(AddressField.COUNTRY, data.getPostalCountry());
+
+            if (data.getAdministrativeArea() == null) {
+                return this;
+            }
+            this.nodes.put(AddressField.ADMIN_AREA, data.getAdministrativeArea());
+
+            if (data.getLocality() == null) {
+                return this;
+            }
+            this.nodes.put(AddressField.LOCALITY, data.getLocality());
+
+            if (data.getDependentLocality() == null) {
+                return this;
+            }
+            this.nodes.put(AddressField.DEPENDENT_LOCALITY, data.getDependentLocality());
+            return this;
+        }
+
+        LookupKey build() {
+            return new LookupKey(this);
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/NotifyingListener.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/NotifyingListener.java
new file mode 100644 (file)
index 0000000..60a5f74
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ * A helper class to let the calling thread wait until loading has finished.
+ */
+public class NotifyingListener implements DataLoadListener {
+    private Object mSleeper;
+    private boolean mDone;
+
+    NotifyingListener(Object sleeper) {
+        mSleeper = sleeper;
+        mDone = false;
+    }
+
+    @Override
+    public void dataLoadingBegin() {
+    }
+
+    @Override
+    public void dataLoadingEnd() {
+        synchronized (this) {
+            mDone = true;
+        }
+        synchronized (mSleeper) {
+            mSleeper.notify();
+        }
+    }
+
+    void waitLoadingEnd() throws InterruptedException {
+        synchronized (this) {
+            if (mDone) return;
+        }
+        synchronized (mSleeper) {
+            mSleeper.wait();
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionData.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionData.java
new file mode 100644 (file)
index 0000000..2b82c0a
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ * A simple class to hold region data. Instances of this class are immutable.
+ */
+class RegionData {
+
+    private String mKey;
+    private String mName;
+
+    /**
+     * Create a new RegionData object.
+     */
+    private RegionData() {
+    }
+
+    /**
+     * Copy constructor. data should not be null.
+     *
+     * @param data A populated instance of RegionData
+     */
+    private RegionData(RegionData data) {
+        Util.checkNotNull(data);
+        mKey = data.mKey;
+        mName = data.mName;
+    }
+
+    /**
+     * Gets the key of the region. For example, California's key is "CA".
+     */
+    String getKey() {
+        return mKey;
+    }
+
+    /**
+     * Gets the name. Returns null if not specified.
+     */
+    String getName() {
+        return mName;
+    }
+
+    /**
+     * Gets the best display name. Returns the name if this is not null, otherwise the key.
+     */
+    public String getDisplayName() {
+        return (mName != null) ? mName : mKey;
+    }
+
+    /**
+     * Checks if the input subkey is the name (in Latin or local script) of the region. Returns
+     * false if subkey is not a valid name for the region, or the input subkey is null.
+     *
+     * @param subkey a string that refers to the name of a geo location. Like "California", "CA", or
+     *               "Mountain View". Names in the local script are also supported.
+     */
+    boolean isValidName(String subkey) {
+        if (subkey == null) {
+            return false;
+        }
+        if (subkey.equalsIgnoreCase(mKey) || subkey.equalsIgnoreCase(mName)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * A builder class to facilitate the creation of RegionData objects.
+     */
+    static class Builder {
+        RegionData mData = new RegionData();
+
+        RegionData build() {
+            return new RegionData(mData);
+        }
+
+        Builder setKey(String key) {
+            Util.checkNotNull(key, "Key should not be null.");
+            mData.mKey = key;
+            return this;
+        }
+
+        /**
+         * Sets name of the region. For example, "California". If the name is an empty string, sets
+         * it to null.
+         */
+        Builder setName(String name) {
+            mData.mName = Util.trimToNull(name);
+            return this;
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionDataConstants.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/RegionDataConstants.java
new file mode 100644 (file)
index 0000000..2b317df
--- /dev/null
@@ -0,0 +1,1309 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Initial data in JSON format for regions. This has some formatting information for some countries,
+ * and a list of all the regions that the widget can support. Data has been sorted below for ease of
+ * editing.
+ */
+class RegionDataConstants {
+
+    private static final Map<String, String> COUNTRY_FORMAT_MAP =
+            new HashMap<String, String>();
+
+    /**
+     * Assumes the array is a well-formed array - i.e., there are no unmatched keys in the input.
+     * Package-private so it can be accessed by tests.
+     */
+    static String convertArrayToJsonString(String[] input) {
+        JSONObject object = new JSONObject();
+        for (int i = 0; i < input.length; i += 2) {
+            try {
+                object.put(input[i], input[i + 1]);
+            } catch (JSONException e) {
+                // Ignore for now.
+            }
+        }
+        return object.toString();
+    }
+
+    private enum RegionDataEnum {
+
+        AD(new String[]{
+                "name", "ANDORRA",
+                "lang", "ca",
+                "languages", "ca",
+                "fmt", "%N%n%O%n%A%n%Z %S",
+                "require", "AS",
+                "upper", "S",
+                "state_name_type", "parish",
+        }),
+        AE(new String[]{
+                "name", "UNITED ARAB EMIRATES",
+                "fmt", "%N%n%O%n%A%n%C",
+                "require", "AC",
+        }),
+        AF(new String[]{
+                "name", "AFGHANISTAN",
+        }),
+        AG(new String[]{
+                "name", "ANTIGUA AND BARBUDA",
+                "require", "A",
+        }),
+        AI(new String[]{
+                "name", "ANGUILLA",
+        }),
+        AL(new String[]{
+                "name", "ALBANIA",
+        }),
+        AM(new String[]{
+                "name", "ARMENIA",
+                "lang", "hy",
+                "languages", "hy",
+                "fmt", "%N%n%O%n%A%n%Z%n%C%n%S",
+                "lfmt", "%N%n%O%n%A%n%Z%n%C%n%S",
+        }),
+        AN(new String[]{
+                "name", "NETHERLANDS ANTILLES",
+        }),
+        AO(new String[]{
+                "name", "ANGOLA",
+        }),
+        AQ(new String[]{
+                "name", "ANTARCTICA",
+        }),
+        AR(new String[]{
+                "name", "ARGENTINA",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z %C%n%S",
+                "upper", "ACZ",
+                "state_name_type", "state",
+        }),
+        AS(new String[]{
+                "name", "AMERICAN SAMOA",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        AT(new String[]{
+                "name", "AUSTRIA",
+                "fmt", "%O%n%N%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        AU(new String[]{
+                "name", "AUSTRALIA",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%O%n%N%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "CS",
+                "state_name_type", "state",
+        }),
+        AW(new String[]{
+                "name", "ARUBA",
+        }),
+        AX(new String[]{
+                "name", "FINLAND",
+                "fmt", "%O%n%N%n%A%nAX-%Z %C%n\u00C5LAND",
+                "require", "ACZ",
+                "postprefix", "AX-",
+        }),
+        AZ(new String[]{
+                "name", "AZERBAIJAN",
+                "fmt", "%N%n%O%n%A%nAZ %Z %C",
+                "postprefix", "AZ ",
+        }),
+        BA(new String[]{
+                "name", "BOSNIA AND HERZEGOVINA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        BB(new String[]{
+                "name", "BARBADOS",
+                "state_name_type", "parish",
+        }),
+        BD(new String[]{
+                "name", "BANGLADESH",
+                "fmt", "%N%n%O%n%A%n%C - %Z",
+        }),
+        BE(new String[]{
+                "name", "BELGIUM",
+                "fmt", "%O%n%N%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        BF(new String[]{
+                "name", "BURKINA FASO",
+                "fmt", "%N%n%O%n%A%n%C %X",
+        }),
+        BG(new String[]{
+                "name", "BULGARIA (REP.)",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        BH(new String[]{
+                "name", "BAHRAIN",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        BI(new String[]{
+                "name", "BURUNDI",
+        }),
+        BJ(new String[]{
+                "name", "BENIN",
+                "upper", "AC",
+        }),
+        BL(new String[]{
+                "name", "SAINT BARTHELEMY",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "upper", "ACX",
+                "require", "ACZ",
+        }),
+        BM(new String[]{
+                "name", "BERMUDA",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        BN(new String[]{
+                "name", "BRUNEI DARUSSALAM",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        BO(new String[]{
+                "name", "BOLIVIA",
+                "upper", "AC",
+        }),
+        BR(new String[]{
+                "name", "BRAZIL",
+                "lang", "pt",
+                "languages", "pt",
+                "fmt", "%O%n%N%n%A%n%C-%S%n%Z",
+                "require", "ASCZ",
+                "upper", "CS",
+                "state_name_type", "state",
+        }),
+        BS(new String[]{
+                "name", "BAHAMAS",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C, %S",
+                "state_name_type", "island",
+        }),
+        BT(new String[]{
+                "name", "BHUTAN",
+        }),
+        BV(new String[]{
+                "name", "BOUVET ISLAND",
+        }),
+        BW(new String[]{
+                "name", "BOTSWANA",
+        }),
+        BY(new String[]{
+                "name", "BELARUS",
+                "fmt", "%S%n%Z %C %X%n%A%n%O%n%N",
+        }),
+        BZ(new String[]{
+                "name", "BELIZE",
+        }),
+        CA(new String[]{
+                "name", "CANADA",
+                "lang", "en",
+                "languages", "en~fr",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOSZ",
+        }),
+        CC(new String[]{
+                "name", "COCOS (KEELING) ISLANDS",
+                "fmt", "%O%n%N%n%A%n%C %S %Z",
+                "upper", "CS",
+        }),
+        CD(new String[]{
+                "name", "CONGO (DEM. REP.)",
+                "fmt", "%N%n%O%n%A%n%C %X",
+        }),
+        CF(new String[]{
+                "name", "CENTRAL AFRICAN REPUBLIC",
+        }),
+        CG(new String[]{
+                "name", "CONGO (REP.)",
+        }),
+        CH(new String[]{
+                "name", "SWITZERLAND",
+                "lang", "de",
+                "languages", "de~fr~it",
+                "fmt", "%O%n%N%n%A%nCH-%Z %C",
+                "require", "ACZ",
+                "upper", "",
+                "postprefix", "CH-",
+        }),
+        CI(new String[]{
+                "name", "COTE D'IVOIRE",
+                "fmt", "%N%n%O%n%X %A %C %X",
+        }),
+        CK(new String[]{
+                "name", "COOK ISLANDS",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        CL(new String[]{
+                "name", "CHILE",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z %C%n%S",
+                "state_name_type", "state",
+        }),
+        CM(new String[]{
+                "name", "CAMEROON",
+        }),
+        CN(new String[]{
+                "name", "P.R. CHINA",
+                "lang", "zh-hans",
+                "languages", "zh-hans",
+                "fmt", "%Z%n%S%C%D%n%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A, %D%n%C%n%S, %Z",
+                "require", "ACSZ",
+                "upper", "S",
+                "fmtCharsets", "GB2312",
+                "hasDisputed", "true",
+        }),
+        CO(new String[]{
+                "name", "COLOMBIA",
+                "fmt", "%N%n%O%n%A%n%C, %S",
+        }),
+        CR(new String[]{
+                "name", "COSTA RICA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        CS(new String[]{
+                "name", "SERBIA AND MONTENEGRO",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        CV(new String[]{
+                "name", "CAPE VERDE",
+                "lang", "pt",
+                "languages", "pt",
+                "fmt", "%N%n%O%n%A%n%Z %C%n%S",
+                "state_name_type", "island",
+        }),
+        CX(new String[]{
+                "name", "CHRISTMAS ISLAND",
+                "fmt", "%O%n%N%n%A%n%C %S %Z",
+                "upper", "CS",
+        }),
+        CY(new String[]{
+                "name", "CYPRUS",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        CZ(new String[]{
+                "name", "CZECH REP.",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        DE(new String[]{
+                "name", "GERMANY",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        DJ(new String[]{
+                "name", "DJIBOUTI",
+        }),
+        DK(new String[]{
+                "name", "DENMARK",
+                "fmt", "%O%n%N%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        DM(new String[]{
+                "name", "DOMINICA",
+        }),
+        DO(new String[]{
+                "name", "DOMINICAN REP.",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        DZ(new String[]{
+                "name", "ALGERIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        EC(new String[]{
+                "name", "ECUADOR",
+                "fmt", "%N%n%O%n%A%n%Z%n%C",
+                "upper", "CZ",
+        }),
+        EE(new String[]{
+                "name", "ESTONIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        EG(new String[]{
+                "name", "EGYPT",
+                "fmt", "%N%n%O%n%A%n%C%n%S%n%Z",
+                "dir", "rtl",
+        }),
+        EH(new String[]{
+                "name", "WESTERN SAHARA",
+        }),
+        ER(new String[]{
+                "name", "ERITREA",
+        }),
+        ES(new String[]{
+                "name", "SPAIN",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z %C %S",
+                "require", "ACSZ",
+                "upper", "CS",
+        }),
+        ET(new String[]{
+                "name", "ETHIOPIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        FI(new String[]{
+                "name", "FINLAND",
+                "fmt", "%O%n%N%n%A%nFI-%Z %C",
+                "require", "ACZ",
+                "postprefix", "FI-",
+        }),
+        FJ(new String[]{
+                "name", "FIJI",
+        }),
+        FK(new String[]{
+                "name", "FALKLAND ISLANDS (MALVINAS)",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        FM(new String[]{
+                "name", "MICRONESIA (Federated State of)",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        FO(new String[]{
+                "name", "FAROE ISLANDS",
+                "fmt", "%N%n%O%n%A%nFO%Z %C",
+                "postprefix", "FO",
+        }),
+        FR(new String[]{
+                "name", "FRANCE",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "CX",
+        }),
+        GA(new String[]{
+                "name", "GABON",
+        }),
+        GB(new String[]{
+                "name", "UNITED KINGDOM",
+                "fmt", "%N%n%O%n%A%n%C%n%S%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+                "state_name_type", "county",
+        }),
+        GD(new String[]{
+                "name", "GRENADA (WEST INDIES)",
+        }),
+        GE(new String[]{
+                "name", "GEORGIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        GF(new String[]{
+                "name", "FRENCH GUIANA",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        GG(new String[]{
+                "name", "CHANNEL ISLANDS",
+                "fmt", "%N%n%O%n%A%n%X%n%C%nGUERNSEY%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        GH(new String[]{
+                "name", "GHANA",
+        }),
+        GI(new String[]{
+                "name", "GIBRALTAR",
+                "fmt", "%N%n%O%n%A",
+                "require", "A",
+        }),
+        GL(new String[]{
+                "name", "GREENLAND",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        GM(new String[]{
+                "name", "GAMBIA",
+        }),
+        GN(new String[]{
+                "name", "GUINEA",
+                "fmt", "%N%n%O%n%Z %A %C",
+        }),
+        GP(new String[]{
+                "name", "GUADELOUPE",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        GQ(new String[]{
+                "name", "EQUATORIAL GUINEA",
+        }),
+        GR(new String[]{
+                "name", "GREECE",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        GS(new String[]{
+                "name", "SOUTH GEORGIA",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        GT(new String[]{
+                "name", "GUATEMALA",
+                "fmt", "%N%n%O%n%A%n%Z- %C",
+        }),
+        GU(new String[]{
+                "name", "GUAM",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        GW(new String[]{
+                "name", "GUINEA-BISSAU",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        GY(new String[]{
+                "name", "GUYANA",
+        }),
+        HK(new String[]{
+                "name", "HONG KONG",
+                "lang", "zh",
+                "languages", "zh",
+                "fmt", "%S%n%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A%n%S",
+                "require", "AS",
+                "upper", "S",
+                "state_name_type", "area",
+                "fmtCharsets", "Big5",
+        }),
+        HM(new String[]{
+                "name", "HEARD AND MCDONALD ISLANDS",
+                "fmt", "%O%n%N%n%A%n%C %S %Z",
+                "upper", "CS",
+        }),
+        HN(new String[]{
+                "name", "HONDURAS",
+                "fmt", "%N%n%O%n%A%n%C, %S%n%Z",
+                "require", "ACS",
+        }),
+        HR(new String[]{
+                "name", "CROATIA",
+                "fmt", "%N%n%O%n%A%nHR-%Z %C",
+                "postprefix", "HR-",
+        }),
+        HT(new String[]{
+                "name", "HAITI",
+                "fmt", "%N%n%O%n%A%nHT%Z %C %X",
+                "postprefix", "HT",
+        }),
+        HU(new String[]{
+                "name", "HUNGARY (Rep.)",
+                "fmt", "%N%n%O%n%C%n%A%n%Z",
+                "upper", "ACNO",
+        }),
+        ID(new String[]{
+                "name", "INDONESIA",
+                "fmt", "%N%n%O%n%A%n%C %Z%n%S",
+        }),
+        IE(new String[]{
+                "name", "IRELAND",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C%n%S",
+                "state_name_type", "county",
+        }),
+        IL(new String[]{
+                "name", "ISRAEL",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+                "dir", "rtl",
+        }),
+        IM(new String[]{
+                "name", "ISLE OF MAN",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        IN(new String[]{
+                "name", "INDIA",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C %Z%n%S",
+                "require", "ACSZ",
+                "state_name_type", "state",
+        }),
+        IO(new String[]{
+                "name", "BRITISH INDIAN OCEAN TERRITORY",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        IQ(new String[]{
+                "name", "IRAQ",
+                "fmt", "%O%n%N%n%A%n%C, %S%n%Z",
+                "require", "ACS",
+                "upper", "CS",
+        }),
+        IS(new String[]{
+                "name", "ICELAND",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        IT(new String[]{
+                "name", "ITALY",
+                "lang", "it",
+                "languages", "it",
+                "fmt", "%N%n%O%n%A%n%Z %C %S",
+                "require", "ACSZ",
+                "upper", "CS",
+        }),
+        JE(new String[]{
+                "name", "CHANNEL ISLANDS",
+                "fmt", "%N%n%O%n%A%n%X%n%C%nJERSEY%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        JM(new String[]{
+                "name", "JAMAICA",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C%n%S %X",
+                "require", "ACS",
+                "state_name_type", "parish",
+        }),
+        JO(new String[]{
+                "name", "JORDAN",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        JP(new String[]{
+                "name", "JAPAN",
+                "lang", "ja",
+                "languages", "ja",
+                "fmt", "\u3012%Z%n%S%C%n%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A%n%C, %S%n%Z",
+                "require", "ACSZ",
+                "upper", "S",
+                "state_name_type", "prefecture",
+                "fmtCharsets", "ISO-2022-JP",
+        }),
+        KE(new String[]{
+                "name", "KENYA",
+                "fmt", "%N%n%O%n%A%n%C%n%Z",
+        }),
+        KG(new String[]{
+                "name", "KYRGYZSTAN",
+                "fmt", "%Z %C %X%n%A%n%O%n%N",
+        }),
+        KH(new String[]{
+                "name", "CAMBODIA",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        KI(new String[]{
+                "name", "KIRIBATI",
+                "fmt", "%N%n%O%n%A%n%S%n%C",
+                "upper", "ACNOS",
+                "state_name_type", "island",
+        }),
+        KM(new String[]{
+                "name", "COMOROS",
+                "upper", "AC",
+        }),
+        KN(new String[]{
+                "name", "SAINT KITTS AND NEVIS",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C, %S",
+                "require", "ACS",
+                "state_name_type", "island",
+        }),
+        KR(new String[]{
+                "name", "KOREA (REP.)",
+                "lang", "ko",
+                "languages", "ko",
+                "fmt", "%S %C%D%n%A%n%O%n%N%nSEOUL %Z",
+                "lfmt", "%N%n%O%n%A%n%D%n%C%n%S%nSEOUL %Z",
+                "require", "ACSZ",
+                "upper", "Z",
+                "state_name_type", "do_si",
+                "fmtCharsets", "EUC-KR",
+        }),
+        KW(new String[]{
+                "name", "KUWAIT",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        KY(new String[]{
+                "name", "CAYMAN ISLANDS",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%S",
+                "require", "AS",
+                "state_name_type", "island",
+        }),
+        KZ(new String[]{
+                "name", "KAZAKHSTAN",
+                "fmt", "%Z%n%S%n%C%n%A%n%O%n%N",
+        }),
+        LA(new String[]{
+                "name", "LAO (PEOPLE'S DEM. REP.)",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        LB(new String[]{
+                "name", "LEBANON",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        LC(new String[]{
+                "name", "SAINT LUCIA",
+        }),
+        LI(new String[]{
+                "name", "LIECHTENSTEIN",
+                "fmt", "%O%n%N%n%A%nFL-%Z %C",
+                "require", "ACZ",
+                "postprefix", "FL-",
+        }),
+        LK(new String[]{
+                "name", "SRI LANKA",
+                "fmt", "%N%n%O%n%A%n%C%n%Z",
+        }),
+        LR(new String[]{
+                "name", "LIBERIA",
+                "fmt", "%N%n%O%n%A%n%Z %C %X",
+        }),
+        LS(new String[]{
+                "name", "LESOTHO",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        LT(new String[]{
+                "name", "LITHUANIA",
+                "fmt", "%O%n%N%n%A%nLT-%Z %C",
+                "postprefix", "LT-",
+        }),
+        LU(new String[]{
+                "name", "LUXEMBOURG",
+                "fmt", "%O%n%N%n%A%nL-%Z %C",
+                "require", "ACZ",
+                "postprefix", "L-",
+        }),
+        LV(new String[]{
+                "name", "LATVIA",
+                "fmt", "%N%n%O%n%A%n%C, %Z",
+        }),
+        LY(new String[]{
+                "name", "LIBYA",
+        }),
+        MA(new String[]{
+                "name", "MOROCCO",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        MC(new String[]{
+                "name", "MONACO",
+                "fmt", "%N%n%O%n%A%nMC-%Z %C %X",
+                "postprefix", "MC-",
+        }),
+        MD(new String[]{
+                "name", "Rep. MOLDOVA",
+                "fmt", "%N%n%O%n%A%nMD-%Z %C",
+                "postprefix", "MD-",
+        }),
+        ME(new String[]{
+                "name", "MONTENEGRO",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        MF(new String[]{
+                "name", "SAINT MARTIN",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "upper", "ACX",
+                "require", "ACZ",
+        }),
+        MG(new String[]{
+                "name", "MADAGASCAR",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        MH(new String[]{
+                "name", "MARSHALL ISLANDS",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        MK(new String[]{
+                "name", "MACEDONIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        ML(new String[]{
+                "name", "MALI",
+        }),
+        MN(new String[]{
+                "name", "MONGOLIA",
+                "fmt", "%N%n%O%n%A%n%S %C-%X%n%Z",
+        }),
+        MO(new String[]{
+                "name", "MACAO",
+                "lang", "zh-hant",
+                "languages", "zh-hant",
+                "fmt", "%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A",
+                "require", "A",
+        }),
+        MP(new String[]{
+                "name", "NORTHERN MARIANA ISLANDS",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        MQ(new String[]{
+                "name", "MARTINIQUE",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        MR(new String[]{
+                "name", "MAURITANIA",
+                "upper", "AC",
+        }),
+        MS(new String[]{
+                "name", "MONTSERRAT",
+        }),
+        MT(new String[]{
+                "name", "MALTA",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+                "upper", "CZ",
+        }),
+        MU(new String[]{
+                "name", "MAURITIUS",
+                "fmt", "%N%n%O%n%A%n%Z%n%C",
+                "upper", "CZ",
+        }),
+        MV(new String[]{
+                "name", "MALDIVES",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        MW(new String[]{
+                "name", "MALAWI",
+                "fmt", "%N%n%O%n%A%n%C %X",
+        }),
+        MX(new String[]{
+                "name", "MEXICO",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z %C, %S",
+                "require", "ACZ",
+                "upper", "CSZ",
+                "state_name_type", "state",
+        }),
+        MY(new String[]{
+                "name", "MALAYSIA",
+                "lang", "ms",
+                "languages", "ms",
+                "fmt", "%N%n%O%n%A%n%Z %C, %S",
+                "require", "ACZ",
+                "upper", "CS",
+                "state_name_type", "state",
+        }),
+        MZ(new String[]{
+                "name", "MOZAMBIQUE",
+                "fmt", "%N%n%O%n%A%n%C",
+        }),
+        NA(new String[]{
+                "name", "NAMIBIA",
+        }),
+        NC(new String[]{
+                "name", "NEW CALEDONIA",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        NE(new String[]{
+                "name", "NIGER",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        NF(new String[]{
+                "name", "NORFOLK ISLAND",
+                "fmt", "%O%n%N%n%A%n%C %S %Z",
+                "upper", "CS",
+        }),
+        NG(new String[]{
+                "name", "NIGERIA",
+                "lang", "fr",
+                "languages", "fr",
+                "fmt", "%N%n%O%n%A%n%C %Z%n%S",
+                "upper", "CS",
+                "state_name_type", "state",
+        }),
+        NI(new String[]{
+                "name", "NICARAGUA",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z%n%C, %S",
+                "upper", "CS",
+                "state_name_type", "department",
+        }),
+        NL(new String[]{
+                "name", "NETHERLANDS",
+                "fmt", "%O%n%N%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        NO(new String[]{
+                "name", "NORWAY",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        NP(new String[]{
+                "name", "NEPAL",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        NR(new String[]{
+                "name", "NAURU CENTRAL PACIFIC",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%S",
+                "require", "AS",
+                "state_name_type", "district",
+        }),
+        NU(new String[]{
+                "name", "NIUE",
+        }),
+        NZ(new String[]{
+                "name", "NEW ZEALAND",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+                "require", "ACZ",
+        }),
+        OM(new String[]{
+                "name", "OMAN",
+                "fmt", "%N%n%O%n%A%n%Z%n%C",
+        }),
+        PA(new String[]{
+                "name", "PANAMA (REP.)",
+                "fmt", "%N%n%O%n%A%n%C%n%S",
+                "upper", "CS",
+        }),
+        PE(new String[]{
+                "name", "PERU",
+        }),
+        PF(new String[]{
+                "name", "FRENCH POLYNESIA",
+                "fmt", "%N%n%O%n%A%n%Z %C %S",
+                "require", "ACSZ",
+                "upper", "CS",
+                "state_name_type", "island",
+        }),
+        PG(new String[]{
+                "name", "PAPUA NEW GUINEA",
+                "fmt", "%N%n%O%n%A%n%C %Z %S",
+                "require", "ACS",
+        }),
+        PH(new String[]{
+                "name", "PHILIPPINES",
+                "fmt", "%N%n%O%n%A%n%Z %C%n%S",
+                "require", "AC",
+        }),
+        PK(new String[]{
+                "name", "PAKISTAN",
+                "fmt", "%N%n%O%n%A%n%C-%Z",
+        }),
+        PL(new String[]{
+                "name", "POLAND",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        PM(new String[]{
+                "name", "ST. PIERRE AND MIQUELON",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        PN(new String[]{
+                "name", "PITCAIRN",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        PR(new String[]{
+                "name", "PUERTO RICO",
+                "fmt", "%N%n%O%n%A%n%C PR %Z",
+                "require", "ACZ",
+                "upper", "ACNO",
+                "zip_name_type", "zip",
+                "postprefix", "PR",
+        }),
+        PS(new String[]{
+                "name", "PALESTINIAN TERRITORY",
+        }),
+        PT(new String[]{
+                "name", "PORTUGAL",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        PW(new String[]{
+                "name", "PALAU",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        PY(new String[]{
+                "name", "PARAGUAY",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        QA(new String[]{
+                "name", "QATAR",
+                "upper", "AC",
+        }),
+        RE(new String[]{
+                "name", "REUNION",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        RO(new String[]{
+                "name", "ROMANIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "upper", "AC",
+        }),
+        RS(new String[]{
+                "name", "REPUBLIC OF SERBIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        RU(new String[]{
+                "name", "RUSSIAN FEDERATION",
+                "fmt", "%Z %C  %n%A%n%O%n%N",
+                "require", "ACZ",
+                "upper", "AC",
+        }),
+        RW(new String[]{
+                "name", "RWANDA",
+                "upper", "AC",
+        }),
+        SA(new String[]{
+                "name", "SAUDI ARABIA",
+                "fmt", "%N%n%O%n%A%n%C %Z",
+        }),
+        SB(new String[]{
+                "name", "SOLOMON ISLANDS",
+        }),
+        SC(new String[]{
+                "name", "SEYCHELLES",
+                "fmt", "%N%n%O%n%A%n%C%n%S",
+                "upper", "S",
+                "state_name_type", "island",
+        }),
+        SE(new String[]{
+                "name", "SWEDEN",
+                "fmt", "%O%n%N%n%A%nSE-%Z %C",
+                "require", "ACZ",
+                "postprefix", "SE-",
+        }),
+        SG(new String[]{
+                "name", "REP. OF SINGAPORE",
+                "fmt", "%N%n%O%n%A%nSINGAPORE %Z",
+                "require", "AZ",
+        }),
+        SH(new String[]{
+                "name", "SAINT HELENA",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        SI(new String[]{
+                "name", "SLOVENIA",
+                "fmt", "%N%n%O%n%A%nSI- %Z %C",
+                "postprefix", "SI-",
+        }),
+        SJ(new String[]{
+                "name", "SVALBARD AND JAN MAYEN ISLANDS",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "ACZ",
+        }),
+        SK(new String[]{
+                "name", "SLOVAKIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        SL(new String[]{
+                "name", "SIERRA LEONE",
+        }),
+        SM(new String[]{
+                "name", "SAN MARINO",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "AZ",
+        }),
+        SN(new String[]{
+                "name", "SENEGAL",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        SO(new String[]{
+                "name", "SOMALIA",
+                "lang", "so",
+                "languages", "so",
+                "fmt", "%N%n%O%n%A%n%C, %S %Z",
+                "require", "ACS",
+                "upper", "ACS",
+        }),
+        SR(new String[]{
+                "name", "SURINAME",
+                "lang", "nl",
+                "languages", "nl",
+                "fmt", "%N%n%O%n%A%n%C %X%n%S",
+                "upper", "AS",
+        }),
+        ST(new String[]{
+                "name", "SAO TOME AND PRINCIPE",
+                "fmt", "%N%n%O%n%A%n%C %X",
+        }),
+        SV(new String[]{
+                "name", "EL SALVADOR",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z-%C%n%S",
+                "require", "ACS",
+                "upper", "CSZ",
+        }),
+        SZ(new String[]{
+                "name", "SWAZILAND",
+                "fmt", "%N%n%O%n%A%n%C%n%Z",
+                "upper", "ACZ",
+        }),
+        TC(new String[]{
+                "name", "TURKS AND CAICOS ISLANDS",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%Z",
+                "require", "ACZ",
+                "upper", "CZ",
+        }),
+        TD(new String[]{
+                "name", "CHAD",
+        }),
+        TF(new String[]{
+                "name", "FRENCH SOUTHERN TERRITORIES",
+        }),
+        TG(new String[]{
+                "name", "TOGO",
+        }),
+        TH(new String[]{
+                "name", "THAILAND",
+                "lang", "th",
+                "languages", "th",
+                "fmt", "%N%n%O%n%A%n%C%n%S %Z",
+                "lfmt", "%N%n%O%n%A%n%C%n%S %Z",
+                "upper", "S",
+                "fmtCharsets", "TIS-620",
+        }),
+        TJ(new String[]{
+                "name", "TAJIKISTAN",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        TK(new String[]{
+                "name", "TOKELAU",
+        }),
+        TL(new String[]{
+                "name", "TIMOR-LESTE",
+        }),
+        TM(new String[]{
+                "name", "TURKMENISTAN",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        TN(new String[]{
+                "name", "TUNISIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        TO(new String[]{
+                "name", "TONGA",
+        }),
+        TR(new String[]{
+                "name", "TURKEY",
+                "fmt", "%N%n%O%n%A%n%Z %C/%S",
+                "require", "ACZ",
+        }),
+        TT(new String[]{
+                "name", "TRINIDAD AND TOBAGO",
+        }),
+        TV(new String[]{
+                "name", "TUVALU",
+                "lang", "tyv",
+                "languages", "tyv",
+                "fmt", "%N%n%O%n%A%n%X%n%C%n%S",
+                "upper", "ACS",
+                "state_name_type", "island",
+        }),
+        TW(new String[]{
+                "name", "TAIWAN",
+                "lang", "zh-hant",
+                "languages", "zh-hant",
+                "fmt", "%Z%n%S%C%n%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A%n%C, %S %Z",
+                "require", "ACSZ",
+                "state_name_type", "county",
+                "fmtCharsets", "Big5",
+        }),
+        TZ(new String[]{
+                "name", "TANZANIA (UNITED REP.)",
+        }),
+        UA(new String[]{
+                "name", "UKRAINE",
+                "fmt", "%Z %C%n%A%n%O%n%N",
+        }),
+        UG(new String[]{
+                "name", "UGANDA",
+        }),
+        UM(new String[]{
+                "name", "UNITED STATES MINOR OUTLYING ISLANDS",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACS",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        US(new String[]{
+                "name", "UNITED STATES",
+                "lang", "en",
+                "languages", "en",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "CS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        UY(new String[]{
+                "name", "URUGUAY",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%Z %C %S",
+                "upper", "CS",
+        }),
+        UZ(new String[]{
+                "name", "UZBEKISTAN",
+                "fmt", "%N%n%O%n%A%n%Z %C%n%S",
+                "upper", "CS",
+        }),
+        VA(new String[]{
+                "name", "VATICAN",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        VC(new String[]{
+                "name", "SAINT VINCENT AND THE GRENADINES (ANTILLES)",
+        }),
+        VE(new String[]{
+                "name", "VENEZUELA",
+                "lang", "es",
+                "languages", "es",
+                "fmt", "%N%n%O%n%A%n%C %Z, %S",
+                "require", "ACS",
+                "upper", "CS",
+        }),
+        VG(new String[]{
+                "name", "VIRGIN ISLANDS (BRITISH)",
+                "require", "A",
+        }),
+        VI(new String[]{
+                "name", "VIRGIN ISLANDS (U.S.)",
+                "fmt", "%N%n%O%n%A%n%C %S %Z",
+                "require", "ACSZ",
+                "upper", "ACNOS",
+                "zip_name_type", "zip",
+                "state_name_type", "state",
+        }),
+        VN(new String[]{
+                "name", "VIET NAM",
+                "lang", "vi",
+                "languages", "vi",
+                "fmt", "%N%n%O%n%A%n%C%n%S",
+                "lfmt", "%N%n%O%n%A%n%C%n%S",
+                "require", "AC",
+        }),
+        VU(new String[]{
+                "name", "VANUATU",
+        }),
+        WF(new String[]{
+                "name", "WALLIS AND FUTUNA ISLANDS",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        WS(new String[]{
+                "name", "SAMOA",
+        }),
+        YE(new String[]{
+                "name", "YEMEN",
+                "require", "AC",
+        }),
+        YT(new String[]{
+                "name", "MAYOTTE",
+                "fmt", "%O%n%N%n%A%n%Z %C %X",
+                "require", "ACZ",
+                "upper", "ACX",
+        }),
+        YU(new String[]{
+                "name", "SERBIA AND MONTENEGRO",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+        }),
+        ZA(new String[]{
+                "name", "SOUTH AFRICA",
+                "fmt", "%N%n%O%n%A%n%C%n%Z",
+                "require", "ACZ",
+        }),
+        ZM(new String[]{
+                "name", "ZAMBIA",
+                "fmt", "%N%n%O%n%A%n%Z %C",
+                "require", "AC",
+        }),
+        ZW(new String[]{
+                "name", "ZIMBABWE",
+        }),
+        ZZ(new String[]{
+                "fmt", "%N%n%O%n%A%n%C",
+                "require", "AC",
+                "upper", "C",
+                "zip_name_type", "postal",
+                "state_name_type", "province",
+                "dir", "ltr",
+        });
+
+        private String jsonString;
+
+        private RegionDataEnum(String[] inputArray) {
+            jsonString = convertArrayToJsonString(inputArray);
+        }
+
+        String getJsonString() {
+            return jsonString;
+        }
+    }
+
+    static {
+        for (RegionDataEnum region : RegionDataEnum.values()) {
+            COUNTRY_FORMAT_MAP.put(region.toString(), region.getJsonString());
+        }
+    }
+
+    static Map<String, String> getCountryFormatMap() {
+        return COUNTRY_FORMAT_MAP;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/SimpleClientCacheManager.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/SimpleClientCacheManager.java
new file mode 100644 (file)
index 0000000..c8943ea
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+/**
+ * A simple implementation of ClientCacheManager which doesn't do any caching on its own.
+ */
+public class SimpleClientCacheManager implements ClientCacheManager {
+    // URL to get public address data.
+    private static final String PUBLIC_ADDRESS_SERVER = "http://i18napis.appspot.com/address";
+
+    @Override
+    public String get(String key) {
+        return "";
+    }
+
+    @Override
+    public void put(String key, String data) {
+    }
+
+    @Override
+    public String getAddressServerUrl() {
+        return PUBLIC_ADDRESS_SERVER;
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardAddressVerifier.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardAddressVerifier.java
new file mode 100644 (file)
index 0000000..fccb24b
--- /dev/null
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import static com.android.i18n.addressinput.AddressField.ADMIN_AREA;
+import static com.android.i18n.addressinput.AddressField.COUNTRY;
+import static com.android.i18n.addressinput.AddressField.DEPENDENT_LOCALITY;
+import static com.android.i18n.addressinput.AddressField.LOCALITY;
+import static com.android.i18n.addressinput.AddressField.ORGANIZATION;
+import static com.android.i18n.addressinput.AddressField.POSTAL_CODE;
+import static com.android.i18n.addressinput.AddressField.RECIPIENT;
+import static com.android.i18n.addressinput.AddressField.SORTING_CODE;
+import static com.android.i18n.addressinput.AddressField.STREET_ADDRESS;
+
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Performs various consistency checks on an AddressData. This uses a {@link FieldVerifier} to check
+ * each field in the address.
+ */
+public class StandardAddressVerifier {
+
+    protected final FieldVerifier mRootVerifier;
+
+    protected final VerifierRefiner mRefiner;
+
+    protected final Map<AddressField, List<AddressProblemType>> mProblemMap;
+
+    /**
+     * Uses the rootVerifier and {@link #DEFAULT_REFINER} to perform the standard checks on the
+     * address fields, as defined in {@link StandardChecks}.
+     */
+    public StandardAddressVerifier(FieldVerifier rootVerifier) {
+        this(rootVerifier, DEFAULT_REFINER, StandardChecks.PROBLEM_MAP);
+    }
+
+    /**
+     * Uses the rootVerifier and the refiner to perform the standard checks on the address fields,
+     * as defined in {@link StandardChecks}.
+     */
+    public StandardAddressVerifier(FieldVerifier rootVerifier, VerifierRefiner refiner) {
+        this(rootVerifier, refiner, StandardChecks.PROBLEM_MAP);
+    }
+
+    /**
+     * Uses the rootVerifier and {@link #DEFAULT_REFINER} to perform the given checks on the address
+     * fields. A reference to problemMap is maintained. It is not modified by this class, and should
+     * not be modified subsequent to this call.
+     */
+    public StandardAddressVerifier(FieldVerifier rootVerifier,
+            Map<AddressField, List<AddressProblemType>> problemMap) {
+        this(rootVerifier, DEFAULT_REFINER, problemMap);
+    }
+
+    /**
+     * Uses the rootVerifier and the refiner to perform the given checks on the address fields. A
+     * reference to problemMap is maintained. It is not modified by this class, and should not be
+     * modified subsequent to this call.
+     */
+    public StandardAddressVerifier(FieldVerifier rootVerifier, VerifierRefiner refiner,
+            Map<AddressField, List<AddressProblemType>> problemMap) {
+        mRootVerifier = rootVerifier;
+        mRefiner = refiner;
+        mProblemMap = StandardChecks.PROBLEM_MAP;
+    }
+
+    public void verify(AddressData address, AddressProblems problems) {
+        NotifyingListener listener = new NotifyingListener(this);
+        verifyAsync(address, problems, listener);
+        try {
+            listener.waitLoadingEnd();
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void verifyAsync(AddressData address, AddressProblems problems,
+            DataLoadListener listener) {
+        Thread verifier = new Thread(new Verifier(address, problems, listener));
+        verifier.start();
+    }
+
+    private class Verifier implements Runnable {
+        private AddressData mAddress;
+        private AddressProblems mProblems;
+        private DataLoadListener mListener;
+
+        Verifier(AddressData address, AddressProblems problems, DataLoadListener listener) {
+            mAddress = address;
+            mProblems = problems;
+            mListener = listener;
+        }
+
+        @Override
+        public void run() {
+            mListener.dataLoadingBegin();
+
+            FieldVerifier v = mRootVerifier;
+
+            ScriptType script = null;
+            if (mAddress.getLanguageCode() != null) {
+                if (Util.isExplicitLatinScript(mAddress.getLanguageCode())) {
+                    script = ScriptType.LATIN;
+                } else {
+                    script = ScriptType.LOCAL;
+                }
+            }
+
+            // The first four calls refine the verifier, so must come first, and in this
+            // order.
+            verifyField(script, v, COUNTRY, mAddress.getPostalCountry(), mProblems);
+            if (mProblems.isEmpty()) {
+                v = v.refineVerifier(mAddress.getPostalCountry());
+                verifyField(script, v, ADMIN_AREA, mAddress.getAdministrativeArea(), mProblems);
+                if (mProblems.isEmpty()) {
+                    v = v.refineVerifier(mAddress.getAdministrativeArea());
+                    verifyField(script, v, LOCALITY, mAddress.getLocality(), mProblems);
+                    if (mProblems.isEmpty()) {
+                        v = v.refineVerifier(mAddress.getLocality());
+                        verifyField(script, v, DEPENDENT_LOCALITY,
+                                mAddress.getDependentLocality(), mProblems);
+                        if (mProblems.isEmpty()) {
+                            v = v.refineVerifier(mAddress.getDependentLocality());
+                        }
+                    }
+                }
+            }
+
+            String street = Util.joinAndSkipNulls("\n", mAddress.getAddressLine1(),
+                    mAddress.getAddressLine2());
+
+            // remaining calls don't change the field verifier
+            verifyField(script, v, POSTAL_CODE, mAddress.getPostalCode(), mProblems);
+            verifyField(script, v, STREET_ADDRESS, street, mProblems);
+            verifyField(script, v, SORTING_CODE, mAddress.getSortingCode(), mProblems);
+            verifyField(script, v, ORGANIZATION, mAddress.getOrganization(), mProblems);
+            verifyField(script, v, RECIPIENT, mAddress.getRecipient(), mProblems);
+
+            postVerify(v, mAddress, mProblems);
+
+            mListener.dataLoadingEnd();
+        }
+    }
+
+    /**
+     * Hook to perform any final processing using the final verifier.  Default does no additional
+     * verification.
+     */
+    protected void postVerify(FieldVerifier verifier, AddressData address,
+            AddressProblems problems) {
+    }
+
+    /**
+     * Hook called by verify with each verifiable field, in order.  Override to provide pre- or
+     * post-checks for all fields.
+     */
+    protected boolean verifyField(LookupKey.ScriptType script,
+            FieldVerifier verifier, AddressField field, String value,
+            AddressProblems problems) {
+        Iterator<AddressProblemType> iter = getProblemIterator(field);
+        while (iter.hasNext()) {
+            AddressProblemType prob = iter.next();
+            if (!verifyProblemField(script, verifier, prob, field, value, problems)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Hook for on-the-fly modification of the problem list.  Override to change the problems to
+     * check for a particular field.  Generally, changing the problemMap passed to the constructor
+     * is a better approach.
+     */
+    protected Iterator<AddressProblemType> getProblemIterator(AddressField field) {
+        List<AddressProblemType> list = mProblemMap.get(field);
+        if (list == null) {
+            list = Collections.emptyList();
+        }
+        return list.iterator();
+    }
+
+    /**
+     * Hook for adding special checks for particular problems and/or fields.
+     */
+    protected boolean verifyProblemField(LookupKey.ScriptType script,
+            FieldVerifier verifier, AddressProblemType problem, AddressField field,
+            String datum, AddressProblems problems) {
+        return verifier.check(script, problem, field, datum, problems);
+    }
+
+    /**
+     * This gets called with the hierarchical fields COUNTRY, ADMIN_AREA, LOCALITY,
+     * DEPENDENT_LOCALITY in order, returning the refined verifier at each step.
+     *
+     * <p>The default implementation is stateless, and delegates to the verifier to do the
+     * refinement.
+     */
+    public static class VerifierRefiner {
+
+        /**
+         * Refines the verifier.  This delegates to the verifier to perform the refinement.
+         */
+        public FieldVerifier refineVerifier(FieldVerifier v, AddressField field,
+                String subkey) {
+            return v.refineVerifier(subkey);
+        }
+
+        /**
+         * Returns a clean version of the refiner.  Since this implementation is stateless, returns
+         * this.
+         */
+        public VerifierRefiner newInstance() {
+            return this;
+        }
+    }
+
+    private static final VerifierRefiner DEFAULT_REFINER = new VerifierRefiner();
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardChecks.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/StandardChecks.java
new file mode 100644 (file)
index 0000000..f243afd
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Loader for a map defining the standard checks to perform on AddressFields.
+ */
+public class StandardChecks {
+
+    private StandardChecks() {
+    }
+
+    public static final Map<AddressField, List<AddressProblemType>> PROBLEM_MAP;
+
+    static {
+        Map<AddressField, List<AddressProblemType>> map =
+                new HashMap<AddressField, List<AddressProblemType>>();
+
+        addToMap(map, AddressField.COUNTRY, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
+        addToMap(map, AddressField.ADMIN_AREA, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
+        addToMap(map, AddressField.LOCALITY, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
+        addToMap(map, AddressField.DEPENDENT_LOCALITY, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
+        addToMap(map, AddressField.POSTAL_CODE, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNRECOGNIZED_FORMAT,
+                AddressProblemType.MISMATCHING_VALUE);
+        addToMap(map, AddressField.STREET_ADDRESS, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD);
+        addToMap(map, AddressField.SORTING_CODE, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD);
+        addToMap(map, AddressField.ORGANIZATION, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD);
+        addToMap(map, AddressField.RECIPIENT, AddressProblemType.USING_UNUSED_FIELD,
+                AddressProblemType.MISSING_REQUIRED_FIELD);
+
+        PROBLEM_MAP = Collections.unmodifiableMap(map);
+    }
+
+    private static void addToMap(Map<AddressField, List<AddressProblemType>> map,
+            AddressField field,
+            AddressProblemType... problems) {
+        map.put(field, Collections.unmodifiableList(Arrays.asList(problems)));
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/Util.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/Util.java
new file mode 100644 (file)
index 0000000..0547543
--- /dev/null
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Utility functions used by the address widget.
+ */
+class Util {
+    /**
+     * This variable is in upper-case, since we convert the language code to upper case before doing
+     * string comparison.
+     */
+    private static final String LATIN_SCRIPT = "LATN";
+
+    /**
+     * Map of countries that have non-latin local names, with the language that their local names
+     * are in. We only list a country here if we have the appropriate data. Only language sub-tags
+     * are listed.
+     */
+     private static final Map<String, String> nonLatinLocalLanguageCountries =
+             new HashMap<String, String>();
+     static {
+       nonLatinLocalLanguageCountries.put("AM", "hy");
+       nonLatinLocalLanguageCountries.put("CN", "zh");
+       nonLatinLocalLanguageCountries.put("HK", "zh");
+       nonLatinLocalLanguageCountries.put("JP", "ja");
+       nonLatinLocalLanguageCountries.put("KP", "ko");
+       nonLatinLocalLanguageCountries.put("KR", "ko");
+       nonLatinLocalLanguageCountries.put("MO", "zh");
+       nonLatinLocalLanguageCountries.put("TH", "th");
+       nonLatinLocalLanguageCountries.put("TW", "zh");
+       nonLatinLocalLanguageCountries.put("VN", "vi");
+     }
+
+    /**
+     * Cannot instantiate this class - private constructor.
+     */
+    private Util() {
+    }
+
+    /**
+     * Returns true if the language code is explicitly marked to be in the latin script. For
+     * example, "zh-Latn" would return true, but "zh-TW", "en" and "zh" would all return false.
+     */
+    static boolean isExplicitLatinScript(String languageCode) {
+        // Convert to upper-case for easier comparison.
+        languageCode = languageCode.toUpperCase();
+        // Check to see if the language code contains a script modifier.
+        final Pattern languageCodePattern = Pattern.compile("\\w{2,3}[-_](\\w{4})");
+        Matcher m = languageCodePattern.matcher(languageCode);
+        if (m.lookingAt()) {
+            String script = m.group(1);
+            if (script.equals(LATIN_SCRIPT)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Returns the language subtag of a language code. For example, returns "zh" if given "zh-Hans",
+     * "zh-CN" or other "zh" variants. If no language subtag can be found or the language tag is
+     * malformed, returns "und".
+     */
+    static String getLanguageSubtag(String languageCode) {
+        final Pattern languageCodePattern = Pattern
+                .compile("(\\w{2,3})(?:[-_]\\w{4})?(?:[-_]\\w{2})?");
+        Matcher m = languageCodePattern.matcher(languageCode);
+        if (m.matches()) {
+            return m.group(1).toLowerCase();
+        }
+        return "und";
+    }
+
+    /**
+     * Trims the string. If the field is empty after trimming, returns null instead. Note that this
+     * only trims ASCII white-space.
+     */
+    static String trimToNull(String originalStr) {
+        if (originalStr == null) {
+            return null;
+        }
+        String trimmedString = originalStr.trim();
+        return (trimmedString.length() == 0) ? null : trimmedString;
+    }
+
+    /**
+     * Throws an exception if the object is null, with a generic error message.
+     */
+    static void checkNotNull(Object o) throws NullPointerException {
+        checkNotNull(o, "This object should not be null.");
+    }
+
+    /**
+     * Throws an exception if the object is null, with the error message supplied.
+     */
+    static void checkNotNull(Object o, String message) throws NullPointerException {
+        if (o == null) {
+            throw new NullPointerException(message);
+        }
+    }
+
+    /**
+     * Joins input string with the given separator. If an input string is null, it will be skipped.
+     */
+    static String joinAndSkipNulls(String separator, String... strings) {
+        StringBuilder sb = null;
+        for (String s : strings) {
+            if (s != null) {
+                s = s.trim();
+                if (s.length() > 0) {
+                    if (sb == null) {
+                        sb = new StringBuilder(s);
+                    } else {
+                        sb.append(separator).append(s);
+                    }
+                }
+            }
+        }
+        return sb == null ? null : sb.toString();
+    }
+
+    /**
+     * Builds a map of the lower-cased values of the keys, names and local names provided. Each name
+     * and local name is mapped to its respective key in the map.
+     *
+     * @throws IllegalStateException if the names or lnames array is greater than the keys array.
+     */
+    static Map<String, String> buildNameToKeyMap(String[] keys, String[] names, String[] lnames) {
+        if (keys == null) {
+            return null;
+        }
+
+        Map<String, String> nameToKeyMap = new HashMap<String, String>();
+
+        int keyLength = keys.length;
+        for (String k : keys) {
+            nameToKeyMap.put(k.toLowerCase(), k);
+        }
+        if (names != null) {
+            if (names.length > keyLength) {
+                throw new IllegalStateException(
+                        "names length (" + names.length + ") is greater than keys length (" +
+                        keys.length + ")");
+            }
+            for (int i = 0; i < keyLength; i++) {
+                // If we have less names than keys, we ignore all missing names. This happens
+                // generally because reg-ex splitting methods on different platforms (java, js etc)
+                // behave differently in the default case. Since missing names are fine, we opt to
+                // be more robust here.
+                if (i < names.length && names[i].length() > 0) {
+                    nameToKeyMap.put(names[i].toLowerCase(), keys[i]);
+                }
+            }
+        }
+        if (lnames != null) {
+            if (lnames.length > keyLength) {
+                throw new IllegalStateException(
+                        "lnames length (" + lnames.length + ") is greater than keys length (" +
+                        keys.length + ")");
+            }
+            for (int i = 0; i < keyLength; i++) {
+                if (i < lnames.length && lnames[i].length() > 0) {
+                    nameToKeyMap.put(lnames[i].toLowerCase(), keys[i]);
+                }
+            }
+        }
+        return nameToKeyMap;
+    }
+
+    /**
+     * Returns a language code that the widget can use when fetching data, based on a {@link
+     * java.util.Locale} language and the current selected country in the address widget. This
+     * method is necessary since we have to determine later whether a language is "local" or "latin"
+     * for certain countries.
+     *
+     * @param language the current user language
+     * @param currentCountry the current selected country
+     * @return a language code string in BCP-47 format (e.g. "en", "zh-Latn", "zh-Hans" or
+     * "en-US").
+     */
+    static String getWidgetCompatibleLanguageCode(Locale language, String currentCountry) {
+        String country = currentCountry.toUpperCase();
+        // Only do something if the country is one of those where we have names in the local
+        // language as well as in latin script.
+        if (nonLatinLocalLanguageCountries.containsKey(country)) {
+            String languageTag = language.getLanguage();
+            // Only do something if the language tag is _not_ the local language.
+            if (!languageTag.equals(nonLatinLocalLanguageCountries.get(country))) {
+                // Build up the language tag with the country and language specified, and add in the
+                // script-tag of "Latn" explicitly, since this is _not_ a local language. This means
+                // that we might create a language tag of "th-Latn", which is not what the actual
+                // language being used is, but it indicates that we prefer "Latn" names to whatever
+                // the local alternative was.
+                StringBuilder languageTagBuilder = new StringBuilder(languageTag);
+                languageTagBuilder.append("_latn");
+                if (language.getCountry().length() > 0) {
+                    languageTagBuilder.append("_");
+                    languageTagBuilder.append(language.getCountry());
+                }
+                return languageTagBuilder.toString();
+            }
+        }
+        return language.toString();
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AddressDataMapLoader.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AddressDataMapLoader.java
new file mode 100644 (file)
index 0000000..3310ea4
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput.testing;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Helper class to load JSON data for testing.
+ */
+public class AddressDataMapLoader {
+
+    private static final String DATA_PATH = "/countryinfo.txt";
+
+    private AddressDataMapLoader() {
+    }
+
+    public static final Map<String, String> DATA;
+
+    static {
+        DATA = new HashMap<String, String>();
+        try {
+            BufferedReader br = new BufferedReader(
+                    new InputStreamReader(AddressDataMapLoader.class.getResourceAsStream(DATA_PATH),
+                            "utf-8"));
+            String line = null;
+            while (null != (line = br.readLine())) {
+                line = line.trim();
+                if (line.length() == 0 || line.charAt(0) == '#') {
+                    continue;
+                }
+                int x = line.indexOf('=');
+                DATA.put(line.substring(0, x), line.substring(x + 1));
+            }
+        } catch (IOException e) {
+            System.err.println("unable to create map: " + e.getMessage());
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AsyncTestCase.java b/src/third_party/libaddressinput/src/java/src/com/android/i18n/addressinput/testing/AsyncTestCase.java
new file mode 100644 (file)
index 0000000..69c3020
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput.testing;
+
+import junit.framework.TestCase;
+
+import java.util.concurrent.TimeoutException;
+
+/**
+ * An extension of TestCase that provides delayTestFinish() and finishTest() methods that behave
+ * like the corresponding methods in GWTTestCase for testing asynchronous code.
+ */
+public abstract class AsyncTestCase extends TestCase {
+    /**
+     * Tracks whether this test is completely done.
+     */
+    private boolean mTestIsFinished;
+
+    /**
+     * The system time in milliseconds when the test should time out.
+     */
+    private long mTestTimeoutMillis;
+
+    /**
+     * Puts the current test in asynchronous mode.
+     *
+     * @param timeoutMillis time to wait before failing the test for timing out
+     */
+    protected void delayTestFinish(int timeoutMillis) {
+        mTestTimeoutMillis = System.currentTimeMillis() + timeoutMillis;
+    }
+
+    /**
+     * Causes this test to succeed during asynchronous mode.
+     */
+    protected void finishTest() {
+        mTestIsFinished = true;
+        synchronized (this) {
+            notify();
+        }
+    }
+
+    @Override
+    protected void runTest() throws Throwable {
+        mTestIsFinished = false;
+        mTestTimeoutMillis = 0;
+        super.runTest();
+
+        if (mTestTimeoutMillis > 0) {
+            long timeoutMillis = mTestTimeoutMillis - System.currentTimeMillis();
+            if (timeoutMillis > 0) {
+                synchronized (this) {
+                    wait(timeoutMillis);
+                }
+            }
+            if (!mTestIsFinished) {
+                throw new TimeoutException("Waited " + timeoutMillis + " ms!");
+            }
+        }
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/android/util/Log.java b/src/third_party/libaddressinput/src/java/test/android/util/Log.java
new file mode 100644 (file)
index 0000000..71b3e91
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2013 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.util;
+
+/**
+ * Simple mock of Android logger class.
+ */
+public final class Log {
+    public static int v(String tag, String msg) { return 0; }
+    public static int v(String tag, String msg, Throwable tr) { return 0; }
+    public static int d(String tag, String msg) { return 0; }
+    public static int d(String tag, String msg, Throwable tr) { return 0; }
+    public static int i(String tag, String msg) { return 0; }
+    public static int i(String tag, String msg, Throwable tr) { return 0; }
+    public static int w(String tag, String msg) { return 0; }
+    public static int w(String tag, String msg, Throwable tr) { return 0; }
+    public static boolean isLoggable(String tag, int level) { return false; }
+    public static int w(String tag, Throwable tr) { return 0; }
+    public static int e(String tag, String msg) { return 0; }
+    public static int e(String tag, String msg, Throwable tr) { return 0; }
+    public static int wtf(String tag, String msg) { return 0; }
+    public static int wtf(String tag, Throwable tr) { return 0; }
+    public static int wtf(String tag, String msg, Throwable tr) { return 0; }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressDataTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressDataTest.java
new file mode 100644 (file)
index 0000000..7b211b4
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the AddressData class.
+ */
+public class AddressDataTest extends TestCase {
+    private static final String ADDRESS_LINE = "First address line";
+
+    public void testSetAddressLine() {
+        AddressData.Builder builder = new AddressData.Builder();
+        builder = builder.setAddress("\n " + ADDRESS_LINE);
+        AddressData ad = builder.build();
+        assertEquals(ADDRESS_LINE, ad.getAddressLine1());
+        assertEquals(null, ad.getAddressLine2());
+    }
+
+    public void testAddressLineNormalisation() {
+        AddressData address = new AddressData.Builder().setAddressLine1(null)
+                                                       .setAddressLine2(ADDRESS_LINE).build();
+        AddressData copiedAddress = new AddressData.Builder(address).build();
+        assertEquals(ADDRESS_LINE, copiedAddress.getAddressLine1());
+        assertEquals(null, copiedAddress.getAddressLine2());
+    }
+
+    public void testAddressLineNormalisationWithNewLineCharacters() {
+        AddressData address =
+            new AddressData.Builder().setAddressLine1(ADDRESS_LINE + "\n" + ADDRESS_LINE).build();
+        AddressData copiedAddress = new AddressData.Builder(address).build();
+        assertEquals(ADDRESS_LINE, copiedAddress.getAddressLine1());
+        assertEquals(ADDRESS_LINE, copiedAddress.getAddressLine2());
+    }
+
+    public void testNoAdminArea() {
+        AddressData address = new AddressData.Builder().build();
+        assertEquals(null, address.getAdministrativeArea());
+    }
+
+    public void testSetLanguageCode() throws Exception {
+        AddressData address = new AddressData.Builder().setCountry("TW")
+                                                       // Taipei City
+                                                       .setAdminArea("\u53F0\u5317\u5E02")
+                                                       // Da-an District
+                                                       .setLocality("\u5927\u5B89\u5340")
+                                                       .build();
+        address = new AddressData.Builder(address).setLanguageCode("zh-latn").build();
+        assertEquals("zh-latn", address.getLanguageCode());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressFieldTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressFieldTest.java
new file mode 100644 (file)
index 0000000..3419097
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the AddressField enum.
+ */
+public class AddressFieldTest extends TestCase {
+
+    public void testOf() throws Exception {
+        assertEquals(AddressField.COUNTRY, AddressField.of('R'));
+    }
+
+    public void testGetChar() throws Exception {
+        assertEquals('R', AddressField.COUNTRY.getChar());
+    }
+
+    public void testGetAttributeName() throws Exception {
+        assertEquals("name", AddressField.RECIPIENT.getAttributeName());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressProblemsTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressProblemsTest.java
new file mode 100644 (file)
index 0000000..14cef05
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the AddressProblems class.
+ */
+public class AddressProblemsTest extends TestCase {
+    public void testAddError() {
+        AddressProblems ap = new AddressProblems();
+        ap.add(AddressField.POSTAL_CODE, AddressProblemType.MISSING_REQUIRED_FIELD);
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     ap.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    public void testEmptyErrorList() {
+        AddressProblems ap = new AddressProblems();
+        assertNull(ap.getProblem(AddressField.POSTAL_CODE));
+        assertTrue(ap.isEmpty());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AddressVerificationDataTest.java
new file mode 100644 (file)
index 0000000..03e6773
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.testing.AddressDataMapLoader;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests to ensure that {@code AddressVerificationData} can parse all the default data.
+ */
+public class AddressVerificationDataTest extends TestCase {
+
+    private static final AddressVerificationData ADDRESS_DATA =
+            new AddressVerificationData(AddressDataMapLoader.DATA);
+
+    public void testParseAllData() {
+        for (String key : ADDRESS_DATA.keys()) {
+            AddressVerificationNodeData nodeData = ADDRESS_DATA.get(key);
+            assertNotNull(key + " maps to null value.", nodeData);
+            assertNotNull("Id is required", nodeData.get(AddressDataKey.ID));
+        }
+    }
+
+    public void testLoadingCountries() {
+        AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data");
+        String[] countries = nodeData.get(AddressDataKey.COUNTRIES).split("~");
+        assertTrue(countries.length > 0);
+    }
+
+    public void testUsData() {
+        AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/US");
+        assertEquals("data/US", nodeData.get(AddressDataKey.ID));
+        assertNotNull(nodeData.get(AddressDataKey.SUB_KEYS));
+        assertNotNull(nodeData.get(AddressDataKey.SUB_NAMES));
+        assertEquals("en", nodeData.get(AddressDataKey.LANG));
+    }
+
+    public void testCaData() {
+        AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/CA");
+        String names = nodeData.get(AddressDataKey.SUB_NAMES);
+        String keys = nodeData.get(AddressDataKey.SUB_KEYS);
+
+        assertEquals("data/CA", nodeData.get(AddressDataKey.ID));
+        assertEquals("en", nodeData.get(AddressDataKey.LANG));
+
+        assertEquals("AB~BC~MB~NB~NL~NS~NU~NT~ON~PE~QC~SK~YT", keys);
+        assertEquals("Alberta~British Columbia~Manitoba~New Brunswick" +
+                     "~Newfoundland and Labrador~Nova Scotia~Nunavut~Northwest Territories" +
+                     "~Ontario~Prince Edward Island~Quebec~Saskatchewan~Yukon",
+                     names);
+    }
+
+    public void testCaFrenchData() {
+        AddressVerificationNodeData nodeData = ADDRESS_DATA.get("data/CA--fr");
+        String names = nodeData.get(AddressDataKey.SUB_NAMES);
+        String keys = nodeData.get(AddressDataKey.SUB_KEYS);
+
+        assertEquals("data/CA--fr", nodeData.get(AddressDataKey.ID));
+        assertEquals("fr", nodeData.get(AddressDataKey.LANG));
+        assertEquals("AB~BC~PE~MB~NB~NS~NU~ON~QC~SK~NL~NT~YT", keys);
+        assertTrue(names.contains("Colombie"));
+    }
+
+    public void testBackSlashUnEscaped() {
+        for (String lookupKey : ADDRESS_DATA.keys()) {
+            AddressVerificationNodeData nodeData = ADDRESS_DATA.get(lookupKey);
+            for (AddressDataKey dataKey : AddressDataKey.values()) {
+                String val = nodeData.get(dataKey);
+                if (val != null) {
+                    assertFalse("Backslashes need to be unescaped: " + val, val.contains("\\\\"));
+                }
+            }
+        }
+
+        // Spot check.
+        assertEquals("Kazhakstan's postal code pattern mismatched", "\\d{6}",
+                     ADDRESS_DATA.get("data/KZ").get(AddressDataKey.ZIP));
+    }
+
+    public void testExampleData() {
+        assertNotNull("Expects example data.", AddressDataMapLoader.DATA.get("examples"));
+        assertNotNull("Expects example US address.",
+                      AddressDataMapLoader.DATA.get("examples/US/local/en"));
+        assertEquals("'examples/TW/local/zh_Hant' and 'examples/TW/local/_default' should " +
+                     "return same value.",
+                     AddressDataMapLoader.DATA.get("examples/TW/local/zh_Hant"),
+                     AddressDataMapLoader.DATA.get("examples/TW/local/_default"));
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AsyncTestCaseTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/AsyncTestCaseTest.java
new file mode 100644 (file)
index 0000000..23fad88
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.testing.AsyncTestCase;
+
+import junit.framework.AssertionFailedError;
+
+import java.util.concurrent.TimeoutException;
+
+public class AsyncTestCaseTest extends AsyncTestCase {
+
+  public void testSuccess() {
+      delayTestFinish(1000);
+      AsyncCallback.execute(500, new Runnable() {
+          @Override
+          public void run() {
+              finishTest();
+          }
+      });
+  }
+
+  public void testFailure() {
+      expectTimeout = true;
+      delayTestFinish(1000);
+      AsyncCallback.execute(1500, new Runnable() {
+          @Override
+          public void run() {
+              finishTest();
+          }
+      });
+  }
+
+  @Override
+  protected void runTest() throws Throwable {
+      expectTimeout = false;
+      try {
+          super.runTest();
+      } catch (TimeoutException e) {
+          if (expectTimeout) {
+              return;
+          } else {
+              throw e;
+          }
+      }
+      if (expectTimeout) {
+          throw new AssertionFailedError("Test case did not time out.");
+      }
+  }
+
+  private boolean expectTimeout;
+
+  /**
+   * Helper class to perform an asynchronous callback after a specified delay.
+   */
+  private static class AsyncCallback extends Thread {
+      public static void execute(long waitMillis, Runnable callback) {
+          (new AsyncCallback(waitMillis, callback)).start();
+      }
+
+      @Override
+      public void run() {
+          try {
+              synchronized (this) {
+              wait(mWaitMillis);
+          }
+      } catch (InterruptedException e) {
+          throw new RuntimeException(e);
+      }
+      mCallback.run();
+    }
+
+    private AsyncCallback(long waitMillis, Runnable callback) {
+        this.mWaitMillis = waitMillis;
+        this.mCallback = callback;
+    }
+
+    private long mWaitMillis;
+    private Runnable mCallback;
+  }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/CacheDataTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/CacheDataTest.java
new file mode 100644 (file)
index 0000000..c346882
--- /dev/null
@@ -0,0 +1,326 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.testing.AddressDataMapLoader;
+import com.android.i18n.addressinput.testing.AsyncTestCase;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class CacheDataTest extends AsyncTestCase {
+    private CacheData cache;
+
+    private static final String DELIM = "~";
+
+    private static final String CANADA_KEY = "data/CA";
+
+    private static final String US_KEY = "data/US";
+
+    private static final String CALIFORNIA_KEY = "data/US/CA";
+
+    private static final String RANDOM_COUNTRY_KEY = "data/asIOSDxcowW";
+
+    private static final String EXAMPLE_LOCAL_US_KEY = "examples/US/local/_default";
+
+    // Data key for Da-an District, Taipei Taiwan
+    private static final String TW_KEY = "data/TW/\u53F0\u5317\u5E02/\u5927\u5B89\u5340";
+
+    private static final String FRANCE_KEY = "data/FR";
+
+    private static Integer listenerInvokeCount = 0;
+
+    private static boolean reachedMaxCount = false;
+
+    @Override
+    public void setUp() {
+        cache = new CacheData();
+    }
+
+    public void testJsonConstructor() {
+        // Creating cache with content.
+        String id = "data/CA";
+        JSONObject jsonObject = null;
+        try {
+            jsonObject = new JSONObject(AddressDataMapLoader.DATA.get(id));
+        } catch (JSONException jsonException) {
+            // If this throws an exception the test fails.
+            fail("Can't parse json object");
+        }
+        cache.addToJsoMap(id, jsonObject);
+        String toBackup = cache.getJsonString();
+
+        // Creating cache from saved data.
+        cache = new CacheData(toBackup);
+        assertTrue(cache.containsKey(id));
+    }
+
+    public void testJsonConstructorTruncatedProperString() {
+        // Creating cache with content.
+        String id = "data/CA";
+        try {
+            JSONObject jsonObject = new JSONObject(AddressDataMapLoader.DATA.get(id));
+            String jsonString = jsonObject.toString();
+            jsonString = jsonString.substring(0, jsonString.length() / 2);
+
+            cache = new CacheData(jsonString);
+            assertTrue(cache.toString(), cache.isEmpty());
+        } catch (JSONException jsonException) {
+            // If this throws an exception the test fails.
+            fail("Can't parse json object");
+        }
+    }
+
+    public void testSimpleFetching() {
+        final LookupKey key = new LookupKey.Builder(CANADA_KEY).build();
+
+        delayTestFinish(10000);
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+                JsoMap map = cache.getObj(CANADA_KEY);
+
+                assertTrue(map.containsKey(AddressDataKey.ID.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.LANG.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.ZIP.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.FMT.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.SUB_KEYS.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.SUB_NAMES.name().toLowerCase()));
+                assertFalse(map.containsKey(AddressDataKey.SUB_LNAMES.name().toLowerCase()));
+
+                int namesSize =
+                        map.get(AddressDataKey.SUB_NAMES.name().toLowerCase()).split(DELIM).length;
+                int keysSize =
+                        map.get(AddressDataKey.SUB_KEYS.name().toLowerCase()).split(DELIM).length;
+
+                assertEquals("Expect 13 states in Canada.", 13, namesSize);
+                assertEquals(namesSize, keysSize);
+                finishTest();
+            }
+        });
+    }
+
+    public void testFetchingTaiwanData() {
+        final LookupKey key = new LookupKey.Builder(TW_KEY).build();
+
+        delayTestFinish(10000);
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+
+                JsoMap map = cache.getObj(TW_KEY);
+
+                assertTrue(map.containsKey(AddressDataKey.ID.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.KEY.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.LANG.name().toLowerCase()));
+                assertTrue(map.containsKey(AddressDataKey.ZIP.name().toLowerCase()));
+                assertFalse(map.containsKey(AddressDataKey.FMT.name().toLowerCase()));
+                assertFalse(map.containsKey(AddressDataKey.SUB_KEYS.name().toLowerCase()));
+                assertFalse(map.containsKey(AddressDataKey.SUB_NAMES.name().toLowerCase()));
+                assertFalse(map.containsKey(AddressDataKey.SUB_LNAMES.name().toLowerCase()));
+
+                // Da-an district.
+                assertEquals("\u5927\u5B89\u5340",
+                             map.get(AddressDataKey.KEY.name().toLowerCase()));
+
+                assertEquals("zh-hant", map.get(AddressDataKey.LANG.name().toLowerCase()));
+
+                finishTest();
+            }
+        });
+    }
+
+    public void testFetchingExamples() {
+        final LookupKey key = new LookupKey.Builder(EXAMPLE_LOCAL_US_KEY).build();
+
+        delayTestFinish(10000);
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+
+                JsoMap map = cache.getObj(EXAMPLE_LOCAL_US_KEY);
+                assertTrue(map.containsKey("name"));
+                finishTest();
+            }
+        });
+    }
+
+    public void testFetchingOneKeyManyTimes() {
+        final LookupKey key = new LookupKey.Builder(CALIFORNIA_KEY).build();
+        final int maxCount = 10;
+
+        class CounterListener implements DataLoadListener {
+            @Override
+            public void dataLoadingBegin() {
+                listenerInvokeCount++;
+                if (listenerInvokeCount == maxCount) {
+                    reachedMaxCount = true;
+                }
+                assertTrue("CounterListener's dataLoadingBegin should not be invoked for more " +
+                           "than " + maxCount + " times",
+                           listenerInvokeCount <= maxCount);
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                listenerInvokeCount--;
+                assertTrue(listenerInvokeCount >= 0);
+                if (listenerInvokeCount == 0) {
+                    assertTrue("Expect to see key " + key + " cached when CounterListener's " +
+                               " dataLoadingEnd is invoked",
+                               cache.containsKey(key.toString()));
+                    assertTrue("Expect CounterListener's dataLoadingEnd to be triggered " +
+                               maxCount + " times in total", reachedMaxCount);
+                    finishTest();
+                }
+            }
+        }
+
+        delayTestFinish(10000);
+
+        for (int i = 0; i < maxCount; ++i) {
+            cache.fetchDynamicData(key, null, new CounterListener());
+        }
+
+        // Null listeners should not affect results.
+        cache.fetchDynamicData(key, null, null);
+        cache.fetchDynamicData(key, null, null);
+        cache.fetchDynamicData(key, null, null);
+    }
+
+    public void testFetchAgainRightAfterOneFetchStart() {
+        final LookupKey key = new LookupKey.Builder(US_KEY).build();
+
+        delayTestFinish(10000);
+
+        cache.fetchDynamicData(key, null, null);
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                assertFalse("data for key " + key + " should not be fetched yet",
+                            cache.containsKey(key.toString()));
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+
+                assertTrue(cache.containsKey(key.toString()));
+
+                cache.fetchDynamicData(key, null, new DataLoadListener() {
+                    boolean beginCalled2 = false;
+
+                    @Override
+                    public void dataLoadingBegin() {
+                        beginCalled2 = true;
+                    }
+
+                    @Override
+                    public void dataLoadingEnd() {
+                        assertTrue("dataLoadingBegin should be called", beginCalled2);
+
+                        assertTrue(cache.containsKey(key.toString()));
+                        finishTest();
+                    }
+                });
+            }
+        });
+    }
+
+    public void testInvalidKey() {
+        final LookupKey key = new LookupKey.Builder(RANDOM_COUNTRY_KEY).build();
+
+        delayTestFinish(15000);
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+                assertFalse(cache.containsKey(key.toString()));
+
+                finishTest();
+            }
+        });
+    }
+
+    public void testSetUrl() {
+        final LookupKey key = new LookupKey.Builder(FRANCE_KEY).build();
+        final String originalUrl = cache.getUrl();
+
+        assertFalse(FRANCE_KEY + " should not be in the cache. Do you request it before this test?",
+                    cache.containsKey(key.toString()));
+
+        delayTestFinish(10000);
+        // Something that is not an URL.
+        cache.setUrl("FDSSfdfdsfasdfadsf");
+
+        cache.fetchDynamicData(key, null, new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+                assertFalse(cache.containsKey(key.toString()));
+                cache.setUrl(originalUrl);
+                finishTest();
+            }
+        });
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/ClientDataTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/ClientDataTest.java
new file mode 100644 (file)
index 0000000..570434e
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.testing.AsyncTestCase;
+
+/**
+ * Tests for the ClientData class, to ensure it uses the cache data to correctly fetch data from the
+ * server and recovers if no data is present.
+ */
+public class ClientDataTest extends AsyncTestCase {
+    private ClientData client;
+
+    @Override
+    public void setUp() {
+        client = new ClientData(new CacheData());
+    }
+
+    public void testGet() {
+        AddressVerificationNodeData data = client.get("data");
+        assertNotNull(data);
+    }
+
+    public void testGet2() {
+        AddressVerificationNodeData data;
+
+        data = client.get("data");
+        assertNotNull(data);
+
+        data = client.get("data");
+        assertNotNull(data);
+    }
+
+    public void testPrefetchCountry() {
+        delayTestFinish(60000);
+
+        client.prefetchCountry("TW", new DataLoadListener() {
+            boolean beginCalled = false;
+
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called", beginCalled);
+                // Currently this test only tests that the execution doesn't crash and eventually
+                // terminates. TODO: Write test cases to verify that correct data is loaded.
+                finishTest();
+            }
+        });
+    }
+
+    public void testFetchDataWithBadServer() {
+        CacheData badCache = new CacheData();
+        badCache.setUrl("http://www.google.com");
+        ClientData badServerClient = new ClientData(badCache);
+
+        AddressVerificationNodeData data = badServerClient.get("data/US");
+
+        // No data was available on the server or in the cache - it should check
+        // that there is nothing in region data constants, and should return the
+        // data from there.
+        assertNotNull(data);
+        String unitedStatesFormatInfo = data.get(AddressDataKey.FMT);
+        assertEquals("%N%n%O%n%A%n%C %S %Z", unitedStatesFormatInfo);
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FieldVerifierTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FieldVerifierTest.java
new file mode 100644 (file)
index 0000000..6521a5a
--- /dev/null
@@ -0,0 +1,271 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.testing.AddressDataMapLoader;
+
+import junit.framework.TestCase;
+
+/**
+ * Spot check the standard data set for various cases of interest. This is not an exhaustive test.
+ */
+public class FieldVerifierTest extends TestCase {
+
+    private static final StandardAddressVerifier VERIFIER =
+            new StandardAddressVerifier(new FieldVerifier(
+                    new AddressVerificationData(AddressDataMapLoader.DATA)));
+
+    private AddressProblems problems = new AddressProblems();
+
+    @Override
+    protected void setUp() {
+        problems.clear();
+    }
+
+    public void testUnitedStatesOk() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setAddress("1234 Somewhere")
+                                                    .setPostalCode("94025").build();
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());  // no mismatch
+    }
+
+    public void testUnitedStatesZipMismatch() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setPostalCode("12345").build();
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISMATCHING_VALUE,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    public void testUnitedStatesNotOk() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality(null)
+                                                    .setDependentLocality("Foo Bar")
+                                                    .setPostalCode("12345").build();
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISMATCHING_VALUE,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.LOCALITY));
+    }
+
+    public void testChinaOk() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Beijing Shi")
+                                                    .setLocality("Xicheng Qu")
+                                                    .setAddress("Yitiao Lu")
+                                                    .setPostalCode("123456").build();
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.isEmpty());
+    }
+
+    public void testGermanAddress() {
+        AddressData addr = new AddressData.Builder().setCountry("DE")
+                                                    .setLocality("Berlin")
+                                                    .setAddress("Huttenstr. 50")
+                                                    .setPostalCode("10553")
+                                                    .setOrganization("BMW AG Niederkassung Berlin")
+                                                    .setRecipient("Herr Diefendorf").build();
+
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.isEmpty());
+
+        // Clones address but leave city empty.
+        addr = new AddressData.Builder().set(addr).setLocality(null).build();
+
+        VERIFIER.verify(addr, problems);
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.LOCALITY));
+    }
+
+    public void testIrishAddress() {
+        AddressData addr = new AddressData.Builder().setCountry("IE")
+                                                    .setLocality("Dublin")
+                                                    .setAdminArea("Co. Dublin")
+                                                    .setAddress("7424 118 Avenue NW")
+                                                    .setRecipient("Conan O'Brien").build();
+
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+
+        // Clones address but leave county empty. This address should be valid
+        // since county is not required.
+        addr = new AddressData.Builder().set(addr).setAdminArea(null).build();
+
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testChinaPostalCodeBadFormat() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Beijing Shi")
+                                                    .setLocality("Xicheng Qu")
+                                                    .setPostalCode("12345").build();
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.UNRECOGNIZED_FORMAT,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    /**
+     * If there is a postal code pattern for a certain country, and the input postal code is empty,
+     * it should not be reported as bad postal code format. Whether empty postal code is ok should
+     * be determined by checks for required fields.
+     */
+    public void testEmptyPostalCodeReportedAsGoodFormat() {
+        // Chilean address has a postal code format pattern, but does not require
+        // postal code. The following address is valid.
+        AddressData addr = new AddressData.Builder().setCountry("CL")
+                                                    .setAddressLine1("GUSTAVO LE PAIGE ST #159")
+                                                    .setAdminArea("Atacama")
+                                                    .setLocality("San Pedro")
+                                                    .setPostalCode("")
+                                                    .build();
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+
+        problems.clear();
+
+        // Now check for US addresses, which require a postal code. The following
+        // address's postal code is wrong because it is missing a required field, not
+        // because it doesn't match the expected postal code pattern.
+        addr = new AddressData.Builder().setCountry("US").setPostalCode("").build();
+        problems.clear();
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    public void testChinaTaiwanOk() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Taiwan")
+                                                    .setLocality("Taichung City")
+                                                    .setDependentLocality("Situn District")
+                                                    .setAddress("12345 Yitiao Lu")
+                                                    .setPostalCode("407").build();
+        VERIFIER.verify(addr, problems);
+        assertTrue(problems.isEmpty());
+    }
+
+    public void testChinaTaiwanUnknownDistrict() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Taiwan")
+                                                    .setLocality("Taichung City")
+                                                    .setDependentLocality("Foo Bar")
+                                                    .setPostalCode("400").build();
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.UNKNOWN_VALUE,
+                     problems.getProblem(AddressField.DEPENDENT_LOCALITY));
+    }
+
+    public void testStreetVerification() {
+        // Missing street address
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setPostalCode("94025").build();
+
+        assertNull(addr.getAddressLine1());
+        assertNull(addr.getAddressLine2());
+
+        VERIFIER.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.STREET_ADDRESS));
+    }
+
+    // Tests The Bahamas' address
+    public void failingtestBahamas() {
+        final AddressData address =
+                new AddressData.Builder().setAddress("Abaco Beach Resort & Boat Habour")
+                                         .setLocality("Treasure Cay")
+                                         .setAdminArea("Abaco")
+                                         .setCountry("BS").build();
+        VERIFIER.verify(address, problems);
+        assertTrue(problems.isEmpty());
+    }
+
+    public void testJapan() {
+        // Added AdminArea since address verification can't infer it from Kyoto City
+        // Commented out dependent locality since we don't have the data for this and in fact say
+        // that it shouldn't be used for Japan.
+        // TODO: support inference of higher levels from lower ones
+        final AddressData address = new AddressData.Builder()
+                .setRecipient("\u5BAE\u672C \u8302")  // SHIGERU_MIYAMOTO
+                .setAddress("\u4E0A\u9CE5\u7FBD\u927E\u7ACB\u753A11\u756A\u5730")
+                .setAdminArea("\u4eac\u90fd\u5e9c")  // Kyoto prefecture, added
+                .setLocality("\u4EAC\u90FD\u5E02")  // Kyoto city
+                // .setDependentLocality("\u5357\u533A")
+                .setCountry("JP")
+                .setPostalCode("601-8501").build();
+        VERIFIER.verify(address, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testJapanLatin() {
+        // added AdminArea since address verification can't infer it from Kyoto City
+        // commented out dependent locality since address verification doesn't use it
+        final AddressData address = new AddressData.Builder()
+            .setRecipient("Shigeru Miyamoto")  // SHIGERU_MIYAMOTO_ENGLISH
+            .setAddress("11-1 Kamitoba-hokotate-cho")
+            .setAdminArea("KYOTO")  // added
+            .setLocality("Kyoto")
+            // .setDependentLocality("Minami-ku")
+            .setLanguageCode("ja_Latn")
+            .setCountry("JP")
+            .setPostalCode("601-8501").build();
+        VERIFIER.verify(address, problems);
+        assertTrue(problems.isEmpty());
+    }
+
+    public void testJapanLatinInvalidAdmin() {
+        final AddressData address = new AddressData.Builder()
+                .setRecipient("Shigeru Miyamoto")  // SHIGERU_MIYAMOTO_ENGLISH
+                .setAddress("11-1 Kamitoba-hokotate-cho")
+                .setAdminArea("Fake Admin")
+                .setLocality("Kyoto")
+                .setLanguageCode("ja_Latn")
+                .setCountry("JP")
+                .setPostalCode("601-8501").build();
+        VERIFIER.verify(address, problems);
+        assertFalse(problems.isEmpty());
+        assertEquals(AddressProblemType.UNKNOWN_VALUE,
+                     problems.getProblem(AddressField.ADMIN_AREA));
+    }
+
+    public void testCanadaMixedCasePostcode() {
+      final AddressData address = new AddressData.Builder()
+              .setRecipient("Joe Bloggs")
+              .setAddress("11 East St")
+              .setLocality("Montreal")
+              .setAdminArea("Quebec")
+              .setCountry("CA")
+              .setPostalCode("H2b 2y5").build();
+      VERIFIER.verify(address, problems);
+      assertTrue(problems.isEmpty());
+  }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormControllerTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormControllerTest.java
new file mode 100644 (file)
index 0000000..23b798f
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.KeyType;
+import com.android.i18n.addressinput.testing.AsyncTestCase;
+
+import java.util.List;
+
+/**
+ * Basic Tests for {@link FormController}.
+ */
+public class FormControllerTest extends AsyncTestCase {
+
+    private static final AddressData US_CA_ADDRESS;
+    private static final AddressData US_ADDRESS;
+    private ClientData clientData;
+
+    static {
+        US_CA_ADDRESS = new AddressData.Builder().setCountry("US")
+                .setAdminArea("CA")
+                .setLocality("Mt View")
+                .setAddressLine1("1098 Alta Ave")
+                .setPostalCode("94043")
+                .build();
+        US_ADDRESS = new AddressData.Builder().setCountry("US").build();
+    }
+
+    @Override
+    public void setUp() {
+        clientData = new ClientData(new CacheData());
+    }
+
+    public void testRequestDataForAddress() {
+        final FormController controller = new FormController(clientData, "en", "US");
+
+        delayTestFinish(15000);
+
+        controller.requestDataForAddress(US_CA_ADDRESS, new DataLoadListener() {
+            boolean beginCalled = false;
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called before dataLoadingEnd",
+                           beginCalled);
+                LookupKey usCaMtvKey = new LookupKey.Builder(KeyType.DATA)
+                        .setAddressData(US_CA_ADDRESS).build();
+                LookupKey usKey = usCaMtvKey.getKeyForUpperLevelField(
+                        AddressField.COUNTRY);
+                LookupKey usCaKey = usCaMtvKey.getKeyForUpperLevelField(
+                        AddressField.ADMIN_AREA);
+                assertNotNull("key should be data/US/CA", usCaKey);
+                assertNotNull("key should be data/US/CA/Mt View", usCaMtvKey);
+                assertNotNull(clientData.get(usKey.toString()));
+                assertNotNull(clientData.get(usCaKey.toString()));
+                assertNull(clientData.get(usCaMtvKey.toString()));
+                finishTest();
+            }
+        });
+    }
+
+    public void testRequestDataForBadAddress() {
+        final AddressData address = new AddressData.Builder(US_CA_ADDRESS)
+                .setAdminArea("FOOBAR")
+                .setLocality("KarKar")
+                .build();
+
+        final FormController controller = new FormController(clientData, "en", "US");
+
+        delayTestFinish(15000);
+
+        controller.requestDataForAddress(address, new DataLoadListener() {
+            boolean beginCalled = false;
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called before dataLoadingEnd",
+                           beginCalled);
+                LookupKey badKey = new LookupKey.Builder(KeyType.DATA)
+                        .setAddressData(address).build();
+                LookupKey usKey = badKey.getKeyForUpperLevelField(AddressField.COUNTRY);
+
+                List<RegionData> rdata = controller.getRegionData(usKey);
+                assertTrue(rdata.size() > 0);
+                String subkey = rdata.get(0).getKey();
+                assertNotNull("Should be the first US state", subkey);
+                LookupKey usFirstStateKey =
+                        new LookupKey.Builder(usKey.toString() + "/" + subkey).build();
+
+                assertNotNull(clientData.get(usKey.toString()));
+                assertNotNull(clientData.get(usFirstStateKey.toString()));
+                assertNull(clientData.get(badKey.toString()));
+                finishTest();
+            }
+        });
+    }
+
+    public void testRequestDataForCountry() {
+        final FormController controller = new FormController(clientData, "en", "US");
+
+        delayTestFinish(15000);
+
+        controller.requestDataForAddress(US_ADDRESS, new DataLoadListener() {
+            boolean beginCalled = false;
+            @Override
+            public void dataLoadingBegin() {
+                beginCalled = true;
+            }
+
+            @Override
+            public void dataLoadingEnd() {
+                assertTrue("dataLoadingBegin should be called before dataLoadingEnd",
+                           beginCalled);
+                LookupKey usKey = new LookupKey.Builder(KeyType.DATA)
+                        .setAddressData(US_ADDRESS).build();
+                assertNotNull("key should be data/US", usKey);
+                List<RegionData> rdata = controller.getRegionData(usKey);
+                assertTrue(rdata.size() > 0);
+                String subkey = rdata.get(0).getKey();
+                assertNotNull("Should be the first US state", subkey);
+                LookupKey usFirstStateKey =
+                        new LookupKey.Builder(usKey.toString() + "/" + subkey).build();
+                assertNotNull(clientData.get(usKey.toString()));
+                assertNotNull(clientData.get(usFirstStateKey.toString()));
+                finishTest();
+            }
+        });
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormOptionsTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormOptionsTest.java
new file mode 100644 (file)
index 0000000..5f8e8c3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Test for building form options.
+ */
+public class FormOptionsTest extends TestCase {
+    public void testRequiredField() throws Exception {
+        FormOptions options = new FormOptions.Builder().required(AddressField.COUNTRY).build();
+        assertTrue(options.isRequired(AddressField.COUNTRY));
+        assertFalse(options.isRequired(AddressField.LOCALITY));
+        assertTrue(options.getRequiredFields().contains(AddressField.COUNTRY));
+        assertFalse(options.getRequiredFields().contains(AddressField.LOCALITY));
+    }
+
+    public void testReadonlyField() throws Exception {
+        FormOptions options = new FormOptions.Builder().readonly(AddressField.COUNTRY).build();
+        assertTrue(options.isReadonly(AddressField.COUNTRY));
+        assertFalse(options.isReadonly(AddressField.LOCALITY));
+    }
+
+    public void testHiddenField() throws Exception {
+        FormOptions options = new FormOptions.Builder().hide(AddressField.COUNTRY).build();
+        assertTrue(options.isHidden(AddressField.COUNTRY));
+        assertFalse(options.isHidden(AddressField.LOCALITY));
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormatInterpreterTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/FormatInterpreterTest.java
new file mode 100644 (file)
index 0000000..50372ed
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.ScriptType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the FormatInterpreter class.
+ */
+public class FormatInterpreterTest extends TestCase {
+    private static final AddressData US_CA_ADDRESS;
+    private static final AddressData TW_ADDRESS;
+
+    private FormatInterpreter formatInterpreter;
+
+    static {
+        US_CA_ADDRESS = new AddressData.Builder().setCountry("US")
+                                                 .setAdminArea("CA")
+                                                 .setLocality("Mt View")
+                                                 .setAddressLine1("1098 Alta Ave")
+                                                 .setPostalCode("94043")
+                                                 .build();
+
+        TW_ADDRESS = new AddressData.Builder().setCountry("TW")
+                                              .setAdminArea("\u53F0\u5317\u5E02")  // Taipei city
+                                              .setLocality("\u5927\u5B89\u5340")  // Da-an district
+                                              .setAddressLine1("Sec. 3 Hsin-yi Rd.")
+                                              .setPostalCode("106")
+                                              .setOrganization("Giant Bike Store")
+                                              .setRecipient("Mr. Liu")
+                                              .build();
+    }
+
+    @Override
+    public void setUp() {
+        formatInterpreter = new FormatInterpreter(new FormOptions.Builder().build());
+    }
+
+    public void testIterateUsAddressFields() {
+        AddressField[] format = {
+            AddressField.RECIPIENT,
+            AddressField.ORGANIZATION,
+            AddressField.ADDRESS_LINE_1,
+            AddressField.ADDRESS_LINE_2,
+            AddressField.LOCALITY,
+            AddressField.ADMIN_AREA,
+            AddressField.POSTAL_CODE
+        };
+
+        int currIndex = 0;
+        for (AddressField field : formatInterpreter.getAddressFieldOrder(ScriptType.LOCAL, "US")) {
+            assertEquals("index " + currIndex + " should have matched",
+                         format[currIndex].getChar(), field.getChar());
+            currIndex++;
+        }
+    }
+
+    /**
+     * Tests that this works for the case of Vanuatu, since we have no country-specific formatting
+     * data for that country. Should fall back to the default region.
+     */
+    public void testIterateVuAddressFields() {
+        AddressField[] format = {
+            AddressField.RECIPIENT,
+            AddressField.ORGANIZATION,
+            AddressField.ADDRESS_LINE_1,
+            AddressField.ADDRESS_LINE_2,
+            AddressField.LOCALITY,
+        };
+
+        int currIndex = 0;
+        for (AddressField field : formatInterpreter.getAddressFieldOrder(ScriptType.LOCAL, "VU")) {
+            assertEquals("index " + currIndex + " should have matched",
+                         format[currIndex].getChar(), field.getChar());
+            currIndex++;
+        }
+    }
+
+    public void testOverrideFieldOrder() {
+        AddressField[] expectedOrder = {
+            AddressField.ADMIN_AREA,
+            AddressField.ORGANIZATION,
+            AddressField.ADDRESS_LINE_1,
+            AddressField.ADDRESS_LINE_2,
+            AddressField.LOCALITY,
+            AddressField.RECIPIENT,
+            AddressField.POSTAL_CODE
+        };
+
+        FormatInterpreter myInterpreter = new FormatInterpreter(
+                new FormOptions.Builder().customizeFieldOrder("US",
+                                                              AddressField.ADMIN_AREA,
+                                                              AddressField.RECIPIENT,
+                                                              AddressField.SORTING_CODE,
+                                                              AddressField.POSTAL_CODE).build());
+
+        int currIndex = 0;
+        for (AddressField field : myInterpreter.getAddressFieldOrder(ScriptType.LOCAL, "US")) {
+            assertEquals("Wrong field order for US on index " + currIndex + " of address fields.",
+                         expectedOrder[currIndex], field);
+
+            // Sorting code (CEDEX) is not in US address format and should be
+            // neglected even if it is specified in customizeFieldOrder().
+            assertNotSame(AddressField.SORTING_CODE, field);
+            currIndex++;
+        }
+    }
+
+    public void testIterateTwLatinAddressFields() {
+        AddressField[] format = {
+            AddressField.RECIPIENT,
+            AddressField.ORGANIZATION,
+            AddressField.ADDRESS_LINE_1,
+            AddressField.ADDRESS_LINE_2,
+            AddressField.LOCALITY,
+            AddressField.ADMIN_AREA,
+            AddressField.POSTAL_CODE
+        };
+
+        int currIndex = 0;
+        for (AddressField field : formatInterpreter.getAddressFieldOrder(ScriptType.LATIN, "TW")) {
+            assertEquals("Unexpected field order -- mismatched on index " + currIndex,
+                         format[currIndex].getChar(), field.getChar());
+            currIndex++;
+        }
+    }
+
+    public void testUsEnvelopeAddress() {
+        List<String> expected = new ArrayList<String>();
+        expected.add("1098 Alta Ave");
+        expected.add("Mt View CA 94043");
+
+        List<String> real = formatInterpreter.getEnvelopeAddress(US_CA_ADDRESS);
+
+        assertEquals(expected, real);
+    }
+
+    public void testTwEnvelopeAddress() {
+        // To be in this order, the whole address should really be in Traditional Chinese - for
+        // readability, only the neighbourhood and city are.
+        List<String> expected = new ArrayList<String>();
+        expected.add("106");
+        expected.add("\u53F0\u5317\u5E02\u5927\u5B89\u5340");  // Taipei city, Da-an district
+        expected.add("Sec. 3 Hsin-yi Rd.");
+        expected.add("Giant Bike Store");
+        expected.add("Mr. Liu");
+
+        List<String> real = formatInterpreter.getEnvelopeAddress(TW_ADDRESS);
+
+        assertEquals(expected, real);
+    }
+
+    public void testEnvelopeAddressIncompleteAddress() {
+        List<String> expected = new ArrayList<String>();
+        expected.add("1098 Alta Ave");
+        expected.add("CA 94043");
+
+        AddressData address = new AddressData.Builder().set(US_CA_ADDRESS)
+                                                       .set(AddressField.LOCALITY, null).build();
+
+        List<String> real = formatInterpreter.getEnvelopeAddress(address);
+
+        assertEquals(expected, real);
+    }
+
+    public void testEnvelopeAddressEmptyAddress() {
+        List<String> expected = new ArrayList<String>();
+        AddressData address = new AddressData.Builder().setCountry("US").build();
+
+        List<String> real = formatInterpreter.getEnvelopeAddress(address);
+        assertEquals(expected, real);
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsoMapTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsoMapTest.java
new file mode 100644 (file)
index 0000000..76bcbed
--- /dev/null
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Unit test for {@link JsoMap}.
+ */
+public class JsoMapTest extends TestCase {
+
+    private static final String VALID_JSON = "{\"a\":\"b\",\"c\":1,\"d\":{\"e\":\"f\"}}";
+    private static final String INVALID_JSON = "!";
+
+    public void testBuildJsoMap() throws Exception {
+        assertNotNull(JsoMap.buildJsoMap(VALID_JSON));
+
+        try {
+            JsoMap.buildJsoMap(INVALID_JSON);
+            fail("Expected JSONException.");
+        } catch (JSONException e) {
+            // Expected.
+        }
+    }
+
+    public void testCreateEmptyJsoMap() throws Exception {
+        assertNotNull(JsoMap.createEmptyJsoMap());
+    }
+
+    public void testDelKey() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+
+        assertEquals("b", map.get("a"));
+        map.delKey("a");
+        assertNull(map.get("a"));
+
+        map.delKey("b");
+        map.delKey("c");
+        map.delKey("d");
+    }
+
+    public void testGet() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+        assertEquals("b", map.get("a"));
+        assertNull(map.get("b"));
+
+        try {
+            map.get("c");
+            fail("Expected IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected.
+        }
+
+        try {
+            map.get("d");
+            fail("Expected ClassCastException.");
+        } catch (ClassCastException e) {
+            // Expected.
+        }
+    }
+
+    public void testGetInt() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+
+        try {
+            map.getInt("a");
+            fail("Expected RuntimeException.");
+        } catch (RuntimeException e) {
+            // Expected.
+        }
+
+        assertEquals(-1, map.getInt("b"));
+        assertEquals(1, map.getInt("c"));
+
+        try {
+            map.getInt("d");
+            fail("Expected RuntimeException.");
+        } catch (RuntimeException e) {
+            // Expected.
+        }
+    }
+
+    public void testGetKeys() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+        JSONArray keys = map.getKeys();
+        assertNotNull(keys);
+        assertEquals(3, keys.length());
+        Set<String> keySet = new HashSet<String>(keys.length());
+        for (int i = 0; i < keys.length(); i++) {
+            keySet.add(keys.getString(i));
+        }
+        assertEquals(new HashSet<String>(Arrays.asList("a", "c", "d")), keySet);
+    }
+
+    public void testGetObj() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+
+        try {
+            map.getObj("a");
+            fail("Expected ClassCastException.");
+        } catch (ClassCastException e) {
+            // Expected.
+        }
+
+        assertNull(map.getObj("b"));
+
+        try {
+            map.getObj("c");
+            fail("Expected IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected.
+        }
+
+        JsoMap obj = map.getObj("d");
+        assertNotNull(obj);
+        assertEquals("f", obj.get("e"));
+    }
+
+    public void testContainsKey() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+        assertTrue(map.containsKey("a"));
+        assertFalse(map.containsKey("b"));
+        assertTrue(map.containsKey("c"));
+        assertTrue(map.containsKey("d"));
+    }
+
+    public void testMergeData() throws Exception {
+        JsoMap mapA = JsoMap.createEmptyJsoMap();
+        JsoMap mapB = JsoMap.createEmptyJsoMap();
+
+        mapA.putInt("a", 1);
+        mapA.putInt("b", 2);
+
+        mapB.putInt("b", 3);
+        mapB.putInt("c", 4);
+
+        mapA.mergeData(mapB);
+        assertEquals(1, mapA.getInt("a"));
+        assertEquals(2, mapA.getInt("b"));
+        assertEquals(4, mapA.getInt("c"));
+    }
+
+    public void testPut() throws Exception {
+        JsoMap map = JsoMap.createEmptyJsoMap();
+
+        map.put("a", "b");
+        assertEquals("b", map.get("a"));
+
+        map.put("a", "c");
+        assertEquals("c", map.get("a"));
+    }
+
+    public void testPutInt() throws Exception {
+        JsoMap map = JsoMap.createEmptyJsoMap();
+
+        map.putInt("a", 1);
+        assertEquals(1, map.getInt("a"));
+
+        map.putInt("a", 2);
+        assertEquals(2, map.getInt("a"));
+    }
+
+    public void testPutObj() throws Exception {
+        JsoMap map = JsoMap.createEmptyJsoMap();
+        JsoMap obj = JsoMap.createEmptyJsoMap();
+
+        obj.putInt("a", 1);
+        map.putObj("b", obj);
+        assertEquals(obj.toString(), map.getObj("b").toString());
+
+        obj.putInt("a", 2);
+        map.putObj("b", obj);
+        assertEquals(obj.toString(), map.getObj("b").toString());
+    }
+
+    public void testString() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+
+        try {
+            // This should fail on the integer "c" or the map "d".
+            map.string();
+            fail("Expected IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected.
+        } catch (ClassCastException e) {
+            // Expected.
+        }
+
+        map.delKey("c");
+        try {
+            // This should fail on the object "d".
+            map.string();
+            fail("Expected ClassCastException.");
+        } catch (ClassCastException e) {
+            // Expected.
+        }
+
+        map.delKey("d");
+        assertEquals("JsoMap[\n(a:b)\n]", map.string());
+    }
+
+    public void testMap() throws Exception {
+        JsoMap map = JsoMap.buildJsoMap(VALID_JSON);
+        try {
+            // This should fail on the string "a" or the integer "c".
+            map.map();
+            fail("Expected ClassCastException.");
+        } catch (ClassCastException e) {
+            // Expected.
+        } catch (IllegalArgumentException e) {
+            // Expected.
+        }
+
+        map.delKey("a");
+        try {
+            // This should fail on the integer "c".
+            map.map();
+            fail("Expected IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected.
+        }
+
+        map.delKey("c");
+        assertEquals("JsoMap[\n(d:JsoMap[\n(e:f)\n])\n]", map.map());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsonpRequestBuilderTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/JsonpRequestBuilderTest.java
new file mode 100644 (file)
index 0000000..392a68e
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.JsonpRequestBuilder.AsyncCallback;
+import com.android.i18n.addressinput.testing.AsyncTestCase;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketTimeoutException;
+
+public class JsonpRequestBuilderTest extends AsyncTestCase {
+    private JsonpRequestBuilder builder;
+
+    @Override
+    public void setUp() {
+        builder = new JsonpRequestBuilder();
+    }
+
+    public void testRequestObject() throws Exception {
+        delayTestFinish(4000);
+        builder.setTimeout(2000);
+
+        String url = HttpServer.execute(1000, "{\"id\": \"data\"}");
+
+        builder.requestObject(url, new AsyncCallback<JsoMap>() {
+            @Override
+            public void onFailure(Throwable caught) {
+                fail(caught.toString());
+            }
+
+            @Override
+            public void onSuccess(JsoMap result) {
+                assertNotNull(result);
+                assertEquals("data", result.get("id"));
+                finishTest();
+            }
+        });
+    }
+
+    public void testSetTimeout() throws Exception {
+        delayTestFinish(4000);
+        builder.setTimeout(1000);
+
+        String url = HttpServer.execute(2000, "Fubar");
+
+        builder.requestObject(url, new AsyncCallback<JsoMap>() {
+            @Override
+            public void onFailure(Throwable caught) {
+                assertNotNull(caught);
+                assertTrue(caught instanceof SocketTimeoutException);
+                finishTest();
+            }
+
+            @Override
+            public void onSuccess(JsoMap result) {
+                fail("The request should have timed out.");
+            }
+        });
+    }
+
+    public void testUrlEncoding() throws Exception {
+        delayTestFinish(4000);
+        builder.setTimeout(2000);
+
+        String urlBase = HttpServer.execute(1000, "{\"id\": \"data\"}");
+        String url = urlBase + "address/data/VN/B\u1EAFc K\u1EA1n";
+
+        builder.requestObject(url, new AsyncCallback<JsoMap>() {
+            @Override
+            public void onFailure(Throwable caught) {
+                fail(caught.toString());
+            }
+
+            @Override
+            public void onSuccess(JsoMap result) {
+                assertNotNull(result);
+                assertEquals("data", result.get("id"));
+                finishTest();
+            }
+        });
+    }
+
+    /**
+     * Simple implementation of an HTTP server.
+     */
+    private static class HttpServer extends Thread {
+        /**
+         * Start an HTTP server that will serve one request and then terminate.
+         *
+         * @param timeoutMillis
+         *            Wait this long before answering a request.
+         * @param response
+         *            Reply to any request with this response.
+         * @return The URL to the server.
+         * @throws IOException
+         */
+        public static String execute(long timeoutMillis, String response) throws IOException {
+            HttpServer server = new HttpServer(timeoutMillis, response);
+            server.start();
+            return "http://localhost:" + server.serverSocket.getLocalPort() + "/";
+        }
+
+        @Override
+        public void run() {
+            try {
+                Socket clientSocket = serverSocket.accept();
+                try {
+                    synchronized (this) {
+                        wait(waitMillis);
+                    }
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                InputStream inputStream = clientSocket.getInputStream();
+                inputStream.read(new byte[1024]);  // Discard input.
+                OutputStream outputStream = clientSocket.getOutputStream();
+                outputStream.write(response);
+                outputStream.close();
+                inputStream.close();
+                clientSocket.close();
+                serverSocket.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        private HttpServer(long waitMillis, String response) throws IOException {
+            this.waitMillis = waitMillis;
+            this.response = (header + response).getBytes();
+            serverSocket = new ServerSocket(0);
+        }
+
+        private long waitMillis;
+        private byte[] response;
+        private ServerSocket serverSocket;
+
+        private static final String header = "HTTP/1.0 200 OK\nContent-Type: text/plain\n\n";
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/LookupKeyTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/LookupKeyTest.java
new file mode 100644 (file)
index 0000000..608e076
--- /dev/null
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import com.android.i18n.addressinput.LookupKey.KeyType;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit tests for the LookupKey class.
+ */
+public class LookupKeyTest extends TestCase {
+    private static final String ROOT_KEY = "data";
+    private static final String ROOT_EXAMPLE_KEY = "examples";
+    private static final String US_KEY = "data/US";
+    private static final String CALIFORNIA_KEY = "data/US/CA";
+    private static final String EXAMPLE_LOCAL_US_KEY = "examples/US/local/_default";
+
+    // Data key for Da-an District, Taipei Taiwan
+    private static final String TW_KEY = "data/TW/\u53F0\u5317\u5E02/\u5927\u5B89\u5340";
+
+    // Example key for TW's address (local script)
+    private static final String TW_EXAMPLE_LOCAL_KEY = "examples/TW/local/_default";
+
+    // Example key for TW's address (latin script)
+    private static final String TW_EXAMPLE_LATIN_KEY = "examples/TW/latin/_default";
+
+    private static final String RANDOM_KEY = "sdfIisooIFOOBAR";
+    private static final String RANDOM_COUNTRY_KEY = "data/asIOSDxcowW";
+
+    public void testRootKey() {
+        LookupKey key = new LookupKey.Builder(KeyType.DATA).build();
+        assertEquals(ROOT_KEY, key.toString());
+
+        LookupKey key2 = new LookupKey.Builder(key.toString()).build();
+        assertEquals(ROOT_KEY, key2.toString());
+    }
+
+    public void testDataKeys() {
+        LookupKey key = new LookupKey.Builder(US_KEY).build();
+        assertEquals(US_KEY, key.toString());
+
+        LookupKey key2 = new LookupKey.Builder(CALIFORNIA_KEY).build();
+        assertEquals(CALIFORNIA_KEY, key2.toString());
+    }
+
+    public void testExampleRootKeys() {
+        LookupKey key = new LookupKey.Builder(KeyType.EXAMPLES).build();
+        assertEquals(ROOT_EXAMPLE_KEY, key.toString());
+    }
+
+    public void testExampleKeys() {
+        AddressData address = new AddressData.Builder().setCountry("US")
+                                                       .setLanguageCode("en")
+                                                       .build();
+
+        LookupKey key = new LookupKey.Builder(KeyType.EXAMPLES).setAddressData(address).build();
+        assertEquals(EXAMPLE_LOCAL_US_KEY, key.toString());
+
+        key = new LookupKey.Builder(EXAMPLE_LOCAL_US_KEY).build();
+        assertEquals(EXAMPLE_LOCAL_US_KEY, key.toString());
+    }
+
+    public void testKeyWithWrongScriptType() {
+        String wrongScript = "examples/US/asdfasdfasdf/_default";
+        try {
+            new LookupKey.Builder(wrongScript).build();
+            fail("should fail since the script type is wrong");
+        } catch (RuntimeException e) {
+            // Expected.
+        }
+    }
+
+    public void testFallbackToCountry() {
+        // Admin Area is missing.
+        AddressData address = new AddressData.Builder().setCountry("US")
+                                                       .setLocality("Mt View")
+                                                       .build();
+
+        LookupKey key = new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+
+        assertEquals("locality should be omitted since admin area is not specified", US_KEY,
+                     key.toString());
+
+        // Tries key string with the same problem (missing Admin Area).
+        key = new LookupKey.Builder("data/US//Mt View").build();
+
+        assertEquals("locality should be omitted since admin area is not specified", US_KEY,
+                     key.toString());
+    }
+
+    public void testNonUsAddress() {
+        AddressData address = new AddressData.Builder().setCountry("TW")
+                                                       // Taipei City
+                                                       .setAdminArea("\u53F0\u5317\u5E02")
+                                                       // Da-an District
+                                                       .setLocality("\u5927\u5B89\u5340")
+                                                       .build();
+
+        LookupKey key = new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+        assertEquals(TW_KEY, key.toString());
+
+        key = new LookupKey.Builder(KeyType.EXAMPLES).setAddressData(address).build();
+        assertEquals(TW_EXAMPLE_LOCAL_KEY, key.toString());
+
+        address = new AddressData.Builder(address).setLanguageCode("zh-latn").build();
+        key = new LookupKey.Builder(KeyType.EXAMPLES).setAddressData(address).build();
+        assertEquals(TW_EXAMPLE_LATIN_KEY, key.toString());
+    }
+
+    public void testGetKeyForUpperLevelFieldWithDataKey() {
+        AddressData address = new AddressData.Builder().setCountry("US")
+                                                       .setAdminArea("CA")
+                                                       .setLocality("Mt View")
+                                                       .build();
+
+        LookupKey key = new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+        LookupKey newKey = key.getKeyForUpperLevelField(AddressField.COUNTRY);
+        assertNotNull("failed to get key for " + AddressField.COUNTRY, newKey);
+        assertEquals("data/US", newKey.toString());
+
+        newKey = key.getKeyForUpperLevelField(AddressField.ADMIN_AREA);
+        assertNotNull("failed to get key for " + AddressField.ADMIN_AREA, newKey);
+        assertEquals("data/US/CA", newKey.toString());
+        assertEquals("original key should not be changed", "data/US/CA/Mt View", key.toString());
+
+        newKey = key.getKeyForUpperLevelField(AddressField.LOCALITY);
+        assertNotNull("failed to get key for " + AddressField.LOCALITY, newKey);
+        assertEquals("data/US/CA/Mt View", newKey.toString());
+
+        newKey = key.getKeyForUpperLevelField(AddressField.DEPENDENT_LOCALITY);
+        assertNull("should return null for field not contained in current key", newKey);
+
+        newKey = key.getKeyForUpperLevelField(AddressField.RECIPIENT);
+        assertNull("should return null since field '" + AddressField.RECIPIENT +
+                   "' is not in address hierarchy", newKey);
+    }
+
+    public void testGetKeyForUpperLevelFieldWithExampleKey() {
+        LookupKey key = new LookupKey.Builder("examples/US/latin/_default").build();
+
+        try {
+            key.getKeyForUpperLevelField(AddressField.COUNTRY);
+            fail("should fail if you try to get parent key for an example key.");
+        } catch (RuntimeException e) {
+            // Expected.
+        }
+    }
+
+    public void testGetParentKey() {
+        AddressData address = new AddressData.Builder().setCountry("US")
+                                                       .setAdminArea("CA")
+                                                       .setLocality("Mt View")
+                                                       .setDependentLocality("El Camino")
+                                                       .build();
+
+        LookupKey key = new LookupKey.Builder(KeyType.DATA).setAddressData(address).build();
+        assertEquals("data/US/CA/Mt View/El Camino", key.toString());
+
+        key = key.getParentKey();
+        assertEquals("data/US/CA/Mt View", key.toString());
+
+        key = key.getParentKey();
+        assertEquals("data/US/CA", key.toString());
+
+        key = key.getParentKey();
+        assertEquals("data/US", key.toString());
+
+        key = key.getParentKey();
+        assertEquals("data", key.toString());
+
+        key = key.getParentKey();
+        assertNull("root key's parent should be null", key);
+    }
+
+    public void testInvalidKeyTypeWillFail() {
+        try {
+            new LookupKey.Builder(RANDOM_KEY).build();
+            fail("Should fail if key string does not start with a valid key type");
+        } catch (RuntimeException e) {
+            // Expected.
+        }
+    }
+
+    /**
+     * Ensures that even when the input key string is random, we still create a key. (We do not
+     * verify if the key maps to an real world entity like a city or country).
+     */
+    public void testWeDontVerifyKeyName() {
+        LookupKey key = new LookupKey.Builder(RANDOM_COUNTRY_KEY).build();
+        assertEquals(RANDOM_COUNTRY_KEY, key.toString());
+    }
+
+    public void testHash() {
+        String keys[] = { ROOT_KEY, ROOT_EXAMPLE_KEY, US_KEY, CALIFORNIA_KEY };
+        Map<LookupKey, String> map = new HashMap<LookupKey, String>();
+
+        for (String key : keys) {
+            map.put(new LookupKey.Builder(key).build(), key);
+        }
+
+        for (String key : keys) {
+            assertTrue(map.containsKey(new LookupKey.Builder(key).build()));
+            assertEquals(key, map.get(new LookupKey.Builder(key).build()));
+        }
+        assertFalse(map.containsKey(new LookupKey.Builder(RANDOM_COUNTRY_KEY).build()));
+    }
+
+    public void testGetValueForUpperLevelField() {
+        LookupKey key = new LookupKey.Builder("data/US/CA").build();
+        assertEquals("US", key.getValueForUpperLevelField(AddressField.COUNTRY));
+    }
+
+    public void testGetValueForUpperLevelFieldInvalid() {
+        LookupKey key = new LookupKey.Builder("data").build();
+        assertEquals("", key.getValueForUpperLevelField(AddressField.COUNTRY));
+        LookupKey key2 = new LookupKey.Builder("data/").build();
+        assertEquals("", key2.getValueForUpperLevelField(AddressField.COUNTRY));
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataConstantsTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataConstantsTest.java
new file mode 100644 (file)
index 0000000..f623146
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the region data constants to check they are populated and that the data can be read in
+ * and converted into the appropriate format.
+ */
+public class RegionDataConstantsTest extends TestCase {
+    public void testDataLoad() throws Exception {
+        assertFalse("The list of countries should not be empty",
+                    RegionDataConstants.getCountryFormatMap().isEmpty());
+    }
+
+    public void testZZRegion() throws Exception {
+        assertNotNull("Data for 'ZZ' is missing (needed for default region info.)",
+                      RegionDataConstants.getCountryFormatMap().get("ZZ"));
+    }
+
+    public void testStringsAreConvertedIntoJson() throws Exception {
+        String[] input = { "key", "value", "key2", "value2" };
+        // Input order is not maintained, since we build this using JSON objects. This is
+        // unimportant, so long as the key-value mappings are maintained.
+        String expectedOutput = "{\"key2\":\"value2\",\"key\":\"value\"}";
+        String actualOutput = RegionDataConstants.convertArrayToJsonString(input);
+        assertEquals(expectedOutput, actualOutput);
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/RegionDataTest.java
new file mode 100644 (file)
index 0000000..547f934
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Small unit tests for the RegionData class.
+ */
+public class RegionDataTest extends TestCase {
+    public void testBuilder() throws Exception {
+        RegionData data = new RegionData.Builder().setKey("CA").setName("California").build();
+        assertEquals("CA", data.getKey());
+        assertEquals("California", data.getName());
+        assertTrue(data.isValidName("CA"));
+        // Should match either the key or the name.
+        assertTrue(data.isValidName("California"));
+        // Matching should be case-insensitive.
+        assertTrue(data.isValidName("ca"));
+        assertFalse(data.isValidName("Cat"));
+    }
+
+    public void testBuilderNoName() throws Exception {
+        RegionData data = new RegionData.Builder().setKey("CA").build();
+        assertEquals("CA", data.getKey());
+        assertEquals(null, data.getName());
+    }
+
+    public void testBuilderWhitespaceName() throws Exception {
+        RegionData data = new RegionData.Builder().setKey("CA").setName("  ").build();
+        assertEquals("CA", data.getKey());
+        assertEquals(null, data.getName());
+        assertEquals("CA", data.getDisplayName());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/StandardAddressVerifierTest.java
new file mode 100644 (file)
index 0000000..f2c86f6
--- /dev/null
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+/**
+ * Spot check the standard data set for various cases of interest. This is not an exhaustive test.
+ */
+public class StandardAddressVerifierTest extends TestCase {
+
+    private AddressProblems problems = new AddressProblems();
+    private StandardAddressVerifier verifier;
+
+    @Override
+    protected void setUp() {
+        problems.clear();
+        verifier = new StandardAddressVerifier(new FieldVerifier(new ClientData(new CacheData())),
+                                               StandardChecks.PROBLEM_MAP);
+    }
+
+    public void testUnitedStatesOk() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setAddress("1234 Somewhere")
+                                                    .setPostalCode("94025")
+                                                    .build();
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());  // no mismatch
+    }
+
+    public void testUnitedStatesZipMismatch() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setPostalCode("12345")
+                                                    .build();
+        verifier.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISMATCHING_VALUE,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    public void testUnitedStatesNotOk() {
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality(null)
+                                                    .setDependentLocality("Foo Bar")
+                                                    .setPostalCode("12345")
+                                                    .build();
+        verifier.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISMATCHING_VALUE,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.LOCALITY));
+    }
+
+    public void testChinaOk() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Beijing Shi")
+                                                    .setLocality("Xicheng Qu")
+                                                    .setAddress("Yitiao Lu")
+                                                    .setPostalCode("123456")
+                                                    .build();
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testGermanAddress() {
+        AddressData addr = new AddressData.Builder().setCountry("DE")
+                                                    .setLocality("Berlin")
+                                                    .setAddress("Huttenstr. 50")
+                                                    .setPostalCode("10553")
+                                                    .setOrganization("BMW AG Niederkassung Berlin")
+                                                    .setRecipient("Herr Diefendorf")
+                                                    .build();
+
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+
+        // Clones address but leave city empty.
+        addr = new AddressData.Builder().set(addr).setLocality(null).build();
+
+        verifier.verify(addr, problems);
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.LOCALITY));
+    }
+
+    public void testIrishAddress() {
+        AddressData addr = new AddressData.Builder().setCountry("IE")
+                                                    .setLocality("Dublin")
+                                                    .setAdminArea("Co. Dublin")
+                                                    .setAddress("7424 118 Avenue NW")
+                                                    .setRecipient("Conan O'Brien")
+                                                    .build();
+
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+
+        // Clones address but leave county empty. This address should be valid
+        // since county is not required.
+        addr = new AddressData.Builder().set(addr).setAdminArea(null).build();
+
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testChinaPostalCodeBadFormat() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Beijing Shi")
+                                                    .setLocality("Xicheng Qu")
+                                                    .setPostalCode("12345")
+                                                    .build();
+        verifier.verify(addr, problems);
+
+        // ensure problem is unrecognized format and problem is in POSTAL_CODE
+        assertEquals(AddressProblemType.UNRECOGNIZED_FORMAT,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    /**
+     * If there is a postal code pattern for a certain country, and the input postal code is empty,
+     * it should not be reported as bad postal code format. Whether empty postal code is ok should
+     * be determined by checks for required fields.
+     */
+    public void testEmptyPostalCodeReportedAsGoodFormat() {
+        // Chilean address has a postal code format pattern, but does not require
+        // postal code. The following address is valid.
+        AddressData addr = new AddressData.Builder().setCountry("CL")
+                                                    .setAddressLine1("GUSTAVO LE PAIGE ST #159")
+                                                    .setAdminArea("Atacama")
+                                                    .setLocality("San Pedro")
+                                                    .setPostalCode("")
+                                                    .build();
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+
+        problems.clear();
+
+        // Now checks for US addresses, which requires postal code. The following
+        // address's postal code is wrong because it misses required field, not
+        // because it mismatches expected postal code pattern.
+        addr = new AddressData.Builder().setCountry("US").setPostalCode("").build();
+        problems.clear();
+        verifier.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.POSTAL_CODE));
+    }
+
+    public void testChinaTaiwanOk() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Taiwan")
+                                                    .setLocality("Taichung City")
+                                                    .setDependentLocality("Situn District")
+                                                    .setAddress("12345 Yitiao Lu")
+                                                    .setPostalCode("407")
+                                                    .build();
+        verifier.verify(addr, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testChinaTaiwanUnknownDistrict() {
+        AddressData addr = new AddressData.Builder().setCountry("CN")
+                                                    .setAdminArea("Taiwan")
+                                                    .setLocality("Taichung City")
+                                                    .setDependentLocality("Foo Bar")
+                                                    .setPostalCode("400")
+                                                    .build();
+        verifier.verify(addr, problems);
+
+        assertEquals(AddressProblemType.UNKNOWN_VALUE,
+                     problems.getProblem(AddressField.DEPENDENT_LOCALITY));
+    }
+
+    public void testStreetVerification() {
+        // missing street address
+        AddressData addr = new AddressData.Builder().setCountry("US")
+                                                    .setAdminArea("CA")
+                                                    .setLocality("Mountain View")
+                                                    .setPostalCode("94025")
+                                                    .build();
+
+        assertNull(addr.getAddressLine1());
+        assertNull(addr.getAddressLine2());
+
+        verifier.verify(addr, problems);
+
+        assertEquals(AddressProblemType.MISSING_REQUIRED_FIELD,
+                     problems.getProblem(AddressField.STREET_ADDRESS));
+    }
+
+    // Tests The Bahamas' address
+    public void failingtestBahamas() {
+        final AddressData address =
+                new AddressData.Builder().setAddress("Abaco Beach Resort & Boat Habour")
+                                         .setLocality("Treasure Cay")
+                                         .setAdminArea("Abaco")
+                                         .setCountry("BS")
+                                         .build();
+        verifier.verify(address, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testJapan() {
+        // added AdminArea since address verification can't infer it from Kyoto City
+        // commented out dependent locality since address verification doesn't use it
+        // TODO: support inference of higher levels from lower ones
+        // TODO: add dependent locality support for japan addresses
+        final AddressData address =
+                new AddressData.Builder()
+                        .setRecipient("\u5BAE\u672C \u8302")  // SHIGERU_MIYAMOTO
+                        .setAddress("\u4E0A\u9CE5\u7FBD\u927E\u7ACB\u753A11\u756A\u5730")
+                        .setAdminArea("\u4eac\u90fd\u5e9c")  // Kyoto prefecture, added
+                        .setLocality("\u4EAC\u90FD\u5E02")  // Kyoto city
+                        // .setDependentLocality("\u5357\u533A")
+                        .setCountry("JP")
+                        .setPostalCode("601-8501")
+                        .build();
+        verifier.verify(address, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+
+    public void testJapanLatin() {
+        // added AdminArea since address verification can't infer it from Kyoto City
+        // commented out dependent locality since address verification doesn't use it
+        final AddressData address =
+                new AddressData.Builder()
+                        .setRecipient("Shigeru Miyamoto")  // SHIGERU_MIYAMOTO_ENGLISH
+                        .setAddress("11-1 Kamitoba-hokotate-cho")
+                        .setAdminArea("KYOTO")  // Kyoto prefecture, added
+                        .setLocality("Kyoto")  // Kyoto city
+                        // .setDependentLocality("Minami-ku")
+                        .setLanguageCode("ja_Latn")
+                        .setCountry("JP")
+                        .setPostalCode("601-8501")
+                        .build();
+        verifier.verify(address, problems);
+        assertTrue(problems.toString(), problems.isEmpty());
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/UtilTest.java b/src/third_party/libaddressinput/src/java/test/com/android/i18n/addressinput/UtilTest.java
new file mode 100644 (file)
index 0000000..d552062
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.i18n.addressinput;
+
+import junit.framework.TestCase;
+
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Tests for util functions.
+ */
+public class UtilTest extends TestCase {
+
+    public void testIsExplicitLatinScript() throws Exception {
+        // Should recognise Latin script in a variety of forms.
+        assertTrue(Util.isExplicitLatinScript("zh-Latn"));
+        assertTrue(Util.isExplicitLatinScript("ja_LATN"));
+        assertTrue(Util.isExplicitLatinScript("und_LATN"));
+        assertTrue(Util.isExplicitLatinScript("ja_LATN-JP"));
+        assertTrue(Util.isExplicitLatinScript("ko-latn_JP"));
+    }
+
+    public void testIsExplicitLatinScriptNonLatin() throws Exception {
+        assertFalse(Util.isExplicitLatinScript("ko"));
+        assertFalse(Util.isExplicitLatinScript("KO"));
+        assertFalse(Util.isExplicitLatinScript("ja"));
+        assertFalse(Util.isExplicitLatinScript("ja-JP"));
+        assertFalse(Util.isExplicitLatinScript("zh-Hans"));
+        assertFalse(Util.isExplicitLatinScript("zh-Hans-CN"));
+        assertFalse(Util.isExplicitLatinScript("zh-Hant"));
+        assertFalse(Util.isExplicitLatinScript("zh-TW"));
+        assertFalse(Util.isExplicitLatinScript("zh_TW"));
+        assertFalse(Util.isExplicitLatinScript("ko"));
+        assertFalse(Util.isExplicitLatinScript("ko_KR"));
+        assertFalse(Util.isExplicitLatinScript("en"));
+        assertFalse(Util.isExplicitLatinScript("EN"));
+        assertFalse(Util.isExplicitLatinScript("ru"));
+    }
+
+    public void testGetLanguageSubtag() throws Exception {
+        assertEquals("zh", Util.getLanguageSubtag("zh-Latn"));
+        assertEquals("ja", Util.getLanguageSubtag("ja_LATN"));
+        assertEquals("und", Util.getLanguageSubtag("und_LATN"));
+        assertEquals("ja", Util.getLanguageSubtag("ja_LATN-JP"));
+        assertEquals("ko", Util.getLanguageSubtag("ko"));
+        assertEquals("ko", Util.getLanguageSubtag("KO"));
+        assertEquals("ko", Util.getLanguageSubtag("ko-KR"));
+        assertEquals("ko", Util.getLanguageSubtag("ko_kr"));
+        assertEquals("und", Util.getLanguageSubtag("Not a language"));
+    }
+
+    public void testTrimToNull() throws Exception {
+        assertEquals("Trimmed String", Util.trimToNull("  Trimmed String   "));
+        assertEquals("Trimmed String", Util.trimToNull("  Trimmed String"));
+        assertEquals("Trimmed String", Util.trimToNull("Trimmed String"));
+        assertEquals(null, Util.trimToNull("  "));
+        assertEquals(null, Util.trimToNull(null));
+    }
+
+    public void testJoinAndSkipNulls() throws Exception {
+        String first = "String 1";
+        String second = "String 2";
+        String expectedString = "String 1-String 2";
+        String nullString = null;
+        assertEquals(expectedString, Util.joinAndSkipNulls("-", first, second));
+        assertEquals(expectedString, Util.joinAndSkipNulls("-", first, second, nullString));
+        assertEquals(expectedString, Util.joinAndSkipNulls("-", first, nullString, second));
+        assertEquals(expectedString, Util.joinAndSkipNulls("-", first, nullString, " ", second));
+        assertEquals(first, Util.joinAndSkipNulls("-", first, nullString));
+        assertEquals(first, Util.joinAndSkipNulls("-", nullString, first));
+
+        assertEquals(null, Util.joinAndSkipNulls("-", nullString));
+        assertEquals(null, Util.joinAndSkipNulls("-", nullString, nullString));
+        assertEquals(null, Util.joinAndSkipNulls("-", nullString, "", nullString));
+    }
+
+    public void testGetWidgetCompatibleLanguageCodeCjkCountry() throws Exception {
+        Locale canadianFrench = new Locale("fr", "CA");
+        // Latin language, CJK country. Need explicit Latin tag, and country should be retained.
+        assertEquals("fr_latn_CA", Util.getWidgetCompatibleLanguageCode(canadianFrench, "CN"));
+        Locale canadianFrenchUpper = new Locale("FR", "CA");
+        // Test that the locale returns the same language code, regardless of the case of the
+        // initial input.
+        assertEquals("fr_latn_CA", Util.getWidgetCompatibleLanguageCode(canadianFrenchUpper, "CN"));
+        // No country in the Locale language.
+        assertEquals("fr_latn", Util.getWidgetCompatibleLanguageCode(Locale.FRENCH, "CN"));
+        // CJK language - but wrong country.
+        assertEquals("ko_latn",
+                     Util.getWidgetCompatibleLanguageCode(Locale.KOREAN, "CN"));
+        Locale chineseChina = new Locale("zh", "CN");
+        assertEquals("zh_CN", Util.getWidgetCompatibleLanguageCode(chineseChina, "CN"));
+    }
+
+    public void testGetWidgetCompatibleLanguageCodeThailand() throws Exception {
+      Locale thai = new Locale("th", "TH");
+      assertEquals("th_TH", Util.getWidgetCompatibleLanguageCode(thai, "TH"));
+      // However, we assume Thai users prefer Latin names for China.
+      assertEquals("th_latn_TH", Util.getWidgetCompatibleLanguageCode(thai, "CN"));
+    }
+
+    public void testGetWidgetCompatibleLanguageCodeNonCjkCountry() throws Exception {
+        // Nothing should be changed for non-CJK countries, since their form layout is the same
+        // regardless of language.
+        Locale canadianFrench = new Locale("fr", "CA");
+        assertEquals("fr_CA", Util.getWidgetCompatibleLanguageCode(canadianFrench, "US"));
+        // No country in the Locale language.
+        assertEquals(Locale.FRENCH.toString(),
+                     Util.getWidgetCompatibleLanguageCode(Locale.FRENCH, "US"));
+        // CJK language - should be unaltered too.
+        assertEquals(Locale.KOREAN.toString(),
+                     Util.getWidgetCompatibleLanguageCode(Locale.KOREAN, "US"));
+    }
+
+    public void testBuildNameToKeyMap() throws Exception {
+        String names[] = {"", "", "", "", "NEW PROVIDENCE" };
+        // We have one more key than name here.
+        String keys[] = {"AB", "AC", "AD", "AE", "NP", "XX"};
+        Map<String, String> result = Util.buildNameToKeyMap(keys, names, null);
+        // We should have the six keys, and the one name, in the end result. No empty-string names
+        // should be present.
+        assertEquals(keys.length + 1, result.size());
+        // The empty string should not be present.
+        assertFalse(result.containsKey(""));
+
+        // Try with Latin names instead.
+        Map<String, String> resultWithLatin = Util.buildNameToKeyMap(keys, null, names);
+        // We should have the six keys and the one Latin-script name in the end result.
+        assertEquals(keys.length + 1, resultWithLatin.size());
+        String lnames[] = { "Other name" };
+        resultWithLatin = Util.buildNameToKeyMap(keys, names, lnames);
+        // We should have the keys, plus the names in lnames and names.
+        assertEquals(keys.length + 2, resultWithLatin.size());
+        assertTrue(resultWithLatin.containsKey("other name"));
+        assertTrue(resultWithLatin.containsKey("new providence"));
+        assertTrue(resultWithLatin.containsKey("xx"));
+        // The empty string should not be present.
+        assertFalse(resultWithLatin.containsKey(""));
+    }
+}
diff --git a/src/third_party/libaddressinput/src/java/testlibs/commons-logging-1.1.1.jar b/src/third_party/libaddressinput/src/java/testlibs/commons-logging-1.1.1.jar
new file mode 100644 (file)
index 0000000..1deef14
Binary files /dev/null and b/src/third_party/libaddressinput/src/java/testlibs/commons-logging-1.1.1.jar differ
diff --git a/src/third_party/libaddressinput/src/java/testlibs/httpclient-4.1.1.jar b/src/third_party/libaddressinput/src/java/testlibs/httpclient-4.1.1.jar
new file mode 100644 (file)
index 0000000..74121b7
Binary files /dev/null and b/src/third_party/libaddressinput/src/java/testlibs/httpclient-4.1.1.jar differ
diff --git a/src/third_party/libaddressinput/src/java/testlibs/httpcore-4.1.jar b/src/third_party/libaddressinput/src/java/testlibs/httpcore-4.1.jar
new file mode 100644 (file)
index 0000000..a357c07
Binary files /dev/null and b/src/third_party/libaddressinput/src/java/testlibs/httpcore-4.1.jar differ
diff --git a/src/third_party/libaddressinput/src/java/testlibs/json-20090211.jar b/src/third_party/libaddressinput/src/java/testlibs/json-20090211.jar
new file mode 100644 (file)
index 0000000..ef29094
Binary files /dev/null and b/src/third_party/libaddressinput/src/java/testlibs/json-20090211.jar differ
index 5713cb2..dd36b61 100644 (file)
@@ -180,7 +180,7 @@ if (MSVC)
   # headers.
 else()
   if (LIBCXX_HAS_NOSTDINCXX_FLAG)
-    set(LIBCXX_CXX_REQUIRED_FLAGS -nostdinc++)
+    list(APPEND LIBCXX_CXX_REQUIRED_FLAGS -nostdinc++)
   endif()
   if (LIBCXX_ENABLE_CXX0X AND LIBCXX_HAS_STDCXX0X_FLAG)
     list(APPEND LIBCXX_CXX_REQUIRED_FLAGS -std=c++0x)
@@ -196,7 +196,7 @@ endmacro()
 # Get warning flags
 if (NOT MSVC)
   append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WALL_FLAG -Wall)
-  set(LIBCXX_CXX_REQUIRED_FLAGS, -Werror=return-type)
+  list(APPEND LIBCXX_CXX_REQUIRED_FLAGS -Werror=return-type)
 endif()
 
 append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_W_FLAG -W)
@@ -259,11 +259,14 @@ if (MSVC)
   add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 endif()
 
-add_definitions(
- ${LIBCXX_CXX_REQUIRED_FLAGS}
- ${LIBCXX_CXX_WARNING_FLAGS}
- ${LIBCXX_CXX_FEATURE_FLAGS}
- )
+string(REPLACE ";" " " LIBCXX_CXX_REQUIRED_FLAGS "${LIBCXX_CXX_REQUIRED_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXX_CXX_REQUIRED_FLAGS}")
+
+string(REPLACE ";" " " LIBCXX_CXX_WARNING_FLAGS "${LIBCXX_CXX_WARNING_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXX_CXX_WARNING_FLAGS}")
+
+string(REPLACE ";" " " LIBCXX_CXX_FEATURE_FLAGS "${LIBCXX_CXX_FEATURE_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXX_CXX_FEATURE_FLAGS}")
 
 #===============================================================================
 # Setup Source Code
index 5ed8ec2..41ca5d1 100644 (file)
@@ -14,7 +14,7 @@ Full text of the relevant licenses is included below.
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
 
 All rights reserved.
 
@@ -55,7 +55,7 @@ SOFTWARE.
 
 ==============================================================================
 
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index 9267023..ab7b5b6 100644 (file)
@@ -33,7 +33,9 @@ clean::
 # The installheaders target is used by clang's runtime/libcxx makefile.
 installheaders::
        mkdir -p $(HEADER_DIR)/c++/v1/ext
-       (cd $(SRCDIRS)/include && tar cf - --exclude=support .) | \
+       (cd $(SRCDIRS)/include && \
+         tar cf - --exclude=".*" --exclude=support \
+                  --exclude=CMakeLists.txt *) | \
          (cd $(HEADER_DIR)/c++/v1 && tar xf -)
        chmod 755 $(HEADER_DIR)/c++/v1
        chmod 644 $(HEADER_DIR)/c++/v1/*
index f0219c0..e8adafd 100644 (file)
@@ -30,11 +30,3 @@ check_library_exists(m ccos "" LIBCXX_HAS_M_LIB)
 check_library_exists(rt clock_gettime "" LIBCXX_HAS_RT_LIB)
 check_library_exists(gcc_s __gcc_personality_v0 "" LIBCXX_HAS_GCC_S_LIB)
 
-# Check C++0x features
-if (LIBCXX_ENABLE_CXX0X)
-  if (LIBCXX_HAS_STDCXX0X_FLAG)
-    set(CMAKE_REQUIRED_DEFINITIONS -std=c++0x)
-  endif()
-else()
-  set(LIBCXX_HAS_STDCXX0X_FLAG FALSE)
-endif()
index ac97d5b..33254e9 100644 (file)
 
 #if defined(__clang__)
 
+#if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) &&        \
+    !defined(__arm__)
+#define _LIBCPP_ALTERNATE_STRING_LAYOUT
+#endif
+
 #if __has_feature(cxx_alignas)
 #  define _ALIGNAS_TYPE(x) alignas(x)
 #  define _ALIGNAS(x) alignas(x)
 #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
 #endif
 
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
 #ifdef __linux__
 #define _LIBCPP_HAS_NO_UNICODE_CHARS
 #else
@@ -326,9 +331,11 @@ typedef __char32_t char32_t;
 #if (__has_feature(cxx_noexcept))
 #  define _NOEXCEPT noexcept
 #  define _NOEXCEPT_(x) noexcept(x)
+#  define _NOEXCEPT_OR_FALSE(x) noexcept(x)
 #else
 #  define _NOEXCEPT throw()
 #  define _NOEXCEPT_(x)
+#  define _NOEXCEPT_OR_FALSE(x) false
 #endif
 
 #if __has_feature(underlying_type)
@@ -361,6 +368,7 @@ namespace std {
 
 #define _NOEXCEPT throw()
 #define _NOEXCEPT_(x)
+#define _NOEXCEPT_OR_FALSE(x) false
 
 #ifndef __GXX_EXPERIMENTAL_CXX0X__
 
@@ -431,8 +439,9 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
 #define _ALIGNAS(x) __declspec(align(x))
 #define _LIBCPP_HAS_NO_VARIADICS
 
-#define _NOEXCEPT throw()
+#define _NOEXCEPT throw ()
 #define _NOEXCEPT_(x)
+#define _NOEXCEPT_OR_FALSE(x) false
 
 #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {
 #define _LIBCPP_END_NAMESPACE_STD  }
@@ -451,6 +460,7 @@ namespace std {
 
 #define _NOEXCEPT throw()
 #define _NOEXCEPT_(x)
+#define _NOEXCEPT_OR_FALSE(x) false
 
 #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
 #define _LIBCPP_HAS_NO_ADVANCED_SFINAE
@@ -473,13 +483,17 @@ namespace std {
   }
 }
 
-#endif // __clang__ || __GNUC___ || _MSC_VER || __IBMCPP__
+#endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__
 
 #ifdef _LIBCPP_HAS_NO_UNICODE_CHARS
 typedef unsigned short char16_t;
 typedef unsigned int   char32_t;
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
 
+#ifndef __SIZEOF_INT128__
+#define _LIBCPP_HAS_NO_INT128
+#endif
+
 #ifdef _LIBCPP_HAS_NO_STATIC_ASSERT
 
 template <bool> struct __static_assert_test;
@@ -555,9 +569,14 @@ template <unsigned> struct __static_assert_check {};
 #define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__;
 #endif
 
+#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__)
+#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)
+#endif
+
 #if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__)
 #define _LIBCPP_LOCALE__L_EXTENSIONS 1
 #endif
+
 #ifdef __FreeBSD__
 #define _DECLARE_C99_LDBL_MATH 1
 #endif
index f9a3d97..2582601 100644 (file)
@@ -33,28 +33,28 @@ public:
     // invoke
 
     typename __invoke_return<type>::type
-       operator() ()
+       operator() () const
        {
            return __invoke(__f_);
        }
 
     template <class _A0>
        typename __invoke_return0<type, _A0>::type
-          operator() (_A0& __a0)
+          operator() (_A0& __a0) const
           {
               return __invoke(__f_, __a0);
           }
 
     template <class _A0, class _A1>
        typename __invoke_return1<type, _A0, _A1>::type
-          operator() (_A0& __a0, _A1& __a1)
+          operator() (_A0& __a0, _A1& __a1) const
           {
               return __invoke(__f_, __a0, __a1);
           }
 
     template <class _A0, class _A1, class _A2>
        typename __invoke_return2<type, _A0, _A1, _A2>::type
-          operator() (_A0& __a0, _A1& __a1, _A2& __a2)
+          operator() (_A0& __a0, _A1& __a1, _A2& __a2) const
           {
               return __invoke(__f_, __a0, __a1, __a2);
           }
index 1c337d8..6766793 100644 (file)
@@ -451,10 +451,10 @@ public:
           }
 };
 
-template <class _Tp> struct ____is_reference_wrapper : public false_type {};
-template <class _Tp> struct ____is_reference_wrapper<reference_wrapper<_Tp> > : public true_type {};
+template <class _Tp> struct __is_reference_wrapper_impl : public false_type {};
+template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};
 template <class _Tp> struct __is_reference_wrapper
-    : public ____is_reference_wrapper<typename remove_cv<_Tp>::type> {};
+    : public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {};
 
 template <class _Tp>
 inline _LIBCPP_INLINE_VISIBILITY
index 296dd8d..f297ee0 100644 (file)
@@ -1047,10 +1047,10 @@ public:
           }
 };
 
-template <class _Tp> struct ____is_reference_wrapper : public false_type {};
-template <class _Tp> struct ____is_reference_wrapper<reference_wrapper<_Tp> > : public true_type {};
+template <class _Tp> struct __is_reference_wrapper_impl : public false_type {};
+template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};
 template <class _Tp> struct __is_reference_wrapper
-    : public ____is_reference_wrapper<typename remove_cv<_Tp>::type> {};
+    : public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {};
 
 template <class _Tp>
 inline _LIBCPP_INLINE_VISIBILITY
index 6d75162..fb5b196 100644 (file)
@@ -21,7 +21,7 @@
 #include <locale.h>
 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
 # include <support/win32/locale_win32.h>
-#elif _AIX
+#elif defined(_AIX)
 # include <support/ibm/xlocale.h>
 #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
 # include <xlocale.h>
index d4023a6..293fead 100644 (file)
@@ -254,19 +254,13 @@ void
 swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) _NOEXCEPT
     {__x.swap(__y);}
 
-struct _LIBCPP_TYPE_VIS cv_status
+//enum class cv_status
+_LIBCPP_DECLARE_STRONG_ENUM(cv_status)
 {
-    enum __lx {
-        no_timeout,
-        timeout
-    };
-
-    __lx __v_;
-
-    _LIBCPP_INLINE_VISIBILITY cv_status(__lx __v) : __v_(__v) {}
-    _LIBCPP_INLINE_VISIBILITY operator int() const {return __v_;}
-
+    no_timeout,
+    timeout
 };
+_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_status)
 
 class _LIBCPP_TYPE_VIS condition_variable
 {
@@ -288,7 +282,7 @@ public:
     void notify_one() _NOEXCEPT;
     void notify_all() _NOEXCEPT;
 
-    void wait(unique_lock<mutex>& __lk);
+    void wait(unique_lock<mutex>& __lk) _NOEXCEPT;
     template <class _Predicate>
         void wait(unique_lock<mutex>& __lk, _Predicate __pred);
 
@@ -319,7 +313,7 @@ public:
 
 private:
     void __do_timed_wait(unique_lock<mutex>& __lk,
-                 chrono::time_point<chrono::system_clock, chrono::nanoseconds>);
+       chrono::time_point<chrono::system_clock, chrono::nanoseconds>) _NOEXCEPT;
 };
 
 template <class _To, class _Rep, class _Period>
index acf8759..8e5447a 100644 (file)
@@ -1980,9 +1980,9 @@ __tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p)
         __begin_node() = __r.__ptr_;
     --size();
     __node_allocator& __na = __node_alloc();
-    __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
     __tree_remove(__end_node()->__left_,
                   static_cast<__node_base_pointer>(__np));
+    __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
     __node_traits::deallocate(__na, __np, 1);
     return __r;
 }
index 367489f..303ec7d 100644 (file)
@@ -281,11 +281,12 @@ template <class ForwardIterator, class OutputIterator>
 
 template <class RandomAccessIterator>
     void
-    random_shuffle(RandomAccessIterator first, RandomAccessIterator last);
+    random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14
 
 template <class RandomAccessIterator, class RandomNumberGenerator>
     void
-    random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& rand);
+    random_shuffle(RandomAccessIterator first, RandomAccessIterator last,
+                   RandomNumberGenerator& rand);  // deprecated in C++14
 
 template<class RandomAccessIterator, class UniformRandomNumberGenerator>
     void shuffle(RandomAccessIterator first, RandomAccessIterator last,
@@ -528,19 +529,19 @@ template <class ForwardIterator, class Compare>
 
 template <class T>
     const T&
-    min(const T& a, const T& b);
+    min(const T& a, const T& b);  // constexpr in C++14
 
 template <class T, class Compare>
     const T&
-    min(const T& a, const T& b, Compare comp);
+    min(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     T
-    min(initializer_list<T> t);
+    min(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     T
-    min(initializer_list<T> t, Compare comp);
+    min(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template <class ForwardIterator>
     ForwardIterator
@@ -552,19 +553,19 @@ template <class ForwardIterator, class Compare>
 
 template <class T>
     const T&
-    max(const T& a, const T& b);
+    max(const T& a, const T& b); // constexpr in C++14
 
 template <class T, class Compare>
     const T&
-    max(const T& a, const T& b, Compare comp);
+    max(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     T
-    max(initializer_list<T> t);
+    max(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     T
-    max(initializer_list<T> t, Compare comp);
+    max(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template<class ForwardIterator>
     pair<ForwardIterator, ForwardIterator>
@@ -576,19 +577,19 @@ template<class ForwardIterator, class Compare>
 
 template<class T>
     pair<const T&, const T&>
-    minmax(const T& a, const T& b);
+    minmax(const T& a, const T& b);  // constexpr in C++14
 
 template<class T, class Compare>
     pair<const T&, const T&>
-    minmax(const T& a, const T& b, Compare comp);
+    minmax(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     pair<T, T>
-    minmax(initializer_list<T> t);
+    minmax(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     pair<T, T>
-    minmax(initializer_list<T> t, Compare comp);
+    minmax(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template <class InputIterator1, class InputIterator2>
     bool
@@ -643,6 +644,9 @@ template <class BidirectionalIterator, class Compare>
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
+// I'd like to replace these with _VSTD::equal_to<void>, but can't because:
+//   * That only works with C++14 and later, and
+//   * We haven't included <functional> here.
 template <class _T1, class _T2 = _T1>
 struct __equal_to
 {
@@ -655,46 +659,59 @@ struct __equal_to
 template <class _T1>
 struct __equal_to<_T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1>
 struct __equal_to<const _T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1>
 struct __equal_to<_T1, const _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1, class _T2 = _T1>
 struct __less
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<_T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<const _T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<_T1, const _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _Predicate>
@@ -2505,9 +2522,9 @@ rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterato
 // min_element
 
 template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _ForwardIterator
-min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 {
     if (__first != __last)
     {
@@ -2519,19 +2536,27 @@ min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
     return __first;
 }
 
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+    return __min_element(__first, __last, __comp);
+}
+
 template <class _ForwardIterator>
 inline _LIBCPP_INLINE_VISIBILITY
 _ForwardIterator
 min_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::min_element(__first, __last,
+    return __min_element(__first, __last,
               __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // min
 
 template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2539,7 +2564,7 @@ min(const _Tp& __a, const _Tp& __b, _Compare __comp)
 }
 
 template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 min(const _Tp& __a, const _Tp& __b)
 {
@@ -2549,19 +2574,19 @@ min(const _Tp& __a, const _Tp& __b)
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 min(initializer_list<_Tp> __t, _Compare __comp)
 {
-    return *_VSTD::min_element(__t.begin(), __t.end(), __comp);
+    return *__min_element(__t.begin(), __t.end(), __comp);
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 min(initializer_list<_Tp> __t)
 {
-    return *_VSTD::min_element(__t.begin(), __t.end());
+    return *__min_element(__t.begin(), __t.end(), __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2569,9 +2594,9 @@ min(initializer_list<_Tp> __t)
 // max_element
 
 template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _ForwardIterator
-max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 {
     if (__first != __last)
     {
@@ -2583,19 +2608,28 @@ max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
     return __first;
 }
 
+
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+    return __max_element(__first, __last, __comp);
+}
+
 template <class _ForwardIterator>
 inline _LIBCPP_INLINE_VISIBILITY
 _ForwardIterator
 max_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::max_element(__first, __last,
+    return __max_element(__first, __last,
               __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // max
 
 template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2603,7 +2637,7 @@ max(const _Tp& __a, const _Tp& __b, _Compare __comp)
 }
 
 template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 max(const _Tp& __a, const _Tp& __b)
 {
@@ -2613,19 +2647,19 @@ max(const _Tp& __a, const _Tp& __b)
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 max(initializer_list<_Tp> __t, _Compare __comp)
 {
-    return *_VSTD::max_element(__t.begin(), __t.end(), __comp);
+    return *__max_element(__t.begin(), __t.end(), __comp);
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 max(initializer_list<_Tp> __t)
 {
-    return *_VSTD::max_element(__t.begin(), __t.end());
+    return *__max_element(__t.begin(), __t.end(), __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2684,13 +2718,14 @@ inline _LIBCPP_INLINE_VISIBILITY
 std::pair<_ForwardIterator, _ForwardIterator>
 minmax_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::minmax_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>());
+    return _VSTD::minmax_element(__first, __last,
+              __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // minmax
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<const _Tp&, const _Tp&>
 minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2699,7 +2734,7 @@ minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<const _Tp&, const _Tp&>
 minmax(const _Tp& __a, const _Tp& __b)
 {
@@ -2708,24 +2743,49 @@ minmax(const _Tp& __a, const _Tp& __b)
 
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
-template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+template<class _Tp, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t)
+minmax(initializer_list<_Tp> __t, _Compare __comp)
 {
-    pair<const _Tp*, const _Tp*> __p =
-                                   _VSTD::minmax_element(__t.begin(), __t.end());
-    return pair<_Tp, _Tp>(*__p.first, *__p.second);
+    typedef typename initializer_list<_Tp>::const_iterator _Iter;
+    _Iter __first = __t.begin();
+    _Iter __last  = __t.end();
+    std::pair<_Tp, _Tp> __result ( *__first, *__first );
+
+    ++__first;
+    if (__t.size() % 2 == 0)
+    {
+        if (__comp(*__first,  __result.first))
+            __result.first  = *__first;
+        else
+            __result.second = *__first;
+        ++__first;
+    }
+    
+    while (__first != __last)
+    {
+        _Tp __prev = *__first++;
+        if (__comp(__prev, *__first)) {
+            if (__comp(__prev, __result.first))    __result.first  = __prev;
+            if (__comp(__result.second, *__first)) __result.second = *__first;
+            }
+        else {
+            if (__comp(*__first, __result.first)) __result.first  = *__first;
+            if (__comp(__result.second, __prev))  __result.second = __prev;
+            }
+                
+        __first++;
+    }
+    return __result;
 }
 
-template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+template<class _Tp>
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t, _Compare __comp)
+minmax(initializer_list<_Tp> __t)
 {
-    pair<const _Tp*, const _Tp*> __p =
-                           _VSTD::minmax_element(__t.begin(), __t.end(), __comp);
-    return pair<_Tp, _Tp>(*__p.first, *__p.second);
+    return _VSTD::minmax(__t, __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
index 75087ae..964c672 100644 (file)
@@ -966,7 +966,6 @@ pow(_A1 __x, _A2 __y) _NOEXCEPT
     return pow((__result_type)__x, (__result_type)__y);
 }
 
-
 // sin
 
 using ::sin;
@@ -1209,11 +1208,7 @@ fdim(_A1 __x, _A2 __y) _NOEXCEPT
 
 // fma
 
-inline _LIBCPP_INLINE_VISIBILITY float fmaf(float __x, float __y, float __z) _NOEXCEPT {return (float)((double)__x*__y + __z);}
-#ifndef FP_FAST_FMAF
-#define FP_FAST_FMAF
-#endif
-
+using ::fmaf;
 using ::fma;
 
 inline _LIBCPP_INLINE_VISIBILITY float       fma(float __x, float __y, float __z) _NOEXCEPT                   {return fmaf(__x, __y, __z);}
index 7ef16ff..0030ec2 100644 (file)
@@ -52,7 +52,12 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 using ::ptrdiff_t;
 using ::size_t;
 
+#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T)
+// Re-use the compiler's <stddef.h> max_align_t where possible.
+using ::max_align_t;
+#else
 typedef long double max_align_t;
+#endif
 
 #ifdef _LIBCPP_HAS_NO_NULLPTR
 
index f099000..9b256b7 100644 (file)
@@ -1208,7 +1208,7 @@ public:
     deque()
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
         {}
-    _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
+    _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {}
     explicit deque(size_type __n);
 #if _LIBCPP_STD_VER > 11
     explicit deque(size_type __n, const _Allocator& __a);
index c0523cc..5675d54 100644 (file)
@@ -19,8 +19,7 @@
 namespace __gnu_cxx {
 using namespace std;
 
-template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash : public std::hash<_Tp>
-    { };
+template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash { };
 
 template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
     : public unary_function<const char*, size_t>
@@ -41,6 +40,96 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *>
         return __do_string_hash<const char *>(__c, __c + strlen(__c));
     }
 };
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char>
+    : public unary_function<char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
+    : public unary_function<signed char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(signed char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
+    : public unary_function<unsigned char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<short>
+    : public unary_function<short, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(short __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
+    : public unary_function<unsigned short, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned short __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<int>
+    : public unary_function<int, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(int __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
+    : public unary_function<unsigned int, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned int __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<long>
+    : public unary_function<long, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(long __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
+    : public unary_function<unsigned long, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned long __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
 }
 
 #endif  // _LIBCPP_EXT_HASH
index 225b72b..36cd595 100644 (file)
@@ -430,9 +430,9 @@ public:
     typedef const value_type&                                    reference;
     typedef typename __pointer_traits::template
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-            rebind<value_type>
+            rebind<const value_type>
 #else
-            rebind<value_type>::other
+            rebind<const value_type>::other
 #endif
                                                                  pointer;
 
index 398226b..72d31dc 100644 (file)
@@ -188,7 +188,6 @@ template <class _Tp, class _VoidPtr> struct __forward_list_node;
 template <class _NodePtr>
 struct __forward_begin_node
 {
-    typedef __forward_begin_node __self;
     typedef _NodePtr pointer;
 
     pointer __next_;
@@ -197,16 +196,22 @@ struct __forward_begin_node
 };
 
 template <class _Tp, class _VoidPtr>
-struct __forward_list_node
-    : public __forward_begin_node
-             <
-                 typename pointer_traits<_VoidPtr>::template
+struct _LIBCPP_HIDDEN __begin_node_of
+{
+    typedef __forward_begin_node
+        <
+             typename pointer_traits<_VoidPtr>::template
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-                     rebind<__forward_list_node<_Tp, _VoidPtr> >
+                 rebind<__forward_list_node<_Tp, _VoidPtr> >
 #else
-                     rebind<__forward_list_node<_Tp, _VoidPtr> >::other
+                 rebind<__forward_list_node<_Tp, _VoidPtr> >::other
 #endif
-             >
+         > type;
+};
+
+template <class _Tp, class _VoidPtr>
+struct __forward_list_node
+    : public __begin_node_of<_Tp, _VoidPtr>::type
 {
     typedef _Tp value_type;
 
@@ -357,9 +362,9 @@ protected:
     typedef _Tp    value_type;
     typedef _Alloc allocator_type;
 
-    typedef typename allocator_traits<allocator_type>::void_pointer void_pointer;
-    typedef __forward_list_node<value_type, void_pointer>           __node;
-    typedef typename __node::__self                                 __begin_node;
+    typedef typename allocator_traits<allocator_type>::void_pointer  void_pointer;
+    typedef __forward_list_node<value_type, void_pointer>            __node;
+    typedef typename __begin_node_of<value_type, void_pointer>::type __begin_node;
     typedef typename allocator_traits<allocator_type>::template
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
                 rebind_alloc<__node>
index d40f70a..891ed46 100644 (file)
@@ -1221,7 +1221,7 @@ public:
     template <class... _ArgTypes>
        _LIBCPP_INLINE_VISIBILITY
        typename __invoke_return<type, _ArgTypes...>::type
-          operator() (_ArgTypes&&... __args)
+          operator() (_ArgTypes&&... __args) const
           {
               return __invoke(__f_, _VSTD::forward<_ArgTypes>(__args)...);
           }
index 73d5456..de00f25 100644 (file)
@@ -1872,7 +1872,7 @@ template <class _Fp>
 __packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(_Fp&& __f)
     : __f_(nullptr)
 {
-    typedef typename remove_reference<_Fp>::type _FR;
+    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
     typedef __packaged_task_func<_FR, allocator<_FR>, _Rp(_ArgTypes...)> _FF;
     if (sizeof(_FF) <= sizeof(__buf_))
     {
@@ -1897,7 +1897,7 @@ __packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(
     : __f_(nullptr)
 {
     typedef allocator_traits<_Alloc> __alloc_traits;
-    typedef typename remove_reference<_Fp>::type _FR;
+    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
     typedef __packaged_task_func<_FR, _Alloc, _Rp(_ArgTypes...)> _FF;
     if (sizeof(_FF) <= sizeof(__buf_))
     {
index e334c7d..a5042c7 100644 (file)
@@ -519,15 +519,16 @@ std::basic_ostream<_CharT, _Traits> &
 __quoted_output ( basic_ostream<_CharT, _Traits> &__os, 
         _ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape )
 {
-    __os << __delim;
+    _VSTD::basic_string<_CharT, _Traits> __str;
+    __str.push_back(__delim);
     for ( ; __first != __last; ++ __first )
     {
         if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim))
-            __os << __escape;
-        __os << *__first;
+            __str.push_back(__escape);
+        __str.push_back(*__first);
     }
-    __os << __delim;
-    return __os;
+    __str.push_back(__delim);
+    return __put_character_sequence(__os, __str.data(), __str.size());
 }
 
 template <class _CharT, class _Traits, class _String>
index 70a664d..f338e01 100644 (file)
@@ -138,6 +138,8 @@ template <class Iterator>
 reverse_iterator<Iterator>
 operator+(typename reverse_iterator<Iterator>::difference_type n, const reverse_iterator<Iterator>& x);
 
+template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i); // C++14
+
 template <class Container>
 class back_insert_iterator
 {
@@ -327,6 +329,7 @@ template <class C> auto crend(const C& c) -> decltype(std::rend(c));          //
 */
 
 #include <__config>
+#include <__functional_base>
 #include <type_traits>
 #include <cstddef>
 #include <iosfwd>
@@ -364,10 +367,10 @@ public:
     static const bool value = sizeof(__test<_Tp>(0)) == 1;
 };
 
-template <class _Iter, bool> struct ____iterator_traits {};
+template <class _Iter, bool> struct __iterator_traits_impl {};
 
 template <class _Iter>
-struct ____iterator_traits<_Iter, true>
+struct __iterator_traits_impl<_Iter, true>
 {
     typedef typename _Iter::difference_type   difference_type;
     typedef typename _Iter::value_type        value_type;
@@ -380,7 +383,7 @@ template <class _Iter, bool> struct __iterator_traits {};
 
 template <class _Iter>
 struct __iterator_traits<_Iter, true>
-    :  ____iterator_traits
+    :  __iterator_traits_impl
       <
         _Iter,
         is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value ||
@@ -534,7 +537,7 @@ class _LIBCPP_TYPE_VIS_ONLY reverse_iterator
                       typename iterator_traits<_Iter>::reference>
 {
 private:
-    mutable _Iter __t;
+    mutable _Iter __t;  // no longer used as of LWG #2360, not removed due to ABI break
 protected:
     _Iter current;
 public:
@@ -548,8 +551,8 @@ public:
     template <class _Up> _LIBCPP_INLINE_VISIBILITY reverse_iterator(const reverse_iterator<_Up>& __u)
         : __t(__u.base()), current(__u.base()) {}
     _LIBCPP_INLINE_VISIBILITY _Iter base() const {return current;}
-    _LIBCPP_INLINE_VISIBILITY reference operator*() const {__t = current; return *--__t;}
-    _LIBCPP_INLINE_VISIBILITY pointer  operator->() const {return &(operator*());}
+    _LIBCPP_INLINE_VISIBILITY reference operator*() const {_Iter __tmp = current; return *--__tmp;}
+    _LIBCPP_INLINE_VISIBILITY pointer  operator->() const {return _VSTD::addressof(operator*());}
     _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator++() {--current; return *this;}
     _LIBCPP_INLINE_VISIBILITY reverse_iterator  operator++(int)
         {reverse_iterator __tmp(*this); --current; return __tmp;}
@@ -632,6 +635,15 @@ operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_i
     return reverse_iterator<_Iter>(__x.base() - __n);
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _Iter>
+inline _LIBCPP_INLINE_VISIBILITY
+reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
+{
+    return reverse_iterator<_Iter>(__i);
+}
+#endif
+
 template <class _Container>
 class _LIBCPP_TYPE_VIS_ONLY back_insert_iterator
     : public iterator<output_iterator_tag,
@@ -645,7 +657,7 @@ protected:
 public:
     typedef _Container container_type;
 
-    _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(&__x) {}
+    _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
     _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(const typename _Container::value_type& __value_)
         {container->push_back(__value_); return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -678,7 +690,7 @@ protected:
 public:
     typedef _Container container_type;
 
-    _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(&__x) {}
+    _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
     _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(const typename _Container::value_type& __value_)
         {container->push_front(__value_); return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -713,7 +725,7 @@ public:
     typedef _Container container_type;
 
     _LIBCPP_INLINE_VISIBILITY insert_iterator(_Container& __x, typename _Container::iterator __i)
-        : container(&__x), iter(__i) {}
+        : container(_VSTD::addressof(__x)), iter(__i) {}
     _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(const typename _Container::value_type& __value_)
         {iter = container->insert(iter, __value_); ++iter; return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -1386,7 +1398,7 @@ operator+(typename __wrap_iter<_Iter>::difference_type __n,
 }
 
 template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp*
 begin(_Tp (&__array)[_Np])
 {
@@ -1394,7 +1406,7 @@ begin(_Tp (&__array)[_Np])
 }
 
 template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp*
 end(_Tp (&__array)[_Np])
 {
@@ -1466,17 +1478,17 @@ reverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il)
 }
 
 template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 auto cbegin(const _Cp& __c) -> decltype(begin(__c))
 {
-    return _VSTD::begin(__c);
+    return begin(__c);
 }
 
 template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 auto cend(const _Cp& __c) -> decltype(end(__c))
 {
-    return _VSTD::end(__c);
+    return end(__c);
 }
 
 template <class _Cp>
index ac3ae7e..cdfe120 100644 (file)
@@ -1012,7 +1012,7 @@ num_get<_CharT, _InputIterator>::__do_get_signed(iter_type __b, iter_type __e,
     unsigned __dc = 0;
     for (; __b != __e; ++__b)
     {
-        if (__a_end - __a == __buf.size())
+        if (__a_end == __a + __buf.size())
         {
             size_t __tmp = __buf.size();
             __buf.resize(2*__buf.size());
@@ -1062,7 +1062,7 @@ num_get<_CharT, _InputIterator>::__do_get_unsigned(iter_type __b, iter_type __e,
     unsigned __dc = 0;
     for (; __b != __e; ++__b)
     {
-        if (__a_end - __a == __buf.size())
+        if (__a_end == __a + __buf.size())
         {
             size_t __tmp = __buf.size();
             __buf.resize(2*__buf.size());
@@ -1116,7 +1116,7 @@ num_get<_CharT, _InputIterator>::__do_get_floating_point(iter_type __b, iter_typ
     char __exp = 'E';
     for (; __b != __e; ++__b)
     {
-        if (__a_end - __a == __buf.size())
+        if (__a_end == __a + __buf.size())
         {
             size_t __tmp = __buf.size();
             __buf.resize(2*__buf.size());
@@ -1166,7 +1166,7 @@ num_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,
     unsigned __dc = 0;
     for (; __b != __e; ++__b)
     {
-        if (__a_end - __a == __buf.size())
+        if (__a_end == __a + __buf.size())
         {
             size_t __tmp = __buf.size();
             __buf.resize(2*__buf.size());
index 009e8e2..f533d8f 100644 (file)
@@ -835,7 +835,15 @@ public:
     typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit map(const key_compare& __comp = key_compare())
+    map()
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_default_constructible<key_compare>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__vc(key_compare())) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit map(const key_compare& __comp)
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
@@ -884,10 +892,12 @@ public:
 #if __cplusplus >= 201103L
             __tree_ = __m.__tree_;
 #else
-            __tree_.clear();
-            __tree_.value_comp() = __m.__tree_.value_comp();
-            __tree_.__copy_assign_alloc(__m.__tree_);
-            insert(__m.begin(), __m.end());
+            if (this != &__m) {
+                __tree_.clear();
+                __tree_.value_comp() = __m.__tree_.value_comp();
+                __tree_.__copy_assign_alloc(__m.__tree_);
+                insert(__m.begin(), __m.end());
+            }
 #endif
             return *this;
         }
@@ -1566,7 +1576,15 @@ public:
     typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit multimap(const key_compare& __comp = key_compare())
+    multimap()
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_default_constructible<key_compare>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__vc(key_compare())) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit multimap(const key_compare& __comp)
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
@@ -1616,10 +1634,12 @@ public:
 #if __cplusplus >= 201103L
             __tree_ = __m.__tree_;
 #else
-            __tree_.clear();
-            __tree_.value_comp() = __m.__tree_.value_comp();
-            __tree_.__copy_assign_alloc(__m.__tree_);
-            insert(__m.begin(), __m.end());
+            if (this != &__m) {
+                __tree_.clear();
+                __tree_.value_comp() = __m.__tree_.value_comp();
+                __tree_.__copy_assign_alloc(__m.__tree_);
+                insert(__m.begin(), __m.end());
+            }
 #endif
             return *this;
         }
index b382f70..da8786a 100644 (file)
@@ -479,6 +479,8 @@ public:
     template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;
     weak_ptr(weak_ptr const& r) noexcept;
     template<class Y> weak_ptr(weak_ptr<Y> const& r) noexcept;
+    weak_ptr(weak_ptr&& r) noexcept;                      // C++14
+    template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept; // C++14
 
     // destructor
     ~weak_ptr();
@@ -487,6 +489,8 @@ public:
     weak_ptr& operator=(weak_ptr const& r) noexcept;
     template<class Y> weak_ptr& operator=(weak_ptr<Y> const& r) noexcept;
     template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;
+    weak_ptr& operator=(weak_ptr&& r) noexcept;                      // C++14
+    template<class Y> weak_ptr& operator=(weak_ptr<Y>&& r) noexcept; // C++14
 
     // modifiers
     void swap(weak_ptr& r) noexcept;
@@ -2666,23 +2670,21 @@ public:
                 "unique_ptr constructed with null function pointer deleter");
         }
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-    template <class _Pp,
-              class = typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value>::type
-             >
-    _LIBCPP_INLINE_VISIBILITY explicit unique_ptr(_Pp __p) _NOEXCEPT
+    template <class _Pp>
+    _LIBCPP_INLINE_VISIBILITY explicit unique_ptr(_Pp __p,
+            typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value, __nat>::type = __nat()) _NOEXCEPT
         : __ptr_(__p)
         {
             static_assert(!is_pointer<deleter_type>::value,
                 "unique_ptr constructed with null function pointer deleter");
         }
 
-    template <class _Pp,
-              class = typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value>::type
-             >
+    template <class _Pp>
     _LIBCPP_INLINE_VISIBILITY unique_ptr(_Pp __p, typename conditional<
                                        is_reference<deleter_type>::value,
                                        deleter_type,
-                                       typename add_lvalue_reference<const deleter_type>::type>::type __d)
+                                       typename add_lvalue_reference<const deleter_type>::type>::type __d,
+                                       typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value, __nat>::type = __nat())
              _NOEXCEPT
         : __ptr_(__p, __d) {}
 
@@ -2693,10 +2695,10 @@ public:
              _NOEXCEPT
         : __ptr_(pointer(), __d) {}
 
-    template <class _Pp,
-              class = typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value>::type
-             >
-    _LIBCPP_INLINE_VISIBILITY unique_ptr(_Pp __p, typename remove_reference<deleter_type>::type&& __d)
+    template <class _Pp>
+    _LIBCPP_INLINE_VISIBILITY unique_ptr(_Pp __p,
+                                         typename remove_reference<deleter_type>::type&& __d,
+                                         typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value, __nat>::type = __nat())
              _NOEXCEPT
         : __ptr_(__p, _VSTD::move(__d))
         {
@@ -2811,10 +2813,10 @@ public:
     }
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-    template <class _Pp,
-              class = typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value>::type
-             >
-    _LIBCPP_INLINE_VISIBILITY void reset(_Pp __p) _NOEXCEPT
+    template <class _Pp>
+    _LIBCPP_INLINE_VISIBILITY
+    typename enable_if<__same_or_less_cv_qualified<_Pp, pointer>::value, void>::type
+    reset(_Pp __p) _NOEXCEPT
     {
         pointer __tmp = __ptr_.first();
         __ptr_.first() = __p;
@@ -3759,27 +3761,15 @@ private:
 public:
     _LIBCPP_CONSTEXPR shared_ptr() _NOEXCEPT;
     _LIBCPP_CONSTEXPR shared_ptr(nullptr_t) _NOEXCEPT;
-    template<class _Yp,
-             class = typename enable_if
-                     <
-                        is_convertible<_Yp*, element_type*>::value
-                     >::type
-            >
-        explicit shared_ptr(_Yp* __p);
-    template<class _Yp, class _Dp,
-             class = typename enable_if
-                     <
-                        is_convertible<_Yp*, element_type*>::value
-                     >::type
-            >
-        shared_ptr(_Yp* __p, _Dp __d);
-    template<class _Yp, class _Dp, class _Alloc,
-             class = typename enable_if
-                     <
-                        is_convertible<_Yp*, element_type*>::value
-                     >::type
-            >
-        shared_ptr(_Yp* __p, _Dp __d, _Alloc __a);
+    template<class _Yp>
+        explicit shared_ptr(_Yp* __p,
+                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
+    template<class _Yp, class _Dp>
+        shared_ptr(_Yp* __p, _Dp __d,
+                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
+    template<class _Yp, class _Dp, class _Alloc>
+        shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,
+                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
     template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);
     template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);
     template<class _Yp> shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) _NOEXCEPT;
@@ -3797,59 +3787,52 @@ public:
     template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type= __nat());
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-    template<class _Yp,
-             class = typename enable_if
-                     <
-                        is_convertible<_Yp*, element_type*>::value
-                     >::type
-            >
-        shared_ptr(auto_ptr<_Yp>&& __r);
+    template<class _Yp>
+        shared_ptr(auto_ptr<_Yp>&& __r,
+                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
 #else
-    template<class _Yp,
-             class = typename enable_if
-                     <
-                        is_convertible<_Yp*, element_type*>::value
-                     >::type
-            >
-        shared_ptr(auto_ptr<_Yp> __r);
+    template<class _Yp>
+        shared_ptr(auto_ptr<_Yp> __r,
+                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
 #endif
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-    template <class _Yp, class _Dp,
-                 class = typename enable_if
-                 <
-                    !is_array<_Yp>::value &&
-                    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value
-                 >::type
-             >
-       shared_ptr(unique_ptr<_Yp, _Dp>&&,
-       typename enable_if<!is_lvalue_reference<_Dp>::value, __nat>::type = __nat());
-    template <class _Yp, class _Dp,
-                 class = typename enable_if
-                 <
-                    !is_array<_Yp>::value &&
-                    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value
-                 >::type
-             >
-       shared_ptr(unique_ptr<_Yp, _Dp>&&,
-       typename enable_if<is_lvalue_reference<_Dp>::value, __nat>::type = __nat());
+    template <class _Yp, class _Dp>
+        shared_ptr(unique_ptr<_Yp, _Dp>&&,
+                   typename enable_if
+                   <
+                       !is_lvalue_reference<_Dp>::value &&
+                       !is_array<_Yp>::value &&
+                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                       __nat
+                   >::type = __nat());
+    template <class _Yp, class _Dp>
+        shared_ptr(unique_ptr<_Yp, _Dp>&&,
+                   typename enable_if
+                   <
+                       is_lvalue_reference<_Dp>::value &&
+                       !is_array<_Yp>::value &&
+                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                       __nat
+                   >::type = __nat());
 #else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
-    template <class _Yp, class _Dp,
-                 class = typename enable_if
-                 <
-                    !is_array<_Yp>::value &&
-                    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value
-                 >::type
-             > shared_ptr(unique_ptr<_Yp, _Dp>,
-       typename enable_if<!is_lvalue_reference<_Dp>::value, __nat>::type = __nat());
-    template <class _Yp, class _Dp,
-                 class = typename enable_if
-                 <
-                    !is_array<_Yp>::value &&
-                    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value
-                 >::type
-             >
-       shared_ptr(unique_ptr<_Yp, _Dp>,
-       typename enable_if<is_lvalue_reference<_Dp>::value, __nat>::type = __nat());
+    template <class _Yp, class _Dp>
+        shared_ptr(unique_ptr<_Yp, _Dp>,
+                   typename enable_if
+                   <
+                       !is_lvalue_reference<_Dp>::value &&
+                       !is_array<_Yp>::value &&
+                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                       __nat
+                   >::type = __nat());
+    template <class _Yp, class _Dp>
+        shared_ptr(unique_ptr<_Yp, _Dp>,
+                   typename enable_if
+                   <
+                       is_lvalue_reference<_Dp>::value &&
+                       !is_array<_Yp>::value &&
+                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                       __nat
+                   >::type = __nat());
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
     ~shared_ptr();
@@ -4039,8 +4022,9 @@ shared_ptr<_Tp>::shared_ptr(nullptr_t) _NOEXCEPT
 }
 
 template<class _Tp>
-template<class _Yp, class>
-shared_ptr<_Tp>::shared_ptr(_Yp* __p)
+template<class _Yp>
+shared_ptr<_Tp>::shared_ptr(_Yp* __p,
+                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)
     : __ptr_(__p)
 {
     unique_ptr<_Yp> __hold(__p);
@@ -4051,8 +4035,9 @@ shared_ptr<_Tp>::shared_ptr(_Yp* __p)
 }
 
 template<class _Tp>
-template<class _Yp, class _Dp, class>
-shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d)
+template<class _Yp, class _Dp>
+shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d,
+                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)
     : __ptr_(__p)
 {
 #ifndef _LIBCPP_NO_EXCEPTIONS
@@ -4094,8 +4079,9 @@ shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d)
 }
 
 template<class _Tp>
-template<class _Yp, class _Dp, class _Alloc, class>
-shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, _Alloc __a)
+template<class _Yp, class _Dp, class _Alloc>
+shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,
+                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)
     : __ptr_(__p)
 {
 #ifndef _LIBCPP_NO_EXCEPTIONS
@@ -4208,12 +4194,13 @@ shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 template<class _Tp>
-template<class _Yp, class>
+template<class _Yp>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
-shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>&& __r)
+shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>&& __r,
 #else
-shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r)
+shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r,
 #endif
+                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)
     : __ptr_(__r.get())
 {
     typedef __shared_ptr_pointer<_Yp*, default_delete<_Yp>, allocator<_Yp> > _CntrlBlk;
@@ -4223,13 +4210,19 @@ shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r)
 }
 
 template<class _Tp>
-template <class _Yp, class _Dp, class>
+template <class _Yp, class _Dp>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,
 #else
 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,
 #endif
-           typename enable_if<!is_lvalue_reference<_Dp>::value, __nat>::type)
+                            typename enable_if
+                            <
+                                !is_lvalue_reference<_Dp>::value &&
+                                !is_array<_Yp>::value &&
+                                is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                                __nat
+                            >::type)
     : __ptr_(__r.get())
 {
     typedef __shared_ptr_pointer<_Yp*, _Dp, allocator<_Yp> > _CntrlBlk;
@@ -4239,13 +4232,19 @@ shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,
 }
 
 template<class _Tp>
-template <class _Yp, class _Dp, class>
+template <class _Yp, class _Dp>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,
 #else
 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,
 #endif
-           typename enable_if<is_lvalue_reference<_Dp>::value, __nat>::type)
+                            typename enable_if
+                            <
+                                is_lvalue_reference<_Dp>::value &&
+                                !is_array<_Yp>::value &&
+                                is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,
+                                __nat
+                            >::type)
     : __ptr_(__r.get())
 {
     typedef __shared_ptr_pointer<_Yp*,
index 20587a1..9d96fd8 100644 (file)
@@ -765,7 +765,7 @@ template<class _CharT, class _Traits>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c)
 {
-       return _VSTD::__put_character_sequence(__os, &__c, 1);
+    return _VSTD::__put_character_sequence(__os, &__c, 1);
 }
 
 template<class _CharT, class _Traits>
@@ -805,28 +805,28 @@ template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, char __c)
 {
-       return _VSTD::__put_character_sequence(__os, &__c, 1);
+    return _VSTD::__put_character_sequence(__os, &__c, 1);
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, signed char __c)
 {
-       return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c)
 {
-       return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
 }
 
 template<class _CharT, class _Traits>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str)
 {
-       return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
 }
 
 template<class _CharT, class _Traits>
@@ -879,23 +879,23 @@ template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const char* __str)
 {
-       return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const signed char* __str)
 {
-       const char *__s = (const char *) __str;
-       return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+    const char *__s = (const char *) __str;
+    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str)
 {
-       const char *__s = (const char *) __str;
-       return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+    const char *__s = (const char *) __str;
+    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
 }
 
 template <class _CharT, class _Traits>
@@ -1065,7 +1065,7 @@ basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os,
            const basic_string<_CharT, _Traits, _Allocator>& __str)
 {
-       return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
+    return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
 }
 
 template <class _CharT, class _Traits>
index ffe39cf..26ade48 100644 (file)
@@ -437,7 +437,7 @@ class match_results
 public:
     typedef sub_match<BidirectionalIterator>                  value_type;
     typedef const value_type&                                 const_reference;
-    typedef const_reference                                   reference;
+    typedef value_type&                                       reference;
     typedef /implementation-defined/                          const_iterator;
     typedef const_iterator                                    iterator;
     typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;
@@ -546,6 +546,13 @@ template <class ST, class SA, class Allocator, class charT, class traits>
                 const basic_regex<charT, traits>& e,
                 regex_constants::match_flag_type flags = regex_constants::match_default);
 
+template <class ST, class SA, class Allocator, class charT, class traits>
+    bool
+    regex_match(const basic_string<charT, ST, SA>&& s,
+                match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+                const basic_regex<charT, traits>& e,
+                regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
 template <class charT, class traits>
     bool
     regex_match(const charT* str, const basic_regex<charT, traits>& e,
@@ -594,6 +601,13 @@ template <class ST, class SA, class Allocator, class charT, class traits>
                  const basic_regex<charT, traits>& e,
                  regex_constants::match_flag_type flags = regex_constants::match_default);
 
+template <class ST, class SA, class Allocator, class charT, class traits>
+    bool
+    regex_search(const basic_string<charT, ST, SA>&& s,
+                 match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+                 const basic_regex<charT, traits>& e,
+                 regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
 template <class OutputIterator, class BidirectionalIterator,
           class traits, class charT, class ST, class SA>
     OutputIterator
@@ -655,6 +669,10 @@ public:
     regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
                    const regex_type& re,
                    regex_constants::match_flag_type m = regex_constants::match_default);
+    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                   const regex_type&& __re,
+                   regex_constants::match_flag_type __m 
+                                     = regex_constants::match_default) = delete; // C++14
     regex_iterator(const regex_iterator&);
     regex_iterator& operator=(const regex_iterator&);
 
@@ -691,15 +709,28 @@ public:
                          const regex_type& re, int submatch = 0,
                          regex_constants::match_flag_type m = regex_constants::match_default);
     regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, int submatch = 0,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                          const regex_type& re, const vector<int>& submatches,
                          regex_constants::match_flag_type m = regex_constants::match_default);
     regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, const vector<int>& submatches,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                          const regex_type& re, initializer_list<int> submatches,
                          regex_constants::match_flag_type m = regex_constants::match_default);
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, initializer_list<int> submatches,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
     template <size_t N>
         regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                              const regex_type& re, const int (&submatches)[N],
                              regex_constants::match_flag_type m = regex_constants::match_default);
+    template <size_t N>
+        regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                             const regex_type& re, const int (&submatches)[N],
+                             regex_constants::match_flag_type m = regex_constants::match_default) = delete // C++14;
     regex_token_iterator(const regex_token_iterator&);
     regex_token_iterator& operator=(const regex_token_iterator&);
 
@@ -3310,10 +3341,14 @@ basic_regex<_CharT, _Traits>::__parse_BACKREF(_ForwardIterator __first,
         _ForwardIterator __temp = _VSTD::next(__first);
         if (__temp != __last)
         {
-            if (*__first == '\\' && '1' <= *__temp && *__temp <= '9')
-            {
-                __push_back_ref(*__temp - '0');
-                __first = ++__temp;
+            if (*__first == '\\')
+            { 
+                int __val = __traits_.value(*__temp, 10);
+                if (__val >= 1 && __val <= 9)
+                {
+                    __push_back_ref(__val);
+                    __first = ++__temp;
+                }
             }
         }
     }
@@ -4052,14 +4087,19 @@ basic_regex<_CharT, _Traits>::__parse_DUP_COUNT(_ForwardIterator __first,
                                                 _ForwardIterator __last,
                                                 int& __c)
 {
-    if (__first != __last && '0' <= *__first && *__first <= '9')
+    if (__first != __last )
     {
-        __c = *__first - '0';
-        for (++__first; __first != __last && '0' <= *__first && *__first <= '9';
-                                                                      ++__first)
+        int __val = __traits_.value(*__first, 10);
+        if ( __val != -1 )
         {
-            __c *= 10;
-            __c += *__first - '0';
+            __c = __val;
+            for (++__first; 
+                 __first != __last && ( __val = __traits_.value(*__first, 10)) != -1;
+                 ++__first)
+            {
+                __c *= 10;
+                __c += __val;
+            }
         }
     }
     return __first;
@@ -5223,7 +5263,7 @@ private:
 public:
     _BidirectionalIterator __position_start_;
     typedef const value_type&                                 const_reference;
-    typedef const_reference                                   reference;
+    typedef value_type&                                       reference;
     typedef typename __container_type::const_iterator         const_iterator;
     typedef const_iterator                                    iterator;
     typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;
@@ -5934,6 +5974,15 @@ regex_search(const basic_string<_CharT, _ST, _SA>& __s,
     return __r;
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Ap, class _Cp, class _Tp>
+bool
+regex_search(const basic_string<_Cp, _ST, _SA>&& __s,
+             match_results<typename basic_string<_Cp, _ST, _SA>::const_iterator, _Ap>&,
+             const basic_regex<_Cp, _Tp>& __e,
+             regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; 
+#endif
+
 // regex_match
 
 template <class _BidirectionalIterator, class _Allocator, class _CharT, class _Traits>
@@ -5986,6 +6035,16 @@ regex_match(const basic_string<_CharT, _ST, _SA>& __s,
     return _VSTD::regex_match(__s.begin(), __s.end(), __m, __e, __flags);
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>
+inline _LIBCPP_INLINE_VISIBILITY
+bool
+regex_match(const basic_string<_CharT, _ST, _SA>&& __s,
+            match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,
+            const basic_regex<_CharT, _Traits>& __e,
+            regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; 
+#endif
+
 template <class _CharT, class _Traits>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
@@ -6031,7 +6090,14 @@ public:
     regex_iterator();
     regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                    const regex_type& __re,
-                   regex_constants::match_flag_type __m = regex_constants::match_default);
+                   regex_constants::match_flag_type __m
+                                              = regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                   const regex_type&& __re,
+                   regex_constants::match_flag_type __m 
+                                     = regex_constants::match_default) = delete;
+#endif
 
     bool operator==(const regex_iterator& __x) const;
     _LIBCPP_INLINE_VISIBILITY
@@ -6147,16 +6213,38 @@ public:
                          const regex_type& __re, int __submatch = 0,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re, int __submatch = 0,
+                         regex_constants::match_flag_type __m =
+                                       regex_constants::match_default) = delete;
+#endif
+
     regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                          const regex_type& __re, const vector<int>& __submatches,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re, const vector<int>& __submatches,
+                         regex_constants::match_flag_type __m =
+                                     regex_constants::match_default) = delete;
+#endif
+
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
     regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                          const regex_type& __re,
                          initializer_list<int> __submatches,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re,
+                         initializer_list<int> __submatches,
+                         regex_constants::match_flag_type __m =
+                                       regex_constants::match_default) = delete;
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
     template <size_t _Np>
         regex_token_iterator(_BidirectionalIterator __a,
@@ -6165,6 +6253,16 @@ public:
                              const int (&__submatches)[_Np],
                              regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    template <std::size_t _Np>
+        regex_token_iterator(_BidirectionalIterator __a,
+                             _BidirectionalIterator __b,
+                             const regex_type&& __re,
+                             const int (&__submatches)[_Np],
+                             regex_constants::match_flag_type __m =
+                                      regex_constants::match_default) = delete;
+#endif
+
     regex_token_iterator(const regex_token_iterator&);
     regex_token_iterator& operator=(const regex_token_iterator&);
 
@@ -6188,6 +6286,12 @@ public:
 
 private:
     void __init(_BidirectionalIterator __a, _BidirectionalIterator __b);
+    void __establish_result () {
+        if (__subs_[_N_] == -1)
+            __result_ = &__position_->prefix();
+        else
+            __result_ = &(*__position_)[__subs_[_N_]];
+        }       
 };
 
 template <class _BidirectionalIterator, class _CharT, class _Traits>
@@ -6205,12 +6309,7 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
     __init(_BidirectionalIterator __a, _BidirectionalIterator __b)
 {
     if (__position_ != _Position())
-    {
-        if (__subs_[_N_] == -1)
-            __result_ = &__position_->prefix();
-        else
-            __result_ = &(*__position_)[__subs_[_N_]];
-    }
+        __establish_result ();
     else if (__subs_[_N_] == -1)
     {
         __suffix_.matched = true;
@@ -6287,7 +6386,9 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
       __subs_(__x.__subs_)
 {
     if (__x.__result_ == &__x.__suffix_)
-        __result_ == &__suffix_;
+        __result_ = &__suffix_;
+    else if ( __result_ != nullptr )
+        __establish_result ();
 }
 
 template <class _BidirectionalIterator, class _CharT, class _Traits>
@@ -6299,12 +6400,15 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::
     {
         __position_ = __x.__position_;
         if (__x.__result_ == &__x.__suffix_)
-            __result_ == &__suffix_;
+            __result_ = &__suffix_;
         else
             __result_ = __x.__result_;
         __suffix_ = __x.__suffix_;
         _N_ = __x._N_;
         __subs_ = __x.__subs_;
+
+        if ( __result_ != nullptr && __result_ != &__suffix_ )
+            __establish_result();
     }
     return *this;
 }
@@ -6337,22 +6441,14 @@ regex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::operator++()
     else if (_N_ + 1 < __subs_.size())
     {
         ++_N_;
-        if (__subs_[_N_] == -1)
-            __result_ = &__position_->prefix();
-        else
-            __result_ = &(*__position_)[__subs_[_N_]];
+        __establish_result();
     }
     else
     {
         _N_ = 0;
         ++__position_;
         if (__position_ != _Position())
-        {
-            if (__subs_[_N_] == -1)
-                __result_ = &__position_->prefix();
-            else
-                __result_ = &(*__position_)[__subs_[_N_]];
-        }
+            __establish_result();
         else
         {
             if (_VSTD::find(__subs_.begin(), __subs_.end(), -1) != __subs_.end()
index a537c5f..7dbf970 100644 (file)
@@ -425,14 +425,23 @@ public:
     typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit set(const value_compare& __comp = value_compare())
+    set()
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_default_constructible<key_compare>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(value_compare()) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit set(const value_compare& __comp)
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
         : __tree_(__comp) {}
+
     _LIBCPP_INLINE_VISIBILITY
-    set(const value_compare& __comp, const allocator_type& __a)
+    explicit set(const value_compare& __comp, const allocator_type& __a)
         : __tree_(__comp, __a) {}
     template <class _InputIterator>
         _LIBCPP_INLINE_VISIBILITY
@@ -822,14 +831,23 @@ public:
 
     // construct/copy/destroy:
     _LIBCPP_INLINE_VISIBILITY
-    explicit multiset(const value_compare& __comp = value_compare())
+    multiset()
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_default_constructible<key_compare>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(value_compare()) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit multiset(const value_compare& __comp)
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
         : __tree_(__comp) {}
+
     _LIBCPP_INLINE_VISIBILITY
-    multiset(const value_compare& __comp, const allocator_type& __a)
+    explicit multiset(const value_compare& __comp, const allocator_type& __a)
         : __tree_(__comp, __a) {}
     template <class _InputIterator>
         _LIBCPP_INLINE_VISIBILITY
index 5b1f53a..7661054 100644 (file)
 namespace std
 {
 
-class shared_mutex
+class shared_timed_mutex
 {
 public:
-    shared_mutex();
-    ~shared_mutex();
+    shared_timed_mutex();
+    ~shared_timed_mutex();
 
-    shared_mutex(const shared_mutex&) = delete;
-    shared_mutex& operator=(const shared_mutex&) = delete;
+    shared_timed_mutex(const shared_timed_mutex&) = delete;
+    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
 
     // Exclusive ownership
     void lock(); // blocking
@@ -114,7 +114,7 @@ template <class Mutex>
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
-class _LIBCPP_TYPE_VIS shared_mutex
+class _LIBCPP_TYPE_VIS shared_timed_mutex
 {
     mutex               __mut_;
     condition_variable  __gate1_;
@@ -124,11 +124,11 @@ class _LIBCPP_TYPE_VIS shared_mutex
     static const unsigned __write_entered_ = 1U << (sizeof(unsigned)*__CHAR_BIT__ - 1);
     static const unsigned __n_readers_ = ~__write_entered_;
 public:
-    shared_mutex();
-    _LIBCPP_INLINE_VISIBILITY ~shared_mutex() = default;
+    shared_timed_mutex();
+    _LIBCPP_INLINE_VISIBILITY ~shared_timed_mutex() = default;
 
-    shared_mutex(const shared_mutex&) = delete;
-    shared_mutex& operator=(const shared_mutex&) = delete;
+    shared_timed_mutex(const shared_timed_mutex&) = delete;
+    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
 
     // Exclusive ownership
     void lock();
@@ -163,7 +163,7 @@ public:
 
 template <class _Clock, class _Duration>
 bool
-shared_mutex::try_lock_until(
+shared_timed_mutex::try_lock_until(
                         const chrono::time_point<_Clock, _Duration>& __abs_time)
 {
     unique_lock<mutex> __lk(__mut_);
@@ -198,7 +198,7 @@ shared_mutex::try_lock_until(
 
 template <class _Clock, class _Duration>
 bool
-shared_mutex::try_lock_shared_until(
+shared_timed_mutex::try_lock_shared_until(
                         const chrono::time_point<_Clock, _Duration>& __abs_time)
 {
     unique_lock<mutex> __lk(__mut_);
index f93fac1..7e61909 100644 (file)
@@ -161,7 +161,7 @@ public:
     basic_string& operator+=(initializer_list<value_type>);
 
     basic_string& append(const basic_string& str);
-    basic_string& append(const basic_string& str, size_type pos, size_type n);
+    basic_string& append(const basic_string& str, size_type pos, size_type n=npos); //C++14
     basic_string& append(const value_type* s, size_type n);
     basic_string& append(const value_type* s);
     basic_string& append(size_type n, value_type c);
@@ -178,7 +178,7 @@ public:
 
     basic_string& assign(const basic_string& str);
     basic_string& assign(basic_string&& str);
-    basic_string& assign(const basic_string& str, size_type pos, size_type n);
+    basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++14
     basic_string& assign(const value_type* s, size_type n);
     basic_string& assign(const value_type* s);
     basic_string& assign(size_type n, value_type c);
@@ -189,7 +189,7 @@ public:
     basic_string& insert(size_type pos1, const basic_string& str);
     basic_string& insert(size_type pos1, const basic_string& str,
                          size_type pos2, size_type n);
-    basic_string& insert(size_type pos, const value_type* s, size_type n);
+    basic_string& insert(size_type pos, const value_type* s, size_type n=npos); //C++14
     basic_string& insert(size_type pos, const value_type* s);
     basic_string& insert(size_type pos, size_type n, value_type c);
     iterator      insert(const_iterator p, value_type c);
@@ -204,7 +204,7 @@ public:
 
     basic_string& replace(size_type pos1, size_type n1, const basic_string& str);
     basic_string& replace(size_type pos1, size_type n1, const basic_string& str,
-                          size_type pos2, size_type n2);
+                          size_type pos2, size_type n2=npos); // C++14
     basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2);
     basic_string& replace(size_type pos, size_type n1, const value_type* s);
     basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c);
@@ -261,7 +261,7 @@ public:
     int compare(const basic_string& str) const noexcept;
     int compare(size_type pos1, size_type n1, const basic_string& str) const;
     int compare(size_type pos1, size_type n1, const basic_string& str,
-                size_type pos2, size_type n2) const;
+                size_type pos2, size_type n2=npos) const; // C++14
     int compare(const value_type* s) const noexcept;
     int compare(size_type pos1, size_type n1, const value_type* s) const;
     int compare(size_type pos1, size_type n1, const value_type* s, size_type n2) const;
@@ -1426,7 +1426,7 @@ public:
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& append(const basic_string& __str);
-    basic_string& append(const basic_string& __str, size_type __pos, size_type __n);
+    basic_string& append(const basic_string& __str, size_type __pos, size_type __n=npos);
     basic_string& append(const value_type* __s, size_type __n);
     basic_string& append(const value_type* __s);
     basic_string& append(size_type __n, value_type __c);
@@ -1465,7 +1465,7 @@ public:
     basic_string& assign(basic_string&& str)
         {*this = _VSTD::move(str); return *this;}
 #endif
-    basic_string& assign(const basic_string& __str, size_type __pos, size_type __n);
+    basic_string& assign(const basic_string& __str, size_type __pos, size_type __n=npos);
     basic_string& assign(const value_type* __s, size_type __n);
     basic_string& assign(const value_type* __s);
     basic_string& assign(size_type __n, value_type __c);
@@ -1491,7 +1491,7 @@ public:
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& insert(size_type __pos1, const basic_string& __str);
-    basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n);
+    basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos);
     basic_string& insert(size_type __pos, const value_type* __s, size_type __n);
     basic_string& insert(size_type __pos, const value_type* __s);
     basic_string& insert(size_type __pos, size_type __n, value_type __c);
@@ -1527,7 +1527,7 @@ public:
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str);
-    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2);
+    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos);
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
     basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
@@ -1619,7 +1619,7 @@ public:
     int compare(const basic_string& __str) const _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY
     int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;
-    int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const;
+    int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;
     int compare(const value_type* __s) const _NOEXCEPT;
     int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
     int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
@@ -3467,7 +3467,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_of(): recieved nullptr");
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3477,7 +3477,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s
                                                          size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3488,7 +3488,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_first_of(): recieved nullptr");
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3510,7 +3510,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_of(): recieved nullptr");
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3520,7 +3520,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __st
                                                         size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3531,7 +3531,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_last_of(): recieved nullptr");
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3553,7 +3553,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_not_of(): recieved nullptr");
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3563,7 +3563,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string&
                                                              size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3574,7 +3574,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_first_not_of(): recieved nullptr");
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3584,7 +3584,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,
                                                              size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __c, __pos);
+        (data(), size(), __c, __pos);
 }
 
 // find_last_not_of
@@ -3597,7 +3597,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_not_of(): recieved nullptr");
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3607,7 +3607,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string&
                                                             size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3618,7 +3618,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_last_not_of(): recieved nullptr");
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3628,7 +3628,7 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,
                                                             size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-       (data(), size(), __c, __pos);
+        (data(), size(), __c, __pos);
 }
 
 // compare
index 21b0349..999d144 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #define atof sun_atof
 #define strtod sun_strtod
 #include_next "floatingpoint.h"
index 05a7241..0e8e660 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #define iswalpha sun_iswalpha
 #define iswupper sun_iswupper
 #define iswlower sun_iswlower
index 359508d..875a39a 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 ////////////////////////////////////////////////////////////////////////////////
 // Minimal xlocale implementation for Solaris.  This implements the subset of
 // the xlocale APIs that libc++ depends on.
index ed1986e..bc96587 100644 (file)
 #ifndef _LIBCPP_SUPPORT_WIN32_SUPPORT_H
 #define _LIBCPP_SUPPORT_WIN32_SUPPORT_H
 
-/*
-   Functions and constants used in libc++ that are missing from the Windows C library.
-  */
+// Functions and constants used in libc++ that
+// are missing from the Windows C library.
 
-#include <wchar.h>  // mbstate_t
+#include <wchar.h> // mbstate_t
 #include <cstdarg> // va_ macros
+// "builtins" not implemented here for Clang or GCC as they provide
+// implementations. Assuming required for elsewhere else, certainly MSVC.
+#if defined(_LIBCPP_MSVC)
+#include <intrin.h>
+#endif
+#if defined(_LIBCPP_MSVCRT)
+#include <xlocinfo.h>
+#endif
 #define swprintf _snwprintf
 #define vswprintf _vsnwprintf
 
 
 extern "C" {
 
-int vasprintf( char **sptr, const char *__restrict fmt, va_list ap );
-int asprintf( char **sptr, const char *__restrict fmt, ...);
-size_t mbsnrtowcs( wchar_t *__restrict dst, const char **__restrict src,
-                   size_t nmc, size_t len, mbstate_t *__restrict ps );
-size_t wcsnrtombs( char *__restrict dst, const wchar_t **__restrict src,
-                   size_t nwc, size_t len, mbstate_t *__restrict ps );
+int vasprintf(char **sptr, const char *__restrict fmt, va_list ap);
+int asprintf(char **sptr, const char *__restrict fmt, ...);
+size_t mbsnrtowcs(wchar_t *__restrict dst, const char **__restrict src,
+                  size_t nmc, size_t len, mbstate_t *__restrict ps);
+size_t wcsnrtombs(char *__restrict dst, const wchar_t **__restrict src,
+                  size_t nwc, size_t len, mbstate_t *__restrict ps);
 }
 
 #if defined(_LIBCPP_MSVCRT)
 #define snprintf _snprintf
-#include <xlocinfo.h>
 #define atoll _atoi64
 #define strtoll _strtoi64
 #define strtoull _strtoui64
 #define wcstoll _wcstoi64
 #define wcstoull _wcstoui64
-_LIBCPP_ALWAYS_INLINE float strtof( const char *nptr, char **endptr )
-{ return _Stof(nptr, endptr, 0); }
-_LIBCPP_ALWAYS_INLINE double strtod( const char *nptr, char **endptr )
-{ return _Stod(nptr, endptr, 0); }
-_LIBCPP_ALWAYS_INLINE long double strtold( const char *nptr, char **endptr )
-{ return _Stold(nptr, endptr, 0); }
+_LIBCPP_ALWAYS_INLINE float strtof(const char *nptr, char **endptr)
+{
+  return _Stof(nptr, endptr, 0);
+}
+_LIBCPP_ALWAYS_INLINE double strtod(const char *nptr, char **endptr)
+{
+  return _Stod(nptr, endptr, 0);
+}
+_LIBCPP_ALWAYS_INLINE long double strtold(const char *nptr, char **endptr)
+{
+  return _Stold(nptr, endptr, 0);
+}
 
 #define _Exit _exit
+#endif
 
-#ifndef __clang__ // MSVC-based Clang also defines _MSC_VER
-#include <intrin.h>
+#if defined(_LIBCPP_MSVC)
 
-_LIBCPP_ALWAYS_INLINE int __builtin_popcount(unsigned int x) {
-   static const unsigned int m1 = 0x55555555; //binary: 0101...
-   static const unsigned int m2 = 0x33333333; //binary: 00110011..
-   static const unsigned int m4 = 0x0f0f0f0f; //binary:  4 zeros,  4 ones ...
-   static const unsigned int h01= 0x01010101; //the sum of 256 to the power of 0,1,2,3...
-   x -= (x >> 1) & m1;             //put count of each 2 bits into those 2 bits
-   x = (x & m2) + ((x >> 2) & m2); //put count of each 4 bits into those 4 bits
-   x = (x + (x >> 4)) & m4;        //put count of each 8 bits into those 8 bits
-   return (x * h01) >> 24;  //returns left 8 bits of x + (x<<8) + (x<<16) + (x<<24)
+// Bit builtin's make these assumptions when calling _BitScanForward/Reverse
+// etc. These assumptions are expected to be true for Win32/Win64 which this
+// file supports.
+static_assert(sizeof(unsigned long long) == 8, "");
+static_assert(sizeof(unsigned long) == 4, "");
+static_assert(sizeof(unsigned int) == 4, "");
+
+_LIBCPP_ALWAYS_INLINE int __builtin_popcount(unsigned int x)
+{
+  // Binary: 0101...
+  static const unsigned int m1 = 0x55555555;
+  // Binary: 00110011..
+  static const unsigned int m2 = 0x33333333;
+  // Binary:  4 zeros,  4 ones ...
+  static const unsigned int m4 = 0x0f0f0f0f;
+  // The sum of 256 to the power of 0,1,2,3...
+  static const unsigned int h01 = 0x01010101;
+  // Put count of each 2 bits into those 2 bits.
+  x -= (x >> 1) & m1;
+  // Put count of each 4 bits into those 4 bits.
+  x = (x & m2) + ((x >> 2) & m2);
+  // Put count of each 8 bits into those 8 bits.
+  x = (x + (x >> 4)) & m4;
+  // Returns left 8 bits of x + (x<<8) + (x<<16) + (x<<24).
+  return (x * h01) >> 24;
 }
 
-_LIBCPP_ALWAYS_INLINE int __builtin_popcountl(unsigned long x) {
+_LIBCPP_ALWAYS_INLINE int __builtin_popcountl(unsigned long x)
+{
   return __builtin_popcount(static_cast<int>(x));
 }
 
-_LIBCPP_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x) {
-   static const unsigned long long m1  = 0x5555555555555555; //binary: 0101...
-   static const unsigned long long m2  = 0x3333333333333333; //binary: 00110011..
-   static const unsigned long long m4  = 0x0f0f0f0f0f0f0f0f; //binary:  4 zeros,  4 ones ...
-   static const unsigned long long h01 = 0x0101010101010101; //the sum of 256 to the power of 0,1,2,3...
-   x -= (x >> 1) & m1;             //put count of each 2 bits into those 2 bits
-   x = (x & m2) + ((x >> 2) & m2); //put count of each 4 bits into those 4 bits
-   x = (x + (x >> 4)) & m4;        //put count of each 8 bits into those 8 bits
-   return static_cast<int>((x * h01)>>56);  //returns left 8 bits of x + (x<<8) + (x<<16) + (x<<24) + ...
+_LIBCPP_ALWAYS_INLINE int __builtin_popcountll(unsigned long long x)
+{
+  // Binary: 0101...
+  static const unsigned long long m1 = 0x5555555555555555;
+  // Binary: 00110011..
+  static const unsigned long long m2 = 0x3333333333333333;
+  // Binary:  4 zeros,  4 ones ...
+  static const unsigned long long m4 = 0x0f0f0f0f0f0f0f0f;
+  // The sum of 256 to the power of 0,1,2,3...
+  static const unsigned long long h01 = 0x0101010101010101;
+  // Put count of each 2 bits into those 2 bits.
+  x -= (x >> 1) & m1;
+  // Put count of each 4 bits into those 4 bits.
+  x = (x & m2) + ((x >> 2) & m2);
+  // Put count of each 8 bits into those 8 bits.
+  x = (x + (x >> 4)) & m4;
+  // Returns left 8 bits of x + (x<<8) + (x<<16) + (x<<24) + ...
+  return static_cast<int>((x * h01) >> 56);
 }
 
-_LIBCPP_ALWAYS_INLINE int __builtin_ctz( unsigned int x )
+// Returns the number of trailing 0-bits in x, starting at the least significant
+// bit position. If x is 0, the result is undefined.
+_LIBCPP_ALWAYS_INLINE int __builtin_ctzll(unsigned long long mask)
 {
-   DWORD r = 0;
-   _BitScanReverse(&r, x);
-   return static_cast<int>(r);
+  unsigned long where;
+// Search from LSB to MSB for first set bit.
+// Returns zero if no set bit is found.
+#if defined(_WIN64)
+  if (_BitScanForward64(&where, mask))
+    return static_cast<int>(where);
+#elif defined(_WIN32)
+  // Win32 doesn't have _BitScanForward64 so emulate it with two 32 bit calls.
+  // Scan the Low Word.
+  if (_BitScanForward(&where, static_cast<unsigned long>(mask)))
+    return static_cast<int>(where);
+  // Scan the High Word.
+  if (_BitScanForward(&where, static_cast<unsigned long>(mask >> 32)))
+    return static_cast<int>(where + 32); // Create a bit offset from the LSB.
+#else
+#error "Implementation of __builtin_ctzll required"
+#endif
+  return 64;
 }
 
-// sizeof(long) == sizeof(int) on Windows
-_LIBCPP_ALWAYS_INLINE int __builtin_ctzl( unsigned long x )
-{ return __builtin_ctz( static_cast<int>(x) ); }
+_LIBCPP_ALWAYS_INLINE int __builtin_ctzl(unsigned long mask)
+{
+  unsigned long where;
+  // Search from LSB to MSB for first set bit.
+  // Returns zero if no set bit is found.
+  if (_BitScanForward(&where, mask))
+    return static_cast<int>(where);
+  return 32;
+}
 
-_LIBCPP_ALWAYS_INLINE int __builtin_ctzll( unsigned long long x )
+_LIBCPP_ALWAYS_INLINE int __builtin_ctz(unsigned int mask)
 {
-    DWORD r = 0;
-    _BitScanReverse64(&r, x);
-    return static_cast<int>(r);
+  // Win32 and Win64 expectations.
+  static_assert(sizeof(mask) == 4, "");
+  static_assert(sizeof(unsigned long) == 4, "");
+  return __builtin_ctzl(static_cast<unsigned long>(mask));
 }
-_LIBCPP_ALWAYS_INLINE int __builtin_clz( unsigned int x )
+
+// Returns the number of leading 0-bits in x, starting at the most significant
+// bit position. If x is 0, the result is undefined.
+_LIBCPP_ALWAYS_INLINE int __builtin_clzll(unsigned long long mask)
+{
+  unsigned long where;
+// BitScanReverse scans from MSB to LSB for first set bit.
+// Returns 0 if no set bit is found.
+#if defined(_WIN64)
+  if (_BitScanReverse64(&where, mask))
+    return static_cast<int>(63 - where);
+#elif defined(_WIN32)
+  // Scan the high 32 bits.
+  if (_BitScanReverse(&where, static_cast<unsigned long>(mask >> 32)))
+    return static_cast<int>(63 -
+                            (where + 32)); // Create a bit offset from the MSB.
+  // Scan the low 32 bits.
+  if (_BitScanReverse(&where, static_cast<unsigned long>(mask)))
+    return static_cast<int>(63 - where);
+#else
+#error "Implementation of __builtin_clzll required"
+#endif
+  return 64; // Undefined Behavior.
+}
+
+_LIBCPP_ALWAYS_INLINE int __builtin_clzl(unsigned long mask)
 {
-   DWORD r = 0;
-   _BitScanForward(&r, x);
-   return static_cast<int>(r);
+  unsigned long where;
+  // Search from LSB to MSB for first set bit.
+  // Returns zero if no set bit is found.
+  if (_BitScanReverse(&where, mask))
+    return static_cast<int>(31 - where);
+  return 32; // Undefined Behavior.
 }
-// sizeof(long) == sizeof(int) on Windows
-_LIBCPP_ALWAYS_INLINE int __builtin_clzl( unsigned long x )
-{ return __builtin_clz( static_cast<int>(x) ); }
-_LIBCPP_ALWAYS_INLINE int __builtin_clzll( unsigned long long x )
+
+_LIBCPP_ALWAYS_INLINE int __builtin_clz(unsigned int x)
 {
-    DWORD r = 0;
-    _BitScanForward64(&r, x);
-    return static_cast<int>(r);
+  return __builtin_clzl(x);
 }
-#endif // !__clang__
-#endif // _LIBCPP_MSVCRT
+#endif // _LIBCPP_MSVC
 
 #endif // _LIBCPP_SUPPORT_WIN32_SUPPORT_H
index a1a7bcf..3a1752e 100644 (file)
@@ -74,7 +74,7 @@ const unspecified ignore;
 
 template <class... T> tuple<V...>  make_tuple(T&&...); // constexpr in C++14
 template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14
-template <class... T> tuple<T&...> tie(T&...) noexcept;
+template <class... T> tuple<T&...> tie(T&...) noexcept; // constexpr in C++14
 template <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14
   
 // 20.4.1.4, tuple helper classes:
@@ -82,13 +82,15 @@ template <class T> class tuple_size; // undefined
 template <class... T> class tuple_size<tuple<T...>>;
 template <intsize_t I, class T> class tuple_element; // undefined
 template <intsize_t I, class... T> class tuple_element<I, tuple<T...>>;
+template <size_t _Ip, class ..._Tp>
+  using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; // C++14
 
 // 20.4.1.5, element access:
 template <intsize_t I, class... T>
     typename tuple_element<I, tuple<T...>>::type&
     get(tuple<T...>&) noexcept; // constexpr in C++14
 template <intsize_t I, class... T>
-    typename tuple_element<I, tuple<T...>>::type const&
+    typename const tuple_element<I, tuple<T...>>::type &
     get(const tuple<T...>&) noexcept; // constexpr in C++14
 template <intsize_t I, class... T>
     typename tuple_element<I, tuple<T...>>::type&&
@@ -152,6 +154,11 @@ public:
     typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
 };
 
+#if _LIBCPP_STD_VER > 11
+template <size_t _Ip, class ..._Tp>
+using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type;
+#endif
+
 // __tuple_leaf
 
 template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value
@@ -796,7 +803,7 @@ constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept
 // tie
 
 template <class ..._Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 tuple<_Tp&...>
 tie(_Tp&... __t) _NOEXCEPT
 {
@@ -816,13 +823,13 @@ namespace { const __ignore_t<unsigned char> ignore = __ignore_t<unsigned char>()
 template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY reference_wrapper;
 
 template <class _Tp>
-struct ___make_tuple_return
+struct __make_tuple_return_impl
 {
     typedef _Tp type;
 };
 
 template <class _Tp>
-struct ___make_tuple_return<reference_wrapper<_Tp> >
+struct __make_tuple_return_impl<reference_wrapper<_Tp> >
 {
     typedef _Tp& type;
 };
@@ -830,7 +837,7 @@ struct ___make_tuple_return<reference_wrapper<_Tp> >
 template <class _Tp>
 struct __make_tuple_return
 {
-    typedef typename ___make_tuple_return<typename decay<_Tp>::type>::type type;
+    typedef typename __make_tuple_return_impl<typename decay<_Tp>::type>::type type;
 };
 
 template <class... _Tp>
index 0ad7b7f..8f18aa5 100644 (file)
@@ -91,6 +91,7 @@ namespace std
     template <class T> struct is_empty;
     template <class T> struct is_polymorphic;
     template <class T> struct is_abstract;
+    template <class T> struct is_final; // C++14
 
     template <class T, class... Args> struct is_constructible;
     template <class T>                struct is_default_constructible;
@@ -236,10 +237,10 @@ struct _LIBCPP_TYPE_VIS_ONLY integral_constant
     typedef _Tp               value_type;
     typedef integral_constant type;
     _LIBCPP_INLINE_VISIBILITY
-        _LIBCPP_CONSTEXPR operator value_type() const {return value;}
+        _LIBCPP_CONSTEXPR operator value_type() const _NOEXCEPT {return value;}
 #if _LIBCPP_STD_VER > 11
     _LIBCPP_INLINE_VISIBILITY
-         constexpr value_type operator ()() const {return value;}
+         constexpr value_type operator ()() const _NOEXCEPT {return value;}
 #endif
 };
 
@@ -285,58 +286,62 @@ template <class _Tp> using remove_cv_t = typename remove_cv<_Tp>::type;
 
 // is_void
 
-template <class _Tp> struct __is_void       : public false_type {};
-template <>          struct __is_void<void> : public true_type {};
+template <class _Tp> struct __libcpp_is_void       : public false_type {};
+template <>          struct __libcpp_is_void<void> : public true_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_void
-    : public __is_void<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_void<typename remove_cv<_Tp>::type> {};
 
 // __is_nullptr_t
 
-template <class _Tp> struct ____is_nullptr_t       : public false_type {};
-template <>          struct ____is_nullptr_t<nullptr_t> : public true_type {};
+template <class _Tp> struct __is_nullptr_t_impl       : public false_type {};
+template <>          struct __is_nullptr_t_impl<nullptr_t> : public true_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY __is_nullptr_t
-    : public ____is_nullptr_t<typename remove_cv<_Tp>::type> {};
+    : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {};
 
 #if _LIBCPP_STD_VER > 11
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_null_pointer
-    : public ____is_nullptr_t<typename remove_cv<_Tp>::type> {};
+    : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {};
 #endif
 
 // is_integral
 
-template <class _Tp> struct __is_integral                     : public false_type {};
-template <>          struct __is_integral<bool>               : public true_type {};
-template <>          struct __is_integral<char>               : public true_type {};
-template <>          struct __is_integral<signed char>        : public true_type {};
-template <>          struct __is_integral<unsigned char>      : public true_type {};
-template <>          struct __is_integral<wchar_t>            : public true_type {};
+template <class _Tp> struct __libcpp_is_integral                     : public false_type {};
+template <>          struct __libcpp_is_integral<bool>               : public true_type {};
+template <>          struct __libcpp_is_integral<char>               : public true_type {};
+template <>          struct __libcpp_is_integral<signed char>        : public true_type {};
+template <>          struct __libcpp_is_integral<unsigned char>      : public true_type {};
+template <>          struct __libcpp_is_integral<wchar_t>            : public true_type {};
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
-template <>          struct __is_integral<char16_t>           : public true_type {};
-template <>          struct __is_integral<char32_t>           : public true_type {};
+template <>          struct __libcpp_is_integral<char16_t>           : public true_type {};
+template <>          struct __libcpp_is_integral<char32_t>           : public true_type {};
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
-template <>          struct __is_integral<short>              : public true_type {};
-template <>          struct __is_integral<unsigned short>     : public true_type {};
-template <>          struct __is_integral<int>                : public true_type {};
-template <>          struct __is_integral<unsigned int>       : public true_type {};
-template <>          struct __is_integral<long>               : public true_type {};
-template <>          struct __is_integral<unsigned long>      : public true_type {};
-template <>          struct __is_integral<long long>          : public true_type {};
-template <>          struct __is_integral<unsigned long long> : public true_type {};
+template <>          struct __libcpp_is_integral<short>              : public true_type {};
+template <>          struct __libcpp_is_integral<unsigned short>     : public true_type {};
+template <>          struct __libcpp_is_integral<int>                : public true_type {};
+template <>          struct __libcpp_is_integral<unsigned int>       : public true_type {};
+template <>          struct __libcpp_is_integral<long>               : public true_type {};
+template <>          struct __libcpp_is_integral<unsigned long>      : public true_type {};
+template <>          struct __libcpp_is_integral<long long>          : public true_type {};
+template <>          struct __libcpp_is_integral<unsigned long long> : public true_type {};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <>          struct __libcpp_is_integral<__int128_t>         : public true_type {};
+template <>          struct __libcpp_is_integral<__uint128_t>        : public true_type {};
+#endif
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_integral
-    : public __is_integral<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_integral<typename remove_cv<_Tp>::type> {};
 
 // is_floating_point
 
-template <class _Tp> struct __is_floating_point              : public false_type {};
-template <>          struct __is_floating_point<float>       : public true_type {};
-template <>          struct __is_floating_point<double>      : public true_type {};
-template <>          struct __is_floating_point<long double> : public true_type {};
+template <class _Tp> struct __libcpp_is_floating_point              : public false_type {};
+template <>          struct __libcpp_is_floating_point<float>       : public true_type {};
+template <>          struct __libcpp_is_floating_point<double>      : public true_type {};
+template <>          struct __libcpp_is_floating_point<long double> : public true_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_floating_point
-    : public __is_floating_point<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_floating_point<typename remove_cv<_Tp>::type> {};
 
 // is_array
 
@@ -349,11 +354,11 @@ template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY is_array<_Tp[_Np]>
 
 // is_pointer
 
-template <class _Tp> struct __is_pointer       : public false_type {};
-template <class _Tp> struct __is_pointer<_Tp*> : public true_type {};
+template <class _Tp> struct __libcpp_is_pointer       : public false_type {};
+template <class _Tp> struct __libcpp_is_pointer<_Tp*> : public true_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_pointer
-    : public __is_pointer<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_pointer<typename remove_cv<_Tp>::type> {};
 
 // is_reference
 
@@ -417,7 +422,7 @@ template <class _Tp>            struct _LIBCPP_TYPE_VIS_ONLY is_same<_Tp, _Tp> :
 
 // is_function
 
-namespace __is_function_imp
+namespace __libcpp_is_function_imp
 {
 template <class _Tp> char  __test(_Tp*);
 template <class _Tp> __two __test(...);
@@ -429,29 +434,29 @@ template <class _Tp, bool = is_class<_Tp>::value ||
                             is_void<_Tp>::value  ||
                             is_reference<_Tp>::value ||
                             __is_nullptr_t<_Tp>::value >
-struct __is_function
-    : public integral_constant<bool, sizeof(__is_function_imp::__test<_Tp>(__is_function_imp::__source<_Tp>())) == 1>
+struct __libcpp_is_function
+    : public integral_constant<bool, sizeof(__libcpp_is_function_imp::__test<_Tp>(__libcpp_is_function_imp::__source<_Tp>())) == 1>
     {};
-template <class _Tp> struct __is_function<_Tp, true> : public false_type {};
+template <class _Tp> struct __libcpp_is_function<_Tp, true> : public false_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_function
-    : public __is_function<_Tp> {};
+    : public __libcpp_is_function<_Tp> {};
 
 // is_member_function_pointer
 
-template <class _Tp> struct            __is_member_function_pointer             : public false_type {};
-template <class _Tp, class _Up> struct __is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {};
+template <class _Tp> struct            __libcpp_is_member_function_pointer             : public false_type {};
+template <class _Tp, class _Up> struct __libcpp_is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_member_function_pointer
-    : public __is_member_function_pointer<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_member_function_pointer<typename remove_cv<_Tp>::type> {};
 
 // is_member_pointer
 
-template <class _Tp>            struct __is_member_pointer             : public false_type {};
-template <class _Tp, class _Up> struct __is_member_pointer<_Tp _Up::*> : public true_type {};
+template <class _Tp>            struct __libcpp_is_member_pointer             : public false_type {};
+template <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> : public true_type {};
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_member_pointer
-    : public __is_member_pointer<typename remove_cv<_Tp>::type> {};
+    : public __libcpp_is_member_pointer<typename remove_cv<_Tp>::type> {};
 
 // is_member_object_pointer
 
@@ -644,32 +649,32 @@ template <class _Tp> using add_pointer_t = typename add_pointer<_Tp>::type;
 // is_signed
 
 template <class _Tp, bool = is_integral<_Tp>::value>
-struct ___is_signed : public integral_constant<bool, _Tp(-1) < _Tp(0)> {};
+struct __libcpp_is_signed_impl : public integral_constant<bool, _Tp(-1) < _Tp(0)> {};
 
 template <class _Tp>
-struct ___is_signed<_Tp, false> : public true_type {};  // floating point
+struct __libcpp_is_signed_impl<_Tp, false> : public true_type {};  // floating point
 
 template <class _Tp, bool = is_arithmetic<_Tp>::value>
-struct __is_signed : public ___is_signed<_Tp> {};
+struct __libcpp_is_signed : public __libcpp_is_signed_impl<_Tp> {};
 
-template <class _Tp> struct __is_signed<_Tp, false> : public false_type {};
+template <class _Tp> struct __libcpp_is_signed<_Tp, false> : public false_type {};
 
-template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_signed : public __is_signed<_Tp> {};
+template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_signed : public __libcpp_is_signed<_Tp> {};
 
 // is_unsigned
 
 template <class _Tp, bool = is_integral<_Tp>::value>
-struct ___is_unsigned : public integral_constant<bool, _Tp(0) < _Tp(-1)> {};
+struct __libcpp_is_unsigned_impl : public integral_constant<bool, _Tp(0) < _Tp(-1)> {};
 
 template <class _Tp>
-struct ___is_unsigned<_Tp, false> : public false_type {};  // floating point
+struct __libcpp_is_unsigned_impl<_Tp, false> : public false_type {};  // floating point
 
 template <class _Tp, bool = is_arithmetic<_Tp>::value>
-struct __is_unsigned : public ___is_unsigned<_Tp> {};
+struct __libcpp_is_unsigned : public __libcpp_is_unsigned_impl<_Tp> {};
 
-template <class _Tp> struct __is_unsigned<_Tp, false> : public false_type {};
+template <class _Tp> struct __libcpp_is_unsigned<_Tp, false> : public false_type {};
 
-template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_unsigned : public __is_unsigned<_Tp> {};
+template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_unsigned : public __libcpp_is_unsigned<_Tp> {};
 
 // rank
 
@@ -759,6 +764,13 @@ template <class _Tp> struct __libcpp_abstract<_Tp, false> : public false_type {}
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_abstract : public __libcpp_abstract<_Tp> {};
 
+// is_final
+
+#if _LIBCPP_STD_VER > 11 && __has_feature(is_final)
+template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY 
+is_final : public integral_constant<bool, __is_final(_Tp)> {};
+#endif
+
 // is_base_of
 
 #ifdef _LIBCPP_HAS_IS_BASE_OF
@@ -946,7 +958,7 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_empty : public __libcpp_emp
 
 // is_polymorphic
 
-#if __has_feature(is_polymorphic)
+#if __has_feature(is_polymorphic) || defined(_LIBCPP_MSVC)
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY is_polymorphic
@@ -1151,13 +1163,41 @@ template <size_t _Len, class ..._Types> using aligned_union_t = typename aligned
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
+template <class _Tp>
+struct __numeric_type
+{
+   static void __test(...);
+   static float __test(float);
+   static double __test(char);
+   static double __test(int);
+   static double __test(unsigned);
+   static double __test(long);
+   static double __test(unsigned long);
+   static double __test(long long);
+   static double __test(unsigned long long);
+   static double __test(double);
+   static long double __test(long double);
+
+   typedef decltype(__test(declval<_Tp>())) type;
+   static const bool value = !is_same<type, void>::value;
+};
+
+template <>
+struct __numeric_type<void>
+{
+   static const bool value = true;
+};
+
 // __promote
 
 template <class _A1, class _A2 = void, class _A3 = void,
-          bool = (is_arithmetic<_A1>::value || is_void<_A1>::value) &&
-                 (is_arithmetic<_A2>::value || is_void<_A2>::value) &&
-                 (is_arithmetic<_A3>::value || is_void<_A3>::value)>
-class __promote {};
+          bool = __numeric_type<_A1>::value &&
+                 __numeric_type<_A2>::value &&
+                 __numeric_type<_A3>::value>
+class __promote
+{
+    static const bool value = false;
+};
 
 template <class _A1, class _A2, class _A3>
 class __promote<_A1, _A2, _A3, true>
@@ -1168,6 +1208,7 @@ private:
     typedef typename __promote<_A3>::type __type3;
 public:
     typedef decltype(__type1() + __type2() + __type3()) type;
+    static const bool value = true;
 };
 
 template <class _A1, class _A2>
@@ -1178,16 +1219,16 @@ private:
     typedef typename __promote<_A2>::type __type2;
 public:
     typedef decltype(__type1() + __type2()) type;
+    static const bool value = true;
 };
 
 template <class _A1>
 class __promote<_A1, void, void, true>
 {
 public:
-    typedef typename conditional<is_arithmetic<_A1>::value,
-                     typename conditional<is_integral<_A1>::value, double, _A1>::type,
-                     void
-            >::type type;
+    typedef typename __numeric_type<_A1>::type type;
+    static const bool value = true;
+    static const bool __does_not_throw = _NOEXCEPT_OR_FALSE(static_cast<type>(declval<_A1>()));
 };
 
 #ifdef _LIBCPP_STORE_AS_OPTIMIZATION
@@ -1210,7 +1251,13 @@ typedef
     __type_list<signed int,
     __type_list<signed long,
     __type_list<signed long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__int128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __signed_types;
 
 typedef
@@ -1219,7 +1266,13 @@ typedef
     __type_list<unsigned int,
     __type_list<unsigned long,
     __type_list<unsigned long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__uint128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __unsigned_types;
 
 template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
@@ -1303,6 +1356,10 @@ template <> struct __make_signed<  signed long,      true> {typedef long      ty
 template <> struct __make_signed<unsigned long,      true> {typedef long      type;};
 template <> struct __make_signed<  signed long long, true> {typedef long long type;};
 template <> struct __make_signed<unsigned long long, true> {typedef long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_signed<__int128_t,         true> {typedef __int128_t type;};
+template <> struct __make_signed<__uint128_t,        true> {typedef __int128_t type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_signed
@@ -1332,6 +1389,10 @@ template <> struct __make_unsigned<  signed long,      true> {typedef unsigned l
 template <> struct __make_unsigned<unsigned long,      true> {typedef unsigned long      type;};
 template <> struct __make_unsigned<  signed long long, true> {typedef unsigned long long type;};
 template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_unsigned<__int128_t,         true> {typedef __uint128_t        type;};
+template <> struct __make_unsigned<__uint128_t,        true> {typedef __uint128_t        type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_unsigned
@@ -1356,7 +1417,7 @@ template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp, void, void>
 {
 public:
-    typedef _Tp type;
+    typedef typename decay<_Tp>::type type;
 };
 
 template <class _Tp, class _Up>
@@ -1988,7 +2049,7 @@ false_type
 __is_constructible_test(__any, _Args&& ...);
 
 template <bool, class _Tp, class... _Args>
-struct __is_constructible // false, _Tp is not a scalar
+struct __libcpp_is_constructible // false, _Tp is not a scalar
     : public common_type
              <
                  decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...))
@@ -1998,7 +2059,7 @@ struct __is_constructible // false, _Tp is not a scalar
 //      function types are not constructible
 
 template <class _Rp, class... _A1, class... _A2>
-struct __is_constructible<false, _Rp(_A1...), _A2...>
+struct __libcpp_is_constructible<false, _Rp(_A1...), _A2...>
     : public false_type
     {};
 
@@ -2007,7 +2068,7 @@ struct __is_constructible<false, _Rp(_A1...), _A2...>
 //      Scalars are default constructible, references are not
 
 template <class _Tp>
-struct __is_constructible<true, _Tp>
+struct __libcpp_is_constructible<true, _Tp>
     : public is_scalar<_Tp>
     {};
 
@@ -2022,7 +2083,7 @@ struct __is_constructible_ref
 };
 
 template <class _Tp, class _A0>
-struct __is_constructible<true, _Tp, _A0>
+struct __libcpp_is_constructible<true, _Tp, _A0>
     : public common_type
              <
                  decltype(__is_constructible_ref<_Tp>::__lxx(declval<_A0>()))
@@ -2032,7 +2093,7 @@ struct __is_constructible<true, _Tp, _A0>
 //      Scalars and references are not constructible from multiple args.
 
 template <class _Tp, class _A0, class ..._Args>
-struct __is_constructible<true, _Tp, _A0, _Args...>
+struct __libcpp_is_constructible<true, _Tp, _A0, _Args...>
     : public false_type
     {};
 
@@ -2040,7 +2101,7 @@ struct __is_constructible<true, _Tp, _A0, _Args...>
 
 template <bool, class _Tp, class... _Args>
 struct __is_constructible_void_check
-    : public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
+    : public __libcpp_is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
                                 _Tp, _Args...>
     {};
 
@@ -2075,21 +2136,21 @@ struct _LIBCPP_TYPE_VIS_ONLY is_constructible
 //      is default constructible
 
 template <class _Ap, size_t _Np>
-struct __is_constructible<false, _Ap[_Np]>
+struct __libcpp_is_constructible<false, _Ap[_Np]>
     : public is_constructible<typename remove_all_extents<_Ap>::type>
     {};
 
 //      Otherwise array types are not constructible by this syntax
 
 template <class _Ap, size_t _Np, class ..._Args>
-struct __is_constructible<false, _Ap[_Np], _Args...>
+struct __libcpp_is_constructible<false, _Ap[_Np], _Args...>
     : public false_type
     {};
 
 //      Incomplete array types are not constructible
 
 template <class _Ap, class ..._Args>
-struct __is_constructible<false, _Ap[], _Args...>
+struct __libcpp_is_constructible<false, _Ap[], _Args...>
     : public false_type
     {};
 
@@ -2530,29 +2591,29 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_destructible
 
 #if __has_feature(cxx_noexcept)
 
-template <bool, class _Tp, class... _Args> struct __is_nothrow_constructible;
+template <bool, class _Tp, class... _Args> struct __libcpp_is_nothrow_constructible;
 
 template <class _Tp, class... _Args>
-struct __is_nothrow_constructible<true, _Tp, _Args...>
+struct __libcpp_is_nothrow_constructible<true, _Tp, _Args...>
     : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>
 {
 };
 
 template <class _Tp, class... _Args>
-struct __is_nothrow_constructible<false, _Tp, _Args...>
+struct __libcpp_is_nothrow_constructible<false, _Tp, _Args...>
     : public false_type
 {
 };
 
 template <class _Tp, class... _Args>
 struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible
-    : __is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...>
+    : __libcpp_is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...>
 {
 };
 
 template <class _Tp, size_t _Ns>
 struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp[_Ns]>
-    : __is_nothrow_constructible<is_constructible<_Tp>::value, _Tp>
+    : __libcpp_is_nothrow_constructible<is_constructible<_Tp>::value, _Tp>
 {
 };
 
@@ -2691,23 +2752,23 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_move_constructible
 
 #if __has_feature(cxx_noexcept)
 
-template <bool, class _Tp, class _Arg> struct __is_nothrow_assignable;
+template <bool, class _Tp, class _Arg> struct __libcpp_is_nothrow_assignable;
 
 template <class _Tp, class _Arg>
-struct __is_nothrow_assignable<false, _Tp, _Arg>
+struct __libcpp_is_nothrow_assignable<false, _Tp, _Arg>
     : public false_type
 {
 };
 
 template <class _Tp, class _Arg>
-struct __is_nothrow_assignable<true, _Tp, _Arg>
+struct __libcpp_is_nothrow_assignable<true, _Tp, _Arg>
     : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>() = _VSTD::declval<_Arg>()) >
 {
 };
 
 template <class _Tp, class _Arg>
 struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable
-    : public __is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg>
+    : public __libcpp_is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg>
 {
 };
 
@@ -2777,23 +2838,23 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_move_assignable
 
 #if __has_feature(cxx_noexcept)
 
-template <bool, class _Tp> struct __is_nothrow_destructible;
+template <bool, class _Tp> struct __libcpp_is_nothrow_destructible;
 
 template <class _Tp>
-struct __is_nothrow_destructible<false, _Tp>
+struct __libcpp_is_nothrow_destructible<false, _Tp>
     : public false_type
 {
 };
 
 template <class _Tp>
-struct __is_nothrow_destructible<true, _Tp>
+struct __libcpp_is_nothrow_destructible<true, _Tp>
     : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>().~_Tp()) >
 {
 };
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible
-    : public __is_nothrow_destructible<is_destructible<_Tp>::value, _Tp>
+    : public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp>
 {
 };
 
@@ -3050,7 +3111,7 @@ template <class _Fp, class _A0, class ..._Args,
             class = typename enable_if
             <
                 is_member_function_pointer<typename remove_reference<_Fp>::type>::value &&
-                is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
+                is_base_of<typename remove_reference<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType>::type,
                            typename remove_reference<_A0>::type>::value
             >::type
          >
@@ -3063,7 +3124,7 @@ template <class _Fp, class _A0, class ..._Args,
             class = typename enable_if
             <
                 is_member_function_pointer<typename remove_reference<_Fp>::type>::value &&
-                !is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
+                !is_base_of<typename remove_reference<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType>::type,
                            typename remove_reference<_A0>::type>::value
             >::type
          >
index 6ffee0f..14ef77b 100644 (file)
@@ -60,6 +60,7 @@ public:
 #include <__config>
 #include <exception>
 #include <cstddef>
+#include <cstdint>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
@@ -73,32 +74,75 @@ class _LIBCPP_EXCEPTION_ABI type_info
     type_info& operator=(const type_info&);
     type_info(const type_info&);
 protected:
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
     const char* __type_name;
+#else
+    // A const char* with the non-unique RTTI bit possibly set.
+    uintptr_t __type_name;
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     explicit type_info(const char* __n)
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         : __type_name(__n) {}
+#else
+        : __type_name(reinterpret_cast<uintptr_t>(__n)) {}
+#endif
 
 public:
     virtual ~type_info();
 
     _LIBCPP_INLINE_VISIBILITY
-    const char* name() const _NOEXCEPT {return __type_name;}
+    const char* name() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
+        {return __type_name;}
+#else
+        {return reinterpret_cast<const char*>(__type_name & ~_LIBCPP_NONUNIQUE_RTTI_BIT);}
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     bool before(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return __type_name < __arg.__type_name;}
+#else
+        {if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+           return __type_name < __arg.__type_name;
+         return __compare_nonunique_names(__arg) < 0;}
+#endif
+
     _LIBCPP_INLINE_VISIBILITY
     size_t hash_code() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return *reinterpret_cast<const size_t*>(&__type_name);}
+#else
+        {if (!(__type_name & _LIBCPP_NONUNIQUE_RTTI_BIT)) return __type_name;
+         const char *__ptr = name();
+         size_t __hash = 5381;
+         while (unsigned char __c = static_cast<unsigned char>(*__ptr++))
+           __hash = (__hash * 33) ^ __c;
+         return __hash;}
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     bool operator==(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return __type_name == __arg.__type_name;}
+#else
+        {if (__type_name == __arg.__type_name) return true;
+         if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+           return false;
+         return __compare_nonunique_names(__arg) == 0;}
+#endif
     _LIBCPP_INLINE_VISIBILITY
     bool operator!=(const type_info& __arg) const _NOEXCEPT
         {return !operator==(__arg);}
 
+#ifdef _LIBCPP_NONUNIQUE_RTTI_BIT
+  private:
+    _LIBCPP_INLINE_VISIBILITY
+    int __compare_nonunique_names(const type_info &__arg) const _NOEXCEPT
+        {return __builtin_strcmp(name(), __arg.name());}
+#endif
 };
 
 class _LIBCPP_EXCEPTION_ABI bad_cast
index 78fee48..4e2298b 100644 (file)
@@ -831,12 +831,14 @@ public:
 #if __cplusplus >= 201103L
         __table_ = __u.__table_;
 #else
-        __table_.clear();
-        __table_.hash_function() = __u.__table_.hash_function();
-        __table_.key_eq() = __u.__table_.key_eq();
-        __table_.max_load_factor() = __u.__table_.max_load_factor();
-        __table_.__copy_assign_alloc(__u.__table_);
-        insert(__u.begin(), __u.end());
+        if (this != &__u) {
+            __table_.clear();
+            __table_.hash_function() = __u.__table_.hash_function();
+            __table_.key_eq() = __u.__table_.key_eq();
+            __table_.max_load_factor() = __u.__table_.max_load_factor();
+            __table_.__copy_assign_alloc(__u.__table_);
+            insert(__u.begin(), __u.end());
+        }
 #endif
         return *this;
     }
@@ -1567,12 +1569,14 @@ public:
 #if __cplusplus >= 201103L
         __table_ = __u.__table_;
 #else
-        __table_.clear();
-        __table_.hash_function() = __u.__table_.hash_function();
-        __table_.key_eq() = __u.__table_.key_eq();
-        __table_.max_load_factor() = __u.__table_.max_load_factor();
-        __table_.__copy_assign_alloc(__u.__table_);
-        insert(__u.begin(), __u.end());
+        if (this != &__u) {
+            __table_.clear();
+            __table_.hash_function() = __u.__table_.hash_function();
+            __table_.key_eq() = __u.__table_.key_eq();
+            __table_.max_load_factor() = __u.__table_.max_load_factor();
+            __table_.__copy_assign_alloc(__u.__table_);
+            insert(__u.begin(), __u.end());
+        }
 #endif
         return *this;
     }
index 2c1f62c..8a7e1dc 100644 (file)
@@ -101,30 +101,30 @@ constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
 template <class T> class tuple_size;
 template <size_t I, class T> class tuple_element;
 
-template <class T1, class T2> struct tuple_size<std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<0, std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<1, std::pair<T1, T2> >;
+template <class T1, class T2> struct tuple_size<pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<0, pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<1, pair<T1, T2> >;
 
 template<size_t I, class T1, class T2>
-    typename tuple_element<I, std::pair<T1, T2> >::type&
-    get(std::pair<T1, T2>&) noexcept; // constexpr in C++14
+    typename tuple_element<I, pair<T1, T2> >::type&
+    get(pair<T1, T2>&) noexcept; // constexpr in C++14
 
 template<size_t I, class T1, class T2>
-    const typename const tuple_element<I, std::pair<T1, T2> >::type&
-    get(const std::pair<T1, T2>&) noexcept; // constexpr in C++14
+    const typename const tuple_element<I, pair<T1, T2> >::type&
+    get(const pair<T1, T2>&) noexcept; // constexpr in C++14
 
 template<size_t I, class T1, class T2>
-    typename tuple_element<I, std::pair<T1, T2> >::type&&
-    get(std::pair<T1, T2>&&) noexcept; // constexpr in C++14
+    typename tuple_element<I, pair<T1, T2> >::type&&
+    get(pair<T1, T2>&&) noexcept; // constexpr in C++14
 
 template<class T1, class T2>
-    constexpr T1& get(std::pair<T1, T2>&) noexcept; // C++14
+    constexpr T1& get(pair<T1, T2>&) noexcept; // C++14
 
 template<size_t I, class T1, class T2>
-    constexpr T1 const& get(std::pair<T1, T2> const &) noexcept; // C++14
+    constexpr T1 const& get(pair<T1, T2> const &) noexcept; // C++14
 
 template<size_t I, class T1, class T2>
-    constexpr T1&& get(std::pair<T1, T2>&&) noexcept; // C++14
+    constexpr T1&& get(pair<T1, T2>&&) noexcept; // C++14
 
 // C++14
 
@@ -465,13 +465,13 @@ swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
 template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY reference_wrapper;
 
 template <class _Tp>
-struct ___make_pair_return
+struct __make_pair_return_impl
 {
     typedef _Tp type;
 };
 
 template <class _Tp>
-struct ___make_pair_return<reference_wrapper<_Tp>>
+struct __make_pair_return_impl<reference_wrapper<_Tp>>
 {
     typedef _Tp& type;
 };
@@ -479,7 +479,7 @@ struct ___make_pair_return<reference_wrapper<_Tp>>
 template <class _Tp>
 struct __make_pair_return
 {
-    typedef typename ___make_pair_return<typename decay<_Tp>::type>::type type;
+    typedef typename __make_pair_return_impl<typename decay<_Tp>::type>::type type;
 };
 
 template <class _T1, class _T2>
index af6b466..7e42c1b 100755 (executable)
@@ -17,6 +17,11 @@ then
     CXX=clang++
 fi
 
+if [ -z "$CXX_LANG" ]
+then
+    CXX_LANG=c++11
+fi
+
 if [ -z "$CC" ]
 then
     CC=clang
@@ -35,7 +40,7 @@ then
   RC_ProjectSourceVersion=1
 fi
 
-EXTRA_FLAGS="-nostdinc++ -std=c++11 -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion \
+EXTRA_FLAGS="-nostdinc++ -std=${CXX_LANG} -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion \
              -Wpadded -Wstrict-aliasing=2 -Wstrict-overflow=4 "
 
 case $TRIPLE in
@@ -58,7 +63,7 @@ case $TRIPLE in
     else
         if [ -n "$SDKROOT" ]
         then
-            EXTRA_FLAGS+="-nostdinc++ -isysroot ${SDKROOT}"
+            EXTRA_FLAGS+="-isysroot ${SDKROOT} "
             if echo "${RC_ARCHS}" | grep -q "armv7"  
             then
                 RE_EXPORT_LINE="${SDKROOT}/usr/lib/libc++abi.dylib -Wl,-reexported_symbols_list,libc++sjlj-abi.exp"
index de0f6f4..061d138 100644 (file)
@@ -32,7 +32,7 @@ condition_variable::notify_all() _NOEXCEPT
 }
 
 void
-condition_variable::wait(unique_lock<mutex>& lk)
+condition_variable::wait(unique_lock<mutex>& lk) _NOEXCEPT
 {
     if (!lk.owns_lock())
         __throw_system_error(EPERM,
@@ -44,7 +44,7 @@ condition_variable::wait(unique_lock<mutex>& lk)
 
 void
 condition_variable::__do_timed_wait(unique_lock<mutex>& lk,
-               chrono::time_point<chrono::system_clock, chrono::nanoseconds> tp)
+     chrono::time_point<chrono::system_clock, chrono::nanoseconds> tp) _NOEXCEPT
 {
     using namespace chrono;
     if (!lk.owns_lock())
index bbe3c07..7019eb4 100644 (file)
@@ -134,7 +134,7 @@ locale
 ios_base::imbue(const locale& newloc)
 {
     static_assert(sizeof(locale) == sizeof(__loc_), "");
-    locale& loc_storage = *(locale*)&__loc_;
+    locale& loc_storage = *reinterpret_cast<locale*>(&__loc_);
     locale oldloc = loc_storage;
     loc_storage = newloc;
     __call_callbacks(imbue_event);
@@ -144,7 +144,7 @@ ios_base::imbue(const locale& newloc)
 locale
 ios_base::getloc() const
 {
-    const locale& loc_storage = *(locale*)&__loc_;
+    const locale& loc_storage = *reinterpret_cast<const locale*>(&__loc_);
     return loc_storage;
 }
 
@@ -173,7 +173,8 @@ ios_base::iword(int index)
             newcap = _VSTD::max(2 * __iarray_cap_, req_size);
         else
             newcap = mx;
-        long* iarray = (long*)realloc(__iarray_, newcap * sizeof(long));
+        size_t newsize = newcap * sizeof(long);
+        long* iarray = static_cast<long*>(realloc(__iarray_, newsize));
         if (iarray == 0)
         {
             setstate(badbit);
@@ -201,7 +202,8 @@ ios_base::pword(int index)
             newcap = _VSTD::max(2 * __parray_cap_, req_size);
         else
             newcap = mx;
-        void** parray = (void**)realloc(__parray_, newcap * sizeof(void*));
+        size_t newsize = newcap * sizeof(void*);
+        void** parray = static_cast<void**>(realloc(__parray_, newsize));
         if (parray == 0)
         {
             setstate(badbit);
@@ -231,11 +233,13 @@ ios_base::register_callback(event_callback fn, int index)
             newcap = _VSTD::max(2 * __event_cap_, req_size);
         else
             newcap = mx;
-        event_callback* fns = (event_callback*)realloc(__fn_, newcap * sizeof(event_callback));
+        size_t newesize = newcap * sizeof(event_callback);
+        event_callback* fns = static_cast<event_callback*>(realloc(__fn_, newesize));
         if (fns == 0)
             setstate(badbit);
         __fn_ = fns;
-        int* indxs = (int*)realloc(__index_, newcap * sizeof(int));
+        size_t newisize = newcap * sizeof(int);
+        int* indxs = static_cast<int *>(realloc(__index_, newisize));
         if (indxs == 0)
             setstate(badbit);
         __index_ = indxs;
@@ -248,7 +252,7 @@ ios_base::register_callback(event_callback fn, int index)
 ios_base::~ios_base()
 {
     __call_callbacks(erase_event);
-    locale& loc_storage = *(locale*)&__loc_;
+    locale& loc_storage = *reinterpret_cast<locale*>(&__loc_);
     loc_storage.~locale();
     free(__fn_);
     free(__index_);
@@ -306,12 +310,15 @@ ios_base::copyfmt(const ios_base& rhs)
     unique_ptr<void*, void (*)(void*)> new_pointers(0, free);
     if (__event_cap_ < rhs.__event_size_)
     {
-        new_callbacks.reset((event_callback*)malloc(sizeof(event_callback) * rhs.__event_size_));
+        size_t newesize = sizeof(event_callback) * rhs.__event_size_;
+        new_callbacks.reset(static_cast<event_callback*>(malloc(newesize)));
 #ifndef _LIBCPP_NO_EXCEPTIONS
         if (!new_callbacks)
             throw bad_alloc();
 #endif  // _LIBCPP_NO_EXCEPTIONS
-        new_ints.reset((int*)malloc(sizeof(int) * rhs.__event_size_));
+
+        size_t newisize = sizeof(int) * rhs.__event_size_;
+        new_ints.reset(static_cast<int *>(malloc(newisize)));
 #ifndef _LIBCPP_NO_EXCEPTIONS
         if (!new_ints)
             throw bad_alloc();
@@ -319,7 +326,8 @@ ios_base::copyfmt(const ios_base& rhs)
     }
     if (__iarray_cap_ < rhs.__iarray_size_)
     {
-        new_longs.reset((long*)malloc(sizeof(long) * rhs.__iarray_size_));
+        size_t newsize = sizeof(long) * rhs.__iarray_size_;
+        new_longs.reset(static_cast<long*>(malloc(newsize)));
 #ifndef _LIBCPP_NO_EXCEPTIONS
         if (!new_longs)
             throw bad_alloc();
@@ -327,7 +335,8 @@ ios_base::copyfmt(const ios_base& rhs)
     }
     if (__parray_cap_ < rhs.__parray_size_)
     {
-        new_pointers.reset((void**)malloc(sizeof(void*) * rhs.__parray_size_));
+        size_t newsize = sizeof(void*) * rhs.__parray_size_;
+        new_pointers.reset(static_cast<void**>(malloc(newsize)));
 #ifndef _LIBCPP_NO_EXCEPTIONS
         if (!new_pointers)
             throw bad_alloc();
@@ -337,8 +346,8 @@ ios_base::copyfmt(const ios_base& rhs)
     __fmtflags_ = rhs.__fmtflags_;
     __precision_ = rhs.__precision_;
     __width_ = rhs.__width_;
-    locale& lhs_loc = *(locale*)&__loc_;
-    locale& rhs_loc = *(locale*)&rhs.__loc_;
+    locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_);
+    const locale& rhs_loc = *reinterpret_cast<const locale*>(&rhs.__loc_);
     lhs_loc = rhs_loc;
     if (__event_cap_ < rhs.__event_size_)
     {
@@ -381,7 +390,7 @@ ios_base::move(ios_base& rhs)
     __rdstate_ = rhs.__rdstate_;
     __exceptions_ = rhs.__exceptions_;
     __rdbuf_ = 0;
-    locale& rhs_loc = *(locale*)&rhs.__loc_;
+    locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_);
     ::new(&__loc_) locale(rhs_loc);
     __fn_ = rhs.__fn_;
     rhs.__fn_ = 0;
@@ -413,8 +422,8 @@ ios_base::swap(ios_base& rhs) _NOEXCEPT
     _VSTD::swap(__width_, rhs.__width_);
     _VSTD::swap(__rdstate_, rhs.__rdstate_);
     _VSTD::swap(__exceptions_, rhs.__exceptions_);
-    locale& lhs_loc = *(locale*)&__loc_;
-    locale& rhs_loc = *(locale*)&rhs.__loc_;
+    locale& lhs_loc = *reinterpret_cast<locale*>(&__loc_);
+    locale& rhs_loc = *reinterpret_cast<locale*>(&rhs.__loc_);
     _VSTD::swap(lhs_loc, rhs_loc);
     _VSTD::swap(__fn_, rhs.__fn_);
     _VSTD::swap(__index_, rhs.__index_);
index 8e7fdb4..4877f2b 100644 (file)
@@ -68,7 +68,7 @@ make(A0 a0)
 {
     static typename aligned_storage<sizeof(T)>::type buf;
     ::new (&buf) T(a0);
-    return *(T*)&buf;
+    return *reinterpret_cast<T*>(&buf);
 }
 
 template <class T, class A0, class A1>
@@ -78,7 +78,7 @@ make(A0 a0, A1 a1)
 {
     static typename aligned_storage<sizeof(T)>::type buf;
     ::new (&buf) T(a0, a1);
-    return *(T*)&buf;
+    return *reinterpret_cast<T*>(&buf);
 }
 
 template <class T, class A0, class A1, class A2>
@@ -88,7 +88,7 @@ make(A0 a0, A1 a1, A2 a2)
 {
     static typename aligned_storage<sizeof(T)>::type buf;
     ::new (&buf) T(a0, a1, a2);
-    return *(T*)&buf;
+    return *reinterpret_cast<T*>(&buf);
 }
 
 template <typename T, size_t N>
@@ -177,7 +177,7 @@ locale::__imp::__imp(size_t refs)
     facets_.clear();
     install(&make<_VSTD::collate<char> >(1u));
     install(&make<_VSTD::collate<wchar_t> >(1u));
-    install(&make<_VSTD::ctype<char> >((ctype_base::mask*)0, false, 1u));
+    install(&make<_VSTD::ctype<char> >(nullptr, false, 1u));
     install(&make<_VSTD::ctype<wchar_t> >(1u));
     install(&make<codecvt<char, char, mbstate_t> >(1u));
     install(&make<codecvt<wchar_t, char, mbstate_t> >(1u));
@@ -461,7 +461,7 @@ locale::__imp::make_classic()
 {
     // only one thread can get in here and it only gets in once
     static aligned_storage<sizeof(locale)>::type buf;
-    locale* c = (locale*)&buf;
+    locale* c = reinterpret_cast<locale*>(&buf);
     c->__locale_ = &make<__imp>(1u);
     return *c;
 }
@@ -479,7 +479,7 @@ locale::__imp::make_global()
     // only one thread can get in here and it only gets in once
     static aligned_storage<sizeof(locale)>::type buf;
     ::new (&buf) locale(locale::classic());
-    return *(locale*)&buf;
+    return *reinterpret_cast<locale*>(&buf);
 }
 
 locale&
@@ -1615,9 +1615,9 @@ int
 codecvt<wchar_t, char, mbstate_t>::do_encoding() const  _NOEXCEPT
 {
 #ifdef _LIBCPP_LOCALE__L_EXTENSIONS
-    if (mbtowc_l((wchar_t*) 0, (const char*) 0, MB_LEN_MAX, __l) == 0)
+    if (mbtowc_l(nullptr, nullptr, MB_LEN_MAX, __l) == 0)
 #else
-    if (__mbtowc_l((wchar_t*) 0, (const char*) 0, MB_LEN_MAX, __l) == 0)
+    if (__mbtowc_l(nullptr, nullptr, MB_LEN_MAX, __l) == 0)
 #endif
     {
         // stateless encoding
@@ -1743,8 +1743,8 @@ utf16_to_utf8(const uint16_t* frm, const uint16_t* frm_end, const uint16_t*& frm
                 return codecvt_base::error;
             if (to_end-to_nxt < 4)
                 return codecvt_base::partial;
-            if ((((((unsigned long)wc1 & 0x03C0) >> 6) + 1) << 16) +
-                (((unsigned long)wc1 & 0x003F) << 10) + (wc2 & 0x03FF) > Maxcode)
+            if (((((wc1 & 0x03C0UL) >> 6) + 1) << 16) +
+                ((wc1 & 0x003FUL) << 10) + (wc2 & 0x03FF) > Maxcode)
                 return codecvt_base::error;
             ++frm_nxt;
             uint8_t z = ((wc1 & 0x03C0) >> 6) + 1;
@@ -1820,8 +1820,8 @@ utf16_to_utf8(const uint32_t* frm, const uint32_t* frm_end, const uint32_t*& frm
                 return codecvt_base::error;
             if (to_end-to_nxt < 4)
                 return codecvt_base::partial;
-            if ((((((unsigned long)wc1 & 0x03C0) >> 6) + 1) << 16) +
-                (((unsigned long)wc1 & 0x003F) << 10) + (wc2 & 0x03FF) > Maxcode)
+            if (((((wc1 & 0x03C0UL) >> 6) + 1) << 16) +
+                ((wc1 & 0x003FUL) << 10) + (wc2 & 0x03FF) > Maxcode)
                 return codecvt_base::error;
             ++frm_nxt;
             uint8_t z = ((wc1 & 0x03C0) >> 6) + 1;
@@ -1944,9 +1944,9 @@ utf8_to_utf16(const uint8_t* frm, const uint8_t* frm_end, const uint8_t*& frm_nx
                 return codecvt_base::error;
             if (to_end-to_nxt < 2)
                 return codecvt_base::partial;
-            if (((((unsigned long)c1 & 7) << 18) +
-                (((unsigned long)c2 & 0x3F) << 12) +
-                (((unsigned long)c3 & 0x3F) << 6) + (c4 & 0x3F)) > Maxcode)
+            if ((((c1 & 7UL) << 18) +
+                ((c2 & 0x3FUL) << 12) +
+                ((c3 & 0x3FUL) << 6) + (c4 & 0x3F)) > Maxcode)
                 return codecvt_base::error;
             *to_nxt = static_cast<uint16_t>(
                     0xD800
@@ -2065,9 +2065,9 @@ utf8_to_utf16(const uint8_t* frm, const uint8_t* frm_end, const uint8_t*& frm_nx
                 return codecvt_base::error;
             if (to_end-to_nxt < 2)
                 return codecvt_base::partial;
-            if (((((unsigned long)c1 & 7) << 18) +
-                (((unsigned long)c2 & 0x3F) << 12) +
-                (((unsigned long)c3 & 0x3F) << 6) + (c4 & 0x3F)) > Maxcode)
+            if ((((c1 & 7UL) << 18) +
+                ((c2 & 0x3FUL) << 12) +
+                ((c3 & 0x3FUL) << 6) + (c4 & 0x3F)) > Maxcode)
                 return codecvt_base::error;
             *to_nxt = static_cast<uint32_t>(
                     0xD800
@@ -2174,9 +2174,9 @@ utf8_to_utf16_length(const uint8_t* frm, const uint8_t* frm_end,
             }
             if ((c3 & 0xC0) != 0x80 || (c4 & 0xC0) != 0x80)
                 break;
-            if (((((unsigned long)c1 & 7) << 18) +
-                (((unsigned long)c2 & 0x3F) << 12) +
-                (((unsigned long)c3 & 0x3F) << 6) + (c4 & 0x3F)) > Maxcode)
+            if ((((c1 & 7UL) << 18) +
+                ((c2 & 0x3FUL) << 12) +
+                ((c3 & 0x3FUL) << 6) + (c4 & 0x3F)) > Maxcode)
                 break;
             ++nchar16_t;
             frm_nxt += 4;
index 98bcc86..666673f 100644 (file)
@@ -208,7 +208,7 @@ align(size_t alignment, size_t size, void*& ptr, size_t& space)
     if (size <= space)
     {
         char* p1 = static_cast<char*>(ptr);
-        char* p2 = (char*)((size_t)(p1 + (alignment - 1)) & -alignment);
+        char* p2 = reinterpret_cast<char*>(reinterpret_cast<size_t>(p1 + (alignment - 1)) & -alignment);
         size_t d = static_cast<size_t>(p2 - p1);
         if (d <= space - size)
         {
index f4998cf..3b7c341 100644 (file)
@@ -167,7 +167,7 @@ set_new_handler(new_handler handler) _NOEXCEPT
 new_handler
 get_new_handler() _NOEXCEPT
 {
-    return __sync_fetch_and_add(&__new_handler, (new_handler)0);
+    return __sync_fetch_and_add(&__new_handler, nullptr);
 }
 
 #endif // !__GLIBCXX__
index 5fb22e4..dd78a16 100644 (file)
@@ -12,7 +12,7 @@
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
-shared_mutex::shared_mutex()
+shared_timed_mutex::shared_timed_mutex()
     : __state_(0)
 {
 }
@@ -20,7 +20,7 @@ shared_mutex::shared_mutex()
 // Exclusive ownership
 
 void
-shared_mutex::lock()
+shared_timed_mutex::lock()
 {
     unique_lock<mutex> lk(__mut_);
     while (__state_ & __write_entered_)
@@ -31,7 +31,7 @@ shared_mutex::lock()
 }
 
 bool
-shared_mutex::try_lock()
+shared_timed_mutex::try_lock()
 {
     unique_lock<mutex> lk(__mut_);
     if (__state_ == 0)
@@ -43,7 +43,7 @@ shared_mutex::try_lock()
 }
 
 void
-shared_mutex::unlock()
+shared_timed_mutex::unlock()
 {
     lock_guard<mutex> _(__mut_);
     __state_ = 0;
@@ -53,7 +53,7 @@ shared_mutex::unlock()
 // Shared ownership
 
 void
-shared_mutex::lock_shared()
+shared_timed_mutex::lock_shared()
 {
     unique_lock<mutex> lk(__mut_);
     while ((__state_ & __write_entered_) || (__state_ & __n_readers_) == __n_readers_)
@@ -64,7 +64,7 @@ shared_mutex::lock_shared()
 }
 
 bool
-shared_mutex::try_lock_shared()
+shared_timed_mutex::try_lock_shared()
 {
     unique_lock<mutex> lk(__mut_);
     unsigned num_readers = __state_ & __n_readers_;
@@ -79,7 +79,7 @@ shared_mutex::try_lock_shared()
 }
 
 void
-shared_mutex::unlock_shared()
+shared_timed_mutex::unlock_shared()
 {
     lock_guard<mutex> _(__mut_);
     unsigned num_readers = (__state_ & __n_readers_) - 1;
index a4207d6..ec7f666 100644 (file)
@@ -46,7 +46,7 @@ private:
     static const std::ptrdiff_t offset = static_cast<std::ptrdiff_t>(2*sizeof(unused_t) +
                                                                        sizeof(count_t));
 
-    count_t& count() const _NOEXCEPT {return (count_t&)(*(str_ - sizeof(count_t)));}
+    count_t& count() const _NOEXCEPT {return *const_cast<count_t *>(reinterpret_cast<const count_t *>(str_ - sizeof(count_t)));}
 public:
     explicit __libcpp_nmstr(const char* msg);
     __libcpp_nmstr(const __libcpp_nmstr& s) _NOEXCEPT;
@@ -59,7 +59,7 @@ __libcpp_nmstr::__libcpp_nmstr(const char* msg)
 {
     std::size_t len = strlen(msg);
     str_ = new char[len + 1 + offset];
-    unused_t* c = (unused_t*)str_;
+    unused_t* c = reinterpret_cast<unused_t*>(const_cast<char *>(str_));
     c[0] = c[1] = len;
     str_ += offset;
     count() = 0;
@@ -79,7 +79,7 @@ __libcpp_nmstr::operator=(const __libcpp_nmstr& s) _NOEXCEPT
     const char* p = str_;
     str_ = s.str_;
     __sync_add_and_fetch(&count(), 1);
-    if (__sync_add_and_fetch((count_t*)(p-sizeof(count_t)), count_t(-1)) < 0)
+    if (__sync_add_and_fetch(reinterpret_cast<count_t*>(const_cast<char*>(p)-sizeof(count_t)), count_t(-1)) < 0)
         delete [] (p-offset);
     return *this;
 }
@@ -102,28 +102,29 @@ namespace std  // purposefully not using versioning namespace
 
 logic_error::logic_error(const string& msg)
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr(msg.c_str());
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    ::new(s) __libcpp_nmstr(msg.c_str());
 }
 
 logic_error::logic_error(const char* msg)
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr(msg);
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    ::new(s) __libcpp_nmstr(msg);
 }
 
 logic_error::logic_error(const logic_error& le) _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr((const __libcpp_nmstr&)le.__imp_);
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_);
+    ::new(s) __libcpp_nmstr(*s2);
 }
 
 logic_error&
 logic_error::operator=(const logic_error& le) _NOEXCEPT
 {
-    __libcpp_nmstr& s1 = (__libcpp_nmstr&)__imp_;
-    const __libcpp_nmstr& s2 = (const __libcpp_nmstr&)le.__imp_;
-    s1 = s2;
+    __libcpp_nmstr *s1 = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_);
+    *s1 = *s2;
     return *this;
 }
 
@@ -131,43 +132,44 @@ logic_error::operator=(const logic_error& le) _NOEXCEPT
 
 logic_error::~logic_error() _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    s.~__libcpp_nmstr();
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    s->~__libcpp_nmstr();
 }
 
 const char*
 logic_error::what() const _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    return s.c_str();
+    const __libcpp_nmstr *s = reinterpret_cast<const __libcpp_nmstr *>(&__imp_);
+    return s->c_str();
 }
 
 #endif
 
 runtime_error::runtime_error(const string& msg)
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr(msg.c_str());
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    ::new(s) __libcpp_nmstr(msg.c_str());
 }
 
 runtime_error::runtime_error(const char* msg)
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr(msg);
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    ::new(s) __libcpp_nmstr(msg);
 }
 
 runtime_error::runtime_error(const runtime_error& le) _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    ::new(&s) __libcpp_nmstr((const __libcpp_nmstr&)le.__imp_);
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_);
+    ::new(s) __libcpp_nmstr(*s2);
 }
 
 runtime_error&
 runtime_error::operator=(const runtime_error& le) _NOEXCEPT
 {
-    __libcpp_nmstr& s1 = (__libcpp_nmstr&)__imp_;
-    const __libcpp_nmstr& s2 = (const __libcpp_nmstr&)le.__imp_;
-    s1 = s2;
+    __libcpp_nmstr *s1 = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    const __libcpp_nmstr *s2 = reinterpret_cast<const __libcpp_nmstr *>(&le.__imp_);
+    *s1 = *s2;
     return *this;
 }
 
@@ -175,15 +177,15 @@ runtime_error::operator=(const runtime_error& le) _NOEXCEPT
 
 runtime_error::~runtime_error() _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    s.~__libcpp_nmstr();
+    __libcpp_nmstr *s = reinterpret_cast<__libcpp_nmstr *>(&__imp_);
+    s->~__libcpp_nmstr();
 }
 
 const char*
 runtime_error::what() const _NOEXCEPT
 {
-    __libcpp_nmstr& s = (__libcpp_nmstr&)__imp_;
-    return s.c_str();
+    const __libcpp_nmstr *s = reinterpret_cast<const __libcpp_nmstr *>(&__imp_);
+    return s->c_str();
 }
 
 domain_error::~domain_error() _NOEXCEPT {}
index c1965ea..ea72813 100644 (file)
@@ -61,7 +61,7 @@ strstreambuf::strstreambuf(const char* __gnext, streamsize __n)
       __palloc_(nullptr),
       __pfree_(nullptr)
 {
-    __init((char*)__gnext, __n, nullptr);
+    __init(const_cast<char *>(__gnext), __n, nullptr);
 }
 
 strstreambuf::strstreambuf(signed char* __gnext, streamsize __n, signed char* __pbeg)
@@ -70,7 +70,7 @@ strstreambuf::strstreambuf(signed char* __gnext, streamsize __n, signed char* __
       __palloc_(nullptr),
       __pfree_(nullptr)
 {
-    __init((char*)__gnext, __n, (char*)__pbeg);
+    __init(const_cast<char *>(reinterpret_cast<const char*>(__gnext)), __n, reinterpret_cast<char*>(__pbeg));
 }
 
 strstreambuf::strstreambuf(const signed char* __gnext, streamsize __n)
@@ -79,7 +79,7 @@ strstreambuf::strstreambuf(const signed char* __gnext, streamsize __n)
       __palloc_(nullptr),
       __pfree_(nullptr)
 {
-    __init((char*)__gnext, __n, nullptr);
+    __init(const_cast<char *>(reinterpret_cast<const char*>(__gnext)), __n, nullptr);
 }
 
 strstreambuf::strstreambuf(unsigned char* __gnext, streamsize __n, unsigned char* __pbeg)
@@ -88,7 +88,7 @@ strstreambuf::strstreambuf(unsigned char* __gnext, streamsize __n, unsigned char
       __palloc_(nullptr),
       __pfree_(nullptr)
 {
-    __init((char*)__gnext, __n, (char*)__pbeg);
+    __init(const_cast<char *>(reinterpret_cast<const char*>(__gnext)), __n, reinterpret_cast<char*>(__pbeg));
 }
 
 strstreambuf::strstreambuf(const unsigned char* __gnext, streamsize __n)
@@ -97,7 +97,7 @@ strstreambuf::strstreambuf(const unsigned char* __gnext, streamsize __n)
       __palloc_(nullptr),
       __pfree_(nullptr)
 {
-    __init((char*)__gnext, __n, nullptr);
+    __init(const_cast<char *>(reinterpret_cast<const char*>(__gnext)), __n, nullptr);
 }
 
 strstreambuf::~strstreambuf()
@@ -186,7 +186,7 @@ strstreambuf::overflow(int_type __c)
     }
     *pptr() = static_cast<char>(__c);
     pbump(1);
-    return int_type((unsigned char)__c);
+    return int_type(static_cast<unsigned char>(__c));
 }
 
 strstreambuf::int_type
@@ -222,7 +222,7 @@ strstreambuf::underflow()
             return EOF;
         setg(eback(), gptr(), pptr());
     }
-    return int_type((unsigned char)*gptr());
+    return int_type(static_cast<unsigned char>(*gptr()));
 }
 
 strstreambuf::pos_type
index a2c1fa9..39dd8e3 100644 (file)
@@ -1,3 +1,11 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
 
 #ifdef __sun__
       
index b40409f..00920ff 100644 (file)
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#define        _LIBCPP_BUILDING_SYSTEM_ERROR
+#define _LIBCPP_BUILDING_SYSTEM_ERROR
 #include "system_error"
 #include "string"
 #include "cstring"
index 338a8a2..bd2b7c3 100644 (file)
@@ -144,7 +144,7 @@ public:
     
     T* allocate(size_t __n)
         {return static_cast<T*>(::operator new(__n * sizeof(T)));}
-    void deallocate(T* __p, size_t) {::operator delete((void*)__p);}
+    void deallocate(T* __p, size_t) {::operator delete(static_cast<void*>(__p));}
 
     size_t max_size() const {return size_t(~0) / sizeof(T);}
 };
index ebb42a9..c560c22 100644 (file)
@@ -43,4 +43,12 @@ int main()
     test(x, y, x);
     test(y, x, x);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+    constexpr int x = 1;
+    constexpr int y = 0;
+    static_assert(std::max(x, y) == x, "" );
+    static_assert(std::max(y, x) == x, "" );
+    }
+#endif
 }
index e92d2b9..95241af 100644 (file)
@@ -45,4 +45,12 @@ int main()
     test(x, y, std::greater<int>(), y);
     test(y, x, std::greater<int>(), y);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+    constexpr int x = 1;
+    constexpr int y = 0;
+    static_assert(std::max(x, y, std::greater<int>()) == y, "" );
+    static_assert(std::max(y, x, std::greater<int>()) == y, "" );
+    }
+#endif
 }
index 0b28c83..0438412 100644 (file)
@@ -31,5 +31,12 @@ int main()
     assert(i == 3);
     i = std::max({1, 3, 2});
     assert(i == 3);
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert(std::max({1, 3, 2}) == 3, "");
+    static_assert(std::max({2, 1, 3}) == 3, "");
+    static_assert(std::max({3, 2, 1}) == 3, "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index 62484b2..4dd47a7 100644 (file)
@@ -32,5 +32,12 @@ int main()
     assert(i == 1);
     i = std::max({1, 3, 2}, std::greater<int>());
     assert(i == 1);
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert(std::max({1, 3, 2}, std::greater<int>()) == 1, "");
+    static_assert(std::max({2, 1, 3}, std::greater<int>()) == 1, "");
+    static_assert(std::max({3, 2, 1}, std::greater<int>()) == 1, "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index 573adfa..bbbd97b 100644 (file)
@@ -43,4 +43,12 @@ int main()
     test(x, y, y);
     test(y, x, y);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+    constexpr int x = 1;
+    constexpr int y = 0;
+    static_assert(std::min(x, y) == y, "" );
+    static_assert(std::min(y, x) == y, "" );
+    }
+#endif
 }
index 37205f5..4ef705e 100644 (file)
@@ -45,4 +45,12 @@ int main()
     test(x, y, std::greater<int>(), x);
     test(y, x, std::greater<int>(), x);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+    constexpr int x = 1;
+    constexpr int y = 0;
+    static_assert(std::min(x, y, std::greater<int>()) == x, "" );
+    static_assert(std::min(y, x, std::greater<int>()) == x, "" );
+    }
+#endif
 }
index 33ac195..eed4ebd 100644 (file)
@@ -31,5 +31,12 @@ int main()
     assert(i == 1);
     i = std::min({1, 3, 2});
     assert(i == 1);
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert(std::min({1, 3, 2}) == 1, "");
+    static_assert(std::min({2, 1, 3}) == 1, "");
+    static_assert(std::min({3, 2, 1}) == 1, "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index c20b15b..5e0301b 100644 (file)
@@ -32,5 +32,12 @@ int main()
     assert(i == 3);
     i = std::min({1, 3, 2}, std::greater<int>());
     assert(i == 3);
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert(std::min({1, 3, 2}, std::greater<int>()) == 3, "");
+    static_assert(std::min({2, 1, 3}, std::greater<int>()) == 3, "");
+    static_assert(std::min({3, 2, 1}, std::greater<int>()) == 3, "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index 6ebf964..1774ffd 100644 (file)
@@ -45,4 +45,18 @@ int main()
     test(x, y, y, x);
     test(y, x, y, x);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+//  Note that you can't take a reference to a local var, since 
+//  it's address is not a compile-time constant.
+    constexpr static int x = 1;
+    constexpr static int y = 0;
+    constexpr auto p1 = std::minmax (x, y);
+    static_assert(p1.first  == y, "");
+    static_assert(p1.second == x, "");
+    constexpr auto p2 = std::minmax (y, x);
+    static_assert(p2.first  == y, "");
+    static_assert(p2.second == x, "");
+    }
+#endif
 }
index bddc01f..66b2e78 100644 (file)
@@ -27,6 +27,7 @@ test(const T& a, const T& b, C c, const T& x, const T& y)
     assert(&p.second == &y);
 }
 
+
 int main()
 {
     {
@@ -47,4 +48,18 @@ int main()
     test(x, y, std::greater<int>(), x, y);
     test(y, x, std::greater<int>(), x, y);
     }
+#if _LIBCPP_STD_VER > 11
+    {
+//  Note that you can't take a reference to a local var, since 
+//  it's address is not a compile-time constant.
+    constexpr static int x = 1;
+    constexpr static int y = 0;
+    constexpr auto p1 = std::minmax(x, y, std::greater<>());
+    static_assert(p1.first  == x, "");
+    static_assert(p1.second == y, "");
+    constexpr auto p2 = std::minmax(y, x, std::greater<>());
+    static_assert(p2.first  == x, "");
+    static_assert(p2.second == y, "");
+    }
+#endif
 }
index 57e0737..0196d10 100644 (file)
@@ -25,5 +25,15 @@ int main()
     assert((std::minmax({2, 3, 1}) == std::pair<int, int>(1, 3)));
     assert((std::minmax({3, 1, 2}) == std::pair<int, int>(1, 3)));
     assert((std::minmax({3, 2, 1}) == std::pair<int, int>(1, 3)));
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert((std::minmax({1, 2, 3}) == std::pair<int, int>(1, 3)), "");
+    static_assert((std::minmax({1, 3, 2}) == std::pair<int, int>(1, 3)), "");
+    static_assert((std::minmax({2, 1, 3}) == std::pair<int, int>(1, 3)), "");
+    static_assert((std::minmax({2, 3, 1}) == std::pair<int, int>(1, 3)), "");
+    static_assert((std::minmax({3, 1, 2}) == std::pair<int, int>(1, 3)), "");
+    static_assert((std::minmax({3, 2, 1}) == std::pair<int, int>(1, 3)), "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index 9288ccc..95a8c85 100644 (file)
@@ -26,5 +26,15 @@ int main()
     assert((std::minmax({2, 3, 1}, std::greater<int>()) == std::pair<int, int>(3, 1)));
     assert((std::minmax({3, 1, 2}, std::greater<int>()) == std::pair<int, int>(3, 1)));
     assert((std::minmax({3, 2, 1}, std::greater<int>()) == std::pair<int, int>(3, 1)));
+#if _LIBCPP_STD_VER > 11
+    {
+    static_assert((std::minmax({1, 2, 3}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    static_assert((std::minmax({1, 3, 2}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    static_assert((std::minmax({2, 1, 3}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    static_assert((std::minmax({2, 3, 1}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    static_assert((std::minmax({3, 1, 2}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    static_assert((std::minmax({3, 2, 1}, std::greater<int>()) == std::pair<int, int>(3, 1)), "");
+    }
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 }
index 5104ce9..dc5564e 100644 (file)
@@ -29,6 +29,7 @@ test_one(unsigned N, unsigned M)
     std::random_shuffle(array, array+N);
     std::nth_element(array, array+M, array+N);
     assert(array[M] == M);
+    std::nth_element(array, array+N, array+N); // begin, end, end
     delete [] array;
 }
 
index 538ec22..cf86590 100644 (file)
@@ -42,6 +42,7 @@ test_one(unsigned N, unsigned M)
     std::random_shuffle(array, array+N);
     std::nth_element(array, array+M, array+N, std::greater<int>());
     assert(array[M] == N-M-1);
+    std::nth_element(array, array+N, array+N, std::greater<int>()); // begin, end, end
     delete [] array;
 }
 
index 121cef6..9542c7e 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef COPYABLE_H
 #define COPYABLE_H
 
index aab290a..34dd326 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef EMPLACEABLE_H
 #define EMPLACEABLE_H
 
index cbf8020..e4d9f64 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef MOVEONLY_H
 #define MOVEONLY_H
 
index 5705003..ac8b98e 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef NOTCONSTRUCTIBLE_H
 #define NOTCONSTRUCTIBLE_H
 
index 7aa713c..552e87d 100644 (file)
@@ -215,10 +215,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index ac05e29..a1bcb30 100644 (file)
@@ -59,6 +59,21 @@ int main()
     }
     {
         typedef std::pair<const int, double> V;
+        const V ar[] =
+        {
+            V(1, 1),
+            V(2, 1),
+            V(3, 1),
+        };
+        std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
+        std::map<int, double> *p = &m;
+        m = *p;
+
+        assert(m.size() == 3);
+        assert(std::equal(m.begin(), m.end(), ar));
+    }
+    {
+        typedef std::pair<const int, double> V;
         V ar[] =
         {
             V(1, 1),
index 2c6908e..1832a32 100644 (file)
@@ -31,5 +31,10 @@ int main()
     assert(m.empty());
     assert(m.begin() == m.end());
     }
+    {
+    std::map<int, double> m = {};
+    assert(m.empty());
+    assert(m.begin() == m.end());
+    }
 #endif
 }
index 1fdbfa1..2763129 100644 (file)
@@ -219,10 +219,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index f00f0fe..2bdc4d6 100644 (file)
@@ -50,6 +50,26 @@ int main()
     }
     {
         typedef std::pair<const int, double> V;
+        const V ar[] =
+        {
+            V(1, 1),
+            V(1, 1.5),
+            V(1, 2),
+            V(2, 1),
+            V(2, 1.5),
+            V(2, 2),
+            V(3, 1),
+            V(3, 1.5),
+            V(3, 2),
+        };
+        std::multimap<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
+        std::multimap<int, double> *p = &m;
+        m = *p;
+        assert(m.size() == sizeof(ar)/sizeof(ar[0]));
+        assert(std::equal(m.begin(), m.end(), ar));
+    }
+    {
+        typedef std::pair<const int, double> V;
         V ar[] =
         {
             V(1, 1),
index 2651d90..1c3ab8c 100644 (file)
@@ -31,5 +31,10 @@ int main()
     assert(m.empty());
     assert(m.begin() == m.end());
     }
+    {
+    std::multimap<int, double> m = {};
+    assert(m.empty());
+    assert(m.begin() == m.end());
+    }
 #endif
 }
index ccb6c66..d1f0ecf 100644 (file)
@@ -203,10 +203,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index 19bdd71..cca6363 100644 (file)
@@ -70,6 +70,26 @@ int main()
     }
     {
         typedef int V;
+        const V ar[] =
+        {
+            1,
+            1,
+            1,
+            2,
+            2,
+            2,
+            3,
+            3,
+            3
+        };
+        std::multiset<int> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
+        std::multiset<int> *p = &m;
+        m = *p;
+        assert(m.size() == 9);
+        assert(std::equal(m.begin(), m.end(), ar));
+    }
+    {
+        typedef int V;
         V ar[] =
         {
             1,
index b6176c9..5bb0312 100644 (file)
@@ -31,5 +31,10 @@ int main()
     assert(m.empty());
     assert(m.begin() == m.end());
     }
+    {
+    std::multiset<int> m = {};
+    assert(m.empty());
+    assert(m.begin() == m.end());
+    }
 #endif
 }
index 39c8cc6..ecd950f 100644 (file)
@@ -199,10 +199,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index ae83eb3..7f0f044 100644 (file)
@@ -58,6 +58,21 @@ int main()
     }
     {
         typedef int V;
+        const V ar[] =
+        {
+            1,
+            2,
+            3
+        };
+        std::set<int> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
+        std::set<int> *p = &m;
+        m = *p;
+
+        assert(m.size() == 3);
+        assert(std::equal(m.begin(), m.end(), ar));
+    }
+    {
+        typedef int V;
         V ar[] =
         {
             1,
index d047b12..746a2d1 100644 (file)
@@ -31,5 +31,10 @@ int main()
     assert(m.empty());
     assert(m.begin() == m.end());
     }
+    {
+    std::set<int> m = {};
+    assert(m.empty());
+    assert(m.begin() == m.end());
+    }
 #endif
 }
index 3014fd5..98997d8 100644 (file)
@@ -72,10 +72,23 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
+        assert (!(ii1 <  cii ));
+        assert (!(cii <  ii1 ));
+        assert ( (ii1 <= cii ));
+        assert ( (cii <= ii1 ));
+        assert (!(ii1 >  cii ));
+        assert (!(cii >  ii1 ));
+        assert ( (ii1 >= cii ));
+        assert ( (cii >= ii1 ));
+        assert (cii - ii1 == 0);
+        assert (ii1 - cii == 0);
 
         C c;
         assert ( c.begin()   == std::begin(c));
index f8754f1..b725dad 100644 (file)
@@ -24,6 +24,10 @@ test()
 {
     std::deque<T, Allocator> d;
     assert(d.size() == 0);
+#if __cplusplus >= 201103L
+    std::deque<T, Allocator> d1 = {};
+    assert(d1.size() == 0);
+#endif
 }
 
 int main()
index 0aee63e..3e62879 100644 (file)
@@ -19,12 +19,16 @@ static bool gCopyConstructorShouldThow = false;
 
 
 class CMyClass {
-    public: CMyClass();
+    public: CMyClass(int tag);
     public: CMyClass(const CMyClass& iOther);
     public: ~CMyClass();
 
-    private: int fMagicValue;
-
+    bool equal(const CMyClass &rhs) const
+        { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
+    private:
+        int fMagicValue;
+        int fTag;
+        
     private: static int kStartedConstructionMagicValue;
     private: static int kFinishedConstructionMagicValue;
 };
@@ -34,15 +38,15 @@ int CMyClass::kStartedConstructionMagicValue = 0;
 // Value for fMagicValue when the constructor has finished running
 int CMyClass::kFinishedConstructionMagicValue = 12345;
 
-CMyClass::CMyClass() :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(int tag) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(tag)
 {
     // Signal that the constructor has finished running
     fMagicValue = kFinishedConstructionMagicValue;
 }
 
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(const CMyClass& iOther) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
 {
     // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
     if (gCopyConstructorShouldThow) {
@@ -57,17 +61,21 @@ CMyClass::~CMyClass() {
     assert(fMagicValue == kFinishedConstructionMagicValue);
 }
 
+bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
+
 int main()
 {
-    CMyClass instance;
+    CMyClass instance(42);
     std::deque<CMyClass> vec;
 
     vec.push_back(instance);
+    std::deque<CMyClass> vec2(vec);
 
     gCopyConstructorShouldThow = true;
     try {
         vec.push_back(instance);
     }
     catch (...) {
+        assert(vec==vec2);
     }
 }
index 662f9a4..6ae06db 100644 (file)
@@ -19,12 +19,16 @@ static bool gCopyConstructorShouldThow = false;
 
 
 class CMyClass {
-    public: CMyClass();
+    public: CMyClass(int tag);
     public: CMyClass(const CMyClass& iOther);
     public: ~CMyClass();
 
-    private: int fMagicValue;
-
+    bool equal(const CMyClass &rhs) const
+        { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
+    private:
+        int fMagicValue;
+        int fTag;
+        
     private: static int kStartedConstructionMagicValue;
     private: static int kFinishedConstructionMagicValue;
 };
@@ -34,15 +38,15 @@ int CMyClass::kStartedConstructionMagicValue = 0;
 // Value for fMagicValue when the constructor has finished running
 int CMyClass::kFinishedConstructionMagicValue = 12345;
 
-CMyClass::CMyClass() :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(int tag) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(tag)
 {
     // Signal that the constructor has finished running
     fMagicValue = kFinishedConstructionMagicValue;
 }
 
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(const CMyClass& iOther) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
 {
     // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
     if (gCopyConstructorShouldThow) {
@@ -57,17 +61,21 @@ CMyClass::~CMyClass() {
     assert(fMagicValue == kFinishedConstructionMagicValue);
 }
 
+bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
+
 int main()
 {
-    CMyClass instance;
+    CMyClass instance(42);
     std::deque<CMyClass> vec;
 
     vec.push_front(instance);
+    std::deque<CMyClass> vec2(vec);
 
     gCopyConstructorShouldThow = true;
     try {
         vec.push_front(instance);
     }
     catch (...) {
+        assert(vec==vec2);
     }
 }
index 9140e02..8ec491f 100644 (file)
@@ -51,11 +51,24 @@ int main()
         std::deque<int>::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
 
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
+        assert (!(ii1 <  cii ));
+        assert (!(cii <  ii1 ));
+        assert ( (ii1 <= cii ));
+        assert ( (cii <= ii1 ));
+        assert (!(ii1 >  cii ));
+        assert (!(cii >  ii1 ));
+        assert ( (ii1 >= cii ));
+        assert ( (cii >= ii1 ));
+        assert (cii - ii1 == 0);
+        assert (ii1 - cii == 0);
+        
 //         std::deque<int> c;
 //         assert ( ii1 != c.cbegin());
 //         assert ( cii != c.begin());
index dcc438c..38e95fa 100644 (file)
@@ -31,5 +31,11 @@ int main()
         C c;
         assert(c.empty());
     }
+    {
+        typedef int T;
+        typedef std::forward_list<T> C;
+        C c = {};
+        assert(c.empty());
+    }
 #endif
 }
diff --git a/src/third_party/libc++/trunk/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp b/src/third_party/libc++/trunk/test/containers/sequences/forwardlist/forwardlist.cons/default_recursive.pass.cpp
new file mode 100644 (file)
index 0000000..5ff00e6
--- /dev/null
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <forward_list>
+
+// class forward_list
+
+// forward_list();
+
+#include <forward_list>
+
+struct X
+{
+    std::forward_list<X> q;
+};
+
+int main()
+{
+}
index 02e17d7..6f3ac54 100644 (file)
@@ -127,10 +127,13 @@ int main()
         std::forward_list<int>::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
+        assert (!(ii1 != ii2 ));
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
 
 //         std::forward_list<int> c;
 //         assert ( ii1 != c.cbegin());
index a843334..a33ee3e 100644 (file)
@@ -143,10 +143,13 @@ int main()
         std::list<int>::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
 
         assert ( ii1 != c.cbegin());
         assert ( cii != c.begin());
index 6962d28..c05bd74 100644 (file)
@@ -49,5 +49,10 @@ int main()
         assert(l.size() == 0);
         assert(std::distance(l.begin(), l.end()) == 0);
     }
+    {
+        std::list<int> l = {};
+        assert(l.size() == 0);
+        assert(std::distance(l.begin(), l.end()) == 0);
+    }
 #endif
 }
index 51ecbb1..d3d6670 100644 (file)
@@ -26,6 +26,12 @@ test0()
     assert(c.__invariants());
     assert(c.empty());
     assert(c.get_allocator() == typename C::allocator_type());
+#if __cplusplus >= 201103L
+    C c1 = {};
+    assert(c1.__invariants());
+    assert(c1.empty());
+    assert(c1.get_allocator() == typename C::allocator_type());
+#endif
 }
 
 template <class C>
index b63f6a6..c54fa4a 100644 (file)
@@ -101,9 +101,23 @@ int main()
         std::vector<bool>::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
+        assert (!(ii1 <  cii ));
+        assert (!(cii <  ii1 ));
+        assert ( (ii1 <= cii ));
+        assert ( (cii <= ii1 ));
+        assert (!(ii1 >  cii ));
+        assert (!(cii >  ii1 ));
+        assert ( (ii1 >= cii ));
+        assert ( (cii >= ii1 ));
+        assert (cii - ii1 == 0);
+        assert (ii1 - cii == 0);
     }
 #endif
 }
index 82de665..75a0828 100644 (file)
@@ -143,9 +143,23 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
+        assert (!(ii1 <  cii ));
+        assert (!(cii <  ii1 ));
+        assert ( (ii1 <= cii ));
+        assert ( (cii <= ii1 ));
+        assert (!(ii1 >  cii ));
+        assert (!(cii >  ii1 ));
+        assert ( (ii1 >= cii ));
+        assert ( (cii >= ii1 ));
+        assert (cii - ii1 == 0);
+        assert (ii1 - cii == 0);
     }
 #endif
 }
index f8b66f4..48c8cf8 100644 (file)
@@ -27,6 +27,12 @@ test0()
     assert(c.__invariants());
     assert(c.empty());
     assert(c.get_allocator() == typename C::allocator_type());
+#if __cplusplus >= 201103L
+    C c1 = {};
+    assert(c1.__invariants());
+    assert(c1.empty());
+    assert(c1.get_allocator() == typename C::allocator_type());
+#endif
 }
 
 template <class C>
diff --git a/src/third_party/libc++/trunk/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp b/src/third_party/libc++/trunk/test/containers/sequences/vector/vector.cons/default.recursive.pass.cpp
new file mode 100644 (file)
index 0000000..1a4a189
--- /dev/null
@@ -0,0 +1,23 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <vector>
+// class vector
+// vector();
+
+#include <vector>
+
+struct X
+{
+    std::vector<X> q;
+};
+
+int main()
+{
+}
index cd81e60..f232743 100644 (file)
@@ -19,12 +19,16 @@ static bool gCopyConstructorShouldThow = false;
 
 
 class CMyClass {
-    public: CMyClass();
+    public: CMyClass(int tag);
     public: CMyClass(const CMyClass& iOther);
     public: ~CMyClass();
 
-    private: int fMagicValue;
-
+    bool equal(const CMyClass &rhs) const
+        { return fTag == rhs.fTag && fMagicValue == rhs.fMagicValue; }
+    private:
+        int fMagicValue;
+        int fTag;
+        
     private: static int kStartedConstructionMagicValue;
     private: static int kFinishedConstructionMagicValue;
 };
@@ -34,15 +38,15 @@ int CMyClass::kStartedConstructionMagicValue = 0;
 // Value for fMagicValue when the constructor has finished running
 int CMyClass::kFinishedConstructionMagicValue = 12345;
 
-CMyClass::CMyClass() :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(int tag) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(tag)
 {
     // Signal that the constructor has finished running
     fMagicValue = kFinishedConstructionMagicValue;
 }
 
-CMyClass::CMyClass(const CMyClass& /*iOther*/) :
-    fMagicValue(kStartedConstructionMagicValue)
+CMyClass::CMyClass(const CMyClass& iOther) :
+    fMagicValue(kStartedConstructionMagicValue), fTag(iOther.fTag)
 {
     // If requested, throw an exception _before_ setting fMagicValue to kFinishedConstructionMagicValue
     if (gCopyConstructorShouldThow) {
@@ -57,17 +61,21 @@ CMyClass::~CMyClass() {
     assert(fMagicValue == kFinishedConstructionMagicValue);
 }
 
+bool operator==(const CMyClass &lhs, const CMyClass &rhs) { return lhs.equal(rhs); }
+
 int main()
 {
-    CMyClass instance;
+    CMyClass instance(42);
     std::vector<CMyClass> vec;
 
     vec.push_back(instance);
+    std::vector<CMyClass> vec2(vec);
 
     gCopyConstructorShouldThow = true;
     try {
         vec.push_back(instance);
     }
     catch (...) {
+        assert(vec==vec2);
     }
 }
index e6af473..d5fab02 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef STACK_ALLOCATOR_H
 #define STACK_ALLOCATOR_H
 
index ba56286..9c54799 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef TEST_COMPARE_H
 #define TEST_COMPARE_H
 
index 95f6e9e..1a70e7c 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef TEST_HASH_H
 #define TEST_HASH_H
 
index 4ac126a..47b1d73 100644 (file)
@@ -116,10 +116,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
         
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index 928377b..fa01056 100644 (file)
@@ -73,6 +73,24 @@ int main()
         assert(c.max_load_factor() == 1);
     }
     {
+        typedef std::unordered_map<int, std::string> C;
+        typedef std::pair<const int, std::string> P;
+        const P a[] =
+        {
+            P(1, "one"),
+            P(2, "two"),
+            P(3, "three"),
+            P(4, "four"),
+            P(1, "four"),
+            P(2, "four"),
+        };
+        C c(a, a + sizeof(a)/sizeof(a[0]));
+        C *p = &c;
+        c = *p;
+        assert(c.size() == 4);
+        assert(std::is_permutation(c.begin(), c.end(), a));
+    }
+    {
         typedef other_allocator<std::pair<const int, std::string> > A;
         typedef std::unordered_map<int, std::string,
                                    test_hash<std::hash<int> >,
index 42f1faa..a0825db 100644 (file)
@@ -65,5 +65,14 @@ int main()
         assert(c.load_factor() == 0);
         assert(c.max_load_factor() == 1);
     }
+    {
+        std::unordered_map<int, int> c = {};
+        assert(c.bucket_count() == 0);
+        assert(c.size() == 0);
+        assert(c.empty());
+        assert(std::distance(c.begin(), c.end()) == 0);
+        assert(c.load_factor() == 0);
+        assert(c.max_load_factor() == 1);
+    }
 #endif
 }
index e6741a8..0e8ef8b 100644 (file)
 
 #include "min_allocator.h"
 
+#if __cplusplus >= 201103L
+template <typename Unordered>
+bool only_deletions ( const Unordered &whole, const Unordered &part ) {
+    typename Unordered::const_iterator w = whole.begin();
+    typename Unordered::const_iterator p = part.begin();
+    
+    while ( w != whole.end () && p != part.end()) {        
+        if ( *w == *p )
+            p++;
+        w++;
+        }
+
+    return p == part.end();
+}
+#endif
+
+
 int main()
 {
     {
@@ -137,5 +154,24 @@ int main()
         assert(c.erase(3) == 0);
         assert(c.size() == 0);
     }
+    {
+    typedef std::unordered_map<int, int> C;
+    C m, m2;
+    for ( int i = 0; i < 10; ++i ) {
+        m[i] = i;
+        m2[i] = i;
+        }
+    
+    C::iterator i = m2.begin();
+    int ctr = 0;
+    while (i != m2.end()) {
+        if (ctr++ % 2 == 0)
+            m2.erase(i++);
+        else
+            ++i;
+        }
+
+    assert (only_deletions (m, m2));
+    }
 #endif
 }
index 8a3faa8..1831cf1 100644 (file)
@@ -122,10 +122,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index 4f47c78..df566b3 100644 (file)
@@ -87,6 +87,24 @@ int main()
         assert(c.max_load_factor() == 1);
     }
     {
+        typedef std::unordered_multimap<int, std::string> C;
+        typedef std::pair<const int, std::string> P;
+        const P a[] =
+        {
+            P(1, "one"),
+            P(2, "two"),
+            P(3, "three"),
+            P(4, "four"),
+            P(1, "four"),
+            P(2, "four"),
+        };
+        C c(a, a+sizeof(a)/sizeof(a[0]));
+        C *p = &c;
+        c = *p;
+        assert(c.size() == 6);
+        assert(std::is_permutation(c.begin(), c.end(), a));
+    }
+    {
         typedef other_allocator<std::pair<const int, std::string> > A;
         typedef std::unordered_multimap<int, std::string,
                                    test_hash<std::hash<int> >,
index b7a01a4..1884065 100644 (file)
@@ -65,5 +65,14 @@ int main()
         assert(c.load_factor() == 0);
         assert(c.max_load_factor() == 1);
     }
+    {
+        std::unordered_multimap<int, int> c = {};
+        assert(c.bucket_count() == 0);
+        assert(c.size() == 0);
+        assert(c.empty());
+        assert(std::distance(c.begin(), c.end()) == 0);
+        assert(c.load_factor() == 0);
+        assert(c.max_load_factor() == 1);
+    }
 #endif
 }
index 3c099f3..892f8a2 100644 (file)
 
 #include "min_allocator.h"
 
+#if __cplusplus >= 201103L
+template <typename Unordered>
+bool only_deletions ( const Unordered &whole, const Unordered &part ) {
+    typename Unordered::const_iterator w = whole.begin();
+    typename Unordered::const_iterator p = part.begin();
+    
+    while ( w != whole.end () && p != part.end()) {
+        if ( *w == *p )
+            p++;
+        w++;
+        }
+
+    return p == part.end();
+}
+#endif
+
 int main()
 {
     {
@@ -347,5 +363,26 @@ int main()
         assert(std::distance(c.begin(), c.end()) == c.size());
         assert(std::distance(c.cbegin(), c.cend()) == c.size());
     }
+    {
+    typedef std::unordered_multimap<int, int> C;
+    C m, m2;
+    for ( int i = 0; i < 10; ++i ) {
+        for (int j = 0; j < 2; ++j ) {
+            m.insert (std::make_pair(i,j));
+            m2.insert(std::make_pair(i,j));
+            }
+        }
+    
+    C::iterator i = m2.begin();
+    int ctr = 0;
+    while (i != m2.end()) {
+        if (ctr++ % 2 == 0)
+            m2.erase(i++);
+        else
+            ++i;
+        }
+
+    assert (only_deletions (m, m2));
+    }
 #endif
 }
index 646d356..7c24397 100644 (file)
 
 #include "min_allocator.h"
 
+#if __cplusplus >= 201103L
+template <typename Unordered>
+bool only_deletions ( const Unordered &whole, const Unordered &part ) {
+    typename Unordered::const_iterator w = whole.begin();
+    typename Unordered::const_iterator p = part.begin();
+    
+    while ( w != whole.end () && p != part.end()) {
+        if ( *w == *p )
+            p++;
+        w++;
+        }
+
+    return p == part.end();
+}
+#endif
+
 int main()
 {
     {
@@ -137,5 +153,24 @@ int main()
         assert(c.erase(3) == 0);
         assert(c.size() == 0);
     }
+    {
+    typedef std::unordered_multiset<int> C;
+    C m, m2;
+    for ( int i = 0; i < 10; ++i ) {
+        m.insert(i);  m.insert(i);
+        m2.insert(i); m2.insert(i);
+        }
+    
+    C::iterator i = m2.begin();
+    int ctr = 0;
+    while (i != m2.end()) {
+        if (ctr++ % 2 == 0)
+            m2.erase(i++);
+        else
+            ++i;
+        }
+
+    assert (only_deletions (m, m2));
+    }
 #endif
 }
index fd7077b..be95b44 100644 (file)
@@ -115,10 +115,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index f634994..2042f69 100644 (file)
@@ -80,6 +80,25 @@ int main()
         assert(c.max_load_factor() == 1);
     }
     {
+        typedef std::unordered_multiset<int> C;
+        typedef int P;
+        P a[] =
+        {
+            P(1),
+            P(2),
+            P(3),
+            P(4),
+            P(1),
+            P(2)
+        };
+        C c(a, a + sizeof(a)/sizeof(a[0]));
+        C *p = &c;
+        c = *p;
+
+        assert(c.size() == 6);
+        assert(std::is_permutation(c.begin(), c.end(), a));
+    }
+    {
         typedef other_allocator<int> A;
         typedef std::unordered_multiset<int,
                                    test_hash<std::hash<int> >,
index 6726bc1..737ae2d 100644 (file)
@@ -61,5 +61,14 @@ int main()
         assert(c.load_factor() == 0);
         assert(c.max_load_factor() == 1);
     }
+    {
+        std::unordered_multiset<int> c = {};
+        assert(c.bucket_count() == 0);
+        assert(c.size() == 0);
+        assert(c.empty());
+        assert(std::distance(c.begin(), c.end()) == 0);
+        assert(c.load_factor() == 0);
+        assert(c.max_load_factor() == 1);
+    }
 #endif
 }
index d97374a..ca16508 100644 (file)
 
 #include "min_allocator.h"
 
+#if __cplusplus >= 201103L
+template <typename Unordered>
+bool only_deletions ( const Unordered &whole, const Unordered &part ) {
+    typename Unordered::const_iterator w = whole.begin();
+    typename Unordered::const_iterator p = part.begin();
+    
+    while ( w != whole.end () && p != part.end()) {
+        if ( *w == *p )
+            p++;
+        w++;
+        }
+
+    return p == part.end();
+}
+#endif
+
 int main()
 {
     {
@@ -136,5 +152,24 @@ int main()
         assert(c.erase(3) == 0);
         assert(c.size() == 0);
     }
+    {
+    typedef std::unordered_set<int> C;
+    C m, m2;
+    for ( int i = 0; i < 10; ++i ) {
+        m.insert(i);
+        m2.insert(i);
+        }
+    
+    C::iterator i = m2.begin();
+    int ctr = 0;
+    while (i != m2.end()) {
+        if (ctr++ % 2 == 0)
+            m2.erase(i++);
+        else
+            ++i;
+        }
+
+    assert (only_deletions (m, m2));
+    }
 #endif
 }
index d88310e..d3a4580 100644 (file)
@@ -115,10 +115,13 @@ int main()
         C::const_iterator cii{};
         assert ( ii1 == ii2 );
         assert ( ii1 == ii4 );
-        assert ( ii1 == cii );
 
-        assert ( !(ii1 != ii2 ));
-        assert ( !(ii1 != cii ));
+        assert (!(ii1 != ii2 ));
+
+        assert ( (ii1 == cii ));
+        assert ( (cii == ii1 ));
+        assert (!(ii1 != cii ));
+        assert (!(cii != ii1 ));
     }
 #endif
 }
index a1f8c48..6925e30 100644 (file)
@@ -72,6 +72,24 @@ int main()
         assert(c.max_load_factor() == 1);
     }
     {
+        typedef std::unordered_set<int> C;
+        typedef int P;
+        P a[] =
+        {
+            P(1),
+            P(2),
+            P(3),
+            P(4),
+            P(1),
+            P(2)
+        };
+        C c(a, a + sizeof(a)/sizeof(a[0]));
+        C *p = &c;
+        c = *p;
+        assert(c.size() == 4);
+        assert(std::is_permutation(c.begin(), c.end(), a));
+    }
+    {
         typedef other_allocator<int> A;
         typedef std::unordered_set<int,
                                    test_hash<std::hash<int> >,
index ee901fb..6efa9ed 100644 (file)
@@ -61,5 +61,14 @@ int main()
         assert(c.load_factor() == 0);
         assert(c.max_load_factor() == 1);
     }
+    {
+        std::unordered_set<int> c = {};
+        assert(c.bucket_count() == 0);
+        assert(c.size() == 0);
+        assert(c.empty());
+        assert(std::distance(c.begin(), c.end()) == 0);
+        assert(c.load_factor() == 0);
+        assert(c.max_load_factor() == 1);
+    }
 #endif
 }
index 9e93966..858e190 100644 (file)
@@ -82,9 +82,9 @@ void test_exp()
 void test_fabs()
 {
     static_assert((std::is_same<decltype(fabs((double)0)), double>::value), "");
-    static_assert((std::is_same<decltype(fabsf(0)), float>::value), "");
-    static_assert((std::is_same<decltype(fabsl(0)), long double>::value), "");
-    assert(fabs(-1) == 1);
+    static_assert((std::is_same<decltype(fabsf(0.f)), float>::value), "");
+    static_assert((std::is_same<decltype(fabsl(0.L)), long double>::value), "");
+    assert(fabs(-1.f) == 1);
 }
 
 void test_floor()
diff --git a/src/third_party/libc++/trunk/test/extensions/hash/specializations.fail.cpp b/src/third_party/libc++/trunk/test/extensions/hash/specializations.fail.cpp
new file mode 100644 (file)
index 0000000..8eeffb5
--- /dev/null
@@ -0,0 +1,17 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <assert.h>
+#include <ext/hash_map>
+#include <string>
+
+int main()
+{
+    assert(__gnu_cxx::hash<std::string>()(std::string()) == 0);  // error
+}
diff --git a/src/third_party/libc++/trunk/test/extensions/hash/specializations.pass.cpp b/src/third_party/libc++/trunk/test/extensions/hash/specializations.pass.cpp
new file mode 100644 (file)
index 0000000..884614e
--- /dev/null
@@ -0,0 +1,29 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <assert.h>
+#include <ext/hash_map>
+#include <string>
+
+int main()
+{
+    char str[] = "test";
+    assert(__gnu_cxx::hash<const char *>()("test") ==
+           std::hash<std::string>()("test"));
+    assert(__gnu_cxx::hash<char *>()(str) == std::hash<std::string>()("test"));
+    assert(__gnu_cxx::hash<char>()(42) == 42);
+    assert(__gnu_cxx::hash<signed char>()(42) == 42);
+    assert(__gnu_cxx::hash<unsigned char>()(42) == 42);
+    assert(__gnu_cxx::hash<short>()(42) == 42);
+    assert(__gnu_cxx::hash<unsigned short>()(42) == 42);
+    assert(__gnu_cxx::hash<int>()(42) == 42);
+    assert(__gnu_cxx::hash<unsigned int>()(42) == 42);
+    assert(__gnu_cxx::hash<long>()(42) == 42);
+    assert(__gnu_cxx::hash<unsigned long>()(42) == 42);
+}
diff --git a/src/third_party/libc++/trunk/test/extensions/hash_map/const_iterator.fail.cpp b/src/third_party/libc++/trunk/test/extensions/hash_map/const_iterator.fail.cpp
new file mode 100644 (file)
index 0000000..e4c536e
--- /dev/null
@@ -0,0 +1,18 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <ext/hash_map>
+
+int main()
+{
+    __gnu_cxx::hash_map<int, int> m;
+    m[1] = 1;
+    const __gnu_cxx::hash_map<int, int> &cm = m;
+    cm.find(1)->second = 2;  // error
+}
index 1f6b126..d09b3ca 100644 (file)
@@ -28,13 +28,13 @@ bool is_skipws ( const std::wistream *is ) {
     }
 
 void both_ways ( const char *p ) {
-       std::string str(p);
-       auto q = std::quoted(str);
+    std::string str(p);
+    auto q = std::quoted(str);
 
     std::stringstream ss;
     bool skippingws = is_skipws ( &ss );
-       ss << q;
-       ss >> q;
+    ss << q;
+    ss >> q;
     }
 
 void round_trip ( const char *p ) {
@@ -92,6 +92,20 @@ std::string unquote ( const char *p, char delim='"', char escape='\\' ) {
     return s;
 }
 
+void test_padding () {
+    {
+    std::stringstream ss;
+    ss << std::left << std::setw(10) << std::setfill('!') << std::quoted("abc", '`');
+    assert ( ss.str() == "`abc`!!!!!" );
+    }
+    
+    {
+    std::stringstream ss;
+    ss << std::right << std::setw(10) << std::setfill('!') << std::quoted("abc", '`');
+    assert ( ss.str() == "!!!!!`abc`" );
+    }
+}
+
 
 void round_trip ( const wchar_t *p ) {
     std::wstringstream ss;
@@ -197,6 +211,7 @@ int main()
 
     assert ( unquote (  "" ) ==  "" ); // nothing there
     assert ( unquote ( L"" ) == L"" ); // nothing there
+    test_padding ();
     }
 
 #else
index 65d1a7b..abb6433 100644 (file)
@@ -52,7 +52,7 @@ void test_const_container( const std::initializer_list<T> & c, T val ) {
     assert ( std::end(c)     == c.end());
 #if _LIBCPP_STD_VER > 11
 //  initializer_list doesn't have cbegin/cend/rbegin/rend
-//     but std::cbegin(),etc work (b/c they're general fn templates)
+//  but std::cbegin(),etc work (b/c they're general fn templates)
 //     assert ( std::cbegin(c)  == c.cbegin());
 //     assert ( std::cbegin(c)  != c.cend());
 //     assert ( std::cend(c)    == c.cend());
@@ -104,6 +104,20 @@ void test_container( std::initializer_list<T> & c, T val ) {
 #endif
     }
 
+template<typename T, size_t Sz>
+void test_const_array( const T (&array)[Sz] ) {
+    assert ( std::begin(array)  == array );
+    assert (*std::begin(array)  ==  array[0] );
+    assert ( std::begin(array)  != std::end(array));
+    assert ( std::end(array)    == array + Sz);
+#if _LIBCPP_STD_VER > 11
+    assert ( std::cbegin(array) == array );
+    assert (*std::cbegin(array) == array[0] );
+    assert ( std::cbegin(array) != std::cend(array));
+    assert ( std::cend(array)   == array + Sz);
+#endif
+    }
+
 int main(){
     std::vector<int> v; v.push_back(1);
     std::list<int> l;   l.push_back(2);
@@ -119,6 +133,14 @@ int main(){
     test_const_container ( l, 2 );
     test_const_container ( a, 3 );
     test_const_container ( il, 4 );
+    
+    static constexpr int arrA [] { 1, 2, 3 };
+    test_const_array ( arrA );
+#if _LIBCPP_STD_VER > 11
+    constexpr const int *b = std::cbegin(arrA);
+    constexpr const int *e = std::cend(arrA);
+    static_assert(e - b == 3, "");
+#endif
 }
 
 #else
index db838e5..01eb35e 100644 (file)
@@ -18,6 +18,7 @@
 #include <iterator>
 #include <vector>
 #include <cassert>
+#include "nasty_containers.hpp"
 
 template <class C>
 void
@@ -45,6 +46,7 @@ insert3at(C& c, typename C::iterator i,
 
 int main()
 {
+    {
     typedef std::vector<int> C;
     C c1;
     for (int i = 0; i < 3; ++i)
@@ -61,4 +63,23 @@ int main()
     c2 = c1;
     insert3at(c2, c2.begin()+3, 'a', 'b', 'c');
     test(c1, 3, 'a', 'b', 'c', c2);
+    }
+    {
+    typedef nasty_vector<int> C;
+    C c1;
+    for (int i = 0; i < 3; ++i)
+        c1.push_back(i);
+    C c2 = c1;
+    insert3at(c2, c2.begin(), 'a', 'b', 'c');
+    test(c1, 0, 'a', 'b', 'c', c2);
+    c2 = c1;
+    insert3at(c2, c2.begin()+1, 'a', 'b', 'c');
+    test(c1, 1, 'a', 'b', 'c', c2);
+    c2 = c1;
+    insert3at(c2, c2.begin()+2, 'a', 'b', 'c');
+    test(c1, 2, 'a', 'b', 'c', c2);
+    c2 = c1;
+    insert3at(c2, c2.begin()+3, 'a', 'b', 'c');
+    test(c1, 3, 'a', 'b', 'c', c2);
+    }
 }
index 36d85b0..2033683 100644 (file)
@@ -56,6 +56,7 @@ struct do_nothing
 int main()
 {
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    {
     typedef std::unique_ptr<int, do_nothing> Ptr;
     typedef std::vector<Ptr> C;
     C c1;
@@ -91,5 +92,6 @@ int main()
         c2.push_back(Ptr(x+i));
     insert3at(c2, c2.begin()+3, Ptr(x+3), Ptr(x+4), Ptr(x+5));
     test(std::move(c1), 3, Ptr(x+3), Ptr(x+4), Ptr(x+5), c2);
+    }
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 }
diff --git a/src/third_party/libc++/trunk/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.make/make_reverse_iterator.pass.cpp b/src/third_party/libc++/trunk/test/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.make/make_reverse_iterator.pass.cpp
new file mode 100644 (file)
index 0000000..98b7331
--- /dev/null
@@ -0,0 +1,42 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <iterator>
+
+// reverse_iterator
+
+// template <class Iterator> reverse_iterator<Iterator>
+//     make_reverse_iterator(Iterator i);
+
+#include <iterator>
+#include <cassert>
+
+#include "test_iterators.h"
+
+#if _LIBCPP_STD_VER > 11
+
+template <class It>
+void
+test(It i)
+{
+    const std::reverse_iterator<It> r = std::make_reverse_iterator(i);
+    assert(r.base() == i);
+}
+
+int main()
+{
+    const char* s = "1234567890";
+    random_access_iterator<const char*>b(s);
+    random_access_iterator<const char*>e(s+10);
+    while ( b != e )
+        test ( b++ );
+}
+#else
+int main () {}
+#endif
index 7055e27..7a77598 100644 (file)
@@ -15,6 +15,8 @@
 
 // Be sure to respect LWG 198:
 //    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#198
+// LWG 198 was superseded by LWG 2360
+//    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2360
 
 #include <iterator>
 #include <cassert>
@@ -31,26 +33,6 @@ public:
 };
 
 template <class It>
-class weird_iterator
-{
-    It it_;
-public:
-    typedef It                              value_type;
-    typedef std::bidirectional_iterator_tag iterator_category;
-    typedef std::ptrdiff_t                  difference_type;
-    typedef It*                             pointer;
-    typedef It&                             reference;
-
-    weird_iterator() {}
-    explicit weird_iterator(It it) : it_(it) {}
-    ~weird_iterator() {it_ = It();}
-
-    reference operator*() {return it_;}
-
-    weird_iterator& operator--() {return *this;}
-};
-
-template <class It>
 void
 test(It i, typename std::iterator_traits<It>::value_type x)
 {
@@ -60,7 +42,6 @@ test(It i, typename std::iterator_traits<It>::value_type x)
 
 int main()
 {
-    test(weird_iterator<A>(A()), A());
     A a;
     test(&a+1, A());
 }
index 1aa77fd..efbdf14 100644 (file)
 
 // Be sure to respect LWG 198:
 //    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#198
+// LWG 198 was superseded by LWG 2360
+//    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2360
+
 
 #include <iterator>
+#include <list>
 #include <cassert>
 
 class A
@@ -33,27 +37,6 @@ public:
 };
 
 template <class It>
-class weird_iterator
-{
-    It it_;
-public:
-    typedef It                              value_type;
-    typedef std::bidirectional_iterator_tag iterator_category;
-    typedef std::ptrdiff_t                  difference_type;
-    typedef It*                             pointer;
-    typedef It&                             reference;
-
-    weird_iterator() {}
-    explicit weird_iterator(It it) : it_(it) {}
-    ~weird_iterator() {it_ = It();}
-
-    reference operator*() {return it_;}
-    pointer operator->() {return &it_;}
-
-    weird_iterator& operator--() {return *this;}
-};
-
-template <class It>
 void
 test(It i, typename std::iterator_traits<It>::value_type x)
 {
@@ -61,9 +44,46 @@ test(It i, typename std::iterator_traits<It>::value_type x)
     assert(r->get() == x.get());
 }
 
+class B
+{
+    int data_;
+public:
+    B(int d=1) : data_(d) {}
+    ~B() {data_ = -1;}
+
+    int get() const {return data_;}
+
+    friend bool operator==(const B& x, const B& y)
+        {return x.data_ == y.data_;}
+    const B *operator&() const { return nullptr; }
+    B       *operator&()       { return nullptr; }
+};
+
 int main()
 {
-    test(weird_iterator<A>(A()), A());
     A a;
     test(&a+1, A());
+    
+    {
+    std::list<B> l;
+    l.push_back(B(0));
+    l.push_back(B(1));
+    l.push_back(B(2));
+    
+    {
+    std::list<B>::const_iterator i = l.begin();
+    assert ( i->get() == 0 );  ++i;
+    assert ( i->get() == 1 );  ++i;
+    assert ( i->get() == 2 );  ++i;
+    assert ( i == l.end ());
+    }
+    
+    {
+    std::list<B>::const_reverse_iterator ri = l.rbegin();
+    assert ( ri->get() == 2 );  ++ri;
+    assert ( ri->get() == 1 );  ++ri;
+    assert ( ri->get() == 0 );  ++ri;
+    assert ( ri == l.rend ());
+    }
+    }
 }
index 1e323b8..ff5c1a2 100644 (file)
@@ -59,6 +59,10 @@ int main()
     test<unsigned long>();
     test<signed long long>();
     test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>();
+    test<__uint128_t>();
+#endif
     test<float>();
     test<double>();
     test<long double>();
index d6ae228..bbead15 100644 (file)
@@ -129,6 +129,13 @@ int main()
     TEST_NUMERIC_LIMITS(volatile long)
     TEST_NUMERIC_LIMITS(const volatile long)
 
+#ifndef _LIBCPP_HAS_NO_INT128
+    TEST_NUMERIC_LIMITS(__int128_t)
+    TEST_NUMERIC_LIMITS(const __int128_t)
+    TEST_NUMERIC_LIMITS(volatile __int128_t)
+    TEST_NUMERIC_LIMITS(const volatile __int128_t)
+#endif
+
     // long long
     TEST_NUMERIC_LIMITS(long long)
     TEST_NUMERIC_LIMITS(const long long)
@@ -159,6 +166,13 @@ int main()
     TEST_NUMERIC_LIMITS(volatile unsigned long long)
     TEST_NUMERIC_LIMITS(const volatile unsigned long long)
 
+#ifndef _LIBCPP_HAS_NO_INT128
+    TEST_NUMERIC_LIMITS(__uint128_t)
+    TEST_NUMERIC_LIMITS(const __uint128_t)
+    TEST_NUMERIC_LIMITS(volatile __uint128_t)
+    TEST_NUMERIC_LIMITS(const volatile __uint128_t)
+#endif
+
     // float
     TEST_NUMERIC_LIMITS(float)
     TEST_NUMERIC_LIMITS(const float)
index d17d4a9..a452d4e 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(0);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(0);
+    test<__uint128_t>(0);
+#endif
     test<float>(__FLT_DENORM_MIN__);
     test<double>(__DBL_DENORM_MIN__);
     test<long double>(__LDBL_DENORM_MIN__);
index ee6aafe..2dfea08 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, sizeof(long) == 4 ? 32 : 64>();
     test<long long, 63>();
     test<unsigned long long, 64>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 127>();
+    test<__uint128_t, 128>();
+#endif
     test<float, FLT_MANT_DIG>();
     test<double, DBL_MANT_DIG>();
     test<long double, LDBL_MANT_DIG>();
index 73e87fc..2c5302c 100644 (file)
@@ -47,6 +47,10 @@ int main()
     test<unsigned long, sizeof(long) == 4 ? 9 : 19>();
     test<long long, 18>();
     test<unsigned long long, 19>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 38>();
+    test<__uint128_t, 38>();
+#endif
     test<float, FLT_DIG>();
     test<double, DBL_DIG>();
     test<long double, LDBL_DIG>();
index e14de8e..0cce484 100644 (file)
@@ -44,6 +44,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(0);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(0);
+    test<__uint128_t>(0);
+#endif
     test<float>(FLT_EPSILON);
     test<double>(DBL_EPSILON);
     test<long double>(LDBL_EPSILON);
index 4dcd4d4..e618020 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, std::denorm_absent>();
     test<long long, std::denorm_absent>();
     test<unsigned long long, std::denorm_absent>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, std::denorm_absent>();
+    test<__uint128_t, std::denorm_absent>();
+#endif
     test<float, std::denorm_present>();
     test<double, std::denorm_present>();
     test<long double, std::denorm_present>();
index 2982747..660ecf5 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index 506cd92..f8ca205 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, true>();
     test<double, true>();
     test<long double, true>();
index 3c4b5d2..7592171 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, true>();
     test<double, true>();
     test<long double, true>();
index 2edc4cc..d68cd5d 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, true>();
     test<double, true>();
     test<long double, true>();
index d68aa47..a2ccca3 100644 (file)
@@ -46,6 +46,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(0);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(0);
+    test<__uint128_t>(0);
+#endif
     test<float>(1./zero);
     test<double>(1./zero);
     test<long double>(1./zero);
index eb96564..fa714d5 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, true>();
     test<long long, true>();
     test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, true>();
+    test<__uint128_t, true>();
+#endif
     test<float, true>();
     test<double, true>();
     test<long double, true>();
index 6fa300b..b96a0e7 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, true>();
     test<long long, true>();
     test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, true>();
+    test<__uint128_t, true>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index f6b8682..4408714 100644 (file)
@@ -42,7 +42,15 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, true>();
     test<double, true>();
+#if (defined(__ppc__) || defined(__ppc64__))
+    test<long double, false>();
+#else
     test<long double, true>();
+#endif
 }
index a687465..79bc586 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, true>();
     test<long long, true>();
     test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, true>();
+    test<__uint128_t, true>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index 3c44996..fadc015 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, true>();
     test<long long, true>();
     test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, true>();
+    test<__uint128_t, true>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index 504107c..28570fd 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, true>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, true>();
+    test<__uint128_t, false>();
+#endif
     test<float, true>();
     test<double, true>();
     test<long double, true>();
index eb4b030..21090aa 100644 (file)
@@ -50,6 +50,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(LLONG_MIN);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(-__int128_t(__uint128_t(-1)/2) - 1);
+    test<__uint128_t>(0);
+#endif
     test<float>(-FLT_MAX);
     test<double>(-DBL_MAX);
     test<long double>(-LDBL_MAX);
index 29dbfb3..7517aaa 100644 (file)
@@ -50,6 +50,10 @@ int main()
     test<unsigned long>(ULONG_MAX);
     test<long long>(LLONG_MAX);
     test<unsigned long long>(ULLONG_MAX);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(__int128_t(__uint128_t(-1)/2));
+    test<__uint128_t>(__uint128_t(-1));
+#endif
     test<float>(FLT_MAX);
     test<double>(DBL_MAX);
     test<long double>(LDBL_MAX);
index 3a3c76e..de771eb 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 0>();
     test<long long, 0>();
     test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 0>();
+    test<__uint128_t, 0>();
+#endif
     test<float, 2+(FLT_MANT_DIG * 30103)/100000>();
     test<double, 2+(DBL_MANT_DIG * 30103)/100000>();
     test<long double, 2+(LDBL_MANT_DIG * 30103)/100000>();
index dea5043..6b61f7b 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 0>();
     test<long long, 0>();
     test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 0>();
+    test<__uint128_t, 0>();
+#endif
     test<float, FLT_MAX_EXP>();
     test<double, DBL_MAX_EXP>();
     test<long double, LDBL_MAX_EXP>();
index 807b773..927585e 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 0>();
     test<long long, 0>();
     test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 0>();
+    test<__uint128_t, 0>();
+#endif
     test<float, FLT_MAX_10_EXP>();
     test<double, DBL_MAX_10_EXP>();
     test<long double, LDBL_MAX_10_EXP>();
index 52108ee..e72fbba 100644 (file)
@@ -50,6 +50,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(LLONG_MIN);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(-__int128_t(__uint128_t(-1)/2) - 1);
+    test<__uint128_t>(0);
+#endif
     test<float>(FLT_MIN);
     test<double>(DBL_MIN);
     test<long double>(LDBL_MIN);
index 8cf5302..245e844 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 0>();
     test<long long, 0>();
     test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 0>();
+    test<__uint128_t, 0>();
+#endif
     test<float, FLT_MIN_EXP>();
     test<double, DBL_MIN_EXP>();
     test<long double, LDBL_MIN_EXP>();
index 7434e65..b54d46f 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 0>();
     test<long long, 0>();
     test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 0>();
+    test<__uint128_t, 0>();
+#endif
     test<float, FLT_MIN_10_EXP>();
     test<double, DBL_MIN_10_EXP>();
     test<long double, LDBL_MIN_10_EXP>();
index 95464e4..97166f0 100644 (file)
@@ -63,6 +63,10 @@ int main()
     test<unsigned long>();
     test<long long>();
     test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>();
+    test<__uint128_t>();
+#endif
     test<float>();
     test<double>();
     test<long double>();
index 37ad48a..98a2a53 100644 (file)
@@ -43,6 +43,10 @@ int main()
     test<unsigned long, 2>();
     test<long long, 2>();
     test<unsigned long long, 2>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, 2>();
+    test<__uint128_t, 2>();
+#endif
     test<float, FLT_RADIX>();
     test<double, FLT_RADIX>();
     test<long double, FLT_RADIX>();
index f4051cf..5da5c95 100644 (file)
@@ -44,6 +44,10 @@ int main()
     test<unsigned long>(0);
     test<long long>(0);
     test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>(0);
+    test<__uint128_t>(0);
+#endif
     test<float>(0.5);
     test<double>(0.5);
     test<long double>(0.5);
index 1b7e2e0..645f6f7 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, std::round_toward_zero>();
     test<long long, std::round_toward_zero>();
     test<unsigned long long, std::round_toward_zero>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, std::round_toward_zero>();
+    test<__uint128_t, std::round_toward_zero>();
+#endif
     test<float, std::round_to_nearest>();
     test<double, std::round_to_nearest>();
     test<long double, std::round_to_nearest>();
index 1c72d4c..d9df999 100644 (file)
@@ -63,6 +63,10 @@ int main()
     test<unsigned long>();
     test<long long>();
     test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t>();
+    test<__uint128_t>();
+#endif
     test<float>();
     test<double>();
     test<long double>();
index e9dd956..9e2a843 100644 (file)
@@ -42,6 +42,10 @@ int main()
     test<unsigned long, false>();
     test<long long, false>();
     test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, false>();
+    test<__uint128_t, false>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index 611ce56..0345363 100644 (file)
 
 #include <limits>
 
+#if (defined(__i386__) || defined(__x86_64__))
+static const bool integral_types_trap = true;
+#else
+static const bool integral_types_trap = false;
+#endif
+
 template <class T, bool expected>
 void
 test()
@@ -26,22 +32,26 @@ test()
 int main()
 {
     test<bool, false>();
-    test<char, true>();
-    test<signed char, true>();
-    test<unsigned char, true>();
-    test<wchar_t, true>();
+    test<char, integral_types_trap>();
+    test<signed char, integral_types_trap>();
+    test<unsigned char, integral_types_trap>();
+    test<wchar_t, integral_types_trap>();
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
-    test<char16_t, true>();
-    test<char32_t, true>();
+    test<char16_t, integral_types_trap>();
+    test<char32_t, integral_types_trap>();
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
-    test<short, true>();
-    test<unsigned short, true>();
-    test<int, true>();
-    test<unsigned int, true>();
-    test<long, true>();
-    test<unsigned long, true>();
-    test<long long, true>();
-    test<unsigned long long, true>();
+    test<short, integral_types_trap>();
+    test<unsigned short, integral_types_trap>();
+    test<int, integral_types_trap>();
+    test<unsigned int, integral_types_trap>();
+    test<long, integral_types_trap>();
+    test<unsigned long, integral_types_trap>();
+    test<long long, integral_types_trap>();
+    test<unsigned long long, integral_types_trap>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test<__int128_t, integral_types_trap>();
+    test<__uint128_t, integral_types_trap>();
+#endif
     test<float, false>();
     test<double, false>();
     test<long double, false>();
index aa45439..5e64e54 100644 (file)
@@ -181,10 +181,11 @@ if cxx_under_test is None:
     cxx_under_test = getattr(config, 'cxx_under_test', None)
 
     # If no specific cxx_under_test was given, attempt to infer it as clang++.
-    clangxx = lit.util.which('clang++', config.environment['PATH'])
-    if clangxx is not None:
-        cxx_under_test = clangxx
-        lit_config.note("inferred cxx_under_test as: %r" % (cxx_under_test,))
+    if cxx_under_test is None:
+        clangxx = lit.util.which('clang++', config.environment['PATH'])
+        if clangxx is not None:
+            cxx_under_test = clangxx
+    lit_config.note("inferred cxx_under_test as: %r" % (cxx_under_test,))
 if cxx_under_test is None:
     lit_config.fatal('must specify user parameter cxx_under_test '
                      '(e.g., --param=cxx_under_test=clang++)')
index c60ecc5..e474eca 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #include <limits>
 #include <sstream>
 #include <iostream>
index 10b0993..7c74d5b 100644 (file)
 
 #include "hexfloat.h"
 
+// convertible to int/float/double/etc
+template <class T, int N=0>
+struct Value {
+    operator T () { return T(N); }
+};
+
 void test_abs()
 {
     static_assert((std::is_same<decltype(std::abs((float)0)), float>::value), "");
@@ -184,8 +190,8 @@ void test_fabs()
     static_assert((std::is_same<decltype(std::fabs((unsigned long long)0)), double>::value), "");
     static_assert((std::is_same<decltype(std::fabs((double)0)), double>::value), "");
     static_assert((std::is_same<decltype(std::fabs((long double)0)), long double>::value), "");
-    static_assert((std::is_same<decltype(std::fabsf(0)), float>::value), "");
-    static_assert((std::is_same<decltype(std::fabsl(0)), long double>::value), "");
+    static_assert((std::is_same<decltype(std::fabsf(0.0f)), float>::value), "");
+    static_assert((std::is_same<decltype(std::fabsl(0.0L)), long double>::value), "");
     assert(std::fabs(-1) == 1);
 }
 
@@ -333,7 +339,14 @@ void test_pow()
     static_assert((std::is_same<decltype(std::powf(0,0)), float>::value), "");
     static_assert((std::is_same<decltype(std::powl(0,0)), long double>::value), "");
     static_assert((std::is_same<decltype(std::pow((int)0, (int)0)), double>::value), "");
+//     static_assert((std::is_same<decltype(std::pow(Value<int>(), (int)0)), double>::value), "");
+//     static_assert((std::is_same<decltype(std::pow(Value<long double>(), (float)0)), long double>::value), "");
+//     static_assert((std::is_same<decltype(std::pow((float) 0, Value<float>())), float>::value), "");
     assert(std::pow(1,1) == 1);
+//     assert(std::pow(Value<int,1>(), Value<float,1>())  == 1);
+//     assert(std::pow(1.0f, Value<double,1>()) == 1);
+//     assert(std::pow(1.0, Value<int,1>()) == 1);
+//     assert(std::pow(Value<long double,1>(), 1LL) == 1);
 }
 
 void test_sin()
@@ -1279,6 +1292,7 @@ void test_trunc()
 
 int main()
 {
+    test_abs();
     test_acos();
     test_asin();
     test_atan();
index 451fc16..b821109 100644 (file)
@@ -51,7 +51,7 @@ void test_edges()
             assert(std::signbit(x[i].real()) == std::signbit(r.real()));
             assert(std::isnan(r.imag()));
         }
-        else if (abs(x[i].real()) == 1 && x[i].imag() == 0)
+        else if (std::abs(x[i].real()) == 1 && x[i].imag() == 0)
         {
             assert(std::isinf(r.real()));
             assert(std::signbit(x[i].real()) == std::signbit(r.real()));
diff --git a/src/third_party/libc++/trunk/test/re/re.alg/re.alg.match/basic.fail.cpp b/src/third_party/libc++/trunk/test/re/re.alg/re.alg.match/basic.fail.cpp
new file mode 100644 (file)
index 0000000..d3b922c
--- /dev/null
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+//   template <class ST, class SA, class Allocator, class charT, class traits> 
+//   bool regex_match(const basic_string<charT, ST, SA>&&, 
+//                    match_results<
+//                      typename basic_string<charT, ST, SA>::const_iterator, 
+//                      Allocator>&, 
+//                    const basic_regex<charT, traits>&, 
+//                    regex_constants::match_flag_type = 
+//                      regex_constants::match_default) = delete;
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+        std::smatch m;
+        std::regex re{"*"};
+        std::regex_match(std::string("abcde"), m, re);
+    }
+}
+#endif
diff --git a/src/third_party/libc++/trunk/test/re/re.alg/re.alg.search/basic.fail.cpp b/src/third_party/libc++/trunk/test/re/re.alg/re.alg.search/basic.fail.cpp
new file mode 100644 (file)
index 0000000..692ee94
--- /dev/null
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+//   template <class ST, class SA, class Allocator, class charT, class traits> 
+//   bool regex_search(const basic_string<charT, ST, SA>&&, 
+//                     match_results<
+//                       typename basic_string<charT, ST, SA>::const_iterator, 
+//                       Allocator>&, 
+//                     const basic_regex<charT, traits>&, 
+//                     regex_constants::match_flag_type = 
+//                       regex_constants::match_default) = delete;
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+        std::smatch m;
+        std::regex re{"*"};
+        std::regex_search(std::string("abcde"), m, re);
+    }
+}
+#endif
diff --git a/src/third_party/libc++/trunk/test/re/re.iter/re.regiter/re.regiter.cnstr/cnstr.fail.cpp b/src/third_party/libc++/trunk/test/re/re.iter/re.regiter/re.regiter.cnstr/cnstr.fail.cpp
new file mode 100644 (file)
index 0000000..9c17287
--- /dev/null
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// class regex_iterator<BidirectionalIterator, charT, traits>
+
+// regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+//                      const regex_type&& re,
+//                      int submatch = 0,
+//                      regex_constants::match_flag_type m =
+//                        regex_constants::match_default) = delete;
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+        const char phone_book[] = "555-1234, 555-2345, 555-3456";
+        std::cregex_iterator i(
+            std::begin(phone_book), std::end(phone_book), 
+            std::regex("\\d{3}-\\d{4}"));
+    }
+}
+#endif
index 9c6a264..3ec0d6c 100644 (file)
@@ -22,21 +22,76 @@ int main()
         std::regex phone_numbers("\\d{3}-\\d{4}");
         const char phone_book[] = "555-1234, 555-2345, 555-3456";
         std::cregex_iterator i(std::begin(phone_book), std::end(phone_book), phone_numbers);
+        std::cregex_iterator i2 = i;
         assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
         assert((*i).size() == 1);
         assert((*i).position() == 0);
         assert((*i).str() == "555-1234");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
         i++;
         assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
         assert((*i).size() == 1);
         assert((*i).position() == 10);
         assert((*i).str() == "555-2345");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
         i++;
         assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
         assert((*i).size() == 1);
         assert((*i).position() == 20);
         assert((*i).str() == "555-3456");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
         i++;
         assert(i == std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
+    }
+    {
+        std::regex phone_numbers("\\d{3}-\\d{4}");
+        const char phone_book[] = "555-1234, 555-2345, 555-3456";
+        std::cregex_iterator i(std::begin(phone_book), std::end(phone_book), phone_numbers);
+        std::cregex_iterator i2 = i;
+        assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
+        assert((*i).size() == 1);
+        assert((*i).position() == 0);
+        assert((*i).str() == "555-1234");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
+        ++i;
+        assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
+        assert((*i).size() == 1);
+        assert((*i).position() == 10);
+        assert((*i).str() == "555-2345");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
+        ++i;
+        assert(i != std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
+        assert((*i).size() == 1);
+        assert((*i).position() == 20);
+        assert((*i).str() == "555-3456");
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
+        ++i;
+        assert(i == std::cregex_iterator());
+        assert(i2!= std::cregex_iterator());
+        assert((*i2).size() == 1);
+        assert((*i2).position() == 0);
+        assert((*i2).str() == "555-1234");
     }
 }
diff --git a/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/array.fail.cpp b/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/array.fail.cpp
new file mode 100644 (file)
index 0000000..ed3c9fe
--- /dev/null
@@ -0,0 +1,41 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// class regex_iterator<BidirectionalIterator, charT, traits>
+
+// template <size_t N>
+// regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+//                      const regex_type&& re,
+//                      const int (&submatches)[N],
+//                      regex_constants::match_flag_type m =
+//                                              regex_constants::match_default);
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <vector>
+#include <cassert>
+
+int main()
+{
+    {
+        std::regex phone_numbers("\\d{3}-(\\d{4})");
+        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
+        const int indices[] = {-1, 0, 1};
+        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
+                                     std::regex("\\d{3}-\\d{4}"), indices);
+    }
+}
+#endif
diff --git a/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/init.fail.cpp b/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/init.fail.cpp
new file mode 100644 (file)
index 0000000..13120f3
--- /dev/null
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// class regex_iterator<BidirectionalIterator, charT, traits>
+
+// regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+//                      const regex_type&& re,
+//                      initializer_list<int> submatches,
+//                      regex_constants::match_flag_type m =
+//                                              regex_constants::match_default);
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+        std::regex phone_numbers("\\d{3}-(\\d{4})");
+        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
+        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
+                                      std::regex("\\d{3}-\\d{4}"), {-1, 0, 1});
+    }
+}
+#endif
diff --git a/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/int.fail.cpp b/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/int.fail.cpp
new file mode 100644 (file)
index 0000000..dba11c2
--- /dev/null
@@ -0,0 +1,37 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// class regex_iterator<BidirectionalIterator, charT, traits>
+
+// regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+//                      const regex_type&& re, int submatch = 0,
+//                      regex_constants::match_flag_type m =
+//                                              regex_constants::match_default);
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+        std::regex phone_numbers("\\d{3}-\\d{4}");
+        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
+        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
+                                     std::regex("\\d{3}-\\d{4}"), -1);
+    }
+}
+#endif
diff --git a/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/vector.fail.cpp b/src/third_party/libc++/trunk/test/re/re.iter/re.tokiter/re.tokiter.cnstr/vector.fail.cpp
new file mode 100644 (file)
index 0000000..fd75a8b
--- /dev/null
@@ -0,0 +1,42 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// <regex>
+
+// class regex_iterator<BidirectionalIterator, charT, traits>
+
+// template <std::size_t N>
+// regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+//                      const regex_type&& re,
+//                      const std::vector<int>& submatches,
+//                      regex_constants::match_flag_type m =
+//                                              regex_constants::match_default);
+
+#include <__config>
+
+#if _LIBCPP_STD_VER <= 11
+#error
+#else
+
+#include <regex>
+#include <cassert>
+
+int main()
+{
+    {
+         std::regex phone_numbers("\\d{3}-(\\d{4})");
+        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
+        std::vector<int> v;
+        v.push_back(-1);
+        v.push_back(-1);
+        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
+                                     std::regex("\\d{3}-\\d{4}"), v);
+    }
+}
+#endif
index d179195..727ab7a 100644 (file)
@@ -23,19 +23,82 @@ int main()
         const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
         std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
                                      phone_numbers, -1);
-        assert(i != std::cregex_token_iterator());
+        std::cregex_token_iterator i2 = i;
+        std::cregex_token_iterator i3;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
         assert(i->str() == "start ");
-        i++;
-        assert(i != std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        i3 = i++;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
         assert(i->str() == ", ");
-        i++;
-        assert(i != std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        assert(i3->str() == "start ");
+        i3 = i++;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
         assert(i->str() == ", ");
-        i++;
-        assert(i != std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        assert(i3->str() == ", ");
+        i3 = i++;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
         assert(i->str() == " end");
-        i++;
-        assert(i == std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        assert(i3->str() == ", ");
+        i3 = i++;
+        assert(i  == std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        assert(i3->str() == " end");
+    }
+    {
+        std::regex phone_numbers("\\d{3}-\\d{4}");
+        const char phone_book[] = "start 555-1234, 555-2345, 555-3456 end";
+        std::cregex_token_iterator i(std::begin(phone_book), std::end(phone_book)-1,
+                                     phone_numbers, -1);
+        std::cregex_token_iterator i2 = i;
+        std::cregex_token_iterator i3;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i->str() == "start ");
+        assert(i2->str() == "start ");
+        i3 = i;
+        ++i;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
+        assert(i->str() == ", ");
+        assert(i2->str() == "start ");
+        assert(i3->str() == "start ");
+        i3 = i;
+        ++i;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
+        assert(i->str() == ", ");
+        assert(i2->str() == "start ");
+        assert(i3->str() == ", ");
+        i3 = i;
+        ++i;
+        assert(i  != std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
+        assert(i->str() == " end");
+        assert(i2->str() == "start ");
+        assert(i3->str() == ", ");
+        i3 = i;
+        ++i;
+        assert(i  == std::cregex_token_iterator());
+        assert(i2 != std::cregex_token_iterator());
+        assert(i3 != std::cregex_token_iterator());
+        assert(i2->str() == "start ");
+        assert(i3->str() == " end");
     }
     {
         std::regex phone_numbers("\\d{3}-\\d{4}");
index 374815a..4d55383 100644 (file)
@@ -35,7 +35,7 @@ test()
     typedef std::match_results<CharT*> MR;
     static_assert((std::is_same<typename MR::value_type, std::sub_match<CharT*> >::value), "");
     static_assert((std::is_same<typename MR::const_reference, const std::sub_match<CharT*>& >::value), "");
-    static_assert((std::is_same<typename MR::reference, const std::sub_match<CharT*>& >::value), "");
+    static_assert((std::is_same<typename MR::reference, std::sub_match<CharT*>& >::value), "");
     static_assert((!std::is_same<typename MR::const_iterator, void>::value), "");
     static_assert((std::is_same<typename MR::difference_type, std::ptrdiff_t>::value), "");
     static_assert((std::is_same<typename MR::size_type, std::size_t>::value), "");
index 6819fb4..75c0888 100644 (file)
@@ -115,9 +115,9 @@ int main()
     test("xdigit", std::ctype_base::xdigit, true);
     test("Xdigit", std::ctype_base::xdigit, true);
 
-    test("dig", 0);
-    test("", 0);
-    test("digits", 0);
+    test("dig", std::ctype_base::mask());
+    test("", std::ctype_base::mask());
+    test("digits", std::ctype_base::mask());
 
     test(L"d", std::ctype_base::digit);
     test(L"D", std::ctype_base::digit);
@@ -203,7 +203,7 @@ int main()
     test(L"xdigit", std::ctype_base::xdigit, true);
     test(L"Xdigit", std::ctype_base::xdigit, true);
 
-    test(L"dig", 0);
-    test(L"", 0);
-    test(L"digits", 0);
+    test(L"dig", std::ctype_base::mask());
+    test(L"", std::ctype_base::mask());
+    test(L"digits", std::ctype_base::mask());
 }
index 37939a2..fa6bb80 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef INPUT_ITERATOR_H
 #define INPUT_ITERATOR_H
 
index ac74f20..e8f54f4 100644 (file)
@@ -10,7 +10,8 @@
 // <string>
 
 // basic_string<charT,traits,Allocator>&
-//   append(const basic_string<charT,traits>& str, size_type pos, size_type n);
+//   append(const basic_string<charT,traits>& str, size_type pos, size_type n = npos);
+//  the "= npos" was added for C++14
 
 #include <string>
 #include <stdexcept>
@@ -35,6 +36,23 @@ test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected)
     }
 }
 
+template <class S>
+void
+test_npos(S s, S str, typename S::size_type pos, S expected)
+{
+    try
+    {
+        s.append(str, pos);
+        assert(s.__invariants());
+        assert(pos <= str.size());
+        assert(s == expected);
+    }
+    catch (std::out_of_range&)
+    {
+        assert(pos > str.size());
+    }
+}
+
 int main()
 {
     {
@@ -87,4 +105,14 @@ int main()
          S("123456789012345678906789012345"));
     }
 #endif
+    {
+    typedef std::string S;
+    test_npos(S(), S(), 0, S());
+    test_npos(S(), S(), 1, S());
+    test_npos(S(), S("12345"), 0, S("12345"));
+    test_npos(S(), S("12345"), 1, S("2345"));
+    test_npos(S(), S("12345"), 3, S("45"));
+    test_npos(S(), S("12345"), 5, S(""));
+    test_npos(S(), S("12345"), 6, S("not happening"));
+    }
 }
index 116673c..5f5983e 100644 (file)
@@ -10,7 +10,8 @@
 // <string>
 
 // basic_string<charT,traits,Allocator>&
-//   assign(const basic_string<charT,traits>& str, size_type pos, size_type n);
+//   assign(const basic_string<charT,traits>& str, size_type pos, size_type n=npos);
+// the =npos was added for C++14
 
 #include <string>
 #include <stdexcept>
@@ -35,6 +36,23 @@ test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected)
     }
 }
 
+template <class S>
+void
+test_npos(S s, S str, typename S::size_type pos, S expected)
+{
+    try
+    {
+        s.assign(str, pos);
+        assert(s.__invariants());
+        assert(pos <= str.size());
+        assert(s == expected);
+    }
+    catch (std::out_of_range&)
+    {
+        assert(pos > str.size());
+    }
+}
+
 int main()
 {
     {
@@ -87,4 +105,14 @@ int main()
          S("6789012345"));
     }
 #endif
+    {
+    typedef std::string S;
+    test_npos(S(), S(), 0, S());
+    test_npos(S(), S(), 1, S());
+    test_npos(S(), S("12345"), 0, S("12345"));
+    test_npos(S(), S("12345"), 1, S("2345"));
+    test_npos(S(), S("12345"), 3, S("45"));
+    test_npos(S(), S("12345"), 5, S(""));
+    test_npos(S(), S("12345"), 6, S("not happening"));
+    }
 }
index b7317a3..51c9e72 100644 (file)
@@ -11,7 +11,8 @@
 
 // basic_string<charT,traits,Allocator>&
 //   insert(size_type pos1, const basic_string<charT,traits,Allocator>& str,
-//          size_type pos2, size_type n);
+//          size_type pos2, size_type n=npos);
+// the "=npos" was added in C++14
 
 #include <string>
 #include <stdexcept>
@@ -41,6 +42,27 @@ test(S s, typename S::size_type pos1, S str, typename S::size_type pos2,
 }
 
 template <class S>
+void
+test_npos(S s, typename S::size_type pos1, S str, typename S::size_type pos2, S expected)
+{
+    typename S::size_type old_size = s.size();
+    S s0 = s;
+    try
+    {
+        s.insert(pos1, str, pos2);
+        assert(s.__invariants());
+        assert(pos1 <= old_size && pos2 <= str.size());
+        assert(s == expected);
+    }
+    catch (std::out_of_range&)
+    {
+        assert(pos1 > old_size || pos2 > str.size());
+        assert(s == s0);
+    }
+}
+
+
+template <class S>
 void test0()
 {
     test(S(""), 0, S(""), 0, 0, S(""));
@@ -1670,6 +1692,23 @@ void test29()
     test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 21, 0, S("can't happen"));
 }
 
+template <class S>
+void test30()
+{
+    test_npos(S(""), 0, S("12345678901234567890"),  0, S("12345678901234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"),  1, S( "2345678901234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"),  2, S(  "345678901234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"),  3, S(   "45678901234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"),  5, S(     "678901234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"), 10, S(          "1234567890"));
+    test_npos(S(""), 0, S("12345678901234567890"), 21, S("can't happen"));
+    test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, S("abcdefghij12345klmnopqrst"));
+    test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, S("abcdefghij2345klmnopqrst"));
+    test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 3, S("abcdefghij45klmnopqrst"));
+    test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, S("abcdefghijklmnopqrst"));
+    test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 6, S("can't happen"));
+}
+
 int main()
 {
     {
@@ -1704,6 +1743,7 @@ int main()
     test27<S>();
     test28<S>();
     test29<S>();
+    test30<S>();
     }
 #if __cplusplus >= 201103L
     {
@@ -1738,6 +1778,7 @@ int main()
     test27<S>();
     test28<S>();
     test29<S>();
+    test30<S>();
     }
 #endif
 }
index 25e5c44..ef0de89 100644 (file)
@@ -11,7 +11,8 @@
 
 // basic_string<charT,traits,Allocator>&
 //   replace(size_type pos1, size_type n1, const basic_string<charT,traits,Allocator>& str,
-//           size_type pos2, size_type n2);
+//           size_type pos2, size_type n2=npos);
+//  the "=npos" was added in C++14
 
 #include <string>
 #include <stdexcept>
@@ -46,6 +47,32 @@ test(S s, typename S::size_type pos1, typename S::size_type n1,
 }
 
 template <class S>
+void
+test_npos(S s, typename S::size_type pos1, typename S::size_type n1,
+     S str, typename S::size_type pos2,
+     S expected)
+{
+    typename S::size_type old_size = s.size();
+    S s0 = s;
+    try
+    {
+        s.replace(pos1, n1, str, pos2);
+        assert(s.__invariants());
+        assert(pos1 <= old_size && pos2 <= str.size());
+        assert(s == expected);
+        typename S::size_type xlen = std::min(n1, old_size - pos1);
+        typename S::size_type rlen = std::min(S::npos, str.size() - pos2);
+        assert(s.size() == old_size - xlen + rlen);
+    }
+    catch (std::out_of_range&)
+    {
+        assert(pos1 > old_size || pos2 > str.size());
+        assert(s == s0);
+    }
+}
+
+
+template <class S>
 void test0()
 {
     test(S(""), 0, 0, S(""), 0, 0, S(""));
@@ -5796,6 +5823,24 @@ void test54()
     test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
 }
 
+template <class S>
+void test55()
+{
+    test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, S("abcdefghi1234567890"));
+    test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, S("abcdefghi0"));
+    test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
+    test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
+    test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 21, S("can't happen"));
+    test_npos(S("abcdefghij"), 9, 2, S(""), 0, S("abcdefghi"));
+    test_npos(S("abcdefghij"), 9, 2, S(""), 1, S("can't happen"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 0, S("abcdefghi12345"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 1, S("abcdefghi2345"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 2, S("abcdefghi345"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 4, S("abcdefghi5"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 5, S("abcdefghi"));
+    test_npos(S("abcdefghij"), 9, 2, S("12345"), 6, S("can't happen"));
+}
+
 int main()
 {
     {
@@ -5855,6 +5900,7 @@ int main()
     test52<S>();
     test53<S>();
     test54<S>();
+    test55<S>();
     }
 #if __cplusplus >= 201103L
     {
@@ -5914,6 +5960,7 @@ int main()
     test52<S>();
     test53<S>();
     test54<S>();
+    test55<S>();
     }
 #endif
 }
index 29eba9a..122e6e9 100644 (file)
@@ -10,7 +10,8 @@
 // <string>
 
 // int compare(size_type pos1, size_type n1, const basic_string& str,
-//             size_type pos2, size_type n2) const;
+//             size_type pos2, size_type n2=npos) const;
+//  the "=npos" was added in C++14
 
 #include <string>
 #include <stdexcept>
@@ -45,6 +46,23 @@ test(const S& s, typename S::size_type pos1, typename S::size_type n1,
 }
 
 template <class S>
+void
+test_npos(const S& s, typename S::size_type pos1, typename S::size_type n1,
+     const S& str, typename S::size_type pos2, int x)
+{
+    try
+    {
+        assert(sign(s.compare(pos1, n1, str, pos2)) == sign(x));
+        assert(pos1 <= s.size());
+        assert(pos2 <= str.size());
+    }
+    catch (std::out_of_range&)
+    {
+        assert(pos1 > s.size() || pos2 > str.size());
+    }
+}
+
+template <class S>
 void test0()
 {
     test(S(""), 0, 0, S(""), 0, 0, 0);
@@ -5795,6 +5813,16 @@ void test54()
     test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
 }
 
+template<class S>
+void test55()
+{
+    test_npos(S(""), 0, 0, S(""), 0, 0);
+    test_npos(S(""), 0, 0, S("abcde"), 0, -5);
+    test_npos(S("abcde"), 0, 0, S("abcdefghij"), 0, -10);
+    test_npos(S("abcde"), 0, 0, S("abcdefghij"), 1, -9);
+    test_npos(S("abcde"), 0, 0, S("abcdefghij"), 5, -5);
+}
+
 int main()
 {
     {
@@ -5854,6 +5882,7 @@ int main()
     test52<S>();
     test53<S>();
     test54<S>();
+    test55<S>();
     }
 #if __cplusplus >= 201103L
     {
@@ -5913,6 +5942,7 @@ int main()
     test52<S>();
     test53<S>();
     test54<S>();
+    test55<S>();
     }
 #endif
 }
index 45268f7..f635b1d 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef TEST_TRAITS_H
 #define TEST_TRAITS_H
 
index bdcf46d..a3d4303 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef DEFAULTONLY_H
 #define DEFAULTONLY_H
 
index e5e0a13..5372c07 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef ALLOCATORS_H
 #define ALLOCATORS_H
 
index c0d28e5..f3f08ca 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef MIN_ALLOCATOR_H
 #define MIN_ALLOCATOR_H
 
diff --git a/src/third_party/libc++/trunk/test/support/nasty_containers.hpp b/src/third_party/libc++/trunk/test/support/nasty_containers.hpp
new file mode 100644 (file)
index 0000000..5a2e195
--- /dev/null
@@ -0,0 +1,282 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef NASTY_VECTOR_H
+#define NASTY_VECTOR_H
+
+#include <vector>
+#include <list>
+
+template <class T>
+class nasty_vector
+{
+public:
+    typedef typename std::vector<T>                           nested_container;
+    typedef typename nested_container::value_type             value_type;
+    typedef typename nested_container::reference              reference;
+    typedef typename nested_container::const_reference        const_reference;
+    typedef typename nested_container::iterator               iterator;
+    typedef typename nested_container::const_iterator         const_iterator;
+
+    typedef typename nested_container::size_type              size_type;
+    typedef typename nested_container::difference_type        difference_type;
+    typedef typename nested_container::pointer                pointer;
+    typedef typename nested_container::const_pointer          const_pointer;
+
+    typedef typename nested_container::reverse_iterator       reverse_iterator;
+    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
+
+    nasty_vector() : v_() {}
+    explicit nasty_vector(size_type n) : v_(n) {}
+    nasty_vector(size_type n, const value_type& value) : v_(n, value) {}
+    template <class InputIterator> nasty_vector(InputIterator first, InputIterator last) : v_(first, last) {}
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    nasty_vector(std::initializer_list<value_type> il) : v_(il) {}
+#endif
+    ~nasty_vector() {}
+
+    template <class InputIterator>
+        void assign(InputIterator first, InputIterator last) { v_.assign(first, last); }
+    void assign(size_type n, const value_type& u) { v_.assign(n, u); }
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    void assign(std::initializer_list<value_type> il)  { v_.assign(il); }
+#endif
+
+    iterator               begin() _NOEXCEPT         { return v_.begin(); }
+    const_iterator         begin()   const _NOEXCEPT { return v_.begin(); }
+    iterator               end() _NOEXCEPT           { return v_.end(); }
+    const_iterator         end()     const _NOEXCEPT { return v_.end(); }
+
+    reverse_iterator       rbegin() _NOEXCEPT        { return v_.rbegin(); }
+    const_reverse_iterator rbegin()  const _NOEXCEPT { return v_.rbegin(); }
+    reverse_iterator       rend() _NOEXCEPT          { return v_.rend(); }
+    const_reverse_iterator rend()    const _NOEXCEPT { return v_.rend(); }
+
+    const_iterator         cbegin()  const _NOEXCEPT { return v_.cbegin(); }
+    const_iterator         cend()    const _NOEXCEPT { return v_.cend(); }
+    const_reverse_iterator crbegin() const _NOEXCEPT { return v_.crbegin(); }
+    const_reverse_iterator crend()   const _NOEXCEPT { return v_.crend(); }
+
+    size_type size() const _NOEXCEPT      { return v_.size(); }
+    size_type max_size() const _NOEXCEPT  { return v_.max_size(); }
+    size_type capacity() const _NOEXCEPT  { return v_.capacity(); }
+    bool empty() const _NOEXCEPT          { return v_.empty(); }
+    void reserve(size_type n)             { v_.reserve(n); };
+    void shrink_to_fit() _NOEXCEPT        { v_.shrink_to_fit(); }
+
+    reference       operator[](size_type n)       { return v_[n]; }
+    const_reference operator[](size_type n) const { return v_[n]; }
+    reference       at(size_type n)               { return v_.at(n); }
+    const_reference at(size_type n) const         { return v_.at(n); }
+
+    reference       front()       { return v_.front(); }
+    const_reference front() const { return v_.front(); }
+    reference       back()        { return v_.back(); }
+    const_reference back() const  { return v_.back(); }
+
+    value_type*       data() _NOEXCEPT       { return v_.data(); }
+    const value_type* data() const _NOEXCEPT { return v_.data(); }
+
+    void push_back(const value_type& x)     { v_.push_back(x); }
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    void push_back(value_type&& x)          { v_.push_back(std::forward<value_type&&>(x)); }
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+    template <class... Args>
+        void emplace_back(Args&&... args)   { v_.emplace_back(std::forward<Args>(args)...); }
+#endif
+#endif
+    void pop_back()                         { v_.pop_back(); }
+
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
+    { return v_.emplace(pos, std::forward<Args>(args)...); }
+#endif
+#endif
+    
+    iterator insert(const_iterator pos, const value_type& x) { return v_.insert(pos, x); }
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    iterator insert(const_iterator pos, value_type&& x)      { return v_.insert(pos, std::forward<value_type>(x)); }
+#endif
+    iterator insert(const_iterator pos, size_type n, const value_type& x) { return v_.insert(pos, n, x); }
+    template <class InputIterator>
+        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
+    { return v_.insert(pos, first, last); }
+
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return v_.insert(pos, il); }
+#endif
+
+    iterator erase(const_iterator pos)                        { return v_.erase(pos); }
+    iterator erase(const_iterator first, const_iterator last) { return v_.erase(first, last); }
+
+    void clear() _NOEXCEPT { v_.clear(); }
+
+    void resize(size_type sz)                      { v_.resize(sz); }
+    void resize(size_type sz, const value_type& c) { v_.resize(sz, c); }
+
+    void swap(nasty_vector &nv) _NOEXCEPT_(std::__is_nothrow_swappable<nested_container>::value)
+    { v_.swap(nv.v_); }
+    
+    nasty_vector *operator &()             { return nullptr; }  // nasty
+    const nasty_vector *operator &() const { return nullptr; }  // nasty
+    
+    nested_container v_;
+};
+
+template <class T>
+bool operator==(const nasty_vector<T>& x, const nasty_vector<T>& y) { return x.v_ == y.v_; }
+
+template <class T>
+class nasty_list
+{
+public:
+
+    typedef typename std::list<T>                             nested_container;
+    typedef typename nested_container::value_type             value_type;
+    typedef typename nested_container::reference              reference;
+    typedef typename nested_container::const_reference        const_reference;
+    typedef typename nested_container::iterator               iterator;
+    typedef typename nested_container::const_iterator         const_iterator;
+
+    typedef typename nested_container::size_type              size_type;
+    typedef typename nested_container::difference_type        difference_type;
+    typedef typename nested_container::pointer                pointer;
+    typedef typename nested_container::const_pointer          const_pointer;
+
+    typedef typename nested_container::reverse_iterator       reverse_iterator;
+    typedef typename nested_container::const_reverse_iterator const_reverse_iterator;
+
+    nasty_list() : l_() {}
+    explicit nasty_list(size_type n)  : l_(n) {}
+    nasty_list(size_type n, const value_type& value)  : l_(n,value) {}
+    template <class Iter>
+        nasty_list(Iter first, Iter last)  : l_(first, last) {}
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    nasty_list(std::initializer_list<value_type> il) : l_(il) {}
+#endif
+
+    ~nasty_list() {}
+
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    nasty_list& operator=(std::initializer_list<value_type> il) { l_ = il; return *this; }
+#endif
+    template <class Iter>
+        void assign(Iter first, Iter last) { l_.assign(first, last); }
+    void assign(size_type n, const value_type& t) { l_.assign(n, t); }
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    void assign(std::initializer_list<value_type> il) { l_.assign(il); }
+#endif
+
+
+    iterator               begin() _NOEXCEPT         { return l_.begin(); }
+    const_iterator         begin()   const _NOEXCEPT { return l_.begin(); }
+    iterator               end() _NOEXCEPT           { return l_.end(); }
+    const_iterator         end()     const _NOEXCEPT { return l_.end(); }
+
+    reverse_iterator       rbegin() _NOEXCEPT        { return l_.rbegin(); }
+    const_reverse_iterator rbegin()  const _NOEXCEPT { return l_.rbegin(); }
+    reverse_iterator       rend() _NOEXCEPT          { return l_.rend(); }
+    const_reverse_iterator rend()    const _NOEXCEPT { return l_.rend(); }
+
+    const_iterator         cbegin()  const _NOEXCEPT { return l_.cbegin(); }
+    const_iterator         cend()    const _NOEXCEPT { return l_.cend(); }
+    const_reverse_iterator crbegin() const _NOEXCEPT { return l_.crbegin(); }
+    const_reverse_iterator crend()   const _NOEXCEPT { return l_.crend(); }
+
+    reference       front()       { return l_.front(); }
+    const_reference front() const { return l_.front(); }
+    reference       back()        { return l_.back(); }
+    const_reference back() const  { return l_.back(); }
+
+    size_type size() const _NOEXCEPT      { return l_.size(); }
+    size_type max_size() const _NOEXCEPT  { return l_.max_size(); }
+    bool empty() const _NOEXCEPT          { return l_.empty(); }
+
+    void push_front(const value_type& x)    { l_.push_front(x); }
+    void push_back(const value_type& x)     { l_.push_back(x); }
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    void push_back(value_type&& x)          { l_.push_back(std::forward<value_type&&>(x)); }
+    void push_front(value_type&& x)         { l_.push_back(std::forward<value_type&&>(x)); }
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+    template <class... Args>
+        void emplace_back(Args&&... args)   { l_.emplace_back(std::forward<Args>(args)...); }
+    template <class... Args>
+        void emplace_front(Args&&... args)  { l_.emplace_front(std::forward<Args>(args)...); }
+#endif
+#endif
+    void pop_front()                        { l_.pop_front(); }
+    void pop_back()                         { l_.pop_back(); }
+
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+    template <class... Args> iterator emplace(const_iterator pos, Args&&... args)
+    { return l_.emplace(pos, std::forward<Args>(args)...); }
+#endif
+#endif
+    
+    iterator insert(const_iterator pos, const value_type& x) { return l_.insert(pos, x); }
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    iterator insert(const_iterator pos, value_type&& x)      { return l_.insert(pos, std::forward<value_type>(x)); }
+#endif
+    iterator insert(const_iterator pos, size_type n, const value_type& x) { return l_.insert(pos, n, x); }
+    template <class InputIterator>
+        iterator insert(const_iterator pos, InputIterator first, InputIterator last)
+    { return l_.insert(pos, first, last); }
+
+#ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
+    iterator insert(const_iterator pos, std::initializer_list<value_type> il) { return l_.insert(pos, il); }
+#endif
+
+    iterator erase(const_iterator pos)                      { return l_.erase(pos); }
+    iterator erase(const_iterator pos, const_iterator last) { return l_.erase(pos, last); }
+
+    void resize(size_type sz)                      { l_.resize(); }
+    void resize(size_type sz, const value_type& c) { l_.resize(c); }
+
+    void swap(nasty_list &nl) _NOEXCEPT_(std::__is_nothrow_swappable<nested_container>::value)
+    { l_.swap(nl.l_); }
+    
+    void clear() _NOEXCEPT { l_.clear(); }
+
+//     void splice(const_iterator position, list& x);
+//     void splice(const_iterator position, list&& x);
+//     void splice(const_iterator position, list& x, const_iterator i);
+//     void splice(const_iterator position, list&& x, const_iterator i);
+//     void splice(const_iterator position, list& x, const_iterator first,
+//                                                   const_iterator last);
+//     void splice(const_iterator position, list&& x, const_iterator first,
+//                                                   const_iterator last);
+// 
+//     void remove(const value_type& value);
+//     template <class Pred> void remove_if(Pred pred);
+//     void unique();
+//     template <class BinaryPredicate>
+//         void unique(BinaryPredicate binary_pred);
+//     void merge(list& x);
+//     void merge(list&& x);
+//     template <class Compare>
+//         void merge(list& x, Compare comp);
+//     template <class Compare>
+//         void merge(list&& x, Compare comp);
+//     void sort();
+//     template <class Compare>
+//         void sort(Compare comp);
+//     void reverse() noexcept;
+
+    nasty_list *operator &()             { return nullptr; }  // nasty
+    const nasty_list *operator &() const { return nullptr; }  // nasty
+
+    nested_container l_;
+};
+
+template <class T>
+bool operator==(const nasty_list<T>& x, const nasty_list<T>& y) { return x.l_ == y.l_; }
+
+#endif
index 3f6f0d3..a9fcf68 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef __PRIVATE_CONSTRUCTOR__H
 #define __PRIVATE_CONSTRUCTOR__H
 
index 3ec7f47..99f72a0 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef TEST_ALLOCATOR_H
 #define TEST_ALLOCATOR_H
 
index 81f064d..5bd6df7 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef ITERATORS_H
 #define ITERATORS_H
 
index 18b0814..821292e 100755 (executable)
@@ -36,9 +36,13 @@ then
        fi
 fi
 
+if [ -z "$CXX_LANG" ]
+then
+    CXX_LANG=c++11
+fi
 if [ -z "$OPTIONS" ]
 then
-       OPTIONS="-std=c++11 -stdlib=libc++"
+       OPTIONS="-std=${CXX_LANG} -stdlib=libc++"
 fi
 OPTIONS="$OPTIONS -I$LIBCXX_ROOT/test/support"
 
@@ -76,9 +80,9 @@ IMPLEMENTED_PASS=0
 afunc() {
        fail=0
        pass=0
-       if (ls *.fail.cpp > /dev/null 2>&1)
+       if (ls ${TEST_PREFIX}*fail.cpp > /dev/null 2>&1)
        then
-               for FILE in $(ls *.fail.cpp); do
+               for FILE in $(ls ${TEST_PREFIX}*fail.cpp); do
                        if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS -o ./$TEST_EXE > /dev/null 2>&1
                        then
                                rm ./$TEST_EXE
@@ -90,9 +94,9 @@ afunc() {
                done
        fi
 
-       if (ls *.pass.cpp > /dev/null 2>&1)
+       if (ls ${TEST_PREFIX}*pass.cpp > /dev/null 2>&1)
        then
-               for FILE in $(ls *.pass.cpp); do
+               for FILE in $(ls ${TEST_PREFIX}*pass.cpp); do
             if [ "$VERBOSE" ]
             then
                echo "Running test: " $FILE
index 697eb08..f67abe4 100644 (file)
@@ -55,6 +55,12 @@ std::unique_ptr<int> f4(std::unique_ptr<int>&& p)
     return std::move(p);
 }
 
+void f5(int i)
+{
+    std::this_thread::sleep_for(ms(200));
+    throw i;
+}
+
 int main()
 {
     {
@@ -174,4 +180,17 @@ int main()
         Clock::time_point t1 = Clock::now();
         assert(t1-t0 < ms(100));
     }
+
+    {
+        std::future<void> f = std::async(f5, 3);
+        std::this_thread::sleep_for(ms(300));
+        try { f.get(); assert (false); } catch ( int ex ) {}
+    }
+
+    {
+        std::future<void> f = std::async(std::launch::deferred, f5, 3);
+        std::this_thread::sleep_for(ms(300));
+        try { f.get(); assert (false); } catch ( int ex ) {}
+    }
+
 }
index 7009f30..58e9982 100644 (file)
@@ -35,6 +35,8 @@ public:
 int A::n_moves = 0;
 int A::n_copies = 0;
 
+int func(int i) { return i; }
+
 int main()
 {
     {
@@ -58,4 +60,18 @@ int main()
         assert(A::n_copies > 0);
         assert(A::n_moves > 0);
     }
+    {
+        std::packaged_task<int(int)> p(&func);
+        assert(p.valid());
+        std::future<int> f = p.get_future();
+        p(4);
+        assert(f.get() == 4);
+    }
+    {
+        std::packaged_task<int(int)> p(func);
+        assert(p.valid());
+        std::future<int> f = p.get_future();
+        p(4);
+        assert(f.get() == 4);
+    }
 }
index 2e0cf5d..e7070c5 100644 (file)
@@ -37,6 +37,8 @@ public:
 int A::n_moves = 0;
 int A::n_copies = 0;
 
+int func(int i) { return i; }
+
 int main()
 {
     {
@@ -52,7 +54,7 @@ int main()
     }
     assert(test_alloc_base::count == 0);
     A::n_copies = 0;
-    A::n_copies = 0;
+    A::n_moves  = 0;
     {
         A a(5);
         std::packaged_task<double(int, char)> p(std::allocator_arg,
@@ -66,4 +68,28 @@ int main()
         assert(A::n_moves > 0);
     }
     assert(test_alloc_base::count == 0);
+    A::n_copies = 0;
+    A::n_moves  = 0;
+    {
+        A a(5);
+        std::packaged_task<int(int)> p(std::allocator_arg, test_allocator<A>(), &func);
+        assert(test_alloc_base::count > 0);
+        assert(p.valid());
+        std::future<int> f = p.get_future();
+        p(4);
+        assert(f.get() == 4);
+    }
+    assert(test_alloc_base::count == 0);
+    A::n_copies = 0;
+    A::n_moves  = 0;
+    {
+        A a(5);
+        std::packaged_task<int(int)> p(std::allocator_arg, test_allocator<A>(), func);
+        assert(test_alloc_base::count > 0);
+        assert(p.valid());
+        std::future<int> f = p.get_future();
+        p(4);
+        assert(f.get() == 4);
+    }
+    assert(test_alloc_base::count == 0);
 }
index e04d432..ea70ada 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef TEST_ALLOCATOR_H
 #define TEST_ALLOCATOR_H
 
index d897657..d5e0947 100644 (file)
@@ -16,6 +16,6 @@
 
 int main()
 {
-    assert(std::cv_status::no_timeout == 0);
-    assert(std::cv_status::timeout == 1);
+    assert(static_cast<int>(std::cv_status::no_timeout) == 0);
+    assert(static_cast<int>(std::cv_status::timeout)    == 1);
 }
diff --git a/src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait.exception.pass.cpp b/src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait.exception.pass.cpp
new file mode 100644 (file)
index 0000000..dd4879d
--- /dev/null
@@ -0,0 +1,52 @@
+#include <thread>
+#include <condition_variable>
+#include <mutex>
+#include <chrono>
+#include <iostream>
+#include <cassert>
+
+void f1()
+{
+    std::exit(0);
+}
+
+struct Mutex
+{
+    unsigned state = 0;
+    Mutex() = default;
+    ~Mutex() = default;
+    Mutex(const Mutex&) = delete;
+    Mutex& operator=(const Mutex&) = delete;
+
+    void lock()
+    {
+    if (++state == 2)
+        throw 1;  // this throw should end up calling terminate()
+    }
+
+    void unlock() {}
+};
+
+Mutex mut;
+std::condition_variable_any cv;
+
+void
+signal_me()
+{
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
+    cv.notify_one();
+}
+
+int
+main()
+{
+    std::set_terminate(f1);
+    try
+    {
+        std::thread(signal_me).detach();
+        mut.lock();
+        cv.wait(mut);
+    }
+    catch (...) {}
+    assert(false);
+}
diff --git a/src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait_for.exception.pass.cpp b/src/third_party/libc++/trunk/test/thread/thread.condition/thread.condition.condvarany/wait_for.exception.pass.cpp
new file mode 100644 (file)
index 0000000..7eb4b33
--- /dev/null
@@ -0,0 +1,52 @@
+#include <thread>
+#include <condition_variable>
+#include <mutex>
+#include <chrono>
+#include <iostream>
+#include <cassert>
+
+void f1()
+{
+    std::exit(0);
+}
+
+struct Mutex
+{
+    unsigned state = 0;
+    Mutex() = default;
+    ~Mutex() = default;
+    Mutex(const Mutex&) = delete;
+    Mutex& operator=(const Mutex&) = delete;
+
+    void lock()
+    {
+    if (++state == 2)
+        throw 1;  // this throw should end up calling terminate()
+    }
+
+    void unlock() {}
+};
+
+Mutex mut;
+std::condition_variable_any cv;
+
+void
+signal_me()
+{
+    std::this_thread::sleep_for(std::chrono::milliseconds(500));
+    cv.notify_one();
+}
+
+int
+main()
+{
+    std::set_terminate(f1);
+    try
+    {
+        std::thread(signal_me).detach();
+        mut.lock();
+        cv.wait_for(mut, std::chrono::milliseconds(250));
+    }
+    catch (...) {}
+    assert(false);
+}
index 0bd347d..446807f 100644 (file)
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m0;
-std::shared_mutex m1;
+std::shared_timed_mutex m0;
+std::shared_timed_mutex m1;
 
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0(m0);
-    std::shared_lock<std::shared_mutex> lk1(m1);
+    std::shared_lock<std::shared_timed_mutex> lk0(m0);
+    std::shared_lock<std::shared_timed_mutex> lk1(m1);
     lk1 = lk0;
 #else
 #   error
index 66cec9e..370c1fa 100644 (file)
 #include <shared_mutex>
 
 #if _LIBCPP_STD_VER > 11
-std::shared_mutex m;
+std::shared_timed_mutex m;
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0(m);
-    std::shared_lock<std::shared_mutex> lk = lk0;
+    std::shared_lock<std::shared_timed_mutex> lk0(m);
+    std::shared_lock<std::shared_timed_mutex> lk = lk0;
 #else
 #   error
 #endif  // _LIBCPP_STD_VER > 11
index 1fcc98f..73936b7 100644 (file)
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m0;
-std::shared_mutex m1;
+std::shared_timed_mutex m0;
+std::shared_timed_mutex m1;
 
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0(m0);
-    std::shared_lock<std::shared_mutex> lk1(m1);
+    std::shared_lock<std::shared_timed_mutex> lk0(m0);
+    std::shared_lock<std::shared_timed_mutex> lk1(m1);
     lk1 = std::move(lk0);
     assert(lk1.mutex() == &m0);
     assert(lk1.owns_lock() == true);
index 7e801da..cf63861 100644 (file)
 #include <cassert>
 
 #if _LIBCPP_STD_VER > 11
-std::shared_mutex m;
+std::shared_timed_mutex m;
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0(m);
-    std::shared_lock<std::shared_mutex> lk = std::move(lk0);
+    std::shared_lock<std::shared_timed_mutex> lk0(m);
+    std::shared_lock<std::shared_timed_mutex> lk = std::move(lk0);
     assert(lk.mutex() == &m);
     assert(lk.owns_lock() == true);
     assert(lk0.mutex() == nullptr);
index fd1dad4..01bfbfd 100644 (file)
@@ -21,7 +21,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::system_clock Clock;
 typedef Clock::time_point time_point;
@@ -34,7 +34,7 @@ void f()
     time_point t0 = Clock::now();
     time_point t1;
     {
-    std::shared_lock<std::shared_mutex> ul(m);
+    std::shared_lock<std::shared_timed_mutex> ul(m);
     t1 = Clock::now();
     }
     ns d = t1 - t0 - ms(250);
@@ -46,7 +46,7 @@ void g()
     time_point t0 = Clock::now();
     time_point t1;
     {
-    std::shared_lock<std::shared_mutex> ul(m);
+    std::shared_lock<std::shared_timed_mutex> ul(m);
     t1 = Clock::now();
     }
     ns d = t1 - t0;
index 9c44005..b4f6025 100644 (file)
@@ -19,9 +19,9 @@
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_mutex m;
+    std::shared_timed_mutex m;
     m.lock();
-    std::shared_lock<std::shared_mutex> lk(m, std::adopt_lock);
+    std::shared_lock<std::shared_timed_mutex> lk(m, std::adopt_lock);
     assert(lk.mutex() == &m);
     assert(lk.owns_lock() == true);
 #endif  // _LIBCPP_STD_VER > 11
index 2f2247a..3a8b61a 100644 (file)
@@ -19,8 +19,8 @@
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_mutex m;
-    std::shared_lock<std::shared_mutex> lk(m, std::defer_lock);
+    std::shared_timed_mutex m;
+    std::shared_lock<std::shared_timed_mutex> lk(m, std::defer_lock);
     assert(lk.mutex() == &m);
     assert(lk.owns_lock() == false);
 #endif  // _LIBCPP_STD_VER > 11
index f3798af..ffe329c 100644 (file)
@@ -22,7 +22,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
@@ -33,7 +33,7 @@ typedef std::chrono::nanoseconds ns;
 void f1()
 {
     time_point t0 = Clock::now();
-    std::shared_lock<std::shared_mutex> lk(m, ms(300));
+    std::shared_lock<std::shared_timed_mutex> lk(m, ms(300));
     assert(lk.owns_lock() == true);
     time_point t1 = Clock::now();
     ns d = t1 - t0 - ms(250);
@@ -43,7 +43,7 @@ void f1()
 void f2()
 {
     time_point t0 = Clock::now();
-    std::shared_lock<std::shared_mutex> lk(m, ms(250));
+    std::shared_lock<std::shared_timed_mutex> lk(m, ms(250));
     assert(lk.owns_lock() == false);
     time_point t1 = Clock::now();
     ns d = t1 - t0 - ms(250);
index 44eaee2..baf08de 100644 (file)
@@ -9,7 +9,7 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
 // template <class Clock, class Duration>
 //   shared_lock(mutex_type& m, const chrono::time_point<Clock, Duration>& abs_time);
@@ -22,7 +22,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
@@ -33,7 +33,7 @@ typedef std::chrono::nanoseconds ns;
 void f1()
 {
     time_point t0 = Clock::now();
-    std::shared_lock<std::shared_mutex> lk(m, Clock::now() + ms(300));
+    std::shared_lock<std::shared_timed_mutex> lk(m, Clock::now() + ms(300));
     assert(lk.owns_lock() == true);
     time_point t1 = Clock::now();
     ns d = t1 - t0 - ms(250);
@@ -43,7 +43,7 @@ void f1()
 void f2()
 {
     time_point t0 = Clock::now();
-    std::shared_lock<std::shared_mutex> lk(m, Clock::now() + ms(250));
+    std::shared_lock<std::shared_timed_mutex> lk(m, Clock::now() + ms(250));
     assert(lk.owns_lock() == false);
     time_point t1 = Clock::now();
     ns d = t1 - t0 - ms(250);
index 9dae3f9..9d06d3f 100644 (file)
@@ -21,7 +21,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::system_clock Clock;
 typedef Clock::time_point time_point;
@@ -33,20 +33,20 @@ void f()
 {
     time_point t0 = Clock::now();
     {
-        std::shared_lock<std::shared_mutex> lk(m, std::try_to_lock);
+        std::shared_lock<std::shared_timed_mutex> lk(m, std::try_to_lock);
         assert(lk.owns_lock() == false);
     }
     {
-        std::shared_lock<std::shared_mutex> lk(m, std::try_to_lock);
+        std::shared_lock<std::shared_timed_mutex> lk(m, std::try_to_lock);
         assert(lk.owns_lock() == false);
     }
     {
-        std::shared_lock<std::shared_mutex> lk(m, std::try_to_lock);
+        std::shared_lock<std::shared_timed_mutex> lk(m, std::try_to_lock);
         assert(lk.owns_lock() == false);
     }
     while (true)
     {
-        std::shared_lock<std::shared_mutex> lk(m, std::try_to_lock);
+        std::shared_lock<std::shared_timed_mutex> lk(m, std::try_to_lock);
         if (lk.owns_lock())
             break;
     }
index c6617a5..ecac479 100644 (file)
@@ -21,7 +21,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::system_clock Clock;
 typedef Clock::time_point time_point;
@@ -31,7 +31,7 @@ typedef std::chrono::nanoseconds ns;
 
 void f()
 {
-    std::shared_lock<std::shared_mutex> lk(m, std::defer_lock);
+    std::shared_lock<std::shared_timed_mutex> lk(m, std::defer_lock);
     time_point t0 = Clock::now();
     lk.lock();
     time_point t1 = Clock::now();
index 927e9d1..4b4f6c6 100644 (file)
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0;
+    std::shared_lock<std::shared_timed_mutex> lk0;
     assert(lk0.mutex() == nullptr);
-    std::shared_lock<std::shared_mutex> lk1(m);
+    std::shared_lock<std::shared_timed_mutex> lk1(m);
     assert(lk1.mutex() == &m);
     lk1.unlock();
     assert(lk1.mutex() == &m);
index 901ccbc..177a69e 100644 (file)
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0;
+    std::shared_lock<std::shared_timed_mutex> lk0;
     assert(static_cast<bool>(lk0) == false);
-    std::shared_lock<std::shared_mutex> lk1(m);
+    std::shared_lock<std::shared_timed_mutex> lk1(m);
     assert(static_cast<bool>(lk1) == true);
     lk1.unlock();
     assert(static_cast<bool>(lk1) == false);
index ca4715b..a10c588 100644 (file)
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 #endif  // _LIBCPP_STD_VER > 11
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_lock<std::shared_mutex> lk0;
+    std::shared_lock<std::shared_timed_mutex> lk0;
     assert(lk0.owns_lock() == false);
-    std::shared_lock<std::shared_mutex> lk1(m);
+    std::shared_lock<std::shared_timed_mutex> lk1(m);
     assert(lk1.owns_lock() == true);
     lk1.unlock();
     assert(lk1.owns_lock() == false);
diff --git a/src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/nothing_to_do.pass.cpp b/src/third_party/libc++/trunk/test/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/nothing_to_do.pass.cpp
new file mode 100644 (file)
index 0000000..b58f5c5
--- /dev/null
@@ -0,0 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+int main()
+{
+}
@@ -9,17 +9,17 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
-// shared_mutex& operator=(const shared_mutex&) = delete;
+// shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
 
 #include <shared_mutex>
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_mutex m0;
-    std::shared_mutex m1;
+    std::shared_timed_mutex m0;
+    std::shared_timed_mutex m1;
     m1 = m0;
 #else
 #   error
@@ -9,17 +9,17 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
-// shared_mutex(const shared_mutex&) = delete;
+// shared_timed_mutex(const shared_timed_mutex&) = delete;
 
 #include <shared_mutex>
 
 int main()
 {
 #if _LIBCPP_STD_VER > 11
-    std::shared_mutex m0;
-    std::shared_mutex m1(m0);
+    std::shared_timed_mutex m0;
+    std::shared_timed_mutex m1(m0);
 #else
 #   error
 #endif
@@ -9,7 +9,7 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
 // template <class Rep, class Period>
 //     bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
@@ -21,7 +21,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
@@ -9,7 +9,7 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
 // template <class Rep, class Period>
 //     bool try_lock_shared_for(const chrono::duration<Rep, Period>& rel_time);
@@ -22,7 +22,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
@@ -9,7 +9,7 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
 // template <class Clock, class Duration>
 //     bool try_lock_shared_until(const chrono::time_point<Clock, Duration>& abs_time);
@@ -22,7 +22,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
@@ -9,7 +9,7 @@
 
 // <shared_mutex>
 
-// class shared_mutex;
+// class shared_timed_mutex;
 
 // template <class Clock, class Duration>
 //     bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
@@ -21,7 +21,7 @@
 
 #if _LIBCPP_STD_VER > 11
 
-std::shared_mutex m;
+std::shared_timed_mutex m;
 
 typedef std::chrono::steady_clock Clock;
 typedef Clock::time_point time_point;
index 6a41f8a..099781f 100644 (file)
@@ -28,8 +28,14 @@ int main()
     assert( (id0 <= id1));
     assert(!(id0 >  id1));
     assert( (id0 >= id1));
-    assert( (id0 <  id2));
-    assert( (id0 <= id2));
-    assert(!(id0 >  id2));
-    assert(!(id0 >= id2));
+    assert(!(id0 == id2));
+    if (id0 < id2) {
+      assert( (id0 <= id2));
+      assert(!(id0 >  id2));
+      assert(!(id0 >= id2));
+    } else {
+      assert(!(id0 <= id2));
+      assert( (id0 >  id2));
+      assert( (id0 >= id2));
+    }
 }
diff --git a/src/third_party/libc++/trunk/test/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp b/src/third_party/libc++/trunk/test/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp
new file mode 100644 (file)
index 0000000..537fb90
--- /dev/null
@@ -0,0 +1,116 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <scoped_allocator>
+#include <cassert>
+
+#if __cplusplus >= 201103L
+// #include <memory>
+//
+// template <class Alloc>
+// struct allocator_traits
+// {
+//     typedef Alloc                        allocator_type;
+//     typedef typename allocator_type::value_type
+//                                          value_type;
+// 
+//     typedef Alloc::pointer | value_type* pointer;
+//     typedef Alloc::const_pointer
+//           | pointer_traits<pointer>::rebind<const value_type>
+//                                          const_pointer;
+//     typedef Alloc::void_pointer
+//           | pointer_traits<pointer>::rebind<void>
+//                                          void_pointer;
+//     typedef Alloc::const_void_pointer
+//           | pointer_traits<pointer>::rebind<const void>
+//                                          const_void_pointer;
+
+template <typename Alloc>
+void test_pointer()
+{
+     typename std::allocator_traits<Alloc>::pointer        vp;
+     typename std::allocator_traits<Alloc>::const_pointer cvp;
+     
+     static_assert(std::is_same<bool, decltype( vp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype( vp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype(cvp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <= cvp)>::value, "");
+}
+
+template <typename Alloc>
+void test_void_pointer()
+{
+     typename std::allocator_traits<Alloc>::void_pointer        vp;
+     typename std::allocator_traits<Alloc>::const_void_pointer cvp;
+     
+     static_assert(std::is_same<bool, decltype( vp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype( vp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype(cvp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <= cvp)>::value, "");
+}
+
+struct Foo { int x; };
+
+int main()
+{
+       test_pointer<std::scoped_allocator_adaptor<std::allocator<char>>> ();
+       test_pointer<std::scoped_allocator_adaptor<std::allocator<int>>> ();
+       test_pointer<std::scoped_allocator_adaptor<std::allocator<Foo>>> ();
+
+       test_void_pointer<std::scoped_allocator_adaptor<std::allocator<char>>> ();
+       test_void_pointer<std::scoped_allocator_adaptor<std::allocator<int>>> ();
+       test_void_pointer<std::scoped_allocator_adaptor<std::allocator<Foo>>> ();       
+}
+#else
+int main() {}
+#endif
index 43e2e21..72b4b4a 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #include <functional>
 #include <string>
 
index 91d263e..9f8e15d 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #include <functional>
 #include <string>
 
index 516b364..41ce4bc 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #include <functional>
 #include <string>
 
index 01a5f8e..4096bd8 100644 (file)
@@ -31,6 +31,8 @@ test0(F f)
     assert(f(a) == 'a');
     A* ap = &a;
     assert(f(ap) == 'a');
+    const F& cf = f;
+    assert(cf(ap) == 'a');
     }
 }
 
@@ -43,6 +45,8 @@ test1(F f)
     assert(f(a, 1) == 'b');
     A* ap = &a;
     assert(f(ap, 2) == 'b');
+    const F& cf = f;
+    assert(cf(ap, 2) == 'b');
     }
 }
 
@@ -55,6 +59,8 @@ test2(F f)
     assert(f(a, 1, 2) == 'c');
     A* ap = &a;
     assert(f(ap, 2, 3.5) == 'c');
+    const F& cf = f;
+    assert(cf(ap, 2, 3.5) == 'c');
     }
 }
 
index 978f9f0..be22443 100644 (file)
@@ -33,6 +33,8 @@ test0(F f)
     assert(f(ap) == 'a');
     const A* cap = &a;
     assert(f(cap) == 'a');
+    const F& cf = f;
+    assert(cf(ap) == 'a');
     }
 }
 
@@ -47,6 +49,8 @@ test1(F f)
     assert(f(ap, 2) == 'b');
     const A* cap = &a;
     assert(f(cap, 2) == 'b');
+    const F& cf = f;
+    assert(cf(ap, 2) == 'b');
     }
 }
 
@@ -61,6 +65,8 @@ test2(F f)
     assert(f(ap, 2, 3.5) == 'c');
     const A* cap = &a;
     assert(f(cap, 2, 3.5) == 'c');
+    const F& cf = f;
+    assert(cf(ap, 2, 3.5) == 'c');
     }
 }
 
index 1e00b4d..329ac16 100644 (file)
@@ -33,6 +33,8 @@ test0(F f)
     assert(f(ap) == 'a');
     const volatile A* cap = &a;
     assert(f(cap) == 'a');
+    const F& cf = f;
+    assert(cf(ap) == 'a');
     }
 }
 
@@ -47,6 +49,8 @@ test1(F f)
     assert(f(ap, 2) == 'b');
     const volatile A* cap = &a;
     assert(f(cap, 2) == 'b');
+    const F& cf = f;
+    assert(cf(ap, 2) == 'b');
     }
 }
 
@@ -61,6 +65,8 @@ test2(F f)
     assert(f(ap, 2, 3.5) == 'c');
     const volatile A* cap = &a;
     assert(f(cap, 2, 3.5) == 'c');
+    const F& cf = f;
+    assert(cf(ap, 2, 3.5) == 'c');
     }
 }
 
index 4d0654a..743ded9 100644 (file)
@@ -33,6 +33,8 @@ test0(F f)
     assert(f(ap) == 'a');
     volatile A* cap = &a;
     assert(f(cap) == 'a');
+    const F& cf = f;
+    assert(cf(ap) == 'a');
     }
 }
 
@@ -47,6 +49,8 @@ test1(F f)
     assert(f(ap, 2) == 'b');
     volatile A* cap = &a;
     assert(f(cap, 2) == 'b');
+    const F& cf = f;
+    assert(cf(ap, 2) == 'b');
     }
 }
 
@@ -61,6 +65,8 @@ test2(F f)
     assert(f(ap, 2, 3.5) == 'c');
     volatile A* cap = &a;
     assert(f(cap, 2, 3.5) == 'c');
+    const F& cf = f;
+    assert(cf(ap, 2, 3.5) == 'c');
     }
 }
 
diff --git a/src/third_party/libc++/trunk/test/utilities/function.objects/func.require/invoke.pass.cpp b/src/third_party/libc++/trunk/test/utilities/function.objects/func.require/invoke.pass.cpp
new file mode 100644 (file)
index 0000000..2568163
--- /dev/null
@@ -0,0 +1,50 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// [func.require]
+
+// INVOKE
+#if __cplusplus < 201103L
+int main () {}      // no __invoke in C++03
+#else
+
+#include <type_traits>
+
+template <typename T, int N>
+struct Array
+{
+    typedef T type[N];
+};
+
+struct Type
+{
+    Array<char, 1>::type& f1();
+    Array<char, 2>::type& f2() const;
+    
+    Array<char, 1>::type& g1()        &;
+    Array<char, 2>::type& g2() const  &;
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    Array<char, 3>::type& g3()       &&;
+    Array<char, 4>::type& g4() const &&;
+#endif
+};
+
+int main()
+{
+    static_assert(sizeof(std::__invoke(&Type::f1, std::declval<Type        >())) == 1, "");
+    static_assert(sizeof(std::__invoke(&Type::f2, std::declval<Type const  >())) == 2, "");
+    
+    static_assert(sizeof(std::__invoke(&Type::g1, std::declval<Type       &>())) == 1, "");
+    static_assert(sizeof(std::__invoke(&Type::g2, std::declval<Type const &>())) == 2, "");
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    static_assert(sizeof(std::__invoke(&Type::g3, std::declval<Type      &&>())) == 3, "");
+    static_assert(sizeof(std::__invoke(&Type::g4, std::declval<Type const&&>())) == 4, "");
+#endif
+}
+#endif
index 5b3e187..6e3b7a2 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #include <functional>
 #include <string>
 
diff --git a/src/third_party/libc++/trunk/test/utilities/memory/default.allocator/allocator_pointers.pass.cpp b/src/third_party/libc++/trunk/test/utilities/memory/default.allocator/allocator_pointers.pass.cpp
new file mode 100644 (file)
index 0000000..b894e45
--- /dev/null
@@ -0,0 +1,116 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <memory>
+#include <cassert>
+
+#if __cplusplus >= 201103L
+// #include <memory>
+//
+// template <class Alloc>
+// struct allocator_traits
+// {
+//     typedef Alloc                        allocator_type;
+//     typedef typename allocator_type::value_type
+//                                          value_type;
+// 
+//     typedef Alloc::pointer | value_type* pointer;
+//     typedef Alloc::const_pointer
+//           | pointer_traits<pointer>::rebind<const value_type>
+//                                          const_pointer;
+//     typedef Alloc::void_pointer
+//           | pointer_traits<pointer>::rebind<void>
+//                                          void_pointer;
+//     typedef Alloc::const_void_pointer
+//           | pointer_traits<pointer>::rebind<const void>
+//                                          const_void_pointer;
+
+template <typename Alloc>
+void test_pointer()
+{
+     typename std::allocator_traits<Alloc>::pointer        vp;
+     typename std::allocator_traits<Alloc>::const_pointer cvp;
+     
+     static_assert(std::is_same<bool, decltype( vp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype( vp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype(cvp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <= cvp)>::value, "");
+}
+
+template <typename Alloc>
+void test_void_pointer()
+{
+     typename std::allocator_traits<Alloc>::void_pointer        vp;
+     typename std::allocator_traits<Alloc>::const_void_pointer cvp;
+     
+     static_assert(std::is_same<bool, decltype( vp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype( vp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp ==  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp !=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >=  vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <   vp)>::value, "");
+     static_assert(std::is_same<bool, decltype( vp <= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <=  vp)>::value, "");
+
+     static_assert(std::is_same<bool, decltype(cvp == cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp != cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp >= cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <  cvp)>::value, "");
+     static_assert(std::is_same<bool, decltype(cvp <= cvp)>::value, "");
+}
+
+struct Foo { int x; };
+
+int main()
+{
+       test_pointer<std::allocator<char>> ();
+       test_pointer<std::allocator<int>> ();
+       test_pointer<std::allocator<Foo>> ();   
+
+       test_void_pointer<std::allocator<char>> ();
+       test_void_pointer<std::allocator<int>> ();
+       test_void_pointer<std::allocator<Foo>> ();      
+}
+#else
+int main() {}
+#endif
index 706d19c..e5713f3 100644 (file)
@@ -59,4 +59,20 @@ int main()
     }
     assert(B::count == 0);
     assert(A::count == 0);
+
+    {
+        const std::shared_ptr<A> ps(new A);
+        std::weak_ptr<A> pA(ps);
+        {
+            std::weak_ptr<A> pB;
+            pB = std::move(pA);
+            assert(B::count == 1);
+            assert(A::count == 1);
+            assert(pB.use_count() == 1);
+        }
+        assert(B::count == 1);
+        assert(A::count == 1);
+    }
+    assert(B::count == 0);
+    assert(A::count == 0);
 }
index 76e701f..5a03d92 100644 (file)
@@ -59,4 +59,20 @@ int main()
     }
     assert(B::count == 0);
     assert(A::count == 0);
+
+    {
+        const std::shared_ptr<A> ps(new A);
+        std::weak_ptr<A> pA(ps);
+        {
+            std::weak_ptr<B> pB;
+            pB = std::move(pA);
+            assert(B::count == 1);
+            assert(A::count == 1);
+            assert(pB.use_count() == 1);
+        }
+        assert(B::count == 1);
+        assert(A::count == 1);
+    }
+    assert(B::count == 0);
+    assert(A::count == 0);
 }
index f0e6c99..1fdf883 100644 (file)
@@ -12,6 +12,7 @@
 // weak_ptr
 
 // weak_ptr(const weak_ptr& r);
+// weak_ptr(weak_ptr &&r)
 
 #include <memory>
 #include <type_traits>
@@ -51,6 +52,12 @@ struct C
 
 int C::count = 0;
 
+template <class T>
+std::weak_ptr<T> source (std::shared_ptr<T> p) { return std::weak_ptr<T>(p); }
+
+template <class T>
+void sink (std::weak_ptr<T> &&) {}
+
 int main()
 {
     {
@@ -90,4 +97,14 @@ int main()
     }
     assert(B::count == 0);
     assert(A::count == 0);
+
+    {
+        std::shared_ptr<A> ps(new A);
+        std::weak_ptr<A> pA = source(ps);
+        assert(pA.use_count() == 1);
+        assert(A::count == 1);
+        sink(std::move(pA)); // kill off the weak pointer
+    }
+    assert(B::count == 0);
+    assert(A::count == 0);
 }
index 6af4691..70ad11b 100644 (file)
@@ -12,6 +12,7 @@
 // weak_ptr
 
 // template<class Y> weak_ptr(const weak_ptr<Y>& r);
+// template<class Y> weak_ptr(weak_ptr<Y> &&r);
 
 #include <memory>
 #include <type_traits>
@@ -51,6 +52,12 @@ struct C
 
 int C::count = 0;
 
+template <class T>
+std::weak_ptr<T> source (std::shared_ptr<T> p) { return std::weak_ptr<T>(p); }
+
+template <class T>
+void sink (std::weak_ptr<T> &&) {}
+
 int main()
 {
     static_assert(( std::is_convertible<std::weak_ptr<A>, std::weak_ptr<B> >::value), "");
@@ -92,4 +99,13 @@ int main()
     }
     assert(B::count == 0);
     assert(A::count == 0);
+
+    {
+        std::shared_ptr<A> ps(new A);
+        std::weak_ptr<A> pA = source(ps);
+        std::weak_ptr<B> pB(std::move(pA));
+        assert(pB.use_count() == 1);
+    }
+    assert(B::count == 0);
+    assert(A::count == 0);
 }
index 368a3eb..bf44c34 100644 (file)
@@ -34,6 +34,8 @@ struct wat
     void foo();
 };
 
+struct F {};
+
 template <class T, class U>
 void test_result_of_imp()
 {
@@ -55,6 +57,14 @@ int main()
     test_result_of_imp<PMD(S), char&&> ();
 #endif
     test_result_of_imp<PMD(const S*), const char&> ();
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    test_result_of_imp<int (F::* (F       &)) ()       &, int> ();
+    test_result_of_imp<int (F::* (F       &)) () const &, int> ();
+    test_result_of_imp<int (F::* (F const &)) () const &, int> ();
+    test_result_of_imp<int (F::* (F      &&)) ()      &&, int> ();
+    test_result_of_imp<int (F::* (F      &&)) () const&&, int> ();
+    test_result_of_imp<int (F::* (F const&&)) () const&&, int> ();
+#endif
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
     using type1 = std::result_of<decltype(&wat::foo)(wat)>::type;
 #endif
@@ -74,6 +84,14 @@ int main()
     static_assert((std::is_same<std::result_of<PMD(S)>::type, char&&>::value), "Error!");
 #endif
     static_assert((std::is_same<std::result_of<PMD(const S*)>::type, const char&>::value), "Error!");
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    static_assert((std::is_same<std::result_of<int (F::* (F       &)) ()       &>::type, int>::value), "Error!");
+    static_assert((std::is_same<std::result_of<int (F::* (F       &)) () const &>::type, int>::value), "Error!");
+    static_assert((std::is_same<std::result_of<int (F::* (F const &)) () const &>::type, int>::value), "Error!");
+    static_assert((std::is_same<std::result_of<int (F::* (F      &&)) ()      &&>::type, int>::value), "Error!");
+    static_assert((std::is_same<std::result_of<int (F::* (F      &&)) () const&&>::type, int>::value), "Error!");
+    static_assert((std::is_same<std::result_of<int (F::* (F const&&)) () const&&>::type, int>::value), "Error!");
+#endif
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
     using type = std::result_of<decltype(&wat::foo)(wat)>::type;
 #endif
index 2dd4d9a..7de3b0d 100644 (file)
@@ -21,6 +21,13 @@ enum BigEnum
     big = 0xFFFFFFFFFFFFFFFFULL
 };
 
+#if !defined(_LIBCPP_HAS_NO_INT128) && !defined(_LIBCPP_HAS_NO_STRONG_ENUMS)
+enum HugeEnum : __uint128_t
+{
+    hugezero
+};
+#endif
+
 template <class T, class U>
 void test_make_signed()
 {
@@ -47,4 +54,11 @@ int main()
     test_make_signed< const wchar_t, std::conditional<sizeof(wchar_t) == 4, const int, const short>::type >();
     test_make_signed< const Enum, const int >();
     test_make_signed< BigEnum, std::conditional<sizeof(long) == 4, long long, long>::type >();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_make_signed< __int128_t, __int128_t >();
+    test_make_signed< __uint128_t, __int128_t >();
+# ifndef _LIBCPP_HAS_NO_STRONG_ENUMS
+    test_make_signed< HugeEnum, __int128_t >();
+# endif
+#endif
 }
index 6700b6c..a13485a 100644 (file)
@@ -21,6 +21,13 @@ enum BigEnum
     big = 0xFFFFFFFFFFFFFFFFULL
 };
 
+#if !defined(_LIBCPP_HAS_NO_INT128) && !defined(_LIBCPP_HAS_NO_STRONG_ENUMS)
+enum HugeEnum : __int128_t
+{
+    hugezero
+};
+#endif
+
 template <class T, class U>
 void test_make_unsigned()
 {
@@ -48,4 +55,11 @@ int main()
     test_make_unsigned<const Enum, const unsigned int> ();
     test_make_unsigned<BigEnum,
                    std::conditional<sizeof(long) == 4, unsigned long long, unsigned long>::type> ();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_make_unsigned<__int128_t, __uint128_t>();
+    test_make_unsigned<__uint128_t, __uint128_t>();
+# ifndef _LIBCPP_HAS_NO_STRONG_ENUMS
+    test_make_unsigned<HugeEnum, __uint128_t>();
+# endif
+#endif
 }
index 9ee89c2..01a2f65 100644 (file)
@@ -38,6 +38,10 @@ int main()
     test_alignment_of<char[3], 1>();
     test_alignment_of<int, 4>();
     test_alignment_of<double, 8>();
+#if (defined(__ppc__) && !defined(__ppc64__))
+    test_alignment_of<bool, 4>();      // 32-bit PPC has four byte bool
+#else
     test_alignment_of<bool, 1>();
+#endif
     test_alignment_of<unsigned, 4>();
 }
index 7d3b0f8..f68ed3e 100644 (file)
@@ -58,4 +58,8 @@ int main()
     test_integral<unsigned long>();
     test_integral<long long>();
     test_integral<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_integral<__int128_t>();
+    test_integral<__uint128_t>();
+#endif
 }
index f5da85c..0bc9458 100644 (file)
@@ -49,4 +49,8 @@ int main()
     test_integral<unsigned long>();
     test_integral<long long>();
     test_integral<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_integral<__int128_t>();
+    test_integral<__uint128_t>();
+#endif
 }
diff --git a/src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp b/src/third_party/libc++/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp
new file mode 100644 (file)
index 0000000..cf32196
--- /dev/null
@@ -0,0 +1,53 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// type_traits
+
+// is_final
+
+#include <type_traits>
+
+#if _LIBCPP_STD_VER > 11
+
+struct P final { };
+union U1 { };
+union U2 final { };
+
+template <class T>
+void test_is_final()
+{
+    static_assert( std::is_final<T>::value, "");
+    static_assert( std::is_final<const T>::value, "");
+    static_assert( std::is_final<volatile T>::value, "");
+    static_assert( std::is_final<const volatile T>::value, "");
+}
+
+template <class T>
+void test_is_not_final()
+{
+    static_assert(!std::is_final<T>::value, "");
+    static_assert(!std::is_final<const T>::value, "");
+    static_assert(!std::is_final<volatile T>::value, "");
+    static_assert(!std::is_final<const volatile T>::value, "");
+}
+
+int main ()
+{
+    test_is_not_final<int>();
+    test_is_not_final<int*>();
+    test_is_final    <P>(); 
+    test_is_not_final<P*>();    
+    test_is_not_final<U1>();
+    test_is_not_final<U1*>();
+    test_is_final    <U2>();    
+    test_is_not_final<U2*>();   
+}
+#else
+int main () {}
+#endif
index 9737e15..7de6566 100644 (file)
@@ -51,4 +51,9 @@ int main()
 
     test_is_signed<int>();
     test_is_signed<double>();
+
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_is_signed<__int128_t>();
+    test_is_not_signed<__uint128_t>();
+#endif
 }
index d3372ad..2cd4945 100644 (file)
@@ -51,4 +51,9 @@ int main()
 
     test_is_unsigned<bool>();
     test_is_unsigned<unsigned>();
+
+#ifndef _LIBCPP_HAS_NO_INT128
+    test_is_unsigned<__uint128_t>();
+    test_is_not_unsigned<__int128_t>();
+#endif
 }
index ec99f26..c72470c 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef CLOCK_H
 #define CLOCK_H
 
index 59c58bb..2ec3514 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef REP_H
 #define REP_H
 
index cbf8020..e4d9f64 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef MOVEONLY_H
 #define MOVEONLY_H
 
index 948f2a4..237a289 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef ALLOC_FIRST_H
 #define ALLOC_FIRST_H
 
index e87cb21..71a9b9e 100644 (file)
@@ -1,3 +1,12 @@
+//===----------------------------------------------------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
 #ifndef ALLOC_LAST_H
 #define ALLOC_LAST_H
 
index 112ee39..e6ebf95 100644 (file)
@@ -27,4 +27,13 @@ int main()
         assert(i == 42);
         assert(s == "C++");
     }
+#if _LIBCPP_STD_VER > 11
+    {
+        static constexpr int i = 42;
+        static constexpr double f = 1.1;
+        constexpr std::tuple<const int &, const double &> t = std::tie(i, f);
+        static_assert ( std::get<0>(t) == 42, "" );
+        static_assert ( std::get<1>(t) == 1.1, "" );
+    }
+#endif
 }
index 7b1ff8b..f3f8f2b 100644 (file)
@@ -28,7 +28,14 @@ void test()
     static_assert((std::is_same<typename std::tuple_element<N, const T>::type, const U>::value), "");
     static_assert((std::is_same<typename std::tuple_element<N, volatile T>::type, volatile U>::value), "");
     static_assert((std::is_same<typename std::tuple_element<N, const volatile T>::type, const volatile U>::value), "");
+#if _LIBCPP_STD_VER > 11
+    static_assert((std::is_same<typename std::tuple_element_t<N, T>, U>::value), "");
+    static_assert((std::is_same<typename std::tuple_element_t<N, const T>, const U>::value), "");
+    static_assert((std::is_same<typename std::tuple_element_t<N, volatile T>, volatile U>::value), "");
+    static_assert((std::is_same<typename std::tuple_element_t<N, const volatile T>, const volatile U>::value), "");
+#endif
 }
+
 int main()
 {
     test<std::tuple<int>, 0, int>();
index 15515fd..8134199 100644 (file)
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3659.html">3659</a></td><td>SG1</td><td>Shared Locking in C++</td><td>Bristol</td><td>Complete</td><td>3.4</td></tr>
 
        <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
-       <tr><td><a href="http://wiki.edg.com/twiki/pub/Wg21chicago2013/FormalMotions/N3779-complex_literals.pdf">3779</a></td><td>LWG</td><td>User-defined Literals for std::complex</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr>
-       <tr><td><a href="http://wiki.edg.com/twiki/pub/Wg21chicago2013/FormalMotions/N3789.txt">3789</a></td><td>LWG</td><td>Constexpr Library Additions: functional</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr>
-       <tr><td><a href="http://wiki.edg.com/twiki/pub/Wg21chicago2013/FormalMotions/n3778.html">3778</a></td><td>CWG</td><td>Sized deallocation</td><td>Chicago</td><td></td><td></td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3779.pdf">3779</a></td><td>LWG</td><td>User-defined Literals for std::complex</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3789.htm">3789</a></td><td>LWG</td><td>Constexpr Library Additions: functional</td><td>Chicago</td><td>Complete</td><td>3.4</td></tr>
+       <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+
+       <tr><td><a href="http://isocpp.org/files/papers/N3924.pdf">3924</a></td><td>LWG</td><td>Discouraging rand() in C++14</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3887">3887</a></td><td>LWG</td><td>Consistent Metafunction Aliases</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3891">3891</a></td><td>SG1</td><td>A proposal to rename shared_mutex to shared_timed_mutex</td><td>Issaquah</td><td>Complete</td><td>3.5</td></tr>
+
 <!--   <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> -->
   </table>
 
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2235">2235</a></td><td>Undefined behavior without proper requirements on basic_string constructors</td><td>Bristol</td><td>Complete</td></tr>
     <tr><td></td><td></td><td></td><td></td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2141">2141</a></td><td>common_type trait produces reference types</td><td>Chicago</td><td>Complete</td></tr>
-       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2235">2235</a></td><td>Undefined behavior without proper requirements on basic_string constructors</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2246">2246</a></td><td>unique_ptr assignment effects w.r.t. deleter</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2247">2247</a></td><td>Type traits and std::nullptr_t</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2085">2085</a></td><td>Wrong description of effect 1 of basic_istream::ignore</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2284">2284</a></td><td>Inconsistency in allocator_traits::max_size</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2298">2298</a></td><td>is_nothrow_constructible is always false because of create&lt;&gt;</td><td>Chicago</td><td>Complete</td></tr>
        <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2300">2300</a></td><td>Redundant sections for map and multimap members should be removed</td><td>Chicago</td><td>Complete</td></tr>
-       <tr><td>National Body comment 'GB 9'</td>                                                        <td>Remove gets from C++14</td><td>Chicago</td><td>Complete</td></tr>
-<!--   <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> -->
+       <tr><td>NB comment: GB9</td>                                                                     <td>Remove gets from C++14</td><td>Chicago</td><td>Complete</td></tr>
+    <tr><td></td><td></td><td></td><td></td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2135">2135</a></td><td>Unclear requirement for exceptions thrown in condition_variable::wait()</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2291">2291</a></td><td>std::hash is vulnerable to collision DoS attack</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2142">2142</a></td><td>packaged_task::operator() synchronization too broad?</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2240">2240</a></td><td>Probable misuse of term "function scope" in [thread.condition]</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2252">2252</a></td><td>Strong guarantee on vector::push_back() still broken with C++11?</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2257">2257</a></td><td>Simplify container requirements with the new algorithms</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2268">2268</a></td><td>Setting a default argument in the declaration of a member function assign of std::basic_string</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2271">2271</a></td><td>regex_traits::lookup_classname specification unclear</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2272">2272</a></td><td>quoted should use char_traits::eq for character comparison</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2278">2278</a></td><td>User-defined literals for Standard Library types</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2280">2280</a></td><td>begin / end for arrays should be constexpr and noexcept</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2285">2285</a></td><td>make_reverse_iterator</td><td>Issaquah</td><td>Complete</td></tr>
+
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2299">2299</a></td><td>Effects of inaccessible key_compare::is_transparent type are not clear</td><td>Issaquah</td><td>Complete</td></tr>
+
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1450">1450</a></td><td>Contradiction in regex_constants</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2003">2003</a></td><td>String exception inconsistency in erase.</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2112">2112</a></td><td>User-defined classes that cannot be derived from</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2132">2132</a></td><td>std::function ambiguity</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2182">2182</a></td><td>Container::[const_]reference types are misleadingly specified</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2188">2188</a></td><td>Reverse iterator does not fully support targets that overload operator&</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2193">2193</a></td><td>Default constructors for standard library containers are explicit</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2205">2205</a></td><td>Problematic postconditions of regex_match and regex_search</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2213">2213</a></td><td>Return value of std::regex_replace</td><td>Issaquah</td><td>Complete</td></tr>
+
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2258">2258</a></td><td>a.erase(q1, q2) unable to directly return q2</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2263">2263</a></td><td>Comparing iterators and allocator pointers with different const-character</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2293">2293</a></td><td>Wrong facet used by num_put::do_put</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2301">2301</a></td><td>Why is std::tie not constexpr?</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2304">2304</a></td><td>Complexity of count in unordered associative containers</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2306">2306</a></td><td>match_results::reference should be value_type&, not const value_type&</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2308">2308</a></td><td>Clarify container destructor requirements w.r.t. std::array</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2313">2313</a></td><td>tuple_size should always derive from integral_constant<size_t, N></td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2314">2314</a></td><td>apply() should return decltype(auto) and use decay_t before tuple_size</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2315">2315</a></td><td>weak_ptr should be movable</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2316">2316</a></td><td>weak_ptr::lock() should be atomic</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2317">2317</a></td><td>The type property queries should be UnaryTypeTraits returning size_t</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2320">2320</a></td><td>select_on_container_copy_construction() takes allocators, not containers</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2322">2322</a></td><td>Associative(initializer_list, stuff) constructors are underspecified</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2323">2323</a></td><td>vector::resize(n, t)'s specification should be simplified</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2324">2324</a></td><td>Insert iterator constructors should use addressof()</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2329">2329</a></td><td>regex_match()/regex_search() with match_results should forbid temporary strings</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2330">2330</a></td><td>regex("meow", regex::icase) is technically forbidden but should be permitted</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2332">2332</a></td><td>regex_iterator/regex_token_iterator should forbid temporary regexes</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2339">2339</a></td><td>Wording issue in nth_element</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2341">2341</a></td><td>Inconsistency between basic_ostream::seekp(pos) and basic_ostream::seekp(off, dir)</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2344">2344</a></td><td>quoted()'s interaction with padding is unclear</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2346">2346</a></td><td>integral_constant's member functions should be marked noexcept</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2350">2350</a></td><td>min, max, and minmax should be constexpr</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2356">2356</a></td><td>Stability of erasure in unordered associative containers</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2357">2357</a></td><td>Remaining "Assignable" requirement</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2359">2359</a></td><td>How does regex_constants::nosubs affect basic_regex::mark_count()?</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2360">2360</a></td><td>reverse_iterator::operator*() is unimplementable</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2104">2104</a></td><td>unique_lock move-assignment should not be noexcept</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2186">2186</a></td><td>Incomplete action on async/launch::deferred</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2075">2075</a></td><td>Progress guarantees, lock-free property, and scheduling assumptions</td><td>Issaquah</td><td>Complete</td></tr>
+       <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2288">2288</a></td><td>Inconsistent requirements for shared mutexes</td><td>Issaquah</td><td>Complete</td></tr>
+<!--   <tr><td></td><td></td><td></td><td></td></tr> -->
   </table>
 
-  <p>Last Updated: 22-Oct-2013</p>
+  <p>Last Updated: 25-Mar-2014</p>
 </div>
 </body>
 </html>
index 02470ea..89bb003 100644 (file)
 
    <p>libc++ is a 100% complete C++11 implementation on Apple's OS X. </p>
    <p>LLVM and Clang can self host in C++ and C++11 mode with libc++ on Linux.</p>
-   <p>C++1Y (C++14) implementation is in progress. The current status is
-       <a href="cxx1y_status.html">here</a></p>
+   <p>libc++ is also a 100% complete C++14 implementation. A list of new features and changes for 
+      C++14 can be found <a href="cxx1y_status.html">here</a>.</p>
    <p>
    Ports to other platforms are underway. Here are recent test
    results for <a href="results.Windows.html">Windows</a>
@@ -208,6 +207,23 @@ against it with <code>-fno-rtti</code> is supported.
   (<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">clang mailing list</a>).</p>
 
   <!--=====================================================================-->
+  <h2>Bug reports and patches</h2>
+  <!--=====================================================================-->
+
+<p>
+If you think you've found a bug in libc++, please report it using 
+the <a href="http://llvm.org/bugs">LLVM Bugzilla</a>. If you're not sure, you
+can post a message to the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a> 
+mailing list or on IRC. Please include "libc++" in your subject.
+</p>
+
+<p>
+If you want to contribute a patch to libc++, the best place for that is the
+<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a> 
+mailing list. Please include "libc++" and "PATCH" in your subject.
+</p>
+
+  <!--=====================================================================-->
   <h2>Build on Linux using CMake and libsupc++.</h2>
   <!--=====================================================================-->
 
index b04ba2c..17969ae 100644 (file)
@@ -14,7 +14,7 @@ Full text of the relevant licenses is included below.
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
 
 All rights reserved.
 
@@ -55,7 +55,7 @@ SOFTWARE.
 
 ==============================================================================
 
-Copyright (c) 2009-2013 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
index 1b2990d..eaeab39 100644 (file)
@@ -353,4 +353,134 @@ enum {
   UNW_ARM64_D31 = 95,
 };
 
+// 32-bit ARM registers. Numbers match DWARF for ARM spec #3.1 Table 1.
+// Naming scheme uses recommendations given in Note 4 for VFP-v2 and VFP-v3.
+// In this scheme, even though the 64-bit floating point registers D0-D31
+// overlap physically with the 32-bit floating pointer registers S0-S31,
+// they are given a non-overlapping range of register numbers.
+//
+// Commented out ranges are not preserved during unwinding.
+enum {
+  UNW_ARM_R0  = 0,
+  UNW_ARM_R1  = 1,
+  UNW_ARM_R2  = 2,
+  UNW_ARM_R3  = 3,
+  UNW_ARM_R4  = 4,
+  UNW_ARM_R5  = 5,
+  UNW_ARM_R6  = 6,
+  UNW_ARM_R7  = 7,
+  UNW_ARM_R8  = 8,
+  UNW_ARM_R9  = 9,
+  UNW_ARM_R10 = 10,
+  UNW_ARM_R11 = 11,
+  UNW_ARM_R12 = 12,
+  UNW_ARM_SP  = 13,  // Logical alias for UNW_REG_SP
+  UNW_ARM_R13 = 13,
+  UNW_ARM_LR  = 14,
+  UNW_ARM_R14 = 14,
+  UNW_ARM_IP  = 15,  // Logical alias for UNW_REG_IP
+  UNW_ARM_R15 = 15,
+  // 16-63 -- OBSOLETE. Used in VFP1 to represent both S0-S31 and D0-D31.
+  UNW_ARM_S0  = 64,
+  UNW_ARM_S1  = 65,
+  UNW_ARM_S2  = 66,
+  UNW_ARM_S3  = 67,
+  UNW_ARM_S4  = 68,
+  UNW_ARM_S5  = 69,
+  UNW_ARM_S6  = 70,
+  UNW_ARM_S7  = 71,
+  UNW_ARM_S8  = 72,
+  UNW_ARM_S9  = 73,
+  UNW_ARM_S10 = 74,
+  UNW_ARM_S11 = 75,
+  UNW_ARM_S12 = 76,
+  UNW_ARM_S13 = 77,
+  UNW_ARM_S14 = 78,
+  UNW_ARM_S15 = 79,
+  UNW_ARM_S16 = 80,
+  UNW_ARM_S17 = 81,
+  UNW_ARM_S18 = 82,
+  UNW_ARM_S19 = 83,
+  UNW_ARM_S20 = 84,
+  UNW_ARM_S21 = 85,
+  UNW_ARM_S22 = 86,
+  UNW_ARM_S23 = 87,
+  UNW_ARM_S24 = 88,
+  UNW_ARM_S25 = 89,
+  UNW_ARM_S26 = 90,
+  UNW_ARM_S27 = 91,
+  UNW_ARM_S28 = 92,
+  UNW_ARM_S29 = 93,
+  UNW_ARM_S30 = 94,
+  UNW_ARM_S31 = 95,
+  //  96-103 -- OBSOLETE. F0-F7. Used by the FPA system. Superseded by VFP.
+  // 104-111 -- wCGR0-wCGR7, ACC0-ACC7 (Intel wireless MMX)
+  UNW_ARM_WR0 = 112,
+  UNW_ARM_WR1 = 113,
+  UNW_ARM_WR2 = 114,
+  UNW_ARM_WR3 = 115,
+  UNW_ARM_WR4 = 116,
+  UNW_ARM_WR5 = 117,
+  UNW_ARM_WR6 = 118,
+  UNW_ARM_WR7 = 119,
+  UNW_ARM_WR8 = 120,
+  UNW_ARM_WR9 = 121,
+  UNW_ARM_WR10 = 122,
+  UNW_ARM_WR11 = 123,
+  UNW_ARM_WR12 = 124,
+  UNW_ARM_WR13 = 125,
+  UNW_ARM_WR14 = 126,
+  UNW_ARM_WR15 = 127,
+  // 128-133 -- SPSR, SPSR_{FIQ|IRQ|ABT|UND|SVC}
+  // 134-143 -- Reserved
+  // 144-150 -- R8_USR–R14_USR
+  // 151-157 -- R8_FIQ–R14_FIQ
+  // 158-159 -- R13_IRQ–R14_IRQ
+  // 160-161 -- R13_ABT–R14_ABT
+  // 162-163 -- R13_UND–R14_UND
+  // 164-165 -- R13_SVC–R14_SVC
+  // 166-191 -- Reserved
+  UNW_ARM_WC0 = 192,
+  UNW_ARM_WC1 = 193,
+  UNW_ARM_WC2 = 194,
+  UNW_ARM_WC3 = 195,
+  // 196-199 -- wC4-wC7 (Intel wireless MMX control)
+  // 200-255 -- Reserved
+  UNW_ARM_D0  = 256,
+  UNW_ARM_D1  = 257,
+  UNW_ARM_D2  = 258,
+  UNW_ARM_D3  = 259,
+  UNW_ARM_D4  = 260,
+  UNW_ARM_D5  = 261,
+  UNW_ARM_D6  = 262,
+  UNW_ARM_D7  = 263,
+  UNW_ARM_D8  = 264,
+  UNW_ARM_D9  = 265,
+  UNW_ARM_D10 = 266,
+  UNW_ARM_D11 = 267,
+  UNW_ARM_D12 = 268,
+  UNW_ARM_D13 = 269,
+  UNW_ARM_D14 = 270,
+  UNW_ARM_D15 = 271,
+  UNW_ARM_D16 = 272,
+  UNW_ARM_D17 = 273,
+  UNW_ARM_D18 = 274,
+  UNW_ARM_D19 = 275,
+  UNW_ARM_D20 = 276,
+  UNW_ARM_D21 = 277,
+  UNW_ARM_D22 = 278,
+  UNW_ARM_D23 = 279,
+  UNW_ARM_D24 = 280,
+  UNW_ARM_D25 = 281,
+  UNW_ARM_D26 = 282,
+  UNW_ARM_D27 = 283,
+  UNW_ARM_D28 = 284,
+  UNW_ARM_D29 = 285,
+  UNW_ARM_D30 = 286,
+  UNW_ARM_D31 = 287,
+  // 288-319 -- Reserved for VFP/Neon
+  // 320-8191 -- Reserved
+  // 8192-16383 -- Unspecified vendor co-processor register.
+};
+
 #endif
index 6110688..bb329a1 100644 (file)
@@ -265,8 +265,6 @@ enum {
 //
 
 
-#ifndef __OPEN_SOURCE__
-
 // ARM64
 //
 // 1-bit: start
@@ -333,8 +331,6 @@ enum {
 //    function.
 //
 
-#endif // __OPEN_SOURCE__
-
 
 
 
index 67b0973..aac8b7f 100644 (file)
@@ -16,6 +16,7 @@
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <dlfcn.h>
 
 #if __APPLE__
@@ -62,12 +63,36 @@ public:
   typedef uint32_t pint_t;
   typedef int32_t  sint_t;
 #endif
-  uint8_t         get8(pint_t addr)      { return *((uint8_t *)addr); }
-  uint16_t        get16(pint_t addr)     { return *((uint16_t *)addr); }
-  uint32_t        get32(pint_t addr)     { return *((uint32_t *)addr); }
-  uint64_t        get64(pint_t addr)     { return *((uint64_t *)addr); }
-  double          getDouble(pint_t addr) { return *((double *)addr); }
-  v128            getVector(pint_t addr) { return *((v128 *)addr); }
+  uint8_t         get8(pint_t addr) {
+    uint8_t val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
+  uint16_t         get16(pint_t addr) {
+    uint16_t val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
+  uint32_t         get32(pint_t addr) {
+    uint32_t val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
+  uint64_t         get64(pint_t addr) {
+    uint64_t val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
+  double           getDouble(pint_t addr) {
+    double val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
+  v128             getVector(pint_t addr) {
+    v128 val;
+    memcpy(&val, (void *)addr, sizeof(val));
+    return val;
+  }
   uintptr_t       getP(pint_t addr);
   static uint64_t getULEB128(pint_t &addr, pint_t end);
   static int64_t  getSLEB128(pint_t &addr, pint_t end);
@@ -81,7 +106,6 @@ public:
   static LocalAddressSpace sThisAddressSpace;
 };
 
-
 inline uintptr_t LocalAddressSpace::getP(pint_t addr) {
 #if __LP64__
   return get64(addr);
@@ -230,8 +254,9 @@ inline LocalAddressSpace::pint_t LocalAddressSpace::getEncodedP(pint_t &addr,
     const void*                 compact_unwind_section;
     uintptr_t                   compact_unwind_section_length;
   };
-  #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) \
-                                  && (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1070)
+  #if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) \
+                                 && (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1070)) \
+      || defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
     // In 10.7.0 or later, libSystem.dylib implements this function.
     extern "C" bool _dyld_find_unwind_sections(void *, dyld_unwind_sections *);
   #else
index 152baab..640e4f8 100644 (file)
@@ -149,7 +149,7 @@ const char *CFI_Parser<A>::decodeFDE(A &addressSpace, pint_t fdeStart,
   if (cieInfo->fdesHaveAugmentationData) {
     pint_t augLen = (pint_t)addressSpace.getULEB128(p, nextCFI);
     pint_t endOfAug = p + augLen;
-    if (cieInfo->lsdaEncoding != 0) {
+    if (cieInfo->lsdaEncoding != DW_EH_PE_omit) {
       // peek at value (without indirection).  Zero means no lsda
       pint_t lsdaStart = p;
       if (addressSpace.getEncodedP(p, nextCFI, cieInfo->lsdaEncoding & 0x0F) !=
@@ -255,7 +255,7 @@ template <typename A>
 const char *CFI_Parser<A>::parseCIE(A &addressSpace, pint_t cie,
                                     CIE_Info *cieInfo) {
   cieInfo->pointerEncoding = 0;
-  cieInfo->lsdaEncoding = 0;
+  cieInfo->lsdaEncoding = DW_EH_PE_omit;
   cieInfo->personalityEncoding = 0;
   cieInfo->personalityOffsetInCIE = 0;
   cieInfo->personality = 0;
index 96eefd5..584e449 100644 (file)
@@ -1273,6 +1273,296 @@ inline void Registers_arm64::setVectorRegister(int, v128) {
   _LIBUNWIND_ABORT("no arm64 vector register support yet");
 }
 
+/// Registers_arm holds the register state of a thread in a 32-bit arm
+/// process.
+///
+/// NOTE: Assumes VFPv3. On ARM processors without a floating point unit,
+/// this uses more memory than required.
+///
+/// FIXME: Support MMX Data Registers, Control registers, and load/stores
+/// for different representations in the VFP registers as listed in
+/// Table 1 of EHABI #7.5.2
+class _LIBUNWIND_HIDDEN Registers_arm {
+public:
+  Registers_arm();
+  Registers_arm(const void *registers);
+
+  bool        validRegister(int num) const;
+  uint32_t    getRegister(int num) const;
+  void        setRegister(int num, uint32_t value);
+  // FIXME: Due to ARM VRS's support for reading/writing different
+  // representations into the VFP registers this set of accessors seem wrong.
+  // If {get,set}FloatRegister() is the backing store for
+  // _Unwind_VRS_{Get,Set} then it might be best to return a tagged union
+  // with types for each representation in _Unwind_VRS_DataRepresentation.
+  // Similarly, unw_{get,set}_fpreg in the public libunwind API may want to
+  // use a similar tagged union to back the unw_fpreg_t output parameter type.
+  bool        validFloatRegister(int num) const;
+  unw_fpreg_t getFloatRegister(int num) const;
+  void        setFloatRegister(int num, unw_fpreg_t value);
+  bool        validVectorRegister(int num) const;
+  v128        getVectorRegister(int num) const;
+  void        setVectorRegister(int num, v128 value);
+  const char *getRegisterName(int num);
+  void        jumpto();
+
+  uint32_t  getSP() const         { return _registers.__sp; }
+  void      setSP(uint32_t value) { _registers.__sp = value; }
+  uint32_t  getIP() const         { return _registers.__pc; }
+  void      setIP(uint32_t value) { _registers.__pc = value; }
+
+private:
+  struct GPRs {
+    uint32_t __r[13]; // r0-r12
+    uint32_t __sp;    // Stack pointer r13
+    uint32_t __lr;    // Link register r14
+    uint32_t __pc;    // Program counter r15
+  };
+
+  GPRs    _registers;
+};
+
+inline Registers_arm::Registers_arm(const void *registers) {
+  static_assert(sizeof(Registers_arm) < sizeof(unw_context_t),
+                    "arm registers do not fit into unw_context_t");
+  memcpy(&_registers, registers, sizeof(_registers));
+}
+
+inline Registers_arm::Registers_arm() {
+  bzero(&_registers, sizeof(_registers));
+}
+
+inline bool Registers_arm::validRegister(int regNum) const {
+  // Returns true for all non-VFP registers supported by the EHABI
+  // virtual register set (VRS).
+  if (regNum == UNW_REG_IP)
+    return true;
+  if (regNum == UNW_REG_SP)
+    return true;
+  if ((regNum >= UNW_ARM_R0) && (regNum <= UNW_ARM_R15))
+    return true;
+  return false;
+}
+
+inline uint32_t Registers_arm::getRegister(int regNum) const {
+  if (regNum == UNW_REG_SP || regNum == UNW_ARM_SP)
+    return _registers.__sp;
+  if (regNum == UNW_ARM_LR)
+    return _registers.__lr;
+  if (regNum == UNW_REG_IP || regNum == UNW_ARM_IP)
+    return _registers.__pc;
+  if ((regNum >= UNW_ARM_R0) && (regNum <= UNW_ARM_R12))
+    return _registers.__r[regNum];
+  _LIBUNWIND_ABORT("unsupported arm register");
+}
+
+inline void Registers_arm::setRegister(int regNum, uint32_t value) {
+  if (regNum == UNW_REG_SP || regNum == UNW_ARM_SP)
+    _registers.__sp = value;
+  else if (regNum == UNW_ARM_LR)
+    _registers.__lr = value;
+  else if (regNum == UNW_REG_IP || regNum == UNW_ARM_IP)
+    _registers.__pc = value;
+  else if ((regNum >= UNW_ARM_R0) && (regNum <= UNW_ARM_R12))
+    _registers.__r[regNum] = value;
+  else
+    _LIBUNWIND_ABORT("unsupported arm register");
+}
+
+inline const char *Registers_arm::getRegisterName(int regNum) {
+  switch (regNum) {
+  case UNW_REG_IP:
+  case UNW_ARM_IP: // UNW_ARM_R15 is alias
+    return "pc";
+  case UNW_ARM_LR: // UNW_ARM_R14 is alias
+    return "lr";
+  case UNW_REG_SP:
+  case UNW_ARM_SP: // UNW_ARM_R13 is alias
+    return "sp";
+  case UNW_ARM_R0:
+    return "r0";
+  case UNW_ARM_R1:
+    return "r1";
+  case UNW_ARM_R2:
+    return "r2";
+  case UNW_ARM_R3:
+    return "r3";
+  case UNW_ARM_R4:
+    return "r4";
+  case UNW_ARM_R5:
+    return "r5";
+  case UNW_ARM_R6:
+    return "r6";
+  case UNW_ARM_R7:
+    return "r7";
+  case UNW_ARM_R8:
+    return "r8";
+  case UNW_ARM_R9:
+    return "r9";
+  case UNW_ARM_R10:
+    return "r10";
+  case UNW_ARM_R11:
+    return "r11";
+  case UNW_ARM_R12:
+    return "r12";
+  case UNW_ARM_S0:
+    return "s0";
+  case UNW_ARM_S1:
+    return "s1";
+  case UNW_ARM_S2:
+    return "s2";
+  case UNW_ARM_S3:
+    return "s3";
+  case UNW_ARM_S4:
+    return "s4";
+  case UNW_ARM_S5:
+    return "s5";
+  case UNW_ARM_S6:
+    return "s6";
+  case UNW_ARM_S7:
+    return "s7";
+  case UNW_ARM_S8:
+    return "s8";
+  case UNW_ARM_S9:
+    return "s9";
+  case UNW_ARM_S10:
+    return "s10";
+  case UNW_ARM_S11:
+    return "s11";
+  case UNW_ARM_S12:
+    return "s12";
+  case UNW_ARM_S13:
+    return "s13";
+  case UNW_ARM_S14:
+    return "s14";
+  case UNW_ARM_S15:
+    return "s15";
+  case UNW_ARM_S16:
+    return "s16";
+  case UNW_ARM_S17:
+    return "s17";
+  case UNW_ARM_S18:
+    return "s18";
+  case UNW_ARM_S19:
+    return "s19";
+  case UNW_ARM_S20:
+    return "s20";
+  case UNW_ARM_S21:
+    return "s21";
+  case UNW_ARM_S22:
+    return "s22";
+  case UNW_ARM_S23:
+    return "s23";
+  case UNW_ARM_S24:
+    return "s24";
+  case UNW_ARM_S25:
+    return "s25";
+  case UNW_ARM_S26:
+    return "s26";
+  case UNW_ARM_S27:
+    return "s27";
+  case UNW_ARM_S28:
+    return "s28";
+  case UNW_ARM_S29:
+    return "s29";
+  case UNW_ARM_S30:
+    return "s30";
+  case UNW_ARM_S31:
+    return "s31";
+  case UNW_ARM_D0:
+    return "d0";
+  case UNW_ARM_D1:
+    return "d1";
+  case UNW_ARM_D2:
+    return "d2";
+  case UNW_ARM_D3:
+    return "d3";
+  case UNW_ARM_D4:
+    return "d4";
+  case UNW_ARM_D5:
+    return "d5";
+  case UNW_ARM_D6:
+    return "d6";
+  case UNW_ARM_D7:
+    return "d7";
+  case UNW_ARM_D8:
+    return "d8";
+  case UNW_ARM_D9:
+    return "d9";
+  case UNW_ARM_D10:
+    return "d10";
+  case UNW_ARM_D11:
+    return "d11";
+  case UNW_ARM_D12:
+    return "d12";
+  case UNW_ARM_D13:
+    return "d13";
+  case UNW_ARM_D14:
+    return "d14";
+  case UNW_ARM_D15:
+    return "d15";
+  case UNW_ARM_D16:
+    return "d16";
+  case UNW_ARM_D17:
+    return "d17";
+  case UNW_ARM_D18:
+    return "d18";
+  case UNW_ARM_D19:
+    return "d19";
+  case UNW_ARM_D20:
+    return "d20";
+  case UNW_ARM_D21:
+    return "d21";
+  case UNW_ARM_D22:
+    return "d22";
+  case UNW_ARM_D23:
+    return "d23";
+  case UNW_ARM_D24:
+    return "d24";
+  case UNW_ARM_D25:
+    return "d25";
+  case UNW_ARM_D26:
+    return "d26";
+  case UNW_ARM_D27:
+    return "d27";
+  case UNW_ARM_D28:
+    return "d28";
+  case UNW_ARM_D29:
+    return "d29";
+  case UNW_ARM_D30:
+    return "d30";
+  case UNW_ARM_D31:
+    return "d31";
+  default:
+    return "unknown register";
+  }
+}
+
+inline bool Registers_arm::validFloatRegister(int) const {
+  // FIXME: Implement float register support.
+  return false;
+}
+
+inline unw_fpreg_t Registers_arm::getFloatRegister(int) const {
+  _LIBUNWIND_ABORT("ARM float register support not yet implemented");
+}
+
+inline void Registers_arm::setFloatRegister(int, unw_fpreg_t) {
+  _LIBUNWIND_ABORT("ARM float register support not yet implemented");
+}
+
+inline bool Registers_arm::validVectorRegister(int) const {
+  return false;
+}
+
+inline v128 Registers_arm::getVectorRegister(int) const {
+  _LIBUNWIND_ABORT("ARM vector support not implemented");
+}
+
+inline void Registers_arm::setVectorRegister(int, v128) {
+  _LIBUNWIND_ABORT("ARM vector support not implemented");
+}
+
 } // namespace libunwind
 
 #endif // __REGISTERS_HPP__
index 256a72d..235922f 100644 (file)
@@ -1041,6 +1041,8 @@ int UnwindCursor<A, R>::step() {
     this->setInfoBasedOnIPRegister(true);
     if (_unwindInfoMissing)
       return UNW_STEP_END;
+    if (_info.gp)
+      setReg(UNW_REG_SP, getReg(UNW_REG_SP) + _info.gp);
   }
 
   return result;
index 5e24e0d..cf36e7d 100644 (file)
@@ -7,12 +7,12 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "assembly.h"
 
-#if __i386__
   .text
-  .globl __ZN9libunwind13Registers_x866jumptoEv
-  .private_extern __ZN9libunwind13Registers_x866jumptoEv
-__ZN9libunwind13Registers_x866jumptoEv:
+
+#if __i386__
+DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_x866jumptoEv)
 #
 # void libunwind::Registers_x86::jumpto()
 #
@@ -54,10 +54,7 @@ __ZN9libunwind13Registers_x866jumptoEv:
 
 #elif __x86_64__
 
-  .text
-  .globl __ZN9libunwind16Registers_x86_646jumptoEv
-  .private_extern __ZN9libunwind16Registers_x86_646jumptoEv
-__ZN9libunwind16Registers_x86_646jumptoEv:
+DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind16Registers_x86_646jumptoEv)
 #
 # void libunwind::Registers_x86_64::jumpto()
 #
@@ -98,10 +95,7 @@ __ZN9libunwind16Registers_x86_646jumptoEv:
 
 #elif __ppc__
 
-  .text
-  .globl __ZN9libunwind13Registers_ppc6jumptoEv
-  .private_extern __ZN9libunwind13Registers_ppc6jumptoEv
-__ZN9libunwind13Registers_ppc6jumptoEv:
+DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_ppc6jumptoEv)
 ;
 ; void libunwind::Registers_ppc::jumpto()
 ;
@@ -266,16 +260,14 @@ Lnovec:
 
 #elif __arm64__
 
-  .text
-  .globl __ZN9libunwind15Registers_arm646jumptoEv
-  .private_extern __ZN9libunwind15Registers_arm646jumptoEv
-__ZN9libunwind15Registers_arm646jumptoEv:
 ;
 ; void libunwind::Registers_arm64::jumpto()
 ;
 ; On entry:
 ;  thread_state pointer is in x0
 ;
+  .p2align 2
+DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind15Registers_arm646jumptoEv)
   ; skip restore of x0,x1 for now
   ldp    x2, x3,  [x0, #0x010]
   ldp    x4, x5,  [x0, #0x020]
@@ -316,8 +308,24 @@ __ZN9libunwind15Registers_arm646jumptoEv:
   ldp    x0, x1,  [x0, #0x000]  ; restore x0,x1
   ret    lr            ; jump to pc
 
+#elif __arm__
 
-
+@
+@ void libunwind::Registers_arm::jumpto()
+@
+@ On entry:
+@  thread_state pointer is in r0
+@
+  .p2align 2
+DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm6jumptoEv)
+  @ Use lr as base so that r0 can be restored.
+  mov lr, r0
+  @ 32bit thumb-2 restrictions for ldm:
+  @ . the sp (r13) cannot be in the list
+  @ . the pc (r15) and lr (r14) cannot both be in the list in an LDM instruction
+  ldm lr, {r0-r12}
+  ldr sp, [lr, #52]
+  ldr lr, [lr, #60]  @ restore pc into lr
+  mov pc, lr
 
 #endif
-
index 674f813..a3617ed 100644 (file)
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "assembly.h"
 
     .text
 
@@ -24,8 +25,7 @@
 #   +-----------------------+   <-- SP
 #   +                       +
 #
-  .globl _unw_getcontext
-_unw_getcontext:
+DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
   push  %eax
   movl  8(%esp), %eax
   movl  %ebx,  4(%eax)
@@ -60,8 +60,7 @@ _unw_getcontext:
 # On entry:
 #  thread_state pointer is in rdi
 #
-  .globl _unw_getcontext
-_unw_getcontext:
+DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
   movq  %rax,   (%rdi)
   movq  %rbx,  8(%rdi)
   movq  %rcx, 16(%rdi)
@@ -96,8 +95,7 @@ _unw_getcontext:
 ; On entry:
 ;  thread_state pointer is in r3
 ;
-  .globl _unw_getcontext
-_unw_getcontext:
+DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
   stw    r0,  8(r3)
   mflr  r0
   stw    r0,  0(r3)  ; store lr as ssr0
@@ -240,8 +238,8 @@ _unw_getcontext:
 ; On entry:
 ;  thread_state pointer is in x0
 ;
-  .globl _unw_getcontext
-_unw_getcontext:
+  .p2align 2
+DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
   stp    x0, x1,  [x0, #0x000]
   stp    x2, x3,  [x0, #0x010]
   stp    x4, x5,  [x0, #0x020]
@@ -282,5 +280,24 @@ _unw_getcontext:
   ldr    x0, #0      ; return UNW_ESUCCESS
   ret
 
-#endif
+#elif __arm__ && !__APPLE__
+
+@
+@ extern int unw_getcontext(unw_context_t* thread_state)
+@
+@ On entry:
+@  thread_state pointer is in r0
+@
+  .p2align 2
+DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
+  @ 32bit thumb-2 restrictions for stm:
+  @ . the sp (r13) cannot be in the list
+  @ . the pc (r15) cannot be in the list in an STM instruction
+  stm r0, {r0-r12}
+  str sp, [r0, #52]
+  str lr, [r0, #56]
+  str lr, [r0, #60]  @ store return address as pc
+  mov r0, #0      @ return UNW_ESUCCESS
+  mov pc, lr
 
+#endif
diff --git a/src/third_party/libc++abi/trunk/src/Unwind/assembly.h b/src/third_party/libc++abi/trunk/src/Unwind/assembly.h
new file mode 100644 (file)
index 0000000..210d350
--- /dev/null
@@ -0,0 +1,46 @@
+/* ===-- assembly.h - libUnwind assembler support macros -------------------===
+ *
+ *                     The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file defines macros for use in libUnwind assembler source.
+ * This file is not part of the interface of this library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#ifndef UNWIND_ASSEMBLY_H
+#define UNWIND_ASSEMBLY_H
+
+#if defined(__POWERPC__) || defined(__powerpc__) || defined(__ppc__)
+#define SEPARATOR @
+#elif defined(__arm64__)
+#define SEPARATOR %%
+#else
+#define SEPARATOR ;
+#endif
+
+#if defined(__APPLE__)
+#define HIDDEN_DIRECTIVE .private_extern
+#else
+#define HIDDEN_DIRECTIVE .hidden
+#endif
+
+#define GLUE2(a, b) a ## b
+#define GLUE(a, b) GLUE2(a, b)
+#define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)
+
+#define DEFINE_LIBUNWIND_FUNCTION(name)                   \
+  .globl SYMBOL_NAME(name) SEPARATOR                      \
+  SYMBOL_NAME(name):
+
+#define DEFINE_LIBUNWIND_PRIVATE_FUNCTION(name)           \
+  .globl SYMBOL_NAME(name) SEPARATOR                      \
+  HIDDEN_DIRECTIVE SYMBOL_NAME(name) SEPARATOR            \
+  SYMBOL_NAME(name):
+
+#endif /* UNWIND_ASSEMBLY_H */
index 2b92464..7d7e6bf 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef __has_feature
   #define __has_feature(__x) 0
 #endif
-#if !(__has_feature(cxx_static_assert))
+#if !(__has_feature(cxx_static_assert)) && !defined(static_assert)
   #define static_assert(__b, __m) \
       extern int compile_time_assert_failed[ ( __b ) ? 1 : -1 ]  \
                                                   __attribute__( ( unused ) );
index 2043ac2..03d7966 100644 (file)
@@ -168,16 +168,8 @@ _LIBUNWIND_EXPORT int unw_set_reg(unw_cursor_t *cursor, unw_regnum_t regNum,
     co->setReg(regNum, (pint_t)value);
     // specical case altering IP to re-find info (being called by personality
     // function)
-    if (regNum == UNW_REG_IP) {
-      unw_proc_info_t info;
-      co->getInfo(&info);
-      pint_t orgArgSize = (pint_t)info.gp;
-      uint64_t orgFuncStart = info.start_ip;
+    if (regNum == UNW_REG_IP)
       co->setInfoBasedOnIPRegister(false);
-      // and adjust REG_SP if there was a DW_CFA_GNU_args_size
-      if ((orgFuncStart == info.start_ip) && (orgArgSize != 0))
-        co->setReg(UNW_REG_SP, co->getReg(UNW_REG_SP) + orgArgSize);
-    }
     return UNW_ESUCCESS;
   }
   return UNW_EBADREG;
@@ -324,6 +316,7 @@ void _unw_remove_dynamic_fde(unw_word_t fde) {
 
 // Add logging hooks in Debug builds only
 #ifndef NDEBUG
+#include <stdlib.h>
 
 _LIBUNWIND_HIDDEN
 bool logAPIs() {
index abd8091..15fede0 100644 (file)
@@ -7,7 +7,7 @@
 //
 //
 // This file implements the "Auxiliary Runtime APIs"
-// http://www.codesourcery.com/public/cxx-abi/abi-eh.html#cxx-aux
+// http://mentorembedded.github.io/cxx-abi/abi-eh.html#cxx-aux
 //===----------------------------------------------------------------------===//
 
 #include "cxxabi.h"
index ca4155d..d1661e8 100644 (file)
@@ -352,6 +352,7 @@ parse_substitution(const char* first, const char* last, C& db)
 //                ::= Di   # char32_t
 //                ::= Ds   # char16_t
 //                ::= Da   # auto (in dependent new-expressions)
+//                ::= Dc   # decltype(auto)
 //                ::= Dn   # std::nullptr_t (i.e., decltype(nullptr))
 //                ::= u <source-name>    # vendor extended type
 
@@ -487,6 +488,10 @@ parse_builtin_type(const char* first, const char* last, C& db)
                     db.names.push_back("auto");
                     first += 2;
                     break;
+                case 'c':
+                    db.names.push_back("decltype(auto)");
+                    first += 2;
+                    break;
                 case 'n':
                     db.names.push_back("std::nullptr_t");
                     first += 2;
@@ -2277,6 +2282,7 @@ parse_type(const char* first, const char* last, C& db)
 //                   ::= gt    # >             
 //                   ::= ix    # []            
 //                   ::= le    # <=            
+//                   ::= li <source-name>  # operator ""
 //                   ::= ls    # <<            
 //                   ::= lS    # <<=           
 //                   ::= lt    # <             
@@ -2438,6 +2444,18 @@ parse_operator_name(const char* first, const char* last, C& db)
                 db.names.push_back("operator<=");
                 first += 2;
                 break;
+            case 'i':
+                {
+                    const char* t = parse_source_name(first+2, last, db);
+                    if (t != first+2)
+                    {
+                        if (db.names.empty())
+                            return first;
+                        db.names.back().first.insert(0, "operator\"\" ");
+                        first = t;
+                    }
+                }
+                break;
             case 's':
                 db.names.push_back("operator<<");
                 first += 2;
index c43777c..744dddd 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the "Exception Handling APIs"
-//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html
+//  http://mentorembedded.github.io/cxx-abi/abi-eh.html
 //  
 //===----------------------------------------------------------------------===//
 
index 22c4da3..7c78a72 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the "Exception Handling APIs"
-//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html
+//  http://mentorembedded.github.io/cxx-abi/abi-eh.html
 //  
 //===----------------------------------------------------------------------===//
 
index b0b5524..c3ee856 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the storage for the "Caught Exception Stack"
-//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html (section 2.2.2)
+//  http://mentorembedded.github.io/cxx-abi/abi-eh.html (section 2.2.2)
 //  
 //===----------------------------------------------------------------------===//
 
index 97e5800..81104b8 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the "Exception Handling APIs"
-//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html
+//  http://mentorembedded.github.io/cxx-abi/abi-eh.html
 //  http://www.intel.com/design/itanium/downloads/245358.htm
 //  
 //===----------------------------------------------------------------------===//
index c2292ef..3c9b535 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the "Array Construction and Destruction APIs"
-//  http://www.codesourcery.com/public/cxx-abi/abi.html#array-ctor
+//  http://mentorembedded.github.io/cxx-abi/abi.html#array-ctor
 //  
 //===----------------------------------------------------------------------===//
 
index e04fb15..4f8ce90 100644 (file)
@@ -7,7 +7,7 @@
 //
 //  
 //  This file implements the "Exception Handling APIs"
-//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html
+//  http://mentorembedded.github.io/cxx-abi/abi-eh.html
 //  
 //===----------------------------------------------------------------------===//
 
index 52326a3..c65dcab 100644 (file)
@@ -301,17 +301,20 @@ __base_class_type_info::has_unambiguous_public_base(__dynamic_cast_info* info,
                                                     void* adjustedPtr,
                                                     int path_below) const
 {
-    ptrdiff_t offset_to_base = __offset_flags >> __offset_shift;
-    if (__offset_flags & __virtual_mask)
+    ptrdiff_t offset_to_base = 0;
+    if (adjustedPtr != nullptr)
     {
-        const char* vtable = *static_cast<const char*const*>(adjustedPtr);
-        offset_to_base = *reinterpret_cast<const ptrdiff_t*>(vtable + offset_to_base);
+        offset_to_base = __offset_flags >> __offset_shift;
+        if (__offset_flags & __virtual_mask)
+        {
+            const char* vtable = *static_cast<const char*const*>(adjustedPtr);
+            offset_to_base = *reinterpret_cast<const ptrdiff_t*>(vtable + offset_to_base);
+        }
     }
-    __base_type->has_unambiguous_public_base(info,
-                                             static_cast<char*>(adjustedPtr) + offset_to_base,
-                                             (__offset_flags & __public_mask) ?
-                                                 path_below :
-                                                 not_public_path);
+    __base_type->has_unambiguous_public_base(
+            info,
+            static_cast<char*>(adjustedPtr) + offset_to_base,
+            (__offset_flags & __public_mask) ? path_below : not_public_path);
 }
 
 void
@@ -358,7 +361,8 @@ __pointer_type_info::can_catch(const __shim_type_info* thrown_type,
                                void*& adjustedPtr) const
 {
     // Do the dereference adjustment
-    adjustedPtr = *static_cast<void**>(adjustedPtr);
+    if (adjustedPtr != NULL)
+        adjustedPtr = *static_cast<void**>(adjustedPtr);
     // bullets 1 and 4
     if (__pbase_type_info::can_catch(thrown_type, adjustedPtr))
         return true;
@@ -388,7 +392,8 @@ __pointer_type_info::can_catch(const __shim_type_info* thrown_type,
     thrown_class_type->has_unambiguous_public_base(&info, adjustedPtr, public_path);
     if (info.path_dst_ptr_to_static_ptr == public_path)
     {
-        adjustedPtr = const_cast<void*>(info.dst_ptr_leading_to_static_ptr);
+        if (adjustedPtr != NULL)
+            adjustedPtr = const_cast<void*>(info.dst_ptr_leading_to_static_ptr);
         return true;
     }
     return false;
index d90365e..9421782 100644 (file)
@@ -33,7 +33,7 @@ void test2 ()
 {
     try
      {
-       throw &a;
+        throw &a;
         assert(false);
     }
     catch ( A* )
@@ -77,10 +77,120 @@ void test4 ()
     }
 }
 
+struct base1 {int x;};
+struct base2 {int x;};
+struct derived : base1, base2 {};
+
+void test5 ()
+{
+    try
+    {
+        throw (derived*)0;
+        assert(false);
+    }
+    catch (base2 *p) {
+        assert (p == 0);
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
+void test6 ()
+{
+    try
+    {
+        throw nullptr;
+        assert(false);
+    }
+    catch (base2 *p) {
+        assert (p == nullptr);
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
+void test7 ()
+{
+    try
+    {
+        throw (derived*)12;
+        assert(false);
+    }
+    catch (base2 *p) {
+        assert ((unsigned long)p == 12+sizeof(base1));
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
+
+struct vBase {};
+struct vDerived : virtual public vBase {};
+
+void test8 ()
+{
+    try
+    {
+        throw new vDerived;
+        assert(false);
+    }
+    catch (vBase *p) {
+        assert(p != 0);
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
+void test9 ()
+{
+    try
+    {
+        throw nullptr;
+        assert(false);
+    }
+    catch (vBase *p) {
+        assert(p == 0);
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
+void test10 ()
+{
+    try
+    {
+        throw (vDerived*)0;
+        assert(false);
+    }
+    catch (vBase *p) {
+        assert(p == 0);
+    }
+    catch (...)
+    {
+        assert (false);
+    }
+}
+
 int main()
 {
     test1();
     test2();
     test3();
     test4();
+    test5();
+    test6();
+    test7();
+    test8();
+    test9();
+    test10();
 }
index 9bff745..bb5b66d 100644 (file)
@@ -29584,6 +29584,8 @@ const char* cases[][2] =
     {"_Z1fPKU11objcproto1A7NSArray", "f(NSArray<A> const*)"},
     {"_ZNK1AIJ1Z1Y1XEEcv1BIJDpPT_EEIJS2_S1_S0_EEEv", "A<Z, Y, X>::operator B<X*, Y*, Z*><X, Y, Z>() const"},
     {"_ZNK3Ncr6Silver7Utility6detail12CallOnThreadIZ53-[DeploymentSetupController handleManualServerEntry:]E3$_5EclIJEEEDTclclL_ZNS2_4getTIS4_EERT_vEEspclsr3stdE7forwardIT_Efp_EEEDpOSA_", "decltype(-[DeploymentSetupController handleManualServerEntry:]::$_5& Ncr::Silver::Utility::detail::getT<-[DeploymentSetupController handleManualServerEntry:]::$_5>()()(std::forward<-[DeploymentSetupController handleManualServerEntry:]::$_5>(fp))) Ncr::Silver::Utility::detail::CallOnThread<-[DeploymentSetupController handleManualServerEntry:]::$_5>::operator()<>(-[DeploymentSetupController handleManualServerEntry:]::$_5&&) const"},
+    {"_Zli2_xy", "operator\"\" _x(unsigned long long)"},
+    {"_Z1fIiEDcT_", "decltype(auto) f<int>(int)"},
 };
 
 const unsigned N = sizeof(cases) / sizeof(cases[0]);
index 381ed6d..a9b9353 100644 (file)
@@ -1,46 +1,46 @@
-@echo off\r
-\r
-setlocal enableextensions enabledelayedexpansion\r
-\r
-for /f %%v in ('git --git-dir="%~dp0..\.git" describe --tags --match "v*"') do set version=%%v\r
-\r
-if not "%version%"=="" goto :gotversion\r
-\r
-if exist "%~dp0..\version.mk" goto :getversion\r
-\r
-echo Git cannot be found, nor can version.mk. Generating unknown version.\r
-\r
-set version=unknown\r
-\r
-goto :gotversion\r
-\r
-:getversion\r
-\r
-for /f "delims== tokens=2" %%v in (%~dps0..\version.mk) do set version=%%v\r
-\r
-set version=!version:^"=!\r
-set version=!version: =!\r
-\r
-:gotversion\r
-\r
-set version_out=#define %2 "%version%"\r
-set version_mk=%2 = "%version%"\r
-\r
-echo %version_out%> "%1_temp"\r
-\r
-if %version%==unknown goto :skipgenerate\r
-\r
-echo # static version string; update manually every release.> "%~dp0..\version.mk"\r
-echo %version_mk%>> "%~dp0..\version.mk"\r
-\r
-:skipgenerate\r
-\r
-echo n | comp "%1_temp" "%1" > NUL 2> NUL\r
-\r
-if not errorlevel 1 goto exit\r
-\r
-copy /y "%1_temp" "%1"\r
-\r
-:exit\r
-\r
-del "%1_temp"\r
+@echo off
+
+setlocal enableextensions enabledelayedexpansion
+
+for /f %%v in ('git --git-dir="%~dp0..\.git" describe --tags --match "v*"') do set version=%%v
+
+if not "%version%"=="" goto :gotversion
+
+if exist "%~dp0..\version.mk" goto :getversion
+
+echo Git cannot be found, nor can version.mk. Generating unknown version.
+
+set version=unknown
+
+goto :gotversion
+
+:getversion
+
+for /f "delims== tokens=2" %%v in (%~dps0..\version.mk) do set version=%%v
+
+set version=!version:^"=!
+set version=!version: =!
+
+:gotversion
+
+set version_out=#define %2 "%version%"
+set version_mk=%2 = "%version%"
+
+echo %version_out%> "%1_temp"
+
+if %version%==unknown goto :skipgenerate
+
+echo # static version string; update manually every release.> "%~dp0..\version.mk"
+echo %version_mk%>> "%~dp0..\version.mk"
+
+:skipgenerate
+
+echo n | comp "%1_temp" "%1" > NUL 2> NUL
+
+if not errorlevel 1 goto exit
+
+copy /y "%1_temp" "%1"
+
+:exit
+
+del "%1_temp"
index 5257dff..1b4565c 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: anti_flood_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 577095d..9743fe3 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: basic_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index fc6ec4b..e9b2540 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: md5_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 86b8750..c12bf90 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: throttled_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index fd3cabd..71ed820 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: tls_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index e506644..3a848b3 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: unix_daemon.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 4e52c4a..2ccbae8 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: unix_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index f94d56e..3ac2c28 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: winnt_ftpd.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index e84143e..8ad2aa9 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: authorizers.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index b29e974..b81b1b5 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: filesystems.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 7a83ef5..efc17bd 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: handlers.py 976 2012-01-22 22:39:10Z g.rodola $
+# $Id$
 
 #  ======================================================================
 #  Copyright (C) 2007-2012 Giampaolo Rodola' <g.rodola@gmail.com>
index 31bd034..33a54d3 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: ftpserver.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index c2dddf1..b3f43dc 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: setup.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 #
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 1193a9a..60ffc47 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: bench.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 #
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 9ab7c7a..0026b79 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# $Id: test_contrib.py 977 2012-01-22 23:05:09Z g.rodola $
+# $Id$
 
 #  pyftpdlib is released under the MIT license, reproduced below:
 #  ======================================================================
index 1ec6db6..f28b99a 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-# $Id: test_ftpd.py 976 2012-01-22 22:39:10Z g.rodola $
+# $Id$
 
 #  ======================================================================
 #  Copyright (C) 2007-2012 Giampaolo Rodola' <g.rodola@gmail.com>
index 696599b..86487df 100644 (file)
@@ -17,8 +17,6 @@
 # Edit these when rolling DEPS.xwalk.
 # -----------------------------------
 
-chromium_version = '36.0.1985.18'
-
 chromium_crosswalk_rev = 'f8b103e7c4f60e2cf88f49594dbcdd06e58ffa17'
 blink_crosswalk_rev = '99b0aa2fd873af570eb84cbbd342a343ce8bfd7f'
 v8_crosswalk_rev = '535cd006e5174ff00fd7b745a581980b1d371a9f'
@@ -33,8 +31,9 @@ ozone_wayland_git = 'https://github.com/01org'
 # ------------------------------------------------------
 
 chromium_solution = {
-  'name': chromium_version,
-  'url': 'http://src.chromium.org/svn/releases/' + chromium_version,
+  'name': 'src',
+  'url': crosswalk_git + '/chromium-crosswalk.git@' + chromium_crosswalk_rev,
+  'deps_file': '.DEPS.git',
   'custom_deps': {
     'src':
       crosswalk_git + '/chromium-crosswalk.git@' + chromium_crosswalk_rev,
@@ -42,8 +41,6 @@ chromium_solution = {
       crosswalk_git + '/blink-crosswalk.git@' + blink_crosswalk_rev,
     'src/v8':
       crosswalk_git + '/v8-crosswalk.git@' + v8_crosswalk_rev,
-    'src/ozone':
-      ozone_wayland_git + '/ozone-wayland.git@' + ozone_wayland_rev,
   }
 }
 
@@ -68,7 +65,18 @@ ignored_directories = [
 for ignored_directory in ignored_directories:
   chromium_solution['custom_deps'][ignored_directory] = None
 
-solutions = [chromium_solution]
+# ozone-wayland is set as a separate solution because we gclient _not_ to read
+# its .DEPS.git: it changes the recursion limit and tries to check Chromium
+# upstream out itself, leading to URL conflicts and errors about duplicate
+# entries.
+ozone_wayland_solution = {
+  'name': 'src/ozone',
+  'url': ozone_wayland_git + '/ozone-wayland.git@' + ozone_wayland_rev,
+  'deps_file': '',
+}
+
+solutions = [chromium_solution,
+             ozone_wayland_solution]
 
 # -------------------------------------------------
 # This area is edited by generate_gclient-xwalk.py.
index b64b269..7d9fd70 100644 (file)
@@ -1,4 +1,4 @@
 MAJOR=8
 MINOR=36
-BUILD=161
+BUILD=169
 PATCH=0
index 950c89e..ec2cfd4 100644 (file)
@@ -48,7 +48,14 @@ public class XWalkRuntimeClient extends CrossPackageWrapper {
         mInstance = this.createInstance(activity, libCtx, attrs);
         Method getVersion = lookupMethod("getVersion");
         String libVersion = (String) invokeMethod(getVersion, mInstance);
-        if (libVersion == null || !compareVersion(libVersion, getVersion())) {
+        if (libVersion == null) {
+            // If the code executes to here and libVersion got is null, it means
+            // the library package is available but native library is not.
+            // It probably meets CPU arch mismatch, stop execution here to avoid crash.
+            // A dialog should be prompt to user for this information.
+            return;
+        }
+        if (!compareVersion(libVersion, getVersion())) {
             handleException(new XWalkRuntimeLibraryException(
                     XWalkRuntimeLibraryException.XWALK_RUNTIME_LIBRARY_NOT_UP_TO_DATE_CRITICAL));
             mInstance = null;
index dfbfe65..1bad709 100755 (executable)
@@ -8,7 +8,6 @@
 """
 
 import optparse
-import os
 import shutil
 import sys
 
@@ -29,9 +28,9 @@ def SignApk(keystore_path, unsigned_path, signed_path, alias, code):
   shutil.move(intermediate_path, signed_path)
 
 
-def AlignApk(android_sdk_root, unaligned_path, final_path):
+def AlignApk(zipalign_path, unaligned_path, final_path):
   align_cmd = [
-      os.path.join(android_sdk_root, 'tools', 'zipalign'),
+      zipalign_path,
       '-f', '4',  # 4 bytes
       unaligned_path,
       final_path
@@ -42,7 +41,7 @@ def AlignApk(android_sdk_root, unaligned_path, final_path):
 def main():
   parser = optparse.OptionParser()
 
-  parser.add_option('--android-sdk-root', help='Android sdk root directory.')
+  parser.add_option('--zipalign-path', help='Path to the zipalign tool.')
   parser.add_option('--unsigned-apk-path', help='Path to input unsigned APK.')
   parser.add_option('--final-apk-path',
       help='Path to output signed and aligned APK.')
@@ -55,7 +54,7 @@ def main():
   signed_apk_path = options.unsigned_apk_path + '.signed.apk'
   SignApk(options.keystore_path, options.unsigned_apk_path,
           signed_apk_path, options.keystore_alias, options.keystore_passcode)
-  AlignApk(options.android_sdk_root, signed_apk_path, options.final_apk_path)
+  AlignApk(options.zipalign_path, signed_apk_path, options.final_apk_path)
 
   if options.stamp:
     build_utils.Touch(options.stamp)
index 2c1bbc1..450da42 100755 (executable)
@@ -28,9 +28,11 @@ def CleanDir(path):
   if os.path.exists(path):
     shutil.rmtree(path)
 
+
 def AllArchitectures():
   return ("x86", "arm")
 
+
 def RunCommand(command, verbose=False, shell=False):
   """Runs the command list, print the output, and propagate its result."""
   proc = subprocess.Popen(command, stdout=subprocess.PIPE,
@@ -47,21 +49,15 @@ def RunCommand(command, verbose=False, shell=False):
 
 
 def Which(name):
-  """Search PATH for executable files with the given name."""
-  result = []
-  exts = [_f for _f in os.environ.get('PATHEXT', '').split(os.pathsep) if _f]
-  path = os.environ.get('PATH', None)
-  if path is None:
-    return []
-  for p in os.environ.get('PATH', '').split(os.pathsep):
-    p = os.path.join(p, name)
-    if os.access(p, os.X_OK):
-      result.append(p)
-    for e in exts:
-      pext = p + e
-      if os.access(pext, os.X_OK):
-        result.append(pext)
-  return result
+  """Searches PATH for executable files with the given name, also taking
+  PATHEXT into account. Returns the first existing match, or None if no matches
+  are found."""
+  for path in os.environ.get('PATH', '').split(os.pathsep):
+    for filename in AddExeExtensions(name):
+      full_path = os.path.join(path, filename)
+      if os.path.isfile(full_path) and os.access(full_path, os.X_OK):
+        return full_path
+  return None
 
 
 def Find(name, path):
@@ -128,6 +124,8 @@ def ParseManifest(options, app_info):
   if parser.GetAppRoot():
     options.app_root = parser.GetAppRoot()
     options.icon_dict = parser.GetIcons()
+  if parser.GetOrientation():
+    options.orientation = parser.GetOrientation()
   if parser.GetFullScreenFlag().lower() == 'true':
     options.fullscreen = True
   elif parser.GetFullScreenFlag().lower() == 'false':
@@ -218,12 +216,13 @@ def Customize(options, app_info):
 
 
 def Execution(options, name):
-  android_path_array = Which('android')
-  if not android_path_array:
-    print('Please install Android SDK first.')
+  android_path = Which('android')
+  if android_path is None:
+    print('The "android" binary could not be found. Check your Android SDK '
+          'installation and your PATH environment variable.')
     sys.exit(1)
 
-  sdk_root_path = os.path.dirname(os.path.dirname(android_path_array[0]))
+  sdk_root_path = os.path.dirname(os.path.dirname(android_path))
 
   try:
     sdk_jar_path = Find('android.jar',
@@ -457,11 +456,29 @@ def Execution(options, name):
          'scripts/ant/apk-package.xml']
   RunCommand(cmd, options.verbose)
 
+  # Find the path of zipalign.
+  # XWALK-2033: zipalign can be in different locations depending on Android
+  # SDK version that used ((eg. /tools, /build-tools/android-4.4W etc),).
+  # So looking up the location of zipalign here instead of hard coding.
+  # Refer to: https://codereview.chromium.org/238253015
+  zipalign_path = ''
+  for zipalign_str in AddExeExtensions('zipalign'):
+    try:
+      zipalign_path = Find(zipalign_str, sdk_root_path)
+      if options.verbose:
+        print('Use %s in %s.' % (zipalign_str, sdk_root_path))
+      break
+    except Exception:
+      pass
+  if not zipalign_path:
+    print('zipalign could not be found in your Android SDK.'
+          ' Make sure it is installed.')
+    sys.exit(10)
   apk_path = '--unsigned-apk-path=' + os.path.join('out', 'app-unsigned.apk')
   final_apk_path = '--final-apk-path=' + \
                    os.path.join('out', name + '.apk')
   cmd = ['python', 'scripts/gyp/finalize_apk.py',
-         '--android-sdk-root=%s' % sdk_root_path,
+         '--zipalign-path=%s' % zipalign_path,
          apk_path,
          final_apk_path,
          '--keystore-path=%s' % key_store,
@@ -553,9 +570,6 @@ def MakeApk(options, app_info):
       if len(packaged_archs) == 0:
         print('No packages created, aborting')
         sys.exit(13)
-  else:
-    print('Unknown mode for packaging the application. Abort!')
-    sys.exit(11)
 
   PrintPackageInfo(options, packaged_archs)
 
@@ -573,7 +587,8 @@ def main(argv):
           'The value \'embedded\' means that the runtime is embedded into the '
           'application itself and distributed along with it.'
           'Set the default mode as \'embedded\'. For example: --mode=embedded')
-  parser.add_option('--mode', default='embedded', help=info)
+  parser.add_option('--mode', choices=('embedded', 'shared'),
+                    default='embedded', help=info)
   info = ('The target architecture of the embedded runtime. Supported values '
           'are \'x86\' and \'arm\'. Note, if undefined, APKs for all possible '
           'architestures will be generated.')
@@ -714,16 +729,26 @@ def main(argv):
       options.name = ReplaceSpaceWithUnderscore(options.name)
     else:
       parser.error('The APK name is required! Please use "--name" option.')
-    if not ((options.app_url and
-             not options.app_root and
-             not options.app_local_path) or
-            (not options.app_url and
-             options.app_root and
-             options.app_local_path)):
-      parser.error('The entry is required. If the entry is a remote url, '
-                   'please use "--app-url" option; If the entry is local, '
-                   'please use "--app-root" and '
-                   '"--app-local-path" options together!')
+
+    # The checks here are really convoluted, but at the moment make_apk
+    # misbehaves any of the following conditions is true.
+    if options.app_url:
+      # 1) --app-url must be passed without either --app-local-path or
+      #    --app-root.
+      if options.app_root or options.app_local_path:
+        parser.error('You must pass either "--app-url" or "--app-local-path" '
+                     'with "--app-root", but not all.')
+    else:
+      # 2) --app-url is not passed but only one of --app-local-path and
+      #    --app-root is set.
+      if bool(options.app_root) != bool(options.app_local_path):
+        parser.error('You must specify both "--app-local-path" and '
+                     '"--app-root".')
+      # 3) None of --app-url, --app-local-path and --app-root are passed.
+      elif not options.app_root and not options.app_local_path:
+        parser.error('You must pass either "--app-url" or "--app-local-path" '
+                     'with "--app-root".')
+
     if options.permissions:
       permission_list = options.permissions.split(':')
     else:
index cdb5992..d01ba4f 100755 (executable)
@@ -347,8 +347,11 @@ class TestMakeApk(unittest.TestCase):
            '--package=org.xwalk.example', '--app-url=http://www.intel.com',
            self._mode]
     out = RunCommand(cmd)
+    self.assertNotIn('You must pass either "--app-url" or',
+                     out)
+    self.assertNotIn('You must specify both "--app-local-path" and',
+                     out)
     self.addCleanup(Clean, 'Example', '1.0.0')
-    self.assertTrue(out.find('The entry is required.') == -1)
     self.checkApks('Example', '1.0.0')
     Clean('Example', '1.0.0')
 
@@ -357,7 +360,10 @@ class TestMakeApk(unittest.TestCase):
            '--package=org.xwalk.example', '--app-root=%s' % test_entry_root,
            '--app-local-path=index.html', self._mode]
     out = RunCommand(cmd)
-    self.assertTrue(out.find('The entry is required.') == -1)
+    self.assertNotIn('You must pass either "--app-url" or',
+                     out)
+    self.assertNotIn('You must specify both "--app-local-path" and',
+                     out)
     self.checkApks('Example', '1.0.0')
 
   def testEntryWithErrors(self):
@@ -365,7 +371,9 @@ class TestMakeApk(unittest.TestCase):
            '--package=org.xwalk.example', self._mode]
     out = RunCommand(cmd)
     self.addCleanup(Clean, 'Example', '1.0.0')
-    self.assertTrue(out.find('The entry is required.') != -1)
+    self.assertIn('You must pass either "--app-url" or',
+                  out)
+
     self.assertFalse(os.path.exists('Example.apk'))
     Clean('Example', '1.0.0')
 
@@ -373,14 +381,16 @@ class TestMakeApk(unittest.TestCase):
            '--package=org.xwalk.example', '--app-url=http://www.intel.com',
            '--app-root=.', self._mode]
     out = RunCommand(cmd)
-    self.assertTrue(out.find('The entry is required.') != -1)
+    self.assertIn('You must pass either "--app-url" or',
+                  out)
     self.assertFalse(os.path.exists('Example.apk'))
     Clean('Example', '1.0.0')
 
     cmd = ['python', 'make_apk.py', '--name=Example', '--app-version=1.0.0',
            '--package=org.xwalk.example', '--app-root=./', self._mode]
     out = RunCommand(cmd)
-    self.assertTrue(out.find('The entry is required.') != -1)
+    self.assertIn('You must specify both "--app-local-path" and',
+                  out)
     self.assertFalse(os.path.exists('Example.apk'))
     Clean('Example', '1.0.0')
 
@@ -388,7 +398,8 @@ class TestMakeApk(unittest.TestCase):
            '--package=org.xwalk.example', '--app-local-path=index.html',
            self._mode]
     out = RunCommand(cmd)
-    self.assertTrue(out.find('The entry is required.') != -1)
+    self.assertIn('You must specify both "--app-local-path" and',
+                  out)
     self.assertFalse(os.path.exists('Example.apk'))
     Clean('Example', '1.0.0')
 
@@ -503,6 +514,7 @@ class TestMakeApk(unittest.TestCase):
     self.assertTrue(content.find('android.permission.RECEIVE_SMS') != -1)
     self.assertTrue(content.find('android.permission.SEND_SMS') != -1)
     self.assertTrue(content.find('android.permission.WRITE_SMS') != -1)
+    self.assertTrue(content.find('landscape') != -1)
     theme = 'Example/res/values/theme.xml'
     with open(theme, 'r') as content_file:
       content = content_file.read()
@@ -523,6 +535,36 @@ class TestMakeApk(unittest.TestCase):
     self.assertTrue(out.find('no app launch path') == -1)
     self.checkApks('Example', '1.0.0')
 
+  def testManifestWithDeprecatedField(self):
+    manifest_path = os.path.join('test_data', 'manifest', 'deprecated',
+                                 'manifest_app_local_path.json')
+    cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
+    out = RunCommand(cmd)
+    self.addCleanup(Clean, 'Example', '1.0.0')
+    self.assertTrue(out.find(
+        'WARNING: app.launch.local_path is deprecated for Crosswalk') != -1)
+    Clean('Example', '1.0.0')
+    manifest_path = os.path.join('test_data', 'manifest', 'deprecated',
+                                 'manifest_launch_path.json')
+    cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
+    out = RunCommand(cmd)
+    self.assertTrue(
+        out.find('WARNING: launch_path is deprecated for Crosswalk') != -1)
+    Clean('Example', '1.0.0')
+    manifest_path = os.path.join('test_data', 'manifest', 'deprecated',
+                                 'manifest_permissions.json')
+    cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
+    out = RunCommand(cmd)
+    self.assertTrue(
+        out.find('WARNING: permissions is deprecated for Crosswalk') != -1)
+    Clean('Example', '1.0.0')
+    manifest_path = os.path.join('test_data', 'manifest',
+                                 'manifest_deprecated_icon.json')
+    cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
+    out = RunCommand(cmd)
+    self.assertTrue(out.find(
+        'WARNING: icons defined as dictionary form is deprecated') != -1)
+
   def testManifestWithError(self):
     manifest_path = os.path.join('test_data', 'manifest',
                                  'manifest_no_app_launch_path.json')
@@ -805,6 +847,13 @@ class TestMakeApk(unittest.TestCase):
           _file.write(name)
           _file.close()
     # Run Test.
+    manifest_path = os.path.join('test_data', 'launchScreen',
+                                 'manifest_deprecated_launch_screen.json')
+    cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
+    out = RunCommand(cmd)
+    self.assertTrue(
+        out.find('WARNING: launch_screen is deprecated for Crosswalk') != -1)
+    Clean('Example', '1.0.0')
     manifest_path = os.path.join('test_data', 'launchScreen', 'manifest.json')
     cmd = ['python', 'make_apk.py', '--manifest=%s' % manifest_path, self._mode]
     RunCommand(cmd)
@@ -1037,6 +1086,7 @@ def SuiteWithModeOption():
   test_suite.addTest(TestMakeApk('testInvalidCharacter'))
   test_suite.addTest(TestMakeApk('testKeystore'))
   test_suite.addTest(TestMakeApk('testManifest'))
+  test_suite.addTest(TestMakeApk('testManifestWithDeprecatedField'))
   test_suite.addTest(TestMakeApk('testManifestWithError'))
   test_suite.addTest(TestMakeApk('testName'))
   test_suite.addTest(TestMakeApk('testOrientation'))
index e8b84aa..2325aa9 100755 (executable)
@@ -41,6 +41,28 @@ def HandlePermissionList(permission_list):
   return ':'.join(permissions)
 
 
+def ParseLaunchScreen(ret_dict, launch_screen_dict, orientation):
+  if orientation in launch_screen_dict:
+    sub_dict = launch_screen_dict[orientation]
+    if 'background_color' in sub_dict:
+      ret_dict['launch_screen_background_color_' + orientation] = (
+          sub_dict['background_color'])
+    if 'background_image' in sub_dict:
+      ret_dict['launch_screen_background_image_' + orientation] = (
+          sub_dict['background_image'])
+    if 'image' in sub_dict:
+      ret_dict['launch_screen_image_' + orientation] = (
+          sub_dict['image'])
+    if 'image_border' in sub_dict:
+      ret_dict['launch_screen_image_border_' + orientation] = (
+          sub_dict['image_border'])
+
+
+def PrintDeprecationWarning(item):
+  print ('WARNING: %s is deprecated for Crosswalk. Please follow '
+         'https://www.crosswalk-project.org/#documentation/manifest.' % item)
+
+
 class ManifestJsonParser(object):
   """ The class is used to parse json-format manifest file, recompose the
   fields and provide the field interfaces required by the packaging tool.
@@ -84,6 +106,7 @@ class ManifestJsonParser(object):
     permissions:      The permission list.
     required_version: The required crosswalk runtime version.
     plugin:           The plug-in information.
+    orientation       The default allowed orientations.
     fullscreen:       The fullscreen flag of the application.
     launch_screen:    The launch screen configuration.
     """
@@ -96,11 +119,15 @@ class ManifestJsonParser(object):
       print('Error: no \'version\' field in manifest.json file.')
       sys.exit(1)
     ret_dict['version'] = self.data_src['version']
-    if 'launch_path' in self.data_src:
+    if 'start_url' in self.data_src:
+      app_url = self.data_src['start_url']
+    elif 'launch_path' in self.data_src:
+      PrintDeprecationWarning('launch_path')
       app_url = self.data_src['launch_path']
     elif ('app' in self.data_src and
           'launch' in self.data_src['app'] and
           'local_path' in self.data_src['app']['launch']):
+      PrintDeprecationWarning('app.launch.local_path')
       app_url = self.data_src['app']['launch']['local_path']
     else:
       app_url = ''
@@ -111,7 +138,18 @@ class ManifestJsonParser(object):
       app_url = ''
     file_path_prefix = os.path.split(self.input_path)[0]
     if 'icons' in self.data_src:
-      ret_dict['icons'] = self.data_src['icons']
+      icons = self.data_src['icons']
+      if type(icons) == dict:
+        PrintDeprecationWarning('icons defined as dictionary form')
+        ret_dict['icons'] = icons
+      elif type(icons) == list:
+        icons_dict = {}
+        for icon in icons:
+          if 'sizes' in icon and 'src' in icon:
+            icons_dict[icon['sizes'].split('x')[0]] = icon['src']
+        ret_dict['icons'] = icons_dict
+      else:
+        ret_dict['icons'] = {}
     else:
       ret_dict['icons'] = {}
     app_root = file_path_prefix
@@ -122,7 +160,15 @@ class ManifestJsonParser(object):
     ret_dict['app_root'] = app_root
     ret_dict['app_local_path'] = app_local_path
     ret_dict['permissions'] = ''
-    if 'permissions' in self.data_src:
+    if 'xwalk_permissions' in self.data_src:
+      try:
+        permission_list = self.data_src['xwalk_permissions']
+        ret_dict['permissions'] = HandlePermissionList(permission_list)
+      except (TypeError, ValueError, IOError):
+        print('\'Permissions\' field error in manifest.json file.')
+        sys.exit(1)
+    elif 'permissions' in self.data_src:
+      PrintDeprecationWarning('permissions')
       try:
         permission_list = self.data_src['permissions']
         ret_dict['permissions'] = HandlePermissionList(permission_list)
@@ -135,32 +181,38 @@ class ManifestJsonParser(object):
     ret_dict['plugin'] = ''
     if 'plugin' in self.data_src:
       ret_dict['plugin'] = self.data_src['plugin']
+    orientation = {'landscape':'landscape',
+                   'landscape-primary':'landscape',
+                   'landscape-secondary':'reverseLandscape',
+                   'portrait':'portrait',
+                   'portrait-primary':'portrait',
+                   'portrait-secondary':'reversePortrait',
+                   'any':'unspecified',
+                   'natural':'unspecified'}
+    if 'orientation' in self.data_src:
+      if self.data_src['orientation'] in orientation:
+        ret_dict['orientation'] = orientation[self.data_src['orientation']]
+      else:
+        ret_dict['orientation'] = 'unspecified'
+    else:
+      ret_dict['orientation'] = 'unspecified'
     if 'display' in self.data_src and 'fullscreen' in self.data_src['display']:
       ret_dict['fullscreen'] = 'true'
     else:
       ret_dict['fullscreen'] = ''
-    if 'launch_screen' in self.data_src:
-      self.ParseLaunchScreen(ret_dict, 'default')
-      self.ParseLaunchScreen(ret_dict, 'portrait')
-      self.ParseLaunchScreen(ret_dict, 'landscape')
+    if 'xwalk_launch_screen' in self.data_src:
+      launch_screen_dict = self.data_src['xwalk_launch_screen']
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'default')
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'portrait')
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'landscape')
+    elif 'launch_screen' in self.data_src:
+      PrintDeprecationWarning('launch_screen')
+      launch_screen_dict = self.data_src['launch_screen']
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'default')
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'portrait')
+      ParseLaunchScreen(ret_dict, launch_screen_dict, 'landscape')
     return ret_dict
 
-  def ParseLaunchScreen(self, ret_dict, orientation):
-    if orientation in self.data_src['launch_screen']:
-      sub_dict = self.data_src['launch_screen'][orientation]
-      if 'background_color' in sub_dict:
-        ret_dict['launch_screen_background_color_' + orientation] = (
-            sub_dict['background_color'])
-      if 'background_image' in sub_dict:
-        ret_dict['launch_screen_background_image_' + orientation] = (
-            sub_dict['background_image'])
-      if 'image' in sub_dict:
-        ret_dict['launch_screen_image_' + orientation] = (
-            sub_dict['image'])
-      if 'image_border' in sub_dict:
-        ret_dict['launch_screen_image_border_' + orientation] = (
-            sub_dict['image_border'])
-
   def ShowItems(self):
     """Show the processed results, it is used for command-line
     internal debugging."""
@@ -174,6 +226,7 @@ class ManifestJsonParser(object):
     print("permissions: %s" % self.GetPermissions())
     print("required_version: %s" % self.GetRequiredVersion())
     print("plugins: %s" % self.GetPlugins())
+    print("orientation: %s" % self.GetOrientation())
     print("fullscreen: %s" % self.GetFullScreenFlag())
     print('launch_screen.default.background_color: %s' %
         self.GetLaunchScreenBackgroundColor('default'))
@@ -240,6 +293,10 @@ class ManifestJsonParser(object):
     """Return the plug-in path and file name."""
     return self.ret_dict['plugin']
 
+  def GetOrientation(self):
+    """Return the default allowed orientations"""
+    return self.ret_dict['orientation']
+
   def GetFullScreenFlag(self):
     """Return the set fullscreen flag of the application."""
     return self.ret_dict['fullscreen']
index fefc493..e5db3eb 100644 (file)
@@ -1,18 +1,13 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "app": {
-    "launch": {
-      "local_path": "../entry/index.html"
-    }
-  },
+  "start_url": "http://www.intel.com",
   "description": "Launch screen test",
-  "icons": {
-  },
-  "permissions": [],
+  "icons": [],
+  "xwalk_permissions": [],
   "required_version": "3.31.31.0",
   "plugin": [],
-  "launch_screen": {
+  "xwalk_launch_screen": {
     "ready_when": "custom",
     "default": {
        "background_color": "#000000",
diff --git a/src/xwalk/app/tools/android/test_data/launchScreen/manifest_deprecated_launch_screen.json b/src/xwalk/app/tools/android/test_data/launchScreen/manifest_deprecated_launch_screen.json
new file mode 100644 (file)
index 0000000..e69f6b2
--- /dev/null
@@ -0,0 +1,31 @@
+{
+  "name": "Example",
+  "version": "1.0.0",
+  "start_url": "http://www.intel.com",
+  "description": "Launch screen test",
+  "icons": [],
+  "xwalk_permissions": [],
+  "required_version": "3.31.31.0",
+  "plugin": [],
+  "launch_screen": {
+    "ready_when": "custom",
+    "default": {
+       "background_color": "#000000",
+       "background_image": "default_bg_1, default_bg_1_5 1.5x, default_bg_2 2x, default_bg_0_75 0.75x",
+       "image": "default_img_1, default_img_1_5 1.5x, default_img_2 2x, default_img_0_75 0.75x",
+       "image_border": "30px repeat stretch"
+    },
+    "portrait": {
+       "background_color": "#000001",
+       "background_image": "portrait_bg_1, portrait_bg_1_5 1.5x, portrait_bg_2 2x, portrait_bg_0_75 0.75x",
+       "image": "portrait_img_1, portrait_img_1_5 1.5x, portrait_img_2 2x, portrait_img_0_75 0.75x",
+       "image_border": "30px repeat stretch"
+    },
+    "landscape": {
+       "background_color": "#000002",
+       "background_image": "landscape_bg_1, landscape_bg_1_5 1.5x, landscape_bg_2 2x, landscape_bg_0_75 0.75x",
+       "image": "landscape_img_1, landscape_img_1_5 1.5x, landscape_img_2 2x, landscape_img_0_75 0.75x",
+       "image_border": "30px repeat stretch"
+    }
+  }
+}
diff --git a/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_app_local_path.json b/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_app_local_path.json
new file mode 100644 (file)
index 0000000..c5aefbb
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name": "Example",
+  "version": "1.0.0",
+  "app": {
+      "launch": {
+          "local_path": "http://www.intel.com"
+      }
+  },
+  "description": "a sample description"
+}
diff --git a/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_launch_path.json b/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_launch_path.json
new file mode 100644 (file)
index 0000000..6b0fce2
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "name": "Example",
+  "version": "1.0.0",
+  "launch_path": "http://www.intel.com",
+  "description": "a sample description"
+}
diff --git a/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_permissions.json b/src/xwalk/app/tools/android/test_data/manifest/deprecated/manifest_permissions.json
new file mode 100644 (file)
index 0000000..0253028
--- /dev/null
@@ -0,0 +1,10 @@
+{
+  "name": "Example",
+  "version": "1.0.0",
+  "start_url": "http://www.intel.com",
+  "description": "a sample description",
+  "permissions": [
+    "Contacts",
+    "Geolocation",
+    "Messaging"]
+}
index 51de0f0..b0e60d6 100644 (file)
@@ -1,12 +1,7 @@
 {
   "name": "app name ",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
   "default_locale": "en",
index f16dbf2..11ff9c7 100644 (file)
@@ -1,12 +1,7 @@
 {
   "name": "\Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
   "default_locale": "en",
index 910c31b..6068114 100644 (file)
@@ -1,12 +1,7 @@
 {
   "name": "你好",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
   "default_locale": "en",
index 413b4f0..f2b8427 100644 (file)
@@ -1,12 +1,7 @@
 {
   "name": "@*&^Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
   "default_locale": "en",
index cdbb6dc..a942ec8 100644 (file)
@@ -1,12 +1,7 @@
 {
   "name": " ",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
   "default_locale": "en",
index fb355be..5012125 100644 (file)
@@ -1,22 +1,17 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": [
+  "xwalk_permissions": [
     "Contacts",
     "Geolocation",
     "Messaging"],
   "required_version": "1.28.1.0",
   "plugin": [],
+  "orientation": "landscape",
   "display": ["fullscreen"]
 }
index 1900c70..bf57f2e 100644 (file)
@@ -1,17 +1,12 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "app": {
-      "launch": {
-          "local_path": "http.html"
-      }
-  },
+  "start_url": "http.html",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["geolocation"],
+  "xwalk_permissions": ["geolocation"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "display": ["fullscreen"]
diff --git a/src/xwalk/app/tools/android/test_data/manifest/manifest_deprecated_icon.json b/src/xwalk/app/tools/android/test_data/manifest/manifest_deprecated_icon.json
new file mode 100644 (file)
index 0000000..28ea31d
--- /dev/null
@@ -0,0 +1,15 @@
+{
+  "name": "Example",
+  "version": "1.0.0",
+  "start_url": "http://www.intel.com",
+  "description": "a sample description",
+  "origin": "app://app.id",
+  "icons": {
+    "144": "icons/icon_144.png",
+    "96": "icons/icon_96.png",
+    "72": "icons/icon_72.png",
+    "48": "icons/icon_48.png"
+  },
+  "default_locale": "en",
+  "fullscreen":"true"
+}
index 44a8274..73b189d 100644 (file)
@@ -1,20 +1,27 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-    "144": "icons/icon_144.png",
-    "96": "icons/icon_96.png",
-    "72": "icons/icon_72.png",
-    "48": "icons/icon_48.png"
-  },
+  "icons": [
+    {
+      "src": "icons/icon_144.png",
+      "sizes": "144x144"
+    },
+    {
+      "src": "icons/icon_96.png",
+      "sizes": "96x96"
+    },
+    {
+      "src": "icons/icon_72.png",
+      "sizes": "72x72"
+    },
+    {
+      "src": "icons/icon_48.png",
+      "sizes": "48x48"
+    }
+  ],
   "default_locale": "en",
   "fullscreen":"true"
 }
index c932bf6..6b08a57 100644 (file)
@@ -3,10 +3,9 @@
   "version": "1.0.0",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["geolocation"],
+  "xwalk_permissions": ["geolocation"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index 79b9c14..63f20da 100644 (file)
@@ -1,17 +1,11 @@
 {
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["geolocation"],
+  "xwalk_permissions": ["geolocation"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index a041fbe..7059d33 100644 (file)
@@ -1,17 +1,11 @@
 {
   "name": "Example",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["geolocation"],
+  "xwalk_permissions": ["geolocation"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index b8732c2..da77427 100644 (file)
@@ -1,18 +1,12 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["Telephony"],
+  "xwalk_permissions": ["Telephony"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index 98a63e0..8702a4e 100644 (file)
@@ -1,18 +1,12 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": ["geolocation,"],
+  "xwalk_permissions": ["geolocation,"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index 83eb722..b8915a1 100644 (file)
@@ -1,18 +1,12 @@
 {
   "name": "Example",
   "version": "1.0.0",
-  "launch_path": "http://www.intel.com",
-  "app": {
-      "launch": {
-          "local_path": "index.html"
-      }
-  },
+  "start_url": "http://www.intel.com",
   "description": "a sample description",
   "origin": "app://app.id",
-  "icons": {
-  },
+  "icons": [],
   "default_locale": "en",
-  "permissions": [{"filesystem":["write"]},"experimental"],
+  "xwalk_permissions": [{"filesystem":["write"]},"experimental"],
   "required_version": "1.28.1.0",
   "plugin": [],
   "fullscreen":"true"
index b8223ac..b0e9708 100644 (file)
@@ -96,6 +96,9 @@ bool Application::Launch(const LaunchParams& launch_params) {
     params.state = GetWindowShowStateWGT(launch_params);
   else
     params.state = GetWindowShowStateXPK(launch_params);
+
+  params.splash_screen_path = GetSplashScreenPath();
+
   runtime->AttachWindow(params);
 
   return true;
@@ -366,5 +369,9 @@ bool Application::CanRequestURL(const GURL& url) const {
   return true;
 }
 
+base::FilePath Application::GetSplashScreenPath() {
+  return base::FilePath();
+}
+
 }  // namespace application
 }  // namespace xwalk
index 0434150..832acee 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "base/callback.h"
 #include "base/compiler_specific.h"
+#include "base/files/file_path.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_vector.h"
 #include "base/observer_list.h"
@@ -132,6 +133,10 @@ class Application : public Runtime::Observer,
   virtual bool Launch(const LaunchParams& launch_params);
   virtual void InitSecurityPolicy();
 
+  // Get the path of splash screen image. Return empty path by default.
+  // Sub class can override it to return a specific path.
+  virtual base::FilePath GetSplashScreenPath();
+
   std::set<Runtime*> runtimes_;
   scoped_refptr<ApplicationData> const data_;
   // The application's render process host.
index 83c167e..6820566 100644 (file)
@@ -27,7 +27,6 @@
 #include "net/url_request/url_request_error_job.h"
 #include "net/url_request/url_request_file_job.h"
 #include "net/url_request/url_request_simple_job.h"
-#include "xwalk/runtime/browser/xwalk_runner.h"
 #include "xwalk/application/browser/application_service.h"
 #include "xwalk/application/common/application_data.h"
 #include "xwalk/application/common/application_file_util.h"
@@ -35,6 +34,7 @@
 #include "xwalk/application/common/application_resource.h"
 #include "xwalk/application/common/constants.h"
 #include "xwalk/application/common/manifest_handlers/csp_handler.h"
+#include "xwalk/runtime/common/xwalk_system_locale.h"
 
 using content::BrowserThread;
 using content::ResourceRequestInfo;
@@ -216,7 +216,7 @@ class ApplicationProtocolHandler
 // The |locale| should be expanded to user agent locale.
 // Such as, "en-us" will be expaned as "en-us, en".
 void GetUserAgentLocales(const std::string& sys_locale,
-                         std::list<std::string>& ua_locales) {
+                         std::list<std::string>& ua_locales) {  // NOLINT
   if (sys_locale.empty())
     return;
 
@@ -266,8 +266,7 @@ ApplicationProtocolHandler::MaybeCreateJob(
 
   std::list<std::string> locales;
   if (application && application->GetPackageType() == Package::WGT) {
-    GetUserAgentLocales(
-        xwalk::XWalkRunner::GetInstance()->GetLocale(), locales);
+    GetUserAgentLocales(GetSystemLocale(), locales);
     GetUserAgentLocales(application->GetManifest()->default_locale(), locales);
   }
 
index c4fa85a..87e1311 100644 (file)
@@ -4,11 +4,11 @@
 
 #include "xwalk/application/browser/application_service.h"
 
-#include <hash_set>
 #include <set>
 #include <string>
 #include <vector>
 
+#include "base/containers/hash_tables.h"
 #include "base/files/file_enumerator.h"
 #include "base/file_util.h"
 #include "base/memory/scoped_ptr.h"
@@ -52,7 +52,7 @@ void CollectUnusedStoragePartitions(RuntimeContext* context,
     return;
 
   scoped_ptr<base::hash_set<base::FilePath> > active_paths(
-      new base::hash_set<base::FilePath>());
+      new base::hash_set<base::FilePath>()); // NOLINT
 
   for (unsigned i = 0; i < app_ids.size(); ++i) {
     active_paths->insert(
@@ -68,54 +68,13 @@ void CollectUnusedStoragePartitions(RuntimeContext* context,
 ApplicationService::ApplicationService(RuntimeContext* runtime_context,
                                        ApplicationStorage* app_storage)
     : runtime_context_(runtime_context),
-      application_storage_(app_storage),
-      package_installer_(PackageInstaller::Create(app_storage)) {
+      application_storage_(app_storage) {
   CollectUnusedStoragePartitions(runtime_context, app_storage);
 }
 
 ApplicationService::~ApplicationService() {
 }
 
-bool ApplicationService::Install(const base::FilePath& path, std::string* id) {
-  if (!package_installer_->Install(path, id))
-    return false;
-
-  FOR_EACH_OBSERVER(Observer, observers_,
-                    OnApplicationInstalled(*id));
-
-  return true;
-}
-
-bool ApplicationService::Update(const std::string& id,
-                                const base::FilePath& path) {
-  if (Application* app = GetApplicationByID(id)) {
-    LOG(INFO) << "Try to terminate the running application before uninstall.";
-    app->Terminate();
-  }
-
-  if (!package_installer_->Update(id, path))
-    return false;
-
-  FOR_EACH_OBSERVER(Observer, observers_,
-                    OnApplicationUpdated(id));
-
-  return true;
-}
-
-bool ApplicationService::Uninstall(const std::string& id) {
-  if (Application* app = GetApplicationByID(id)) {
-    LOG(INFO) << "Try to terminate the running application before uninstall.";
-    app->Terminate();
-  }
-
-  if (!package_installer_->Uninstall(id))
-    return false;
-
-  FOR_EACH_OBSERVER(Observer, observers_, OnApplicationUninstalled(id));
-
-  return true;
-}
-
 void ApplicationService::ChangeLocale(const std::string& locale) {
   ApplicationData::ApplicationDataMap apps;
   if (!application_storage_->GetInstalledApplications(apps))
@@ -261,11 +220,12 @@ void ApplicationService::OnApplicationTerminated(
   FOR_EACH_OBSERVER(Observer, observers_,
                     WillDestroyApplication(application));
   applications_.erase(found);
-  if (!XWalkRunner::GetInstance()->is_running_as_service() &&
-      applications_.empty()) {
+#if !defined(SHARED_PROCESS_MODE)
+  if (applications_.empty()) {
     base::MessageLoop::current()->PostTask(
             FROM_HERE, base::MessageLoop::QuitClosure());
   }
+#endif
 }
 
 void ApplicationService::CheckAPIAccessControl(const std::string& app_id,
index 0e4acb5..676db01 100644 (file)
@@ -32,10 +32,6 @@ class ApplicationService : public Application::Observer {
   // keep track of [un]installation of applications.
   class Observer {
    public:
-    // FIXME(Mikhail): Remove all un/installation code from ApplicationService.
-    virtual void OnApplicationInstalled(const std::string& app_id) {}
-    virtual void OnApplicationUninstalled(const std::string& app_id) {}
-    virtual void OnApplicationUpdated(const std::string& app_id) {}
     // When we change the application locale, we might get a new name in
     // the new locale.
     virtual void OnApplicationNameChanged(const std::string& app_id,
@@ -51,9 +47,6 @@ class ApplicationService : public Application::Observer {
                      ApplicationStorage* app_storage);
   virtual ~ApplicationService();
 
-  bool Install(const base::FilePath& path, std::string* id);
-  bool Uninstall(const std::string& id);
-  bool Update(const std::string& id, const base::FilePath& path);
   void ChangeLocale(const std::string& locale);
 
   Application* Launch(scoped_refptr<ApplicationData> application_data,
@@ -97,8 +90,6 @@ class ApplicationService : public Application::Observer {
   xwalk::RuntimeContext* runtime_context_;
   ApplicationStorage* application_storage_;
   ScopedVector<Application> applications_;
-  // FIXME(Mikhail): Remove the installer from this class.
-  scoped_ptr<PackageInstaller> package_installer_;
   ObserverList<Observer> observers_;
 
   DISALLOW_COPY_AND_ASSIGN(ApplicationService);
index baec9b2..ba76a86 100644 (file)
@@ -10,7 +10,6 @@
 #include "dbus/exported_object.h"
 #include "dbus/message.h"
 #include "xwalk/dbus/xwalk_service_name.h"
-#include "xwalk/application/browser/linux/installed_applications_manager.h"
 #include "xwalk/application/browser/linux/running_application_object.h"
 #include "xwalk/application/browser/linux/running_applications_manager.h"
 
@@ -19,12 +18,8 @@ namespace application {
 
 ApplicationServiceProviderLinux::ApplicationServiceProviderLinux(
     ApplicationService* app_service,
-    ApplicationStorage* app_storage,
     scoped_refptr<dbus::Bus> session_bus)
     : session_bus_(session_bus) {
-  installed_apps_.reset(new InstalledApplicationsManager(session_bus_,
-                                                         app_service,
-                                                         app_storage));
   running_apps_.reset(new RunningApplicationsManager(session_bus_,
                                                      app_service));
 
index 6deadf0..6160d53 100644 (file)
@@ -18,8 +18,6 @@ namespace application {
 
 class Application;
 class ApplicationService;
-class ApplicationStorage;
-class InstalledApplicationsManager;
 class RunningApplicationObject;
 class RunningApplicationsManager;
 
@@ -28,7 +26,6 @@ class RunningApplicationsManager;
 class ApplicationServiceProviderLinux {
  public:
   ApplicationServiceProviderLinux(ApplicationService* app_service,
-                                  ApplicationStorage* app_storage,
                                   scoped_refptr<dbus::Bus> session_bus);
   virtual ~ApplicationServiceProviderLinux();
 
@@ -41,7 +38,6 @@ class ApplicationServiceProviderLinux {
   void ExportTestObject();
 
   scoped_refptr<dbus::Bus> session_bus_;
-  scoped_ptr<InstalledApplicationsManager> installed_apps_;
   scoped_ptr<RunningApplicationsManager> running_apps_;
 };
 
index 0675d9f..402aaba 100644 (file)
@@ -48,65 +48,6 @@ scoped_ptr<ApplicationSystem> ApplicationSystem::Create(
   return app_system.Pass();
 }
 
-bool ApplicationSystem::HandleApplicationManagementCommands(
-    const base::CommandLine& cmd_line, const GURL& url,
-    bool& run_default_message_loop) { // NOLINT
-  run_default_message_loop = false;
-  if (cmd_line.HasSwitch(switches::kListApplications)) {
-    ApplicationData::ApplicationDataMap apps;
-    application_storage_->GetInstalledApplications(apps);
-    LOG(INFO) << "Application ID                       Application Name";
-    LOG(INFO) << "-----------------------------------------------------";
-    ApplicationData::ApplicationDataMap::const_iterator it;
-    for (it = apps.begin(); it != apps.end(); ++it)
-      LOG(INFO) << it->first << "     " << it->second->Name();
-    LOG(INFO) << "-----------------------------------------------------";
-    return true;
-  }
-
-  if (cmd_line.HasSwitch(switches::kUninstall)) {
-    const base::CommandLine::StringVector& args = cmd_line.GetArgs();
-    if (args.empty())
-      return false;
-
-    std::string app_id = std::string(args[0].begin(), args[0].end());
-    if (!ApplicationData::IsIDValid(app_id))
-      return false;
-
-    if (application_service_->Uninstall(app_id)) {
-      LOG(INFO) << "[OK] Application uninstalled successfully: " << app_id;
-    } else {
-      LOG(ERROR) << "[ERR] An error occurred when uninstalling application "
-                 << app_id;
-    }
-    return true;
-  }
-
-  if (cmd_line.HasSwitch(switches::kInstall)) {
-    base::FilePath path;
-    if (!net::FileURLToFilePath(url, &path))
-      return false;
-
-    if (!base::PathExists(path))
-      return false;
-
-    std::string app_id;
-    if (application_service_->Install(path, &app_id)) {
-      LOG(INFO) << "[OK] Application installed: " << app_id;
-    } else if (!app_id.empty() &&
-               application_service_->Update(app_id, path)) {
-      LOG(INFO) << "[OK] Application updated: " << app_id;
-    } else {
-      LOG(ERROR) << "[ERR] Application install/update failure: "
-                 << path.value();
-    }
-    return true;
-  }
-
-  run_default_message_loop = true;
-  return false;
-}
-
 template <typename T>
 bool ApplicationSystem::LaunchWithCommandLineParam(
     const T& param, const base::CommandLine& cmd_line) {
@@ -122,24 +63,9 @@ bool ApplicationSystem::LaunchWithCommandLineParam(
 template <>
 bool ApplicationSystem::LaunchWithCommandLineParam<GURL>(
     const GURL& url, const base::CommandLine& cmd_line) {
-  namespace keys = xwalk::application_manifest_keys;
-
-  const std::string& url_spec = url.spec();
-  DCHECK(!url_spec.empty());
-  const std::string& app_id = GenerateId(url_spec);
-  // FIXME: we need to handle hash collisions.
-  DCHECK(!application_storage_->GetApplicationData(app_id));
-
-  base::DictionaryValue manifest;
-  // FIXME: define permissions!
-  manifest.SetString(keys::kURLKey, url_spec);
-  manifest.SetString(keys::kNameKey,
-      "Crosswalk Hosted App [Restricted Permissions]");
-  manifest.SetString(keys::kVersionKey, "0");
-  manifest.SetInteger(keys::kManifestVersionKey, 1);
   std::string error;
-  scoped_refptr<ApplicationData> application_data = ApplicationData::Create(
-            base::FilePath(), Manifest::COMMAND_LINE, manifest, app_id, &error);
+  scoped_refptr<ApplicationData> application_data =
+      ApplicationData::Create(url, &error);
   if (!application_data) {
     LOG(ERROR) << "Error occurred while trying to launch application: "
                << error;
index 20f7f4a..a6f0d41 100644 (file)
@@ -51,16 +51,6 @@ class ApplicationSystem {
     return application_storage_.get();
   }
 
-  // Parse the command line and process the --install, --uninstall and
-  // --list-apps commands. Returns true when a management command was processed,
-  // so the caller shouldn't load a runtime.
-  //
-  // The parameter `url` contains the current URL Crosswalk is considering to
-  // load.
-  bool HandleApplicationManagementCommands(const base::CommandLine& cmd_line,
-                                           const GURL& url,
-                                           bool& run_default_message_loop);
-
   // Launches an application based on the given command line, there are
   // different ways to inform which application should be launched
   //
index 84ba841..7f70fce 100644 (file)
@@ -14,12 +14,11 @@ namespace application {
 
 ApplicationSystemLinux::ApplicationSystemLinux(RuntimeContext* runtime_context)
     : ApplicationSystem(runtime_context) {
-  if (XWalkRunner::GetInstance()->is_running_as_service()) {
+#if defined(SHARED_PROCESS_MODE)
     service_provider_.reset(
         new ApplicationServiceProviderLinux(application_service(),
-                                            application_storage(),
                                             dbus_manager().session_bus()));
-  }
+#endif
 }
 
 ApplicationSystemLinux::~ApplicationSystemLinux() {}
index fc3161b..7b3cf4c 100644 (file)
@@ -27,6 +27,7 @@
 #endif
 
 #include "xwalk/application/common/application_manifest_constants.h"
+#include "xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h"
 
 namespace xwalk {
 
@@ -102,6 +103,14 @@ bool ApplicationTizen::Launch(const LaunchParams& launch_params) {
   return false;
 }
 
+base::FilePath ApplicationTizen::GetSplashScreenPath() {
+  if (TizenSplashScreenInfo* ss_info = static_cast<TizenSplashScreenInfo*>(
+      data()->GetManifestData(widget_keys::kTizenSplashScreenKey))) {
+    return data()->Path().Append(FILE_PATH_LITERAL(ss_info->src()));
+  }
+  return base::FilePath();
+}
+
 #if defined(USE_OZONE)
 void ApplicationTizen::WillProcessEvent(const ui::PlatformEvent& event) {}
 
index 52ea710..a8dedad 100644 (file)
@@ -32,6 +32,8 @@ class ApplicationTizen :  // NOLINT
                    Application::Observer* observer);
   virtual bool Launch(const LaunchParams& launch_params) OVERRIDE;
 
+  virtual base::FilePath GetSplashScreenPath() OVERRIDE;
+
 #if defined(USE_OZONE)
   virtual void WillProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
   virtual void DidProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
diff --git a/src/xwalk/application/browser/linux/installed_application_object.cc b/src/xwalk/application/browser/linux/installed_application_object.cc
deleted file mode 100644 (file)
index cf067f6..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "xwalk/application/browser/linux/installed_application_object.h"
-
-#include "dbus/bus.h"
-#include "dbus/message.h"
-#include "xwalk/application/common/application_data.h"
-
-namespace xwalk {
-namespace application {
-
-// D-Bus Interface implemented by objects that represent installed
-// applications.
-//
-// Methods:
-//
-//   Uninstall()
-//     Will uninstall the application. This object will be unregistered from
-//     D-Bus.
-//
-// Properties:
-//
-//   readonly string AppID
-//   readonly string Name
-const char kInstalledApplicationDBusInterface[] =
-    "org.crosswalkproject.Installed.Application1";
-
-const char kInstalledApplicationDBusError[] =
-    "org.crosswalkproject.Installed.Application.Error";
-
-InstalledApplicationObject::InstalledApplicationObject(
-    scoped_refptr<dbus::Bus> bus, const dbus::ObjectPath& path,
-    const ApplicationData* app)
-    : dbus::ManagedObject(bus, path),
-      app_id_(app->ID()) {
-  scoped_ptr<base::Value> app_id(base::Value::CreateStringValue(app->ID()));
-  properties()->Set(kInstalledApplicationDBusInterface, "AppID", app_id.Pass());
-
-  scoped_ptr<base::Value> name(base::Value::CreateStringValue(app->Name()));
-  properties()->Set(kInstalledApplicationDBusInterface, "Name", name.Pass());
-}
-
-void InstalledApplicationObject::OnApplicationNameChanged(
-    const std::string& app_name) {
-  scoped_ptr<base::Value> name(base::Value::CreateStringValue(app_name));
-  properties()->Set(kInstalledApplicationDBusInterface, "Name", name.Pass());
-}
-
-void InstalledApplicationObject::ExportUninstallMethod(
-    dbus::ExportedObject::MethodCallCallback method_call_callback,
-    dbus::ExportedObject::OnExportedCallback on_exported_callback) {
-  dbus_object()->ExportMethod(
-      kInstalledApplicationDBusInterface, "Uninstall",
-      method_call_callback, on_exported_callback);
-}
-
-}  // namespace application
-}  // namespace xwalk
diff --git a/src/xwalk/application/browser/linux/installed_application_object.h b/src/xwalk/application/browser/linux/installed_application_object.h
deleted file mode 100644 (file)
index 9c8af4b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATION_OBJECT_H_
-#define XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATION_OBJECT_H_
-
-#include <string>
-#include "base/memory/ref_counted.h"
-#include "xwalk/dbus/object_manager_adaptor.h"
-
-namespace xwalk {
-namespace application {
-
-class ApplicationData;
-
-extern const char kInstalledApplicationDBusInterface[];
-extern const char kInstalledApplicationDBusError[];
-
-// Holds the D-Bus representation of an installed application. These objects are
-// owned by InstalledApplicationsManager and the corresponding objects in D-Bus
-// are child of '/installed/' object path.
-class InstalledApplicationObject : public dbus::ManagedObject {
- public:
-  InstalledApplicationObject(
-      scoped_refptr<dbus::Bus> bus, const dbus::ObjectPath& path,
-      const ApplicationData* app);
-
-  void OnApplicationNameChanged(const std::string& app_name);
-  // Set the callback used when the Uninstall() method is called in an
-  // ApplicationObject.
-  void ExportUninstallMethod(
-      dbus::ExportedObject::MethodCallCallback method_call_callback,
-      dbus::ExportedObject::OnExportedCallback on_exported_callback);
-
-  std::string app_id() const { return app_id_; }
-
- private:
-  std::string app_id_;
-};
-
-}  // namespace application
-}  // namespace xwalk
-
-#endif  // XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATION_OBJECT_H_
diff --git a/src/xwalk/application/browser/linux/installed_applications_manager.cc b/src/xwalk/application/browser/linux/installed_applications_manager.cc
deleted file mode 100644 (file)
index 172e9bf..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "xwalk/application/browser/linux/installed_applications_manager.h"
-
-#include <string>
-#include "base/bind.h"
-#include "base/files/file_path.h"
-#include "dbus/bus.h"
-#include "dbus/message.h"
-#include "xwalk/application/common/application_storage.h"
-#include "xwalk/application/browser/linux/installed_application_object.h"
-
-namespace {
-
-// D-Bus Interface implemented by the manager object of installed applications.
-//
-// Methods:
-//
-//   Install(string path) -> ObjectPath
-//     Will install application at "path", that should be an absolute path to
-//     the package file. If installation is successful, returns the ObjectPath
-//     of the InstalledApplication object that represents it.
-const char kInstalledManagerDBusInterface[] =
-    "org.crosswalkproject.Installed.Manager1";
-
-const char kInstalledManagerDBusError[] =
-    "org.crosswalkproject.Installed.Manager.Error";
-
-const dbus::ObjectPath kInstalledManagerDBusPath("/installed1");
-
-dbus::ObjectPath GetInstalledPathForAppID(const std::string& app_id) {
-  return dbus::ObjectPath(kInstalledManagerDBusPath.value() + "/" + app_id);
-}
-
-}  // namespace
-
-namespace xwalk {
-namespace application {
-
-InstalledApplicationsManager::InstalledApplicationsManager(
-    scoped_refptr<dbus::Bus> bus, ApplicationService* service,
-    ApplicationStorage* app_storage)
-    : weak_factory_(this),
-      application_service_(service),
-      app_storage_(app_storage),
-      adaptor_(bus, kInstalledManagerDBusPath) {
-  application_service_->AddObserver(this);
-
-  adaptor_.manager_object()->ExportMethod(
-      kInstalledManagerDBusInterface, "Install",
-      base::Bind(&InstalledApplicationsManager::OnInstall,
-                 weak_factory_.GetWeakPtr()),
-      base::Bind(&InstalledApplicationsManager::OnExported,
-                 weak_factory_.GetWeakPtr()));
-
-  AddInitialObjects();
-}
-
-InstalledApplicationsManager::~InstalledApplicationsManager() {
-  application_service_->RemoveObserver(this);
-}
-
-void InstalledApplicationsManager::OnApplicationInstalled(
-    const std::string& app_id) {
-  AddObject(app_storage_->GetApplicationData(app_id));
-}
-
-void InstalledApplicationsManager::OnApplicationUninstalled(
-    const std::string& app_id) {
-  adaptor_.RemoveManagedObject(GetInstalledPathForAppID(app_id));
-}
-
-void InstalledApplicationsManager::OnApplicationUpdated(
-    const std::string& app_id) {
-  if (scoped_refptr<ApplicationData> app =
-      app_storage_->GetApplicationData(app_id))
-    OnApplicationNameChanged(app_id, app->Name());
-}
-
-void InstalledApplicationsManager::OnApplicationNameChanged(
-    const std::string& app_id, const std::string& app_name) {
-  InstalledApplicationObject* object =
-      static_cast<InstalledApplicationObject*>(
-          adaptor_.GetManagedObject(GetInstalledPathForAppID(app_id)));
-  object->OnApplicationNameChanged(app_name);
-}
-
-void InstalledApplicationsManager::AddInitialObjects() {
-  ApplicationData::ApplicationDataMap apps;
-  app_storage_->GetInstalledApplications(apps);
-  ApplicationData::ApplicationDataMap::const_iterator it;
-  for (it = apps.begin(); it != apps.end(); ++it)
-    AddObject(it->second);
-}
-
-void InstalledApplicationsManager::AddObject(
-    scoped_refptr<const ApplicationData> app) {
-  scoped_ptr<InstalledApplicationObject> object(
-      new InstalledApplicationObject(
-          adaptor_.bus(), GetInstalledPathForAppID(app->ID()), app));
-
-  // See comment in InstalledApplicationsManager::OnUninstall().
-  object->ExportUninstallMethod(
-      base::Bind(&InstalledApplicationsManager::OnUninstall,
-                 weak_factory_.GetWeakPtr(),
-                 base::Unretained(object.get())),
-      base::Bind(&InstalledApplicationsManager::OnExported,
-                 weak_factory_.GetWeakPtr()));
-
-  adaptor_.AddManagedObject(object.PassAs<dbus::ManagedObject>());
-}
-
-namespace {
-
-scoped_ptr<dbus::Response> CreateError(dbus::MethodCall* method_call,
-                                       const std::string& message) {
-    scoped_ptr<dbus::ErrorResponse> error_response =
-        dbus::ErrorResponse::FromMethodCall(
-            method_call, kInstalledManagerDBusError, message);
-    return error_response.PassAs<dbus::Response>();
-}
-
-}  // namespace
-
-void InstalledApplicationsManager::OnInstall(
-    dbus::MethodCall* method_call,
-    dbus::ExportedObject::ResponseSender response_sender) {
-  dbus::MessageReader reader(method_call);
-  std::string file_path_str;
-  if (!reader.PopString(&file_path_str)) {
-    scoped_ptr<dbus::Response> response =
-        CreateError(method_call, "Error parsing message.");
-    response_sender.Run(response.Pass());
-    return;
-  }
-
-  const base::FilePath file_path(file_path_str);
-  if (!file_path.IsAbsolute()) {
-    scoped_ptr<dbus::Response> response =
-        CreateError(method_call, "Path to install must be absolute.");
-    response_sender.Run(response.Pass());
-    return;
-  }
-
-  std::string app_id;
-  if (!application_service_->Install(file_path, &app_id) &&
-      (app_id.empty() || !application_service_->Update(app_id, file_path))) {
-    scoped_ptr<dbus::Response> response =
-        CreateError(method_call,
-                    "Error installing/updating application with path: "
-                    + file_path_str);
-    response_sender.Run(response.Pass());
-    return;
-  }
-
-  dbus::ManagedObject* managed_object =
-      adaptor_.GetManagedObject(GetInstalledPathForAppID(app_id));
-  CHECK(managed_object);
-
-  scoped_ptr<dbus::Response> response =
-      dbus::Response::FromMethodCall(method_call);
-  dbus::MessageWriter writer(response.get());
-  writer.AppendObjectPath(managed_object->path());
-  response_sender.Run(response.Pass());
-}
-
-// InstalledApplicationsManager implements the callback exposed in the child
-// objects interface, we bind the actual child to the first parameter. There are
-// two reasons to do this: we save the need of creating WeakPtrFactories for all
-// individual objects, and we ensure that is safe to destroy the object when
-// handling the callback -- which is done by our OnApplicationUninstalled
-// implementation.
-void InstalledApplicationsManager::OnUninstall(
-    InstalledApplicationObject* installed_app_object,
-    dbus::MethodCall* method_call,
-    dbus::ExportedObject::ResponseSender response_sender) {
-  if (!application_service_->Uninstall(installed_app_object->app_id())) {
-    scoped_ptr<dbus::ErrorResponse> error_response =
-        dbus::ErrorResponse::FromMethodCall(
-            method_call, kInstalledApplicationDBusError,
-            "Error trying to uninstall application with id "
-            + installed_app_object->app_id());
-    response_sender.Run(error_response.PassAs<dbus::Response>());
-    return;
-  }
-
-  scoped_ptr<dbus::Response> response =
-      dbus::Response::FromMethodCall(method_call);
-  response_sender.Run(response.Pass());
-}
-
-void InstalledApplicationsManager::OnExported(
-    const std::string& interface_name,
-    const std::string& method_name,
-    bool success) {
-  if (!success) {
-    LOG(WARNING) << "Error exporting method '" << interface_name
-                 << "." << method_name << "' in '"
-                 << kInstalledManagerDBusPath.value() << "'.";
-  }
-}
-
-}  // namespace application
-}  // namespace xwalk
diff --git a/src/xwalk/application/browser/linux/installed_applications_manager.h b/src/xwalk/application/browser/linux/installed_applications_manager.h
deleted file mode 100644 (file)
index 35c0c75..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATIONS_MANAGER_H_
-#define XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATIONS_MANAGER_H_
-
-#include <string>
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "xwalk/application/browser/application_service.h"
-#include "xwalk/dbus/object_manager_adaptor.h"
-
-namespace xwalk {
-namespace application {
-
-class InstalledApplicationObject;
-
-// Holds the D-Bus representation of the set of installed applications. This is
-// the entry point for listing, installing and uninstalling applications via
-// D-Bus.
-//
-// The exported object implements org.freedesktop.DBus.ObjectManager, and the
-// interface org.crosswalkproject.Installed.Manager1 (see .cc file for
-// description).
-class InstalledApplicationsManager : public ApplicationService::Observer {
- public:
-  InstalledApplicationsManager(scoped_refptr<dbus::Bus> bus,
-                               ApplicationService* service,
-                               ApplicationStorage* app_storage);
-  virtual ~InstalledApplicationsManager();
-
- private:
-  // ApplicationService::Observer implementation.
-  void virtual OnApplicationInstalled(const std::string& app_id) OVERRIDE;
-  void virtual OnApplicationUninstalled(const std::string& app_id) OVERRIDE;
-  void virtual OnApplicationUpdated(const std::string& app_id) OVERRIDE;
-  void virtual OnApplicationNameChanged(const std::string& app_id,
-                                        const std::string& app_name) OVERRIDE;
-
-  void AddInitialObjects();
-  void AddObject(scoped_refptr<const ApplicationData> app);
-
-  void OnInstall(
-      dbus::MethodCall* method_call,
-      dbus::ExportedObject::ResponseSender response_sender);
-  void OnUninstall(
-      InstalledApplicationObject* installed_app_object,
-      dbus::MethodCall* method_call,
-      dbus::ExportedObject::ResponseSender response_sender);
-
-  void OnExported(const std::string& interface_name,
-                  const std::string& method_name,
-                  bool success);
-
-  base::WeakPtrFactory<InstalledApplicationsManager> weak_factory_;
-  ApplicationService* application_service_;
-  ApplicationStorage* app_storage_;
-  dbus::ObjectManagerAdaptor adaptor_;
-};
-
-}  // namespace application
-}  // namespace xwalk
-
-#endif  // XWALK_APPLICATION_BROWSER_LINUX_INSTALLED_APPLICATIONS_MANAGER_H_
index 6a70625..96b6246 100644 (file)
@@ -10,6 +10,7 @@
 #include "dbus/message.h"
 
 #include "xwalk/application/browser/linux/running_application_object.h"
+#include "xwalk/application/common/application_data.h"
 
 namespace {
 
@@ -50,6 +51,13 @@ RunningApplicationsManager::RunningApplicationsManager(
                  weak_factory_.GetWeakPtr()),
       base::Bind(&RunningApplicationsManager::OnExported,
                  weak_factory_.GetWeakPtr()));
+
+  adaptor_.manager_object()->ExportMethod(
+      kRunningManagerDBusInterface, "TerminateIfRunning",
+      base::Bind(&RunningApplicationsManager::OnTerminateIfRunning,
+                 weak_factory_.GetWeakPtr()),
+      base::Bind(&RunningApplicationsManager::OnExported,
+                 weak_factory_.GetWeakPtr()));
 }
 
 RunningApplicationsManager::~RunningApplicationsManager() {}
@@ -79,12 +87,12 @@ void RunningApplicationsManager::OnLaunch(
     dbus::ExportedObject::ResponseSender response_sender) {
 
   dbus::MessageReader reader(method_call);
-  std::string app_id;
+  std::string app_id_or_url;
   // We might want to pass key-value pairs if have more parameters in future.
   unsigned int launcher_pid;
   bool fullscreen;
 
-  if (!reader.PopString(&app_id) ||
+  if (!reader.PopString(&app_id_or_url) ||
       !reader.PopUint32(&launcher_pid) ||
       !reader.PopBool(&fullscreen)) {
     scoped_ptr<dbus::Response> response =
@@ -98,19 +106,38 @@ void RunningApplicationsManager::OnLaunch(
   params.launcher_pid = launcher_pid;
   params.force_fullscreen = fullscreen;
 
-  Application* application = application_service_->Launch(app_id, params);
+  Application* application;
+  if (GURL(app_id_or_url).spec().empty()) {
+    application = application_service_->Launch(app_id_or_url, params);
+  } else {
+    params.entry_points = Application::URLKey;
+    std::string error;
+    scoped_refptr<ApplicationData> application_data =
+        ApplicationData::Create(GURL(app_id_or_url), &error);
+    if (!application_data) {
+      scoped_ptr<dbus::Response> response = CreateError(method_call, error);
+      response_sender.Run(response.Pass());
+      return;
+    }
+
+    application = application_service_->Launch(application_data, params);
+  }
+
   if (!application) {
     scoped_ptr<dbus::Response> response =
         CreateError(method_call,
-                    "Error launching application with id " + app_id);
+                    "Error launching application with id or url"
+                    + app_id_or_url);
     response_sender.Run(response.Pass());
     return;
   }
-  CHECK(app_id == application->id());
+  if (GURL(app_id_or_url).spec().empty()) {
+    CHECK(app_id_or_url == application->id());
+  }
   // FIXME(cmarcelo): ApplicationService will tell us when new applications
   // appear (with DidLaunchApplication()) and we create new managed objects
   // in D-Bus based on that.
-  dbus::ObjectPath path = AddObject(app_id, method_call->GetSender(),
+  dbus::ObjectPath path = AddObject(application->id(), method_call->GetSender(),
                                     application);
 
   scoped_ptr<dbus::Response> response =
@@ -120,6 +147,31 @@ void RunningApplicationsManager::OnLaunch(
   response_sender.Run(response.Pass());
 }
 
+void RunningApplicationsManager::OnTerminateIfRunning(
+    dbus::MethodCall* method_call,
+    dbus::ExportedObject::ResponseSender response_sender) {
+
+  dbus::MessageReader reader(method_call);
+  std::string app_id;
+
+  if (!reader.PopString(&app_id)) {
+    scoped_ptr<dbus::Response> response =
+        CreateError(method_call,
+                    "Error parsing message. Missing argument.");
+    response_sender.Run(response.Pass());
+    return;
+  }
+
+  if (Application* app = application_service_->GetApplicationByID(app_id)) {
+    CHECK(app_id == app->id());
+    app->Terminate();
+  }
+
+  scoped_ptr<dbus::Response> response =
+      dbus::Response::FromMethodCall(method_call);
+  response_sender.Run(response.Pass());
+}
+
 void RunningApplicationsManager::OnExported(
     const std::string& interface_name,
     const std::string& method_name,
index 04a70b3..c83d5f5 100644 (file)
@@ -39,6 +39,8 @@ class RunningApplicationsManager : public ApplicationService::Observer {
   // org.crosswalkproject.Running.Manager1 interface.
   void OnLaunch(dbus::MethodCall* method_call,
                 dbus::ExportedObject::ResponseSender response_sender);
+  void OnTerminateIfRunning(dbus::MethodCall* method_call,
+      dbus::ExportedObject::ResponseSender response_sender);
 
   void OnExported(const std::string& interface_name,
                   const std::string& method_name,
index 5ecdad2..062a68b 100644 (file)
@@ -76,6 +76,26 @@ scoped_refptr<ApplicationData> ApplicationData::Create(
 }
 
 // static
+scoped_refptr<ApplicationData> ApplicationData::Create(
+    const GURL& url,
+    std::string* error_message) {
+  const std::string& url_spec = url.spec();
+  DCHECK(!url_spec.empty());
+  const std::string& app_id = GenerateId(url_spec);
+
+  base::DictionaryValue manifest;
+  // FIXME: define permissions!
+  manifest.SetString(application_manifest_keys::kURLKey, url_spec);
+  manifest.SetString(application_manifest_keys::kNameKey, url_spec);
+  manifest.SetString(application_manifest_keys::kVersionKey, "0");
+  scoped_refptr<ApplicationData> application_data =
+      ApplicationData::Create(base::FilePath(), Manifest::COMMAND_LINE,
+                              manifest, app_id, error_message);
+
+  return application_data;
+}
+
+// static
 bool ApplicationData::IsIDValid(const std::string& id) {
   std::string temp = StringToLowerASCII(id);
 
index fb6d58b..6c1a37a 100644 (file)
@@ -65,6 +65,9 @@ class ApplicationData : public base::RefCountedThreadSafe<ApplicationData> {
       const std::string& explicit_id,
       std::string* error_message);
 
+  static scoped_refptr<ApplicationData> Create(const GURL& url,
+                                               std::string* error_message);
+
   // Checks to see if the application has a valid ID.
   static bool IsIDValid(const std::string& id);
 
index f61cfea..df07360 100644 (file)
@@ -56,6 +56,12 @@ const char kDirRTLKey[] = "rtl";
 const char kDirLROKey[] = "lro";
 const char kDirRLOKey[] = "rlo";
 
+const char* kSingletonElements[] = {
+  "allow-navigation",
+  "content-security-policy-report-only",
+  "content-security-policy"
+};
+
 inline char* ToCharPointer(void* ptr) {
   return reinterpret_cast<char *>(ptr);
 }
@@ -173,6 +179,13 @@ bool GetPackageType(const base::FilePath& path,
   return false;
 }
 
+bool IsSingletonElement(const std::string& name) {
+  for (int i = 0; i < arraysize(kSingletonElements); ++i)
+    if (kSingletonElements[i] == name)
+      return true;
+  return false;
+}
+
 }  // namespace
 
 namespace xwalk {
@@ -250,6 +263,8 @@ base::DictionaryValue* LoadXMLNode(
     if (!value->HasKey(sub_node_name)) {
       value->Set(sub_node_name, sub_value);
       continue;
+    } else if (IsSingletonElement(sub_node_name)) {
+      continue;
     }
 
     base::Value* temp;
index cca6b3a..6b5634e 100644 (file)
@@ -102,6 +102,8 @@ const char kTizenMetaDataKey[] = "widget.metadata";
 // Child keys inside 'kTizenMetaDataKey'
 const char kTizenMetaDataNameKey[] = "@key";
 const char kTizenMetaDataValueKey[] = "@value";
+const char kTizenSplashScreenKey[] = "widget.splash-screen";
+const char kTizenSplashScreenSrcKey[] = "@src";
 #endif
 }  // namespace application_widget_keys
 
index 3df5135..8fb7a74 100644 (file)
@@ -87,6 +87,8 @@ namespace application_widget_keys {
   extern const char kTizenMetaDataKey[];
   extern const char kTizenMetaDataNameKey[];
   extern const char kTizenMetaDataValueKey[];
+  extern const char kTizenSplashScreenKey[];
+  extern const char kTizenSplashScreenSrcKey[];
 #endif
 }  // namespace application_widget_keys
 
index 26ca09f..c8beaa2 100644 (file)
@@ -260,7 +260,7 @@ scoped_refptr<ApplicationData> ApplicationStorageImpl::ExtractApplicationData(
 
   app_data->install_time_ = base::Time::FromDoubleT(install_time);
 
-  app_data->permission_map_ = ToPermissionMap(smt.ColumnString(5));
+  app_data->permission_map_ = ToPermissionMap(smt.ColumnString(4));
 
   return app_data;
 }
index 70bb6ab..d87ae2a 100644 (file)
@@ -158,5 +158,32 @@ TEST_F(ApplicationStorageImplTest, DBUpdate) {
       new_application->GetManifest()->value()));
 }
 
+TEST_F(ApplicationStorageImplTest, SetPermission) {
+  TestInit();
+  base::DictionaryValue manifest;
+  manifest.SetString(keys::kNameKey, "no name");
+  manifest.SetString(keys::kVersionKey, "0");
+  manifest.SetString("a", "b");
+  std::string error;
+  scoped_refptr<ApplicationData> application =
+      ApplicationData::Create(base::FilePath(),
+                              Manifest::INTERNAL,
+                              manifest,
+                              "",
+                              &error);
+  ASSERT_TRUE(error.empty());
+  ASSERT_TRUE(application);
+  EXPECT_TRUE(application->SetPermission("permission", ALLOW));
+  EXPECT_TRUE(app_storage_impl_->AddApplication(application.get(),
+                                                base::Time::FromDoubleT(0)));
+
+  ApplicationData::ApplicationDataMap applications;
+  ASSERT_TRUE(app_storage_impl_->GetInstalledApplications(applications));
+  EXPECT_EQ(applications.size(), 1);
+  EXPECT_TRUE(applications[application->ID()]);
+  EXPECT_TRUE(
+      applications[application->ID()]->GetPermission("permission") == ALLOW);
+}
+
 }  // namespace application
 }  // namespace xwalk
index 44a7eb4..1b4387c 100644 (file)
@@ -8,9 +8,21 @@
 #include "base/strings/string_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "crypto/sha2.h"
+#include "xwalk/application/common/application_manifest_constants.h"
+#include "xwalk/application/common/manifest_handlers/tizen_application_handler.h"
+
+#if defined(OS_TIZEN)
+#include "third_party/re2/re2/re2.h"
+#endif
 
 namespace xwalk {
 namespace application {
+namespace {
+#if defined(OS_TIZEN)
+const char kTizenAppIdPattern[] = "\\A[0-9a-zA-Z]{10}[.][0-9a-zA-Z]{1,52}\\z";
+const std::string kAppIdPrefix("xwalk.");
+#endif
+}  // namespace
 
 // Converts a normal hexadecimal string into the alphabet used by applications.
 // We use the characters 'a'-'p' instead of '0'-'f' to avoid ever having a
@@ -51,5 +63,29 @@ std::string GenerateIdForPath(const base::FilePath& path) {
   return GenerateId(path_bytes);
 }
 
+#if defined(OS_TIZEN)
+std::string RawAppIdToCrosswalkAppId(const std::string& id) {
+  if (RE2::PartialMatch(id, kTizenAppIdPattern))
+    return GenerateId(id);
+  return id;
+}
+
+std::string RawAppIdToAppIdForTizenPkgmgrDB(const std::string& id) {
+  if (RE2::PartialMatch(id, kTizenAppIdPattern))
+    return id;
+  return kAppIdPrefix + id;
+}
+
+std::string GetTizenAppId(ApplicationData* application) {
+  if (application->GetPackageType() == xwalk::application::Package::XPK)
+    return application->ID();
+
+  const TizenApplicationInfo* tizen_app_info =
+      static_cast<TizenApplicationInfo*>(application->GetManifestData(
+          application_widget_keys::kTizenApplicationKey));
+  return tizen_app_info->id();
+}
+#endif
+
 }  // namespace application
 }  // namespace xwalk
index 4a1ed86..6b99ed7 100644 (file)
@@ -7,6 +7,8 @@
 
 #include <string>
 
+#include "xwalk/application/common/application_data.h"
+
 namespace base {
 class FilePath;
 }
@@ -30,6 +32,25 @@ std::string GenerateId(const std::string& input);
 // Used while developing applications, before they have a key.
 std::string GenerateIdForPath(const base::FilePath& path);
 
+#if defined(OS_TIZEN)
+// If this appid is a xpk app id(crosswalk_32bytes_app_id), return itself.
+// If this appid is a wgt app id(tizen_app_id), convert it to
+// crosswalk_32bytes_app_id and return it.
+std::string RawAppIdToCrosswalkAppId(const std::string& id);
+
+// If this appid is a xpk app id(crosswalk_32bytes_app_id), return
+// xwalk.crosswalk_32bytes_app_id.
+// If this appid is a wgt app id(tizen_app_id), return itself.
+// It is better to storage crosswalk_32bytes_app_id on tizen pkgmgr db
+// for xpk, but it must be an "." on appid or it cannot insert to tizen pkgmgr
+// db, so we have to have a "xwalk." as it's prefix.
+std::string RawAppIdToAppIdForTizenPkgmgrDB(const std::string& id);
+
+// For xpk, app_id == crosswalk_32bytes_app_id == this->ID(),
+// For wgt, app_id == tizen_wrt_10bytes_package_id.app_name,
+std::string GetTizenAppId(ApplicationData* application);
+#endif
+
 }  // namespace application
 }  // namespace xwalk
 
index d48fe57..92de9a6 100644 (file)
@@ -72,6 +72,18 @@ scoped_ptr<PackageInstaller> PackageInstaller::Create(
 #endif
 }
 
+bool PackageInstaller::PlatformInstall(ApplicationData* data) {
+  return true;
+}
+
+bool PackageInstaller::PlatformUninstall(ApplicationData* data) {
+  return true;
+}
+
+bool PackageInstaller::PlatformUpdate(ApplicationData* updated_data) {
+  return true;
+}
+
 bool PackageInstaller::Install(const base::FilePath& path, std::string* id) {
   // FIXME(leandro): Installation is not robust enough -- should any step
   // fail, it can't roll back to a consistent state.
@@ -163,8 +175,13 @@ bool PackageInstaller::Install(const base::FilePath& path, std::string* id) {
   return true;
 }
 
-bool PackageInstaller::Update(const std::string& id,
+bool PackageInstaller::Update(const std::string& app_id,
                               const base::FilePath& path) {
+  if (!ApplicationData::IsIDValid(app_id)) {
+    LOG(ERROR) << "The given application id " << app_id << " is invalid.";
+    return false;
+  }
+
   if (!base::PathExists(path)) {
     LOG(ERROR) << "The XPK/WGT package file " << path.value() << " is invalid.";
     return false;
@@ -176,21 +193,13 @@ bool PackageInstaller::Update(const std::string& id,
   }
 
   base::FilePath unpacked_dir;
-  std::string app_id;
   scoped_ptr<Package> package = Package::Create(path);
   if (!package) {
     LOG(ERROR) << "XPK/WGT file is invalid.";
     return false;
   }
 
-  app_id = package->Id();
-
-  if (app_id.empty()) {
-    LOG(ERROR) << "The XPK/WGT file is invalid, the application id is empty.";
-    return false;
-  }
-
-  if (id.empty() || id.compare(app_id) != 0) {
+  if (app_id.compare(package->Id()) != 0) {
     LOG(ERROR) << "The XPK/WGT file is invalid, the application id is not the"
                << "same as the installed application has.";
     return false;
index a8aaf87..82b997c 100644 (file)
@@ -28,9 +28,9 @@ class PackageInstaller {
  protected:
   explicit PackageInstaller(ApplicationStorage* storage);
   // Those to be overriden to implement platform specific logic.
-  virtual bool PlatformInstall(ApplicationData* data) { return true; }
-  virtual bool PlatformUninstall(ApplicationData* data) { return true; }
-  virtual bool PlatformUpdate(ApplicationData* updated_data) { return true; }
+  virtual bool PlatformInstall(ApplicationData* data);
+  virtual bool PlatformUninstall(ApplicationData* data);
+  virtual bool PlatformUpdate(ApplicationData* updated_data);
 
   ApplicationStorage* storage_;
 };
index 259c1e9..3d63da4 100644 (file)
 #include "third_party/libxml/chromium/libxml_utils.h"
 #include "xwalk/application/common/application_data.h"
 #include "xwalk/application/common/application_manifest_constants.h"
+#include "xwalk/application/common/manifest_handlers/tizen_application_handler.h"
 #include "xwalk/application/common/manifest_handlers/tizen_metadata_handler.h"
 #include "xwalk/application/common/application_storage.h"
 #include "xwalk/application/common/installer/tizen/packageinfo_constants.h"
+#include "xwalk/application/common/id_util.h"
 #include "xwalk/runtime/common/xwalk_paths.h"
 
 namespace info = xwalk::application_packageinfo_constants;
@@ -80,6 +82,19 @@ void WriteMetaDataElement(
   }
 }
 
+// For xpk, package_id => [crosswalk_32bytes_app_id]
+// For wgt, package_id => [tizen_wrt_10bytes_package_id]
+std::string GetTizenPackageId(
+    xwalk::application::ApplicationData* application) {
+  if (application->GetPackageType() == xwalk::application::Package::XPK)
+    return application->ID();
+
+  const xwalk::application::TizenApplicationInfo* tizen_app_info =
+      static_cast<xwalk::application::TizenApplicationInfo*>(
+          application->GetManifestData(widget_keys::kTizenApplicationKey));
+  return tizen_app_info->package();
+}
+
 bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
                         const std::string& icon_name,
                         const base::FilePath& app_dir,
@@ -88,8 +103,9 @@ bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
       !base::CreateDirectory(app_dir))
     return false;
 
-  std::string package_id = application->ID();
-  std::string tizen_app_id = kAppIdPrefix + package_id;
+  std::string package_id = GetTizenPackageId(application);
+  std::string tizen_app_id = GetTizenAppId(application);
+
   base::FilePath execute_path =
       app_dir.AppendASCII("bin/").AppendASCII(tizen_app_id);
   std::string stripped_name = application->Name();
@@ -106,9 +122,10 @@ bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
   xml_writer.WriteElement("description", application->Description());
 
   xml_writer.StartElement("ui-application");
-  xml_writer.AddAttribute("appid", tizen_app_id);
+  xml_writer.AddAttribute("appid",
+      xwalk::application::RawAppIdToAppIdForTizenPkgmgrDB(tizen_app_id));
   xml_writer.AddAttribute("exec", execute_path.MaybeAsASCII());
-  xml_writer.AddAttribute("type", "c++app");
+  xml_writer.AddAttribute("type", "webapp");
   xml_writer.AddAttribute("taskmanage", "true");
   xml_writer.WriteElement("label", application->Name());
 
@@ -170,7 +187,7 @@ bool PackageInstallerTizen::PlatformInstall(ApplicationData* app_data) {
   base::FilePath data_dir;
   CHECK(PathService::Get(xwalk::DIR_DATA_PATH, &data_dir));
 
-  std::string tizen_app_id = kAppIdPrefix + app_id;
+  std::string tizen_app_id = GetTizenAppId(app_data);
   base::FilePath app_dir =
       data_dir.AppendASCII(info::kAppDir).AppendASCII(app_id);
   base::FilePath xml_path = data_dir.AppendASCII(info::kAppDir).AppendASCII(
@@ -268,7 +285,7 @@ bool PackageInstallerTizen::PlatformUpdate(ApplicationData* app_data) {
   base::FilePath data_dir;
   CHECK(PathService::Get(xwalk::DIR_DATA_PATH, &data_dir));
 
-  std::string tizen_app_id = kAppIdPrefix + app_id;
+  std::string tizen_app_id = GetTizenAppId(app_data);
   base::FilePath app_dir =
       data_dir.AppendASCII(info::kAppDir).AppendASCII(app_id);
   base::FilePath new_xml_path = data_dir.AppendASCII(info::kAppDir).AppendASCII(
index 43d225f..a01bad8 100644 (file)
@@ -14,7 +14,7 @@
 #include "base/strings/string_split.h"
 #include "base/strings/utf_string_conversions.h"
 #include "xwalk/application/common/application_manifest_constants.h"
-#include "xwalk/runtime/browser/xwalk_runner.h"
+#include "xwalk/runtime/common/xwalk_system_locale.h"
 
 namespace errors = xwalk::application_manifest_errors;
 namespace keys   = xwalk::application_manifest_keys;
@@ -84,11 +84,7 @@ Manifest::Manifest(SourceType source_type,
       data_->Get(widget_keys::kWidgetKey, NULL))
     ParseWGTI18n();
 
-  // Unittest may not have an xwalkrunner, so we should check here.
-  if (XWalkRunner* xwalk_runner = XWalkRunner::GetInstance())
-    SetSystemLocale(xwalk_runner->GetLocale());
-  else
-    SetSystemLocale(kLocaleUnlocalized);
+  SetSystemLocale(GetSystemLocale());
 }
 
 Manifest::~Manifest() {
index 7a2e32c..2b51388 100644 (file)
@@ -13,6 +13,7 @@
 #include "xwalk/application/common/manifest_handlers/tizen_application_handler.h"
 #include "xwalk/application/common/manifest_handlers/tizen_metadata_handler.h"
 #include "xwalk/application/common/manifest_handlers/tizen_setting_handler.h"
+#include "xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h"
 #endif
 #include "xwalk/application/common/manifest_handlers/permissions_handler.h"
 #include "xwalk/application/common/manifest_handlers/warp_handler.h"
@@ -80,6 +81,7 @@ ManifestHandlerRegistry::GetInstanceForWGT() {
   handlers.push_back(new TizenApplicationHandler);
   handlers.push_back(new TizenSettingHandler);
   handlers.push_back(new TizenMetaDataHandler);
+  handlers.push_back(new TizenSplashScreenHandler);
 #endif
   widget_registry_ = new ManifestHandlerRegistry(handlers);
   return widget_registry_;
diff --git a/src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.cc b/src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.cc
new file mode 100644 (file)
index 0000000..b8d5044
--- /dev/null
@@ -0,0 +1,75 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h"
+
+#include <map>
+#include <utility>
+
+#include "base/file_util.h"
+#include "base/strings/utf_string_conversions.h"
+#include "xwalk/application/common/application_manifest_constants.h"
+
+namespace xwalk {
+
+namespace keys = application_widget_keys;
+
+namespace application {
+
+TizenSplashScreenInfo::TizenSplashScreenInfo() {}
+TizenSplashScreenInfo::~TizenSplashScreenInfo() {}
+
+TizenSplashScreenHandler::TizenSplashScreenHandler() {}
+
+TizenSplashScreenHandler::~TizenSplashScreenHandler() {}
+
+bool TizenSplashScreenHandler::Parse(scoped_refptr<ApplicationData> application,
+                                     base::string16* error) {
+  scoped_ptr<TizenSplashScreenInfo> ss_info(new TizenSplashScreenInfo);
+  const Manifest* manifest = application->GetManifest();
+  DCHECK(manifest);
+
+  base::Value* splash_screen = NULL;
+  manifest->Get(keys::kTizenSplashScreenKey, &splash_screen);
+  if (splash_screen && splash_screen->IsType(base::Value::TYPE_DICTIONARY)) {
+    base::DictionaryValue* ss_dict = NULL;
+    splash_screen->GetAsDictionary(&ss_dict);
+    std::string src;
+    ss_dict->GetString(keys::kTizenSplashScreenSrcKey, &src);
+    ss_info->set_src(src);
+  }
+  application->SetManifestData(keys::kTizenSplashScreenKey, ss_info.release());
+  return true;
+}
+
+bool TizenSplashScreenHandler::Validate(
+    scoped_refptr<const ApplicationData> application,
+    std::string* error,
+    std::vector<InstallWarning>* warnings) const {
+  const Manifest* manifest = application->GetManifest();
+  DCHECK(manifest);
+  base::Value* splash_screen = NULL;
+  manifest->Get(keys::kTizenSplashScreenKey, &splash_screen);
+  if (!splash_screen || !splash_screen->IsType(base::Value::TYPE_DICTIONARY)) {
+    *error = std::string("The splash-screen attribute is not set correctly.");
+    return false;
+  }
+  base::DictionaryValue* ss_dict = NULL;
+  splash_screen->GetAsDictionary(&ss_dict);
+  std::string ss_src;
+  ss_dict->GetString(keys::kTizenSplashScreenSrcKey, &ss_src);
+  base::FilePath path = application->Path().Append(FILE_PATH_LITERAL(ss_src));
+  if (!base::PathExists(path)) {
+    *error = std::string("The splash screen image does not exist");
+    return false;
+  }
+  return true;
+}
+
+std::vector<std::string> TizenSplashScreenHandler::Keys() const {
+  return std::vector<std::string>(1, keys::kTizenSplashScreenKey);
+}
+
+}  // namespace application
+}  // namespace xwalk
diff --git a/src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h b/src/xwalk/application/common/manifest_handlers/tizen_splash_screen_handler.h
new file mode 100644 (file)
index 0000000..4939f5e
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_TIZEN_SPLASH_SCREEN_HANDLER_H_
+#define XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_TIZEN_SPLASH_SCREEN_HANDLER_H_
+
+#include <map>
+#include <string>
+#include <vector>
+
+#include "base/values.h"
+#include "xwalk/application/common/application_data.h"
+#include "xwalk/application/common/manifest_handler.h"
+
+namespace xwalk {
+namespace application {
+
+class TizenSplashScreenInfo : public ApplicationData::ManifestData {
+ public:
+  TizenSplashScreenInfo();
+  virtual ~TizenSplashScreenInfo();
+
+  void set_src(const std::string &src) { src_ = src; }
+  const std::string& src() const { return src_; }
+
+ private:
+  std::string src_;
+};
+
+class TizenSplashScreenHandler : public ManifestHandler {
+ public:
+  TizenSplashScreenHandler();
+  virtual ~TizenSplashScreenHandler();
+
+  virtual bool Parse(scoped_refptr<ApplicationData> application,
+                     base::string16* error) OVERRIDE;
+  virtual bool Validate(scoped_refptr<const ApplicationData> application,
+                        std::string* error,
+                        std::vector<InstallWarning>* warnings) const OVERRIDE;
+  virtual std::vector<std::string> Keys() const OVERRIDE;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(TizenSplashScreenHandler);
+};
+
+}  // namespace application
+}  // namespace xwalk
+
+#endif  // XWALK_APPLICATION_COMMON_MANIFEST_HANDLERS_TIZEN_SPLASH_SCREEN_HANDLER_H_
index 3bc2ca5..2c1c84b 100644 (file)
@@ -5,9 +5,13 @@
       'type': 'static_library',
       'dependencies': [
         '../../../base/base.gyp:base',
+        '../../../base/base.gyp:base_i18n',
+        '../../../content/content.gyp:content_common',
+        '../../../crypto/crypto.gyp:crypto',
         '../../../sql/sql.gyp:sql',
         '../../../url/url.gyp:url_lib',
         '../../../third_party/libxml/libxml.gyp:libxml',
+        '../../../third_party/zlib/google/zip.gyp:zip',
       ],
       'sources': [
         'application_storage.cc',
@@ -71,6 +75,8 @@
             'manifest_handlers/tizen_metadata_handler.h',
             'manifest_handlers/tizen_setting_handler.cc',
             'manifest_handlers/tizen_setting_handler.h',
+            'manifest_handlers/tizen_splash_screen_handler.cc',
+            'manifest_handlers/tizen_splash_screen_handler.h',
             'installer/package_installer_tizen.cc',
             'installer/package_installer_tizen.h',
             'installer/tizen/packageinfo_constants.cc',
index 97ca4b4..90d78cf 100644 (file)
@@ -26,6 +26,9 @@
       'product_name': 'xwalkctl',
       'dependencies': [
         'gio',
+        '../../../application/common/xwalk_application_common.gypi:xwalk_application_common_lib',
+        '../../../../build/linux/system.gyp:dbus',
+        '../../../../dbus/dbus.gyp:dbus',
       ],
       'include_dirs': [
         '../../../..',
         'dbus_connection.cc',
         'dbus_connection.h',
         'xwalkctl_main.cc',
+        '../../../runtime/common/xwalk_paths.cc',
+        '../../../runtime/common/xwalk_paths.h',
+        '../../../runtime/common/xwalk_system_locale.cc',
+        '../../../runtime/common/xwalk_system_locale.h',
       ],
       'conditions' : [
         ['tizen==1', {
+          'dependencies': [
+            '../../../build/system.gyp:tizen',
+          ],
           'sources': [
             'xwalk_tizen_user.cc',
             'xwalk_tizen_user.h',
@@ -54,6 +64,7 @@
       'dependencies': [
         '../../../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
         '../../../extensions/extensions.gyp:xwalk_extensions',
+        '../../../application/common/xwalk_application_common.gypi:xwalk_application_common_lib',
       ],
       'sources': [
         'dbus_connection.cc',
index e868429..a171ed9 100644 (file)
@@ -18,6 +18,7 @@
 #include "xwalk/application/tools/linux/dbus_connection.h"
 #include "xwalk/application/tools/linux/xwalk_extension_process_launcher.h"
 #if defined(OS_TIZEN)
+#include "xwalk/application/common/id_util.h"
 #include "xwalk/application/tools/linux/xwalk_launcher_tizen.h"
 #include "xwalk/application/tools/linux/xwalk_tizen_user.h"
 #endif
@@ -40,15 +41,15 @@ static int g_argc;
 static char** g_argv;
 static gboolean query_running = FALSE;
 static gboolean fullscreen = FALSE;
-static gchar** cmd_appid;
+static gchar** cmd_appid_or_url;
 
 static GOptionEntry entries[] = {
   { "running", 'r', 0, G_OPTION_ARG_NONE, &query_running,
     "Check whether the application is running", NULL },
   { "fullscreen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen,
     "Run the application as fullscreen", NULL },
-  { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &cmd_appid,
-    "ID of the application to be launched", NULL },
+  { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_STRING_ARRAY, &cmd_appid_or_url,
+    "ID of the application to be launched or URL to open", NULL },
   { NULL }
 };
 
@@ -133,7 +134,7 @@ static void on_app_signal(GDBusProxy* proxy,
   }
 }
 
-static void query_application_running(const char* app_id) {
+static int query_application_running(const char* app_id) {
   GList* objects = g_dbus_object_manager_get_objects(g_running_apps_manager);
   GList* it;
   bool is_running = FALSE;
@@ -167,9 +168,10 @@ static void query_application_running(const char* app_id) {
   g_print("Application %s is %s.\n", app_id, str);
 
   g_list_free_full(objects, g_object_unref);
+  return is_running ? 0 : 1;
 }
 
-static void launch_application(const char* appid,
+static void launch_application(const char* appid_or_url,
                                gboolean fullscreen) {
   ep_launcher = new XWalkExtensionProcessLauncher();
   GError* error = NULL;
@@ -190,7 +192,7 @@ static void launch_application(const char* appid,
   unsigned int launcher_pid = getpid();
 
   GVariant* result  = g_dbus_proxy_call_sync(running_proxy, "Launch",
-      g_variant_new("(sub)", appid, launcher_pid, fullscreen),
+      g_variant_new("(sub)", appid_or_url, launcher_pid, fullscreen),
       G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
   if (!result) {
     fprintf(stderr, "Couldn't call 'Launch' method: %s\n", error->message);
@@ -220,7 +222,7 @@ static void launch_application(const char* appid,
 
 #if defined(OS_TIZEN)
   char name[128];
-  snprintf(name, sizeof(name), "xwalk-%s", appid);
+  snprintf(name, sizeof(name), "xwalk-%s", appid_or_url);
 
   if (xwalk_appcore_init(g_argc, g_argv, name)) {
     fprintf(stderr, "Failed to initialize appcore");
@@ -255,7 +257,7 @@ void connect_to_application_manager() {
 
 int main(int argc, char** argv) {
   GError* error = NULL;
-  char* appid;
+  char* appid_or_url;
 
   g_argc = argc;
   g_argv = argv;
@@ -280,34 +282,34 @@ int main(int argc, char** argv) {
 
   connect_to_application_manager();
 
-  // Query app.
-  if (query_running) {
-    query_application_running(cmd_appid[0]);
-    return 0;
-  }
-
   // Launch app.
   if (!strcmp(basename(argv[0]), "xwalk-launcher")) {
-    if (cmd_appid == NULL) {
+    if (cmd_appid_or_url == NULL) {
       fprintf(stderr, "No AppID informed, nothing to do.\n");
       return 0;
     }
-    appid = strdup(cmd_appid[0]);
+    appid_or_url = strdup(cmd_appid_or_url[0]);
 #if defined(OS_TIZEN)
-    if (xwalk_change_cmdline(argc, argv, appid))
+    if (GURL(appid_or_url).spec().empty()
+       && xwalk_change_cmdline(argc, argv, appid_or_url))
       exit(1);
 #endif
   } else {
-    appid = strdup(basename(argv[0]));
+    appid_or_url = strdup(basename(argv[0]));
+  }
+
 #if defined(OS_TIZEN)
-    if (char* xwalk_appid = xwalk_extract_app_id(appid)) {
-      free(appid);
-      appid = xwalk_appid;
-    }
+    std::string crosswalk_app_id =
+        xwalk::application::RawAppIdToCrosswalkAppId(appid_or_url);
+    appid_or_url = strdup(crosswalk_app_id.c_str());
 #endif
+
+  // Query app.
+  if (query_running) {
+    return query_application_running(appid_or_url);
   }
 
-  launch_application(appid, fullscreen);
-  free(appid);
+  launch_application(appid_or_url, fullscreen);
+  free(appid_or_url);
   return 0;
 }
index e8ce3fc..6319e4e 100644 (file)
@@ -9,6 +9,7 @@
 #include <appcore/appcore-common.h>
 #include <pkgmgr-info.h>
 
+#include "xwalk/application/common/id_util.h"
 #include "xwalk/application/tools/linux/xwalk_launcher_tizen.h"
 
 enum app_event {
@@ -74,35 +75,22 @@ int xwalk_appcore_init(int argc, char** argv, const char* name) {
 
 int xwalk_change_cmdline(int argc, char** argv, const char* app_id) {
   // Change /proc/<pid>/cmdline to app exec path. See XWALK-1722 for details.
-  gchar* tizen_app_id = g_strconcat("xwalk.", app_id, NULL);
+  char* app_id_for_db = strdup(
+      xwalk::application::RawAppIdToAppIdForTizenPkgmgrDB(app_id).c_str());
   pkgmgrinfo_appinfo_h handle;
   char* exec_path = NULL;
-  if (pkgmgrinfo_appinfo_get_appinfo(tizen_app_id, &handle) != PMINFO_R_OK ||
+  if (pkgmgrinfo_appinfo_get_appinfo(app_id_for_db, &handle) != PMINFO_R_OK ||
       pkgmgrinfo_appinfo_get_exec(handle, &exec_path) != PMINFO_R_OK ||
       !exec_path) {
     fprintf(stderr, "Couldn't find exec path for application: %s\n",
-            tizen_app_id);
+            app_id_for_db);
     return -1;
   }
 
   for (int i = 0; i < argc; ++i)
     memset(argv[i], 0, strlen(argv[i]));
   strncpy(argv[0], exec_path, strlen(exec_path)+1);
-  g_free(tizen_app_id);
+  g_free(app_id_for_db);
   pkgmgrinfo_appinfo_destroy_appinfo(handle);
   return 0;
 }
-
-char* xwalk_extract_app_id(const char* tizen_app_id) {
-  // The Tizen application ID will have a format like
-  // "xwalk.crosswalk_32bytes_app_id".
-  char* app_id = NULL;
-  gchar** tokens = g_strsplit(tizen_app_id, ".", 2);
-  if (g_strv_length(tokens) != 2)
-    fprintf(stderr, "Invalid Tizen AppID, fallback to Crosswalk AppID.\n");
-  else
-    app_id = strdup(tokens[1]);
-
-  g_strfreev(tokens);
-  return app_id;
-}
index e9fe52c..9956aaa 100644 (file)
@@ -9,6 +9,4 @@ int xwalk_appcore_init(int argc, char** argv, const char* name);
 
 int xwalk_change_cmdline(int argc, char** argv, const char* app_id);
 
-char* xwalk_extract_app_id(const char* tizen_app_id);
-
 #endif  // XWALK_APPLICATION_TOOLS_LINUX_XWALK_LAUNCHER_TIZEN_H_
index 318b8fb..119934c 100644 (file)
 #include <gio/gio.h>
 #include <locale.h>
 
+#include "base/at_exit.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/path_service.h"
+
+#include "dbus/bus.h"
+#include "dbus/message.h"
+#include "dbus/object_proxy.h"
+
+#include "xwalk/application/common/application_storage.h"
+#include "xwalk/application/common/installer/package_installer.h"
 #include "xwalk/application/tools/linux/dbus_connection.h"
+#include "xwalk/runtime/common/xwalk_paths.h"
 #if defined(OS_TIZEN)
+#include "xwalk/application/common/id_util.h"
 #include "xwalk/application/tools/linux/xwalk_tizen_user.h"
 #endif
 
-static const char* xwalk_service_name = "org.crosswalkproject.Runtime1";
-static const char* xwalk_installed_path = "/installed1";
-static const char* xwalk_installed_iface =
-    "org.crosswalkproject.Installed.Manager1";
-static const char* xwalk_installed_app_iface =
-    "org.crosswalkproject.Installed.Application1";
+using xwalk::application::ApplicationData;
+using xwalk::application::ApplicationStorage;
+using xwalk::application::PackageInstaller;
 
 static char* install_path;
 static char* uninstall_appid;
-static GDBusConnection* g_connection;
 
 static GOptionEntry entries[] = {
   { "install", 'i', 0, G_OPTION_ARG_STRING, &install_path,
@@ -34,151 +42,64 @@ static GOptionEntry entries[] = {
   { NULL }
 };
 
-static bool install_application(const char* path) {
-  GError* error = NULL;
-  GDBusProxy* proxy;
-  bool ret;
-  GVariant* result = NULL;
-
-  proxy = g_dbus_proxy_new_sync(
-      g_connection,
-      G_DBUS_PROXY_FLAGS_NONE, NULL, xwalk_service_name,
-      xwalk_installed_path, xwalk_installed_iface, NULL, &error);
-  if (!proxy) {
-    g_print("Couldn't create proxy for '%s': %s\n", xwalk_installed_iface,
-            error->message);
-    g_error_free(error);
-    ret = false;
-    goto done;
-  }
-
-  result = g_dbus_proxy_call_sync(proxy, "Install",
-                                  g_variant_new("(s)", path),
-                                  G_DBUS_CALL_FLAGS_NONE,
-                                  -1, NULL, &error);
-  if (!result) {
-    g_print("Installing application failed: %s\n", error->message);
-    g_error_free(error);
-    ret = false;
-    goto done;
-  }
-
-  const char* object_path;
-
-  g_variant_get(result, "(o)", &object_path);
-  g_print("Application installed/updated with path '%s'\n", object_path);
-  g_variant_unref(result);
-
-  ret = true;
-
- done:
-  if (proxy)
-    g_object_unref(proxy);
-
-  return ret;
-}
-
-static bool uninstall_application(GDBusObjectManager* installed,
-                                  const char* appid) {
-  GList* objects = g_dbus_object_manager_get_objects(installed);
-  GList* l;
-  bool ret = false;
-
-  for (l = objects; l; l = l->next) {
-    GDBusObject* object = reinterpret_cast<GDBusObject*>(l->data);
-    GDBusInterface* iface = g_dbus_object_get_interface(
-        object,
-        xwalk_installed_app_iface);
-    if (!iface)
-      continue;
-
-    GDBusProxy* proxy = G_DBUS_PROXY(iface);
-
-    GVariant* value = g_dbus_proxy_get_cached_property(proxy, "AppID");
-    if (!value) {
-      g_object_unref(iface);
-      continue;
-    }
+#if defined(SHARED_PROCESS_MODE)
+namespace {
 
-    const char* id;
-    g_variant_get(value, "s", &id);
+const char xwalk_service_name[] = "org.crosswalkproject.Runtime1";
+const char xwalk_running_manager_iface[] =
+    "org.crosswalkproject.Running.Manager1";
+const dbus::ObjectPath kRunningManagerDBusPath("/running1");
 
-    if (g_strcmp0(appid, id)) {
-      g_object_unref(iface);
-      continue;
-    }
-
-    GError* error = NULL;
-    GVariant* result = g_dbus_proxy_call_sync(proxy, "Uninstall", NULL,
-                                              G_DBUS_CALL_FLAGS_NONE,
-                                              -1, NULL, &error);
-    if (!result) {
-      g_print("Uninstalling application failed: %s\n", error->message);
-      g_error_free(error);
-      g_object_unref(iface);
-      ret = false;
-      goto done;
-    }
+}  // namespace
 
-    g_object_unref(iface);
-    ret = true;
-    goto done;
-  }
-
-  g_print("Application ID '%s' could not be found\n", appid);
-
- done:
-  g_list_free_full(objects, g_object_unref);
-
-  return ret;
+static void TerminateIfRunning(const std::string& app_id) {
+  dbus::Bus::Options options;
+#if defined(OS_TIZEN_MOBILE)
+  options.bus_type = dbus::Bus::CUSTOM_ADDRESS;
+  options.address.assign("unix:path=/run/user/app/dbus/user_bus_socket");
+#endif
+  scoped_refptr<dbus::Bus> bus(new dbus::Bus(options));
+  dbus::ObjectProxy* app_proxy =
+      bus->GetObjectProxy(xwalk_service_name, kRunningManagerDBusPath);
+  if (!app_proxy)
+    return;
+
+  dbus::MethodCall method_call(
+      xwalk_running_manager_iface, "TerminateIfRunning");
+  dbus::MessageWriter writer(&method_call);
+  writer.AppendString(app_id);
+
+  app_proxy->CallMethodAndBlock(&method_call, 1000);
 }
+#endif
 
-static void list_applications(GDBusObjectManager* installed) {
-  GList* objects = g_dbus_object_manager_get_objects(installed);
-  GList* l;
-
-  for (l = objects; l; l = l->next) {
-    GDBusObject* object = reinterpret_cast<GDBusObject*>(l->data);
-    GDBusInterface* iface = g_dbus_object_get_interface(
-        object,
-        xwalk_installed_app_iface);
-    if (!iface)
-      continue;
-
-    GDBusProxy* proxy = G_DBUS_PROXY(iface);
-    GVariant* id_variant;
-    id_variant = g_dbus_proxy_get_cached_property(proxy, "AppID");
-    if (!id_variant) {
-      g_object_unref(iface);
-      continue;
-    }
-
-    const char* id;
-    g_variant_get(id_variant, "s", &id);
-
-    GVariant* name_variant;
-    name_variant = g_dbus_proxy_get_cached_property(proxy, "Name");
-    if (!name_variant) {
-      g_object_unref(iface);
-      continue;
-    }
-
-    const char* name;
-    g_variant_get(name_variant, "s", &name);
-
-    g_print("%s\t%s\n", id, name);
+bool list_applications(ApplicationStorage* storage) {
+  ApplicationData::ApplicationDataMap apps;
+  if (!storage->GetInstalledApplications(apps))
+    return false;
 
-    g_object_unref(iface);
+  g_print("Application ID                       Application Name\n");
+  g_print("-----------------------------------------------------\n");
+  ApplicationData::ApplicationDataMap::const_iterator it;
+  for (it = apps.begin(); it != apps.end(); ++it) {
+#if defined(OS_TIZEN)
+    g_print("%s  %s\n",
+            GetTizenAppId(it->second).c_str(),
+            it->second->Name().c_str());
+#else
+    g_print("%s  %s\n", it->first.c_str(), it->second->Name().c_str());
+#endif
   }
+  g_print("-----------------------------------------------------\n");
 
-  g_list_free_full(objects, g_object_unref);
+  return true;
 }
 
 int main(int argc, char* argv[]) {
   setlocale(LC_ALL, "");
   GError* error = NULL;
   GOptionContext* context;
-  bool success;
+  bool success = false;
 
 #if !GLIB_CHECK_VERSION(2, 36, 0)
   // g_type_init() is deprecated on GLib since 2.36, Tizen has 2.32.
@@ -197,44 +118,34 @@ int main(int argc, char* argv[]) {
     exit(1);
   }
 
-  g_connection = get_session_bus_connection(&error);
-  if (!g_connection) {
-    fprintf(stderr, "Couldn't get the session bus connection: %s\n",
-            error->message);
-    exit(1);
-  }
-
-  GDBusObjectManager* installed_om = g_dbus_object_manager_client_new_sync(
-      g_connection, G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
-      xwalk_service_name, xwalk_installed_path,
-      NULL, NULL, NULL, NULL, &error);
-  if (!installed_om) {
-    g_print("Service '%s' could not be reached: %s\n", xwalk_service_name,
-            error->message);
-    exit(1);
-  }
-
-  // GDBus may return a valid ObjectManager even if it fails to auto activate
-  // the proper service name. We should check 'name-owner' property to make sure
-  // the service is working. See GDBusObjectManager documentation.
-  gchar* name_owner = NULL;
-  g_object_get(installed_om, "name-owner", &name_owner, NULL);
-  if (!name_owner) {
-    g_print("Service '%s' could not be activated.\n", xwalk_service_name);
-    exit(1);
-  }
-  g_free(name_owner);
+  base::AtExitManager at_exit;
+  base::FilePath data_path;
+  xwalk::RegisterPathProvider();
+  PathService::Get(xwalk::DIR_DATA_PATH, &data_path);
+  scoped_ptr<ApplicationStorage> storage(new ApplicationStorage(data_path));
+  scoped_ptr<PackageInstaller> installer =
+      PackageInstaller::Create(storage.get());
 
   if (install_path) {
-    success = install_application(install_path);
+    std::string app_id;
+    const base::FilePath& path = base::FilePath(install_path);
+    success = installer->Install(path, &app_id);
+    if (!success && storage->Contains(app_id)) {
+      g_print("trying to update %s\n", app_id.c_str());
+      success = installer->Update(app_id, path);
+    }
   } else if (uninstall_appid) {
-    success = uninstall_application(installed_om, uninstall_appid);
+#if defined(SHARED_PROCESS_MODE)
+    TerminateIfRunning(uninstall_appid);
+#endif
+#if defined(OS_TIZEN)
+    std::string crosswalk_app_id =
+        xwalk::application::RawAppIdToCrosswalkAppId(uninstall_appid);
+    uninstall_appid = strdup(crosswalk_app_id.c_str());
+#endif
+    success = installer->Uninstall(uninstall_appid);
   } else {
-    g_print("Application ID                       Application Name\n");
-    g_print("-----------------------------------------------------\n");
-    list_applications(installed_om);
-    g_print("-----------------------------------------------------\n");
-    success = true;
+    success = list_applications(storage.get());
   }
 
   return success ? 0 : 1;
index d4f45b3..e874492 100644 (file)
             'browser/application_service_provider_linux.h',
             'browser/application_system_linux.cc',
             'browser/application_system_linux.h',
-            'browser/linux/installed_application_object.cc',
-            'browser/linux/installed_application_object.h',
-            'browser/linux/installed_applications_manager.cc',
-            'browser/linux/installed_applications_manager.h',
             'browser/linux/running_application_object.cc',
             'browser/linux/running_application_object.h',
             'browser/linux/running_applications_manager.cc',
index b2ddb98..a8036b9 100644 (file)
@@ -2,6 +2,7 @@
   'variables': {
     'tizen%': 0,
     'tizen_mobile%': 0,
+    'shared_process_mode%': 0,
   },
   'target_defaults': {
     'variables': {
@@ -15,6 +16,9 @@
       ['tizen_mobile==1', {
         'defines': ['OS_TIZEN_MOBILE=1', 'OS_TIZEN=1'],
       }],
+      ['shared_process_mode==1', {
+        'defines': ['SHARED_PROCESS_MODE=1'],
+      }],
     ],
     'includes': [
       'xwalk_filename_rules.gypi',
index 8035093..61a654e 100644 (file)
@@ -38,6 +38,7 @@
               'pkgmgr-parser',
               'pkgmgr-info',
               'pkgmgr-installer',
+              'vconf',
             ],
           },
           'direct_dependent_settings': {
index 7b160fd..4d010dd 100644 (file)
@@ -114,14 +114,14 @@ XWalkExtensionProcessHost::XWalkExtensionProcessHost(
     content::RenderProcessHost* render_process_host,
     const base::FilePath& external_extensions_path,
     XWalkExtensionProcessHost::Delegate* delegate,
-    const base::ValueMap& runtime_variables)
+    scoped_ptr<base::ValueMap> runtime_variables)
     : ep_rp_channel_handle_(""),
       render_process_host_(render_process_host),
       render_process_message_filter_(new RenderProcessMessageFilter(this)),
       external_extensions_path_(external_extensions_path),
       is_extension_process_channel_ready_(false),
       delegate_(delegate),
-      runtime_variables_(runtime_variables) {
+      runtime_variables_(runtime_variables.Pass()) {
   render_process_host_->GetChannel()->AddFilter(render_process_message_filter_);
   BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
       base::Bind(&XWalkExtensionProcessHost::StartProcess,
@@ -152,8 +152,7 @@ void XWalkExtensionProcessHost::StartProcess() {
   CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
   CHECK(!process_ || !channel_);
 
-  CommandLine* cmd_line = CommandLine::ForCurrentProcess();
-  if (cmd_line->HasSwitch(switches::kXWalkRunAsService)) {
+#if defined(SHARED_PROCESS_MODE)
 #if defined(OS_LINUX)
     std::string channel_id =
         IPC::Channel::GenerateVerifiedChannelID(std::string());
@@ -171,8 +170,8 @@ void XWalkExtensionProcessHost::StartProcess() {
             channel_handle));
 #else
     NOTIMPLEMENTED();
-#endif
-  } else {
+#endif  // #if defined(OS_LINUX)
+#else
     process_.reset(content::BrowserChildProcessHost::Create(
         content::PROCESS_TYPE_CONTENT_END, this));
 
@@ -208,10 +207,10 @@ void XWalkExtensionProcessHost::StartProcess() {
     process_->Launch(
         new ExtensionSandboxedProcessLauncherDelegate(process_->GetHost()),
         cmd_line.release());
-  }
+#endif  // #if defined(SHARED_PROCESS_MODE)
 
   base::ListValue runtime_variables_lv;
-  ToListValue(&const_cast<base::ValueMap&>(runtime_variables_),
+  ToListValue(&const_cast<base::ValueMap&>(*runtime_variables_),
       &runtime_variables_lv);
   Send(new XWalkExtensionProcessMsg_RegisterExtensions(
         external_extensions_path_, runtime_variables_lv));
index 3178e93..cc18f9f 100644 (file)
@@ -52,7 +52,7 @@ class XWalkExtensionProcessHost
   XWalkExtensionProcessHost(content::RenderProcessHost* render_process_host,
                             const base::FilePath& external_extensions_path,
                             XWalkExtensionProcessHost::Delegate* delegate,
-                            const base::ValueMap& runtime_variables);
+                            scoped_ptr<base::ValueMap> runtime_variables);
   virtual ~XWalkExtensionProcessHost();
 
   // IPC::Sender implementation
@@ -104,7 +104,7 @@ class XWalkExtensionProcessHost
 
   XWalkExtensionProcessHost::Delegate* delegate_;
 
-  base::ValueMap runtime_variables_;
+  scoped_ptr<base::ValueMap> runtime_variables_;
 
   // IPC channel for launcher to communicate with BP in service mode.
   scoped_ptr<IPC::Channel> channel_;
index 2704006..05cbfbb 100644 (file)
@@ -237,7 +237,7 @@ void XWalkExtensionService::OnRenderProcessHostCreatedInternal(
     content::RenderProcessHost* host,
     XWalkExtensionVector* ui_thread_extensions,
     XWalkExtensionVector* extension_thread_extensions,
-    const base::ValueMap& runtime_variables) {
+    scoped_ptr<base::ValueMap> runtime_variables) {
   XWalkExtensionData* data = new XWalkExtensionData;
   data->set_render_process_host(host);
 
@@ -245,12 +245,12 @@ void XWalkExtensionService::OnRenderProcessHostCreatedInternal(
                                   extension_thread_extensions);
 
   CommandLine* cmd_line = CommandLine::ForCurrentProcess();
-  if (!cmd_line->HasSwitch(switches::kXWalkDisableExtensionProcess))
-    CreateExtensionProcessHost(host, data, runtime_variables);
-  else if (!external_extensions_path_.empty()) {
+  if (!cmd_line->HasSwitch(switches::kXWalkDisableExtensionProcess)) {
+    CreateExtensionProcessHost(host, data, runtime_variables.Pass());
+  else if (!external_extensions_path_.empty()) {
     RegisterExternalExtensionsInDirectory(
         data->in_process_ui_thread_server(),
-        external_extensions_path_, runtime_variables);
+        external_extensions_path_, runtime_variables.Pass());
   }
 
   extension_data_map_[host->GetID()] = data;
@@ -260,19 +260,19 @@ void XWalkExtensionService::OnRenderProcessWillLaunch(
     content::RenderProcessHost* host,
     XWalkExtensionVector* ui_thread_extensions,
     XWalkExtensionVector* extension_thread_extensions,
-    const base::ValueMap& runtime_variables) {
+    scoped_ptr<base::ValueMap> runtime_variables) {
   CHECK(host);
 
   if (!g_external_extensions_path_for_testing_.empty()) {
-    base::ValueMap test_variables;
-    test_variables["runtime_name"] = base::Value::CreateStringValue("xwalk");
+    (*runtime_variables)["runtime_name"] =
+        base::Value::CreateStringValue("xwalk");
     OnRenderProcessHostCreatedInternal(host, ui_thread_extensions,
-        extension_thread_extensions, test_variables);
+        extension_thread_extensions, runtime_variables.Pass());
     return;
   }
 
   OnRenderProcessHostCreatedInternal(host, ui_thread_extensions,
-      extension_thread_extensions, runtime_variables);
+      extension_thread_extensions, runtime_variables.Pass());
 }
 
 // static
@@ -403,10 +403,10 @@ void XWalkExtensionService::CreateInProcessExtensionServers(
 
 void XWalkExtensionService::CreateExtensionProcessHost(
     content::RenderProcessHost* host, XWalkExtensionData* data,
-    const base::ValueMap& runtime_variables) {
+    scoped_ptr<base::ValueMap> runtime_variables) {
   data->set_extension_process_host(make_scoped_ptr(
       new XWalkExtensionProcessHost(host, external_extensions_path_, this,
-                                    runtime_variables)));
+                                    runtime_variables.Pass())));
 }
 
 void XWalkExtensionService::OnExtensionProcessDied(
index 283e65b..9141449 100644 (file)
@@ -72,7 +72,7 @@ class XWalkExtensionService : public content::NotificationObserver,
       content::RenderProcessHost* host,
       XWalkExtensionVector* ui_thread_extensions,
       XWalkExtensionVector* extension_thread_extensions,
-      const base::ValueMap& runtime_variables);
+      scoped_ptr<base::ValueMap> runtime_variables);
 
   // To be called when a RenderProcess died, so we can gracefully shutdown the
   // associated ExtensionProcess. See Runtime::RenderProcessGone() and
@@ -94,7 +94,7 @@ class XWalkExtensionService : public content::NotificationObserver,
       content::RenderProcessHost* host,
       XWalkExtensionVector* ui_thread_extensions,
       XWalkExtensionVector* extension_thread_extensions,
-      const base::ValueMap& runtime_variables);
+      scoped_ptr<base::ValueMap> runtime_variables);
 
   // XWalkExtensionProcessHost::Delegate implementation.
   virtual void OnExtensionProcessDied(XWalkExtensionProcessHost* eph,
@@ -126,7 +126,7 @@ class XWalkExtensionService : public content::NotificationObserver,
       XWalkExtensionVector* extension_thread_extensions);
 
   void CreateExtensionProcessHost(content::RenderProcessHost* host,
-      XWalkExtensionData* data, const base::ValueMap& runtime_variables);
+      XWalkExtensionData* data, scoped_ptr<base::ValueMap> runtime_variables);
 
   // The server that handles in process extensions will live in the
   // extension_thread_.
index da7534f..2c49907 100644 (file)
@@ -5,6 +5,7 @@
 #include <stdint.h>
 #include <string>
 #include <vector>
+#include "base/memory/shared_memory.h"
 #include "base/values.h"
 #include "ipc/ipc_channel_handle.h"
 #include "ipc/ipc_message_macros.h"
@@ -75,6 +76,10 @@ IPC_MESSAGE_CONTROL2(XWalkExtensionClientMsg_PostMessageToJS,  // NOLINT(*)
                      int64_t /* instance id */,
                      base::ListValue /* contents */)
 
+IPC_MESSAGE_CONTROL2(XWalkExtensionClientMsg_PostOutOfLineMessageToJS,  // NOLINT(*)
+                     base::SharedMemoryHandle /* message buffer */,
+                     size_t /* buffer size */)
+
 IPC_SYNC_MESSAGE_CONTROL2_1(XWalkExtensionServerMsg_SendSyncMessageToNative,  // NOLINT(*)
                             int64_t /* instance id */,
                             base::ListValue /* input contents */,
index bbf4ad5..5f9db7a 100644 (file)
@@ -7,10 +7,12 @@
 #include "base/file_util.h"
 #include "base/files/file_enumerator.h"
 #include "base/files/file_path.h"
+#include "base/memory/shared_memory.h"
 #include "base/strings/string16.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/stl_util.h"
 #include "content/public/browser/render_process_host.h"
+#include "ipc/ipc_message.h"
 #include "ipc/ipc_sender.h"
 #include "xwalk/extensions/common/xwalk_extension_messages.h"
 #include "xwalk/extensions/common/xwalk_external_extension.h"
 namespace xwalk {
 namespace extensions {
 
+// Threshold to determine using shared memory or message
+const size_t kInlineMessageMaxSize = 256 * 1024;
+
 XWalkExtensionServer::XWalkExtensionServer()
     : sender_(NULL),
+      renderer_process_handle_(base::kNullProcessHandle),
       permissions_delegate_(NULL) {}
 
 XWalkExtensionServer::~XWalkExtensionServer() {
@@ -47,6 +53,10 @@ bool XWalkExtensionServer::OnMessageReceived(const IPC::Message& message) {
   return handled;
 }
 
+void XWalkExtensionServer::OnChannelConnected(int32 peer_pid) {
+  CHECK(base::OpenProcessHandle(peer_pid, &renderer_process_handle_));
+}
+
 void XWalkExtensionServer::OnCreateInstance(int64_t instance_id,
     std::string name) {
   ExtensionMap::const_iterator it = extensions_.find(name);
@@ -185,7 +195,31 @@ void XWalkExtensionServer::PostMessageToJSCallback(
     int64_t instance_id, scoped_ptr<base::Value> msg) {
   base::ListValue wrapped_msg;
   wrapped_msg.Append(msg.release());
-  Send(new XWalkExtensionClientMsg_PostMessageToJS(instance_id, wrapped_msg));
+
+  scoped_ptr<IPC::Message> message(
+      new XWalkExtensionClientMsg_PostMessageToJS(instance_id, wrapped_msg));
+  if (message->size() <= kInlineMessageMaxSize) {
+    Send(message.release());
+    return;
+  }
+
+  base::SharedMemoryCreateOptions options;
+  options.size = message->size();
+  options.share_read_only = true;
+
+  base::SharedMemory shared_memory;
+  if (!shared_memory.Create(options) || !shared_memory.Map(message->size())) {
+    LOG(WARNING) << "Can't create shared memory to send out of line message";
+    return;
+  }
+
+  memcpy(shared_memory.memory(), message->data(), message->size());
+
+  base::SharedMemoryHandle handle;
+  shared_memory.GiveReadOnlyToProcess(renderer_process_handle_, &handle);
+
+  Send(new XWalkExtensionClientMsg_PostOutOfLineMessageToJS(handle,
+                                                            message->size()));
 }
 
 void XWalkExtensionServer::SendSyncReplyToJSCallback(
@@ -348,7 +382,7 @@ base::FilePath::StringType GetNativeLibraryPattern() {
 
 std::vector<std::string> RegisterExternalExtensionsInDirectory(
     XWalkExtensionServer* server, const base::FilePath& dir,
-    const base::ValueMap& runtime_variables) {
+    scoped_ptr<base::ValueMap> runtime_variables) {
   CHECK(server);
 
   std::vector<std::string> registered_extensions;
@@ -366,7 +400,14 @@ std::vector<std::string> RegisterExternalExtensionsInDirectory(
         !extension_path.empty(); extension_path = libraries.Next()) {
     scoped_ptr<XWalkExternalExtension> extension(
         new XWalkExternalExtension(extension_path));
-    extension->set_runtime_variables(runtime_variables);
+
+    // Let the extension know about its own path, so it can be used
+    // as an identifier in case you have symlinks to extensions to force it
+    // load multiple times.
+    (*runtime_variables)["extension_path"] =
+        base::Value::CreateStringValue(extension_path.AsUTF8Unsafe());
+
+    extension->set_runtime_variables(*runtime_variables);
     if (server->permissions_delegate())
       extension->set_permissions_delegate(server->permissions_delegate());
     if (extension->Initialize()) {
index 4f06be4..e79fc48 100644 (file)
@@ -11,6 +11,7 @@
 #include <string>
 #include <vector>
 
+#include "base/memory/shared_memory.h"
 #include "base/memory/weak_ptr.h"
 #include "base/synchronization/lock.h"
 #include "base/values.h"
@@ -51,6 +52,7 @@ class XWalkExtensionServer : public IPC::Listener,
 
   // IPC::Listener Implementation.
   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+  virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
 
   // Different types of ExtensionServers are initialized with different
   // permission delegates: For out-of-process extensions the extension
@@ -114,12 +116,14 @@ class XWalkExtensionServer : public IPC::Listener,
   typedef std::set<std::string> ExtensionSymbolsSet;
   ExtensionSymbolsSet extension_symbols_;
 
+  base::ProcessHandle renderer_process_handle_;
+
   XWalkExtension::PermissionsDelegate* permissions_delegate_;
 };
 
 std::vector<std::string> RegisterExternalExtensionsInDirectory(
     XWalkExtensionServer* server, const base::FilePath& dir,
-    const base::ValueMap& runtime_variables);
+    scoped_ptr<base::ValueMap> runtime_variables);
 
 bool ValidateExtensionNameForTesting(const std::string& extension_name);
 
index baa5efc..9033036 100644 (file)
@@ -67,13 +67,13 @@ void ToValueMap(base::ListValue* lv, base::ValueMap* vm) {
 void XWalkExtensionProcess::OnRegisterExtensions(
     const base::FilePath& path, const base::ListValue& browser_variables_lv) {
   if (!path.empty()) {
-    base::ValueMap browser_variables;
+    scoped_ptr<base::ValueMap> browser_variables(new base::ValueMap);
 
     ToValueMap(&const_cast<base::ListValue&>(browser_variables_lv),
-          &browser_variables);
+          browser_variables.get());
 
     RegisterExternalExtensionsInDirectory(&extensions_server_, path,
-                                          browser_variables);
+                                          browser_variables.Pass());
   }
   CreateRenderProcessChannel();
 }
index 718a858..9f6622c 100644 (file)
@@ -44,6 +44,8 @@ bool XWalkExtensionClient::OnMessageReceived(const IPC::Message& message) {
   IPC_BEGIN_MESSAGE_MAP(XWalkExtensionClient, message)
     IPC_MESSAGE_HANDLER(XWalkExtensionClientMsg_PostMessageToJS,
         OnPostMessageToJS)
+    IPC_MESSAGE_HANDLER(XWalkExtensionClientMsg_PostOutOfLineMessageToJS,
+        OnPostOutOfLineMessageToJS)
     IPC_MESSAGE_HANDLER(XWalkExtensionClientMsg_InstanceDestroyed,
         OnInstanceDestroyed)
     IPC_MESSAGE_UNHANDLED(handled = false)
@@ -76,6 +78,17 @@ void XWalkExtensionClient::OnPostMessageToJS(int64_t instance_id,
   it->second->HandleMessageFromNative(*value);
 }
 
+void XWalkExtensionClient::OnPostOutOfLineMessageToJS(
+    base::SharedMemoryHandle handle, size_t size) {
+  CHECK(base::SharedMemory::IsHandleValid(handle));
+
+  base::SharedMemory shared_memory(handle, true);
+  shared_memory.Map(size);
+
+  IPC::Message message(static_cast<char*>(shared_memory.memory()), size);
+  OnMessageReceived(message);
+}
+
 void XWalkExtensionClient::DestroyInstance(int64_t instance_id) {
   HandlerMap::iterator it = handlers_.find(instance_id);
   if (it == handlers_.end() || !it->second) {
index 8e21d7c..31faaf9 100644 (file)
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "base/memory/scoped_ptr.h"
+#include "base/memory/shared_memory.h"
 #include "base/values.h"
 #include "ipc/ipc_listener.h"
 
@@ -73,6 +74,8 @@ class XWalkExtensionClient : public IPC::Listener {
   // Message Handlers.
   void OnInstanceDestroyed(int64_t instance_id);
   void OnPostMessageToJS(int64_t instance_id, const base::ListValue& msg);
+  void OnPostOutOfLineMessageToJS(base::SharedMemoryHandle handle,
+                                  size_t size);
 
   IPC::Sender* sender_;
   ExtensionAPIMap extension_apis_;
index 1f206f8..1624989 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include "xwalk/extensions/public/XW_Extension.h"
 #include "xwalk/extensions/public/XW_Extension_Runtime.h"
 #include "xwalk/extensions/public/XW_Extension_SyncMessage.h"
@@ -64,5 +65,12 @@ int32_t XW_Initialize(XW_Extension extension, XW_GetInterface get_interface) {
   if (!g_runtime)
     return XW_ERROR;
 
+  char extension_path[4096];
+  g_runtime->GetRuntimeVariableString(g_extension, "extension_path",
+      extension_path, sizeof(extension_path));
+
+  if (strstr(extension_path, "get_runtime_variable") == NULL)
+    return XW_ERROR;
+
   return XW_OK;
 }
index feabbae..3283bd4 100644 (file)
@@ -145,7 +145,6 @@ class ExtensionManager {
  public:
   ExtensionManager()
     : shutdown_event_(false, false) {
-    runtime_variables_["app_id"] = base::Value::CreateStringValue("xesh");
   }
 
   ~ExtensionManager() {
@@ -157,9 +156,12 @@ class ExtensionManager {
         CommandLine::ForCurrentProcess()->GetSwitchValuePath(
             switches::kXWalkExternalExtensionsPath);
 
+    scoped_ptr<base::ValueMap> runtime_variables(new base::ValueMap);
+    (*runtime_variables)["app_id"] = base::Value::CreateStringValue("xesh");
+
     std::vector<std::string> extensions =
         RegisterExternalExtensionsInDirectory(&server_, extensions_dir,
-            runtime_variables_);
+            runtime_variables.Pass());
 
     fprintf(stderr, "\nExtensions Loaded:\n");
     std::vector<std::string>::const_iterator it = extensions.begin();
@@ -184,7 +186,6 @@ class ExtensionManager {
   base::WaitableEvent shutdown_event_;
   XWalkExtensionServer server_;
   scoped_ptr<IPC::SyncChannel> server_channel_;
-  base::ValueMap runtime_variables_;
 };
 }  // namespace
 
index 139de2d..1c44382 100644 (file)
@@ -16,7 +16,7 @@
 %endif
 
 Name:           crosswalk
-Version:        8.36.161.0
+Version:        8.36.169.0
 Release:        0
 Summary:        Crosswalk is an app runtime based on Chromium
 License:        (BSD-3-Clause and LGPL-2.1+)
@@ -211,13 +211,13 @@ ${GYP_EXTRA_FLAGS} \
 -Duse_system_libexif=1 \
 -Duse_system_libxml=1 \
 -Duse_system_nspr=1 \
+-Dshared_process_mode=1 \
 -Denable_hidpi=1
 
 ninja %{?_smp_mflags} -C src/out/Release xwalk xwalkctl xwalk_launcher xwalk-pkg-helper
 
 %install
 # Binaries.
-install -p -D xwalk %{buildroot}%{_bindir}/xwalk
 install -p -D %{SOURCE2} %{buildroot}%{_dbusservicedir}/org.crosswalkproject.Runtime1.service
 install -p -D xwalk.service %{buildroot}%{_systemduserservicedir}/xwalk.service
 install -p -D src/out/Release/xwalk %{buildroot}%{_libdir}/xwalk/xwalk
@@ -254,7 +254,6 @@ mkdir -p %{_manifestdir_ro}
 %files
 %manifest %{name}.manifest
 %license AUTHORS.chromium LICENSE.chromium LICENSE.xwalk
-%{_bindir}/xwalk
 %{_bindir}/xwalkctl
 %{_bindir}/xwalk-launcher
 %{_bindir}/xwalk-pkg-helper
index e0d9b32..0e2f345 100644 (file)
@@ -4,4 +4,4 @@ Description=Crosswalk
 [Service]
 Type=dbus
 BusName=org.crosswalkproject.Runtime1
-ExecStart=@LIB_INSTALL_DIR@/xwalk/xwalk --run-as-service --external-extensions-path=@LIB_INSTALL_DIR@/tizen-extensions-crosswalk
+ExecStart=@LIB_INSTALL_DIR@/xwalk/xwalk --external-extensions-path=@LIB_INSTALL_DIR@/tizen-extensions-crosswalk
index 8e7c5be..dc30a12 100644 (file)
@@ -4,8 +4,6 @@
 
 package org.xwalk.core;
 
-import android.app.AlertDialog;
-import android.content.DialogInterface;
 import android.webkit.WebResourceResponse;
 
 import org.xwalk.core.internal.XWalkResourceClientInternal;
@@ -229,4 +227,35 @@ public class XWalkResourceClient extends XWalkResourceClientInternal {
             super.onReceivedLoadError(view, errorCode, description, failingUrl);
         }
     }
+
+    /**
+     * Give the host application a chance to take over the control when a new
+     * url is about to be loaded in the current XWalkView. If XWalkClient is not
+     * provided, by default XWalkView will ask Activity Manager to choose the
+     * proper handler for the url. If XWalkClient is provided, return true
+     * means the host application handles the url, while return false means the
+     * current XWalkView handles the url.
+     *
+     * @param view The XWalkView that is initiating the callback.
+     * @param url The url to be loaded.
+     * @return True if the host application wants to leave the current XWalkView
+     *         and handle the url itself, otherwise return false.
+     *
+     * @since 2.1
+     */
+    public boolean shouldOverrideUrlLoading(XWalkView view, String url) {
+        return super.shouldOverrideUrlLoading(view, url);
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public boolean shouldOverrideUrlLoading(XWalkViewInternal view, String url) {
+        if (view instanceof XWalkView) {
+            return shouldOverrideUrlLoading((XWalkView) view, url);
+        }
+
+        return super.shouldOverrideUrlLoading(view, url);
+    }
 }
index 5b16b22..fd9f255 100644 (file)
@@ -5,6 +5,8 @@
 package org.xwalk.core;
 
 import android.net.Uri;
+import android.os.Message;
+import android.view.KeyEvent;
 import android.webkit.ValueCallback;
 
 import org.xwalk.core.internal.XWalkJavascriptResultInternal;
@@ -195,4 +197,153 @@ public class XWalkUIClient extends XWalkUIClientInternal {
             super.onScaleChanged(view, oldScale, newScale);
         }
     }
+
+    /**
+     * Give the host application a chance to handle the key event synchronously.
+     * e.g. menu shortcut key events need to be filtered this way. If return
+     * true, XWalkView will not handle the key event. If return false, XWalkView
+     * will always handle the key event, so none of the super in the view chain
+     * will see the key event. The default behavior returns false.
+     *
+     * @param view The XWalkView that is initiating the callback.
+     * @param event The key event.
+     * @return True if the host application wants to handle the key event
+     *         itself, otherwise return false
+     *
+     * @since 2.1
+     */
+    public boolean shouldOverrideKeyEvent(XWalkView view, KeyEvent event) {
+        return super.shouldOverrideKeyEvent(view, event);
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public boolean shouldOverrideKeyEvent(XWalkViewInternal view, KeyEvent event) {
+        if (view instanceof XWalkView) {
+            return shouldOverrideKeyEvent((XWalkView) view, event);
+        }
+
+        return super.shouldOverrideKeyEvent(view, event);
+    }
+
+    /**
+     * Notify the host application that a key was not handled by the XWalkView.
+     * Except system keys, XWalkView always consumes the keys in the normal flow
+     * or if shouldOverrideKeyEvent returns true. This is called asynchronously
+     * from where the key is dispatched. It gives the host application a chance
+     * to handle the unhandled key events.
+     *
+     * @param view The XWalkView that is initiating the callback.
+     * @param event The key event.
+     *
+     * @since 2.1
+     */
+    public void onUnhandledKeyEvent(XWalkView view, KeyEvent event) {
+        super.onUnhandledKeyEvent(view, event);
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void onUnhandledKeyEvent(XWalkViewInternal view, KeyEvent event) {
+        if (view instanceof XWalkView) {
+            onUnhandledKeyEvent((XWalkView) view, event);
+        } else {
+            super.onUnhandledKeyEvent(view, event);
+        }
+    }
+
+    /**
+     * Notify the host application of a change in the document title.
+     * @param view The XWalkView that initiated the callback.
+     * @param title A String containing the new title of the document.
+     * @since 2.1
+     */
+    public void onReceivedTitle(XWalkView view, String title) {
+        super.onReceivedTitle(view, title);
+    }
+
+    @Override
+    public void onReceivedTitle(XWalkViewInternal view, String title) {
+        if (view instanceof XWalkView) {
+            onReceivedTitle((XWalkView) view, title);
+        } else {
+            super.onReceivedTitle(view, title);
+        }
+    }
+
+    /**
+     * The status when a page stopped loading
+     * @since 2.1
+     */
+    public enum LoadStatus {
+        /** Loading finished. */
+        FINISHED,
+        /** Loading failed. */
+        FAILED,
+        /** Loading cancelled by user. */
+        CANCELLED
+    }
+
+    /**
+     * Notify the host application that a page has started loading. This method
+     * is called once for each main frame load so a page with iframes or
+     * framesets will call onPageLoadStarted one time for the main frame. This also
+     * means that onPageLoadStarted will not be called when the contents of an
+     * embedded frame changes, i.e. clicking a link whose target is an iframe.
+     *
+     * @param view The XWalkView that is initiating the callback.
+     * @param url The url to be loaded.
+     *
+     * @since 2.1
+     */
+    public void onPageLoadStarted(XWalkView view, String url) {
+        super.onPageLoadStarted(view, url);
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void onPageLoadStarted(XWalkViewInternal view, String url) {
+        if (view instanceof XWalkView) {
+            onPageLoadStarted((XWalkView) view, url);
+        } else {
+            super.onPageLoadStarted(view, url);
+        }
+    }
+
+    /**
+     * Notify the host application that a page has stopped loading. This method
+     * is called only for main frame. When onPageLoadStopped() is called, the
+     * rendering picture may not be updated yet. To get the notification for the
+     * new Picture, use {@link XWalkView.PictureListener#onNewPicture}.
+     *
+     * @param view The XWalkView that is initiating the callback.
+     * @param url The url of the page.
+     * @param status the status when the page stopped loading.
+     *
+     * @since 2.1
+     */
+    public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
+        LoadStatusInternal statusInternal = LoadStatusInternal.valueOf(status.toString());
+        super.onPageLoadStopped(view, url, statusInternal);
+    }
+
+    /**
+     * @hide
+     */
+    @Override
+    public void onPageLoadStopped(
+            XWalkViewInternal view, String url, LoadStatusInternal statusInternal) {
+        LoadStatus status = LoadStatus.valueOf(statusInternal.toString());
+        if (view instanceof XWalkView) {
+            onPageLoadStopped((XWalkView) view, url, status);
+        } else {
+            super.onPageLoadStopped(view, url, statusInternal);
+        }
+    }
 }
index c6408a6..996a468 100644 (file)
@@ -49,48 +49,6 @@ public class XWalkClient {
     }
 
     /**
-     * Give the host application a chance to take over the control when a new
-     * url is about to be loaded in the current XWalkViewInternal. If XWalkClient is not
-     * provided, by default XWalkViewInternal will ask Activity Manager to choose the
-     * proper handler for the url. If XWalkClient is provided, return true
-     * means the host application handles the url, while return false means the
-     * current XWalkViewInternal handles the url.
-     *
-     * @param view The XWalkViewInternal that is initiating the callback.
-     * @param url The url to be loaded.
-     * @return True if the host application wants to leave the current XWalkViewInternal
-     *         and handle the url itself, otherwise return false.
-     */
-    public boolean shouldOverrideUrlLoading(XWalkViewInternal view, String url) {
-        return false;
-    }
-
-    /**
-     * Notify the host application that a page has started loading. This method
-     * is called once for each main frame load so a page with iframes or
-     * framesets will call onPageStarted one time for the main frame. This also
-     * means that onPageStarted will not be called when the contents of an
-     * embedded frame changes, i.e. clicking a link whose target is an iframe.
-     *
-     * @param view The XWalkViewInternal that is initiating the callback.
-     * @param url The url to be loaded.
-     */
-    public void onPageStarted(XWalkViewInternal view, String url) {
-    }
-
-    /**
-     * Notify the host application that a page has finished loading. This method
-     * is called only for main frame. When onPageFinished() is called, the
-     * rendering picture may not be updated yet. To get the notification for the
-     * new Picture, use {@link XWalkViewInternal.PictureListener#onNewPicture}.
-     *
-     * @param view The XWalkViewInternal that is initiating the callback.
-     * @param url The url of the page.
-     */
-    public void onPageFinished(XWalkViewInternal view, String url) {
-    }
-
-    /**
      * Notify the host application that the renderer of XWalkViewInternal is hung.
      *
      * @param view The XWalkViewInternal on which the render is hung.
@@ -261,40 +219,6 @@ public class XWalkClient {
     }
 
     /**
-     * Give the host application a chance to handle the key event synchronously.
-     * e.g. menu shortcut key events need to be filtered this way. If return
-     * true, XWalkViewInternal will not handle the key event. If return false, XWalkViewInternal
-     * will always handle the key event, so none of the super in the view chain
-     * will see the key event. The default behavior returns false.
-     *
-     * @param view The XWalkViewInternal that is initiating the callback.
-     * @param event The key event.
-     * @return True if the host application wants to handle the key event
-     *         itself, otherwise return false
-     */
-    public boolean shouldOverrideKeyEvent(XWalkViewInternal view, KeyEvent event) {
-        return false;
-    }
-
-    /**
-     * Notify the host application that a key was not handled by the XWalkViewInternal.
-     * Except system keys, XWalkViewInternal always consumes the keys in the normal flow
-     * or if shouldOverrideKeyEvent returns true. This is called asynchronously
-     * from where the key is dispatched. It gives the host application a chance
-     * to handle the unhandled key events.
-     *
-     * @param view The XWalkViewInternal that is initiating the callback.
-     * @param event The key event.
-     */
-    public void onUnhandledKeyEvent(XWalkViewInternal view, KeyEvent event) {
-        // TODO: Commment the below code for compile
-        // ViewRootImpl root = view.getViewRootImpl();
-        // if (root != null) {
-        //     root.dispatchUnhandledKey(event);
-        // }
-    }
-
-    /**
      * Notify the host application that a request to automatically log in the
      * user has been processed.
      * @param view The XWalkViewInternal requesting the login.
index 03fc848..0fbfd72 100644 (file)
@@ -300,17 +300,28 @@ class XWalkContent extends FrameLayout implements XWalkPreferencesInternal.KeyVa
 
     public void stopLoading() {
         mContentViewCore.stopLoading();
+        mContentsClientBridge.onStopLoading();
     }
 
+    // Currently, timer pause/resume is actually
+    // a global setting. And multiple pause will fail the
+    // DCHECK in content (content_view_statics.cc:57).
+    // Here uses a static boolean to avoid this issue.
+    private static boolean timerPaused = false;
+
     // TODO(Guangzhen): ContentViewStatics will be removed in upstream,
     // details in content_view_statics.cc.
     // We need follow up after upstream updates that.
     public void pauseTimers() {
+        if (timerPaused) return;
         ContentViewStatics.setWebKitSharedTimersSuspended(true);
+        timerPaused = true;
     }
 
     public void resumeTimers() {
+        if (!timerPaused) return;
         ContentViewStatics.setWebKitSharedTimersSuspended(false);
+        timerPaused = false;
     }
 
     public String getOriginalUrl() {
@@ -611,9 +622,16 @@ class XWalkContent extends FrameLayout implements XWalkPreferencesInternal.KeyVa
 
     @Override
     public void onKeyValueChanged(String key, boolean value) {
-        if (key == XWalkPreferencesInternal.REMOTE_DEBUGGING) {
+        if (key == null) return;
+        if (key.equals(XWalkPreferencesInternal.REMOTE_DEBUGGING)) {
             if (value) enableRemoteDebugging();
             else disableRemoteDebugging();
+        } else if (key.equals(XWalkPreferencesInternal.ENABLE_JAVASCRIPT)) {
+            if (mSettings != null) mSettings.setJavaScriptEnabled(value);
+        } else if (key.equals(XWalkPreferencesInternal.JAVASCRIPT_CAN_OPEN_WINDOW)) {
+            if (mSettings != null) mSettings.setJavaScriptCanOpenWindowsAutomatically(value);
+        } else if (key.equals(XWalkPreferencesInternal.ALLOW_UNIVERSAL_ACCESS_FROM_FILE)) {
+            if (mSettings != null) mSettings.setAllowUniversalAccessFromFileURLs(value);
         }
     }
 
index df6aa08..249a031 100644 (file)
@@ -52,6 +52,6 @@ class XWalkContentVideoViewClient implements ContentVideoViewClient {
 
     @Override
     public View getVideoLoadingProgressView() {
-        return mContentsClient.getVideoLoadingProgressView();
+        return null;
     }
 }
index ac71fc6..3fcfb89 100644 (file)
@@ -164,18 +164,16 @@ abstract class XWalkContentsClient extends ContentViewClient {
 
     protected abstract void onCloseWindow();
 
-    public abstract void onReceivedTouchIconUrl(String url, boolean precomposed);
-
     public abstract void onReceivedIcon(Bitmap bitmap);
 
     protected abstract void onRequestFocus();
 
-    protected abstract View getVideoLoadingProgressView();
-
     public abstract void onPageStarted(String url);
 
     public abstract void onPageFinished(String url);
 
+    protected abstract void onStopLoading();
+
     public abstract void onReceivedError(int errorCode, String description, String failingUrl);
 
     public abstract void onRendererUnresponsive();
@@ -205,8 +203,6 @@ abstract class XWalkContentsClient extends ContentViewClient {
 
     public abstract void onHideCustomView();
 
-    public abstract Bitmap getDefaultVideoPoster();
-
     public abstract void didFinishLoad(String url);
 
     //--------------------------------------------------------------------------------------------
@@ -221,4 +217,6 @@ abstract class XWalkContentsClient extends ContentViewClient {
      * @param picture New picture.
      */
     public abstract void onNewPicture(Picture picture);
+
+    public abstract boolean shouldOpenWithDefaultBrowser(String contentUrl);
 }
index 1054f10..d679249 100644 (file)
@@ -5,6 +5,7 @@
 
 package org.xwalk.core.internal;
 
+import android.content.ActivityNotFoundException;
 import android.content.ContentResolver;
 import android.content.Intent;
 import android.database.Cursor;
@@ -30,12 +31,14 @@ import org.chromium.components.navigation_interception.NavigationParams;
 import org.chromium.content.browser.ContentVideoViewClient;
 import org.chromium.content.browser.ContentViewDownloadDelegate;
 import org.chromium.content.browser.DownloadInfo;
+import org.xwalk.core.internal.XWalkUIClientInternal.LoadStatusInternal;
 
 // Help bridge callback in XWalkContentsClient to XWalkViewClient and
 // XWalkWebChromeClient; Also handle the JNI conmmunication logic.
 @JNINamespace("xwalk")
 class XWalkContentsClientBridge extends XWalkContentsClient
         implements ContentViewDownloadDelegate {
+       private static final String TAG = XWalkContentsClientBridge.class.getName();
 
     private XWalkViewInternal mXWalkView;
     private XWalkUIClientInternal mXWalkUIClient;
@@ -48,7 +51,13 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     private PageLoadListener mPageLoadListener;
     private XWalkNavigationHandler mNavigationHandler;
     private XWalkNotificationService mNotificationService;
+
+    /** State recording variables */
+    // For fullscreen state.
     private boolean mIsFullscreen = false;
+    // For load state.
+    private LoadStatusInternal mLoadStatus = LoadStatusInternal.FINISHED;
+    private String mLoadingUrl = null;
 
     // The native peer of the object
     private long mNativeContentsClientBridge;
@@ -147,16 +156,18 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     // TODO(Xingnan): All the empty functions need to be implemented.
     @Override
     public boolean shouldOverrideUrlLoading(String url) {
-        if (mXWalkClient != null && mXWalkView != null)
-            return mXWalkClient.shouldOverrideUrlLoading(mXWalkView, url);
+        if (mXWalkResourceClient != null && mXWalkView != null) {
+            return mXWalkResourceClient.shouldOverrideUrlLoading(mXWalkView, url);
+        }
         return false;
     }
 
     @Override
     public boolean shouldOverrideKeyEvent(KeyEvent event) {
         boolean overridden = false;
-        if (mXWalkClient != null && mXWalkView != null)
-            overridden = mXWalkClient.shouldOverrideKeyEvent(mXWalkView, event);
+        if (mXWalkUIClient != null && mXWalkView != null) {
+            overridden = mXWalkUIClient.shouldOverrideKeyEvent(mXWalkView, event);
+        }
         if (!overridden) {
             return super.shouldOverrideKeyEvent(event);
         }
@@ -165,8 +176,8 @@ class XWalkContentsClientBridge extends XWalkContentsClient
 
     @Override
     public void onUnhandledKeyEvent(KeyEvent event) {
-        if (mXWalkClient != null && mXWalkView != null) {
-            mXWalkClient.onUnhandledKeyEvent(mXWalkView, event);
+        if (mXWalkUIClient != null && mXWalkView != null) {
+            mXWalkUIClient.onUnhandledKeyEvent(mXWalkView, event);
         }
     }
 
@@ -263,8 +274,10 @@ class XWalkContentsClientBridge extends XWalkContentsClient
 
     @Override
     public void onPageStarted(String url) {
-        if (mXWalkClient != null && isOwnerActivityRunning()) {
-            mXWalkClient.onPageStarted(mXWalkView, url);
+        if (mXWalkUIClient != null && isOwnerActivityRunning()) {
+            mLoadingUrl = url;
+            mLoadStatus = LoadStatusInternal.FINISHED;
+            mXWalkUIClient.onPageLoadStarted(mXWalkView, url);
         }
     }
 
@@ -272,8 +285,13 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     public void onPageFinished(String url) {
         if (!isOwnerActivityRunning()) return;
         if (mPageLoadListener != null) mPageLoadListener.onPageFinished(url);
-        if (mXWalkClient != null) {
-            mXWalkClient.onPageFinished(mXWalkView, url);
+        if (mXWalkUIClient != null) {
+            if (mLoadStatus == LoadStatusInternal.CANCELLED && mLoadingUrl != null) {
+                mXWalkUIClient.onPageLoadStopped(mXWalkView, mLoadingUrl, mLoadStatus);
+            } else {
+                mXWalkUIClient.onPageLoadStopped(mXWalkView, url, mLoadStatus);
+            }
+            mLoadingUrl = null;
         }
 
         // This isn't the accurate point to notify a resource loading is finished,
@@ -283,8 +301,16 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     }
 
     @Override
+    protected void onStopLoading() {
+        mLoadStatus = LoadStatusInternal.CANCELLED;
+    }
+
+    @Override
     public void onReceivedError(int errorCode, String description, String failingUrl) {
         if (isOwnerActivityRunning()) {
+            if (mLoadingUrl != null && mLoadingUrl.equals(failingUrl)) {
+                mLoadStatus = LoadStatusInternal.FAILED;
+            }
             mXWalkResourceClient.onReceivedLoadError(mXWalkView, errorCode, description, failingUrl);
         }
     }
@@ -336,13 +362,6 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     }
 
     @Override
-    public void onReceivedTouchIconUrl(String url, boolean precomposed) {
-        if (mXWalkWebChromeClient != null && mXWalkView != null) {
-            mXWalkWebChromeClient.onReceivedTouchIconUrl(mXWalkView, url, precomposed);
-        }
-    }
-
-    @Override
     public void onReceivedIcon(Bitmap bitmap) {
         if (mXWalkWebChromeClient != null && mXWalkView != null) {
             mXWalkWebChromeClient.onReceivedIcon(mXWalkView, bitmap);
@@ -372,25 +391,13 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     }
 
     @Override
-    protected View getVideoLoadingProgressView() {
-        if (mXWalkWebChromeClient != null)
-            return mXWalkWebChromeClient.getVideoLoadingProgressView();
-        return null;
-    }
-
-    @Override
-    public Bitmap getDefaultVideoPoster() {
-        return null;
-    }
-
-    @Override
     public void didFinishLoad(String url) {
     }
 
     @Override
     public void onTitleChanged(String title) {
-        if (mXWalkWebChromeClient != null && isOwnerActivityRunning()) {
-            mXWalkWebChromeClient.onReceivedTitle(mXWalkView, title);
+        if (mXWalkUIClient != null && isOwnerActivityRunning()) {
+            mXWalkUIClient.onReceivedTitle(mXWalkView, title);
         }
     }
 
@@ -408,6 +415,22 @@ class XWalkContentsClientBridge extends XWalkContentsClient
     }
 
     @Override
+    public boolean shouldOpenWithDefaultBrowser(String contentUrl) {
+        Intent intent = new Intent();
+        intent.setAction("android.intent.action.VIEW");
+        Uri url = Uri.parse(contentUrl);
+        intent.setData(url);
+        try {
+            mXWalkView.getActivity().startActivity(intent);
+        } catch (ActivityNotFoundException exception) {
+            Log.w(TAG, "Activity not found for Intent:");
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
     public boolean shouldOverrideRunFileChooser(
             final int processId, final int renderId, final int modeFlags,
             String acceptTypes, boolean capture) {
index 67f26bb..4467121 100644 (file)
@@ -394,7 +394,6 @@ public class XWalkLaunchScreenManager
         Bitmap img = BitmapFactory.decodeResource(mActivity.getResources(), imgResId);
         if (img == null) return null;
 
-        // Create the 9-piece layout as spec defined.
         RelativeLayout root = new RelativeLayout(mActivity);
         root.setLayoutParams(new RelativeLayout.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT,
@@ -402,6 +401,20 @@ public class XWalkLaunchScreenManager
         RelativeLayout.LayoutParams params;
         ImageView subImageView;
 
+        // If no border specified, display the foreground image centered horizontally and vertically.
+        if (borders.size() == 0) {
+            subImageView = new ImageView(mActivity);
+            subImageView.setImageBitmap(img);
+            params = new RelativeLayout.LayoutParams(
+                    RelativeLayout.LayoutParams.WRAP_CONTENT,
+                    RelativeLayout.LayoutParams.WRAP_CONTENT);
+            params.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
+            root.addView(subImageView, params);
+            return root;
+        }
+
+        // Create the 9-piece layout as spec defined.
+
         // Get Screen width and height.
         Display display = mActivity.getWindowManager().getDefaultDisplay();
         Point size = new Point();
index 44eeae3..56d4a22 100644 (file)
@@ -57,9 +57,32 @@ public class XWalkPreferencesInternal {
      */
     public static final String ANIMATABLE_XWALK_VIEW = "animatable-xwalk-view";
 
+    /**
+     * The key string to enable/disable javascript.
+     */
+    static final String ENABLE_JAVASCRIPT = "enable-javascript";
+
+    /**
+     * The key string to allow/disallow javascript to open
+     * window automatically.
+     */
+    static final String JAVASCRIPT_CAN_OPEN_WINDOW =
+            "javascript-can-open-window";
+
+    /**
+     * The key string to allow/disallow having universal access
+     * from file origin.
+     */
+    static final String ALLOW_UNIVERSAL_ACCESS_FROM_FILE =
+            "allow-universal-access-from-file";
+
     static {
         sPrefMap.put(REMOTE_DEBUGGING, Boolean.FALSE);
         sPrefMap.put(ANIMATABLE_XWALK_VIEW, Boolean.FALSE);
+        sPrefMap.put(ENABLE_JAVASCRIPT, Boolean.TRUE);
+        sPrefMap.put(JAVASCRIPT_CAN_OPEN_WINDOW, Boolean.TRUE);
+        sPrefMap.put(
+                ALLOW_UNIVERSAL_ACCESS_FROM_FILE, Boolean.FALSE);
     }
 
     /**
index c8f66a0..5d0a86a 100644 (file)
@@ -175,4 +175,23 @@ public class XWalkResourceClientInternal {
         AlertDialog dialog = dialogBuilder.create();
         dialog.show();
     }
+
+    /**
+     * Give the host application a chance to take over the control when a new
+     * url is about to be loaded in the current XWalkViewInternal. If XWalkClient is not
+     * provided, by default XWalkViewInternal will ask Activity Manager to choose the
+     * proper handler for the url. If XWalkClient is provided, return true
+     * means the host application handles the url, while return false means the
+     * current XWalkViewInternal handles the url.
+     *
+     * @param view The XWalkViewInternal that is initiating the callback.
+     * @param url The url to be loaded.
+     * @return True if the host application wants to leave the current XWalkViewInternal
+     *         and handle the url itself, otherwise return false.
+     *
+     * @since 2.1
+     */
+    public boolean shouldOverrideUrlLoading(XWalkViewInternal view, String url) {
+        return false;
+    }
 }
index 62f92aa..1e4c3c2 100644 (file)
@@ -41,7 +41,7 @@ public class XWalkSettings {
     private boolean mAllowFileAccessFromFileURLs = false;
     private boolean mJavaScriptCanOpenWindowsAutomatically = true;
     private int mCacheMode = WebSettings.LOAD_DEFAULT;
-    private boolean mSupportMultipleWindows = false;
+    private boolean mSupportMultipleWindows = true;
     private boolean mAppCacheEnabled = true;
     private boolean mDomStorageEnabled = true;
     private boolean mDatabaseEnabled = true;
index e0f9f05..057a36e 100644 (file)
@@ -196,6 +196,92 @@ public class XWalkUIClientInternal {
     public void onScaleChanged(XWalkViewInternal view, float oldScale, float newScale) {
     }
 
+    /**
+     * Give the host application a chance to handle the key event synchronously.
+     * e.g. menu shortcut key events need to be filtered this way. If return
+     * true, XWalkViewInternal will not handle the key event. If return false, XWalkViewInternal
+     * will always handle the key event, so none of the super in the view chain
+     * will see the key event. The default behavior returns false.
+     *
+     * @param view The XWalkViewInternal that is initiating the callback.
+     * @param event The key event.
+     * @return True if the host application wants to handle the key event
+     *         itself, otherwise return false
+     *
+     * @since 2.1
+     */
+    public boolean shouldOverrideKeyEvent(XWalkViewInternal view, KeyEvent event) {
+        return false;
+    }
+
+    /**
+     * Notify the host application that a key was not handled by the XWalkViewInternal.
+     * Except system keys, XWalkViewInternal always consumes the keys in the normal flow
+     * or if shouldOverrideKeyEvent returns true. This is called asynchronously
+     * from where the key is dispatched. It gives the host application a chance
+     * to handle the unhandled key events.
+     *
+     * @param view The XWalkViewInternal that is initiating the callback.
+     * @param event The key event.
+     *
+     * @since 2.1
+     */
+    public void onUnhandledKeyEvent(XWalkViewInternal view, KeyEvent event) {
+    }
+
+    /**
+     * Notify the host application of a change in the document title.
+     * @param view The XWalkViewInternal that initiated the callback.
+     * @param title A String containing the new title of the document.
+     * @since 2.1
+     */
+    public void onReceivedTitle(XWalkViewInternal view, String title) {
+    }
+
+
+    /**
+     * The status when a page stopped loading
+     * @since 2.1
+     */
+    public enum LoadStatusInternal {
+        /** Loading finished. */
+        FINISHED,
+        /** Loading failed. */
+        FAILED,
+        /** Loading cancelled by user. */
+        CANCELLED
+    }
+
+    /**
+     * Notify the host application that a page has started loading. This method
+     * is called once for each main frame load so a page with iframes or
+     * framesets will call onPageLoadStarted one time for the main frame. This also
+     * means that onPageLoadStarted will not be called when the contents of an
+     * embedded frame changes, i.e. clicking a link whose target is an iframe.
+     *
+     * @param view The XWalkViewInternal that is initiating the callback.
+     * @param url The url to be loaded.
+     *
+     * @since 2.1
+     */
+    public void onPageLoadStarted(XWalkViewInternal view, String url) {
+    }
+
+    /**
+     * Notify the host application that a page has stopped loading. This method
+     * is called only for main frame. When onPageLoadStopped() is called, the
+     * rendering picture may not be updated yet. To get the notification for the
+     * new Picture, use {@link XWalkViewInternal.PictureListener#onNewPicture}.
+     *
+     * @param view The XWalkViewInternal that is initiating the callback.
+     * @param url The url of the page.
+     * @param status The status when the page stopped loading.
+     *
+     * @since 2.1
+     */
+    public void onPageLoadStopped(XWalkViewInternal view, String url, LoadStatusInternal status) {
+    }
+
     private boolean onJsAlert(XWalkViewInternal view, String url, String message,
             XWalkJavascriptResultInternal result) {
         final XWalkJavascriptResultInternal fResult = result;
index 85ba8d9..9305ef4 100644 (file)
@@ -55,13 +55,6 @@ public class XWalkWebChromeClient {
     }
 
     /**
-     * Notify the host application of a change in the document title.
-     * @param view The XWalkViewInternal that initiated the callback.
-     * @param title A String containing the new title of the document.
-     */
-    public void onReceivedTitle(XWalkViewInternal view, String title) {}
-
-    /**
      * Notify the host application of a new favicon for the current page.
      * @param view The XWalkViewInternal that initiated the callback.
      * @param icon A Bitmap containing the favicon for the current page.
@@ -69,15 +62,6 @@ public class XWalkWebChromeClient {
     public void onReceivedIcon(XWalkViewInternal view, Bitmap icon) {}
 
     /**
-     * Notify the host application of the url for an apple-touch-icon.
-     * @param view The XWalkViewInternal that initiated the callback.
-     * @param url The icon url.
-     * @param precomposed True if the url is for a precomposed touch icon.
-     */
-    public void onReceivedTouchIconUrl(XWalkViewInternal view, String url,
-            boolean precomposed) {}
-
-    /**
      * A callback interface used by the host application to notify
      * the current page that its custom view has been dismissed.
      */
@@ -153,37 +137,6 @@ public class XWalkWebChromeClient {
         mCustomViewCallback = null;
     }
 
-    /**
-     * Request the host application to create a new window. If the host
-     * application chooses to honor this request, it should return true from
-     * this method, create a new XWalkViewInternal to host the window, insert it into the
-     * View system and send the supplied resultMsg message to its target with
-     * the new XWalkViewInternal as an argument. If the host application chooses not to
-     * honor the request, it should return false from this method. The default
-     * implementation of this method does nothing and hence returns false.
-     * @param view The XWalkViewInternal from which the request for a new window
-     *             originated.
-     * @param isDialog True if the new window should be a dialog, rather than
-     *                 a full-size window.
-     * @param isUserGesture True if the request was initiated by a user gesture,
-     *                      such as the user clicking a link.
-     * @param resultMsg The message to send when once a new XWalkViewInternal has been
-     *                  created. resultMsg.obj is a
-     *                  {@link XWalkViewInternal.XWalkViewTransport} object. This should be
-     *                  used to transport the new XWalkViewInternal, by calling
-     *                  {@link XWalkViewInternal.XWalkViewTransport#setXWalkView(XWalkViewInternal)
-     *                  XWalkViewInternal.XWalkViewTransport.setXWalkView(XWalkViewInternal)}.
-     * @return This method should return true if the host application will
-     *         create a new window, in which case resultMsg should be sent to
-     *         its target. Otherwise, this method should return false. Returning
-     *         false from this method but also sending resultMsg will result in
-     *         undefined behavior.
-     */
-    public boolean onCreateWindow(XWalkViewInternal view, boolean isDialog,
-            boolean isUserGesture, Message resultMsg) {
-        return false;
-    }
-
    /**
     * Tell the client that the quota has been exceeded for the Web SQL Database
     * API for a particular origin and request a new quota. The client must
@@ -312,31 +265,6 @@ public class XWalkWebChromeClient {
         return false;
     }
 
-    /**
-     * When not playing, video elements are represented by a 'poster' image. The
-     * image to use can be specified by the poster attribute of the video tag in
-     * HTML. If the attribute is absent, then a default poster will be used. This
-     * method allows the ChromeClient to provide that default image.
-     *
-     * @return Bitmap The image to use as a default poster, or null if no such image is
-     * available.
-     */
-    public Bitmap getDefaultVideoPoster() {
-        return null;
-    }
-
-    /**
-     * When the user starts to playback a video element, it may take time for enough
-     * data to be buffered before the first frames can be rendered. While this buffering
-     * is taking place, the ChromeClient can use this function to provide a View to be
-     * displayed. For example, the ChromeClient could show a spinner animation.
-     *
-     * @return View The View to be displayed whilst the video is loading.
-     */
-    public View getVideoLoadingProgressView() {
-        return null;
-    }
-
     /** Obtains a list of all visited history items, used for link coloring
      */
     public void getVisitedHistory(ValueCallback<String[]> callback) {
index 63f188a..e8b94a1 100644 (file)
@@ -13,6 +13,9 @@ import org.chromium.components.web_contents_delegate_android.WebContentsDelegate
 @JNINamespace("xwalk")
 abstract class XWalkWebContentsDelegate extends WebContentsDelegateAndroid {
     @CalledByNative
+    public abstract boolean shouldOpenWithDefaultBrowser(String contentUrl);
+
+    @CalledByNative
     public abstract boolean addNewContents(boolean isDialog, boolean isUserGesture);
 
     @CalledByNative
index 9c048d1..ea468ec 100644 (file)
@@ -4,6 +4,8 @@
 
 package org.xwalk.core.internal;
 
+import android.content.Intent;
+import android.net.Uri;
 import android.util.Log;
 import android.view.KeyEvent;
 
@@ -16,6 +18,14 @@ class XWalkWebContentsDelegateAdapter extends XWalkWebContentsDelegate {
     }
 
     @Override
+    public boolean shouldOpenWithDefaultBrowser(String contentUrl) {
+        if (mXWalkContentsClient != null) {
+            return mXWalkContentsClient.shouldOpenWithDefaultBrowser(contentUrl);
+        }
+        return false;
+    }
+
+    @Override
     public void onLoadProgressChanged(int progress) {
         if (mXWalkContentsClient != null) mXWalkContentsClient.onProgressChanged(progress);
     }
index b87a11a..68b17d3 100644 (file)
@@ -143,8 +143,7 @@ public class XWalkExtensionManager implements XWalkExtensionContext {
             try {
                 jsApiContent = getExtensionJSFileContent(
                         mContext, PresentationExtension.JS_API_PATH, true);
-                // Load PresentationExtension as an internal extension.
-                new PresentationExtension(PresentationExtension.NAME, jsApiContent, this);
+                new PresentationExtension(jsApiContent, this);
             } catch (IOException e) {
                 Log.w(TAG, "Failed to read JS API file: " + PresentationExtension.JS_API_PATH);
             }
@@ -155,9 +154,7 @@ public class XWalkExtensionManager implements XWalkExtensionContext {
             try {
                 jsApiContent = getExtensionJSFileContent(
                         mContext, LaunchScreenExtension.JS_API_PATH, true);
-                // Load LaunchscreenExtension as an internal extension.
-                new LaunchScreenExtension(LaunchScreenExtension.NAME, jsApiContent,
-                                          LaunchScreenExtension.JS_ENTRY_POINTS, this);
+                new LaunchScreenExtension(jsApiContent, this);
             } catch (IOException e) {
                 Log.w(TAG, "Failed to read JS API file: " + LaunchScreenExtension.JS_API_PATH);
             }
@@ -184,6 +181,7 @@ public class XWalkExtensionManager implements XWalkExtensionContext {
                 Log.w(TAG, "Failed to read JS API file: " + DeviceCapabilities.JS_API_PATH);
             }
         }
+
         {
             String jsApiContent = "";
             try {
index d299969..f7a7d68 100644 (file)
@@ -25,10 +25,10 @@ import org.xwalk.core.internal.extension.XWalkExtension;
 import org.xwalk.core.internal.extension.XWalkExtensionContext;
 
 public class Contacts extends XWalkExtension {
-    public static final String NAME = "xwalk.experimental.contacts";
     public static final String JS_API_PATH = "jsapi/contacts_api.js";
 
     private static final String TAG = "Contacts";
+    private static final String NAME = "xwalk.experimental.contacts";
 
     private final ContactEventListener mObserver;
     private final ContentResolver mResolver;
index 7c2193e..152ad81 100644 (file)
@@ -13,10 +13,10 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 public class DeviceCapabilities extends XWalkExtension {
-    public static final String NAME = "xwalk.experimental.system";
     public static final String JS_API_PATH = "jsapi/device_capabilities_api.js";
 
     private static final String TAG = "DeviceCapabilities";
+    private static final String NAME = "xwalk.experimental.system";
 
     private DeviceCapabilitiesCPU mCPU;
     private DeviceCapabilitiesCodecs mCodecs;
index 421cc01..b862f92 100644 (file)
@@ -16,16 +16,17 @@ import org.xwalk.core.internal.extension.XWalkExtensionContext;
  */
 public class LaunchScreenExtension extends XWalkExtension {
     public final static String JS_API_PATH = "jsapi/launch_screen_api.js";
-    public final static String NAME = "xwalk.launchscreen";
-    public final static String[] JS_ENTRY_POINTS = {
+
+    private final static String NAME = "xwalk.launchscreen";
+    private final static String[] JS_ENTRY_POINTS = {
         "window.screen.show"
     };
 
     // Command messages:
     private final static String CMD_HIDE_LAUNCH_SCREEN = "hideLaunchScreen";
 
-    public LaunchScreenExtension(String name, String jsApi, String[] entryPoints, XWalkExtensionContext context) {
-        super(name, jsApi, entryPoints, context);
+    public LaunchScreenExtension(String jsApi, XWalkExtensionContext context) {
+        super(NAME, jsApi, JS_ENTRY_POINTS, context);
     }
 
     @Override
index b9abad0..9b9dbaa 100644 (file)
@@ -11,7 +11,6 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.database.Cursor;  
 import android.net.Uri; 
-import android.util.Log; 
 
 import java.util.Date;
 import java.util.HashMap;
@@ -30,8 +29,10 @@ interface Command {
 }
 
 public class Messaging extends XWalkExtension {
-    public static final String NAME = "xwalk.experimental.messaging";
     public static final String JS_API_PATH = "jsapi/messaging_api.js";
+
+    private static final String NAME = "xwalk.experimental.messaging";
+
     private static HashMap<String, Command> sMethodMap = new HashMap<String, Command>();
 
     private MessagingSmsManager mSmsManager;
index 2bef43b..e958fd6 100644 (file)
@@ -29,9 +29,10 @@ import org.xwalk.core.internal.extension.XWalkExtensionContext;
  * A XWalk extension for Presentation API implementation on Android.
  */
 public class PresentationExtension extends XWalkExtension {
-    public final static String TAG = "PresentationExtension";
     public final static String JS_API_PATH = "jsapi/presentation_api.js";
-    public final static String NAME = "navigator.presentation";
+
+    private final static String NAME = "navigator.presentation";
+    private final static String TAG = "PresentationExtension";
 
     // Tags:
     private final static String TAG_BASE_URL = "baseUrl";
@@ -108,8 +109,8 @@ public class PresentationExtension extends XWalkExtension {
         }
     };
 
-    public PresentationExtension(String name, String jsApi, XWalkExtensionContext context) {
-        super(name, jsApi, context);
+    public PresentationExtension(String jsApi, XWalkExtensionContext context) {
+        super(NAME, jsApi, context);
 
         mDisplayManager = XWalkDisplayManager.getInstance(context.getContext());
         Display[] displays = mDisplayManager.getPresentationDisplays();
index dae6ad3..50c4e79 100644 (file)
@@ -35,15 +35,6 @@ public class XWalkPresentationContent {
     public void load(final String url) {
         if (mContentView == null) {
             mContentView = new XWalkViewInternal(mContext, mActivity);
-            final XWalkClient xWalkClient = new XWalkClient(mContentView) {
-                @Override
-                public void onPageFinished(XWalkViewInternal view, String url) {
-                    mPresentationId = mContentView.getContentID();
-                    onContentLoaded();
-                }
-            };
-            mContentView.setXWalkClient(xWalkClient);
-
             final XWalkUIClientInternal xWalkUIClient = new XWalkUIClientInternal(mContentView) {
                 @Override
                 public void onJavascriptCloseWindow(XWalkViewInternal view) {
@@ -52,6 +43,15 @@ public class XWalkPresentationContent {
                     mPresentationId = INVALID_PRESENTATION_ID;
                     onContentClosed();
                 }
+
+                @Override
+                public void onPageLoadStopped(
+                        XWalkViewInternal view, String url, LoadStatusInternal status) {
+                    if (status == LoadStatusInternal.FINISHED) {
+                        mPresentationId = mContentView.getContentID();
+                        onContentLoaded();
+                    }
+                }
             };
             mContentView.setUIClient(xWalkUIClient);
         }
diff --git a/src/xwalk/runtime/android/core_internal_shell/AndroidManifest.xml b/src/xwalk/runtime/android/core_internal_shell/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..db6690a
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--  Copyright (c) 2014 Intel Corporation. All rights reserved.
+
+  Use of this source code is governed by a BSD-style license that can be
+  found in the LICENSE file.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.xwalk.core.internal.xwview.shell">
+
+    <application android:name="android.app.Application"
+        android:label="XWalkCoreInternalShell" android:hardwareAccelerated="true">
+        <activity android:name="org.xwalk.core.internal.xwview.shell.XWalkViewInternalShellActivity"
+            android:theme="@android:style/Theme.Holo.Light"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
+            android:label="XWalkCoreInternalShell">
+          <intent-filter>
+            <action android:name="android.intent.action.MAIN" />
+            <category android:name="android.intent.category.LAUNCHER" />
+          </intent-filter>
+        </activity>
+        <activity android:name="org.xwalk.core.internal.xwview.test.XWalkViewInternalTestRunnerActivity"
+            android:label="XWalkViewInternalTestRunnerActivity">
+          <intent-filter>
+            <action android:name="android.intent.action.MAIN" />
+            <category android:name="android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" />
+          </intent-filter>
+        </activity>
+    </application>
+
+  <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+  <uses-permission android:name="android.permission.CAMERA"/>
+  <uses-permission android:name="android.permission.INTERNET"/>
+  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
+  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
+  <uses-permission android:name="android.permission.WAKE_LOCK"/>
+  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+</manifest>
diff --git a/src/xwalk/runtime/android/core_internal_shell/res/drawable/progress.xml b/src/xwalk/runtime/android/core_internal_shell/res/drawable/progress.xml
new file mode 100644 (file)
index 0000000..93322b9
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (c) 2012 The Chromium Authors. All rights reserved.
+
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
+ -->
+
+<clip xmlns:android="http://schemas.android.com/apk/res/android">
+    <shape>
+        <solid android:color="@android:color/holo_blue_light" />
+    </shape>
+</clip>
diff --git a/src/xwalk/runtime/android/core_internal_shell/res/drawable/resource_icon.png b/src/xwalk/runtime/android/core_internal_shell/res/drawable/resource_icon.png
new file mode 100644 (file)
index 0000000..f381f86
Binary files /dev/null and b/src/xwalk/runtime/android/core_internal_shell/res/drawable/resource_icon.png differ
diff --git a/src/xwalk/runtime/android/core_internal_shell/res/layout/testshell_activity.xml b/src/xwalk/runtime/android/core_internal_shell/res/layout/testshell_activity.xml
new file mode 100644 (file)
index 0000000..97fd5d3
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Copyright (c) 2013-2014 Intel Corporation. All rights reserved.
+
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
+ -->
+
+<LinearLayout android:id="@+id/testshell_activity"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout android:id="@+id/toolbar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:background="@drawable/progress">
+        <ImageButton android:id="@+id/stop"
+            android:layout_width="38dp"
+            android:layout_height="38dp"
+            android:src="@android:drawable/ic_menu_close_clear_cancel"
+            android:scaleType="center" />
+        <EditText android:id="@+id/url"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="bottom"
+            android:textSize="18sp"
+            android:autoText="true"
+            android:capitalize="sentences"
+            android:singleLine="true"
+            android:selectAllOnFocus="true"
+            android:inputType="textUri"
+            android:imeOptions="actionGo" />
+        <ImageButton android:id="@+id/prev"
+            android:layout_width="38dp"
+            android:layout_height="38dp"
+            android:src="@android:drawable/ic_media_previous"
+            android:scaleType="center" />
+        <ImageButton android:id="@+id/next"
+            android:layout_width="38dp"
+            android:layout_height="38dp"
+            android:src="@android:drawable/ic_media_next"
+            android:scaleType="center" />
+         <ImageButton android:id="@+id/reload"
+            android:layout_width="38dp"
+            android:layout_height="38dp"
+            android:src="@android:drawable/ic_menu_rotate"
+            android:scaleType="center" />
+    </LinearLayout>
+    <org.xwalk.core.internal.XWalkViewInternal android:id="@+id/xwalkview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+    </org.xwalk.core.internal.XWalkViewInternal>
+</LinearLayout>
diff --git a/src/xwalk/runtime/android/core_internal_shell/res/raw/resource_icon.png b/src/xwalk/runtime/android/core_internal_shell/res/raw/resource_icon.png
new file mode 100644 (file)
index 0000000..f381f86
Binary files /dev/null and b/src/xwalk/runtime/android/core_internal_shell/res/raw/resource_icon.png differ
diff --git a/src/xwalk/runtime/android/core_internal_shell/res/values/strings.xml b/src/xwalk/runtime/android/core_internal_shell/res/values/strings.xml
new file mode 100644 (file)
index 0000000..d110b8c
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+Copyright (c) 2013-2014 Intel Corporation. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<resources>
+    <string name="test_string">Hello, World!</string>
+</resources>
diff --git a/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/shell/XWalkViewInternalShellActivity.java b/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/shell/XWalkViewInternalShellActivity.java
new file mode 100644 (file)
index 0000000..04c8ba1
--- /dev/null
@@ -0,0 +1,240 @@
+// Copyright (c) 2013-2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.shell;
+
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Intent;
+import android.content.Context;
+import android.content.IntentFilter;
+import android.graphics.drawable.ClipDrawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.View.OnFocusChangeListener;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
+
+import org.chromium.base.BaseSwitches;
+import org.chromium.base.CommandLine;
+import org.xwalk.core.internal.XWalkNavigationHistoryInternal;
+import org.xwalk.core.internal.XWalkPreferencesInternal;
+import org.xwalk.core.internal.XWalkResourceClientInternal;
+import org.xwalk.core.internal.XWalkViewInternal;
+
+public class XWalkViewInternalShellActivity extends Activity {
+    public static final String COMMAND_LINE_FILE = "/data/local/tmp/xwview-shell-command-line";
+    private static final String TAG = XWalkViewInternalShellActivity.class.getName();
+    public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs";
+    private static final long COMPLETED_PROGRESS_TIMEOUT_MS = 200;
+    private static final String ACTION_LAUNCH_URL = "org.xwalk.core.internal.xwview.shell.launch";
+
+    private LinearLayout mToolbar;
+    private EditText mUrlTextView;
+    private ImageButton mPrevButton;
+    private ImageButton mNextButton;
+    private ImageButton mStopButton;
+    private ImageButton mReloadButton;
+    private ClipDrawable mProgressDrawable;
+    private XWalkViewInternal mView;
+    private BroadcastReceiver mReceiver;
+
+    private Runnable mClearProgressRunnable = new Runnable() {
+        @Override
+        public void run() {
+            mProgressDrawable.setLevel(0);
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (!CommandLine.isInitialized()) {
+            CommandLine.initFromFile(COMMAND_LINE_FILE);
+            String[] commandLineParams = getCommandLineParamsFromIntent(getIntent());
+            if (commandLineParams != null) {
+                CommandLine.getInstance().appendSwitchesAndArguments(commandLineParams);
+            }
+        }
+
+        waitForDebuggerIfNeeded();
+
+        setContentView(R.layout.testshell_activity);
+        mView = (XWalkViewInternal) findViewById(R.id.xwalkview);
+
+        XWalkPreferencesInternal.setValue(XWalkPreferencesInternal.REMOTE_DEBUGGING, true);
+
+        mToolbar = (LinearLayout) findViewById(R.id.toolbar);
+        mProgressDrawable = (ClipDrawable) findViewById(R.id.toolbar).getBackground();
+        mProgressDrawable.setLevel(0);
+
+        initializeUrlField();
+        initializeButtons();
+        initializeXWalkViewInternalClients();
+
+        IntentFilter intentFilter = new IntentFilter(ACTION_LAUNCH_URL);
+        mReceiver = new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                Bundle bundle = intent.getExtras();
+                if (bundle == null) return;
+
+                if (bundle.containsKey("url")) {
+                    String extra = bundle.getString("url");
+                    if (mView != null) mView.load(sanitizeUrl(extra), null);
+                }
+            }
+        };
+        registerReceiver(mReceiver, intentFilter);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(mReceiver);
+        mView.onDestroy();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (mView != null) mView.onActivityResult(requestCode, resultCode, data);
+    }
+
+    @Override
+    public void onNewIntent(Intent intent) {
+        if (mView != null) {
+            if (!mView.onNewIntent(intent)) super.onNewIntent(intent);
+        }
+    }
+
+    private void waitForDebuggerIfNeeded() {
+        if (CommandLine.getInstance().hasSwitch(BaseSwitches.WAIT_FOR_JAVA_DEBUGGER)) {
+            Log.e(TAG, "Waiting for Java debugger to connect...");
+            android.os.Debug.waitForDebugger();
+            Log.e(TAG, "Java debugger connected. Resuming execution.");
+        }
+    }
+
+    private static String[] getCommandLineParamsFromIntent(Intent intent) {
+        return intent != null ? intent.getStringArrayExtra(COMMAND_LINE_ARGS_KEY) : null;
+    }
+
+    private static String sanitizeUrl(String url) {
+        if (url == null) return url;
+        if (url.startsWith("www.") || url.indexOf(":") == -1) url = "http://" + url;
+        return url;
+    }
+
+    private void initializeUrlField() {
+        mUrlTextView = (EditText) findViewById(R.id.url);
+        mUrlTextView.setText("");
+        mUrlTextView.setOnEditorActionListener(new OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if ((actionId != EditorInfo.IME_ACTION_GO) && (event == null ||
+                        event.getKeyCode() != KeyEvent.KEYCODE_ENTER ||
+                        event.getAction() != KeyEvent.ACTION_DOWN)) {
+                    return false;
+                }
+
+                if (mView == null) return true;
+                mView.load(sanitizeUrl(mUrlTextView.getText().toString()), null);
+                mUrlTextView.clearFocus();
+                setKeyboardVisibilityForUrl(false);
+                return true;
+            }
+        });
+        mUrlTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
+            @Override
+            public void onFocusChange(View v, boolean hasFocus) {
+                setKeyboardVisibilityForUrl(hasFocus);
+                mNextButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
+                mPrevButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
+                mStopButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
+                mReloadButton.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
+                if (!hasFocus) {
+                    if (mView == null) return;
+                    mUrlTextView.setText(mView.getUrl());
+                }
+            }
+        });
+    }
+
+    private void initializeButtons() {
+        mPrevButton = (ImageButton) findViewById(R.id.prev);
+        mPrevButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mView != null &&
+                        mView.getNavigationHistory().canGoBack()) {
+                    mView.getNavigationHistory().navigate(
+                            XWalkNavigationHistoryInternal.DirectionInternal.BACKWARD, 1);
+                }
+            }
+        });
+
+        mNextButton = (ImageButton) findViewById(R.id.next);
+        mNextButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mView != null &&
+                        mView.getNavigationHistory().canGoForward()) {
+                    mView.getNavigationHistory().navigate(
+                            XWalkNavigationHistoryInternal.DirectionInternal.FORWARD, 1);
+                }
+            }
+        });
+
+        mStopButton = (ImageButton) findViewById(R.id.stop);
+        mStopButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mView != null) mView.stopLoading();
+            }
+        });
+
+        mReloadButton = (ImageButton) findViewById(R.id.reload);
+        mReloadButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (mView != null) mView.reload(XWalkViewInternal.RELOAD_NORMAL);
+            }
+        });
+    }
+
+    private void initializeXWalkViewInternalClients() {
+        mView.setResourceClient(new XWalkResourceClientInternal(mView) {
+            @Override
+            public void onProgressChanged(XWalkViewInternal view, int newProgress) {
+                if (view != mView) return;
+                mToolbar.removeCallbacks(mClearProgressRunnable);
+
+                mProgressDrawable.setLevel((int) (100.0 * newProgress));
+                if (newProgress == 100) {
+                    mToolbar.postDelayed(mClearProgressRunnable, COMPLETED_PROGRESS_TIMEOUT_MS);
+                }
+                mUrlTextView.setText(mView.getUrl());
+            }
+        });
+    }
+
+    private void setKeyboardVisibilityForUrl(boolean visible) {
+        InputMethodManager imm = (InputMethodManager) getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        if (visible) {
+            imm.showSoftInput(mUrlTextView, InputMethodManager.SHOW_IMPLICIT);
+        } else {
+            imm.hideSoftInputFromWindow(mUrlTextView.getWindowToken(), 0);
+        }
+    }
+}
diff --git a/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/TestContentProvider.java b/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/TestContentProvider.java
new file mode 100644 (file)
index 0000000..7572dcb
--- /dev/null
@@ -0,0 +1,229 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * Content provider for testing content URLs.
+ */
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.database.AbstractCursor;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.ParcelFileDescriptor;
+import android.util.Log;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+// Note: if you move this class, make sure you have also updated AndroidManifest.xml
+public class TestContentProvider extends ContentProvider {
+    private static final String AUTHORITY =
+            "org.xwalk.core.internal.xwview.test.TestContentProvider";
+    private static final String CONTENT_SCHEME = "content://";
+    private static final String CONTENT_TYPE = "image/png";
+    private static final String GET_RESOURCE_REQUEST_COUNT = "get_resource_request_count";
+    private static final String RESET_RESOURCE_REQUEST_COUNT = "reset_resource_request_count";
+    private static final String TAG = "TestContentProvider";
+    private enum ColumnIndex {
+        RESOURCE_REQUEST_COUNT_COLUMN,
+    };
+    private final Map<String, Integer> mResourceRequestCount;
+
+    public static String createContentUrl(String target) {
+        return CONTENT_SCHEME + AUTHORITY + "/" + target;
+    }
+
+    private static Uri createRequestUri(final String target, String resource) {
+        return Uri.parse(createContentUrl(target) + "?" + resource);
+    }
+
+    public static int getResourceRequestCount(Context context, String resource) {
+        Uri uri = createRequestUri(GET_RESOURCE_REQUEST_COUNT, resource);
+        final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
+        try {
+            cursor.moveToFirst();
+            return cursor.getInt(ColumnIndex.RESOURCE_REQUEST_COUNT_COLUMN.ordinal());
+        } finally {
+            cursor.close();
+        }
+    }
+
+    public static void resetResourceRequestCount(Context context, String resource) {
+        Uri uri = createRequestUri(RESET_RESOURCE_REQUEST_COUNT, resource);
+        // A null cursor is returned for this request.
+        context.getContentResolver().query(uri, null, null, null, null);
+    }
+
+    public TestContentProvider() {
+        super();
+        mResourceRequestCount = new HashMap<String, Integer>();
+    }
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    @Override
+    public AssetFileDescriptor openAssetFile(Uri uri, String mode) {
+        String resource = uri.getLastPathSegment();
+        if (mResourceRequestCount.containsKey(resource)) {
+            mResourceRequestCount.put(resource, mResourceRequestCount.get(resource) + 1);
+        } else {
+            mResourceRequestCount.put(resource, 1);
+        }
+        return createImage();
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        return CONTENT_TYPE;
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String where,
+                      String[] whereArgs) {
+        return 0;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        return 0;
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        return null;
+    }
+
+    /**
+     * Cursor object for retrieving resource request counters.
+     */
+    private static class ProviderStateCursor extends AbstractCursor {
+        private final int mResourceRequestCount;
+
+        public ProviderStateCursor(int resourceRequestCount) {
+            mResourceRequestCount = resourceRequestCount;
+        }
+
+        @Override
+        public boolean isNull(int columnIndex) {
+            return columnIndex != ColumnIndex.RESOURCE_REQUEST_COUNT_COLUMN.ordinal();
+        }
+
+        @Override
+        public int getCount() {
+            return 1;
+        }
+
+        @Override
+        public int getType(int columnIndex) {
+            if (columnIndex == ColumnIndex.RESOURCE_REQUEST_COUNT_COLUMN.ordinal()) {
+                return Cursor.FIELD_TYPE_INTEGER;
+            }
+            return Cursor.FIELD_TYPE_NULL;
+        }
+
+        private void unsupported() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public double getDouble(int columnIndex) {
+            unsupported();
+            return 0.0;
+        }
+
+        @Override
+        public float getFloat(int columnIndex) {
+            unsupported();
+            return 0.0f;
+        }
+
+        @Override
+        public int getInt(int columnIndex) {
+            if (columnIndex == ColumnIndex.RESOURCE_REQUEST_COUNT_COLUMN.ordinal()) {
+                return mResourceRequestCount;
+            }
+            return -1;
+        }
+
+        @Override
+        public short getShort(int columnIndex) {
+            unsupported();
+            return 0;
+        }
+
+        @Override
+        public long getLong(int columnIndex) {
+            return getInt(columnIndex);
+        }
+
+        @Override
+        public String getString(int columnIndex) {
+            unsupported();
+            return null;
+        }
+
+        @Override
+        public String[] getColumnNames() {
+            return new String[] { GET_RESOURCE_REQUEST_COUNT };
+        }
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection,
+                        String[] selectionArgs, String sortOrder) {
+        String action = uri.getLastPathSegment();
+        String resource = uri.getQuery();
+        if (GET_RESOURCE_REQUEST_COUNT.equals(action)) {
+            return new ProviderStateCursor(
+                    mResourceRequestCount.containsKey(resource) ?
+                            mResourceRequestCount.get(resource) : 0);
+        } else if (RESET_RESOURCE_REQUEST_COUNT.equals(action)) {
+            mResourceRequestCount.put(resource, 0);
+        }
+        return null;
+    }
+
+    // 1x1 black dot png image.
+    private static final byte[] IMAGE = {
+        (byte)0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00,
+        0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+        0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x7e, (byte)0x9b, 0x55, 0x00,
+        0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, (byte)0xae, (byte)0xce,
+        0x1c, (byte)0xe9, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x44, 0x41, 0x54, 0x08,
+        0x1d, 0x01, 0x02, 0x00, (byte)0xfd, (byte)0xff, 0x00, 0x00, 0x00, 0x02,
+        0x00, 0x01, (byte)0xcd, (byte)0xe3, (byte)0xd1, 0x2b, 0x00, 0x00, 0x00,
+        0x00, 0x49, 0x45, 0x4e, 0x44, (byte)0xae, 0x42, 0x60, (byte)0x82
+    };
+
+    private static AssetFileDescriptor createImage() {
+        ParcelFileDescriptor[] pfds = null;
+        FileOutputStream fileOut = null;
+        try {
+            try {
+                pfds = ParcelFileDescriptor.createPipe();
+                fileOut = new FileOutputStream(pfds[1].getFileDescriptor());
+                fileOut.write(IMAGE);
+                fileOut.flush();
+                return new AssetFileDescriptor(pfds[0], 0, -1);
+            } finally {
+                if (fileOut != null) fileOut.close();
+                if (pfds != null && pfds[1] != null) pfds[1].close();
+            }
+        } catch (IOException e) {
+            Log.e(TAG, e.getMessage(), e);
+        }
+        return null;
+    }
+}
diff --git a/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestRunnerActivity.java b/src/xwalk/runtime/android/core_internal_shell/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestRunnerActivity.java
new file mode 100644 (file)
index 0000000..2539fd7
--- /dev/null
@@ -0,0 +1,58 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup.LayoutParams;
+import android.view.WindowManager;
+import android.widget.LinearLayout;
+
+/*
+ * This is a lightweight activity for tests that only require XWalk functionality.
+ */
+public class XWalkViewInternalTestRunnerActivity extends Activity {
+
+    private LinearLayout mLinearLayout;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        boolean hardwareAccelerated = true;
+
+        if (hardwareAccelerated) {
+            getWindow().setFlags(
+                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
+                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
+        }
+
+        mLinearLayout = new LinearLayout(this);
+        mLinearLayout.setOrientation(LinearLayout.VERTICAL);
+        mLinearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+        mLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
+                LayoutParams.WRAP_CONTENT));
+
+        setContentView(mLinearLayout);
+    }
+
+    /**
+     * Adds a view to the main linear layout.
+     */
+    public void addView(View view) {
+        view.setLayoutParams(new LinearLayout.LayoutParams(
+                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1f));
+        mLinearLayout.addView(view);
+    }
+
+    /**
+     * Clears the main linear layout.
+     */
+    public void removeAllViews() {
+        mLinearLayout.removeAllViews();
+    }
+}
index fd48538..3224a03 100644 (file)
@@ -39,12 +39,11 @@ import org.chromium.content.browser.TracingControllerAndroid;
 import org.xwalk.core.XWalkNavigationHistory;
 import org.xwalk.core.XWalkPreferences;
 import org.xwalk.core.XWalkResourceClient;
+import org.xwalk.core.XWalkUIClient;
 import org.xwalk.core.XWalkView;
-import org.xwalk.core.internal.XWalkViewInternal;
-import org.xwalk.core.internal.XWalkWebChromeClient;
 
 public class XWalkViewShellActivity extends FragmentActivity
-        implements ActionBar.TabListener, XWalkViewSectionFragment.OnXWalkViewCreatedListener{
+        implements ActionBar.TabListener, XWalkViewSectionFragment.OnXWalkViewCreatedListener {
     public static final String COMMAND_LINE_FILE = "/data/local/tmp/xwview-shell-command-line";
     private static final String TAG = XWalkViewShellActivity.class.getName();
     public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs";
@@ -313,11 +312,10 @@ public class XWalkViewShellActivity extends FragmentActivity
             }
         });
 
-        // TODO: core shell shouldn't use internal APIs.
-        xwalkView.setXWalkWebChromeClient(new XWalkWebChromeClient(xwalkView) {
+        xwalkView.setUIClient(new XWalkUIClient(xwalkView) {
             @Override
-            public void onReceivedTitle(XWalkViewInternal view, String title) {
-                mSectionsPagerAdapter.setPageTitle((XWalkView)view, title);
+            public void onReceivedTitle(XWalkView view, String title) {
+                mSectionsPagerAdapter.setPageTitle(view, title);
             }
         });
     }
index 806769c..7661772 100644 (file)
@@ -107,8 +107,7 @@ class XWalkCoreProviderImpl implements XWalkRuntimeViewProvider {
     public void setCallbackForTest(Object callback) {
         XWalkRuntimeTestHelper testHelper = new XWalkRuntimeTestHelper(mContext, mXWalkView);
         testHelper.setCallbackForTest(callback);
-        mXWalkView.setXWalkClient(testHelper.getClient());
-        mXWalkView.setXWalkWebChromeClient(testHelper.getWebChromeClient());
+        mXWalkView.setUIClient(testHelper.getUIClient());
         mXWalkView.setResourceClient(testHelper.getResourceClient());
     }
 
index 74ce4c3..d770b37 100644 (file)
@@ -12,10 +12,8 @@ import android.webkit.ValueCallback;
 import java.lang.reflect.Method;
 
 import org.xwalk.core.XWalkResourceClient;
+import org.xwalk.core.XWalkUIClient;
 import org.xwalk.core.XWalkView;
-import org.xwalk.core.internal.XWalkClient;
-import org.xwalk.core.internal.XWalkViewInternal;
-import org.xwalk.core.internal.XWalkWebChromeClient;
 
 class XWalkRuntimeTestHelper {
 
@@ -42,14 +40,14 @@ class XWalkRuntimeTestHelper {
         }
     }
 
-    class TestXWalkClient extends XWalkClient {
-        TestXWalkClient(Context context, XWalkView view) {
+    class TestXWalkUIClient extends XWalkUIClient {
+        TestXWalkUIClient(Context context, XWalkView view) {
             super(view);
         }
 
         @Override
-        public void onPageStarted(XWalkViewInternal view, String url) {
-            super.onPageStarted(view, url);
+        public void onPageLoadStarted(XWalkView view, String url) {
+            super.onPageLoadStarted(view, url);
             if (mCallbackForTest != null) {
                 try {
                     Class<?> objectClass = mCallbackForTest.getClass();
@@ -62,27 +60,21 @@ class XWalkRuntimeTestHelper {
         }
 
         @Override
-        public void onPageFinished(XWalkViewInternal view, String url) {
-            super.onPageFinished(view, url);
+        public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
+            super.onPageLoadStopped(view, url, status);
             if (mCallbackForTest != null) {
                 try {
                     Class<?> objectClass = mCallbackForTest.getClass();
-                    Method onPageStarted = objectClass.getMethod("onPageFinished", String.class);
-                    onPageStarted.invoke(mCallbackForTest, url);
+                    Method onPageFinished = objectClass.getMethod("onPageFinished", String.class);
+                    onPageFinished.invoke(mCallbackForTest, url);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
         }
-    }
-
-    class TestXWalkWebChromeClient extends XWalkWebChromeClient {
-        TestXWalkWebChromeClient(Context context, XWalkView view) {
-            super(view);
-        }
 
         @Override
-        public void onReceivedTitle(XWalkViewInternal view, String title) {
+        public void onReceivedTitle(XWalkView view, String title) {
             super.onReceivedTitle(view, title);
             if (mCallbackForTest != null) {
                 try {
@@ -97,13 +89,11 @@ class XWalkRuntimeTestHelper {
     }
 
     private Object mCallbackForTest;
-    private TestXWalkClient mClient;
-    private TestXWalkWebChromeClient mWebChromeClient;
+    private TestXWalkUIClient mUIClient;
     private TestXWalkResourceClient mResourceClient;
 
     XWalkRuntimeTestHelper(Context context, XWalkView view) {
-        mClient = new TestXWalkClient(context, view);
-        mWebChromeClient = new TestXWalkWebChromeClient(context, view);
+        mUIClient = new TestXWalkUIClient(context, view);
         mResourceClient = new TestXWalkResourceClient(context, view);
     }
 
@@ -111,12 +101,8 @@ class XWalkRuntimeTestHelper {
         mCallbackForTest = callback;
     }
 
-    XWalkClient getClient() {
-        return mClient;
-    }
-
-    XWalkWebChromeClient getWebChromeClient() {
-        return mWebChromeClient;
+    XWalkUIClient getUIClient() {
+        return mUIClient;
     }
 
     XWalkResourceClient getResourceClient() {
index df36c68..d084554 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "xwalk/runtime/browser/android/xwalk_web_contents_delegate.h"
 
+#include <string>
 #include <vector>
 
 #include "base/android/jni_string.h"
@@ -180,6 +181,29 @@ bool XWalkWebContentsDelegate::IsFullscreenForTabOrPending(
   return Java_XWalkWebContentsDelegate_isFullscreen(env, obj.obj());
 }
 
+bool XWalkWebContentsDelegate::ShouldCreateWebContents(
+    content::WebContents* web_contents,
+    int route_id,
+    WindowContainerType window_container_type,
+    const base::string16& frame_name,
+    const GURL& target_url,
+    const std::string& partition_id,
+    content::SessionStorageNamespace* session_storage_namespace) {
+  JNIEnv* env = AttachCurrentThread();
+  ScopedJavaLocalRef<jobject> java_delegate = GetJavaDelegate(env);
+
+  if (java_delegate.obj()) {
+    ScopedJavaLocalRef<jstring> url_buffer =
+        base::android::ConvertUTF8ToJavaString(env, target_url.spec());
+    return Java_XWalkWebContentsDelegate_shouldOpenWithDefaultBrowser(env,
+        java_delegate.obj(), url_buffer.obj()) == JNI_FALSE;
+  }
+
+  // As multiple windows mode has not been implemented yet, return false
+  // to make sure new WebContents won't be created.
+  return false;
+}
+
 bool RegisterXWalkWebContentsDelegate(JNIEnv* env) {
   return RegisterNativesImpl(env);
 }
index c6198d3..ba45775 100644 (file)
@@ -6,6 +6,7 @@
 #define XWALK_RUNTIME_BROWSER_ANDROID_XWALK_WEB_CONTENTS_DELEGATE_H_
 
 #include <jni.h>
+#include <string>
 
 #include "components/web_contents_delegate_android/web_contents_delegate_android.h"
 
@@ -50,6 +51,15 @@ class XWalkWebContentsDelegate
   virtual bool IsFullscreenForTabOrPending(
       const content::WebContents* web_contents) const OVERRIDE;
 
+  virtual bool ShouldCreateWebContents(
+      content::WebContents* web_contents,
+      int route_id,
+      WindowContainerType window_container_type,
+      const base::string16& frame_name,
+      const GURL& target_url,
+      const std::string& partition_id,
+      content::SessionStorageNamespace* session_storage_namespace) OVERRIDE;
+
  private:
   scoped_ptr<content::JavaScriptDialogManager> javascript_dialog_manager_;
   DISALLOW_COPY_AND_ASSIGN(XWalkWebContentsDelegate);
index bdf1081..2695a5e 100644 (file)
@@ -9,6 +9,7 @@
 #include "base/file_util.h"
 #include "base/strings/string_util.h"
 #include "ui/gfx/image/image_skia.h"
+#include "ui/gfx/image/image_util.h"
 #include "ui/gfx/size.h"
 
 #if defined(OS_WIN)
@@ -20,6 +21,8 @@ namespace xwalk_utils {
 gfx::Image LoadImageFromFilePath(const base::FilePath& filename) {
   const base::FilePath::StringType kPNGFormat(FILE_PATH_LITERAL(".png"));
   const base::FilePath::StringType kICOFormat(FILE_PATH_LITERAL(".ico"));
+  const base::FilePath::StringType kJPGFormat(FILE_PATH_LITERAL(".jpg"));
+  const base::FilePath::StringType kJPEGFormat(FILE_PATH_LITERAL(".jpeg"));
 
   if (EndsWith(filename.value(), kPNGFormat, false)) {
     std::string contents;
@@ -29,6 +32,15 @@ gfx::Image LoadImageFromFilePath(const base::FilePath& filename) {
             contents.size());
   }
 
+  if (EndsWith(filename.value(), kJPGFormat, false) ||
+      EndsWith(filename.value(), kJPEGFormat, false)) {
+    std::string contents;
+    base::ReadFileToString(filename, &contents);
+    return gfx::ImageFrom1xJPEGEncodedData(
+        reinterpret_cast<const unsigned char*>(contents.data()),
+        contents.size());
+  }
+
   if (EndsWith(filename.value(), kICOFormat, false)) {
 #if defined(OS_WIN)
     HICON icon = static_cast<HICON>(LoadImage(NULL,
index 0280df5..1e58c42 100644 (file)
@@ -25,7 +25,7 @@ void OpenExternal(const GURL& url) {
     if (base::PathExists(base::FilePath(kWebBrowserPath)))
       argv.push_back(kWebBrowserPath);
     else
-      argv.push_back("xwalk");
+      argv.push_back("xwalk-launcher");
     argv.push_back(url.spec());
     base::ProcessHandle handle;
 
index e41e742..4fb3641 100644 (file)
 
 namespace xwalk {
 
+// FIXME: Do we need to watch system locale change
+// now (we do not keep the cache of the installed
+// apps anymore)? This class should probably be
+// removed.
 class TizenLocaleListener : public base::SimpleThread {
 public:
-    TizenLocaleListener();
-    virtual ~TizenLocaleListener();
-
-    virtual void Run() OVERRIDE;
-
-    // Get the latest application locale from system.
-    // locale is a langtag defined in [BCP47]
-    std::string GetLocale() const;
-    // Set the locale and apply this locale to all applications.
-    // Locale is a langtag defined in [BCP47].
-    // This function will called by TizenLocaleListener when locale is changed.
-    void SetLocale(const std::string& locale);
-
 private:
-    GMainLoop*  main_loop_;
-    // The locale is a langtag defined in [BCP47]
-    std::string locale_;
+ public:
+  TizenLocaleListener();
+  virtual ~TizenLocaleListener();
+
+  virtual void Run() OVERRIDE;
+
+  // Get the latest application locale from system.
+  // locale is a langtag defined in [BCP47]
+  std::string GetLocale() const;
+  // Set the locale and apply this locale to all applications.
+  // Locale is a langtag defined in [BCP47].
+  // This function will called by TizenLocaleListener when locale is changed.
+  void SetLocale(const std::string& locale);
+
+ private:
+  GMainLoop*  main_loop_;
+  // The locale is a langtag defined in [BCP47]
+  std::string locale_;
 };
 
 }  // namespace xwalk
index 65004e6..1ef0b44 100644 (file)
@@ -6,6 +6,7 @@
 #define XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_H_
 
 #include "base/compiler_specific.h"
+#include "base/files/file_path.h"
 #include "base/strings/string16.h"
 #include "ui/base/ui_base_types.h"
 #include "ui/gfx/image/image.h"
@@ -53,6 +54,9 @@ class NativeAppWindow {
     int32 net_wm_pid;
     // The parent view which this window belongs to. NULL if it is root window.
     gfx::NativeView parent;
+    // The absolute path of splash screen.
+    // Empty if splash screen is not to be shown.
+    base::FilePath splash_screen_path;
   };
 
   // Do one time initialization at application startup.
index 991faf3..5ced019 100644 (file)
@@ -12,6 +12,7 @@
 #include "ui/gfx/screen.h"
 #include "ui/views/view.h"
 #include "ui/views/widget/widget.h"
+#include "xwalk/runtime/browser/ui/splash_screen.h"
 #include "xwalk/runtime/browser/ui/top_view_layout_views.h"
 #include "xwalk/runtime/browser/xwalk_browser_main_parts_tizen.h"
 
@@ -93,12 +94,18 @@ NativeAppWindowTizen::NativeAppWindowTizen(
       indicator_widget_(new TizenSystemIndicatorWidget()),
       indicator_container_(new WidgetContainerView(indicator_widget_)),
 #endif
-      orientation_lock_(blink::WebScreenOrientationLockAny) {
-}
+      orientation_lock_(blink::WebScreenOrientationLockAny) {}
 
 void NativeAppWindowTizen::Initialize() {
   NativeAppWindowViews::Initialize();
 
+  const base::FilePath& splash_screen_path = create_params().splash_screen_path;
+  if (!splash_screen_path.empty()) {
+    splash_screen_.reset(new SplashScreen(
+        GetWidget(), splash_screen_path, create_params().web_contents));
+    splash_screen_->Start();
+  }
+
   // Get display info such as device_scale_factor, and current
   // rotation (orientation).
   // NOTE: This is a local copy of the info.
index 0e4c4d8..d6bbf9b 100644 (file)
@@ -5,6 +5,7 @@
 #ifndef XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_TIZEN_H_
 #define XWALK_RUNTIME_BROWSER_UI_NATIVE_APP_WINDOW_TIZEN_H_
 
+#include "base/memory/scoped_ptr.h"
 #include "content/browser/screen_orientation/screen_orientation_provider.h"
 #include "xwalk/runtime/browser/ui/screen_orientation.h"
 #include "xwalk/runtime/browser/ui/native_app_window_views.h"
@@ -15,6 +16,8 @@
 
 namespace xwalk {
 
+class SplashScreen;
+
 // Tizen uses the Views native window but adds its own features like orientation
 // handling and integration with system indicator bar.
 class NativeAppWindowTizen
@@ -67,6 +70,7 @@ class NativeAppWindowTizen
 
   gfx::Display display_;
   blink::WebScreenOrientationLockType orientation_lock_;
+  scoped_ptr<SplashScreen> splash_screen_;
 
   DISALLOW_COPY_AND_ASSIGN(NativeAppWindowTizen);
 };
index f33f5cd..7c72290 100644 (file)
@@ -56,6 +56,9 @@ class NativeAppWindowViews : public NativeAppWindow,
 
  protected:
   TopViewLayout* top_view_layout();
+  const NativeAppWindow::CreateParams& create_params() const {
+    return create_params_;
+  }
 
   virtual void ViewHierarchyChanged(
       const ViewHierarchyChangedDetails& details) OVERRIDE;
diff --git a/src/xwalk/runtime/browser/ui/splash_screen.cc b/src/xwalk/runtime/browser/ui/splash_screen.cc
new file mode 100644 (file)
index 0000000..c0442bd
--- /dev/null
@@ -0,0 +1,121 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "xwalk/runtime/browser/ui/splash_screen.h"
+
+#include "base/location.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/scoped_layer_animation_settings.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/image/image_skia.h"
+#include "ui/views/widget/widget.h"
+#include "xwalk/runtime/browser/image_util.h"
+
+namespace xwalk {
+
+namespace {
+const int kHideAnimationDuration = 1;  // second
+}  // namespace
+
+class SplashScreen::SplashScreenLayerDelegate : public ui::LayerDelegate {
+ public:
+  SplashScreenLayerDelegate() {}
+
+  virtual ~SplashScreenLayerDelegate() {}
+
+  void set_image(const gfx::Image& image) { image_ = image; }
+  const gfx::Image& image() const { return image_; }
+
+  virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
+    if (!image_.IsEmpty()) {
+      canvas->DrawImageInt(image_.AsImageSkia(), 0, 0);
+    } else {
+      LOG(WARNING) << "The splash screen image is not loaded.";
+    }
+  }
+
+  // Override the pure virtual function.
+  virtual void OnDeviceScaleFactorChanged(float device_scale_factor) OVERRIDE {}
+
+  virtual base::Closure PrepareForLayerBoundsChange() OVERRIDE {
+    return base::Closure();
+  }
+
+ private:
+  gfx::Image image_;
+
+  DISALLOW_COPY_AND_ASSIGN(SplashScreenLayerDelegate);
+};
+
+SplashScreen::SplashScreen(views::Widget* host,
+                           const base::FilePath& file,
+                           content::WebContents* web_contents)
+    : content::WebContentsObserver(web_contents),
+      widget_host_(host),
+      splash_screen_image_(file),
+      layer_(new ui::Layer(ui::LAYER_TEXTURED)),
+      layer_delegate_(new SplashScreenLayerDelegate()),
+      is_started(false) {
+  DCHECK(widget_host_);
+  layer_->set_delegate(layer_delegate_.get());
+}
+
+SplashScreen::~SplashScreen() {}
+
+void SplashScreen::Start() {
+  DCHECK(widget_host_);
+  if (is_started)
+    return;
+
+  is_started = true;
+  gfx::Image image = xwalk_utils::LoadImageFromFilePath(splash_screen_image_);
+  if (!image.IsEmpty()) {
+    layer_delegate_->set_image(image);
+    ui::Layer* top_layer = widget_host_->GetLayer();
+    gfx::Rect rc = gfx::Rect(widget_host_->GetWindowBoundsInScreen());
+    // The bound of current layer locating at the host window.
+    gfx::Rect layer_bound((rc.width() - image.Width()) / 2,
+        (rc.height() - image.Height()) / 2, image.Width(), image.Height());
+    layer_->SetBounds(layer_bound);
+    top_layer->Add(layer_.get());
+    top_layer->StackAtTop(layer_.get());
+  }
+}
+
+void SplashScreen::Stop() {
+  DCHECK(widget_host_);
+  if (!is_started)
+    return;
+
+  is_started = false;
+  ui::ScopedLayerAnimationSettings settings(layer_->GetAnimator());
+  settings.SetTransitionDuration(base::TimeDelta::FromSeconds(
+      kHideAnimationDuration));
+  settings.SetPreemptionStrategy(ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS);
+  settings.AddObserver(this);
+  layer_->SetOpacity(0.0f);
+}
+
+void SplashScreen::DidFinishLoad(int64 frame_id,
+                                 const GURL& validated_url,
+                                 bool is_main_frame,
+                                 content::RenderViewHost* render_view_host) {
+  Stop();
+}
+
+void SplashScreen::DidFailLoad(int64 frame_id,
+                               const GURL& validated_url,
+                               bool is_main_frame,
+                               int error_code,
+                               const base::string16& error_description,
+                               content::RenderViewHost* render_view_host) {
+  Stop();
+}
+
+void SplashScreen::OnImplicitAnimationsCompleted() {
+  DCHECK(widget_host_);
+  widget_host_->GetLayer()->Remove(layer_.get());
+}
+
+}  // namespace xwalk
diff --git a/src/xwalk/runtime/browser/ui/splash_screen.h b/src/xwalk/runtime/browser/ui/splash_screen.h
new file mode 100644 (file)
index 0000000..fff44b7
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef XWALK_RUNTIME_BROWSER_UI_SPLASH_SCREEN_H_
+#define XWALK_RUNTIME_BROWSER_UI_SPLASH_SCREEN_H_
+
+#include "base/files/file_path.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "ui/compositor/layer_animation_observer.h"
+
+namespace content {
+class WebContents;
+class RenderViewHost;
+}
+
+namespace ui {
+class Layer;
+}
+
+namespace views {
+class Widget;
+}
+
+namespace xwalk {
+
+class SplashScreen : public content::WebContentsObserver,
+                     public ui::ImplicitAnimationObserver {
+ public:
+  SplashScreen(views::Widget* host,
+               const base::FilePath& file,
+               content::WebContents* web_contents);
+  ~SplashScreen();
+
+  void Start();
+  void Stop();
+
+  // Overridden from content::WebContentsObserver.
+  virtual void DidFinishLoad(int64 frame_id,
+                             const GURL& validated_url,
+                             bool is_main_frame,
+                             content::RenderViewHost* render_view_host)
+                             OVERRIDE;
+
+  virtual void DidFailLoad(int64 frame_id,
+                           const GURL& validated_url,
+                           bool is_main_frame,
+                           int error_code,
+                           const base::string16& error_description,
+                           content::RenderViewHost* render_view_host) OVERRIDE;
+
+  // ui::ImplicitAnimationObserver overrides:
+  virtual void OnImplicitAnimationsCompleted() OVERRIDE;
+
+ private:
+  views::Widget* widget_host_;
+  base::FilePath splash_screen_image_;
+
+  scoped_ptr<ui::Layer> layer_;
+  class SplashScreenLayerDelegate;
+  scoped_ptr<SplashScreenLayerDelegate> layer_delegate_;
+
+  bool is_started;
+
+  DISALLOW_COPY_AND_ASSIGN(SplashScreen);
+};
+
+}  // namespace xwalk
+
+#endif  // XWALK_RUNTIME_BROWSER_UI_SPLASH_SCREEN_H_
index a3fa01e..18b09a8 100644 (file)
@@ -220,20 +220,10 @@ void XWalkBrowserMainParts::PreMainMessageLoopRun() {
     return;
   }
 
-  if (xwalk_runner_->is_running_as_service()) {
-    // In service mode, Crosswalk doesn't launch anything, just waits
-    // for external requests to launch apps.
-    VLOG(1) << "Crosswalk running as Service.";
-    return;
-  }
-
+#if !defined(SHARED_PROCESS_MODE)
   application::ApplicationSystem* app_system = xwalk_runner_->app_system();
-  if (!app_system->HandleApplicationManagementCommands(*command_line,
-      startup_url_, run_default_message_loop_)) {
-    app_system->LaunchFromCommandLine(*command_line, startup_url_,
-                                      run_default_message_loop_);
-  }
-
+  app_system->LaunchFromCommandLine(*command_line, startup_url_,
+                                    run_default_message_loop_);
   // If the |ui_task| is specified in main function parameter, it indicates
   // that we will run this UI task instead of running the the default main
   // message loop. See |content::BrowserTestBase::SetUp| for |ui_task| usage
@@ -243,6 +233,7 @@ void XWalkBrowserMainParts::PreMainMessageLoopRun() {
     delete parameters_.ui_task;
     run_default_message_loop_ = false;
   }
+#endif
 }
 
 bool XWalkBrowserMainParts::MainMessageLoopRun(int* result_code) {
index f498e50..717ac99 100644 (file)
@@ -90,12 +90,14 @@ void XWalkBrowserMainPartsAndroid::PreMainMessageLoopStart() {
   command_line->AppendSwitch(switches::kIgnoreGpuBlacklist);
 #endif
 
+#if defined(ENABLE_WEBRTC)
   // Disable HW encoding/decoding acceleration for WebRTC on Android.
   // FIXME: Remove these switches for Android when Android OS is removed from
   // GPU accelerated_video_decode blacklist or we stop ignoring the GPU
   // blacklist.
   command_line->AppendSwitch(switches::kDisableWebRtcHWDecoding);
   command_line->AppendSwitch(switches::kDisableWebRtcHWEncoding);
+#endif
 
   // For fullscreen video playback, the ContentVideoView is still buggy, so
   // we switch back to ContentVideoViewLegacy for temp.
index ccb0534..cfb6589 100644 (file)
@@ -33,21 +33,17 @@ namespace xwalk {
 
 namespace {
 
-const char kDefaultLocale[] = "en-US";
 XWalkRunner* g_xwalk_runner = NULL;
 
 }  // namespace
 
-XWalkRunner::XWalkRunner()
-    : is_running_as_service_(false) {
+XWalkRunner::XWalkRunner() {
   VLOG(1) << "Creating XWalkRunner object.";
   DCHECK(!g_xwalk_runner);
   g_xwalk_runner = this;
 
   XWalkRuntimeFeatures::GetInstance()->Initialize(
       CommandLine::ForCurrentProcess());
-  CommandLine* cmd_line = CommandLine::ForCurrentProcess();
-  is_running_as_service_ = cmd_line->HasSwitch(switches::kXWalkRunAsService);
 
   // Initializing after the g_xwalk_runner is set to ensure
   // XWalkRunner::GetInstance() can be used in all sub objects if needed.
@@ -72,12 +68,8 @@ application::ApplicationSystem* XWalkRunner::app_system() {
 void XWalkRunner::PreMainMessageLoopRun() {
   runtime_context_.reset(new RuntimeContext);
   app_extension_bridge_.reset(new XWalkAppExtensionBridge());
-  // FIXME(cmarcelo): Remove this check once we remove the --uninstall
-  // command line.
-  CommandLine* cmd_line = CommandLine::ForCurrentProcess();
-  if (!cmd_line->HasSwitch(switches::kUninstall))
-    extension_service_.reset(new extensions::XWalkExtensionService(
-        app_extension_bridge_.get()));
+  extension_service_.reset(new extensions::XWalkExtensionService(
+      app_extension_bridge_.get()));
   CreateComponents();
   app_extension_bridge_->SetApplicationSystem(app_component_->app_system());
 }
@@ -88,10 +80,6 @@ void XWalkRunner::PostMainMessageLoopRun() {
   runtime_context_.reset();
 }
 
-std::string XWalkRunner::GetLocale() const {
-  return kDefaultLocale;
-}
-
 void XWalkRunner::CreateComponents() {
   scoped_ptr<ApplicationComponent> app_component(CreateAppComponent());
   // Keep a reference as some code still needs to call
@@ -132,12 +120,12 @@ scoped_ptr<StorageComponent> XWalkRunner::CreateStorageComponent() {
 
 void XWalkRunner::InitializeRuntimeVariablesForExtensions(
     const content::RenderProcessHost* host,
-    base::ValueMap& variables) {  // NOLINT
+    base::ValueMap* variables) {
   application::Application* app = app_system()->application_service()->
       GetApplicationByRenderHostID(host->GetID());
 
   if (app)
-    variables["app_id"] = base::Value::CreateStringValue(app->id());
+    (*variables)["app_id"] = base::Value::CreateStringValue(app->id());
 }
 
 void XWalkRunner::OnRenderProcessWillLaunch(content::RenderProcessHost* host) {
@@ -163,11 +151,11 @@ void XWalkRunner::OnRenderProcessWillLaunch(content::RenderProcessHost* host) {
   main_parts->CreateInternalExtensionsForExtensionThread(
       host, &extension_thread_extensions);
 
-  base::ValueMap runtime_variables;
-  InitializeRuntimeVariablesForExtensions(host, runtime_variables);
+  scoped_ptr<base::ValueMap> runtime_variables(new base::ValueMap);
+  InitializeRuntimeVariablesForExtensions(host, runtime_variables.get());
   extension_service_->OnRenderProcessWillLaunch(
       host, &ui_thread_extensions, &extension_thread_extensions,
-      runtime_variables);
+      runtime_variables.Pass());
 }
 
 void XWalkRunner::OnRenderProcessHostGone(content::RenderProcessHost* host) {
index 8a2de0a..09d8b6b 100644 (file)
@@ -73,18 +73,10 @@ class XWalkRunner {
     return extension_service_.get();
   }
 
-  // Return true if Crosswalk is running in service mode, i.e. taking
-  // requests from native IPC mechanism to launch applications.
-  bool is_running_as_service() const { return is_running_as_service_; }
-
   // Stages of main parts. See content/browser_main_parts.h for description.
   virtual void PreMainMessageLoopRun();
   virtual void PostMainMessageLoopRun();
 
-  // Get the latest application locale from system.
-  // locale is a langtag defined in [BCP47]
-  virtual std::string GetLocale() const;
-
  protected:
   XWalkRunner();
 
@@ -140,13 +132,11 @@ class XWalkRunner {
 
   ApplicationComponent* app_component_;
 
-  bool is_running_as_service_;
-
   // These variables are used to export some values from the browser process
   // side to the extension side, such as application IDs and whatnot.
   void InitializeRuntimeVariablesForExtensions(
       const content::RenderProcessHost* host,
-      base::ValueMap& runtime_variables);
+      base::ValueMap* runtime_variables);
 
   DISALLOW_COPY_AND_ASSIGN(XWalkRunner);
 };
index 386da10..d9108ab 100644 (file)
@@ -27,16 +27,12 @@ void XWalkRunnerTizen::PreMainMessageLoopRun() {
   // NSSInitSingleton is a costly operation (up to 100ms on VTC-1010),
   // resulting in postponing the parsing and composition steps of the render
   // process at cold start. Therefore, move the initialization logic here.
-  if (XWalkRunner::is_running_as_service()) {
-    content::BrowserThread::PostTask(
-        content::BrowserThread::IO,
-        FROM_HERE,
-        base::Bind(&crypto::EnsureNSSInit));
-  }
-}
-
-std::string XWalkRunnerTizen::GetLocale() const {
-  return tizen_locale_listener_.GetLocale();
+#if defined(SHARED_PROCESS_MODE)
+  content::BrowserThread::PostTask(
+      content::BrowserThread::IO,
+      FROM_HERE,
+      base::Bind(&crypto::EnsureNSSInit));
+#endif
 }
 
 }  // namespace xwalk
index b30ed4e..73effec 100644 (file)
@@ -25,10 +25,6 @@ class XWalkRunnerTizen : public XWalkRunner {
 
   virtual void PreMainMessageLoopRun() OVERRIDE;
 
-  // Get the latest application locale from system.
-  // locale is a langtag defined in [BCP47]
-  virtual std::string GetLocale() const OVERRIDE;
-
  private:
   friend class XWalkRunner;
   XWalkRunnerTizen();
index b196833..754230d 100644 (file)
@@ -39,8 +39,12 @@ const char kPnaclPluginDescription[] = "Portable Native Client Executable";
 
 namespace xwalk {
 
+std::string GetProduct() {
+  return "Chrome/" CHROME_VERSION;
+}
+
 std::string GetUserAgent() {
-  std::string product = "Chrome/" CHROME_VERSION;
+  std::string product = GetProduct();
 #if (defined(OS_TIZEN) || defined(OS_ANDROID))
   product += " Mobile Crosswalk/" XWALK_VERSION;
 #else
@@ -94,7 +98,7 @@ void XWalkContentClient::AddPepperPlugins(
 }
 
 std::string XWalkContentClient::GetProduct() const {
-  return std::string("Version/4.0");
+  return xwalk::GetProduct();
 }
 
 std::string XWalkContentClient::GetUserAgent() const {
index a73a0da..8cffb48 100644 (file)
@@ -9,7 +9,6 @@
 #include "base/logging.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/path_service.h"
-#include "xwalk/runtime/browser/xwalk_runner.h"
 
 #if defined(OS_WIN)
 #include "base/base_paths_win.h"
@@ -83,10 +82,11 @@ base::FilePath GetConfigPath() {
 
 bool GetXWalkDataPath(base::FilePath* path) {
   base::FilePath::StringType xwalk_suffix;
-  if (XWalkRunner::GetInstance()->is_running_as_service())
-    xwalk_suffix = FILE_PATH_LITERAL("xwalk-service");
-  else
-    xwalk_suffix = FILE_PATH_LITERAL("xwalk");
+#if defined(SHARED_PROCESS_MODE)
+  xwalk_suffix = FILE_PATH_LITERAL("xwalk-service");
+#else
+  xwalk_suffix = FILE_PATH_LITERAL("xwalk");
+#endif
   base::FilePath cur;
 
 #if defined(OS_WIN)
index 8f66a84..8f53c42 100644 (file)
@@ -6,7 +6,6 @@
 #define XWALK_RUNTIME_COMMON_XWALK_PATHS_H_
 
 #include "build/build_config.h"
-#include "content/public/browser/notification_types.h"
 
 namespace xwalk {
 
index 5e9e8ea..38dfef5 100644 (file)
@@ -18,26 +18,12 @@ const char kExperimentalFeatures[] = "enable-xwalk-experimental-features";
 // Specifies the window whether launched with fullscreen mode.
 const char kFullscreen[] = "fullscreen";
 
-// Specifies install an application.
-const char kInstall[] = "install";
-
-// Specifies list all installed applications.
-const char kListApplications[] = "list-apps";
-
 // List the command lines feature flags.
 const char kListFeaturesFlags[] = "list-features-flags";
 
-// Specifies uninstall an application from runtime.
-const char kUninstall[] = "uninstall";
-
 const char kXWalkAllowExternalExtensionsForRemoteSources[] =
     "allow-external-extensions-for-remote-sources";
 
-// Runs Crosswalk in service mode: it loads no application by default but stays
-// alive, and listens for external requests to launch applications. The way to
-// issue these requests is platform-specific.
-const char kXWalkRunAsService[] = "run-as-service";
-
 // Specifies the data path directory, which XWalk runtime will look for its
 // state, e.g. cache, localStorage etc.
 const char kXWalkDataPath[] = "data-path";
index 98c8f23..dc5ac54 100644 (file)
@@ -12,13 +12,9 @@ extern const char kAppIcon[];
 extern const char kDisablePnacl[];
 extern const char kExperimentalFeatures[];
 extern const char kFullscreen[];
-extern const char kInstall[];
-extern const char kListApplications[];
 extern const char kListFeaturesFlags[];
-extern const char kUninstall[];
 extern const char kXWalkAllowExternalExtensionsForRemoteSources[];
 extern const char kXWalkDataPath[];
-extern const char kXWalkRunAsService[];
 
 }  // namespace switches
 
diff --git a/src/xwalk/runtime/common/xwalk_system_locale.cc b/src/xwalk/runtime/common/xwalk_system_locale.cc
new file mode 100644 (file)
index 0000000..a2958ba
--- /dev/null
@@ -0,0 +1,61 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "xwalk/runtime/common/xwalk_system_locale.h"
+
+#if defined(OS_TIZEN)
+#include <vconf.h>
+#include <algorithm>
+
+#include "base/logging.h"
+#endif
+
+namespace xwalk {
+#if defined(OS_TIZEN)
+
+namespace {
+const char kTizenDefaultLocale[] = "en-GB";
+
+bool TizenLocaleToBCP47Locale(const std::string& tizen_locale,
+                              std::string* out_BCP47_locale) {
+  if (tizen_locale.empty())
+    return false;
+
+  // Tizen locale format [language[_territory][.codeset][@modifier]] .
+  // Conver to BCP47 format language[-territory] .
+  *out_BCP47_locale = tizen_locale.substr(0, tizen_locale.find_first_of("."));
+  std::replace(out_BCP47_locale->begin(), out_BCP47_locale->end(), '_', '-');
+  return true;
+}
+
+}  // namespace
+
+std::string GetSystemLocale() {
+  std::string tizen_locale;
+  char* langset = vconf_get_str(VCONFKEY_LANGSET);
+  if (langset) {
+    tizen_locale = langset;
+  } else {
+    LOG(ERROR) << "Can not get VCONFKEY_LANGSET from vconf or "
+               << "VCONFKEY_LANGSET vlaue is not a string value";
+  }
+  free(langset);
+
+  // Tizen take en-GB as default.
+  std::string BCP47_locale(kTizenDefaultLocale);
+  TizenLocaleToBCP47Locale(tizen_locale, &BCP47_locale);
+  return BCP47_locale;
+}
+#else
+namespace {
+  const char kDefaultLocale[] = "en-US";
+}  // namespace
+
+std::string GetSystemLocale() {
+  return kDefaultLocale;
+}
+
+#endif
+
+}  // namespace xwalk
diff --git a/src/xwalk/runtime/common/xwalk_system_locale.h b/src/xwalk/runtime/common/xwalk_system_locale.h
new file mode 100644 (file)
index 0000000..a092934
--- /dev/null
@@ -0,0 +1,16 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef XWALK_RUNTIME_COMMON_XWALK_SYSTEM_LOCALE_H_
+#define XWALK_RUNTIME_COMMON_XWALK_SYSTEM_LOCALE_H_
+
+#include <string>
+
+namespace xwalk {
+
+std::string GetSystemLocale();
+
+}  // namespace xwalk
+
+#endif  // XWALK_RUNTIME_COMMON_XWALK_SYSTEM_LOCALE_H_
index 40d5c23..716e46e 100644 (file)
@@ -20,8 +20,6 @@ public class AddJavascriptInterfaceTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     class TestJavascriptInterface {
index b4067bd..c6b42e5 100644 (file)
@@ -16,8 +16,6 @@ public class CanGoBackTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 8d95eb4..610fca4 100644 (file)
@@ -16,8 +16,6 @@ public class CanGoForwardTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 21c108b..4c31e9e 100644 (file)
@@ -24,8 +24,6 @@ public class ClearCacheTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         mWebServer = new TestWebServer(false);
     }
 
index d88784f..24003bc 100644 (file)
@@ -20,8 +20,6 @@ public class ClearHistoryTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     // TODO(guangzhen): Since the device issue, it can not access the network,
index b38a260..e620ee4 100644 (file)
@@ -39,7 +39,6 @@ public class CookieManagerTest extends XWalkViewTestBase {
         super.setUp();
 
         mCookieManager = new XWalkCookieManager();
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index bd6abf0..4ba6417 100644 (file)
@@ -16,8 +16,6 @@ public class EvaluateJavascriptTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
diff --git a/src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionBroadcastTest.java b/src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionBroadcastTest.java
deleted file mode 100644 (file)
index 7707176..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.xwalk.core.xwview.test;
-
-import android.graphics.Bitmap;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-import org.chromium.base.test.util.Feature;
-
-import org.xwalk.core.XWalkView;
-import org.xwalk.core.internal.XWalkClient;
-import org.xwalk.core.internal.XWalkWebChromeClient;
-import org.xwalk.core.xwview.test.ExtensionBroadcast;
-
-/**
- * Test suite for ExtensionBroadcast().
- */
-public class ExtensionBroadcastTest extends XWalkViewTestBase {
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        setXWalkWebChromeClient(new XWalkViewTestBase.TestXWalkWebChromeClient());
-    }
-
-    @SmallTest
-    @Feature({"ExtensionBroadcast"})
-    public void testExtensionBroadcast() throws Throwable {
-        ExtensionBroadcast broadcast = new ExtensionBroadcast();
-
-        loadAssetFileAndWaitForTitle("broadcast.html");
-        assertEquals("Pass", getTitleOnUiThread());
-    }
-}
diff --git a/src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionEchoTest.java b/src/xwalk/test/android/core/javatests/src/org/xwalk/core/xwview/test/ExtensionEchoTest.java
deleted file mode 100644 (file)
index 181a955..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2013 Intel Corporation. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.xwalk.core.xwview.test;
-
-import android.graphics.Bitmap;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-
-import org.chromium.base.test.util.Feature;
-
-import org.xwalk.core.XWalkView;
-import org.xwalk.core.internal.XWalkClient;
-import org.xwalk.core.internal.XWalkWebChromeClient;
-import org.xwalk.core.xwview.test.ExtensionEcho;
-
-/**
- * Test suite for ExtensionEcho().
- */
-public class ExtensionEchoTest extends XWalkViewTestBase {
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        setXWalkWebChromeClient(new XWalkViewTestBase.TestXWalkWebChromeClient());
-    }
-
-    @SmallTest
-    @Feature({"ExtensionEcho"})
-    public void testExtensionEcho() throws Throwable {
-        ExtensionEcho echo = new ExtensionEcho();
-
-        loadAssetFileAndWaitForTitle("echo.html");
-        assertEquals("Pass", getTitleOnUiThread());
-    }
-
-    @SmallTest
-    @Feature({"ExtensionEcho"})
-    public void testExtensionEchoSync() throws Throwable {
-        ExtensionEcho echo = new ExtensionEcho();
-
-        loadAssetFile("echoSync.html");
-        assertEquals("Pass", getTitleOnUiThread());
-    }
-
-    @SmallTest
-    @Feature({"ExtensionEcho"})
-    public void testExtensionEchoMultiFrames() throws Throwable {
-        ExtensionEcho echo = new ExtensionEcho();
-
-        loadAssetFileAndWaitForTitle("framesEcho.html");
-        assertEquals("Pass", getTitleOnUiThread());
-    }
-}
index 708b93f..317ebfc 100644 (file)
@@ -17,6 +17,8 @@ import org.xwalk.core.internal.XWalkGeolocationPermissions;
 import org.xwalk.core.internal.XWalkWebChromeClient;
 
 /**
+ * TODO(wang16): This test should be moved to internal test.
+ *
  * Test suite for onGeolocationPermissionsShowPrompt() and
  *                onGeolocationPermissionsHidePrompt().
  */
@@ -25,7 +27,6 @@ public class GeolocationPermissionTest extends XWalkViewTestBase {
     public void setUp() throws Exception {
         super.setUp();
 
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
@@ -59,7 +60,12 @@ public class GeolocationPermissionTest extends XWalkViewTestBase {
             }
         }
         final TestWebChromeClient testWebChromeClient = new TestWebChromeClient();
-        setXWalkWebChromeClient(testWebChromeClient);
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                getXWalkView().setXWalkWebChromeClient(testWebChromeClient);
+            }
+        });
         loadAssetFile("geolocation.html");
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
@@ -85,7 +91,12 @@ public class GeolocationPermissionTest extends XWalkViewTestBase {
                 // Do something.
             }
         }
-        setXWalkWebChromeClient(new TestWebChromeClient());
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                getXWalkView().setXWalkWebChromeClient(new TestWebChromeClient());
+            }
+        });
         loadUrlSync("http://html5demos.com/geo");
     }
 }
index 863678f..1f0996b 100644 (file)
@@ -20,8 +20,6 @@ public class GetAPIVersionTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 9b52648..9ab41ce 100644 (file)
@@ -18,8 +18,6 @@ public class GetCurrentItemTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index ceed330..b416036 100644 (file)
@@ -18,8 +18,6 @@ public class GetItemAtTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 4ddfc4f..1769295 100644 (file)
@@ -18,8 +18,6 @@ public class GetTitleTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 0175387..f6b0c43 100644 (file)
@@ -17,8 +17,6 @@ public class GetUrlTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 4f3bacd..7409ce7 100644 (file)
@@ -20,8 +20,6 @@ public class GetXWalkVersionTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index c1c5e25..5df0f54 100644 (file)
@@ -46,8 +46,6 @@ public class HandleActionUriTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
index a474f97..5e2e5ab 100644 (file)
@@ -18,8 +18,6 @@ public class HasItemAtTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 752c5ac..390352a 100644 (file)
@@ -18,8 +18,6 @@ public class HistorySizeTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index c3e32d8..474c5e9 100644 (file)
@@ -20,8 +20,6 @@ public class LoadTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     // TODO(hengzhi): Since the device issue, it can not access the network,
index ea5b399..e0e1884 100644 (file)
@@ -16,8 +16,6 @@ public class NavigateTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @SmallTest
index 77097ed..64f6d9a 100644 (file)
@@ -26,9 +26,6 @@ public class OnPageFinishedTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        setResourceClient(new XWalkViewTestBase.TestXWalkResourceClient());
     }
 
     @MediumTest
index bd00acc..0a45980 100644 (file)
@@ -20,9 +20,6 @@ public class OnUpdateTitleTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        setXWalkWebChromeClient(new XWalkViewTestBase.TestXWalkWebChromeClient());
     }
 
     @SmallTest
index 0554921..340a3a5 100644 (file)
@@ -25,7 +25,6 @@ public class ReloadTest extends XWalkViewTestBase {
     public void setUp() throws Exception {
         super.setUp();
 
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         mWebServer = new TestWebServer(false);
     }
 
index fb4eae6..edaf1f8 100644 (file)
@@ -24,6 +24,8 @@ import org.xwalk.core.internal.XWalkClient;
 import org.xwalk.core.internal.XWalkViewInternal;
 
 /**
+ * TODO(wang16): This test should be moved to internal test.
+ *
  * Renderer responsiveness tests:
  *
  * Internally, a hang monitor timer will start for each renderer when there is
@@ -44,11 +46,15 @@ public class RendererResponsivenessTest extends XWalkViewTestBase {
     //@MediumTest
     @DisabledTest
     public void testRendererUnresponsive() throws Throwable {
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        getXWalkView().setXWalkClient(new XWalkClient(getXWalkView()) {
+        getInstrumentation().runOnMainSync(new Runnable() {
             @Override
-            public void onRendererUnresponsive(XWalkViewInternal view) {
-                unresponsiveHelper.notifyCalled(view);
+            public void run() {
+                getXWalkView().setXWalkClient(new XWalkClient(getXWalkView()) {
+                    @Override
+                    public void onRendererUnresponsive(XWalkViewInternal view) {
+                        unresponsiveHelper.notifyCalled(view);
+                    }
+                });
             }
         });
 
@@ -77,14 +83,15 @@ public class RendererResponsivenessTest extends XWalkViewTestBase {
     //@MediumTest
     @DisabledTest
     public void testRendererResponsiveAgain() throws Throwable {
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        getXWalkView().setXWalkClient(new XWalkClient(getXWalkView()) {
-            /**
-             * Called once the renderer become responsive again.
-             */
+        getInstrumentation().runOnMainSync(new Runnable() {
             @Override
-            public void onRendererResponsive(XWalkViewInternal view) {
-                responsiveHelper.notifyCalled(view);
+            public void run() {
+                getXWalkView().setXWalkClient(new XWalkClient(getXWalkView()) {
+                    @Override
+                    public void onRendererResponsive(XWalkViewInternal view) {
+                        responsiveHelper.notifyCalled(view);
+                    }
+                });
             }
         });
 
index d7cc0c2..8aaeb34 100644 (file)
@@ -54,7 +54,8 @@ public class SaveRestoreStateTest extends XWalkViewTestBase {
             public void run() {
                 mXWalkView = getXWalkView();
                 mRestoreXWalkView = new XWalkView(activity, activity);
-                mXWalkView.setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
+                mXWalkView.setUIClient(new XWalkViewTestBase.TestXWalkUIClient());
+                mXWalkView.setResourceClient(new XWalkViewTestBase.TestXWalkResourceClient());
             }
         });
 
index 8bb8212..e2873f9 100644 (file)
@@ -27,6 +27,8 @@ import org.xwalk.core.internal.XWalkWebChromeClient;
 import org.xwalk.core.xwview.test.util.CommonResources;
 
 /**
+ * TODO(wang16): This test should be moved to internal test.
+ *
  * Test suite for setAppCacheEnabled().
  */
 public class SetAppCacheEnabledTest extends XWalkViewTestBase {
@@ -103,15 +105,13 @@ public class SetAppCacheEnabledTest extends XWalkViewTestBase {
         final TestHelperBridge helperBridge =
                 new TestHelperBridge();
         mContentClient = helperBridge;
-        final XWalkViewTestBase.TestXWalkClientBase client =
-                new XWalkViewTestBase.TestXWalkClientBase(helperBridge);
+        final XWalkViewTestBase.TestXWalkUIClientBase uiClient =
+                new XWalkViewTestBase.TestXWalkUIClientBase(helperBridge);
         final XWalkViewTestBase.TestXWalkResourceClientBase resourceClient =
                 new XWalkViewTestBase.TestXWalkResourceClientBase(helperBridge);
-        final XWalkViewTestBase.TestXWalkWebChromeClientBase chromeClient =
-                new XWalkViewTestBase.TestXWalkWebChromeClientBase(helperBridge);
         final XWalkView xWalkView =
-                createXWalkViewContainerOnMainSync(getActivity(), client,
-                        resourceClient, chromeClient);
+                createXWalkViewContainerOnMainSync(getActivity(), uiClient,
+                        resourceClient);
 
         final XWalkSettings settings = getXWalkSettings(xWalkView);
         settings.setJavaScriptEnabled(true);
index d7b2972..5bbe42c 100644 (file)
@@ -25,10 +25,6 @@ public class SetDatabaseEnabledTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
-        setXWalkWebChromeClient(new XWalkViewTestBase.TestXWalkWebChromeClient());
-        setResourceClient(new XWalkViewTestBase.TestXWalkResourceClient());
     }
 
     abstract class XWalkViewSettingsTestHelper<T> {
index f42d426..dc8d8ce 100644 (file)
@@ -25,8 +25,6 @@ public class SetNetworkAvailableTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     @Feature({"SetNetworkAvailableTest"})
index 93aef9b..f973dc0 100644 (file)
@@ -74,7 +74,6 @@ public class ShouldInterceptLoadRequestTest extends XWalkViewTestBase {
     protected void setUp() throws Exception {
         super.setUp();
 
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
index c228ca9..7b5a455 100644 (file)
@@ -27,8 +27,6 @@ public class UserAgentTest extends XWalkViewTestBase {
     @Override
     public void setUp() throws Exception {
         super.setUp();
-
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
     }
 
     protected XWalkSettings getXWalkSettingsOnUiThread(
index 545b825..9006ac1 100644 (file)
@@ -23,6 +23,8 @@ import org.xwalk.core.internal.XWalkWebChromeClient;
 import org.xwalk.core.internal.XWalkNotificationServiceImpl;
 
 /**
+ * TODO(wang16): This test should be moved into internal test.
+ *
  * Test suite for web notification API.
  * This test will only cover notification.show() and notification.close().
  * The event handler will be covered in runtime level test. Because that
@@ -66,7 +68,6 @@ public class WebNotificationTest extends XWalkViewTestBase {
     public void setUp() throws Exception {
         super.setUp();
 
-        setXWalkClient(new XWalkViewTestBase.TestXWalkClient());
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
index 9e7cf65..4d4ef46 100644 (file)
@@ -28,11 +28,9 @@ import org.chromium.content.browser.test.util.CriteriaHelper;
 import org.xwalk.core.XWalkNavigationHistory;
 import org.xwalk.core.XWalkNavigationItem;
 import org.xwalk.core.XWalkResourceClient;
+import org.xwalk.core.XWalkUIClient;
 import org.xwalk.core.XWalkView;
-import org.xwalk.core.internal.XWalkClient;
 import org.xwalk.core.internal.XWalkSettings;
-import org.xwalk.core.internal.XWalkViewInternal;
-import org.xwalk.core.internal.XWalkWebChromeClient;
 
 public class XWalkViewTestBase
        extends ActivityInstrumentationTestCase2<XWalkViewTestRunnerActivity> {
@@ -41,45 +39,31 @@ public class XWalkViewTestBase
     private XWalkView mXWalkView;
     final TestHelperBridge mTestHelperBridge = new TestHelperBridge();
 
-    class TestXWalkClientBase extends XWalkClient {
+    class TestXWalkUIClientBase extends XWalkUIClient {
         TestHelperBridge mInnerContentsClient;
-        public TestXWalkClientBase(TestHelperBridge client) {
+        public TestXWalkUIClientBase(TestHelperBridge client) {
             super(getXWalkView());
             mInnerContentsClient = client;
         }
 
         @Override
-        public void onPageStarted(XWalkViewInternal view, String url) {
+        public void onPageLoadStarted(XWalkView view, String url) {
             mInnerContentsClient.onPageStarted(url);
         }
 
         @Override
-        public void onPageFinished(XWalkViewInternal view, String url) {
+        public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
             mInnerContentsClient.onPageFinished(url);
         }
-    }
-
-    class TestXWalkClient extends TestXWalkClientBase {
-        public TestXWalkClient() {
-            super(mTestHelperBridge);
-        }
-    }
-
-    class TestXWalkWebChromeClientBase extends XWalkWebChromeClient {
-        TestHelperBridge mInnerContentsClient;
-        public TestXWalkWebChromeClientBase(TestHelperBridge client) {
-            super(getXWalkView());
-            mInnerContentsClient = client;
-        }
 
         @Override
-        public void onReceivedTitle(XWalkViewInternal view, String title) {
+        public void onReceivedTitle(XWalkView view, String title) {
             mInnerContentsClient.onTitleChanged(title);
         }
     }
 
-    class TestXWalkWebChromeClient extends TestXWalkWebChromeClientBase {
-        public TestXWalkWebChromeClient() {
+    class TestXWalkUIClient extends TestXWalkUIClientBase {
+        public TestXWalkUIClient() {
             super(mTestHelperBridge);
         }
     }
@@ -93,18 +77,18 @@ public class XWalkViewTestBase
 
         @Override
         public void onLoadStarted(XWalkView view, String url) {
-            mTestHelperBridge.onLoadStarted(url);
+            mInnerContentsClient.onLoadStarted(url);
         }
 
         @Override
         public void onReceivedLoadError(XWalkView view, int errorCode, String description, String failingUrl) {
-            mTestHelperBridge.onReceivedLoadError(errorCode, description, failingUrl);
+            mInnerContentsClient.onReceivedLoadError(errorCode, description, failingUrl);
         }
 
         @Override
         public WebResourceResponse shouldInterceptLoadRequest(XWalkView view,
                 String url) {
-            return mTestHelperBridge.shouldInterceptLoadRequest(url);
+            return mInnerContentsClient.shouldInterceptLoadRequest(url);
         }
     }
 
@@ -114,20 +98,11 @@ public class XWalkViewTestBase
         }
     }
 
-    void setXWalkClient(final XWalkClient client) {
-        getInstrumentation().runOnMainSync(new Runnable() {
-            @Override
-            public void run() {
-                getXWalkView().setXWalkClient(client);
-            }
-        });
-    }
-
-    void setXWalkWebChromeClient(final XWalkWebChromeClient client) {
+    void setUIClient(final XWalkUIClient client) {
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                getXWalkView().setXWalkWebChromeClient(client);
+                getXWalkView().setUIClient(client);
             }
         });
     }
@@ -187,6 +162,8 @@ public class XWalkViewTestBase
             public void run() {
                 mXWalkView = new XWalkView(activity, activity);
                 getActivity().addView(mXWalkView);
+                mXWalkView.setUIClient(new TestXWalkUIClient());
+                mXWalkView.setResourceClient(new TestXWalkResourceClient());
                 // mXWalkView.getXWalkViewContentForTest().installWebContentsObserverForTest(mTestHelperBridge);
             }
         });
@@ -326,9 +303,8 @@ public class XWalkViewTestBase
 
     protected XWalkView createXWalkViewContainerOnMainSync(
             final Context context,
-            final XWalkClient client,
-            final XWalkResourceClient resourceClient,
-            final XWalkWebChromeClient webChromeClient) throws Exception {
+            final XWalkUIClient uiClient,
+            final XWalkResourceClient resourceClient) throws Exception {
         final AtomicReference<XWalkView> xWalkViewContainer =
                 new AtomicReference<XWalkView>();
         getInstrumentation().runOnMainSync(new Runnable() {
@@ -336,9 +312,8 @@ public class XWalkViewTestBase
             public void run() {
                 xWalkViewContainer.set(new XWalkView(context, getActivity()));
                 getActivity().addView(xWalkViewContainer.get());
-                xWalkViewContainer.get().setXWalkClient(client);
+                xWalkViewContainer.get().setUIClient(uiClient);
                 xWalkViewContainer.get().setResourceClient(resourceClient);
-                xWalkViewContainer.get().setXWalkWebChromeClient(webChromeClient);
             }
         });
 
@@ -347,17 +322,15 @@ public class XWalkViewTestBase
 
     protected ViewPair createViewsOnMainSync(final TestHelperBridge helperBridge0,
                                              final TestHelperBridge helperBridge1,
-                                             final XWalkClient client0,
-                                             final XWalkClient client1,
+                                             final XWalkUIClient uiClient0,
+                                             final XWalkUIClient uiClient1,
                                              final XWalkResourceClient resourceClient0,
                                              final XWalkResourceClient resourceClient1,
-                                             final XWalkWebChromeClient chromeClient0,
-                                             final XWalkWebChromeClient chromeClient1,
                                              final Context context) throws Throwable {
         final XWalkView walkView0 = createXWalkViewContainerOnMainSync(context,
-                client0, resourceClient0, chromeClient0);
+                uiClient0, resourceClient0);
         final XWalkView walkView1 = createXWalkViewContainerOnMainSync(context,
-                client1, resourceClient1, chromeClient1);
+                uiClient1, resourceClient1);
         final AtomicReference<ViewPair> viewPair = new AtomicReference<ViewPair>();
 
         getInstrumentation().runOnMainSync(new Runnable() {
@@ -523,20 +496,15 @@ public class XWalkViewTestBase
     protected ViewPair createViews() throws Throwable {
         TestHelperBridge helperBridge0 = new TestHelperBridge();
         TestHelperBridge helperBridge1 = new TestHelperBridge();
-        TestXWalkClientBase viewClient0 = new TestXWalkClientBase(helperBridge0);
-        TestXWalkClientBase viewClient1 = new TestXWalkClientBase(helperBridge1);
-        TestXWalkWebChromeClientBase chromeClient0 =
-                new TestXWalkWebChromeClientBase(helperBridge0);
-        TestXWalkWebChromeClientBase chromeClient1 =
-                new TestXWalkWebChromeClientBase(helperBridge1);
+        TestXWalkUIClientBase uiClient0 = new TestXWalkUIClientBase(helperBridge0);
+        TestXWalkUIClientBase uiClient1 = new TestXWalkUIClientBase(helperBridge1);
         TestXWalkResourceClientBase resourceClient0 =
                 new TestXWalkResourceClientBase(helperBridge0);
         TestXWalkResourceClientBase resourceClient1 =
                 new TestXWalkResourceClientBase(helperBridge1);
         ViewPair viewPair =
-                createViewsOnMainSync(helperBridge0, helperBridge1, viewClient0, viewClient1,
-                        resourceClient0, resourceClient1, chromeClient0, chromeClient1,
-                                getActivity());
+                createViewsOnMainSync(helperBridge0, helperBridge1, uiClient0, uiClient1,
+                        resourceClient0, resourceClient1, getActivity());
 
         return viewPair;
     }
diff --git a/src/xwalk/test/android/core_internal/javatests/AndroidManifest.xml b/src/xwalk/test/android/core_internal/javatests/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..3022a05
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--  Copyright (c) 2013 Intel Corporation. All rights reserved.
+
+  Use of this source code is governed by a BSD-style license that can be
+  found in the LICENSE file.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.xwalk.core.internal.xwview.test">
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <provider android:name="TestContentProvider"
+            android:authorities="org.xwalk.core.internal.xwview.test.TestContentProvider" />
+    </application>
+
+    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+    <instrumentation android:name="android.test.InstrumentationTestRunner"
+        android:targetPackage="org.xwalk.core.internal.xwview.shell"
+        android:label="Test for org.xwalk.core.internal.xwview" />
+    <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
+    <uses-permission android:name="android.permission.INJECT_EVENTS" />
+    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.READ_LOGS"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+</manifest>
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.xwalk.core.xwview.test;
+package org.xwalk.core.internal.xwview.test;
 
 import org.xwalk.core.internal.extensions.XWalkExtensionAndroid;
 
-public class ExtensionBroadcast extends XWalkExtensionAndroid {
+public class ExtensionBroadcastInternal extends XWalkExtensionAndroid {
 
-    public ExtensionBroadcast() {
+    public ExtensionBroadcastInternal() {
         super("broadcast",
               "exports.setHandler = function(handler) {"
               + "  extension.setMessageListener(handler);"
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionBroadcastInternalTest.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionBroadcastInternalTest.java
new file mode 100644 (file)
index 0000000..7b41b91
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (c) 2013 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.test.util.Feature;
+import org.xwalk.core.internal.xwview.test.ExtensionBroadcastInternal;
+
+/**
+ * Test suite for ExtensionBroadcastInternal().
+ */
+public class ExtensionBroadcastInternalTest extends XWalkViewInternalTestBase {
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @SmallTest
+    @Feature({"ExtensionBroadcastInternal"})
+    public void test() throws Throwable {
+        ExtensionBroadcastInternal broadcast = new ExtensionBroadcastInternal();
+
+        loadAssetFileAndWaitForTitle("broadcast.html");
+        assertEquals("Pass", getTitleOnUiThread());
+    }
+}
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.xwalk.core.xwview.test;
+package org.xwalk.core.internal.xwview.test;
 
 import org.xwalk.core.internal.extensions.XWalkExtensionAndroid;
 
-public class ExtensionEcho extends XWalkExtensionAndroid {
+public class ExtensionEchoInternal extends XWalkExtensionAndroid {
 
-    public ExtensionEcho() {
+    public ExtensionEchoInternal() {
         super("echo",
               "var echoListener = null;"
               + "extension.setMessageListener(function(msg) {"
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionEchoInternalTest.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/ExtensionEchoInternalTest.java
new file mode 100644 (file)
index 0000000..813b9d5
--- /dev/null
@@ -0,0 +1,48 @@
+// Copyright (c) 2013 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.test.util.Feature;
+import org.xwalk.core.internal.xwview.test.ExtensionEchoInternal;
+
+/**
+ * Test suite for ExtensionEchoInternal().
+ */
+public class ExtensionEchoInternalTest extends XWalkViewInternalTestBase {
+    private final static String PASS_STRING = "Pass";
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @SmallTest
+    @Feature({"ExtensionEchoInternal"})
+    public void testAsync() throws Throwable {
+        ExtensionEchoInternal echo = new ExtensionEchoInternal();
+
+        loadAssetFileAndWaitForTitle("echo.html");
+        assertEquals(PASS_STRING, getTitleOnUiThread());
+    }
+
+    @SmallTest
+    @Feature({"ExtensionEchoInternal"})
+    public void testSync() throws Throwable {
+        ExtensionEchoInternal echo = new ExtensionEchoInternal();
+
+        loadAssetFile("echoSync.html");
+        assertEquals(PASS_STRING, getTitleOnUiThread());
+    }
+
+    @SmallTest
+    @Feature({"ExtensionEchoInternal"})
+    public void testMultiFrames() throws Throwable {
+        ExtensionEchoInternal echo = new ExtensionEchoInternal();
+
+        loadAssetFileAndWaitForTitle("framesEcho.html");
+        assertEquals(PASS_STRING, getTitleOnUiThread());
+    }
+}
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/LoadTest.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/LoadTest.java
new file mode 100644 (file)
index 0000000..b3aa268
--- /dev/null
@@ -0,0 +1,90 @@
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.chromium.base.test.util.DisabledTest;
+import org.chromium.base.test.util.Feature;
+
+/**
+ * Test suite for load().
+ */
+public class LoadTest extends XWalkViewInternalTestBase {
+    final String expectedTitle = "The WebKit Open Source Project";
+    final String expectedLocalTitle = "Crosswalk Sample Application";
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    // TODO(hengzhi): Since the device issue, it can not access the network,
+    // so disabled this test temporarily. It will be enabled later.
+    // @SmallTest
+    // @Feature({"Load"})
+    @DisabledTest
+    public void testHttpUrl() throws Throwable {
+        final String url = "http://www.webkit.org/";
+
+        loadUrlSync(url);
+        assertEquals(expectedTitle, getTitleOnUiThread());
+    }
+
+    // TODO(hengzhi): Since the device issue, it can not access the network,
+    // so disabled this test temporarily. It will be enabled later.
+    // @SmallTest
+    // @Feature({"Load"})
+    @DisabledTest
+    public void testHttpsUrl() throws Throwable {
+        final String url = "https://www.webkit.org/";
+
+        loadUrlSync(url);
+        assertEquals(expectedTitle, getTitleOnUiThread());
+    }
+
+    @SmallTest
+    @Feature({"Load"})
+    public void testAndroidAssetUrl() throws Throwable {
+        final String url = "file:///android_asset/www/index.html";
+
+        loadUrlSync(url);
+        assertEquals(expectedLocalTitle, getTitleOnUiThread());
+    }
+
+    @SmallTest
+    @Feature({"LoadWithData"})
+    public void testWithData() throws Throwable {
+        final String name = "index.html";
+        String fileContent = getFileContent(name);
+
+        loadDataSync(null, fileContent, "text/html", false);
+        assertEquals(expectedLocalTitle, getTitleOnUiThread());
+
+        loadDataSync(name, fileContent, "text/html", false);
+        assertEquals(expectedLocalTitle, getTitleOnUiThread());
+    }
+
+    @SmallTest
+    @Feature({"ContentScheme"})
+    public void testContentUrl() throws Throwable {
+        final String resource = "content_test";
+        final String contentUrl = TestContentProvider.createContentUrl(resource);
+
+        int count =
+                TestContentProvider.getResourceRequestCount(getActivity(), resource);
+        loadUrlSync(contentUrl);
+        assertEquals(count + 1,
+                TestContentProvider.getResourceRequestCount(getActivity(), resource));
+    }
+
+    @SmallTest
+    @Feature({"Load"})
+    public void testEmpytUrlAndContent() throws Throwable {
+        loadDataAsync(null, null, "text/html", false);
+        Thread.sleep(1000);
+        assertNotNull(getTitleOnUiThread());
+    }
+}
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/OnTitleUpdatedHelper.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/OnTitleUpdatedHelper.java
new file mode 100644 (file)
index 0000000..043992d
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import org.chromium.content.browser.test.util.CallbackHelper;
+
+public class OnTitleUpdatedHelper extends CallbackHelper {
+    private String mTitle;
+
+    public void notifyCalled(String title) {
+        mTitle = title;
+        notifyCalled();
+    }
+
+    public String getTitle() {
+        assert getCallCount() > 0;
+        return mTitle;
+    }
+}
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/TestHelperBridge.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/TestHelperBridge.java
new file mode 100644 (file)
index 0000000..33fd2bc
--- /dev/null
@@ -0,0 +1,208 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.util.Log;
+import android.webkit.ValueCallback;
+import android.webkit.WebResourceResponse;
+
+import java.util.ArrayList;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeoutException;
+import java.util.List;
+
+import org.chromium.content.browser.test.util.CallbackHelper;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper;
+import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageStartedHelper;
+import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnReceivedErrorHelper;
+
+import org.xwalk.core.internal.XWalkViewInternal;
+
+class TestHelperBridge {
+
+    // Two new helper classes for testing new APIs.
+    public class ShouldInterceptLoadRequestHelper extends CallbackHelper {
+        private List<String> mShouldInterceptRequestUrls = new ArrayList<String>();
+        private ConcurrentHashMap<String, WebResourceResponse> mReturnValuesByUrls
+                = new ConcurrentHashMap<String, WebResourceResponse>();
+        // This is read from the IO thread, so needs to be marked volatile.
+        private volatile WebResourceResponse mResourceResponseReturnValue = null;
+        private String mUrlToWaitFor;
+
+        void setReturnValue(WebResourceResponse value) {
+            mResourceResponseReturnValue = value;
+        }
+
+        void setReturnValueForUrl(String url, WebResourceResponse value) {
+            mReturnValuesByUrls.put(url, value);
+        }
+
+        public void setUrlToWaitFor(String url) {
+            mUrlToWaitFor = url;
+        }
+
+        public List<String> getUrls() {
+            assert getCallCount() > 0;
+            return mShouldInterceptRequestUrls;
+        }
+
+        public WebResourceResponse getReturnValue(String url) {
+            WebResourceResponse value = mReturnValuesByUrls.get(url);
+            if (value != null) return value;
+            return mResourceResponseReturnValue;
+        }
+
+        public void notifyCalled(String url) {
+            if (mUrlToWaitFor == null || mUrlToWaitFor.equals(url)) {
+                mShouldInterceptRequestUrls.add(url);
+                notifyCalled();
+            }
+        }
+    }
+
+    public class OnLoadStartedHelper extends CallbackHelper {
+        private String mUrl;
+
+        public String getUrl() {
+            assert getCallCount() > 0;
+            return mUrl;
+        }
+
+        public void notifyCalled(String url) {
+            mUrl = url;
+            notifyCalled();
+        }
+    }
+
+    class OnEvaluateJavaScriptResultHelper extends CallbackHelper {
+        private String mJsonResult;
+        public void evaluateJavascript(XWalkViewInternal xWalkView, String code) {
+            ValueCallback<String> callback =
+                new ValueCallback<String>() {
+                    @Override
+                    public void onReceiveValue(String jsonResult) {
+                        notifyCalled(jsonResult);
+                    }
+                };
+            xWalkView.evaluateJavascript(code, callback);
+            mJsonResult = null;
+        }
+
+        public boolean hasValue() {
+            return mJsonResult != null;
+        }
+
+        public boolean waitUntilHasValue() throws InterruptedException, TimeoutException {
+            waitUntilCriteria(getHasValueCriteria());
+            return hasValue();
+        }
+
+        public String getJsonResultAndClear() {
+            assert hasValue();
+            String result = mJsonResult;
+            mJsonResult = null;
+            return result;
+        }
+
+        public Criteria getHasValueCriteria() {
+            return new Criteria() {
+                @Override
+                public boolean isSatisfied() {
+                    return hasValue();
+                }
+            };
+        }
+
+        public void notifyCalled(String jsonResult) {
+            assert !hasValue();
+            mJsonResult = jsonResult;
+            notifyCalled();
+        }
+    }
+
+    private String mChangedTitle;
+    private final OnPageStartedHelper mOnPageStartedHelper;
+    private final OnPageFinishedHelper mOnPageFinishedHelper;
+    private final OnReceivedErrorHelper mOnReceivedErrorHelper;
+
+    private final OnEvaluateJavaScriptResultHelper mOnEvaluateJavaScriptResultHelper;
+
+    private final OnTitleUpdatedHelper mOnTitleUpdatedHelper;
+    private final ShouldInterceptLoadRequestHelper mShouldInterceptLoadRequestHelper;
+    private final OnLoadStartedHelper mOnLoadStartedHelper;
+
+    public TestHelperBridge() {
+        mOnPageStartedHelper = new OnPageStartedHelper();
+        mOnPageFinishedHelper = new OnPageFinishedHelper();
+        mOnReceivedErrorHelper = new OnReceivedErrorHelper();
+        mOnEvaluateJavaScriptResultHelper = new OnEvaluateJavaScriptResultHelper();
+        mOnTitleUpdatedHelper = new OnTitleUpdatedHelper();
+        mShouldInterceptLoadRequestHelper = new ShouldInterceptLoadRequestHelper();
+        mOnLoadStartedHelper = new OnLoadStartedHelper();
+    }
+
+    public OnPageStartedHelper getOnPageStartedHelper() {
+        return mOnPageStartedHelper;
+    }
+
+    public OnPageFinishedHelper getOnPageFinishedHelper() {
+        return mOnPageFinishedHelper;
+    }
+
+    public OnReceivedErrorHelper getOnReceivedErrorHelper() {
+        return mOnReceivedErrorHelper;
+    }
+
+    public OnEvaluateJavaScriptResultHelper getOnEvaluateJavaScriptResultHelper() {
+        return mOnEvaluateJavaScriptResultHelper;
+    }
+
+    public OnTitleUpdatedHelper getOnTitleUpdatedHelper() {
+        return mOnTitleUpdatedHelper;
+    }
+
+    public ShouldInterceptLoadRequestHelper getShouldInterceptLoadRequestHelper() {
+        return mShouldInterceptLoadRequestHelper;
+    }
+
+    public OnLoadStartedHelper getOnLoadStartedHelper() {
+        return mOnLoadStartedHelper;
+    }
+
+    public void onTitleChanged(String title) {
+        mChangedTitle = title;
+        mOnTitleUpdatedHelper.notifyCalled(title);
+    }
+
+    public String getChangedTitle() {
+        return mChangedTitle;
+    }
+
+    public void onPageStarted(String url) {
+        mOnPageStartedHelper.notifyCalled(url);
+    }
+
+    public void onPageFinished(String url) {
+        mOnPageFinishedHelper.notifyCalled(url);
+    }
+
+    public void onReceivedLoadError(int errorCode, String description, String failingUrl) {
+        mOnReceivedErrorHelper.notifyCalled(errorCode, description, failingUrl);
+    }
+
+    public WebResourceResponse shouldInterceptLoadRequest(String url) {
+        WebResourceResponse response = mShouldInterceptLoadRequestHelper.getReturnValue(url);
+        mShouldInterceptLoadRequestHelper.notifyCalled(url);
+        return response;
+    }
+
+    public void onLoadStarted(String url) {
+        mOnLoadStartedHelper.notifyCalled(url);
+    }
+}
diff --git a/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestBase.java b/src/xwalk/test/android/core_internal/javatests/src/org/xwalk/core/internal/xwview/test/XWalkViewInternalTestBase.java
new file mode 100644 (file)
index 0000000..e5a74d7
--- /dev/null
@@ -0,0 +1,545 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2014 Intel Corporation. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.xwalk.core.internal.xwview.test;
+
+import android.app.Activity;
+import android.content.Context;
+import android.test.ActivityInstrumentationTestCase2;
+import android.util.Log;
+import android.webkit.WebResourceResponse;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.concurrent.Callable;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.TimeUnit;
+
+import junit.framework.Assert;
+
+import org.chromium.content.browser.test.util.CallbackHelper;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
+
+import org.xwalk.core.internal.XWalkNavigationHistoryInternal;
+import org.xwalk.core.internal.XWalkNavigationItemInternal;
+import org.xwalk.core.internal.XWalkResourceClientInternal;
+import org.xwalk.core.internal.XWalkSettings;
+import org.xwalk.core.internal.XWalkUIClientInternal;
+import org.xwalk.core.internal.XWalkViewInternal;
+
+public class XWalkViewInternalTestBase
+       extends ActivityInstrumentationTestCase2<XWalkViewInternalTestRunnerActivity> {
+    protected final static int WAIT_TIMEOUT_SECONDS = 15;
+    private final static String TAG = "XWalkViewInternalTestBase";
+    private XWalkViewInternal mXWalkViewInternal;
+    final TestHelperBridge mTestHelperBridge = new TestHelperBridge();
+
+    class TestXWalkUIClientInternalBase extends XWalkUIClientInternal {
+        TestHelperBridge mInnerContentsClient;
+        public TestXWalkUIClientInternalBase(TestHelperBridge client) {
+            super(getXWalkView());
+            mInnerContentsClient = client;
+        }
+
+        @Override
+        public void onPageLoadStarted(XWalkViewInternal view, String url) {
+            mInnerContentsClient.onPageStarted(url);
+        }
+
+        @Override
+        public void onPageLoadStopped(XWalkViewInternal view, String url, LoadStatusInternal status) {
+            mInnerContentsClient.onPageFinished(url);
+        }
+
+        @Override
+        public void onReceivedTitle(XWalkViewInternal view, String title) {
+            mInnerContentsClient.onTitleChanged(title);
+        }
+    }
+
+    class TestXWalkUIClientInternal extends TestXWalkUIClientInternalBase {
+        public TestXWalkUIClientInternal() {
+            super(mTestHelperBridge);
+        }
+    }
+
+    class TestXWalkResourceClientBase extends XWalkResourceClientInternal {
+        TestHelperBridge mInnerContentsClient;
+        public TestXWalkResourceClientBase(TestHelperBridge client) {
+            super(mXWalkViewInternal);
+            mInnerContentsClient = client;
+        }
+
+        @Override
+        public void onLoadStarted(XWalkViewInternal view, String url) {
+            mInnerContentsClient.onLoadStarted(url);
+        }
+
+        @Override
+        public void onReceivedLoadError(XWalkViewInternal view, int errorCode,
+                String description, String failingUrl) {
+            mInnerContentsClient.onReceivedLoadError(errorCode, description, failingUrl);
+        }
+
+        @Override
+        public WebResourceResponse shouldInterceptLoadRequest(XWalkViewInternal view,
+                String url) {
+            return mInnerContentsClient.shouldInterceptLoadRequest(url);
+        }
+    }
+
+    class TestXWalkResourceClient extends TestXWalkResourceClientBase {
+        public TestXWalkResourceClient() {
+            super(mTestHelperBridge);
+        }
+    }
+
+    void setUIClient(final XWalkUIClientInternal client) {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                getXWalkView().setUIClient(client);
+            }
+        });
+    }
+
+    void setResourceClient(final XWalkResourceClientInternal client) {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                getXWalkView().setResourceClient(client);
+            }
+        });
+    }
+
+    static class ViewPair {
+        private final XWalkViewInternal view0;
+        private final TestHelperBridge client0;
+        private final XWalkViewInternal view1;
+        private final TestHelperBridge client1;
+
+        ViewPair(XWalkViewInternal view0, TestHelperBridge client0,
+                XWalkViewInternal view1, TestHelperBridge client1) {
+            this.view0 = view0;
+            this.client0 = client0;
+            this.view1 = view1;
+            this.client1 = client1;
+        }
+
+        XWalkViewInternal getView0() {
+            return view0;
+        }
+
+        TestHelperBridge getClient0() {
+            return client0;
+        }
+
+        XWalkViewInternal getView1() {
+            return view1;
+        }
+
+        TestHelperBridge getClient1() {
+            return client1;
+        }
+    }
+
+    public XWalkViewInternalTestBase() {
+        super(XWalkViewInternalTestRunnerActivity.class);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        // Must call getActivity() here but not in main thread.
+        final Activity activity = getActivity();
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mXWalkViewInternal = new XWalkViewInternal(activity, activity);
+                getActivity().addView(mXWalkViewInternal);
+                mXWalkViewInternal.setUIClient(new TestXWalkUIClientInternal());
+                mXWalkViewInternal.setResourceClient(new TestXWalkResourceClient());
+            }
+        });
+    }
+
+    protected boolean pollOnUiThread(final Callable<Boolean> callable) throws Exception {
+        return CriteriaHelper.pollForCriteria(new Criteria() {
+            @Override
+            public boolean isSatisfied() {
+                try {
+                    return runTestOnUiThreadAndGetResult(callable);
+                } catch (Throwable e) {
+                    return false;
+                }
+            }
+        });
+    }
+
+    protected void loadJavaScriptUrl(final String url) throws Exception {
+        if (!url.startsWith("javascript:")) {
+            Log.w(TAG, "loadJavascriptUrl only accepts javascript: url");
+            return;
+        }
+        loadUrlAsync(url);
+    }
+
+    protected void loadUrlSync(final String url) throws Exception {
+        CallbackHelper pageFinishedHelper = mTestHelperBridge.getOnPageFinishedHelper();
+        int currentCallCount = pageFinishedHelper.getCallCount();
+        loadUrlAsync(url);
+
+        pageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
+                TimeUnit.SECONDS);
+    }
+
+    protected void loadUrlAsync(final String url) throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mXWalkViewInternal.load(url, null);
+            }
+        });
+    }
+
+    protected void loadDataSync(final String url, final String data, final String mimeType,
+            final boolean isBase64Encoded) throws Exception {
+        CallbackHelper pageFinishedHelper = mTestHelperBridge.getOnPageFinishedHelper();
+        int currentCallCount = pageFinishedHelper.getCallCount();
+        loadDataAsync(url, data, mimeType, isBase64Encoded);
+        pageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
+                TimeUnit.SECONDS);
+    }
+
+    protected void loadDataAsync(final String url, final String data, final String mimeType,
+             final boolean isBase64Encoded) throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mXWalkViewInternal.load(url, data);
+            }
+        });
+    }
+
+    protected void loadUrlSyncByContent(final XWalkViewInternal xWalkViewInternal,
+            final TestHelperBridge contentsClient,
+            final String url) throws Exception {
+        CallbackHelper pageFinishedHelper = contentsClient.getOnPageFinishedHelper();
+        int currentCallCount = pageFinishedHelper.getCallCount();
+        loadUrlAsyncByContent(xWalkViewInternal, url);
+
+        pageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
+                TimeUnit.SECONDS);
+    }
+
+    protected void loadUrlAsyncByContent(final XWalkViewInternal xWalkViewInternal,
+            final String url) throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                xWalkViewInternal.load(url, null);
+            }
+        });
+    }
+
+    protected String getTitleOnUiThread() throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<String>() {
+            @Override
+            public String call() throws Exception {
+                return mXWalkViewInternal.getTitle();
+            }
+        });
+    }
+
+    protected <R> R runTestOnUiThreadAndGetResult(Callable<R> callable)
+            throws Exception {
+        FutureTask<R> task = new FutureTask<R>(callable);
+        getInstrumentation().waitForIdleSync();
+        getInstrumentation().runOnMainSync(task);
+        return task.get();
+    }
+
+    protected String getFileContent(String fileName) {
+        try {
+            Context context = getInstrumentation().getContext();
+            InputStream inputStream = context.getAssets().open(fileName);
+            int size = inputStream.available();
+            byte buffer[] = new byte[size];
+            inputStream.read(buffer);
+            inputStream.close();
+
+            String fileContent = new String(buffer);
+            return fileContent;
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    protected String getTitleOnUiThreadByContent(final XWalkViewInternal xWalkViewInternal) throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<String>() {
+            @Override
+            public String call() throws Exception {
+                String title = xWalkViewInternal.getTitle();
+                return title;
+            }
+        });
+    }
+
+    protected XWalkSettings getXWalkSettingsOnUiThreadByContent(
+            final XWalkViewInternal xWalkViewInternal) throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<XWalkSettings>() {
+            @Override
+            public XWalkSettings call() throws Exception {
+                return xWalkViewInternal.getSettings();
+            }
+        });
+    }
+
+    protected XWalkViewInternal createXWalkViewContainerOnMainSync(
+            final Context context,
+            final XWalkUIClientInternal uiClient,
+            final XWalkResourceClientInternal resourceClient) throws Exception {
+        final AtomicReference<XWalkViewInternal> xWalkViewContainer =
+                new AtomicReference<XWalkViewInternal>();
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                xWalkViewContainer.set(new XWalkViewInternal(context, getActivity()));
+                getActivity().addView(xWalkViewContainer.get());
+                xWalkViewContainer.get().setUIClient(uiClient);
+                xWalkViewContainer.get().setResourceClient(resourceClient);
+            }
+        });
+
+        return xWalkViewContainer.get();
+    }
+
+    protected ViewPair createViewsOnMainSync(final TestHelperBridge helperBridge0,
+                                             final TestHelperBridge helperBridge1,
+                                             final XWalkUIClientInternal uiClient0,
+                                             final XWalkUIClientInternal uiClient1,
+                                             final XWalkResourceClientInternal resourceClient0,
+                                             final XWalkResourceClientInternal resourceClient1,
+                                             final Context context) throws Throwable {
+        final XWalkViewInternal walkView0 = createXWalkViewContainerOnMainSync(context,
+                uiClient0, resourceClient0);
+        final XWalkViewInternal walkView1 = createXWalkViewContainerOnMainSync(context,
+                uiClient1, resourceClient1);
+        final AtomicReference<ViewPair> viewPair = new AtomicReference<ViewPair>();
+
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                viewPair.set(new ViewPair(walkView0, helperBridge0, walkView1, helperBridge1));
+            }
+        });
+
+        return viewPair.get();
+    }
+
+    protected void loadAssetFile(String fileName) throws Exception {
+        String fileContent = getFileContent(fileName);
+        loadDataSync(fileName, fileContent, "text/html", false);
+    }
+
+    public void loadAssetFileAndWaitForTitle(String fileName) throws Exception {
+        CallbackHelper getTitleHelper = mTestHelperBridge.getOnTitleUpdatedHelper();
+        int currentCallCount = getTitleHelper.getCallCount();
+        String fileContent = getFileContent(fileName);
+
+        loadDataSync(fileName, fileContent, "text/html", false);
+
+        getTitleHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
+                TimeUnit.SECONDS);
+    }
+
+    protected XWalkViewInternal getXWalkView() {
+        return mXWalkViewInternal;
+    }
+
+    protected void runTestWaitPageFinished(Runnable runnable) throws Exception{
+        CallbackHelper pageFinishedHelper = mTestHelperBridge.getOnPageFinishedHelper();
+        int currentCallCount = pageFinishedHelper.getCallCount();
+        runnable.run();
+        pageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
+                TimeUnit.SECONDS);
+    }
+
+    protected void reloadSync(final int mode) throws Exception {
+        runTestWaitPageFinished(new Runnable(){
+            @Override
+            public void run() {
+                getInstrumentation().runOnMainSync(new Runnable() {
+                    @Override
+                    public void run() {
+                        mXWalkViewInternal.reload(mode);
+                    }
+                });
+            }
+        });
+    }
+
+    protected void goBackSync() throws Throwable {
+        runTestWaitPageFinished(new Runnable(){
+            @Override
+            public void run() {
+                getInstrumentation().runOnMainSync(new Runnable() {
+                    @Override
+                    public void run() {
+                        mXWalkViewInternal.getNavigationHistory().navigate(
+                            XWalkNavigationHistoryInternal.DirectionInternal.BACKWARD, 1);
+                    }
+                });
+            }
+        });
+    }
+
+    protected void goForwardSync() throws Throwable {
+        runTestWaitPageFinished(new Runnable(){
+            @Override
+            public void run() {
+                getInstrumentation().runOnMainSync(new Runnable() {
+                    @Override
+                    public void run() {
+                        mXWalkViewInternal.getNavigationHistory().navigate(
+                            XWalkNavigationHistoryInternal.DirectionInternal.FORWARD, 1);
+                    }
+                });
+            }
+        });
+    }
+
+    protected void clearHistoryOnUiThread() throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mXWalkViewInternal.getNavigationHistory().clear();
+            }
+        });
+    }
+
+    protected boolean canGoBackOnUiThread() throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mXWalkViewInternal.getNavigationHistory().canGoBack();
+            }
+        });
+    }
+
+    protected boolean canGoForwardOnUiThread() throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mXWalkViewInternal.getNavigationHistory().canGoForward();
+            }
+        });
+    }
+
+    protected int historySizeOnUiThread() throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<Integer>() {
+            @Override
+            public Integer call() {
+                return mXWalkViewInternal.getNavigationHistory().size();
+            }
+        });
+    }
+
+    protected boolean hasItemAtOnUiThread(final int index) throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return mXWalkViewInternal.getNavigationHistory().hasItemAt(index);
+            }
+        });
+    }
+
+    protected XWalkNavigationItemInternal getItemAtOnUiThread(final int index) throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<XWalkNavigationItemInternal>() {
+            @Override
+            public XWalkNavigationItemInternal call() {
+                return mXWalkViewInternal.getNavigationHistory().getItemAt(index);
+            }
+        });
+    }
+
+    protected XWalkNavigationItemInternal getCurrentItemOnUiThread() throws Throwable {
+        return runTestOnUiThreadAndGetResult(new Callable<XWalkNavigationItemInternal>() {
+            @Override
+            public XWalkNavigationItemInternal call() {
+                return mXWalkViewInternal.getNavigationHistory().getCurrentItem();
+            }
+        });
+    }
+
+    protected String executeJavaScriptAndWaitForResult(final String code) throws Exception {
+        final TestHelperBridge.OnEvaluateJavaScriptResultHelper helper =
+                mTestHelperBridge.getOnEvaluateJavaScriptResultHelper();
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                helper.evaluateJavascript(mXWalkViewInternal, code);
+            }
+        });
+        helper.waitUntilHasValue();
+        Assert.assertTrue("Failed to retrieve JavaScript evaluation results.", helper.hasValue());
+        return helper.getJsonResultAndClear();
+    }
+
+    protected ViewPair createViews() throws Throwable {
+        TestHelperBridge helperBridge0 = new TestHelperBridge();
+        TestHelperBridge helperBridge1 = new TestHelperBridge();
+        TestXWalkUIClientInternalBase uiClient0 = new TestXWalkUIClientInternalBase(helperBridge0);
+        TestXWalkUIClientInternalBase uiClient1 = new TestXWalkUIClientInternalBase(helperBridge1);
+        TestXWalkResourceClientBase resourceClient0 =
+                new TestXWalkResourceClientBase(helperBridge0);
+        TestXWalkResourceClientBase resourceClient1 =
+                new TestXWalkResourceClientBase(helperBridge1);
+        ViewPair viewPair =
+                createViewsOnMainSync(helperBridge0, helperBridge1, uiClient0, uiClient1,
+                        resourceClient0, resourceClient1, getActivity());
+
+        return viewPair;
+    }
+
+    protected String getUrlOnUiThread() throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<String>() {
+            @Override
+            public String call() throws Exception {
+                return mXWalkViewInternal.getUrl();
+            }
+        });
+    }
+
+    protected void clearCacheOnUiThread(final boolean includeDiskFiles) throws Exception {
+        getInstrumentation().runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                mXWalkViewInternal.clearCache(includeDiskFiles);
+            }
+        });
+    }
+
+    protected String getAPIVersionOnUiThread() throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<String>() {
+            @Override
+            public String call() throws Exception {
+                return mXWalkViewInternal.getAPIVersion();
+            }
+        });
+    }
+
+    protected String getXWalkVersionOnUiThread() throws Exception {
+        return runTestOnUiThreadAndGetResult(new Callable<String>() {
+            @Override
+            public String call() throws Exception {
+                return mXWalkViewInternal.getXWalkVersion();
+            }
+        });
+    }
+}
index c689b0a..6d9c988 100644 (file)
@@ -3,9 +3,5 @@
   "version": "1.0.0",
   "description": "CSP test with unsafe-inline script-src",
   "content_security_policy": "object-src 'self'; script-src 'unsafe-inline'",
-  "app": {
-    "launch": {
-      "local_path": "csp.html"
-    }
-  }
+  "start_url": "csp.html"
 }
index d79dcb3..908bd02 100644 (file)
@@ -3,9 +3,5 @@
   "version": "1.0.0",
   "description": "CSP test with self script-src",
   "content_security_policy": "object-src 'self'; script-src 'self'",
-  "app": {
-    "launch": {
-      "local_path": "csp.html"
-    }
-  }
+  "start_url": "csp.html"
 }
index 692fae5..db8bcad 100644 (file)
@@ -2,9 +2,5 @@
   "name": "Cross Origin XHR Test",
   "version": "1.0.0",
   "description": "Test for Cross-Origin XHR without xwalk_hosts",
-  "app": {
-    "launch": {
-      "local_path": "cross_origin.html"
-    }
-  }
+  "start_url": "cross_origin.html"
 }
index c7a64e2..a500772 100644 (file)
@@ -2,11 +2,7 @@
   "name": "Cross Origin XHR Test",
   "version": "1.0.0",
   "description": "Test for Cross-Origin XHR",
-  "app": {
-    "launch": {
-      "local_path": "cross_origin.html"
-    }
-  },
+  "start_url": "cross_origin.html",
   "xwalk_hosts": [
     "http://localhost:4444/*"
   ]
index 75ffbaa..aadd4f4 100644 (file)
         'runtime/browser/ui/native_app_window_tizen.h',
         'runtime/browser/ui/native_app_window_views.cc',
         'runtime/browser/ui/native_app_window_views.h',
+        'runtime/browser/ui/splash_screen.cc',
+        'runtime/browser/ui/splash_screen.h',
         'runtime/browser/ui/taskbar_util.h',
         'runtime/browser/ui/taskbar_util_win.cc',
         'runtime/browser/ui/top_view_layout_views.cc',
         'runtime/common/xwalk_runtime_features.h',
         'runtime/common/xwalk_switches.cc',
         'runtime/common/xwalk_switches.h',
+        'runtime/common/xwalk_system_locale.cc',
+        'runtime/common/xwalk_system_locale.h',
         'runtime/renderer/android/xwalk_render_process_observer.cc',
         'runtime/renderer/android/xwalk_render_process_observer.h',
         'runtime/renderer/android/xwalk_permission_client.cc',
         {
           'dependencies': [
             # For internal testing.
+            'xwalk_core_internal_shell_apk',
+            'xwalk_core_internal_test_apk',
             'xwalk_core_shell_apk',
             'xwalk_core_test_apk',
             'xwalk_runtime_shell_apk',
index 2d9d986..e31cc2e 100644 (file)
         'is_test_apk': 1,
         'additional_input_paths': [
           '<(PRODUCT_DIR)/xwalk_xwview_test/assets/add_js_interface.html',
-          '<(PRODUCT_DIR)/xwalk_xwview_test/assets/broadcast.html',
-          '<(PRODUCT_DIR)/xwalk_xwview_test/assets/echo.html',
-          '<(PRODUCT_DIR)/xwalk_xwview_test/assets/echoSync.html',
-          '<(PRODUCT_DIR)/xwalk_xwview_test/assets/framesEcho.html',
           '<(PRODUCT_DIR)/xwalk_xwview_test/assets/geolocation.html',
           '<(PRODUCT_DIR)/xwalk_xwview_test/assets/index.html',
           '<(PRODUCT_DIR)/xwalk_xwview_test/assets/navigator.online.html',
           'destination': '<(PRODUCT_DIR)/xwalk_xwview_test/assets',
           'files': [
             'test/android/data/add_js_interface.html',
-            'test/android/data/broadcast.html',
-            'test/android/data/echo.html',
-            'test/android/data/echoSync.html',
-            'test/android/data/framesEcho.html',
             'test/android/data/geolocation.html',
             'test/android/data/index.html',
             'test/android/data/navigator.online.html',
       ],
       'includes': [ '../build/java_apk.gypi' ],
     },
+    {
+      'target_name': 'xwalk_core_internal_shell_apk',
+      'type': 'none',
+      'dependencies': [
+        '../third_party/android_tools/android_tools.gyp:android_support_v13_javalib',
+        'libxwalkcore',
+        'xwalk_core_extensions_java',
+        'xwalk_core_internal_java',
+        'xwalk_core_internal_shell_apk_pak',
+      ],
+      'variables': {
+        'apk_name': 'XWalkCoreInternalShell',
+        'java_in_dir': 'runtime/android/core_internal_shell',
+        'resource_dir': 'runtime/android/core_internal_shell/res',
+        'native_lib_target': 'libxwalkcore',
+        'additional_input_paths': [
+          '<(PRODUCT_DIR)/xwalk_internal_xwview/assets/www/index.html',
+          '<(PRODUCT_DIR)/xwalk_internal_xwview/assets/xwalk.pak',
+        ],
+        'conditions': [
+          ['icu_use_data_file_flag==1', {
+            'additional_input_paths': [
+              '<(PRODUCT_DIR)/xwalk_internal_xwview/assets/icudtl.dat',
+            ],
+          }],
+        ],
+        'asset_location': '<(PRODUCT_DIR)/xwalk_internal_xwview/assets',
+      },
+      'copies': [
+        {
+          'destination': '<(PRODUCT_DIR)/xwalk_internal_xwview/assets/www',
+          'files': [
+            'test/android/data/index.html',
+          ],
+        }
+      ],
+      'includes': [ '../build/java_apk.gypi' ],
+    },
+    {
+      'target_name': 'xwalk_core_internal_shell_apk_pak',
+      'type': 'none',
+      'dependencies': [
+        'xwalk_pak',
+      ],
+      'copies': [
+        {
+          'destination': '<(PRODUCT_DIR)/xwalk_internal_xwview/assets',
+          'files': [
+            '<(PRODUCT_DIR)/xwalk.pak',
+          ],
+          'conditions': [
+            ['icu_use_data_file_flag==1', {
+              'files': [
+                '<(PRODUCT_DIR)/icudtl.dat',
+              ],
+            }],
+          ],
+        },
+      ],
+    },
+    {
+      'target_name': 'xwalk_core_internal_shell_apk_java',
+      'type': 'none',
+      'dependencies': [
+        'xwalk_core_internal_shell_apk',
+      ],
+      'includes': [ '../build/apk_fake_jar.gypi' ],
+    },
+    {
+      'target_name': 'xwalk_core_internal_test_apk',
+      'type': 'none',
+      'dependencies': [
+        '../base/base.gyp:base_java_test_support',
+        '../content/content_shell_and_tests.gyp:content_java_test_support',
+        '../net/net.gyp:net_java_test_support',
+        '../tools/android/md5sum/md5sum.gyp:md5sum',
+        '../tools/android/forwarder2/forwarder.gyp:forwarder2',
+        'xwalk_core_internal_shell_apk_java',
+      ],
+      'variables': {
+        'apk_name': 'XWalkCoreInternalTest',
+        'java_in_dir': 'test/android/core_internal/javatests',
+        'is_test_apk': 1,
+        'additional_input_paths': [
+          '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets/broadcast.html',
+          '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets/echo.html',
+          '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets/echoSync.html',
+          '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets/framesEcho.html',
+          '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets/index.html',
+        ],
+        'asset_location': '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets',
+      },
+      'copies': [
+        {
+          'destination': '<(PRODUCT_DIR)/xwalk_internal_xwview_test/assets',
+          'files': [
+            'test/android/data/broadcast.html',
+            'test/android/data/echo.html',
+            'test/android/data/echoSync.html',
+            'test/android/data/framesEcho.html',
+            'test/android/data/index.html',
+          ],
+        },
+      ],
+      'includes': [ '../build/java_apk.gypi' ],
+    },
   ],
 }