[dgit import tarball webkit2gtk 2.6.2+dfsg1-4 webkit2gtk_2.6.2+dfsg1-4.debian.tar.xz]
--- /dev/null
+webkit2gtk (2.6.2+dfsg1-4) unstable; urgency=medium
+
+ * debian/patches/fix-ftbfs-hppa.patch:
+ + Fix FTBFS in HPPA (Closes: #776281).
+ * debian/libwebkit2gtk-4.0-doc.links:
+ + Add symbolic link to make the documentation appear in devhelp
+ (Closes: #777589).
+ * debian/patches/fix-gstreamer-leak.patch:
+ + Fix memory leak in GStreamer code.
+ * debian/patches/remote-inspector.patch:
+ + Make the remote inspector work again.
+ * debian/patches/render-block-cast.patch:
+ + Fix invalid cast in WebCore::RenderBlock::blockSelectionGaps.
+ * debian/patches/fix-jit-crash.patch:
+ + Fix crash in SpeculativeJIT::compile() when loading theblaze.com.
+ * debian/patches/fix-null-renderer.patch:
+ + NULL pointer check in HTMLPlugInImageElement.
+ * debian/patches/fix-integer-overflow.patch:
+ + Fix crash due to integer overflow.
+ * debian/patches/serialized-script-value.patch:
+ + Prevent unsafe access to internal types.
+ * debian/patches/http-latin1.patch:
+ + HTTP header values should be treated as latin1, not UTF-8.
+ * debian/patches/fix-null-string-conversion.patch:
+ + Add NULL check to convertToUTF8String().
+ * debian/patches/fix-timers-animations.patch:
+ + Timers might never be fired during animations.
+ * debian/patches/fix-ax-crash.patch:
+ + Recursive crash at WebCore::accessibleNameForNode.
+ * debian/patches/fix-clearselection-segfault.patch:
+ + Fix segfault when calling clearSelection on a detached RenderObject.
+ * debian/patches/fix-date.patch:
+ + String(new Date(Mar 30 2014 01:00:00)) is wrong in CET.
+ * debian/patches/check-tls-errors.patch:
+ + Check TLS errors as soon as they are set in the SoupMessage.
+
+ -- Alberto Garcia <berto@igalia.com> Fri, 06 Mar 2015 09:33:11 +0200
+
+webkit2gtk (2.6.2+dfsg1-3) unstable; urgency=medium
+
+ * debian/patches/no-ssl-record-version.patch:
+ + Don't use a SSL3.0 record version in client hello.
+ * debian/patches/nullptr-accessibilitymenulistoption.patch:
+ + Check for NULL pointers in AccessibilityMenuListOption.
+ * debian/patches/nullptr-applystylecommand.patch:
+ + Check for NULL pointer in ApplyStyleCommand.
+ * debian/patches/nullptr-frameprogresstracker.patch:
+ + Check for NULL pointer in FrameProgressTracker.
+ * debian/patches/render-text-control.patch:
+ + Check for NULL pointer in SearchInputType.
+ * debian/patches/twitter-inserted-text.patch:
+ + Fix inserted text when typing in the Twitter message box.
+ * debian/patches/protect-document.patch:
+ + Protect Document in ProcessingInstruction::setXSLStyleSheet(). This
+ is a security fix, see https://codereview.chromium.org/579133004.
+ * debian/patches/at-spi2.patch:
+ + Accessible values are no longer accessible via AT-SPI2.
+ * debian/patches/ax-focus-events.patch:
+ + Fix accessible focus events in non-focused combo boxes.
+
+ -- Alberto Garcia <berto@igalia.com> Sun, 07 Dec 2014 17:53:25 +0100
+
+webkit2gtk (2.6.2+dfsg1-2) unstable; urgency=medium
+
+ * debian/patches/fix-mips64-build.patch:
+ + Fix mips64el build (Closes: #767598).
+ * debian/patches/flash-crash.patch:
+ + Fix crash in the Flash player (Closes: #768341).
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 10 Nov 2014 11:44:56 +0200
+
+webkit2gtk (2.6.2+dfsg1-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Alberto Garcia <berto@igalia.com> Thu, 23 Oct 2014 12:17:48 +0300
+
+webkit2gtk (2.6.1+dfsg1-2) unstable; urgency=medium
+
+ * debian/rules:
+ + Disable debugging symbols in armel and kfreebsd-amd64.
+ * debian/control:
+ + Bump Standards-Version to 3.9.6; no changes needed.
+
+ -- Alberto Garcia <berto@igalia.com> Wed, 15 Oct 2014 15:03:26 +0300
+
+webkit2gtk (2.6.1+dfsg1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/patches/fix-header-template.patch:
+ + Remove.
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 13 Oct 2014 15:18:12 +0300
+
+webkit2gtk (2.6.0+dfsg1-3) unstable; urgency=medium
+
+ * debian/patches/atomic_build_fix.patch:
+ + Make -latomic work also when --as-needed is present (Closes:
+ 764193).
+ * debian/rules:
+ + Don't build -dbg packages if we don't have debugging symbols.
+ + Disable debugging symbols in armhf (Closes: #764192).
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 06 Oct 2014 15:18:03 +0300
+
+webkit2gtk (2.6.0+dfsg1-2) unstable; urgency=medium
+
+ [ Alberto Garcia ]
+ * debian/patches/atomic_build_fix.patch:
+ + Add -latomic also to shared libraries.
+
+ [ Emilio Pozuelo Monfort ]
+ * debian/rules:
+ + Disable debugging symbols on powerpc. Should fix the build
+ as otherwise the linker needs too much memory and fails.
+ + Disable JIT on armel. Should fix the build.
+ * Upload to unstable.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Thu, 02 Oct 2014 00:42:20 +0200
+
+webkit2gtk (2.6.0+dfsg1-1) experimental; urgency=medium
+
+ * New upstream release.
+ * debian/patches/fix-textrel-x86.patch,
+ debian/patches/change-libexec-dir.patch:
+ + Remove.
+ * debian/patches/dfg-jit.patch,
+ debian/patches/install-minibrowser.patch,
+ debian/patches/restore_sparc_code.patch:
+ + Refresh.
+ * debian/patches/atomic_build_fix.patch:
+ + Add -latomic to fix build in some architectures.
+ * debian/patches/css-image-set.patch:
+ + Enable CSS_IMAGE_SET, required in order to display all inspector
+ icons.
+ * debian/rules:
+ + Disable JIT completely in mips and mipsel, it does not build at the
+ moment, see https://bugs.webkit.org/show_bug.cgi?id=136753.
+ + Enable JIT in armel and armhf.
+ * debian/copyright:
+ + Update with all the changes in 2.6.0 (Closes: #760477).
+ * debian/libwebkit2gtk-4.0-37.symbols:
+ + Update.
+ * Make gir1.2- and -dev packages multi-arch compliant:
+ + debian/gir1.2-javascriptcoregtk-4.0.install,
+ debian/gir1.2-webkit2-4.0.install:
+ - Put .typelib files in /usr/lib/<arch>/girepository-1.0.
+ + debian/control:
+ - Add Multi-Arch field to the affected packages.
+ + debian/gir1.2-javascriptcoregtk-4.0.links,
+ debian/libjavascriptcoregtk-4.0-dev.links:
+ - Remove old compatibility links.
+ + debian/patches/fix-header-template.patch:
+ - Make WebKitEnumTypes.h equal in all builds by not including the
+ name of the build directory.
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 29 Sep 2014 15:48:56 +0300
+
+webkit2gtk (2.5.3+dfsg1-1) experimental; urgency=medium
+
+ * New upstream release from the upcoming 2.6 branch.
+ + Rename source package to webkit2gtk, since now WebKitGTK+ only
+ provides the new WebKit2 API. We have to keep the old webkitgtk
+ packages around until all apps using the old API have ben ported.
+ + Add the +dfsg1 suffix to the version number since we have to remove
+ a few non-free files from the source tarball.
+ * debian/gbp.conf:
+ + Update upstream branch name.
+ * debian/watch:
+ + Add dversionmangle rule to strip +dfsg1 from the package.
+ * debian/rules:
+ + Rewrite completely using the debhelper sequencer and build with
+ cmake instead of autotools.
+ + Disable JIT and MacroAssembler in all architectures unless we know
+ it works.
+ + Add get-orig-source target.
+ * debian/control:
+ + Remove all packages that use the old WebKit API, as well as the
+ -common packages.
+ + libjavascriptcoregtk-3.0-0 => libjavascriptcoregtk-4.0-18.
+ + libwebkit2gtk-3.0-25 => libwebkit2gtk-4.0-37.
+ + Don't depend on any specific compiler.
+ + Add build dependencies on cmake and slimit.
+ + Replace libgeoclue-dev with geoclue-2.0.
+ + Split libwebkit2gtk-4.0-doc from the -dev package.
+ + Remove Mike Hommey from the Uploaders field.
+ * debian/copyright:
+ + Make it compliant with the copyright format v1.0 and refactor the
+ licenses a bit.
+ * debian/jquery-1.9.1.js:
+ + Provide uncompressed version of jquery to replace the compressed one
+ that had to be removed from the original tarball.
+ * debian/patches/enable_llint.patch,
+ debian/patches/02_notebook_scroll.patch,
+ debian/patches/atomic_build_fix.patch,
+ debian/patches/fix-gtkdoc-error.patch,
+ debian/patches/ftbfs-armhf.patch:
+ + Remove.
+ * debian/patches/dfg-jit.patch,
+ debian/patches/local-label-string-hurd.patch,
+ debian/patches/restore_sparc_code.patch,
+ debian/patches/fix-textrel-x86.patch:
+ + Refresh.
+ * debian/patches/install-minibrowser.patch:
+ + Rewrite to make it work with cmake.
+ * debian/patches/change-libexec-dir.patch:
+ + Install all auxiliary binaries in the same directory.
+ * debian/source/lintian-overrides:
+ + Remove.
+ * debian/libwebkit2gtk-4.0-37.lintian-overrides:
+ + Override shared-lib-without-dependency-information warning in
+ libwebkit2gtkinjectedbundle.so, that's a module used internally
+ by webkit.
+ * debian/symbols.filter:
+ + Remove.
+
+ -- Alberto Garcia <berto@igalia.com> Wed, 27 Aug 2014 06:18:56 +0000
+
+webkitgtk (2.4.1-1) experimental; urgency=medium
+
+ * New upstream release.
+ * debian/patches/ftbfs-armhf.patch:
+ + Fix FTBFS in armhf.
+ * debian/patches/local-label-string-hurd.patch:
+ + Fix FTBFS in hurd-i386.
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 14 Apr 2014 20:22:51 +0000
+
+webkitgtk (2.4.0-1) experimental; urgency=medium
+
+ * New upstream stable release.
+ * debian/patches/fix-textrel-x86.patch:
+ + Remove TEXTREL tag in x86.
+
+ -- Alberto Garcia <berto@igalia.com> Tue, 25 Mar 2014 11:18:17 +0200
+
+webkitgtk (2.3.92-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/patches/dfg-jit.patch,
+ debian/patches/install-minibrowser.patch:
+ + Refresh.
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 17 Mar 2014 21:07:56 +0000
+
+webkitgtk (2.3.90-1) experimental; urgency=medium
+
+ * New upstream release.
+ * debian/libwebkitgtk-1.0-0.symbols,
+ debian/libwebkitgtk-3.0-0.symbols,
+ debian/libwebkit2gtk-3.0-25.symbols:
+ + Add new symbols.
+ * debian/control:
+ + Update package descriptions.
+ + Remove redundant Priority fields from libwebkitgtk-{1,3}.0-common.
+ + Remove duplicate build dependency on flex.
+ * debian/patches/install-minibrowser.patch:
+ + Ship the MiniBrowser binary, which is useful for testing purposes.
+ * debian/patches/dfg-jit.patch:
+ + Enable DFG JIT on FreeBSD and Hurd.
+ * debian/patches/fix-gtkdoc-error.patch:
+ + Fix error in gtk-doc generation.
+ * debian/patches/02_notebook_scroll.patch:
+ + Refresh.
+
+ -- Alberto Garcia <berto@igalia.com> Tue, 18 Feb 2014 11:33:19 +0000
+
+webkitgtk (2.3.5-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/patches/02_notebook_scroll.patch,
+ debian/patches/enable_llint.patch,
+ debian/patches/restore_sparc_code.patch:
+ + Refresh.
+ * debian/patches/x86_asm_fix.patch:
+ + Remove, this has been merged upstream.
+ * Build a libjavascriptcoregtk-3.0-bin package with the jsc interpreter
+ + debian/control: add the new entry.
+ + debian/rules: rename the binary from jsc-3 to jsc and add the
+ suitable debhelper rules.
+ + debian/libjavascriptcoregtk-3.0-bin.install: list package contents.
+ + debian/libjavascriptcoregtk-3.0-bin.manpages,
+ debian/jsc.1: add manual page.
+ * debian/libwebkit2gtk-3.0-25.symbols:
+ + Add new symbols.
+
+ -- Alberto Garcia <berto@igalia.com> Fri, 07 Feb 2014 10:22:37 +0000
+
+webkitgtk (2.3.4-4) experimental; urgency=low
+
+ * debian/patches/atomic_build_fix.patch:
+ + Update the patch with a fix that actually works.
+
+ -- Alberto Garcia <berto@igalia.com> Sat, 01 Feb 2014 09:18:42 +0000
+
+webkitgtk (2.3.4-3) experimental; urgency=low
+
+ * debian/patches/atomic_build_fix.patch:
+ + Add -latomic to fix build in some architectures.
+ * debian/patches/x86_asm_fix.patch:
+ + Update patch with a better fix.
+ * debian/patches/enable_llint.patch:
+ + Refresh.
+
+ -- Alberto Garcia <berto@igalia.com> Tue, 28 Jan 2014 10:47:31 +0000
+
+webkitgtk (2.3.4-2) experimental; urgency=low
+
+ * debian/patches/x86_asm_fix.patch:
+ + Fix build failure on x86 due to incorrect asm generation.
+ * debian/patches/enable_llint.patch:
+ + Enable LLINT in FreeBSD and Hurd.
+ * debian/patches/restore_sparc_code.patch:
+ + Restore removed SPARC code.
+
+ -- Alberto Garcia <berto@igalia.com> Thu, 16 Jan 2014 08:30:14 +0000
+
+webkitgtk (2.3.4-1) experimental; urgency=low
+
+ * New upstream release.
+ * WebKit is now built in fast-install mode by default, there's no need
+ to run chrpath anymore.
+ + debian/rules: remove it from the installation process.
+ + debian/control: don't build depend on it.
+ * debian/libwebkit2gtk-3.0-25.symbols:
+ + Added new symbols.
+
+ -- Alberto Garcia <berto@igalia.com> Mon, 13 Jan 2014 19:48:47 +0000
+
+webkitgtk (2.3.3-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/patches/02_notebook_scroll.patch:
+ + Refreshed.
+ * Multi-arch support:
+ + debian/control: Add Multi-Arch and Pre-Depends fields to all
+ packages with shared libraries.
+ + debian/*.install: replace usr/lib/ with usr/lib/*/, but keep
+ GObject Introspection .typelib files in /usr/lib
+ + debian/rules: adapt libdir and libexecdir to multi-arch.
+ * debian/control:
+ + Add myself to Uploaders.
+ + Update package descriptions.
+ + Build depend on libpng-dev, not libpng12-dev.
+ + Bump Standards-Version to 3.9.5; no changes needed.
+ + Use canonical versions of VCS URLs.
+ * debian/rules:
+ + Support noopt and debug in DEB_BUILD_OPTIONS.
+ + Disable JIT and MacroAssembler on powerpcspe and mips64el.
+ + No need to pass --enable-wayland-target anymore, it's automatically
+ enabled now.
+ + Disable parallel builds since they're unstable at the moment.
+ + Don't create the libexec dirs manually, this is no longer needed.
+ + Remove rpath from WebKitPluginProcess and WebKitWebProcess.
+ * debian/libwebkitgtk-1.0-0.symbols,
+ debian/libwebkitgtk-3.0-0.symbols,
+ debian/libwebkit2gtk-3.0-25.symbols:
+ + Updated for the new symbols.
+
+ -- Alberto Garcia <berto@igalia.com> Fri, 03 Jan 2014 23:49:07 +0000
+
+webkitgtk (2.3.2-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/patches/40_hppa_platform_h.patch,
+ debian/patches/41_hppa_build_fix.patch,
+ debian/patches/50_bsd-hurd-build-fix.patch,
+ debian/patches/60_add-missing-include.patch,
+ debian/patches/61_add-another-missing-include.patch,
+ debian/patches/70_Add-stubs-for-missing-symbols-in-dom-bindings.patch:
+ + Removed, merged upstream.
+ * debian/patches/30_gtkdoc_fixxref_warnings.patch:
+ + Drop unapplied patch that we don't need anymore.
+ * debian/patches/13_thread-safe-icon-db.patch:
+ + Drop unapplied patch that was fixed upstream a long time ago.
+ * debian/patches/12_large-mem-page.patch:
+ + Drop unapplied patch, it hasn't been applied in quite some time
+ and we haven't heard of any complains. Besides, the patch no
+ longer applies as the code it touched has been largely reworked
+ or removed.
+ * debian/patches/14_ia64-wide-ptr.patch,
+ debian/patches/15_ia64-use-system-malloc.patch:
+ + Dropped. The former wasn't been applied and needs rebasing if still
+ needed. The second is probably useless given all the other patches
+ that were needed on IA64 are gone. It may not be needed anymore as
+ the code that the patch tries to workaround may be fixed now.
+ If these or any other patches are needed for IA64, they should be
+ sent upstream so we don't run into problems like this again.
+ * debian/rules:
+ + Disable debugging symbols on powerpcspe. Closes: #696472.
+ * debian/libwebkitgtk-1.0-0.symbols,
+ debian/libwebkitgtk-3.0-0.symbols,
+ debian/libwebkit2gtk-3.0-25.symbols:
+ + Updated for the new symbols.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Thu, 21 Nov 2013 22:15:28 +0100
+
+webkitgtk (2.3.1-1) experimental; urgency=low
+
+ [ Michael Biebl ]
+ * debian/rules:
+ + Replace another occurence of findstring with filter.
+
+ [ Emilio Pozuelo Monfort ]
+ * debian/watch,
+ debian/gbp.conf:
+ + Update for 2.3 packages in experimental.
+ * New upstream development release.
+ + Re-enables MathML support. Closes: #649067.
+ * debian/control,
+ debian/rules:
+ + Enable wayland support on linux.
+ * debian/rules:
+ + Use gcc / g++ 4.8 instead of 4.7. We should just be using the
+ default here but some architectures are still defaulting to 4.6.
+ * debian/patches/01_do-not-build-testing-tools.patch:
+ + Removed, no longer needed.
+ * debian/patches:
+ + Refreshed.
+ * debian/patches/50_bsd-hurd-build-fix.patch:
+ + Fix the build on !linux.
+ * debian/patches/60_add-missing-include.patch:
+ + Patch from upstream bugzilla, fix another build issue.
+ * debian/patches/61_add-another-missing-include.patch:
+ + Another missing include, patch from upstream bugzilla.
+ * debian/patches/40_hppa_platform_h.patch:
+ + WTF_CPU_HPPA was already being defined, so only define the missing
+ remaining bits.
+ + Don't disable YARR, JIT and MacroAssembler here, this is a more general
+ problem as explained in https://bugs.webkit.org/show_bug.cgi?id=113638
+ and we already disable those in debian/rules.
+ * debian/patches/70_Add-stubs-for-missing-symbols-in-dom-bindings.patch:
+ + New patch, add stubs for a few missing symbols in the DOM bindings
+ which are gone because the underlying objects have been removed.
+ * debian/libwebkitgtk-1.0-0.symbols,
+ debian/libwebkitgtk-3.0-0.symbols,
+ debian/libwebkit2gtk-3.0-25.symbols:
+ + Updated for the new symbols.
+ * debian/source/lintian-overrides:
+ + Override license-problem-json-evil, the file is mentioning the original
+ implementation's license but doesn't actually have that license.
+ + Drop an old override.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Tue, 05 Nov 2013 14:24:07 +0100
+
+webkitgtk (2.2.1-1) unstable; urgency=low
+
+ * debian/gbp.conf:
+ + Added.
+ * New upstream stable release.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Tue, 29 Oct 2013 20:44:42 +0100
+
+webkitgtk (2.2.0-2) unstable; urgency=low
+
+ * debian/rules:
+ + Disable JIT on mips, should fix the FTBFS.
+ * Upload to unstable.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Mon, 14 Oct 2013 19:00:57 +0200
+
+webkitgtk (2.2.0-1) experimental; urgency=low
+
+ * New upstream stable release.
+ * debian/control:
+ + Remove gail build dependencies, no longer needed.
+ * debian/patches:
+ + Refreshed.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Wed, 09 Oct 2013 16:01:05 +0200
+
+webkitgtk (2.1.91-1) experimental; urgency=low
+
+ [ Michael Biebl ]
+ * debian/rules:
+ + Use filter instead of findstring to match the current architecture as
+ findstring also matches substrings so we accidentally used stabs debug
+ symbols for i386 and amd64 and disabled jit for mips.
+
+ [ Emilio Pozuelo Monfort ]
+ * debian/rules:
+ + Use CPPFLAGS instead of JSC_CPPFLAGS to disable JIT and MacroAssembler
+ as JSC_CPPFLAGS is no longer honored by the build system. This fixes
+ the build (again) on ia64 powerpc sparc s390 and s390x.
+ * debian/patches/40_hppa_platform_h.patch,
+ debian/patches/41_hppa_build_fix.patch,
+ debian/rules:
+ + Add support for HPPA. Thanks to John David Anglin for the patches.
+ Closes: #721206.
+ * debian/patches/20_mesa-llvmpipe-crash.patch,
+ debian/patches/25_bison_2.6_ftbfs.patch:
+ + Remove patches that were cherry-picked from upstream 2.1.x and we
+ no longer use.
+ * debian/rules:
+ + Disable JIT and MacroAssembler on alpha. Closes: #721863.
+ + Likewise for ppc64 and sparc64.
+
+ [ Gustavo Noronha Silva ]
+ * debian/rules:
+ + Disable GLX on ARM, thanks to Sjoerd Simons.
+ * debian/patches/10_hurd_getCurrentExecutablePath.patch,
+ debian/patches/20_bsd-hurd-gtest-port.patch:
+ + removed, applied upstream
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 16 Sep 2013 15:02:08 -0300
+
+webkitgtk (2.1.90.1-1) experimental; urgency=low
+
+ [ Gustavo Noronha Silva ]
+ * New development release
+ * debian/patches/series, debian/patches/03_dom_bindings_compat.patch:
+ - removed patch; applied upstream
+ * debian/patches/02_notebook_scroll.patch:
+ - refreshed
+ * debian/*.symbols:
+ - updated with ABI additions
+
+ [ Emilio Pozuelo Monfort ]
+ * debian/rules:
+ + Switch powerpc to stabs as it's currently taking too much space in
+ the buildds.
+ * debian/control:
+ + Add myself to Uploaders.
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 29 Aug 2013 21:32:48 -0300
+
+webkitgtk (2.1.4-3) experimental; urgency=low
+
+ * debian/control, debian/libwebkitgtk-common-dev.install:
+ - install the webkitdom headers in a separate dev package that can be
+ depended on by both libwebkitgtk-3.0-dev and libwebkit2gtk-3.0-dev
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 23 Aug 2013 15:03:44 -0300
+
+webkitgtk (2.1.4-2) experimental; urgency=low
+
+ * debian/rules:
+ - merge build and install rules so we can install right after building
+ each flavor, and save space by cleaning up the build
+ - clean *.pyc files in the clean target, to allow multiple builds in the
+ same source tree again
+ * debian/rules:
+ - disable debug symbols sparc, and use stabs for armel, like we already
+ do for armhf; their buildds are too constrained in terms of hardware
+ resources
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 21 Aug 2013 23:13:58 -0300
+
+webkitgtk (2.1.4-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/01_do-not-build-testing-tools.patch:
+ - refreshed
+ * debian/libjavascriptcore*dev.install, gir1.2-*.install,
+ debian/libjavascriptcore*dev.links, gir1.2-*.links:
+ - Install the GObject Introspection support files, and compatibility
+ links that cover the old names
+ * debian/patches/03_dom_bindings_compat.patch:
+ - Add symbols that went missing since the last stable release
+ * debian/*.symbols:
+ - updated symbols files to contain the newly added APIs
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 19 Aug 2013 21:11:33 -0300
+
+webkitgtk (2.0.4-2) unstable; urgency=low
+
+ [ Jeremy Bicha ]
+ * Don't recommend universe gstreamer codecs on Ubuntu. Closes: #714299.
+
+ [ Gustavo Noronha ]
+ * debian/patches/03_atomics-buildfix.patch:
+ - patch from upstream to fix build in architectures which do not support
+ some atomic builtins for 64 bits types (should fix powerpc and sparc)
+ * debian/libwebkit2gtk-3.0-25.symbols, debian/symbols.filter:
+ - export the WebGtkExtensionManager, used by WebKit2GTK+ for loading
+ injected bundle plugins
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 14 Aug 2013 22:13:41 -0300
+
+webkitgtk (2.0.4-1) experimental; urgency=low
+
+ [ Emilio Pozuelo Monfort ]
+ * debian/compat:
+ + Go back to compat 8 for now as compressed symbol files kill .deb
+ compression. Also objcopy seems to take a lot of memory to compress
+ debugging symbols, killing the build in some cases.
+ * debian/rules:
+ + Stop building with -O1 on armhf. Hopefully the compiler error we were
+ getting has been fixed.
+ + Build with -gstabs on armhf and kfreebsd to try to eat less memory
+ and make the build succeed. If it doesn't we may have to disable
+ debugging symbols as we do in many other arches.
+
+ [ Gustavo Noronha Silva ]
+ * New upstream release
+ * debian/*.symbols, debian/*.install, debian/symbols.filter,
+ debian/patches/01_do-not-build-testing-tools.patch, debian/rules:
+ - Avoid exposing a ton of C++ symbols by not building the testing
+ tools
+ - We no longer build the test browsers, as well
+ * debian/rules:
+ - move dh_autoreconf call to its own rule with its own custom stamp,
+ so we can just call binary if the build fails and we want to try again
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 08 Aug 2013 20:00:46 -0300
+
+webkitgtk (2.0.3-1) experimental; urgency=low
+
+ * Team upload.
+
+ * debian/libwebkit2gtk-3.0-25.symbols:
+ + Added missing i386 symbols. Should really fix the i386 build.
+ Closes: #704886.
+ * debian/rules:
+ + Pass -I Source/autotools to autoreconf to make sure aclocal can find
+ the necessary macros, as otherwise some versions such as aclocal-1.11
+ have some trouble with this.
+ + Add --disable-jit back on mipsel, armel and powerpc. The change was
+ probably lost with the webkit2 addition.
+ + Don't pass --with-gstreamer=1.0 anymore, GStreamer support is always
+ 1.0 now and the configure flag has been dropped.
+ + Don't pass --disable-plugin-process. The flag is gone and the plugin
+ process is always built for WebKit2, which is what we were doing.
+ + Don't pass --disable-jit on powerpc. Instead disable JIT, YARR and
+ assembler in ia64 powerpc sparc s390 and s390x as there's no
+ support for MacroAssembler for them.
+ * debian/patches/changeset_145551.diff:
+ + Backport from upstream, implement Double2Ints in CLoop backend for
+ 32 bit architectures, needed for the above architectures where we
+ disable JIT, YARR and assembler.
+ * debian/control:
+ + Build depend on libgudev-1.0-dev on linux for gamepad support.
+ * debian/patches/10_hurd_getCurrentExecutablePath.patch:
+ + Readd patch from #669059 that was lost. Fixes build on hurd.
+
+ * New upstream release.
+ * changeset_150117.diff, changeset_150326.diff, changeset_150963.diff:
+ + Dropped, included upstream.
+
+ * debian/patches/changeset_147557.diff:
+ + Backport from upstream, fix a dispose/finalize mistake that can
+ cause crashes in some scenarios.
+ * debian/patches/20_bsd-hurd-gtest-port.patch:
+ + New patch. Fix kfreebsd and hurd builds by making gtest know about
+ them.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Sun, 16 Jun 2013 20:52:37 +0200
+
+webkit (1.8.1-4) unstable; urgency=low
+
+ * Acknowledge NMUs. Thanks Samuel, Ansgar and Michael!
+ * debian/patches/20_mesa-llvmpipe-crash.patch:
+ + Backport change from upstream, fixes crashes when running
+ mesa llvmpipe drivers. Closes: #711584.
+ * debian/patches/25_bison_2.6_ftbfs.patch:
+ + Backport change from upstream, fix the build with bison >= 2.6.
+ * debian/patches/30_gtkdoc_fixxref_warnings.patch:
+ + New patch. Ignore warnings when generating the html documentation.
+ The broken links were probably already there in previous builds
+ as we don't build depend on the necessary -doc packages. We will
+ upload 2.0.x to unstable soonish anyway so no point in fixing
+ such minor issues here.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Wed, 12 Jun 2013 21:48:22 +0200
+
+webkitgtk (2.0.2-2) experimental; urgency=low
+
+ * Team upload.
+
+ * debian/control,
+ debian/rules:
+ + Build depend on gcc-4.7 and g++-4.7 and set the C compiler and C++
+ compiler to this version as webkitgtk now requires GCC >= 4.7 and
+ the default on many architectures is still 4.6.
+ * debian/control,
+ debian/compat:
+ + Bump debhelper compat to 9. Among other things, this brings us
+ compressed debug info files. It also brings build-id debug info
+ files which greatly speed up gdb start up as gdb won't have to
+ checksum the (rather big) webkit debug info files anymore.
+ * debian/rules:
+ + Exclude libwebkit2gtkinjectedbundle.so from dh_makeshlibs as it's a
+ private library and debhelper looks at every shared lib in compat 9.
+ * debian/libwebkitgtk-1.0-0.symbols,
+ debian/libwebkitgtk-3.0-0.symbols:
+ + Add missing symbols for 32 bit arches. Closes: #704886.
+ * debian/libwebkit2gtk-3.0-25.symbols:
+ + Demangle symbols.
+ * debian/control:
+ + Bump required build dependencies according to Versions.mk.
+ + Add missing build dependency on flex. Thanks to Sjoerd Simons for
+ noticing this.
+ + Also add other missing build dependencies (cairo, freetype,
+ fontconfig and libxml).
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Tue, 04 Jun 2013 15:00:49 +0200
+
+webkitgtk (2.0.2-1) experimental; urgency=low
+
+ * Team upload.
+
+ * New upstream release.
+ + debian/patches/03_avoid_unresolved_x_symbols.patch:
+ - Removed, applied upstream.
+ + debian/patches/changeset_150117.diff,
+ debian/patches/changeset_150256.diff,
+ debian/patches/changeset_150326.diff,
+ debian/patches/changeset_150963.diff:
+ - Backport various build fixes from upstream.
+ + debian/*.symbols:
+ - Updated.
+ + debian/libwebkit2gtk-3.0-0.install:
+ - Don't install .la files.
+ + debian/rules:
+ - Re-enable parallel build support, the above patches should
+ make it work.
+ + debian/libwebkit2gtk-3.0-{0,25}.install,
+ debian/control,
+ debian/rules:
+ - Renamed libwebkit2gtk-3.0-0 to libwebkit2gtk-3.0-25.
+ - Make libwebkit2gtk-3.0-25 break/replace the old
+ libwebkit2gtk-3.0-0 as the injected-bundle module path
+ is the same.
+ + debian/libwebkit2gtk-3.0-25.symbols:
+ - Add a symbols file for libwebkit2gtk-3.0.
+ * debian/watch:
+ + Updated to work with the new page.
+ * debian/rules:
+ + Run dh_autoreconf. Makes it easier to backport upstream patches
+ that modify autotools files.
+ * debian/control:
+ + Mention "dummy" in libwebkit-dev's long description to shut
+ lintian up.
+ + Bump Standards-Version to 3.9.4; no changes needed.
+ + Bump libharfbuzz-dev's minimum build dependency to pick up a
+ dependency against the new libharfbuzz0a package.
+
+ -- Emilio Pozuelo Monfort <pochu@debian.org> Wed, 29 May 2013 10:39:29 +0200
+
+webkitgtk (1.11.91-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/03_avoid_unresolved_x_symbols.patch:
+ - patch to avoid linking issue
+ * debian/rules:
+ - enable WebKit2 packages
+ * debian/*.symbols:
+ - updated with new symbols
+ * debian/control:
+ - add libwebp-dev to the build dependencies
+ - add libsecret-1-dev to build dependencies
+ - add libharfbuzz-dev >= 0.9.7 to build dependencies
+ * debian/libwebkitgtk-3.0-dev.install:
+ - install webkitdom includes, which now live in a new path
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 17 Mar 2013 11:43:34 -0300
+
+webkitgtk (1.10.2-2) experimental; urgency=low
+
+ * Integrate patches and acknowledge NMUs; thanks to Ansgar Burchardt
+ <ansgar@debian.org>, and Michael Gilbert <mgilbert@debian.org>
+ * debian/control, debian/rules:
+ - switch to building with GStreamer 1.0
+ * debian/control:
+ - added ruby to the Build-Dependencies, it is now required
+ for building WebKit
+ * debian/rules:
+ - ensure configure is the last command run in a single shell invocation,
+ so the build fails early if configure fails
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 24 Feb 2013 16:51:07 -0300
+
+webkitgtk (1.10.2-1) experimental; urgency=low
+
+ * New stable release
+ - source package renamed following upstream
+ - Includes the WebCore split patches, so the make command line
+ limit problem should not happen
+ * Acknowledge NMU to fix FreeBSD and Hurd, thanks to Samuel
+ Thibault <sthibault@debian.org>
+ * Acknowledge NMU to change deb compression to xz, thanks to
+ Ansgar Burchardt <ansgar@debian.org>
+ * Acknowledge NMU to use smaller debug format for ia64 as well,
+ thanks to Ansgar Burchardt <ansgar@debian.org>
+ * debian/*.symbols:
+ - updated
+ * debian/control:
+ - bump libsoup dependency to 2.40 accross the board,
+ following upstream's bump but using the first stable
+ release instead of the development one
+ * debian/*webkit2*, debian/rules, debian/control:
+ - new packages for the WebKit2GTK+ library, not built by default, you
+ can enable them by setting the make ENABLE_WEBKIT2 variable to yes
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 05 Dec 2012 23:41:36 -0200
+
+webkit (1.9.2-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/10_kfreebsd_support.patch:
+ - removed; applied upstream
+ * debian/rules:
+ - disable AR_FLAGS space optimization for now, since linking two libtool
+ convenience libraries seems to break that
+ * debian/*.symbols:
+ - updated with symbols of the new version
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 08 May 2012 12:01:33 -0300
+
+webkit (1.8.1-3.4) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix wide pointer issues on ia64 (closes: #642750).
+ * Make favicon database thread-safe (closes: #697172).
+ * Support architectures with large page sizes (closes: #694971).
+ * Compile with --disable-jit on armel, mipsel, and powerpc (closes: #651636).
+
+ -- Michael Gilbert <mgilbert@debian.org> Sat, 16 Feb 2013 21:46:48 +0000
+
+webkit (1.8.1-3.3) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/rules: Disable debug symbols also for ia64.
+
+ -- Ansgar Burchardt <ansgar@debian.org> Thu, 13 Sep 2012 23:39:52 +0200
+
+webkit (1.8.1-3.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/rules: use xz compression for binary packages. (Closes: #684139)
+
+ -- Ansgar Burchardt <ansgar@debian.org> Sat, 08 Sep 2012 18:40:04 +0200
+
+webkit (1.8.1-3.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fix debian/patches/10_kfreebsd_support.patch
+ debian/patches/11_hurd_support.patch patches for kfreebsd and hurd build
+ (Closes: #669059).
+
+ -- Samuel Thibault <sthibault@debian.org> Fri, 25 May 2012 11:00:30 +0200
+
+webkit (1.8.1-3) unstable; urgency=low
+
+ [ Samuel Thibault ]
+ * debian/rules:
+ - Disable debug symbols also for hurd-i386 (Closes: #664810)
+ * debian/patches/11_hurd_support.patch:
+ - Add Hurd-specific code path before the catch-all UNIX code path for
+ getting the executable path (Closes: 669059)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 23 May 2012 22:54:54 -0300
+
+webkit (1.8.1-2) unstable; urgency=low
+
+ [ Michael Biebl ]
+ * debian/rules:
+ - Use set -e in for loops to fail early
+ - Standardize on $(shell ) for shell invocation and only add
+ -Wl,--no-keep-memory for 32 bits architectures
+ - Disable debugging symbols completely for architectures for
+ which we were using -gstabs before, since they keep hitting
+ memory limits on the buildds
+
+ [ Jeremy Bicha ]
+ * debian/rules:
+ - Remove duplicate LDFLAGS when running configure
+ * debian/watch:
+ - Look for tar.xz files from now on
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 04 May 2012 12:37:56 -0300
+
+webkit (1.8.1-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/patches/10_kfreebsd_support.patch:
+ - Patch by Steven Chamberlain <steven@pyro.eu.org> to fix the
+ build for kFreeBSD (Closes: #669308)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 26 Apr 2012 19:52:12 -0300
+
+webkit (1.8.0-2) unstable; urgency=low
+
+ * Upload to unstable
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 03 Apr 2012 16:50:54 -0300
+
+webkit (1.8.0-1) experimental; urgency=low
+
+ * New stable release
+ * debian/control:
+ - move libwebkit-dev to oldlibs
+ * debian/*.symbols:
+ - updated with symbols additions
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 28 Mar 2012 09:53:38 -0300
+
+webkit (1.7.92-1) experimental; urgency=low
+
+ * New development release
+ * debian/control:
+ - wrapped Build-Dependencies
+ * debian/rules:
+ - pass --no-keep-memory to the linker, to make build less likely
+ to fail with an OOM
+ * debian/*.symbols:
+ - updated with new symbols
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 26 Mar 2012 19:56:51 -0300
+
+webkit (1.7.91-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/05_sparc-needs-alignment.patch:
+ - removed; applied upstream
+ * debian/libwebkitgtk*.symbols:
+ - added DRT optional symbols that are different on i386/powerpc
+ * debian/control:
+ - replace dh_clean -k call with dh_prep
+ - bump Build-Depends on debhelper, for dh_prep
+ - bump Dependency on libsoup to for the -dev packages to match the
+ Build-Dependency
+ - Recommend gstreamer packages required to play most formats
+ with <video> and <audio>
+ * debian/rules:
+ - disable parallel builds to work-around the racy problems
+ we have seen in the wild
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sat, 10 Mar 2012 23:25:33 -0300
+
+webkit (1.7.90+svn20120304-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/01_double-conversion.patch,
+ debian/patches/03_fix-documentation-build.patch,
+ debian/patches/04_hurd-fix.patch:
+ - removed; applied upstream
+ * debian/*.symbols:
+ - updated
+ * Merged changes done in 1.6.3-2
+ * debian/control:
+ - Put all gir1.2-* packages into the introspection section.
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 04 Mar 2012 16:28:56 -0300
+
+webkit (1.7.5-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/03_fix-documentation-build.patch:
+ - refreshed, with changes from upstream
+ * debian/patches/04_hurd-fix.patch:
+ - refreshed;
+ * Merged changes done in 1.6.3-1
+ * debian/*.symbols:
+ - updated symbols file with ABI changes
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 17 Feb 2012 11:48:31 -0200
+
+webkit (1.7.4-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/01_double-conversion.patch:
+ - refreshed; partially applied upstream
+ * debian/patches/03_freebsd-fix.patch,
+ debian/patches/04_pkgconfig-fix.patch:
+ - removed; applied upstream
+ * debian/patches/03_fix-documentation-build.patch:
+ - added; fix building docs for the GTK+ 2 library
+ * debian/control:
+ - update build-dependency for libsoup2.4-dev to 2.37.4
+ - add libgl1-mesa-dev as a B-D, since we now build with
+ WebGL enabled by default
+ * debian/rules:
+ - adapted doc installation to the new system
+ * debian/*.install:
+ - include directory got renamed webkit->webkitgtk
+ * debian/libwebkit*.symbols:
+ - updated
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 19 Jan 2012 00:09:29 -0200
+
+webkit (1.6.3-2) unstable; urgency=low
+
+ * debian/patches/05_sparc-needs-alignment.patch:
+ - patch by Jurij Smakov <jurij@wooyd.org> to fix JSC for SPARC
+ (Closes: #651934)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 04 Mar 2012 12:05:04 -0300
+
+webkit (1.6.3-1) unstable; urgency=low
+
+ * debian/patches/04_pkgconfig-fix.patch:
+ - removed; applied in this upstream version
+ * debian/rules:
+ - move -Wl,--no-relax to LD_FLAGS, when building on alpha, and add
+ LDFLAGS as a parameter (part of #648761)
+ * debian/patches/01_double-conversion.patch:
+ - add CPU(ALPHA) to the list of cpus that pass the test
+ (Closes: #648761)
+ * debian/patches/04_hurd-fix.patch:
+ - patch by Pino Toscano <pino@debian.org> to fix FTBFS on Hurd
+ (Closes: #649192)
+ * debian/rules:
+ - accepted patch by Moritz Muehlenhoff <jmm@debian.org> to use
+ dpkg-buildflags for cflags/cppflags/ldflags (Closes: #659391)
+ * debian/control:
+ - add Conflicts and Replaces combo on libjavascriptcoregtk-1.0-dev also
+ for libwebkit-dev << 1.5.0 (Closes: #657408)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 15 Feb 2012 23:29:11 -0200
+
+webkit (1.6.3-1) unstable; urgency=low
+
+ * debian/patches/04_pkgconfig-fix.patch:
+ - removed; applied in this upstream version
+ * debian/rules:
+ - move -Wl,--no-relax to LD_FLAGS, when building on alpha, and add
+ LDFLAGS as a parameter (part of #648761)
+ * debian/patches/01_double-conversion.patch:
+ - add CPU(ALPHA) to the list of cpus that pass the test
+ (Closes: #648761)
+ * debian/patches/04_hurd-fix.patch:
+ - patch by Pino Toscano <pino@debian.org> to fix FTBFS on Hurd
+ (Closes: #649192)
+ * debian/rules:
+ - accepted patch by Moritz Muehlenhoff <jmm@debian.org> to use
+ dpkg-buildflags for cflags/cppflags/ldflags (Closes: #659391)
+ * debian/control:
+ - add Conflicts and Replaces combo on libjavascriptcoregtk-1.0-dev also
+ for libwebkit-dev << 1.5.0 (Closes: #657408)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 15 Feb 2012 23:29:11 -0200
+
+webkit (1.6.1-5) unstable; urgency=low
+
+ * debian/rules:
+ - also build with stabs debug symbols format when under s390x
+ patch by Aurelien Jarno <aurel32@debian.org> (Closes: #637228)
+ * debian/control:
+ - add Breaks for midori and claws-mail-fancy-plugin versions that
+ were using the private webkit_web_view_get_selected_text symbol
+ (Closes: #646095)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 01 Nov 2011 23:20:19 -0200
+
+webkit (1.6.1-4) unstable; urgency=low
+
+ * debian/patches/03_freebsd-fix.patch:
+ - fix FreeBSD 64 bits build
+ * debian/patches/04_pkgconfig-fix.patch:
+ - import patch from upstream to fix pkg-config file to require the JSC
+ one
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 23 Oct 2011 20:10:53 -0200
+
+webkit (1.6.1-3) unstable; urgency=low
+
+ * debian/patches/01_double-conversion.patch:
+ - imported from upstream; fixes s390 double conversion, modified
+ to also include IA64
+ * debian/rules:
+ - try reducing the disk space used to build webkit by using thin
+ archives
+ - disable silent rules to make debugging easier
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 21 Oct 2011 10:38:17 -0200
+
+webkit (1.6.1-2) unstable; urgency=low
+
+ * Rename source package back to webkit
+ * debian/control:
+ - Build-Depend on gawk, since our GNUmakefile.in has lines that are too
+ long for mawk, which results in a broken GNUmakefile
+ * debian/rules:
+ - re-enable installing documentation
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 18 Oct 2011 09:59:20 -0200
+
+webkitgtk+ (1.6.1-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/patches/01_fix-introspection.patch:
+ - Removed; applied upstream
+ * debian/patches/02_notebook_scroll.patch:
+ - Patch by Josselin Mouette <joss@debian.org> to ignore alt+wheel
+ (Closes: #640980)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 26 Sep 2011 23:24:37 -0300
+
+webkitgtk+ (1.5.2-1) experimental; urgency=low
+
+ * New upstream development release
+ * debian/patches/01_spoof-ua-for-calendar.patch:
+ - Remove; applied upstream
+ * debian/patches/01_fix-introspection.patch:
+ - Fix the introspection build
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 24 Aug 2011 21:43:19 -0300
+
+webkitgtk+ (1.4.2-2) unstable; urgency=low
+
+ * debian/rules:
+ - fix armhf special-casing to actually work as intended; thanks to
+ mbiebl for finding the issue and helping resolve it
+ * debian/watch:
+ - provided by Michael Biebl <biebl@debian.org>; thanks! (Closes: #633446)
+ * debian/patches/01_spoof-ua-for-calendar.patch:
+ - steal patch from upstream (on track for 1.4.3) to make Google Calendar
+ behave and not give us the mobile version
+ * debian/control:
+ - Build-Depend on libjpeg-dev instead of libjpeg62-dev (See #635287)
+ - Re-add the libwebkit-dev package to automatically upgrade packages
+ using the GTK+ 2.0 version of WebKitGTK+.
+ - Fix capitalization of GTK+ in the description (Closes: #611871)
+ - Set Homepage to webkitgtk.org instead of webkit.org (Closes: #589431)
+ - Update to the new GI mini-policy by making the -dev packages depend on
+ the appropriate gir1.2-webkit-?.0 packages (Closes: #633962)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 25 Jul 2011 21:08:52 -0300
+
+webkitgtk+ (1.4.2-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/patches/01_add-missing-file.patch:
+ - removed; pushed upstream.
+ * debian/rules:
+ - use gstabs for mips and mipsel as well, to try to make it possible for
+ the builders to build webkit
+ - use -O1 for armhf to workaround compiler bug
+
+ -- Gustavo Noronha Silva <kov@debian.org> Sun, 10 Jul 2011 10:54:24 -0300
+
+webkitgtk+ (1.4.1-2) unstable; urgency=low
+
+ * debian/patches/01_add-missing-file.patch:
+ - copied MIPSAssembler.h from upstream's source repository; it's missing
+ from the sources list and didn't get included in the tarball, this will
+ fix the build on MIPS
+ * debian/control:
+ - fix dependency on gtk2 to please lintian (remove -1)
+ - adjust Standards-Version with no changes to the packaging
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 20 Jun 2011 14:50:27 -0300
+
+webkitgtk+ (1.4.1-1) unstable; urgency=low
+
+ * New upstream version, uploaded to unstable.
+ * debian/*.symbols:
+ - add optional symbols for some JIT stub symbols that show up in some
+ platforms (i.e. ARMEL)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 06 Jun 2011 21:12:38 -0300
+
+webkitgtk+ (1.4.0-1) experimental; urgency=low
+
+ * debian/patches/02_plugin_check_mixed_symbols.patch,
+ debian/patches/01_plugin_path.patch:
+ - removed; applied upstream
+ * debian/control, debian/changelog:
+ - rename source package and remove the libwebkit-dev package to avoid
+ automatically transitioning packages to the new version
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 29 Apr 2011 10:57:23 -0300
+
+webkit (1.3.13-4) experimental; urgency=low
+
+ * debian/*.symbols:
+ - remove debian revision from WTFReportBacktrace@Base to make
+ lintian happy
+ - add optional C++ symbols for functions that use different data types
+ on 32 bits architectures
+ * debian/patches/02_plugin_check_mixed_symbols.patch:
+ - patch from upstream bugzilla that causes webkit itself to check for
+ mixed gtk symbols in a plugin before loading it
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 12 Apr 2011 09:21:29 -0300
+
+webkit (1.3.13-3) experimental; urgency=low
+
+ * debian/control:
+ - depend on a libgtk2.0-dev version that provides introspection information
+ (Closes: #621809)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 08 Apr 2011 23:50:32 -0300
+
+webkit (1.3.13-2) experimental; urgency=low
+
+ * debian/patches/01_plugin_path.patch:
+ - obtained from upstream; will allow not disabling flash when used with
+ nspluginwrapper
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 08 Apr 2011 10:12:50 -0300
+
+webkit (1.3.13-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/patches/01_expose_less_symbols.patch:
+ - remove this patch; deal with the symbols instead
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 29 Mar 2011 11:14:00 -0300
+
+webkit (1.3.12-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/*.symbols:
+ - updated with new symbols
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 15 Mar 2011 00:32:03 -0300
+
+webkit (1.3.11-3) experimental; urgency=low
+
+ * debian/*.symbols:
+ - fix demangled names (Closes: #614770)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 23 Feb 2011 09:25:49 -0300
+
+webkit (1.3.11-2) experimental; urgency=low
+
+ * debian/libwebkit-{1,3}.0-0.symbols:
+ - tag exported WTF symbols as optional, and use their demangled name
+ with the c++ tag; this should fix the FTBFS
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 22 Feb 2011 14:31:14 -0300
+
+webkit (1.3.11-1) experimental; urgency=low
+
+ * New development release
+ * debian/patches/01_expose_less_symbols.patch:
+ - export less symbols, and don't build DRT
+ * debian/control:
+ - updated to reflect changes in naming of packages related to GTK+ 3
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 19 Jan 2011 11:05:31 -0200
+
+webkit (1.3.10-1) experimental; urgency=low
+
+ * New development release
+ * debian/control:
+ - Build-Depend on GTK+3 >= 2.99.1 to avoid problems with the multiple
+ breakages
+ * debian/rules:
+ - adapt for source layout changes
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 13 Jan 2011 10:37:55 -0200
+
+webkit (1.3.9-1) experimental; urgency=low
+
+ * New development release
+ - fixes build with newest GTK+
+ * debian/control:
+ - build-depend on GTK+ >= 2.91.7 for the GTK+3-based version
+ - build-depend on gir1.2-{gtk-2.0,soup-2.4}
+ - rename introspection packages to gir1.2-*
+ - updated Build-Depends on gobject-introspection
+ - tighten dependency of -dev packages on library packages
+ - add missing ${misc:Depends}
+ - update Standards-Version to 3.9.1
+ * debian/rules:
+ - add dh_girepository calls to actually do something to ${gir:Depends}
+ - run dh_makeshlibs targetting the appropriate packages (library ones,
+ not dev)
+ - remove rpath from the installed binaries
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 27 Dec 2010 14:06:08 -0200
+
+webkit (1.3.8-1) experimental; urgency=low
+
+ * New upstream development release
+ * debian/debian/gir1.0-webkit-1.0.install, debian/control,
+ debian/rules, debian/libwebkit-dev.install:
+ - add gir1.0-webkit-1.0 package, and enable introspection support
+ - rename packages to accomodate soname change
+ - add new packages for gtk3-based webkitgtk
+ * debian/control, debian/rules:
+ - enable building geolocation support
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 11 Aug 2010 11:10:28 -0300
+
+webkit (1.1.17-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/copyright:
+ - updated with changes since 1.1.16
+ * debian/libwebkit-1.0-2.symbols:
+ - updated
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 02 Dec 2009 23:13:32 -0200
+
+webkit (1.1.16-3) unstable; urgency=low
+
+ * Fix building on kfresbsd-amd64 (Closes: #554718)
+ - Patch by Petr Salinger <Petr.Salinger@seznam.cz>
+ * Fix tightened dependency
+ * debian/rules:
+ - remove rpath from GtkLauncher and DumpRenderTree
+ * debian/control:
+ - depend on chrpath for change above
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 11 Nov 2009 21:21:12 -0200
+
+webkit (1.1.16-2) unstable; urgency=low
+
+ * debian/control:
+ - tighten libwebkit-dev dependency on the library
+ (Closes: #554014)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 02 Nov 2009 17:07:03 -0200
+
+webkit (1.1.16-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/copyright:
+ - updated with the copyright changes since 1.1.15
+ * debian/libwebkit-1.0-2.symbols:
+ - updated with new symbols
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 29 Oct 2009 19:06:20 -0200
+
+webkit (1.1.15.2-1) unstable; urgency=low
+
+ * New upstream (semi-stable) release
+ * Fix building on IA64 (Closes: #547797)
+ Thanks to Colin Watson <cjwatson@ubuntu.com>
+ * Fix building on alpha (Closes: #548499)
+ * Fix building on amd64 FreeBSD
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 06 Oct 2009 21:17:08 +0100
+
+webkit (1.1.15.1-1) unstable; urgency=low
+
+ * New upstream (semi-stable) release
+ * debian/libwebkit-1.0-2.symbols:
+ - remove revisions from the symbol versions
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 06 Aug 2010 11:19:52 -0300
+
+webkit (1.1.15-1) experimental; urgency=low
+
+ * New upstream release
+ - includes fix for crash that will be fixed in 1.1.15.1
+ * debian/copyright:
+ - updated with changes since 1.1.14
+ * debian/libwebkit-1.0-2.symbols:
+ - updated
+ * debian/control:
+ - force same upstream version for -common
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 21 Sep 2009 21:22:43 -0300
+
+webkit (1.1.14-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/copyright:
+ - updated with changes since 1.1.13
+ * debian/control:
+ - made libwebkit-dev Arch: any (Closes: #539511)
+ * debian/libwebkit-1.0-2:
+ - updated
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 09 Sep 2009 11:32:23 -0300
+
+webkit (1.1.13-1) experimental; urgency=low
+
+ * New upstream release
+ - security fixes are already included in this release
+ (Closes: #538346, #538402)
+ * debian/control:
+ - update Build-Depends on libsoup to match upstream requirements
+ (Closes: #542272)
+ - Bump Build-Depends on libsoup2.4-dev to 2.27.91
+ * debian/copyright:
+ - updated with changes since 1.1.12
+ * debian/libwebkit-1.0-2.symbols:
+ - new symbols
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 24 Aug 2009 21:25:59 -0300
+
+webkit (1.1.12-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/copyright:
+ - updated with changes since 1.1.10
+ * debian/libwebkit-1.0-2.symbols:
+ - adding new symbols
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 28 Jul 2009 21:04:56 +0200
+
+webkit (1.1.10-2) unstable; urgency=low
+
+ * debian/rules:
+ - trying to get the package built on s390, by using -gstabs
+ (Closes: #528524)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Wed, 24 Jun 2009 23:05:07 -0300
+
+webkit (1.1.10-1) unstable; urgency=low
+
+ * debian/copyright:
+ - updated with the changes up to the current release
+ * debian/libwebkit-1.0-2.symbols:
+ - updated with new symbols
+ * debian/control:
+ - Build-Depend on libgail-dev
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 16 Jun 2009 18:52:32 -0300
+
+webkit (1.1.7-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/libwebkit-1.0-2.symbols:
+ - updated with the new symbols in 1.1.7
+ * debian/libwebkit-dev.install, debian/libwebkit-dev.links,
+ debian/rules:
+ - Build, and ship gtk-doc documentation (Closes: #526683)
+ * debian/copyright:
+ - updated.
+
+ -- Gustavo Noronha Silva <kov@debian.org> Fri, 15 May 2009 18:30:58 -0300
+
+webkit (1.1.6-2) unstable; urgency=low
+
+ * Imported two changes from upstream to fix building on AMD64
+ (Closes: #527096)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 12 May 2009 15:00:47 -0300
+
+webkit (1.1.6-1) unstable; urgency=low
+
+ [ Mike Hommey ]
+ * New upstream release.
+
+ [ Gustavo Noronha Silva ]
+ * Imported patch from upstream git mirror to avoid a regression in the
+ webkit_web_frame_load_string method.
+ See https://bugs.webkit.org/show_bug.cgi?id=25466
+ * debian/copyright:
+ - updated with changes since the last release
+ * debian/libwebkit-1.0-2.symbols:
+ - updated
+ * debian/control:
+ - added libenchant-dev to the Build-Depends
+
+ -- Gustavo Noronha Silva <kov@debian.org> Mon, 04 May 2009 21:40:15 -0300
+
+webkit (1.1.5-2) unstable; urgency=low
+
+ * Upload to unstable.
+ * debian/libwebkit-1.0-2.symbols:
+ - removed debian revision from the symbol versions
+ * debian/control:
+ - Put the libwebkit-1.0-2-dbg package in the "debug" section.
+ - Build depend on libgstreamer-plugins-base0.10-dev. (Closes: #525554)
+ * debian/rules:
+ - Bump shlibs to fit symbols file.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 25 Apr 2009 18:42:37 +0200
+
+webkit (1.1.5-1) experimental; urgency=low
+
+ [ Mike Hommey ]
+ * New upstream release:
+ - Filter out all C++ symbols. (Closes: #521569)
+ * debian/control:
+ - Change libwebkit-1.0-common section and priority to fit override.
+ - Bumped Standards-Version to 3.8.1.0. No changes required.
+ * debian/rules:
+ - Patch config.{sub|guess} in autotools/.
+
+ [ Gustavo Noronha Silva ]
+ * debian/copyright:
+ - updated with the copyright changes since last version
+ * debian/libwebkit-1.0-0.symbols:
+ - updated with the new symbols
+ * debian/libwebkit-1.0-common.install:
+ - also install translation files
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 16 Apr 2009 23:20:43 -0300
+
+webkit (1.1.3-3) experimental; urgency=low
+
+ [ Gustavo Noronha Silva ]
+ * debian/control:
+ - make libwebkit-1.0-dev depend on libsoup2.4-dev (>= 2.25.91)
+
+ [ Mike Hommey ]
+ * autotoolsconfig.h.in:
+ - Brown paper bag fix to add missing AC_DEFINEs.
+ * debian/control:
+ - libwebkit-dev doesn't need an outdated conflict with libwebkitgdk-dev.
+ - libwebkit-1.0-2-dbg doesn't need to conflict/replace libwebkit-1.0-1-dbg
+ thanks to the changes in previous release.
+ * debian/rules:
+ - Bump shlibs to fit symbols file.
+ * debian/copyright:
+ - Updated for a small discrepancy I spotted.
+ - Added Gustavo's copyright on debian/* files and updated mine.
+
+ -- Mike Hommey <glandium@debian.org> Fri, 27 Mar 2009 21:20:48 +0100
+
+webkit (1.1.3-2) experimental; urgency=low
+
+ [ Gustavo Noronha Silva ]
+ * debian/control, debian/libwebkit-1.0-2.install:
+ - move the GtkLauncher and DumpRenderTree binaries to a directory named
+ after the soname of the library, so that different binary incompatible
+ versions of the library are installable in parallel (Closes: #520981)
+ * debian/libwebkit-1.0-2.symbols:
+ - removed debian revision from the symbol versions
+
+ [ Mike Hommey ]
+ * JavaScriptCore/jit/JITStubs.h:
+ - Use the first definition of RETURN_PAIR on x86-64.
+ * JavaScriptCore/assembler/MacroAssemblerX86_64.h,
+ JavaScriptCore/GNUmakefile.am, GNUmakefile.in, configure.ac, configure:
+ - Enable JIT on x86-64.
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 26 Mar 2009 17:46:30 -0300
+
+webkit (1.1.3-1) experimental; urgency=low
+
+ [ Gustavo Noronha Silva ]
+ * New upstream release
+ - correctly scrolls with space bar (Closes: #519883)
+ * debian/copyright:
+ - updated with changes since last release
+ * debian/libwebkit-1.0-2.symbols:
+ - added new symbols
+
+ [ Mike Hommey ]
+ * autotools/symbols.filter, debian/libwebkit-1.0-2.symbols:
+ - Hide JIT implementation specific symbols. (Closes: #519924, #520006)
+
+ -- Gustavo Noronha Silva <kov@debian.org> Tue, 17 Mar 2009 15:05:40 -0300
+
+webkit (1.1.1-1) experimental; urgency=low
+
+ * New 1.1.1 upstream release
+ * debian/rules, debian/control, debian/*:
+ - soversion was bumped, so rename packages accordingly
+ * debian/control:
+ - curl is not used anymore, so drop build-dependecy and replace it with
+ libsoup2.4 >= 2.25.91
+ * debian/libwebkit-1.0-2.symbols:
+ - updated symbols file; bumped required version of all symbols to 1.1.1,
+ since we had a soversion bump
+ * debian/copyright:
+ - updated with changes from last release we shipped, and updated
+ download location
+ * debian/control, debian/libwebkit-1.0-common.install:
+ - new package to distribute data files, such as the Web Inspector files
+ - libwebkit-1.0-2 now depends on libwebkit-1.0-common
+ * debian/control:
+ - add myself as an Uploader
+
+ -- Gustavo Noronha Silva <kov@debian.org> Thu, 05 Mar 2009 16:28:43 -0300
+
+webkit (1.0.2~pre.svn37878-1) experimental; urgency=low
+
+ * Upstream 1.0.2 pre-release, taken from svn revision 37878.
+ * debian/rules:
+ - Use configure instead of autogen.sh, now configure is shipped.
+ - Don't remove automake/autoconf generated files.
+ - Bump shlibs because of some new symbols.
+ - Don't need --enable-svg-experimental anymore.
+ - Feed configure with --host and --build.
+ - Use config.guess and config.sub from autotools-dev.
+ * debian/control: Don't build depend on autoconf/automake/libtool, but
+ autotools-dev, instead.
+ * GNUmakefile.am, GNUmakefile.in: Add missing dash in version script option.
+ * debian/libwebkit-1.0-1.symbols: Add new symbols.
+ * WebCore/page/gtk/AXObjectCacheAtk.cpp: printfs being removed upstream,
+ we don't need to #include <stdio.h> anymore.
+ * configure.ac, configure, GNUmakefile.am, GNUmakefile.in: Properly check
+ and link against libpng. bz#21884.
+ * configure.ac, configure: Properly check and link against libpangoft2.
+ bz#21885.
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 25 Oct 2008 15:19:56 +0200
+
+webkit (1.0.1-4) unstable; urgency=high
+
+ * WebCore/dom/Document.*, WebCore/loader/DocLoader.*: Avoid DoS via
+ crafted CSS import statements. Fixes: CVE-2008-3632. Closes: #499771.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 27 Sep 2008 08:57:48 +0200
+
+webkit (1.0.1-3) unstable; urgency=low
+
+ * WebCore/platform/graphics/gtk/FontCacheGtk.cpp,
+ WebCore/platform/graphics/gtk/FontGtk.cpp,
+ WebCore/platform/graphics/gtk/FontPlatformData.h,
+ WebCore/platform/graphics/gtk/FontPlatformDataGtk.cpp,
+ WebCore/platform/graphics/gtk/SimpleFontDataGtk.cpp: cherry-picked change
+ from SVN revision 36309 to fix various font selection problems.
+ Closes: #464477.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 20 Sep 2008 12:02:58 +0200
+
+webkit (1.0.1-2) unstable; urgency=low
+
+ * symbols.filter: As a workaround for #490173, hide all C++ mangled symbols.
+ This will be enough for now, while fixing FTBFS on ARM.
+ * debian/rules: Build with -Wl,--no-relax on alpha, to work around a
+ binutils bug causing FTBFS.
+
+ -- Mike Hommey <glandium@debian.org> Thu, 10 Jul 2008 21:10:27 +0200
+
+webkit (1.0.1-1) unstable; urgency=low
+
+ * New upstream release. Closes: #489385.
+ * debian/copyright:
+ - Updated to fit additions/removals of files upstream.
+ - Updated where the source was gotten.
+ - Fixed typos for Collabora. Closes: #484661.
+ * JavaScriptCore/wtf/FastMalloc.cpp, JavaScriptCore/wtf/ListHashSet.h,
+ JavaScriptCore/wtf/Platform.h, JavaScriptCore/wtf/Vector.h,
+ WebCore/platform/text/AtomicString.cpp,
+ WebCore/platform/text/StringHash.h: Fixed some alignment problems on sparc
+ (and some that might occur on arm, too). Closes: #487745. Some compiler
+ warnings about alignment remain, but I don't know if they are a real
+ problem yet.
+ * debian/control:
+ - Added build dependency on libxt-dev.
+ - Relax libwebkit-dev dependency on libwebkit-1.0-1.
+ - Bumped Standards-Version to 3.8.0.1. No changes.
+ * WebCore/page/gtk/AXObjectCacheAtk.cpp: Include stdio.h to avoid FTBFS
+ because of undefined printf.
+ * GNUmakefile.am, symbols.filter: Filter out all std::* symbols exported
+ because of stl headers.
+ * debian/libwebkit-1.0-1.symbols: Add symbols file.
+ * debian/rules: Bump shlibs because of some new symbols.
+
+ -- Mike Hommey <glandium@debian.org> Sun, 06 Jul 2008 15:09:55 +0200
+
+webkit (0~svn32442-1) unstable; urgency=low
+
+ [ Mike Hommey ]
+ * New upstream snapshot
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+ * debian/control: Add libpango1.0-dev to build dependencies and tighten
+ libgtk2.0-dev build dependency. Closes: #477493.
+
+ [ Luca Bruno ]
+ * debian/libwebkit-1.0-1.install, debian/rules: Install GtkLauncher
+ and DumpRenderTree in /usr/lib/webkit-1.0/libexec. Closes: #476514.
+
+ -- Mike Hommey <glandium@debian.org> Wed, 23 Apr 2008 22:20:25 +0200
+
+webkit (0~svn31841-1) unstable; urgency=low
+
+ * New upstream snapshot
+ + Includes proper Requires in .pc file. Closes: #450949.
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+ * debian/control, debian/rules: Don't build QtWebKit, it will be built from
+ Qt sources.
+ * debian/libqtwebkit*: Removed.
+ * debian/rules: Replaced make calls with $(MAKE).
+ * debian/control, debian/rules: Don't use qmake anymore, but use autotools
+ instead.
+ * debian/libwebkitgtk-dev.install: Remove the .prl file that was generated
+ by qmake.
+ * WebCore/WebCore.pro, WebKit.pro: Revert previous changes, as we don't use
+ qmake anymore.
+ * JavaScriptCore/wtf/ASCIICType.h: Revert what were warning fixes, to avoid
+ diverging too much from upstream.
+ * debian/rules: Clean-up autotools generated files in the clean target.
+ * debian/control, debian/rules, debian/libwebkit*: Rename packages to fit
+ new library SONAME.
+ * debian/control: libwebkit-dev doesn't need to depend on libglib2.0-dev.
+ * debian/libwebkit-1.0-1.install, debian/rules: Install GtkLauncher and
+ DumpRenderTree in /usr/lib/webkit-1.0, and don't rename DumpRenderTree, as
+ Qt homonym lie elsewhere.
+ * debian/libwebkit-1.0-1.preinst, debian/libwebkit-1.0-1.postrm: Don't
+ divert anything, since we don't clash with older files anymore.
+ * debian/rules: Ugly hack to add -Wl,--as-needed without it getting reordered
+ by libtool.
+ * WebKitTools/GNUmakefile.am: Don't build GtkLauncher and DumpRenderTree
+ with rpath.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 12 Apr 2008 21:40:00 +0200
+
+webkit (0~svn27674-4) unstable; urgency=low
+
+ * debian/rules: Revert change from 0~svn27674-3, which was obviously not
+ enough.
+ * WebKit.pro: Don't build testkjs, that provokes the s390 FTBFSes ; we don't
+ install it anyways. Closes: #466848.
+ * JavaScriptCore/kjs/interpreter.cpp, JavaScriptCore/wtf/ASCIICType.h,
+ WebCore/dom/Position.cpp, WebCore/editing/Selection.cpp,
+ WebCore/editing/SelectionController.cpp,
+ WebCore/editing/VisiblePosition.cpp,
+ WebCore/ksvg2/svg/SVGFontFaceElement.cpp,
+ WebCore/loader/FTPDirectoryParser.cpp,
+ WebCore/loader/icon/IconDatabase.cpp,
+ WebCore/platform/TextCodecLatin1.cpp,
+ WebCore/platform/TextCodecUserDefined.cpp,
+ WebCore/platform/TextStream.cpp,
+ WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Fix FTBFS with
+ gcc 4.3 due to missing includes. Closes: #455125.
+
+ -- Mike Hommey <glandium@debian.org> Thu, 21 Feb 2008 23:01:12 +0100
+
+webkit (0~svn27674-3) unstable; urgency=low
+
+ * debian/rules: Work around #466613 (FTBFS on s390) by building a little bit
+ less optimized (-O1). Thanks to Josselin Mouette.
+ * debian/control:
+ - Add Vcs-Browser and Vcs-Git fields, and turn Homepage indications in
+ descriptions into a control field.
+ - Bumped Standards-Version to 3.7.3.0. No changes.
+
+ -- Mike Hommey <glandium@debian.org> Wed, 20 Feb 2008 21:49:33 +0100
+
+webkit (0~svn29752-1) experimental; urgency=low
+
+ * New upstream snapshot
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+ * JavaScriptCore/wtf/TCSpinLock.h: Revert our work-around, now that a
+ proper patch has been applied upstream.
+ * WebCore/WebCore.pro: Don't use Qt version as SO version for QtWebKit.
+ * debian/control, debian/rules, debian/lib*0d.install: Bump SO version to
+ 1d because of ABI incompatible changes, and change package names
+ accordingly.
+ * debian/rules: Don't remove -lqtwebico from QtWebKit.pc, since it's not
+ here anymore.
+ * debian/rules, debian/lib*1d.install:
+ - Install new Gtk port's DumpRenderTree tool.
+ - Rename both port's DumpRenderTree tools to <port name>DumpRenderTree
+ to avoid conflicting names.
+ * debian/lib*1d.postrm, debian/lib*1d.preinst: Avoid conflicting files with
+ lib*0d packages (*Launcher programs) but allow to install both new and old
+ libraries by using diversions.
+
+ -- Mike Hommey <glandium@debian.org> Fri, 25 Jan 2008 00:31:51 +0100
+
+webkit (0~svn27674-2) unstable; urgency=low
+
+ * JavaScriptCore/JavaScriptCore.pri: cherry-picked change from revision
+ 28692 to fix FTBFS due to lack of -lpthread on the linker command line.
+ * debian/control: Add dependencies on necessary development packages
+ (essentially for header files) to our own development packages.
+
+ -- Mike Hommey <glandium@debian.org> Sat, 15 Dec 2007 11:04:47 +0100
+
+webkit (0~svn27674-1) unstable; urgency=low
+
+ * New upstream snapshot
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+ * debian/control: Make libwebkitgtk-dev conflict with the old
+ libwebkitgdk-dev. Closes: #449001.
+ * debian/rules: Bump qtwebkit shlibs.
+ * WebKit/qt/Api/qwebpage.cpp: cherry-picked change from revision 27904 to
+ fix crashes when an event is caught outside of the webkit frame in Qt.
+ This occurred, for example, when hovering over the QtLauncher toolbar.
+
+ -- Mike Hommey <glandium@debian.org> Mon, 19 Nov 2007 23:10:38 +0100
+
+webkit (0~svn26044-1) unstable; urgency=low
+
+ * New upstream snapshot
+ * debian/rules:
+ - Add support for DEB_BUILD_OPTIONS=noopt.
+ - Bump qtwebkit shlibs, and remove versioning on the webkitgtk ones,
+ as the library is new.
+ * debian/copyright: Updated to fit additions/removals of files upstream.
+ * debian/control, debian/rules, debian/libwebkitgtk-dev.install,
+ debian/libwebkitgtk0d.install: Replace occurences of gdk by gtk, and
+ rename libwebkitgdk*, to fit upstream rename of the Gtk port.
+ Closes: #445060.
+
+ -- Mike Hommey <glandium@debian.org> Fri, 05 Oct 2007 00:05:06 +0200
+
+webkit (0~svn25144-2) unstable; urgency=low
+
+ * JavaScriptCore/wtf/Platform.h:
+ - Also test if __arm__ is defined, which should fix the FTBFS on arm.
+ - Use better defines for our various arm ports.
+ * JavaScriptCore/kjs/ustring.h, WebCore/platform/DeprecatedString.h: Use
+ these new defines. Thanks Riku Voipio.
+ * debian/control: Build depend on Qt >= 4.3. Thanks Hubert Figuiere.
+ Closes: #439672.
+ * debian/rules: Explicitely use qmake-qt4 instead of qmake to avoid build
+ failures when qt3-dev-tools is installed. Thanks Michael Biebl.
+ Closes: #441007.
+
+ -- Mike Hommey <glandium@debian.org> Thu, 06 Sep 2007 08:12:21 +0200
+
+webkit (0~svn25144-1) unstable; urgency=low
+
+ * New upstream snapshot
+ * debian/copyright: Updated so as to fit what we actually remove (there were
+ missing removals previously, which were not appropriate for the most
+ anyways), and to fit the additions/removals of files upstream.
+ * JavaScriptCore/wtf/TCSpinLock.h: Work around an FTBFS on PPC due to a
+ probable regression in gcc (#438415).
+ * debian/rules:
+ + Change the place we install QtLauncher from, since it moved.
+ + Set binary packages' shlibs correctly.
+ + Use $(CURDIR) variable more safely to avoid problem with build
+ directories with spaces.
+ * WebKitQt/Plugins/Plugins.pro: Build plugins with hidden symbols, so that
+ they don't expose unwanted symbols.
+
+ -- Mike Hommey <glandium@debian.org> Sun, 19 Aug 2007 15:54:12 +0200
+
+webkit (0~svn24735-1) unstable; urgency=low
+
+ * Initial release. (Closes: #428855)
+
+ -- Mike Hommey <glandium@debian.org> Wed, 15 Aug 2007 14:19:46 +0200
+
--- /dev/null
+Source: webkit2gtk
+Priority: optional
+Section: web
+Maintainer: Debian WebKit Maintainers <pkg-webkit-maintainers@lists.alioth.debian.org>
+Uploaders: Gustavo Noronha Silva <kov@debian.org>,
+ Emilio Pozuelo Monfort <pochu@debian.org>,
+ Alberto Garcia <berto@igalia.com>
+Build-Depends: gawk,
+ cmake,
+ debhelper (>= 9),
+ libglib2.0-dev (>= 2.36.0),
+ libgtk2.0-dev (>= 2.24.10),
+ gir1.2-gtk-2.0,
+ libgtk-3-dev (>= 3.10.0),
+ gir1.2-gtk-3.0 (>= 3.10.0),
+ libpango1.0-dev (>= 1.30.0),
+ libharfbuzz-dev (>= 0.9.18),
+ libcairo2-dev (>= 1.10),
+ libfontconfig1-dev (>= 2.5),
+ libfreetype6-dev,
+ libicu-dev,
+ libxslt1-dev (>= 1.1.7),
+ libxml2-dev (>= 2.6),
+ libsoup2.4-dev (>= 2.42.0),
+ gir1.2-soup-2.4,
+ libsqlite3-dev (>= 3.0),
+ libgudev-1.0-dev [linux-any],
+ gperf,
+ bison,
+ flex,
+ ruby,
+ slimit,
+ libjpeg-dev,
+ libpng-dev,
+ libwebp-dev,
+ libxt-dev,
+ libgstreamer1.0-dev (>= 1.0.3),
+ libgstreamer-plugins-base1.0-dev (>= 1.0.3),
+ libenchant-dev (>= 0.22),
+ gtk-doc-tools,
+ geoclue-2.0,
+ libsecret-1-dev,
+ gobject-introspection (>= 1.32.0),
+ libgirepository1.0-dev (>= 0.9.12-4),
+ libgl1-mesa-dev
+Build-Conflicts: gir-repository-dev
+Standards-Version: 3.9.6
+Homepage: http://webkitgtk.org/
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-webkit/webkit.git
+Vcs-Git: git://anonscm.debian.org/pkg-webkit/webkit.git
+
+Package: libjavascriptcoregtk-4.0-18
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Description: JavaScript engine library from WebKitGTK+
+ JavaScriptCore is the JavaScript engine used in WebKit. It consists
+ of the following building blocks: lexer, parser, start-up interpreter
+ (LLInt), baseline JIT, a low-latency optimizing JIT (DFG), and a
+ high-throughput optimizing JIT (FTL).
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the shared libraries.
+
+Package: libjavascriptcoregtk-4.0-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Multi-Arch: same
+Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}),
+ gir1.2-javascriptcoregtk-4.0 (= ${binary:Version}),
+ ${misc:Depends}
+Description: JavaScript engine library from WebKitGTK+ - development files
+ JavaScriptCore is the JavaScript engine used in WebKit. It consists
+ of the following building blocks: lexer, parser, start-up interpreter
+ (LLInt), baseline JIT, a low-latency optimizing JIT (DFG), and a
+ high-throughput optimizing JIT (FTL).
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the development files.
+
+Package: libjavascriptcoregtk-4.0-18-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Multi-Arch: same
+Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}),
+ ${misc:Depends}
+Description: JavaScript engine library from WebKitGTK+ - debugging symbols
+ JavaScriptCore is the JavaScript engine used in WebKit. It consists
+ of the following building blocks: lexer, parser, start-up interpreter
+ (LLInt), baseline JIT, a low-latency optimizing JIT (DFG), and a
+ high-throughput optimizing JIT (FTL).
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the debugging symbols.
+
+Package: libjavascriptcoregtk-4.0-bin
+Section: interpreters
+Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Conflicts: libjavascriptcoregtk-3.0-bin
+Description: JavaScript engine library from WebKitGTK+ - command-line interpreter
+ JavaScriptCore is the JavaScript engine used in WebKit. It consists
+ of the following building blocks: lexer, parser, start-up interpreter
+ (LLInt), baseline JIT, a low-latency optimizing JIT (DFG), and a
+ high-throughput optimizing JIT (FTL).
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package provides jsc, a command-line JavaScript interpreter.
+
+Package: gir1.2-javascriptcoregtk-4.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends: ${gir:Depends},
+ ${misc:Depends}
+Conflicts: gobject-introspection-repository
+Description: JavaScript engine library from WebKitGTK+ - GObject introspection data
+ JavaScriptCore is the JavaScript engine used in WebKit. It consists
+ of the following building blocks: lexer, parser, start-up interpreter
+ (LLInt), baseline JIT, a low-latency optimizing JIT (DFG), and a
+ high-throughput optimizing JIT (FTL).
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the introspection data, which can be used by
+ packages using the GIRepository format to generate dynamic bindings.
+
+Package: libwebkit2gtk-4.0-37
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: libjavascriptcoregtk-4.0-18 (= ${binary:Version}),
+ ${shlibs:Depends},
+ ${misc:Depends}
+Recommends: gstreamer1.0-plugins-base,
+ gstreamer1.0-plugins-good,
+ ${gst:Recommends}
+Description: Web content engine library for GTK+
+ WebKit is a web content engine, derived from KHTML and KJS from KDE, and
+ used primarily in Apple's Safari browser. It is made to be embedded in
+ other applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It also
+ supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript and more.
+ .
+ WebKit2 is an API layer for WebKit designed from the ground up to
+ support a split process model, where the web content lives in a
+ separate process from the application UI.
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This is the library for embedding in GTK+ applications.
+
+Package: libwebkit2gtk-4.0-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Multi-Arch: same
+Depends: libwebkit2gtk-4.0-37 (= ${binary:Version}),
+ gir1.2-webkit2-4.0 (= ${binary:Version}),
+ libgtk-3-dev,
+ libsoup2.4-dev (>= 2.40),
+ libjavascriptcoregtk-4.0-dev (= ${binary:Version}),
+ ${misc:Depends}
+Description: Web content engine library for GTK+ - development files
+ WebKit is a web content engine, derived from KHTML and KJS from KDE, and
+ used primarily in Apple's Safari browser. It is made to be embedded in
+ other applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It also
+ supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript and more.
+ .
+ WebKit2 is an API layer for WebKit designed from the ground up to
+ support a split process model, where the web content lives in a
+ separate process from the application UI.
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the development files.
+
+Package: libwebkit2gtk-4.0-doc
+Section: doc
+Priority: extra
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: devhelp
+Description: Web content engine library for GTK+ - documentation
+ WebKit is a web content engine, derived from KHTML and KJS from KDE, and
+ used primarily in Apple's Safari browser. It is made to be embedded in
+ other applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It also
+ supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript and more.
+ .
+ WebKit2 is an API layer for WebKit designed from the ground up to
+ support a split process model, where the web content lives in a
+ separate process from the application UI.
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains the documentation.
+
+Package: libwebkit2gtk-4.0-37-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Multi-Arch: same
+Depends: libwebkit2gtk-4.0-37 (= ${binary:Version}),
+ libjavascriptcoregtk-4.0-18-dbg (= ${binary:Version}),
+ ${misc:Depends}
+Description: Web content engine library for GTK+ - debugging symbols
+ WebKit is a web content engine, derived from KHTML and KJS from KDE, and
+ used primarily in Apple's Safari browser. It is made to be embedded in
+ other applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It also
+ supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript and more.
+ .
+ WebKit2 is an API layer for WebKit designed from the ground up to
+ support a split process model, where the web content lives in a
+ separate process from the application UI.
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package provides the debugging symbols.
+
+Package: gir1.2-webkit2-4.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends: gir1.2-javascriptcoregtk-4.0 (= ${binary:Version}),
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Web content engine library for GTK+ - GObject introspection data
+ WebKit is a web content engine, derived from KHTML and KJS from KDE, and
+ used primarily in Apple's Safari browser. It is made to be embedded in
+ other applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It also
+ supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript and more.
+ .
+ WebKit2 is an API layer for WebKit designed from the ground up to
+ support a split process model, where the web content lives in a
+ separate process from the application UI.
+ .
+ This build comes from the GTK+ port of WebKit (API version 4.0).
+ .
+ This package contains introspection data, which can be used by
+ packages using the GIRepository format to generate dynamic bindings.
--- /dev/null
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Contact: https://lists.webkit.org/mailman/listinfo/webkit-gtk
+Source: http://webkitgtk.org/releases/
+Comment:
+ The source tarball comes without the following non-free files:
+ .
+ Source/WebInspectorUI/Tools/PrettyPrinting/populate/jquery.min.js
+ Tools/WebKitTestRunner/gtk/fonts/FontWithNoValidEncoding.fon
+
+Files: debian/*
+Copyright: © 2007-2009 Mike Hommey <glandium@debian.org>
+ © 2009 Gustavo Noronha Silva <kov@debian.org>
+ © 2014 Alberto Garcia <berto@igalia.com>
+License: LGPL-2+
+
+Files: debian/jquery-1.9.1.js
+Copyright: © 2005, 2012 jQuery Foundation, Inc. and other contributors
+License: Expat
+Comment:
+ Uncompressed version of jquery.min.js, downloaded from
+ http://code.jquery.com/jquery-1.9.1.js
+
+Files: *
+Copyright: © 2002-2014 Apple Inc. and others
+License: BSD-2-clause
+Comment:
+ The default license of WebKit is BSD 2-clause, available in
+ Source/WebKit/LICENSE. The exceptions are listed in the sections
+ that follow.
+
+Files: Source/ThirdParty/gtest/scripts/upload.py
+Copyright: © 2007 Google Inc.
+License: Apache-2.0
+
+Files: Source/JavaScriptCore/runtime/WeakRandom.h
+Copyright: © 2009 Apple Inc
+ © 2009 Ian C. Bullard.
+License: BSD-2-clause and Expat
+
+Files: Source/JavaScriptCore/API/JSRetainPtr.h
+ Source/JavaScriptCore/API/JSStringRefBSTR.cpp
+ Source/JavaScriptCore/API/JSStringRefBSTR.h
+ Source/JavaScriptCore/bindings/*
+ Source/JavaScriptCore/bytecode/CodeBlock.cpp
+ Source/JavaScriptCore/bytecode/CodeBlock.h
+ Source/JavaScriptCore/bytecode/EvalCodeCache.h
+ Source/JavaScriptCore/bytecode/Instruction.h
+ Source/JavaScriptCore/bytecode/JumpTable.cpp
+ Source/JavaScriptCore/bytecode/JumpTable.h
+ Source/JavaScriptCore/bytecode/Opcode.cpp
+ Source/JavaScriptCore/bytecode/Opcode.h
+ Source/JavaScriptCore/bytecode/SamplingTool.cpp
+ Source/JavaScriptCore/bytecode/SamplingTool.h
+ Source/JavaScriptCore/bytecode/SpeculatedType.cpp
+ Source/JavaScriptCore/bytecode/SpeculatedType.h
+ Source/JavaScriptCore/bytecode/ValueProfile.h
+ Source/JavaScriptCore/bytecompiler/*
+ Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp
+ Source/JavaScriptCore/debugger/DebuggerCallFrame.h
+ Source/JavaScriptCore/ftl/FTLUnwindInfo.cpp
+ Source/JavaScriptCore/heap/GCActivityCallback.cpp
+ Source/JavaScriptCore/heap/GCActivityCallback.h
+ Source/JavaScriptCore/inspector/ConsoleMessage.cpp
+ Source/JavaScriptCore/inspector/ConsoleMessage.h
+ Source/JavaScriptCore/inspector/InjectedScript.cpp
+ Source/JavaScriptCore/inspector/InjectedScript.h
+ Source/JavaScriptCore/inspector/InjectedScriptBase.cpp
+ Source/JavaScriptCore/inspector/InjectedScriptBase.h
+ Source/JavaScriptCore/inspector/InjectedScriptManager.cpp
+ Source/JavaScriptCore/inspector/InjectedScriptManager.h
+ Source/JavaScriptCore/inspector/InjectedScriptModule.cpp
+ Source/JavaScriptCore/inspector/InjectedScriptModule.h
+ Source/JavaScriptCore/inspector/InspectorValues.cpp
+ Source/JavaScriptCore/inspector/InspectorValues.h
+ Source/JavaScriptCore/inspector/ScriptArguments.cpp
+ Source/JavaScriptCore/inspector/ScriptArguments.h
+ Source/JavaScriptCore/inspector/ScriptBreakpoint.h
+ Source/JavaScriptCore/inspector/ScriptCallFrame.cpp
+ Source/JavaScriptCore/inspector/ScriptCallFrame.h
+ Source/JavaScriptCore/inspector/ScriptCallStack.cpp
+ Source/JavaScriptCore/inspector/ScriptCallStack.h
+ Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp
+ Source/JavaScriptCore/inspector/ScriptCallStackFactory.h
+ Source/JavaScriptCore/inspector/ScriptDebugListener.h
+ Source/JavaScriptCore/inspector/ScriptDebugServer.cpp
+ Source/JavaScriptCore/inspector/ScriptDebugServer.h
+ Source/JavaScriptCore/inspector/agents/InspectorAgent.cpp
+ Source/JavaScriptCore/inspector/agents/InspectorAgent.h
+ Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
+ Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h
+ Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp
+ Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.h
+ Source/JavaScriptCore/inspector/scripts/xxd.pl
+ Source/JavaScriptCore/interpreter/Interpreter.cpp
+ Source/JavaScriptCore/interpreter/Interpreter.h
+ Source/JavaScriptCore/interpreter/JSStack.cpp
+ Source/JavaScriptCore/interpreter/JSStack.h
+ Source/JavaScriptCore/interpreter/Register.h
+ Source/JavaScriptCore/jit/CompactJITCodeMap.h
+ Source/JavaScriptCore/jit/JITStubs.cpp
+ Source/JavaScriptCore/jit/JITStubs.h
+ Source/JavaScriptCore/jit/JITStubsARM.h
+ Source/JavaScriptCore/jit/JITStubsARMv7.h
+ Source/JavaScriptCore/jit/JITStubsX86.h
+ Source/JavaScriptCore/jit/JITStubsX86_64.h
+ Source/JavaScriptCore/parser/SourceCode.h
+ Source/JavaScriptCore/parser/SourceProvider.h
+ Source/JavaScriptCore/profiler/LegacyProfiler.cpp
+ Source/JavaScriptCore/profiler/LegacyProfiler.h
+ Source/JavaScriptCore/profiler/ProfileNode.cpp
+ Source/JavaScriptCore/profiler/ProfileNode.h
+ Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputsTemplates.py
+ Source/JavaScriptCore/runtime/CallData.h
+ Source/JavaScriptCore/runtime/ConstructData.h
+ Source/JavaScriptCore/runtime/ExceptionHelpers.cpp
+ Source/JavaScriptCore/runtime/ExceptionHelpers.h
+ Source/JavaScriptCore/runtime/InitializeThreading.cpp
+ Source/JavaScriptCore/runtime/InitializeThreading.h
+ Source/JavaScriptCore/runtime/JSEnvironmentRecord.cpp
+ Source/JavaScriptCore/runtime/JSEnvironmentRecord.h
+ Source/JavaScriptCore/runtime/JSGlobalObject.cpp
+ Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp
+ Source/JavaScriptCore/runtime/JSLexicalEnvironment.h
+ Source/JavaScriptCore/runtime/JSNotAnObject.cpp
+ Source/JavaScriptCore/runtime/JSNotAnObject.h
+ Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp
+ Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h
+ Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp
+ Source/JavaScriptCore/runtime/JSSymbolTableObject.h
+ Source/JavaScriptCore/runtime/SamplingCounter.cpp
+ Source/JavaScriptCore/runtime/SamplingCounter.h
+ Source/JavaScriptCore/runtime/SymbolTable.cpp
+ Source/JavaScriptCore/runtime/SymbolTable.h
+ Source/JavaScriptCore/runtime/TypeProfilerLog.cpp
+ Source/JavaScriptCore/runtime/TypeProfilerLog.h
+ Source/JavaScriptCore/runtime/VM.cpp
+ Source/JavaScriptCore/runtime/VM.h
+ Source/ThirdParty/ANGLE/*
+ Source/ThirdParty/gtest/*
+ Source/ThirdParty/gtest/codegear/*
+ Source/ThirdParty/gtest/include/gtest/*
+ Source/ThirdParty/gtest/include/gtest/internal/*
+ Source/ThirdParty/gtest/samples/*
+ Source/ThirdParty/gtest/scripts/*
+ Source/ThirdParty/gtest/src/*
+ Source/ThirdParty/gtest/test/*
+ Source/ThirdParty/gtest/xcode/Samples/FrameworkSample/*
+ Source/ThirdParty/gtest/xcode/Scripts/*
+ Source/WTF/wtf/ASCIICType.h
+ Source/WTF/wtf/AVLTree.h
+ Source/WTF/wtf/AutodrainedPool.h
+ Source/WTF/wtf/BoundsCheckedPointer.h
+ Source/WTF/wtf/ByteOrder.h
+ Source/WTF/wtf/CurrentTime.cpp
+ Source/WTF/wtf/CurrentTime.h
+ Source/WTF/wtf/Deque.h
+ Source/WTF/wtf/DisallowCType.h
+ Source/WTF/wtf/FastMalloc.cpp
+ Source/WTF/wtf/Locker.h
+ Source/WTF/wtf/MD5.cpp
+ Source/WTF/wtf/MD5.h
+ Source/WTF/wtf/MainThread.cpp
+ Source/WTF/wtf/MainThread.h
+ Source/WTF/wtf/MediaTime.cpp
+ Source/WTF/wtf/MediaTime.h
+ Source/WTF/wtf/MessageQueue.h
+ Source/WTF/wtf/MetaAllocator.cpp
+ Source/WTF/wtf/MetaAllocator.h
+ Source/WTF/wtf/MetaAllocatorHandle.h
+ Source/WTF/wtf/RedBlackTree.h
+ Source/WTF/wtf/RunLoopTimer.h
+ Source/WTF/wtf/RunLoopTimerCF.cpp
+ Source/WTF/wtf/SHA1.cpp
+ Source/WTF/wtf/SHA1.h
+ Source/WTF/wtf/SaturatedArithmetic.h
+ Source/WTF/wtf/SchedulePair.h
+ Source/WTF/wtf/SchedulePairCF.cpp
+ Source/WTF/wtf/SegmentedVector.h
+ Source/WTF/wtf/SizeLimits.cpp
+ Source/WTF/wtf/StreamBuffer.h
+ Source/WTF/wtf/TCPackedCache.h
+ Source/WTF/wtf/TCPageMap.h
+ Source/WTF/wtf/TCSpinLock.h
+ Source/WTF/wtf/TCSystemAlloc.cpp
+ Source/WTF/wtf/TCSystemAlloc.h
+ Source/WTF/wtf/ThreadFunctionInvocation.h
+ Source/WTF/wtf/ThreadIdentifierDataPthreads.cpp
+ Source/WTF/wtf/ThreadIdentifierDataPthreads.h
+ Source/WTF/wtf/ThreadSpecific.h
+ Source/WTF/wtf/ThreadingPrimitives.h
+ Source/WTF/wtf/ThreadingPthreads.cpp
+ Source/WTF/wtf/ThreadingWin.cpp
+ Source/WTF/wtf/dtoa/*
+ Source/WTF/wtf/gtk/MainThreadGtk.cpp
+ Source/WTF/wtf/text/AtomicStringHash.h
+ Source/WTF/wtf/text/StringBuffer.h
+ Source/WTF/wtf/unicode/Collator.h
+ Source/WTF/wtf/unicode/CollatorDefault.cpp
+ Source/WTF/wtf/unicode/icu/*
+ Source/WebCore/Modules/indexeddb/IDBCallbacks.h
+ Source/WebCore/Modules/indexeddb/IDBDatabaseException.cpp
+ Source/WebCore/Modules/indexeddb/IDBDatabaseMetadata.h
+ Source/WebCore/Modules/indexeddb/IDBEventDispatcher.cpp
+ Source/WebCore/Modules/indexeddb/IDBEventDispatcher.h
+ Source/WebCore/Modules/indexeddb/IDBFactory.cpp
+ Source/WebCore/Modules/indexeddb/IDBFactory.h
+ Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.cpp
+ Source/WebCore/Modules/indexeddb/IDBFactoryBackendInterface.h
+ Source/WebCore/Modules/indexeddb/IDBIndexMetadata.h
+ Source/WebCore/Modules/indexeddb/IDBObjectStoreMetadata.h
+ Source/WebCore/Modules/indexeddb/IDBRecordIdentifier.h
+ Source/WebCore/Modules/indexeddb/IDBRequest.cpp
+ Source/WebCore/Modules/indexeddb/IDBRequest.h
+ Source/WebCore/Modules/mediasource/*
+ Source/WebCore/Modules/mediastream/DOMURLMediaStream.cpp
+ Source/WebCore/Modules/mediastream/DOMURLMediaStream.h
+ Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp
+ Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h
+ Source/WebCore/Modules/mediastream/RTCConfiguration.h
+ Source/WebCore/Modules/mediastream/RTCIceCandidate.cpp
+ Source/WebCore/Modules/mediastream/RTCIceCandidate.h
+ Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
+ Source/WebCore/Modules/mediastream/RTCPeerConnection.h
+ Source/WebCore/Modules/mediastream/RTCSessionDescription.cpp
+ Source/WebCore/Modules/mediastream/RTCSessionDescription.h
+ Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h
+ Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp
+ Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h
+ Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp
+ Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h
+ Source/WebCore/Modules/mediastream/UserMediaClient.h
+ Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
+ Source/WebCore/Modules/mediastream/UserMediaRequest.h
+ Source/WebCore/Modules/notifications/Notification.cpp
+ Source/WebCore/Modules/notifications/Notification.h
+ Source/WebCore/Modules/notifications/NotificationCenter.cpp
+ Source/WebCore/Modules/notifications/NotificationCenter.h
+ Source/WebCore/Modules/notifications/NotificationClient.h
+ Source/WebCore/Modules/quota/*
+ Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.cpp
+ Source/WebCore/Modules/webaudio/AudioBuffer.cpp
+ Source/WebCore/Modules/webaudio/AudioBuffer.h
+ Source/WebCore/Modules/webaudio/AudioListener.cpp
+ Source/WebCore/Modules/webaudio/AudioListener.h
+ Source/WebCore/Modules/webaudio/AudioParam.h
+ Source/WebCore/Modules/webaudio/AudioParamTimeline.h
+ Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h
+ Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp
+ Source/WebCore/Modules/webaudio/ChannelMergerNode.h
+ Source/WebCore/Modules/webaudio/PeriodicWave.cpp
+ Source/WebCore/Modules/webaudio/PeriodicWave.h
+ Source/WebCore/Modules/webdatabase/*
+ Source/WebCore/Modules/websockets/*
+ Source/WebCore/accessibility/*
+ Source/WebCore/bindings/generic/*
+ Source/WebCore/bindings/js/JSAttrCustom.cpp
+ Source/WebCore/bindings/js/JSBlobCustom.cpp
+ Source/WebCore/bindings/js/JSCallbackData.cpp
+ Source/WebCore/bindings/js/JSCallbackData.h
+ Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp
+ Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp
+ Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp
+ Source/WebCore/bindings/js/JSDOMWindowShell.cpp
+ Source/WebCore/bindings/js/JSDOMWindowShell.h
+ Source/WebCore/bindings/js/JSDataTransferCustom.cpp
+ Source/WebCore/bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp
+ Source/WebCore/bindings/js/JSElementCustom.cpp
+ Source/WebCore/bindings/js/JSErrorHandler.cpp
+ Source/WebCore/bindings/js/JSErrorHandler.h
+ Source/WebCore/bindings/js/JSEventCustom.cpp
+ Source/WebCore/bindings/js/JSFileReaderCustom.cpp
+ Source/WebCore/bindings/js/JSHTMLFrameElementCustom.cpp
+ Source/WebCore/bindings/js/JSHTMLSelectElementCustom.h
+ Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp
+ Source/WebCore/bindings/js/JSHistoryCustom.cpp
+ Source/WebCore/bindings/js/JSInspectorFrontendHostCustom.cpp
+ Source/WebCore/bindings/js/JSMessageEventCustom.cpp
+ Source/WebCore/bindings/js/JSMessagePortCustom.h
+ Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
+ Source/WebCore/bindings/js/JSPerformanceEntryCustom.cpp
+ Source/WebCore/bindings/js/JSPopStateEventCustom.cpp
+ Source/WebCore/bindings/js/JSSQLResultSetRowListCustom.cpp
+ Source/WebCore/bindings/js/JSSQLTransactionCustom.cpp
+ Source/WebCore/bindings/js/JSSQLTransactionSyncCustom.cpp
+ Source/WebCore/bindings/js/JSSharedWorkerCustom.cpp
+ Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
+ Source/WebCore/bindings/js/JSXSLTProcessorCustom.cpp
+ Source/WebCore/bindings/js/ScriptCachedFrameData.cpp
+ Source/WebCore/bindings/js/ScriptCachedFrameData.h
+ Source/WebCore/bindings/js/ScriptGlobalObject.cpp
+ Source/WebCore/bindings/js/ScriptGlobalObject.h
+ Source/WebCore/bindings/js/ScriptSourceCode.h
+ Source/WebCore/bindings/js/ScriptState.cpp
+ Source/WebCore/bindings/js/ScriptState.h
+ Source/WebCore/bindings/js/ScriptWrappable.h
+ Source/WebCore/bindings/js/ScriptWrappableInlines.h
+ Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp
+ Source/WebCore/bindings/js/WorkerScriptDebugServer.h
+ Source/WebCore/css/CSSAspectRatioValue.cpp
+ Source/WebCore/css/CSSAspectRatioValue.h
+ Source/WebCore/css/CSSCalculationValue.cpp
+ Source/WebCore/css/CSSCalculationValue.h
+ Source/WebCore/css/CSSFontFaceLoadEvent.cpp
+ Source/WebCore/css/CSSFontFaceLoadEvent.h
+ Source/WebCore/css/CSSGridLineNamesValue.cpp
+ Source/WebCore/css/CSSGridLineNamesValue.h
+ Source/WebCore/css/CSSGridTemplateAreasValue.cpp
+ Source/WebCore/css/CSSGridTemplateAreasValue.h
+ Source/WebCore/css/CSSOMUtils.cpp
+ Source/WebCore/css/CSSOMUtils.h
+ Source/WebCore/css/CSSPropertySourceData.cpp
+ Source/WebCore/css/CSSPropertySourceData.h
+ Source/WebCore/css/CSSSupportsRule.cpp
+ Source/WebCore/css/CSSSupportsRule.h
+ Source/WebCore/css/CSSToLengthConversionData.cpp
+ Source/WebCore/css/CSSToLengthConversionData.h
+ Source/WebCore/css/DOMWindowCSS.cpp
+ Source/WebCore/css/DOMWindowCSS.h
+ Source/WebCore/dom/ChildListMutationScope.cpp
+ Source/WebCore/dom/ChildListMutationScope.h
+ Source/WebCore/dom/ClassNodeList.cpp
+ Source/WebCore/dom/ClassNodeList.h
+ Source/WebCore/dom/CrossThreadTask.h
+ Source/WebCore/dom/CurrentScriptIncrementer.h
+ Source/WebCore/dom/DOMCoreException.cpp
+ Source/WebCore/dom/DOMCoreException.h
+ Source/WebCore/dom/DOMTimeStamp.h
+ Source/WebCore/dom/DataTransferItem.cpp
+ Source/WebCore/dom/DataTransferItem.h
+ Source/WebCore/dom/DataTransferItemList.h
+ Source/WebCore/dom/DocumentMarker.cpp
+ Source/WebCore/dom/DocumentOrderedMap.cpp
+ Source/WebCore/dom/DocumentOrderedMap.h
+ Source/WebCore/dom/ElementRareData.cpp
+ Source/WebCore/dom/ErrorEvent.cpp
+ Source/WebCore/dom/ErrorEvent.h
+ Source/WebCore/dom/EventException.cpp
+ Source/WebCore/dom/EventException.h
+ Source/WebCore/dom/ExceptionBase.cpp
+ Source/WebCore/dom/ExceptionBase.h
+ Source/WebCore/dom/ExceptionCodePlaceholder.cpp
+ Source/WebCore/dom/ExceptionCodePlaceholder.h
+ Source/WebCore/dom/IconURL.cpp
+ Source/WebCore/dom/IconURL.h
+ Source/WebCore/dom/MessagePortChannel.cpp
+ Source/WebCore/dom/MessagePortChannel.h
+ Source/WebCore/dom/MutationCallback.h
+ Source/WebCore/dom/MutationObserver.cpp
+ Source/WebCore/dom/MutationObserver.h
+ Source/WebCore/dom/MutationObserverInterestGroup.cpp
+ Source/WebCore/dom/MutationObserverInterestGroup.h
+ Source/WebCore/dom/MutationObserverRegistration.cpp
+ Source/WebCore/dom/MutationObserverRegistration.h
+ Source/WebCore/dom/MutationRecord.cpp
+ Source/WebCore/dom/MutationRecord.h
+ Source/WebCore/dom/NodeRareData.cpp
+ Source/WebCore/dom/NodeRenderingTraversal.cpp
+ Source/WebCore/dom/NodeRenderingTraversal.h
+ Source/WebCore/dom/PseudoElement.cpp
+ Source/WebCore/dom/PseudoElement.h
+ Source/WebCore/dom/RangeException.cpp
+ Source/WebCore/dom/RenderedDocumentMarker.h
+ Source/WebCore/dom/RequestAnimationFrameCallback.h
+ Source/WebCore/dom/ScopedEventQueue.cpp
+ Source/WebCore/dom/ScopedEventQueue.h
+ Source/WebCore/dom/ShadowRoot.cpp
+ Source/WebCore/dom/ShadowRoot.h
+ Source/WebCore/dom/StaticNodeList.cpp
+ Source/WebCore/dom/StaticNodeList.h
+ Source/WebCore/dom/StringCallback.cpp
+ Source/WebCore/dom/StringCallback.h
+ Source/WebCore/dom/TemplateContentDocumentFragment.h
+ Source/WebCore/dom/TreeDepthLimit.h
+ Source/WebCore/dom/UserActionElementSet.cpp
+ Source/WebCore/dom/UserActionElementSet.h
+ Source/WebCore/dom/default/*
+ Source/WebCore/dom/make_dom_exceptions.pl
+ Source/WebCore/dom/make_event_factory.pl
+ Source/WebCore/dom/make_names.pl
+ Source/WebCore/editing/ApplyBlockElementCommand.h
+ Source/WebCore/editing/EditingStyle.h
+ Source/WebCore/editing/RenderedPosition.cpp
+ Source/WebCore/editing/RenderedPosition.h
+ Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp
+ Source/WebCore/editing/ReplaceNodeWithSpanCommand.h
+ Source/WebCore/editing/SmartReplace.cpp
+ Source/WebCore/editing/SmartReplace.h
+ Source/WebCore/editing/SmartReplaceCF.cpp
+ Source/WebCore/editing/SurroundingText.cpp
+ Source/WebCore/editing/SurroundingText.h
+ Source/WebCore/editing/UndoStep.h
+ Source/WebCore/extract-localizable-strings.pl
+ Source/WebCore/fileapi/*
+ Source/WebCore/history/CachedFramePlatformData.h
+ Source/WebCore/html/BaseButtonInputType.cpp
+ Source/WebCore/html/BaseButtonInputType.h
+ Source/WebCore/html/BaseCheckableInputType.cpp
+ Source/WebCore/html/BaseCheckableInputType.h
+ Source/WebCore/html/BaseClickableWithKeyInputType.cpp
+ Source/WebCore/html/BaseClickableWithKeyInputType.h
+ Source/WebCore/html/BaseDateAndTimeInputType.cpp
+ Source/WebCore/html/BaseDateAndTimeInputType.h
+ Source/WebCore/html/BaseTextInputType.h
+ Source/WebCore/html/ButtonInputType.cpp
+ Source/WebCore/html/ButtonInputType.h
+ Source/WebCore/html/CheckboxInputType.cpp
+ Source/WebCore/html/CheckboxInputType.h
+ Source/WebCore/html/ColorInputType.cpp
+ Source/WebCore/html/ColorInputType.h
+ Source/WebCore/html/DOMFormData.cpp
+ Source/WebCore/html/DOMFormData.h
+ Source/WebCore/html/DateInputType.cpp
+ Source/WebCore/html/DateInputType.h
+ Source/WebCore/html/DateTimeInputType.cpp
+ Source/WebCore/html/DateTimeInputType.h
+ Source/WebCore/html/DateTimeLocalInputType.cpp
+ Source/WebCore/html/DateTimeLocalInputType.h
+ Source/WebCore/html/EmailInputType.h
+ Source/WebCore/html/FileInputType.h
+ Source/WebCore/html/HTMLDataListElement.cpp
+ Source/WebCore/html/HTMLDataListElement.h
+ Source/WebCore/html/HTMLElementsAllInOne.cpp
+ Source/WebCore/html/HTMLOutputElement.cpp
+ Source/WebCore/html/HTMLOutputElement.h
+ Source/WebCore/html/HTMLTableRowsCollection.cpp
+ Source/WebCore/html/HTMLTableRowsCollection.h
+ Source/WebCore/html/HTMLTemplateElement.cpp
+ Source/WebCore/html/HTMLTemplateElement.h
+ Source/WebCore/html/HTMLUnknownElement.h
+ Source/WebCore/html/HiddenInputType.cpp
+ Source/WebCore/html/HiddenInputType.h
+ Source/WebCore/html/ImageData.cpp
+ Source/WebCore/html/ImageData.h
+ Source/WebCore/html/ImageInputType.h
+ Source/WebCore/html/InputType.h
+ Source/WebCore/html/LabelableElement.h
+ Source/WebCore/html/LinkRelAttribute.cpp
+ Source/WebCore/html/LinkRelAttribute.h
+ Source/WebCore/html/MonthInputType.cpp
+ Source/WebCore/html/MonthInputType.h
+ Source/WebCore/html/NumberInputType.cpp
+ Source/WebCore/html/NumberInputType.h
+ Source/WebCore/html/PasswordInputType.cpp
+ Source/WebCore/html/PasswordInputType.h
+ Source/WebCore/html/RadioInputType.h
+ Source/WebCore/html/RangeInputType.cpp
+ Source/WebCore/html/RangeInputType.h
+ Source/WebCore/html/ResetInputType.cpp
+ Source/WebCore/html/ResetInputType.h
+ Source/WebCore/html/SearchInputType.cpp
+ Source/WebCore/html/SearchInputType.h
+ Source/WebCore/html/SubmitInputType.cpp
+ Source/WebCore/html/SubmitInputType.h
+ Source/WebCore/html/TelephoneInputType.cpp
+ Source/WebCore/html/TelephoneInputType.h
+ Source/WebCore/html/TextFieldInputType.cpp
+ Source/WebCore/html/TextFieldInputType.h
+ Source/WebCore/html/TextInputType.cpp
+ Source/WebCore/html/TextInputType.h
+ Source/WebCore/html/TimeInputType.cpp
+ Source/WebCore/html/TimeInputType.h
+ Source/WebCore/html/URLInputType.cpp
+ Source/WebCore/html/URLInputType.h
+ Source/WebCore/html/URLRegistry.h
+ Source/WebCore/html/ValidationMessage.cpp
+ Source/WebCore/html/ValidationMessage.h
+ Source/WebCore/html/WeekInputType.cpp
+ Source/WebCore/html/WeekInputType.h
+ Source/WebCore/html/forms/*
+ Source/WebCore/html/parser/HTMLSrcsetParser.cpp
+ Source/WebCore/html/parser/HTMLSrcsetParser.h
+ Source/WebCore/html/parser/ParsingUtilities.h
+ Source/WebCore/html/shadow/*
+ Source/WebCore/html/track/AudioTrack.cpp
+ Source/WebCore/html/track/BufferedLineReader.cpp
+ Source/WebCore/html/track/BufferedLineReader.h
+ Source/WebCore/html/track/TextTrack.cpp
+ Source/WebCore/html/track/TextTrackCue.cpp
+ Source/WebCore/html/track/TextTrackCue.h
+ Source/WebCore/html/track/VTTCue.cpp
+ Source/WebCore/html/track/VTTCue.h
+ Source/WebCore/html/track/VTTRegion.cpp
+ Source/WebCore/html/track/VTTRegion.h
+ Source/WebCore/html/track/VTTScanner.cpp
+ Source/WebCore/html/track/VTTScanner.h
+ Source/WebCore/html/track/VideoTrack.cpp
+ Source/WebCore/html/track/WebVTTParser.cpp
+ Source/WebCore/html/track/WebVTTParser.h
+ Source/WebCore/html/track/WebVTTToken.h
+ Source/WebCore/html/track/WebVTTTokenizer.cpp
+ Source/WebCore/html/track/WebVTTTokenizer.h
+ Source/WebCore/inspector/*
+ Source/WebCore/loader/*
+ Source/WebCore/loader/appcache/ApplicationCacheHost.h
+ Source/WebCore/loader/archive/*
+ Source/WebCore/loader/archive/mhtml/*
+ Source/WebCore/loader/icon/*
+ Source/WebCore/make-file-arrays.py
+ Source/WebCore/page/BarProp.cpp
+ Source/WebCore/page/BarProp.h
+ Source/WebCore/page/ContextMenuProvider.h
+ Source/WebCore/page/Crypto.cpp
+ Source/WebCore/page/Crypto.h
+ Source/WebCore/page/DOMSelection.cpp
+ Source/WebCore/page/DOMSelection.h
+ Source/WebCore/page/EventSource.cpp
+ Source/WebCore/page/EventSource.h
+ Source/WebCore/page/GestureTapHighlighter.cpp
+ Source/WebCore/page/GestureTapHighlighter.h
+ Source/WebCore/page/Location.cpp
+ Source/WebCore/page/Location.h
+ Source/WebCore/page/OriginAccessEntry.cpp
+ Source/WebCore/page/OriginAccessEntry.h
+ Source/WebCore/page/PageConsoleClient.cpp
+ Source/WebCore/page/PageConsoleClient.h
+ Source/WebCore/page/PageSerializer.cpp
+ Source/WebCore/page/PageVisibilityState.cpp
+ Source/WebCore/page/PageVisibilityState.h
+ Source/WebCore/page/Performance.cpp
+ Source/WebCore/page/Performance.h
+ Source/WebCore/page/PerformanceEntry.cpp
+ Source/WebCore/page/PerformanceEntry.h
+ Source/WebCore/page/PerformanceEntryList.cpp
+ Source/WebCore/page/PerformanceEntryList.h
+ Source/WebCore/page/PerformanceNavigation.cpp
+ Source/WebCore/page/PerformanceNavigation.h
+ Source/WebCore/page/PerformanceResourceTiming.cpp
+ Source/WebCore/page/PerformanceResourceTiming.h
+ Source/WebCore/page/PerformanceTiming.cpp
+ Source/WebCore/page/PerformanceTiming.h
+ Source/WebCore/page/Screen.cpp
+ Source/WebCore/page/Screen.h
+ Source/WebCore/page/SecurityOrigin.cpp
+ Source/WebCore/page/SecurityOrigin.h
+ Source/WebCore/page/SecurityOriginHash.h
+ Source/WebCore/page/SecurityPolicy.cpp
+ Source/WebCore/page/SecurityPolicy.h
+ Source/WebCore/page/WindowFeatures.h
+ Source/WebCore/page/animation/*
+ Source/WebCore/platform/CalculationValue.cpp
+ Source/WebCore/platform/CalculationValue.h
+ Source/WebCore/platform/ColorChooser.h
+ Source/WebCore/platform/ColorChooserClient.h
+ Source/WebCore/platform/CrossThreadCopier.cpp
+ Source/WebCore/platform/CrossThreadCopier.h
+ Source/WebCore/platform/DateComponents.cpp
+ Source/WebCore/platform/DateComponents.h
+ Source/WebCore/platform/DateTimeChooser.h
+ Source/WebCore/platform/DateTimeChooserClient.h
+ Source/WebCore/platform/Decimal.cpp
+ Source/WebCore/platform/Decimal.h
+ Source/WebCore/platform/FileChooser.cpp
+ Source/WebCore/platform/FileChooser.h
+ Source/WebCore/platform/FileMetadata.h
+ Source/WebCore/platform/FileStream.cpp
+ Source/WebCore/platform/FileStream.h
+ Source/WebCore/platform/FileStreamClient.h
+ Source/WebCore/platform/FileSystem.h
+ Source/WebCore/platform/FloatConversion.h
+ Source/WebCore/platform/LayoutUnit.h
+ Source/WebCore/platform/LengthBox.cpp
+ Source/WebCore/platform/MainThreadTask.h
+ Source/WebCore/platform/ReferrerPolicy.h
+ Source/WebCore/platform/ScrollAnimator.cpp
+ Source/WebCore/platform/ScrollAnimator.h
+ Source/WebCore/platform/ScrollAnimatorNone.cpp
+ Source/WebCore/platform/ScrollAnimatorNone.h
+ Source/WebCore/platform/ScrollableArea.cpp
+ Source/WebCore/platform/SharedBufferChunkReader.cpp
+ Source/WebCore/platform/SharedBufferChunkReader.h
+ Source/WebCore/platform/UUID.cpp
+ Source/WebCore/platform/UUID.h
+ Source/WebCore/platform/audio/*
+ Source/WebCore/platform/graphics/FloatQuad.cpp
+ Source/WebCore/platform/graphics/FloatQuad.h
+ Source/WebCore/platform/graphics/FontCache.cpp
+ Source/WebCore/platform/graphics/FontCache.h
+ Source/WebCore/platform/graphics/FontDescription.cpp
+ Source/WebCore/platform/graphics/FontGlyphs.cpp
+ Source/WebCore/platform/graphics/GeneratedImage.cpp
+ Source/WebCore/platform/graphics/Glyph.h
+ Source/WebCore/platform/graphics/GlyphBuffer.h
+ Source/WebCore/platform/graphics/GlyphMetricsMap.h
+ Source/WebCore/platform/graphics/GlyphPage.h
+ Source/WebCore/platform/graphics/GlyphPageTreeNode.cpp
+ Source/WebCore/platform/graphics/GlyphPageTreeNode.h
+ Source/WebCore/platform/graphics/LayoutBoxExtent.cpp
+ Source/WebCore/platform/graphics/LayoutBoxExtent.h
+ Source/WebCore/platform/graphics/LayoutPoint.h
+ Source/WebCore/platform/graphics/LayoutRect.cpp
+ Source/WebCore/platform/graphics/LayoutRect.h
+ Source/WebCore/platform/graphics/LayoutSize.h
+ Source/WebCore/platform/graphics/MediaSourcePrivate.h
+ Source/WebCore/platform/graphics/SimpleFontData.cpp
+ Source/WebCore/platform/graphics/SourceBufferPrivate.h
+ Source/WebCore/platform/graphics/StringTruncator.cpp
+ Source/WebCore/platform/graphics/StringTruncator.h
+ Source/WebCore/platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp
+ Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp
+ Source/WebCore/platform/graphics/gpu/*
+ Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp
+ Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.h
+ Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp
+ Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h
+ Source/WebCore/platform/graphics/gtk/IconGtk.cpp
+ Source/WebCore/platform/graphics/harfbuzz/*
+ Source/WebCore/platform/image-decoders/bmp/*
+ Source/WebCore/platform/image-decoders/ico/*
+ Source/WebCore/platform/image-decoders/webp/*
+ Source/WebCore/platform/image-encoders/PNGImageEncoder.cpp
+ Source/WebCore/platform/mediastream/*
+ Source/WebCore/platform/mediastream/gstreamer/*
+ Source/WebCore/platform/mock/GeolocationClientMock.cpp
+ Source/WebCore/platform/mock/GeolocationClientMock.h
+ Source/WebCore/platform/network/BlobData.cpp
+ Source/WebCore/platform/network/BlobData.h
+ Source/WebCore/platform/network/BlobRegistry.h
+ Source/WebCore/platform/network/BlobRegistryImpl.cpp
+ Source/WebCore/platform/network/BlobRegistryImpl.h
+ Source/WebCore/platform/network/BlobResourceHandle.cpp
+ Source/WebCore/platform/network/BlobResourceHandle.h
+ Source/WebCore/platform/network/HTTPHeaderMap.cpp
+ Source/WebCore/platform/network/HTTPParsers.cpp
+ Source/WebCore/platform/network/HTTPParsers.h
+ Source/WebCore/platform/network/MIMEHeader.cpp
+ Source/WebCore/platform/network/MIMEHeader.h
+ Source/WebCore/platform/network/ParsedContentType.cpp
+ Source/WebCore/platform/network/ParsedContentType.h
+ Source/WebCore/platform/network/SocketStreamErrorBase.cpp
+ Source/WebCore/platform/network/SocketStreamErrorBase.h
+ Source/WebCore/platform/network/SocketStreamHandleBase.cpp
+ Source/WebCore/platform/network/SocketStreamHandleBase.h
+ Source/WebCore/platform/network/SocketStreamHandleClient.h
+ Source/WebCore/platform/network/soup/SocketStreamError.h
+ Source/WebCore/platform/network/soup/SocketStreamHandle.h
+ Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp
+ Source/WebCore/platform/posix/FileSystemPOSIX.cpp
+ Source/WebCore/platform/sql/SQLValue.cpp
+ Source/WebCore/platform/sql/SQLValue.h
+ Source/WebCore/platform/sql/SQLiteAuthorizer.cpp
+ Source/WebCore/platform/sql/SQLiteFileSystem.cpp
+ Source/WebCore/platform/sql/SQLiteFileSystem.h
+ Source/WebCore/platform/text/DecodeEscapeSequences.h
+ Source/WebCore/platform/text/LineEnding.cpp
+ Source/WebCore/platform/text/LineEnding.h
+ Source/WebCore/platform/text/LocaleICU.cpp
+ Source/WebCore/platform/text/LocaleICU.h
+ Source/WebCore/platform/text/LocaleToScriptMapping.h
+ Source/WebCore/platform/text/LocaleToScriptMappingDefault.cpp
+ Source/WebCore/platform/text/LocaleToScriptMappingICU.cpp
+ Source/WebCore/platform/text/PlatformLocale.cpp
+ Source/WebCore/platform/text/QuotedPrintable.cpp
+ Source/WebCore/platform/text/QuotedPrintable.h
+ Source/WebCore/platform/text/StringWithDirection.h
+ Source/WebCore/platform/text/TextChecking.h
+ Source/WebCore/platform/text/TextEncodingDetector.h
+ Source/WebCore/platform/text/TextEncodingDetectorICU.cpp
+ Source/WebCore/platform/text/TextEncodingDetectorNone.cpp
+ Source/WebCore/platform/text/WritingMode.h
+ Source/WebCore/plugins/PluginQuirkSet.h
+ Source/WebCore/plugins/npruntime.h
+ Source/WebCore/rendering/OrderIterator.cpp
+ Source/WebCore/rendering/OrderIterator.h
+ Source/WebCore/rendering/RenderFlexibleBox.cpp
+ Source/WebCore/rendering/RenderFlexibleBox.h
+ Source/WebCore/rendering/RenderLineBoxList.cpp
+ Source/WebCore/rendering/RenderLineBoxList.h
+ Source/WebCore/rendering/RenderListBox.cpp
+ Source/WebCore/rendering/RenderListBox.h
+ Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp
+ Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h
+ Source/WebCore/rendering/RenderReplica.cpp
+ Source/WebCore/rendering/RenderReplica.h
+ Source/WebCore/rendering/RenderRuby.cpp
+ Source/WebCore/rendering/RenderRuby.h
+ Source/WebCore/rendering/RenderRubyBase.cpp
+ Source/WebCore/rendering/RenderRubyBase.h
+ Source/WebCore/rendering/RenderRubyRun.cpp
+ Source/WebCore/rendering/RenderRubyRun.h
+ Source/WebCore/rendering/RenderRubyText.cpp
+ Source/WebCore/rendering/RenderRubyText.h
+ Source/WebCore/rendering/style/GridCoordinate.h
+ Source/WebCore/rendering/style/GridLength.h
+ Source/WebCore/rendering/style/GridPosition.h
+ Source/WebCore/rendering/style/GridResolvedPosition.cpp
+ Source/WebCore/rendering/style/GridResolvedPosition.h
+ Source/WebCore/rendering/style/GridTrackSize.h
+ Source/WebCore/rendering/style/StyleGridItemData.cpp
+ Source/WebCore/rendering/style/StyleGridItemData.h
+ Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
+ Source/WebCore/rendering/svg/RenderSVGModelObject.h
+ Source/WebCore/storage/StorageEventDispatcher.h
+ Source/WebCore/svg/SVGException.cpp
+ Source/WebCore/svg/graphics/SVGImageChromeClient.h
+ Source/WebCore/testing/MemoryInfo.h
+ Source/WebCore/workers/*
+ Source/WebCore/xml/XMLHttpRequestException.cpp
+ Source/WebCore/xml/XMLHttpRequestException.h
+ Source/WebCore/xml/XPathException.cpp
+ Source/WebCore/xml/XPathException.h
+ Source/WebCore/xml/XSLTUnicodeSort.cpp
+ Source/WebCore/xml/XSLTUnicodeSort.h
+ Source/WebKit/scripts/*
+ Source/WebKit2/Shared/APIObject.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h
+ Source/WebKit2/UIProcess/InspectorServer/HTTPRequest.h
+ Source/WebKit2/UIProcess/gtk/ExperimentalFeatures.cpp
+ Source/WebKit2/UIProcess/gtk/ExperimentalFeatures.h
+ Tools/DumpRenderTree/*
+ Tools/DumpRenderTree/cairo/*
+ Tools/ImageDiff/gtk/*
+ Tools/Scripts/*
+ Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp
+ Tools/TestWebKitAPI/Tests/WTF/MetaAllocator.cpp
+ Tools/TestWebKitAPI/Tests/WTF/RedBlackTree.cpp
+ Tools/TestWebKitAPI/Tests/WTF/SHA1.cpp
+ Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
+ Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp
+ Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
+ Tools/TestWebKitAPI/Tests/WebCore/TimeRanges.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp
+ Tools/TestWebKitAPI/WTFStringUtilities.h
+ Tools/WebKitTestRunner/CyclicRedundancyCheck.cpp
+ Tools/WebKitTestRunner/CyclicRedundancyCheck.h
+ Tools/WebKitTestRunner/InjectedBundle/gtk/*
+ Tools/WebKitTestRunner/PixelDumpSupport.cpp
+ Tools/WebKitTestRunner/PixelDumpSupport.h
+ Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp
+Copyright: © 2002-2014 Apple Inc. and others
+License: BSD-3-clause
+
+Files: Source/WTF/wtf/Atomics.cpp
+ Source/WTF/wtf/Atomics.h
+ Source/WTF/wtf/ThreadSafeRefCounted.h
+ Source/WTF/wtf/Threading.h
+Copyright: © 2002-2014 Apple Inc. and others
+License: BSD-3-clause and BSL
+
+Files: Source/JavaScriptCore/inspector/scripts/jsmin.py
+ Source/ThirdParty/ANGLE/include/EGL/*
+ Source/ThirdParty/ANGLE/include/GLES3/gl3.h
+ Source/ThirdParty/ANGLE/include/KHR/*
+ Source/WebInspectorUI/Scripts/jsmin.py
+Copyright: © 2007-2009 The Khronos Group Inc.
+ © 2013 Dave St.Germain
+License: Expat
+
+Files: Source/ThirdParty/ANGLE/src/compiler/preprocessor/ExpressionParser.cpp
+ Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.cpp
+ Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.h
+Copyright: © 2002-2014 Apple Inc. and others
+License: GPL-3+
+
+Files: Source/WTF/wtf/CryptographicallyRandomNumber.cpp
+Copyright: © 1996 David Mazieres <dm@uun.org>
+ © 2008 Damien Miller <djm@openbsd.org>
+License: ISC
+
+Files: Source/WTF/wtf/text/Base64.cpp
+Copyright: © 2002-2014 Apple Inc. and others
+License: LGPL-2
+
+Files: Documentation/*
+ Source/JavaScriptCore/*
+ Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
+ Source/JavaScriptCore/debugger/Debugger.cpp
+ Source/JavaScriptCore/debugger/Debugger.h
+ Source/JavaScriptCore/heap/Heap.cpp
+ Source/JavaScriptCore/heap/Heap.h
+ Source/JavaScriptCore/heap/ListableHandler.h
+ Source/JavaScriptCore/heap/MachineStackMarker.cpp
+ Source/JavaScriptCore/heap/MachineStackMarker.h
+ Source/JavaScriptCore/heap/MarkedBlock.h
+ Source/JavaScriptCore/heap/MarkedSpace.cpp
+ Source/JavaScriptCore/heap/MarkedSpace.h
+ Source/JavaScriptCore/heap/WeakReferenceHarvester.h
+ Source/JavaScriptCore/interpreter/CallFrame.h
+ Source/JavaScriptCore/parser/Lexer.cpp
+ Source/JavaScriptCore/parser/Lexer.h
+ Source/JavaScriptCore/parser/NodeConstructors.h
+ Source/JavaScriptCore/parser/NodeInfo.h
+ Source/JavaScriptCore/parser/Nodes.cpp
+ Source/JavaScriptCore/parser/Nodes.h
+ Source/JavaScriptCore/parser/Parser.cpp
+ Source/JavaScriptCore/parser/Parser.h
+ Source/JavaScriptCore/runtime/ArgList.cpp
+ Source/JavaScriptCore/runtime/ArgList.h
+ Source/JavaScriptCore/runtime/Arguments.cpp
+ Source/JavaScriptCore/runtime/Arguments.h
+ Source/JavaScriptCore/runtime/ArrayConstructor.cpp
+ Source/JavaScriptCore/runtime/ArrayConstructor.h
+ Source/JavaScriptCore/runtime/ArrayConventions.h
+ Source/JavaScriptCore/runtime/ArrayPrototype.cpp
+ Source/JavaScriptCore/runtime/ArrayPrototype.h
+ Source/JavaScriptCore/runtime/BooleanConstructor.cpp
+ Source/JavaScriptCore/runtime/BooleanConstructor.h
+ Source/JavaScriptCore/runtime/BooleanObject.cpp
+ Source/JavaScriptCore/runtime/BooleanObject.h
+ Source/JavaScriptCore/runtime/BooleanPrototype.cpp
+ Source/JavaScriptCore/runtime/BooleanPrototype.h
+ Source/JavaScriptCore/runtime/ClassInfo.h
+ Source/JavaScriptCore/runtime/CommonIdentifiers.cpp
+ Source/JavaScriptCore/runtime/CommonIdentifiers.h
+ Source/JavaScriptCore/runtime/Completion.cpp
+ Source/JavaScriptCore/runtime/Completion.h
+ Source/JavaScriptCore/runtime/DateConstructor.cpp
+ Source/JavaScriptCore/runtime/DateConstructor.h
+ Source/JavaScriptCore/runtime/DateInstance.cpp
+ Source/JavaScriptCore/runtime/DateInstance.h
+ Source/JavaScriptCore/runtime/DatePrototype.cpp
+ Source/JavaScriptCore/runtime/DatePrototype.h
+ Source/JavaScriptCore/runtime/Error.cpp
+ Source/JavaScriptCore/runtime/Error.h
+ Source/JavaScriptCore/runtime/ErrorConstructor.cpp
+ Source/JavaScriptCore/runtime/ErrorConstructor.h
+ Source/JavaScriptCore/runtime/ErrorInstance.cpp
+ Source/JavaScriptCore/runtime/ErrorInstance.h
+ Source/JavaScriptCore/runtime/ErrorPrototype.cpp
+ Source/JavaScriptCore/runtime/ErrorPrototype.h
+ Source/JavaScriptCore/runtime/FunctionConstructor.cpp
+ Source/JavaScriptCore/runtime/FunctionConstructor.h
+ Source/JavaScriptCore/runtime/FunctionPrototype.cpp
+ Source/JavaScriptCore/runtime/FunctionPrototype.h
+ Source/JavaScriptCore/runtime/GetterSetter.cpp
+ Source/JavaScriptCore/runtime/GetterSetter.h
+ Source/JavaScriptCore/runtime/Identifier.cpp
+ Source/JavaScriptCore/runtime/Identifier.h
+ Source/JavaScriptCore/runtime/InternalFunction.cpp
+ Source/JavaScriptCore/runtime/InternalFunction.h
+ Source/JavaScriptCore/runtime/JSAPIValueWrapper.cpp
+ Source/JavaScriptCore/runtime/JSAPIValueWrapper.h
+ Source/JavaScriptCore/runtime/JSArray.cpp
+ Source/JavaScriptCore/runtime/JSArray.h
+ Source/JavaScriptCore/runtime/JSCJSValue.cpp
+ Source/JavaScriptCore/runtime/JSCJSValue.h
+ Source/JavaScriptCore/runtime/JSCell.cpp
+ Source/JavaScriptCore/runtime/JSCell.h
+ Source/JavaScriptCore/runtime/JSFunction.cpp
+ Source/JavaScriptCore/runtime/JSFunction.h
+ Source/JavaScriptCore/runtime/JSGlobalObject.h
+ Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
+ Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.h
+ Source/JavaScriptCore/runtime/JSLock.cpp
+ Source/JavaScriptCore/runtime/JSLock.h
+ Source/JavaScriptCore/runtime/JSObject.cpp
+ Source/JavaScriptCore/runtime/JSObject.h
+ Source/JavaScriptCore/runtime/JSString.cpp
+ Source/JavaScriptCore/runtime/JSString.h
+ Source/JavaScriptCore/runtime/JSType.h
+ Source/JavaScriptCore/runtime/JSWrapperObject.cpp
+ Source/JavaScriptCore/runtime/JSWrapperObject.h
+ Source/JavaScriptCore/runtime/Lookup.cpp
+ Source/JavaScriptCore/runtime/Lookup.h
+ Source/JavaScriptCore/runtime/MathObject.cpp
+ Source/JavaScriptCore/runtime/MathObject.h
+ Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp
+ Source/JavaScriptCore/runtime/NativeErrorConstructor.h
+ Source/JavaScriptCore/runtime/NativeErrorPrototype.cpp
+ Source/JavaScriptCore/runtime/NativeErrorPrototype.h
+ Source/JavaScriptCore/runtime/NumberConstructor.cpp
+ Source/JavaScriptCore/runtime/NumberConstructor.h
+ Source/JavaScriptCore/runtime/NumberObject.cpp
+ Source/JavaScriptCore/runtime/NumberObject.h
+ Source/JavaScriptCore/runtime/NumberPrototype.cpp
+ Source/JavaScriptCore/runtime/NumberPrototype.h
+ Source/JavaScriptCore/runtime/ObjectConstructor.cpp
+ Source/JavaScriptCore/runtime/ObjectConstructor.h
+ Source/JavaScriptCore/runtime/ObjectPrototype.cpp
+ Source/JavaScriptCore/runtime/ObjectPrototype.h
+ Source/JavaScriptCore/runtime/Operations.cpp
+ Source/JavaScriptCore/runtime/Operations.h
+ Source/JavaScriptCore/runtime/PropertyMapHashTable.h
+ Source/JavaScriptCore/runtime/PropertyNameArray.cpp
+ Source/JavaScriptCore/runtime/PropertyNameArray.h
+ Source/JavaScriptCore/runtime/PropertySlot.cpp
+ Source/JavaScriptCore/runtime/PropertySlot.h
+ Source/JavaScriptCore/runtime/Protect.h
+ Source/JavaScriptCore/runtime/RegExp.cpp
+ Source/JavaScriptCore/runtime/RegExp.h
+ Source/JavaScriptCore/runtime/RegExpConstructor.cpp
+ Source/JavaScriptCore/runtime/RegExpConstructor.h
+ Source/JavaScriptCore/runtime/RegExpMatchesArray.h
+ Source/JavaScriptCore/runtime/RegExpObject.cpp
+ Source/JavaScriptCore/runtime/RegExpObject.h
+ Source/JavaScriptCore/runtime/RegExpPrototype.cpp
+ Source/JavaScriptCore/runtime/RegExpPrototype.h
+ Source/JavaScriptCore/runtime/StringConstructor.cpp
+ Source/JavaScriptCore/runtime/StringConstructor.h
+ Source/JavaScriptCore/runtime/StringObject.cpp
+ Source/JavaScriptCore/runtime/StringObject.h
+ Source/JavaScriptCore/runtime/StringPrototype.cpp
+ Source/JavaScriptCore/runtime/StringPrototype.h
+ Source/JavaScriptCore/runtime/StringRecursionChecker.cpp
+ Source/JavaScriptCore/runtime/StringRecursionChecker.h
+ Source/WTF/*
+ Source/WTF/wtf/Bitmap.h
+ Source/WTF/wtf/FastMalloc.h
+ Source/WTF/wtf/Forward.h
+ Source/WTF/wtf/GetPtr.h
+ Source/WTF/wtf/HashCountedSet.h
+ Source/WTF/wtf/HashFunctions.h
+ Source/WTF/wtf/HashMap.h
+ Source/WTF/wtf/HashSet.h
+ Source/WTF/wtf/HashTable.cpp
+ Source/WTF/wtf/HashTable.h
+ Source/WTF/wtf/HashTraits.h
+ Source/WTF/wtf/HexNumber.h
+ Source/WTF/wtf/ListHashSet.h
+ Source/WTF/wtf/Noncopyable.h
+ Source/WTF/wtf/NumberOfCores.h
+ Source/WTF/wtf/OwnPtr.h
+ Source/WTF/wtf/PassRef.h
+ Source/WTF/wtf/PassRefPtr.h
+ Source/WTF/wtf/RefCounted.h
+ Source/WTF/wtf/RefCountedLeakCounter.cpp
+ Source/WTF/wtf/RefCountedLeakCounter.h
+ Source/WTF/wtf/RefPtr.h
+ Source/WTF/wtf/RefPtrHashMap.h
+ Source/WTF/wtf/RetainPtr.h
+ Source/WTF/wtf/StackBounds.cpp
+ Source/WTF/wtf/StaticConstructors.h
+ Source/WTF/wtf/StringHasher.h
+ Source/WTF/wtf/ThreadSpecificWin.cpp
+ Source/WTF/wtf/Vector.h
+ Source/WTF/wtf/VectorTraits.h
+ Source/WTF/wtf/dtoa.h
+ Source/WTF/wtf/gobject/*
+ Source/WTF/wtf/text/*
+ Source/WebCore/*
+ Source/WebCore/Modules/battery/*
+ Source/WebCore/Modules/geolocation/NavigatorGeolocation.cpp
+ Source/WebCore/Modules/geolocation/NavigatorGeolocation.h
+ Source/WebCore/Modules/mediastream/NavigatorUserMedia.cpp
+ Source/WebCore/Modules/mediastream/NavigatorUserMedia.h
+ Source/WebCore/Modules/proximity/DeviceProximityEvent.cpp
+ Source/WebCore/Modules/proximity/DeviceProximityEvent.h
+ Source/WebCore/Modules/vibration/*
+ Source/WebCore/Modules/websockets/WebSocketFrame.cpp
+ Source/WebCore/accessibility/AccessibilityProgressIndicator.cpp
+ Source/WebCore/accessibility/AccessibilityProgressIndicator.h
+ Source/WebCore/accessibility/atk/*
+ Source/WebCore/bindings/gobject/*
+ Source/WebCore/bindings/js/DOMConstructorWithDocument.h
+ Source/WebCore/bindings/js/DOMWrapperWorld.cpp
+ Source/WebCore/bindings/js/DOMWrapperWorld.h
+ Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
+ Source/WebCore/bindings/js/JSDOMBinding.cpp
+ Source/WebCore/bindings/js/JSDOMBinding.h
+ Source/WebCore/bindings/js/JSDOMMimeTypeArrayCustom.cpp
+ Source/WebCore/bindings/js/JSDOMPluginArrayCustom.cpp
+ Source/WebCore/bindings/js/JSDOMPluginCustom.cpp
+ Source/WebCore/bindings/js/JSDOMStringListCustom.cpp
+ Source/WebCore/bindings/js/JSDOMWindowBase.cpp
+ Source/WebCore/bindings/js/JSDOMWindowBase.h
+ Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
+ Source/WebCore/bindings/js/JSDOMWindowCustom.h
+ Source/WebCore/bindings/js/JSDOMWrapper.h
+ Source/WebCore/bindings/js/JSDocumentCustom.cpp
+ Source/WebCore/bindings/js/JSEventListener.cpp
+ Source/WebCore/bindings/js/JSEventListener.h
+ Source/WebCore/bindings/js/JSHTMLCollectionCustom.cpp
+ Source/WebCore/bindings/js/JSHTMLFormControlsCollectionCustom.cpp
+ Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp
+ Source/WebCore/bindings/js/JSHTMLSelectElementCustom.cpp
+ Source/WebCore/bindings/js/JSImageConstructor.cpp
+ Source/WebCore/bindings/js/JSImageConstructor.h
+ Source/WebCore/bindings/js/JSLazyEventListener.cpp
+ Source/WebCore/bindings/js/JSLazyEventListener.h
+ Source/WebCore/bindings/js/JSLocationCustom.cpp
+ Source/WebCore/bindings/js/JSNodeFilterCondition.cpp
+ Source/WebCore/bindings/js/JSNodeFilterCondition.h
+ Source/WebCore/bindings/js/JSNodeIteratorCustom.cpp
+ Source/WebCore/bindings/js/JSPluginElementFunctions.cpp
+ Source/WebCore/bindings/js/JSPluginElementFunctions.h
+ Source/WebCore/bindings/js/JSSVGLengthCustom.cpp
+ Source/WebCore/bindings/js/JSSVGPathSegCustom.cpp
+ Source/WebCore/bindings/js/JSTreeWalkerCustom.cpp
+ Source/WebCore/bindings/js/ScheduledAction.cpp
+ Source/WebCore/bindings/js/ScheduledAction.h
+ Source/WebCore/bindings/js/ScriptController.cpp
+ Source/WebCore/bindings/js/ScriptController.h
+ Source/WebCore/bindings/js/WebCoreJSClientData.h
+ Source/WebCore/bindings/scripts/*
+ Source/WebCore/bridge/testbindings.cpp
+ Source/WebCore/css/*
+ Source/WebCore/dom/Attr.cpp
+ Source/WebCore/dom/Attr.h
+ Source/WebCore/dom/Attribute.h
+ Source/WebCore/dom/BeforeUnloadEvent.cpp
+ Source/WebCore/dom/BeforeUnloadEvent.h
+ Source/WebCore/dom/CDATASection.cpp
+ Source/WebCore/dom/CDATASection.h
+ Source/WebCore/dom/CharacterData.cpp
+ Source/WebCore/dom/CharacterData.h
+ Source/WebCore/dom/CheckedRadioButtons.cpp
+ Source/WebCore/dom/CheckedRadioButtons.h
+ Source/WebCore/dom/ChildNodeList.cpp
+ Source/WebCore/dom/ChildNodeList.h
+ Source/WebCore/dom/ClipboardEvent.cpp
+ Source/WebCore/dom/ClipboardEvent.h
+ Source/WebCore/dom/Comment.cpp
+ Source/WebCore/dom/Comment.h
+ Source/WebCore/dom/ContainerNode.cpp
+ Source/WebCore/dom/ContainerNode.h
+ Source/WebCore/dom/ContainerNodeAlgorithms.cpp
+ Source/WebCore/dom/ContainerNodeAlgorithms.h
+ Source/WebCore/dom/DOMImplementation.cpp
+ Source/WebCore/dom/DOMImplementation.h
+ Source/WebCore/dom/DataTransfer.h
+ Source/WebCore/dom/Document.cpp
+ Source/WebCore/dom/Document.h
+ Source/WebCore/dom/DocumentFragment.cpp
+ Source/WebCore/dom/DocumentFragment.h
+ Source/WebCore/dom/DocumentMarker.h
+ Source/WebCore/dom/DocumentMarkerController.cpp
+ Source/WebCore/dom/DocumentMarkerController.h
+ Source/WebCore/dom/DocumentParser.h
+ Source/WebCore/dom/DocumentStyleSheetCollection.cpp
+ Source/WebCore/dom/DocumentStyleSheetCollection.h
+ Source/WebCore/dom/DocumentType.cpp
+ Source/WebCore/dom/DocumentType.h
+ Source/WebCore/dom/Element.cpp
+ Source/WebCore/dom/Element.h
+ Source/WebCore/dom/ElementRareData.h
+ Source/WebCore/dom/ElementTraversal.h
+ Source/WebCore/dom/Entity.h
+ Source/WebCore/dom/EntityReference.cpp
+ Source/WebCore/dom/EntityReference.h
+ Source/WebCore/dom/Event.cpp
+ Source/WebCore/dom/Event.h
+ Source/WebCore/dom/EventDispatcher.cpp
+ Source/WebCore/dom/EventDispatcher.h
+ Source/WebCore/dom/EventListener.h
+ Source/WebCore/dom/EventNames.cpp
+ Source/WebCore/dom/EventNames.h
+ Source/WebCore/dom/ExceptionCode.h
+ Source/WebCore/dom/HashChangeEvent.h
+ Source/WebCore/dom/InlineStyleSheetOwner.cpp
+ Source/WebCore/dom/InlineStyleSheetOwner.h
+ Source/WebCore/dom/KeyboardEvent.cpp
+ Source/WebCore/dom/KeyboardEvent.h
+ Source/WebCore/dom/LiveNodeList.cpp
+ Source/WebCore/dom/LiveNodeList.h
+ Source/WebCore/dom/MouseEvent.cpp
+ Source/WebCore/dom/MouseEvent.h
+ Source/WebCore/dom/MouseRelatedEvent.cpp
+ Source/WebCore/dom/MouseRelatedEvent.h
+ Source/WebCore/dom/MutationEvent.cpp
+ Source/WebCore/dom/MutationEvent.h
+ Source/WebCore/dom/NameNodeList.cpp
+ Source/WebCore/dom/NameNodeList.h
+ Source/WebCore/dom/NamedNodeMap.cpp
+ Source/WebCore/dom/NamedNodeMap.h
+ Source/WebCore/dom/Node.cpp
+ Source/WebCore/dom/Node.h
+ Source/WebCore/dom/NodeFilter.cpp
+ Source/WebCore/dom/NodeFilter.h
+ Source/WebCore/dom/NodeFilterCondition.cpp
+ Source/WebCore/dom/NodeFilterCondition.h
+ Source/WebCore/dom/NodeIterator.cpp
+ Source/WebCore/dom/NodeIterator.h
+ Source/WebCore/dom/NodeList.h
+ Source/WebCore/dom/NodeRareData.h
+ Source/WebCore/dom/NodeRenderStyle.h
+ Source/WebCore/dom/NodeTraversal.cpp
+ Source/WebCore/dom/NodeTraversal.h
+ Source/WebCore/dom/Notation.cpp
+ Source/WebCore/dom/Notation.h
+ Source/WebCore/dom/ProcessingInstruction.cpp
+ Source/WebCore/dom/ProcessingInstruction.h
+ Source/WebCore/dom/QualifiedName.cpp
+ Source/WebCore/dom/QualifiedName.h
+ Source/WebCore/dom/Range.cpp
+ Source/WebCore/dom/Range.h
+ Source/WebCore/dom/RangeException.h
+ Source/WebCore/dom/RegisteredEventListener.cpp
+ Source/WebCore/dom/RegisteredEventListener.h
+ Source/WebCore/dom/ScriptElement.cpp
+ Source/WebCore/dom/ScriptElement.h
+ Source/WebCore/dom/SimulatedClickOptions.h
+ Source/WebCore/dom/SpaceSplitString.cpp
+ Source/WebCore/dom/SpaceSplitString.h
+ Source/WebCore/dom/StyledElement.cpp
+ Source/WebCore/dom/StyledElement.h
+ Source/WebCore/dom/TagNodeList.cpp
+ Source/WebCore/dom/TagNodeList.h
+ Source/WebCore/dom/Text.cpp
+ Source/WebCore/dom/Text.h
+ Source/WebCore/dom/TransformSource.h
+ Source/WebCore/dom/Traversal.cpp
+ Source/WebCore/dom/Traversal.h
+ Source/WebCore/dom/TreeScopeAdopter.cpp
+ Source/WebCore/dom/TreeScopeAdopter.h
+ Source/WebCore/dom/TreeWalker.cpp
+ Source/WebCore/dom/TreeWalker.h
+ Source/WebCore/dom/UIEvent.cpp
+ Source/WebCore/dom/UIEvent.h
+ Source/WebCore/dom/UIEventWithKeyState.cpp
+ Source/WebCore/dom/UIEventWithKeyState.h
+ Source/WebCore/dom/ViewportArguments.cpp
+ Source/WebCore/dom/ViewportArguments.h
+ Source/WebCore/dom/VisitedLinkState.cpp
+ Source/WebCore/dom/VisitedLinkState.h
+ Source/WebCore/dom/WheelEvent.cpp
+ Source/WebCore/dom/WheelEvent.h
+ Source/WebCore/editing/EditingBehavior.h
+ Source/WebCore/editing/EditingBehaviorTypes.h
+ Source/WebCore/editing/TextCheckingHelper.h
+ Source/WebCore/editing/atk/*
+ Source/WebCore/html/*
+ Source/WebCore/loader/FrameNetworkingContext.h
+ Source/WebCore/loader/ImageLoader.cpp
+ Source/WebCore/loader/ImageLoader.h
+ Source/WebCore/loader/ResourceLoadScheduler.cpp
+ Source/WebCore/loader/ResourceLoadScheduler.h
+ Source/WebCore/loader/TextResourceDecoder.cpp
+ Source/WebCore/loader/TextResourceDecoder.h
+ Source/WebCore/loader/cache/*
+ Source/WebCore/loader/soup/*
+ Source/WebCore/page/Chrome.cpp
+ Source/WebCore/page/Chrome.h
+ Source/WebCore/page/ChromeClient.h
+ Source/WebCore/page/Frame.cpp
+ Source/WebCore/page/Frame.h
+ Source/WebCore/page/FrameTree.cpp
+ Source/WebCore/page/FrameTree.h
+ Source/WebCore/page/FrameView.cpp
+ Source/WebCore/page/FrameView.h
+ Source/WebCore/page/MouseEventWithHitTestResults.cpp
+ Source/WebCore/page/MouseEventWithHitTestResults.h
+ Source/WebCore/page/Navigator.cpp
+ Source/WebCore/page/Navigator.h
+ Source/WebCore/page/Page.cpp
+ Source/WebCore/page/Page.h
+ Source/WebCore/page/PageGroupLoadDeferrer.cpp
+ Source/WebCore/page/PageGroupLoadDeferrer.h
+ Source/WebCore/page/PrintContext.cpp
+ Source/WebCore/page/PrintContext.h
+ Source/WebCore/page/SpatialNavigation.h
+ Source/WebCore/page/WindowFeatures.cpp
+ Source/WebCore/platform/HashTools.h
+ Source/WebCore/platform/Length.cpp
+ Source/WebCore/platform/Length.h
+ Source/WebCore/platform/LengthBox.h
+ Source/WebCore/platform/LengthSize.h
+ Source/WebCore/platform/LinkHash.cpp
+ Source/WebCore/platform/PlatformTouchEvent.h
+ Source/WebCore/platform/PlatformTouchPoint.h
+ Source/WebCore/platform/PopupMenu.h
+ Source/WebCore/platform/PopupMenuClient.h
+ Source/WebCore/platform/SearchPopupMenu.h
+ Source/WebCore/platform/TreeShared.h
+ Source/WebCore/platform/animation/*
+ Source/WebCore/platform/audio/gstreamer/*
+ Source/WebCore/platform/audio/gtk/*
+ Source/WebCore/platform/cairo/*
+ Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.h
+ Source/WebCore/platform/geoclue/GeolocationProviderGeoclueClient.h
+ Source/WebCore/platform/glib/*
+ Source/WebCore/platform/graphics/FloatPoint3D.cpp
+ Source/WebCore/platform/graphics/FloatPoint3D.h
+ Source/WebCore/platform/graphics/Font.cpp
+ Source/WebCore/platform/graphics/Font.h
+ Source/WebCore/platform/graphics/FontDescription.h
+ Source/WebCore/platform/graphics/FontFastPath.cpp
+ Source/WebCore/platform/graphics/FontGlyphs.h
+ Source/WebCore/platform/graphics/FontMetrics.h
+ Source/WebCore/platform/graphics/FontPlatformData.cpp
+ Source/WebCore/platform/graphics/FontPlatformData.h
+ Source/WebCore/platform/graphics/GLContext.cpp
+ Source/WebCore/platform/graphics/GLContext.h
+ Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp
+ Source/WebCore/platform/graphics/GraphicsContext3DPrivate.h
+ Source/WebCore/platform/graphics/GraphicsLayerAnimation.cpp
+ Source/WebCore/platform/graphics/GraphicsLayerAnimation.h
+ Source/WebCore/platform/graphics/GraphicsLayerTransform.cpp
+ Source/WebCore/platform/graphics/GraphicsLayerTransform.h
+ Source/WebCore/platform/graphics/Icon.h
+ Source/WebCore/platform/graphics/IntPointHash.h
+ Source/WebCore/platform/graphics/IntSizeHash.h
+ Source/WebCore/platform/graphics/Latin1TextIterator.h
+ Source/WebCore/platform/graphics/PathTraversalState.cpp
+ Source/WebCore/platform/graphics/SVGGlyph.cpp
+ Source/WebCore/platform/graphics/SVGGlyph.h
+ Source/WebCore/platform/graphics/SimpleFontData.h
+ Source/WebCore/platform/graphics/StrokeStyleApplier.h
+ Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp
+ Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h
+ Source/WebCore/platform/graphics/TextRun.h
+ Source/WebCore/platform/graphics/Tile.h
+ Source/WebCore/platform/graphics/TiledBackingStore.cpp
+ Source/WebCore/platform/graphics/TiledBackingStore.h
+ Source/WebCore/platform/graphics/TiledBackingStoreBackend.h
+ Source/WebCore/platform/graphics/TiledBackingStoreClient.h
+ Source/WebCore/platform/graphics/WidthIterator.cpp
+ Source/WebCore/platform/graphics/WidthIterator.h
+ Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h
+ Source/WebCore/platform/graphics/cairo/FontCustomPlatformData.h
+ Source/WebCore/platform/graphics/cairo/IntRectCairo.cpp
+ Source/WebCore/platform/graphics/cairo/OwnPtrCairo.cpp
+ Source/WebCore/platform/graphics/cairo/OwnPtrCairo.h
+ Source/WebCore/platform/graphics/cairo/PathCairo.cpp
+ Source/WebCore/platform/graphics/cairo/PlatformPathCairo.cpp
+ Source/WebCore/platform/graphics/cairo/PlatformPathCairo.h
+ Source/WebCore/platform/graphics/cairo/RefPtrCairo.cpp
+ Source/WebCore/platform/graphics/cairo/RefPtrCairo.h
+ Source/WebCore/platform/graphics/egl/*
+ Source/WebCore/platform/graphics/filters/*
+ Source/WebCore/platform/graphics/freetype/*
+ Source/WebCore/platform/graphics/glx/*
+ Source/WebCore/platform/graphics/gstreamer/*
+ Source/WebCore/platform/graphics/gtk/*
+ Source/WebCore/platform/graphics/surfaces/*
+ Source/WebCore/platform/graphics/texmap/*
+ Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
+ Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
+ Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedSurface.h
+ Source/WebCore/platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h
+ Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp
+ Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h
+ Source/WebCore/platform/graphics/transforms/*
+ Source/WebCore/platform/gtk/*
+ Source/WebCore/platform/image-decoders/ImageDecoder.cpp
+ Source/WebCore/platform/image-encoders/*
+ Source/WebCore/platform/network/FormData.cpp
+ Source/WebCore/platform/network/FormData.h
+ Source/WebCore/platform/network/FormDataBuilder.cpp
+ Source/WebCore/platform/network/FormDataBuilder.h
+ Source/WebCore/platform/network/HTTPStatusCodes.h
+ Source/WebCore/platform/network/NetworkingContext.h
+ Source/WebCore/platform/network/soup/CookieJarSoup.cpp
+ Source/WebCore/platform/network/soup/CookieStorageSoup.cpp
+ Source/WebCore/platform/network/soup/GUniquePtrSoup.h
+ Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+ Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
+ Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
+ Source/WebCore/platform/soup/SharedBufferSoup.cpp
+ Source/WebCore/platform/text/BidiContext.cpp
+ Source/WebCore/platform/text/BidiContext.h
+ Source/WebCore/platform/text/BidiResolver.h
+ Source/WebCore/platform/text/BidiRunList.h
+ Source/WebCore/platform/text/ParserUtilities.h
+ Source/WebCore/platform/text/SegmentedString.cpp
+ Source/WebCore/platform/text/SegmentedString.h
+ Source/WebCore/platform/text/TextBreakIterator.cpp
+ Source/WebCore/platform/text/TextBreakIterator.h
+ Source/WebCore/platform/text/TextBreakIteratorInternalICU.h
+ Source/WebCore/platform/text/enchant/*
+ Source/WebCore/platform/text/gtk/*
+ Source/WebCore/platform/text/wchar/*
+ Source/WebCore/plugins/DOMMimeType.cpp
+ Source/WebCore/plugins/DOMMimeType.h
+ Source/WebCore/plugins/DOMMimeTypeArray.cpp
+ Source/WebCore/plugins/DOMMimeTypeArray.h
+ Source/WebCore/plugins/DOMPlugin.cpp
+ Source/WebCore/plugins/DOMPlugin.h
+ Source/WebCore/plugins/DOMPluginArray.cpp
+ Source/WebCore/plugins/DOMPluginArray.h
+ Source/WebCore/plugins/PluginData.cpp
+ Source/WebCore/plugins/PluginData.h
+ Source/WebCore/rendering/*
+ Source/WebCore/rendering/line/*
+ Source/WebCore/rendering/style/*
+ Source/WebCore/rendering/svg/*
+ Source/WebCore/style/StyleFontSizeFunctions.cpp
+ Source/WebCore/style/StyleResolveForDocument.cpp
+ Source/WebCore/style/StyleResolveTree.cpp
+ Source/WebCore/svg/*
+ Source/WebCore/svg/graphics/SVGImageCache.cpp
+ Source/WebCore/svg/graphics/SVGImageCache.h
+ Source/WebCore/svg/graphics/SVGImageForContainer.cpp
+ Source/WebCore/svg/graphics/filters/*
+ Source/WebCore/svg/properties/*
+ Source/WebCore/xml/DOMParser.cpp
+ Source/WebCore/xml/DOMParser.h
+ Source/WebCore/xml/XMLHttpRequest.cpp
+ Source/WebCore/xml/XMLHttpRequest.h
+ Source/WebCore/xml/XMLSerializer.cpp
+ Source/WebCore/xml/XMLSerializer.h
+ Source/WebCore/xml/XSLImportRule.cpp
+ Source/WebCore/xml/XSLImportRule.h
+ Source/WebCore/xml/XSLStyleSheet.h
+ Source/WebCore/xml/XSLStyleSheetLibxslt.cpp
+ Source/WebCore/xml/XSLTProcessor.cpp
+ Source/WebCore/xml/XSLTProcessor.h
+ Source/WebCore/xml/XSLTProcessorLibxslt.cpp
+ Source/WebCore/xml/parser/XMLDocumentParser.cpp
+ Source/WebCore/xml/parser/XMLDocumentParser.h
+ Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp
+ Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp
+ Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.h
+ Source/WebKit2/Shared/Network/CustomProtocols/soup/*
+ Source/WebKit2/Shared/WebHitTestResult.cpp
+ Source/WebKit2/Shared/WebHitTestResult.h
+ Source/WebKit2/UIProcess/API/C/CoordinatedGraphics/*
+ Source/WebKit2/UIProcess/API/gtk/*
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp
+ Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h
+ Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.cpp
+ Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.h
+ Source/WebKit2/UIProcess/DefaultUndoController.cpp
+ Source/WebKit2/UIProcess/DefaultUndoController.h
+ Source/WebKit2/UIProcess/Network/CustomProtocols/soup/*
+ Source/WebKit2/UIProcess/PageViewportControllerClient.h
+ Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.h
+ Source/WebKit2/UIProcess/soup/*
+ Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitFramePrivate.h
+ Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorldPrivate.h
+ Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionPrivate.h
+ Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h
+ Source/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp
+ Source/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h
+ Source/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp
+ Source/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h
+ Source/WebKit2/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp
+ Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h
+ Source/WebKit2/WebProcess/WebPage/TapHighlightController.cpp
+ Source/WebKit2/WebProcess/WebPage/TapHighlightController.h
+ Source/WebKit2/WebProcess/WebPage/WebContextMenu.cpp
+ Source/WebKit2/WebProcess/WebPage/WebContextMenu.h
+ Source/WebKit2/WebProcess/gtk/*
+ Source/WebKit2/WebProcess/soup/*
+ Tools/DumpRenderTree/config.h
+ Tools/TestWebKitAPI/Tests/WTF/gobject/GMainLoopSource.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMDOMWindowTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestBackForwardList.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestCookieManager.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestInspector.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h
+ Tools/TestWebKitAPI/gtk/WebKit2Gtk/*
+ Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp
+ Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h
+ Tools/gtk/*
+Copyright: © 2002-2014 Apple Inc. and others
+License: LGPL-2+
+
+Files: Source/WebCore/loader/FTPDirectoryParser.cpp
+ Source/WebCore/loader/FTPDirectoryParser.h
+Copyright: © 2002-2014 Apple Inc. and others
+License: LGPL-2.1
+
+Files: Source/WebCore/bridge/npruntime_internal.h
+ Source/WebCore/platform/graphics/OpenGLShims.cpp
+ Source/WebCore/platform/graphics/OpenGLShims.h
+ Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp
+ Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h
+ Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.h
+ Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h
+ Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h
+ Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.h
+ Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp
+ Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.h
+ Source/WebKit2/WebProcess/Cookies/soup/*
+ Source/WebKit2/WebProcess/InjectedBundle/API/gtk/*
+ Tools/TestWebKitAPI/Tests/WebKit2Gtk/*
+Copyright: © 2002-2014 Apple Inc. and others
+License: LGPL-2.1+
+
+Files: Source/JavaScriptCore/icu/unicode/*
+ Source/WTF/icu/unicode/*
+ Source/WebCore/icu/unicode/*
+ Source/WebCore/xml/XSLTExtensions.cpp
+Copyright: © 1995-2006 International Business Machines Corporation and others
+License: MIT-X11
+
+Files: Source/JavaScriptCore/runtime/JSDateMath.cpp
+ Source/JavaScriptCore/runtime/JSDateMath.h
+ Source/WTF/wtf/DateMath.cpp
+ Source/WTF/wtf/DateMath.h
+ Source/WebCore/html/HTMLDocument.cpp
+ Source/WebCore/platform/gtk/CursorGtk.h
+ Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
+ Source/WebCore/platform/image-decoders/gif/GIFImageReader.h
+ Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
+ Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
+ Source/WebCore/plugins/npapi.h
+ Source/WebCore/plugins/nptypes.h
+ Source/WebCore/rendering/RenderLayer.cpp
+ Source/WebCore/rendering/RenderLayer.h
+ Source/WebCore/rendering/RenderMarquee.cpp
+ Source/WebCore/rendering/RenderMarquee.h
+ Source/WebCore/rendering/ScrollBehavior.cpp
+ Source/WebCore/rendering/ScrollBehavior.h
+Copyright: © 2002-2014 Apple Inc. and others
+License: MPL-1.1 or GPL-2+ or LGPL-2.1+
+
+Files: Tools/TestWebKitAPI/Tests/WTF/MD5.cpp
+Copyright: No copyright holders
+License: public-domain
+ This code was written by Colin Plumb in 1993, no copyright is
+ claimed.
+ This code is in the public domain; do with it what you wish.
+
+Files: Source/ThirdParty/qunit/*
+Copyright: © 2011 John Resig, Jörn Zaefferer
+License: Expat or GPL-2
+
+License: BSD-2-clause
+ 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 APPLE COMPUTER, INC. ``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 COMPUTER, INC. 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.
+
+License: BSD-3-clause
+ 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 Ericsson 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.
+
+License: Expat
+ 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.
+
+License: BSL
+ Permission is hereby granted, free of charge, to any person or
+ organization obtaining a copy of the software and accompanying
+ documentation covered by this license (the "Software") to use,
+ reproduce, display, distribute, execute, and transmit the Software,
+ and to prepare derivative works of the Software, and to permit
+ third-parties to whom the Software is furnished to do so, all subject
+ to the following:
+ .
+ The copyright notices in the Software and this entire statement,
+ including the above license grant, this restriction and the following
+ disclaimer, must be included in all copies of the Software, in whole
+ or in part, and all derivative works of the Software, unless such
+ copies or derivative works are solely in the form of
+ machine-executable object code generated by a source language
+ processor.
+ .
+ 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, TITLE AND
+ NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE
+ DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER
+ LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+License: LGPL-2
+ This module is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2
+ as published by the Free Software Foundation.
+ .
+ This module 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/LGPL-2
+
+License: LGPL-2+
+ This module 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 2 of the
+ License, or (at your option) any later version.
+ .
+ This module 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/LGPL-2
+
+License: LGPL-2.1
+ This module is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version
+ 2.1 as published by the Free Software Foundation.
+ .
+ This module 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/LGPL-2.1
+
+License: LGPL-2.1+
+ This module 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 2.1 of the
+ License, or (at your option) any later version.
+ .
+ This module 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/LGPL-2.1
+
+License: GPL-2
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2 as
+ published by the Free Software Foundation.
+ .
+ This program 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/GPL-2
+
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at
+ your option) any later version.
+ .
+ This program 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.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/GPL-2
+
+License: GPL-3+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or (at
+ your option) any later version.
+ .
+ This program 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
+ General Public License for more details.
+ .
+ On Debian systems, the complete text of the license can be found in
+ the file /usr/share/common-licenses/GPL-3
+
+License: MIT-X11
+ 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, and/or sell copies of the Software, and to permit persons
+ to whom the Software is furnished to do so, provided that the above
+ copyright notice(s) and this permission notice appear in all copies
+ of the Software and that both the above copyright notice(s) and this
+ permission notice appear in supporting documentation.
+ .
+ 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
+ OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ .
+ Except as contained in this notice, the name of a copyright holder
+ shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in this Software without prior written
+ authorization of the copyright holder.
+
+License: MPL-1.1
+ MOZILLA PUBLIC LICENSE
+ Version 1.1
+ .
+ ---------------
+ .
+ 1. Definitions.
+ .
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+ .
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+ .
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+ .
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+ .
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+ .
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+ .
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+ .
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+ .
+ 1.8. "License" means this document.
+ .
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+ .
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+ .
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+ .
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+ .
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+ .
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+ .
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+ .
+ 2. Source Code License.
+ .
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+ .
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+ .
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+ .
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+ .
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+ .
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+ .
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+ .
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+ .
+ 3. Distribution Obligations.
+ .
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+ .
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+ .
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+ .
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+ .
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+ .
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+ .
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+ .
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+ .
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+ .
+ 4. Inability to Comply Due to Statute or Regulation.
+ .
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+ .
+ 5. Application of this License.
+ .
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+ .
+ 6. Versions of the License.
+ .
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+ .
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+ .
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+ .
+ 7. DISCLAIMER OF WARRANTY.
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+ .
+ 8. TERMINATION.
+ .
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+ .
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+ .
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+ .
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+ .
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+ .
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+ .
+ 9. LIMITATION OF LIABILITY.
+ .
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+ .
+ 10. U.S. GOVERNMENT END USERS.
+ .
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+ .
+ 11. MISCELLANEOUS.
+ .
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+ .
+ 12. RESPONSIBILITY FOR CLAIMS.
+ .
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+ .
+ 13. MULTIPLE-LICENSED CODE.
+ .
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+ .
+ EXHIBIT A -Mozilla Public License.
+ .
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+ .
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+ .
+ The Original Code is ______________________________________.
+ .
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+ .
+ Contributor(s): ______________________________________.
+ .
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+ .
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
+
+License: Apache-2.0
+ On Debian systems, the full text of the Apache license version 2 can
+ be found in the file `/usr/share/common-licenses/Apache-2.0'.
+
+License: ISC
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the
+ above copyright notice and this permission notice appear in all
+ copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
--- /dev/null
+[DEFAULT]
+debian-branch = experimental
+upstream-branch = webkitgtk-2.6
+pristine-tar = False
+compression = xz
--- /dev/null
+usr/lib/*/girepository-1.0/JavaScriptCore-4.0.typelib
--- /dev/null
+usr/lib/*/girepository-1.0/WebKit2-4.0.typelib
+usr/lib/*/girepository-1.0/WebKit2WebExtension-4.0.typelib
--- /dev/null
+/*!
+ * jQuery JavaScript Library v1.9.1
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2013-2-4
+ */
+(function( window, undefined ) {
+
+// Can't do this because several apps including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+// Support: Firefox 18+
+//"use strict";
+var
+ // The deferred used on DOM ready
+ readyList,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // Support: IE<9
+ // For `typeof node.method` instead of `node.method !== undefined`
+ core_strundefined = typeof undefined,
+
+ // Use the correct document accordingly with window argument (sandbox)
+ document = window.document,
+ location = window.location,
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // [[Class]] -> type pairs
+ class2type = {},
+
+ // List of deleted data cache ids, so we can reuse them
+ core_deletedIds = [],
+
+ core_version = "1.9.1",
+
+ // Save a reference to some core methods
+ core_concat = core_deletedIds.concat,
+ core_push = core_deletedIds.push,
+ core_slice = core_deletedIds.slice,
+ core_indexOf = core_deletedIds.indexOf,
+ core_toString = class2type.toString,
+ core_hasOwn = class2type.hasOwnProperty,
+ core_trim = core_version.trim,
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context, rootjQuery );
+ },
+
+ // Used for matching numbers
+ core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+
+ // Used for splitting on whitespace
+ core_rnotwhite = /\S+/g,
+
+ // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
+ rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([\da-z])/gi,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return letter.toUpperCase();
+ },
+
+ // The ready event handler
+ completed = function( event ) {
+
+ // readyState === "complete" is good enough for us to call the dom ready in oldIE
+ if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
+ detach();
+ jQuery.ready();
+ }
+ },
+ // Clean-up method for dom ready events
+ detach = function() {
+ if ( document.addEventListener ) {
+ document.removeEventListener( "DOMContentLoaded", completed, false );
+ window.removeEventListener( "load", completed, false );
+
+ } else {
+ document.detachEvent( "onreadystatechange", completed );
+ window.detachEvent( "onload", completed );
+ }
+ };
+
+jQuery.fn = jQuery.prototype = {
+ // The current version of jQuery being used
+ jquery: core_version,
+
+ constructor: jQuery,
+ init: function( selector, context, rootjQuery ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ context = context instanceof jQuery ? context[0] : context;
+
+ // scripts is true for back-compat
+ jQuery.merge( this, jQuery.parseHTML(
+ match[1],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[2] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[2] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || rootjQuery ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return rootjQuery.ready( selector );
+ }
+
+ if ( selector.selector !== undefined ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ return this.length;
+ },
+
+ toArray: function() {
+ return core_slice.call( this );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ ( num < 0 ? this[ this.length + num ] : this[ num ] );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems ) {
+
+ // Build a new jQuery matched element set
+ var ret = jQuery.merge( this.constructor(), elems );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+ ret.context = this.context;
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ return jQuery.each( this, callback, args );
+ },
+
+ ready: function( fn ) {
+ // Add the callback
+ jQuery.ready.promise().done( fn );
+
+ return this;
+ },
+
+ slice: function() {
+ return this.pushStack( core_slice.apply( this, arguments ) );
+ },
+
+ first: function() {
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ return this.eq( -1 );
+ },
+
+ eq: function( i ) {
+ var len = this.length,
+ j = +i + ( i < 0 ? len : 0 );
+ return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
+ },
+
+ map: function( callback ) {
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: core_push,
+ sort: [].sort,
+ splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var src, copyIsArray, copy, name, options, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( length === i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ if ( window.$ === jQuery ) {
+ window.$ = _$;
+ }
+
+ if ( deep && window.jQuery === jQuery ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( !document.body ) {
+ return setTimeout( jQuery.ready );
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.trigger ) {
+ jQuery( document ).trigger("ready").off("ready");
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray || function( obj ) {
+ return jQuery.type(obj) === "array";
+ },
+
+ isWindow: function( obj ) {
+ return obj != null && obj == obj.window;
+ },
+
+ isNumeric: function( obj ) {
+ return !isNaN( parseFloat(obj) ) && isFinite( obj );
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return String( obj );
+ }
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ core_toString.call(obj) ] || "object" :
+ typeof obj;
+ },
+
+ isPlainObject: function( obj ) {
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ try {
+ // Not own constructor property must be Object
+ if ( obj.constructor &&
+ !core_hasOwn.call(obj, "constructor") &&
+ !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+ return false;
+ }
+ } catch ( e ) {
+ // IE8,9 Will throw exceptions on certain host objects #9897
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for ( key in obj ) {}
+
+ return key === undefined || core_hasOwn.call( obj, key );
+ },
+
+ isEmptyObject: function( obj ) {
+ var name;
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ // data: string of html
+ // context (optional): If specified, the fragment will be created in this context, defaults to document
+ // keepScripts (optional): If true, will include scripts passed in the html string
+ parseHTML: function( data, context, keepScripts ) {
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ if ( typeof context === "boolean" ) {
+ keepScripts = context;
+ context = false;
+ }
+ context = context || document;
+
+ var parsed = rsingleTag.exec( data ),
+ scripts = !keepScripts && [];
+
+ // Single tag
+ if ( parsed ) {
+ return [ context.createElement( parsed[1] ) ];
+ }
+
+ parsed = jQuery.buildFragment( [ data ], context, scripts );
+ if ( scripts ) {
+ jQuery( scripts ).remove();
+ }
+ return jQuery.merge( [], parsed.childNodes );
+ },
+
+ parseJSON: function( data ) {
+ // Attempt to parse using the native JSON parser first
+ if ( window.JSON && window.JSON.parse ) {
+ return window.JSON.parse( data );
+ }
+
+ if ( data === null ) {
+ return data;
+ }
+
+ if ( typeof data === "string" ) {
+
+ // Make sure leading/trailing whitespace is removed (IE can't handle it)
+ data = jQuery.trim( data );
+
+ if ( data ) {
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+ .replace( rvalidtokens, "]" )
+ .replace( rvalidbraces, "")) ) {
+
+ return ( new Function( "return " + data ) )();
+ }
+ }
+ }
+
+ jQuery.error( "Invalid JSON: " + data );
+ },
+
+ // Cross-browser xml parsing
+ parseXML: function( data ) {
+ var xml, tmp;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+ try {
+ if ( window.DOMParser ) { // Standard
+ tmp = new DOMParser();
+ xml = tmp.parseFromString( data , "text/xml" );
+ } else { // IE
+ xml = new ActiveXObject( "Microsoft.XMLDOM" );
+ xml.async = "false";
+ xml.loadXML( data );
+ }
+ } catch( e ) {
+ xml = undefined;
+ }
+ if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+ jQuery.error( "Invalid XML: " + data );
+ }
+ return xml;
+ },
+
+ noop: function() {},
+
+ // Evaluates a script in a global context
+ // Workarounds based on findings by Jim Driscoll
+ // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+ globalEval: function( data ) {
+ if ( data && jQuery.trim( data ) ) {
+ // We use execScript on Internet Explorer
+ // We use an anonymous function so that context is window
+ // rather than jQuery in Firefox
+ ( window.execScript || function( data ) {
+ window[ "eval" ].call( window, data );
+ } )( data );
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ // args is for internal usage only
+ each: function( obj, callback, args ) {
+ var value,
+ i = 0,
+ length = obj.length,
+ isArray = isArraylike( obj );
+
+ if ( args ) {
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback.apply( obj[ i ], args );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ value = callback.apply( obj[ i ], args );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback.call( obj[ i ], i, obj[ i ] );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ value = callback.call( obj[ i ], i, obj[ i ] );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ // Use native String.trim function wherever possible
+ trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
+ function( text ) {
+ return text == null ?
+ "" :
+ core_trim.call( text );
+ } :
+
+ // Otherwise use our own trimming functionality
+ function( text ) {
+ return text == null ?
+ "" :
+ ( text + "" ).replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArraylike( Object(arr) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ core_push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ var len;
+
+ if ( arr ) {
+ if ( core_indexOf ) {
+ return core_indexOf.call( arr, elem, i );
+ }
+
+ len = arr.length;
+ i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+ for ( ; i < len; i++ ) {
+ // Skip accessing in sparse arrays
+ if ( i in arr && arr[ i ] === elem ) {
+ return i;
+ }
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ var l = second.length,
+ i = first.length,
+ j = 0;
+
+ if ( typeof l === "number" ) {
+ for ( ; j < l; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+ } else {
+ while ( second[j] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, inv ) {
+ var retVal,
+ ret = [],
+ i = 0,
+ length = elems.length;
+ inv = !!inv;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ retVal = !!callback( elems[ i ], i );
+ if ( inv !== retVal ) {
+ ret.push( elems[ i ] );
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var value,
+ i = 0,
+ length = elems.length,
+ isArray = isArraylike( elems ),
+ ret = [];
+
+ // Go through the array, translating each of the items to their
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return core_concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var args, proxy, tmp;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = core_slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ // Multifunctional method to get and set values of a collection
+ // The value/s can optionally be executed if it's a function
+ access: function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ length = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < length; i++ ) {
+ fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
+ }
+ }
+ }
+
+ return chainable ?
+ elems :
+
+ // Gets
+ bulk ?
+ fn.call( elems ) :
+ length ? fn( elems[0], key ) : emptyGet;
+ },
+
+ now: function() {
+ return ( new Date() ).getTime();
+ }
+});
+
+jQuery.ready.promise = function( obj ) {
+ if ( !readyList ) {
+
+ readyList = jQuery.Deferred();
+
+ // Catch cases where $(document).ready() is called after the browser event has already occurred.
+ // we once tried to use readyState "interactive" here, but it caused issues like the one
+ // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
+ if ( document.readyState === "complete" ) {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ setTimeout( jQuery.ready );
+
+ // Standards-based browsers support DOMContentLoaded
+ } else if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed, false );
+
+ // If IE event model is used
+ } else {
+ // Ensure firing before onload, maybe late but safe also for iframes
+ document.attachEvent( "onreadystatechange", completed );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", completed );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var top = false;
+
+ try {
+ top = window.frameElement == null && document.documentElement;
+ } catch(e) {}
+
+ if ( top && top.doScroll ) {
+ (function doScrollCheck() {
+ if ( !jQuery.isReady ) {
+
+ try {
+ // Use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ top.doScroll("left");
+ } catch(e) {
+ return setTimeout( doScrollCheck, 50 );
+ }
+
+ // detach all dom ready events
+ detach();
+
+ // and execute any waiting functions
+ jQuery.ready();
+ }
+ })();
+ }
+ }
+ }
+ return readyList.promise( obj );
+};
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+function isArraylike( obj ) {
+ var length = obj.length,
+ type = jQuery.type( obj );
+
+ if ( jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ if ( obj.nodeType === 1 && length ) {
+ return true;
+ }
+
+ return type === "array" || type !== "function" &&
+ ( length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj );
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+// String to Object options format cache
+var optionsCache = {};
+
+// Convert String-formatted options into Object-formatted ones and store in cache
+function createOptions( options ) {
+ var object = optionsCache[ options ] = {};
+ jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ });
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ ( optionsCache[ options ] || createOptions( options ) ) :
+ jQuery.extend( {}, options );
+
+ var // Flag to know if list is currently firing
+ firing,
+ // Last fire value (for non-forgettable lists)
+ memory,
+ // Flag to know if list was already fired
+ fired,
+ // End of the loop when firing
+ firingLength,
+ // Index of currently firing callback (modified by remove if needed)
+ firingIndex,
+ // First callback to fire (used internally by add and fireWith)
+ firingStart,
+ // Actual callback list
+ list = [],
+ // Stack of fire calls for repeatable lists
+ stack = !options.once && [],
+ // Fire callbacks
+ fire = function( data ) {
+ memory = options.memory && data;
+ fired = true;
+ firingIndex = firingStart || 0;
+ firingStart = 0;
+ firingLength = list.length;
+ firing = true;
+ for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+ if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
+ memory = false; // To prevent further calls using add
+ break;
+ }
+ }
+ firing = false;
+ if ( list ) {
+ if ( stack ) {
+ if ( stack.length ) {
+ fire( stack.shift() );
+ }
+ } else if ( memory ) {
+ list = [];
+ } else {
+ self.disable();
+ }
+ }
+ },
+ // Actual Callbacks object
+ self = {
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+ // First, we save the current length
+ var start = list.length;
+ (function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ var type = jQuery.type( arg );
+ if ( type === "function" ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && type !== "string" ) {
+ // Inspect recursively
+ add( arg );
+ }
+ });
+ })( arguments );
+ // Do we need to add the callbacks to the
+ // current firing batch?
+ if ( firing ) {
+ firingLength = list.length;
+ // With memory, if we're not firing then
+ // we should call right away
+ } else if ( memory ) {
+ firingStart = start;
+ fire( memory );
+ }
+ }
+ return this;
+ },
+ // Remove a callback from the list
+ remove: function() {
+ if ( list ) {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+ // Handle firing indexes
+ if ( firing ) {
+ if ( index <= firingLength ) {
+ firingLength--;
+ }
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ }
+ });
+ }
+ return this;
+ },
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
+ },
+ // Remove all callbacks from the list
+ empty: function() {
+ list = [];
+ return this;
+ },
+ // Have the list do nothing anymore
+ disable: function() {
+ list = stack = memory = undefined;
+ return this;
+ },
+ // Is it disabled?
+ disabled: function() {
+ return !list;
+ },
+ // Lock the list in its current state
+ lock: function() {
+ stack = undefined;
+ if ( !memory ) {
+ self.disable();
+ }
+ return this;
+ },
+ // Is it locked?
+ locked: function() {
+ return !stack;
+ },
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ if ( list && ( !fired || stack ) ) {
+ if ( firing ) {
+ stack.push( args );
+ } else {
+ fire( args );
+ }
+ }
+ return this;
+ },
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+jQuery.extend({
+
+ Deferred: function( func ) {
+ var tuples = [
+ // action, add listener, listener list, final state
+ [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
+ [ "notify", "progress", jQuery.Callbacks("memory") ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+ return jQuery.Deferred(function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+ var action = tuple[ 0 ],
+ fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
+ deferred[ tuple[1] ](function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .done( newDefer.resolve )
+ .fail( newDefer.reject )
+ .progress( newDefer.notify );
+ } else {
+ newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
+ }
+ });
+ });
+ fns = null;
+ }).promise();
+ },
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Keep pipe for back-compat
+ promise.pipe = promise.then;
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 3 ];
+
+ // promise[ done | fail | progress ] = list.add
+ promise[ tuple[1] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(function() {
+ // state = [ resolved | rejected ]
+ state = stateString;
+
+ // [ reject_list | resolve_list ].disable; progress_list.lock
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+ }
+
+ // deferred[ resolve | reject | notify ]
+ deferred[ tuple[0] ] = function() {
+ deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
+ return this;
+ };
+ deferred[ tuple[0] + "With" ] = list.fireWith;
+ });
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( subordinate /* , ..., subordinateN */ ) {
+ var i = 0,
+ resolveValues = core_slice.call( arguments ),
+ length = resolveValues.length,
+
+ // the count of uncompleted subordinates
+ remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+ // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+ // Update function for both resolve and progress values
+ updateFunc = function( i, contexts, values ) {
+ return function( value ) {
+ contexts[ i ] = this;
+ values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
+ if( values === progressValues ) {
+ deferred.notifyWith( contexts, values );
+ } else if ( !( --remaining ) ) {
+ deferred.resolveWith( contexts, values );
+ }
+ };
+ },
+
+ progressValues, progressContexts, resolveContexts;
+
+ // add listeners to Deferred subordinates; treat others as resolved
+ if ( length > 1 ) {
+ progressValues = new Array( length );
+ progressContexts = new Array( length );
+ resolveContexts = new Array( length );
+ for ( ; i < length; i++ ) {
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+ resolveValues[ i ].promise()
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
+ .fail( deferred.reject )
+ .progress( updateFunc( i, progressContexts, progressValues ) );
+ } else {
+ --remaining;
+ }
+ }
+ }
+
+ // if we're not waiting on anything, resolve the master
+ if ( !remaining ) {
+ deferred.resolveWith( resolveContexts, resolveValues );
+ }
+
+ return deferred.promise();
+ }
+});
+jQuery.support = (function() {
+
+ var support, all, a,
+ input, select, fragment,
+ opt, eventName, isSupported, i,
+ div = document.createElement("div");
+
+ // Setup
+ div.setAttribute( "className", "t" );
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+
+ // Support tests won't run in some limited or non-browser environments
+ all = div.getElementsByTagName("*");
+ a = div.getElementsByTagName("a")[ 0 ];
+ if ( !all || !a || !all.length ) {
+ return {};
+ }
+
+ // First batch of tests
+ select = document.createElement("select");
+ opt = select.appendChild( document.createElement("option") );
+ input = div.getElementsByTagName("input")[ 0 ];
+
+ a.style.cssText = "top:1px;float:left;opacity:.5";
+ support = {
+ // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+ getSetAttribute: div.className !== "t",
+
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: div.firstChild.nodeType === 3,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: !div.getElementsByTagName("tbody").length,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: !!div.getElementsByTagName("link").length,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText instead)
+ style: /top/.test( a.getAttribute("style") ),
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: a.getAttribute("href") === "/a",
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: /^0.5/.test( a.style.opacity ),
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: !!a.style.cssFloat,
+
+ // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
+ checkOn: !!input.value,
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: opt.selected,
+
+ // Tests for enctype support on a form (#6743)
+ enctype: !!document.createElement("form").enctype,
+
+ // Makes sure cloning an html5 element does not cause problems
+ // Where outerHTML is undefined, this still works
+ html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
+
+ // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
+ boxModel: document.compatMode === "CSS1Compat",
+
+ // Will be defined later
+ deleteExpando: true,
+ noCloneEvent: true,
+ inlineBlockNeedsLayout: false,
+ shrinkWrapBlocks: false,
+ reliableMarginRight: true,
+ boxSizingReliable: true,
+ pixelPosition: false
+ };
+
+ // Make sure checked status is properly cloned
+ input.checked = true;
+ support.noCloneChecked = input.cloneNode( true ).checked;
+
+ // Make sure that the options inside disabled selects aren't marked as disabled
+ // (WebKit marks them as disabled)
+ select.disabled = true;
+ support.optDisabled = !opt.disabled;
+
+ // Support: IE<9
+ try {
+ delete div.test;
+ } catch( e ) {
+ support.deleteExpando = false;
+ }
+
+ // Check if we can trust getAttribute("value")
+ input = document.createElement("input");
+ input.setAttribute( "value", "" );
+ support.input = input.getAttribute( "value" ) === "";
+
+ // Check if an input maintains its value after becoming a radio
+ input.value = "t";
+ input.setAttribute( "type", "radio" );
+ support.radioValue = input.value === "t";
+
+ // #11217 - WebKit loses check when the name is after the checked attribute
+ input.setAttribute( "checked", "t" );
+ input.setAttribute( "name", "t" );
+
+ fragment = document.createDocumentFragment();
+ fragment.appendChild( input );
+
+ // Check if a disconnected checkbox will retain its checked
+ // value of true after appended to the DOM (IE6/7)
+ support.appendChecked = input.checked;
+
+ // WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Support: IE<9
+ // Opera does not clone events (and typeof div.attachEvent === undefined).
+ // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
+ if ( div.attachEvent ) {
+ div.attachEvent( "onclick", function() {
+ support.noCloneEvent = false;
+ });
+
+ div.cloneNode( true ).click();
+ }
+
+ // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
+ // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php
+ for ( i in { submit: true, change: true, focusin: true }) {
+ div.setAttribute( eventName = "on" + i, "t" );
+
+ support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
+ }
+
+ div.style.backgroundClip = "content-box";
+ div.cloneNode( true ).style.backgroundClip = "";
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+ // Run tests that need a body at doc ready
+ jQuery(function() {
+ var container, marginDiv, tds,
+ divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
+ body = document.getElementsByTagName("body")[0];
+
+ if ( !body ) {
+ // Return for frameset docs that don't have a body
+ return;
+ }
+
+ container = document.createElement("div");
+ container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
+
+ body.appendChild( container ).appendChild( div );
+
+ // Support: IE8
+ // Check if table cells still have offsetWidth/Height when they are set
+ // to display:none and there are still other visible table cells in a
+ // table row; if so, offsetWidth/Height are not reliable for use when
+ // determining if an element has been hidden directly using
+ // display:none (it is still safe to use offsets if a parent element is
+ // hidden; don safety goggles and see bug #4512 for more information).
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
+ tds = div.getElementsByTagName("td");
+ tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
+ isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+ tds[ 0 ].style.display = "";
+ tds[ 1 ].style.display = "none";
+
+ // Support: IE8
+ // Check if empty table cells still have offsetWidth/Height
+ support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+
+ // Check box-sizing and margin behavior
+ div.innerHTML = "";
+ div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
+ support.boxSizing = ( div.offsetWidth === 4 );
+ support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );
+
+ // Use window.getComputedStyle because jsdom on node.js will break without it.
+ if ( window.getComputedStyle ) {
+ support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
+ support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
+
+ // Check if div with explicit width and no margin-right incorrectly
+ // gets computed margin-right based on width of container. (#3333)
+ // Fails in WebKit before Feb 2011 nightlies
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ marginDiv = div.appendChild( document.createElement("div") );
+ marginDiv.style.cssText = div.style.cssText = divReset;
+ marginDiv.style.marginRight = marginDiv.style.width = "0";
+ div.style.width = "1px";
+
+ support.reliableMarginRight =
+ !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
+ }
+
+ if ( typeof div.style.zoom !== core_strundefined ) {
+ // Support: IE<8
+ // Check if natively block-level elements act like inline-block
+ // elements when setting their display to 'inline' and giving
+ // them layout
+ div.innerHTML = "";
+ div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
+ support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
+
+ // Support: IE6
+ // Check if elements with layout shrink-wrap their children
+ div.style.display = "block";
+ div.innerHTML = "<div></div>";
+ div.firstChild.style.width = "5px";
+ support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
+
+ if ( support.inlineBlockNeedsLayout ) {
+ // Prevent IE 6 from affecting layout for positioned elements #11048
+ // Prevent IE from shrinking the body in IE 7 mode #12869
+ // Support: IE<8
+ body.style.zoom = 1;
+ }
+ }
+
+ body.removeChild( container );
+
+ // Null elements to avoid leaks in IE
+ container = div = tds = marginDiv = null;
+ });
+
+ // Null elements to avoid leaks in IE
+ all = select = fragment = opt = a = input = null;
+
+ return support;
+})();
+
+var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+function internalData( elem, name, data, pvt /* Internal Use Only */ ){
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var thisCache, ret,
+ internalKey = jQuery.expando,
+ getByName = typeof name === "string",
+
+ // We have to handle DOM nodes and JS objects differently because IE6-7
+ // can't GC object references properly across the DOM-JS boundary
+ isNode = elem.nodeType,
+
+ // Only DOM nodes need the global jQuery cache; JS object data is
+ // attached directly to the object so GC can occur automatically
+ cache = isNode ? jQuery.cache : elem,
+
+ // Only defining an ID for JS objects if its cache already exists allows
+ // the code to shortcut on the same path as a DOM node with no cache
+ id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+
+ // Avoid doing any more work than we need to when trying to get data on an
+ // object that has no data at all
+ if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
+ return;
+ }
+
+ if ( !id ) {
+ // Only DOM nodes need a new unique ID for each element since their data
+ // ends up in the global cache
+ if ( isNode ) {
+ elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++;
+ } else {
+ id = internalKey;
+ }
+ }
+
+ if ( !cache[ id ] ) {
+ cache[ id ] = {};
+
+ // Avoids exposing jQuery metadata on plain JS objects when the object
+ // is serialized using JSON.stringify
+ if ( !isNode ) {
+ cache[ id ].toJSON = jQuery.noop;
+ }
+ }
+
+ // An object can be passed to jQuery.data instead of a key/value pair; this gets
+ // shallow copied over onto the existing cache
+ if ( typeof name === "object" || typeof name === "function" ) {
+ if ( pvt ) {
+ cache[ id ] = jQuery.extend( cache[ id ], name );
+ } else {
+ cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+ }
+ }
+
+ thisCache = cache[ id ];
+
+ // jQuery data() is stored in a separate object inside the object's internal data
+ // cache in order to avoid key collisions between internal data and user-defined
+ // data.
+ if ( !pvt ) {
+ if ( !thisCache.data ) {
+ thisCache.data = {};
+ }
+
+ thisCache = thisCache.data;
+ }
+
+ if ( data !== undefined ) {
+ thisCache[ jQuery.camelCase( name ) ] = data;
+ }
+
+ // Check for both converted-to-camel and non-converted data property names
+ // If a data property was specified
+ if ( getByName ) {
+
+ // First Try to find as-is property data
+ ret = thisCache[ name ];
+
+ // Test for null|undefined property data
+ if ( ret == null ) {
+
+ // Try to find the camelCased property
+ ret = thisCache[ jQuery.camelCase( name ) ];
+ }
+ } else {
+ ret = thisCache;
+ }
+
+ return ret;
+}
+
+function internalRemoveData( elem, name, pvt ) {
+ if ( !jQuery.acceptData( elem ) ) {
+ return;
+ }
+
+ var i, l, thisCache,
+ isNode = elem.nodeType,
+
+ // See jQuery.data for more information
+ cache = isNode ? jQuery.cache : elem,
+ id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+ // If there is already no cache entry for this object, there is no
+ // purpose in continuing
+ if ( !cache[ id ] ) {
+ return;
+ }
+
+ if ( name ) {
+
+ thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+ if ( thisCache ) {
+
+ // Support array or space separated string names for data keys
+ if ( !jQuery.isArray( name ) ) {
+
+ // try the string as a key before any manipulation
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+
+ // split the camel cased version by spaces unless a key with the spaces exists
+ name = jQuery.camelCase( name );
+ if ( name in thisCache ) {
+ name = [ name ];
+ } else {
+ name = name.split(" ");
+ }
+ }
+ } else {
+ // If "name" is an array of keys...
+ // When data is initially created, via ("key", "val") signature,
+ // keys will be converted to camelCase.
+ // Since there is no way to tell _how_ a key was added, remove
+ // both plain key and camelCase key. #12786
+ // This will only penalize the array argument path.
+ name = name.concat( jQuery.map( name, jQuery.camelCase ) );
+ }
+
+ for ( i = 0, l = name.length; i < l; i++ ) {
+ delete thisCache[ name[i] ];
+ }
+
+ // If there is no data left in the cache, we want to continue
+ // and let the cache object itself get destroyed
+ if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+ return;
+ }
+ }
+ }
+
+ // See jQuery.data for more information
+ if ( !pvt ) {
+ delete cache[ id ].data;
+
+ // Don't destroy the parent cache unless the internal data object
+ // had been the only thing left in it
+ if ( !isEmptyDataObject( cache[ id ] ) ) {
+ return;
+ }
+ }
+
+ // Destroy the cache
+ if ( isNode ) {
+ jQuery.cleanData( [ elem ], true );
+
+ // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
+ } else if ( jQuery.support.deleteExpando || cache != cache.window ) {
+ delete cache[ id ];
+
+ // When all else fails, null
+ } else {
+ cache[ id ] = null;
+ }
+}
+
+jQuery.extend({
+ cache: {},
+
+ // Unique for each copy of jQuery on the page
+ // Non-digits removed to match rinlinejQuery
+ expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ),
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ // Ban all objects except for Flash (which handle expandos)
+ "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+ "applet": true
+ },
+
+ hasData: function( elem ) {
+ elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+ return !!elem && !isEmptyDataObject( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return internalData( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ return internalRemoveData( elem, name );
+ },
+
+ // For internal use only.
+ _data: function( elem, name, data ) {
+ return internalData( elem, name, data, true );
+ },
+
+ _removeData: function( elem, name ) {
+ return internalRemoveData( elem, name, true );
+ },
+
+ // A method for determining if a DOM node can handle the data expando
+ acceptData: function( elem ) {
+ // Do not set data on non-element because it will not be cleared (#8335).
+ if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {
+ return false;
+ }
+
+ var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+ // nodes accept data unless otherwise specified; rejection can be conditional
+ return !noData || noData !== true && elem.getAttribute("classid") === noData;
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ var attrs, name,
+ elem = this[0],
+ i = 0,
+ data = null;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = jQuery.data( elem );
+
+ if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+ attrs = elem.attributes;
+ for ( ; i < attrs.length; i++ ) {
+ name = attrs[i].name;
+
+ if ( !name.indexOf( "data-" ) ) {
+ name = jQuery.camelCase( name.slice(5) );
+
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ jQuery._data( elem, "parsedAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each(function() {
+ jQuery.data( this, key );
+ });
+ }
+
+ return jQuery.access( this, function( value ) {
+
+ if ( value === undefined ) {
+ // Try to fetch any internally stored data first
+ return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
+ }
+
+ this.each(function() {
+ jQuery.data( this, key, value );
+ });
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ jQuery.removeData( this, key );
+ });
+ }
+});
+
+function dataAttr( elem, key, data ) {
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+
+ var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ // Only convert to a number if it doesn't change the string
+ +data + "" === data ? +data :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ jQuery.data( elem, key, data );
+
+ } else {
+ data = undefined;
+ }
+ }
+
+ return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+ var name;
+ for ( name in obj ) {
+
+ // if the public data object is empty, the private is still empty
+ if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+ continue;
+ }
+ if ( name !== "toJSON" ) {
+ return false;
+ }
+ }
+
+ return true;
+}
+jQuery.extend({
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = jQuery._data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray(data) ) {
+ queue = jQuery._data( elem, type, jQuery.makeArray(data) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ hooks.cur = fn;
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // not intended for public consumption - generates a queueHooks object, or returns the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return jQuery._data( elem, key ) || jQuery._data( elem, key, {
+ empty: jQuery.Callbacks("once memory").add(function() {
+ jQuery._removeData( elem, type + "queue" );
+ jQuery._removeData( elem, key );
+ })
+ });
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[0], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each(function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function( time, type ) {
+ time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function( next, hooks ) {
+ var timeout = setTimeout( next, time );
+ hooks.stop = function() {
+ clearTimeout( timeout );
+ };
+ });
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while( i-- ) {
+ tmp = jQuery._data( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+});
+var nodeHook, boolHook,
+ rclass = /[\t\r\n]/g,
+ rreturn = /\r/g,
+ rfocusable = /^(?:input|select|textarea|button|object)$/i,
+ rclickable = /^(?:a|area)$/i,
+ rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
+ ruseDefault = /^(?:checked|selected)$/i,
+ getSetAttribute = jQuery.support.getSetAttribute,
+ getSetInput = jQuery.support.input;
+
+jQuery.fn.extend({
+ attr: function( name, value ) {
+ return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
+ },
+
+ removeAttr: function( name ) {
+ return this.each(function() {
+ jQuery.removeAttr( this, name );
+ });
+ },
+
+ prop: function( name, value ) {
+ return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
+ },
+
+ removeProp: function( name ) {
+ name = jQuery.propFix[ name ] || name;
+ return this.each(function() {
+ // try/catch handles cases where IE balks (such as removing a property on window)
+ try {
+ this[ name ] = undefined;
+ delete this[ name ];
+ } catch( e ) {}
+ });
+ },
+
+ addClass: function( value ) {
+ var classes, elem, cur, clazz, j,
+ i = 0,
+ len = this.length,
+ proceed = typeof value === "string" && value;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).addClass( value.call( this, j, this.className ) );
+ });
+ }
+
+ if ( proceed ) {
+ // The disjunction here is for better compressibility (see removeClass)
+ classes = ( value || "" ).match( core_rnotwhite ) || [];
+
+ for ( ; i < len; i++ ) {
+ elem = this[ i ];
+ cur = elem.nodeType === 1 && ( elem.className ?
+ ( " " + elem.className + " " ).replace( rclass, " " ) :
+ " "
+ );
+
+ if ( cur ) {
+ j = 0;
+ while ( (clazz = classes[j++]) ) {
+ if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+ cur += clazz + " ";
+ }
+ }
+ elem.className = jQuery.trim( cur );
+
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ var classes, elem, cur, clazz, j,
+ i = 0,
+ len = this.length,
+ proceed = arguments.length === 0 || typeof value === "string" && value;
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( j ) {
+ jQuery( this ).removeClass( value.call( this, j, this.className ) );
+ });
+ }
+ if ( proceed ) {
+ classes = ( value || "" ).match( core_rnotwhite ) || [];
+
+ for ( ; i < len; i++ ) {
+ elem = this[ i ];
+ // This expression is here for better compressibility (see addClass)
+ cur = elem.nodeType === 1 && ( elem.className ?
+ ( " " + elem.className + " " ).replace( rclass, " " ) :
+ ""
+ );
+
+ if ( cur ) {
+ j = 0;
+ while ( (clazz = classes[j++]) ) {
+ // Remove *all* instances
+ while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
+ cur = cur.replace( " " + clazz + " ", " " );
+ }
+ }
+ elem.className = value ? jQuery.trim( cur ) : "";
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function( i ) {
+ jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+ });
+ }
+
+ return this.each(function() {
+ if ( type === "string" ) {
+ // toggle individual class names
+ var className,
+ i = 0,
+ self = jQuery( this ),
+ state = stateVal,
+ classNames = value.match( core_rnotwhite ) || [];
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space separated list
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ // Toggle whole class name
+ } else if ( type === core_strundefined || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery._data( this, "__className__", this.className );
+ }
+
+ // If the element has a class name or if we're passed "false",
+ // then remove the whole classname (if there was one, the above saved it).
+ // Otherwise bring back whatever was previously saved (if anything),
+ // falling back to the empty string if nothing was stored.
+ this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+ }
+ });
+ },
+
+ hasClass: function( selector ) {
+ var className = " " + selector + " ",
+ i = 0,
+ l = this.length;
+ for ( ; i < l; i++ ) {
+ if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function( value ) {
+ var ret, hooks, isFunction,
+ elem = this[0];
+
+ if ( !arguments.length ) {
+ if ( elem ) {
+ hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+ return ret;
+ }
+
+ ret = elem.value;
+
+ return typeof ret === "string" ?
+ // handle most common string cases
+ ret.replace(rreturn, "") :
+ // handle cases where value is null/undef or number
+ ret == null ? "" : ret;
+ }
+
+ return;
+ }
+
+ isFunction = jQuery.isFunction( value );
+
+ return this.each(function( i ) {
+ var val,
+ self = jQuery(this);
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call( this, i, self.val() );
+ } else {
+ val = value;
+ }
+
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
+ val += "";
+ } else if ( jQuery.isArray( val ) ) {
+ val = jQuery.map(val, function ( value ) {
+ return value == null ? "" : value + "";
+ });
+ }
+
+ hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+ // If set returns undefined, fall back to normal setting
+ if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+ this.value = val;
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ valHooks: {
+ option: {
+ get: function( elem ) {
+ // attributes.value is undefined in Blackberry 4.7 but
+ // uses .value. See #6932
+ var val = elem.attributes.value;
+ return !val || val.specified ? elem.value : elem.text;
+ }
+ },
+ select: {
+ get: function( elem ) {
+ var value, option,
+ options = elem.options,
+ index = elem.selectedIndex,
+ one = elem.type === "select-one" || index < 0,
+ values = one ? null : [],
+ max = one ? index + 1 : options.length,
+ i = index < 0 ?
+ max :
+ one ? index : 0;
+
+ // Loop through all the selected options
+ for ( ; i < max; i++ ) {
+ option = options[ i ];
+
+ // oldIE doesn't update selected after form reset (#2551)
+ if ( ( option.selected || i === index ) &&
+ // Don't return options that are disabled or in a disabled optgroup
+ ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
+ ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+ // Get the specific value for the option
+ value = jQuery( option ).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ },
+
+ set: function( elem, value ) {
+ var values = jQuery.makeArray( value );
+
+ jQuery(elem).find("option").each(function() {
+ this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ });
+
+ if ( !values.length ) {
+ elem.selectedIndex = -1;
+ }
+ return values;
+ }
+ }
+ },
+
+ attr: function( elem, name, value ) {
+ var hooks, notxml, ret,
+ nType = elem.nodeType;
+
+ // don't get/set attributes on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ // Fallback to prop when attributes are not supported
+ if ( typeof elem.getAttribute === core_strundefined ) {
+ return jQuery.prop( elem, name, value );
+ }
+
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ // All attributes are lowercase
+ // Grab necessary hook if one is defined
+ if ( notxml ) {
+ name = name.toLowerCase();
+ hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );
+ }
+
+ if ( value !== undefined ) {
+
+ if ( value === null ) {
+ jQuery.removeAttr( elem, name );
+
+ } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ elem.setAttribute( name, value + "" );
+ return value;
+ }
+
+ } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+
+ // In IE9+, Flash objects don't have .getAttribute (#12945)
+ // Support: IE9+
+ if ( typeof elem.getAttribute !== core_strundefined ) {
+ ret = elem.getAttribute( name );
+ }
+
+ // Non-existent attributes return null, we normalize to undefined
+ return ret == null ?
+ undefined :
+ ret;
+ }
+ },
+
+ removeAttr: function( elem, value ) {
+ var name, propName,
+ i = 0,
+ attrNames = value && value.match( core_rnotwhite );
+
+ if ( attrNames && elem.nodeType === 1 ) {
+ while ( (name = attrNames[i++]) ) {
+ propName = jQuery.propFix[ name ] || name;
+
+ // Boolean attributes get special treatment (#10870)
+ if ( rboolean.test( name ) ) {
+ // Set corresponding property to false for boolean attributes
+ // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8
+ if ( !getSetAttribute && ruseDefault.test( name ) ) {
+ elem[ jQuery.camelCase( "default-" + name ) ] =
+ elem[ propName ] = false;
+ } else {
+ elem[ propName ] = false;
+ }
+
+ // See #9699 for explanation of this approach (setting first, then removal)
+ } else {
+ jQuery.attr( elem, name, "" );
+ }
+
+ elem.removeAttribute( getSetAttribute ? name : propName );
+ }
+ }
+ },
+
+ attrHooks: {
+ type: {
+ set: function( elem, value ) {
+ if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+ // Setting the type on a radio button after the value resets the value in IE6-9
+ // Reset value to default in case type is set after value during creation
+ var val = elem.value;
+ elem.setAttribute( "type", value );
+ if ( val ) {
+ elem.value = val;
+ }
+ return value;
+ }
+ }
+ }
+ },
+
+ propFix: {
+ tabindex: "tabIndex",
+ readonly: "readOnly",
+ "for": "htmlFor",
+ "class": "className",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ cellpadding: "cellPadding",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ usemap: "useMap",
+ frameborder: "frameBorder",
+ contenteditable: "contentEditable"
+ },
+
+ prop: function( elem, name, value ) {
+ var ret, hooks, notxml,
+ nType = elem.nodeType;
+
+ // don't get/set properties on text, comment and attribute nodes
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+ return;
+ }
+
+ notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+ if ( notxml ) {
+ // Fix name and attach hooks
+ name = jQuery.propFix[ name ] || name;
+ hooks = jQuery.propHooks[ name ];
+ }
+
+ if ( value !== undefined ) {
+ if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+ return ret;
+
+ } else {
+ return ( elem[ name ] = value );
+ }
+
+ } else {
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+ return ret;
+
+ } else {
+ return elem[ name ];
+ }
+ }
+ },
+
+ propHooks: {
+ tabIndex: {
+ get: function( elem ) {
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ var attributeNode = elem.getAttributeNode("tabindex");
+
+ return attributeNode && attributeNode.specified ?
+ parseInt( attributeNode.value, 10 ) :
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ undefined;
+ }
+ }
+ }
+});
+
+// Hook for boolean attributes
+boolHook = {
+ get: function( elem, name ) {
+ var
+ // Use .prop to determine if this attribute is understood as boolean
+ prop = jQuery.prop( elem, name ),
+
+ // Fetch it accordingly
+ attr = typeof prop === "boolean" && elem.getAttribute( name ),
+ detail = typeof prop === "boolean" ?
+
+ getSetInput && getSetAttribute ?
+ attr != null :
+ // oldIE fabricates an empty string for missing boolean attributes
+ // and conflates checked/selected into attroperties
+ ruseDefault.test( name ) ?
+ elem[ jQuery.camelCase( "default-" + name ) ] :
+ !!attr :
+
+ // fetch an attribute node for properties not recognized as boolean
+ elem.getAttributeNode( name );
+
+ return detail && detail.value !== false ?
+ name.toLowerCase() :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ if ( value === false ) {
+ // Remove boolean attributes when set to false
+ jQuery.removeAttr( elem, name );
+ } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+ // IE<8 needs the *property* name
+ elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
+
+ // Use defaultChecked and defaultSelected for oldIE
+ } else {
+ elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
+ }
+
+ return name;
+ }
+};
+
+// fix oldIE value attroperty
+if ( !getSetInput || !getSetAttribute ) {
+ jQuery.attrHooks.value = {
+ get: function( elem, name ) {
+ var ret = elem.getAttributeNode( name );
+ return jQuery.nodeName( elem, "input" ) ?
+
+ // Ignore the value *property* by using defaultValue
+ elem.defaultValue :
+
+ ret && ret.specified ? ret.value : undefined;
+ },
+ set: function( elem, value, name ) {
+ if ( jQuery.nodeName( elem, "input" ) ) {
+ // Does not return so that setAttribute is also used
+ elem.defaultValue = value;
+ } else {
+ // Use nodeHook if defined (#1954); otherwise setAttribute is fine
+ return nodeHook && nodeHook.set( elem, value, name );
+ }
+ }
+ };
+}
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+ // Use this for any attribute in IE6/7
+ // This fixes almost every IE6/7 issue
+ nodeHook = jQuery.valHooks.button = {
+ get: function( elem, name ) {
+ var ret = elem.getAttributeNode( name );
+ return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ?
+ ret.value :
+ undefined;
+ },
+ set: function( elem, value, name ) {
+ // Set the existing or create a new attribute node
+ var ret = elem.getAttributeNode( name );
+ if ( !ret ) {
+ elem.setAttributeNode(
+ (ret = elem.ownerDocument.createAttribute( name ))
+ );
+ }
+
+ ret.value = value += "";
+
+ // Break association with cloned elements by also using setAttribute (#9646)
+ return name === "value" || value === elem.getAttribute( name ) ?
+ value :
+ undefined;
+ }
+ };
+
+ // Set contenteditable to false on removals(#10429)
+ // Setting to empty string throws an error as an invalid value
+ jQuery.attrHooks.contenteditable = {
+ get: nodeHook.get,
+ set: function( elem, value, name ) {
+ nodeHook.set( elem, value === "" ? false : value, name );
+ }
+ };
+
+ // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+ // This is for removals
+ jQuery.each([ "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ set: function( elem, value ) {
+ if ( value === "" ) {
+ elem.setAttribute( name, "auto" );
+ return value;
+ }
+ }
+ });
+ });
+}
+
+
+// Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !jQuery.support.hrefNormalized ) {
+ jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+ jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+ get: function( elem ) {
+ var ret = elem.getAttribute( name, 2 );
+ return ret == null ? undefined : ret;
+ }
+ });
+ });
+
+ // href/src property should get the full normalized URL (#10299/#12915)
+ jQuery.each([ "href", "src" ], function( i, name ) {
+ jQuery.propHooks[ name ] = {
+ get: function( elem ) {
+ return elem.getAttribute( name, 4 );
+ }
+ };
+ });
+}
+
+if ( !jQuery.support.style ) {
+ jQuery.attrHooks.style = {
+ get: function( elem ) {
+ // Return undefined in the case of empty string
+ // Note: IE uppercases css property names, but if we were to .toLowerCase()
+ // .cssText, that would destroy case senstitivity in URL's, like in "background"
+ return elem.style.cssText || undefined;
+ },
+ set: function( elem, value ) {
+ return ( elem.style.cssText = value + "" );
+ }
+ };
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+ jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+ get: function( elem ) {
+ var parent = elem.parentNode;
+
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ return null;
+ }
+ });
+}
+
+// IE6/7 call enctype encoding
+if ( !jQuery.support.enctype ) {
+ jQuery.propFix.enctype = "encoding";
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+ jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = {
+ get: function( elem ) {
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+ };
+ });
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+ jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+ set: function( elem, value ) {
+ if ( jQuery.isArray( value ) ) {
+ return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+ }
+ }
+ });
+});
+var rformElems = /^(?:input|select|textarea)$/i,
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|contextmenu)|click/,
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+ var tmp, events, t, handleObjIn,
+ special, eventHandle, handleObj,
+ handlers, type, namespaces, origType,
+ elemData = jQuery._data( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !(events = elemData.events) ) {
+ events = elemData.events = {};
+ }
+ if ( !(eventHandle = elemData.handle) ) {
+ eventHandle = elemData.handle = function( e ) {
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
+ jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+ // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+ eventHandle.elem = elem;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = ( types || "" ).match( core_rnotwhite ) || [""];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[t] ) || [];
+ type = origType = tmp[1];
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend({
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join(".")
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !(handlers = events[ type ]) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener/attachEvent if the special events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, eventHandle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+ var j, handleObj, tmp,
+ origCount, t, events,
+ special, handlers, type,
+ namespaces, origType,
+ elemData = jQuery.hasData( elem ) && jQuery._data( elem );
+
+ if ( !elemData || !(events = elemData.events) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( core_rnotwhite ) || [""];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[t] ) || [];
+ type = origType = tmp[1];
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ delete elemData.handle;
+
+ // removeData also checks for emptiness and clears the expando if empty
+ // so use it instead of delete
+ jQuery._removeData( elem, "events" );
+ }
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+ var handle, ontype, cur,
+ bubbleType, special, tmp, i,
+ eventPath = [ elem || document ],
+ type = core_hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf(".") >= 0 ) {
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf(":") < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ event.isTrigger = true;
+ event.namespace = namespaces.join(".");
+ event.namespace_re = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === (elem.ownerDocument || document) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {
+ event.preventDefault();
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&
+ !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ try {
+ elem[ type ]();
+ } catch ( e ) {
+ // IE<9 dies on focus/blur to hidden element (#1486,#12518)
+ // only reproducible on winXP IE8 native, not IE9 in IE8 mode
+ }
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ dispatch: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event );
+
+ var i, ret, handleObj, matched, j,
+ handlerQueue = [],
+ args = core_slice.call( arguments ),
+ handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[0] = event;
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or
+ // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+ .apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( (event.result = ret) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var sel, handleObj, matches, i,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ // Black-hole SVG <use> instance trees (#13180)
+ // Avoid non-left-click bubbling in Firefox (#3861)
+ if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
+
+ for ( ; cur != this; cur = cur.parentNode || this ) {
+
+ // Don't check non-elements (#13208)
+ // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+ if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
+ matches = [];
+ for ( i = 0; i < delegateCount; i++ ) {
+ handleObj = handlers[ i ];
+
+ // Don't conflict with Object.prototype properties (#13203)
+ sel = handleObj.selector + " ";
+
+ if ( matches[ sel ] === undefined ) {
+ matches[ sel ] = handleObj.needsContext ?
+ jQuery( sel, this ).index( cur ) >= 0 :
+ jQuery.find( sel, this, null, [ cur ] ).length;
+ }
+ if ( matches[ sel ] ) {
+ matches.push( handleObj );
+ }
+ }
+ if ( matches.length ) {
+ handlerQueue.push({ elem: cur, handlers: matches });
+ }
+ }
+ }
+ }
+
+ // Add the remaining (directly-bound) handlers
+ if ( delegateCount < handlers.length ) {
+ handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
+ }
+
+ return handlerQueue;
+ },
+
+ fix: function( event ) {
+ if ( event[ jQuery.expando ] ) {
+ return event;
+ }
+
+ // Create a writable copy of the event object and normalize some properties
+ var i, prop, copy,
+ type = event.type,
+ originalEvent = event,
+ fixHook = this.fixHooks[ type ];
+
+ if ( !fixHook ) {
+ this.fixHooks[ type ] = fixHook =
+ rmouseEvent.test( type ) ? this.mouseHooks :
+ rkeyEvent.test( type ) ? this.keyHooks :
+ {};
+ }
+ copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+ event = new jQuery.Event( originalEvent );
+
+ i = copy.length;
+ while ( i-- ) {
+ prop = copy[ i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Support: IE<9
+ // Fix target property (#1925)
+ if ( !event.target ) {
+ event.target = originalEvent.srcElement || document;
+ }
+
+ // Support: Chrome 23+, Safari?
+ // Target should not be a text node (#504, #13143)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // Support: IE<9
+ // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
+ event.metaKey = !!event.metaKey;
+
+ return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+ },
+
+ // Includes some event props shared by KeyEvent and MouseEvent
+ props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+ fixHooks: {},
+
+ keyHooks: {
+ props: "char charCode key keyCode".split(" "),
+ filter: function( event, original ) {
+
+ // Add which for key events
+ if ( event.which == null ) {
+ event.which = original.charCode != null ? original.charCode : original.keyCode;
+ }
+
+ return event;
+ }
+ },
+
+ mouseHooks: {
+ props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+ filter: function( event, original ) {
+ var body, eventDoc, doc,
+ button = original.button,
+ fromElement = original.fromElement;
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && original.clientX != null ) {
+ eventDoc = event.target.ownerDocument || document;
+ doc = eventDoc.documentElement;
+ body = eventDoc.body;
+
+ event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+ event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && fromElement ) {
+ event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && button !== undefined ) {
+ event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+ }
+
+ return event;
+ }
+ },
+
+ special: {
+ load: {
+ // Prevent triggered image.load events from bubbling to window.load
+ noBubble: true
+ },
+ click: {
+ // For checkbox, fire native event so checked state will be right
+ trigger: function() {
+ if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
+ this.click();
+ return false;
+ }
+ }
+ },
+ focus: {
+ // Fire native event if possible so blur/focus sequence is correct
+ trigger: function() {
+ if ( this !== document.activeElement && this.focus ) {
+ try {
+ this.focus();
+ return false;
+ } catch ( e ) {
+ // Support: IE<9
+ // If we error on focus to hidden element (#1486, #12518),
+ // let .trigger() run the handlers
+ }
+ }
+ },
+ delegateType: "focusin"
+ },
+ blur: {
+ trigger: function() {
+ if ( this === document.activeElement && this.blur ) {
+ this.blur();
+ return false;
+ }
+ },
+ delegateType: "focusout"
+ },
+
+ beforeunload: {
+ postDispatch: function( event ) {
+
+ // Even when returnValue equals to undefined Firefox will still show alert
+ if ( event.result !== undefined ) {
+ event.originalEvent.returnValue = event.result;
+ }
+ }
+ }
+ },
+
+ simulate: function( type, elem, event, bubble ) {
+ // Piggyback on a donor event to simulate a different one.
+ // Fake originalEvent to avoid donor's stopPropagation, but if the
+ // simulated event prevents default then we do the same on the donor.
+ var e = jQuery.extend(
+ new jQuery.Event(),
+ event,
+ { type: type,
+ isSimulated: true,
+ originalEvent: {}
+ }
+ );
+ if ( bubble ) {
+ jQuery.event.trigger( e, null, elem );
+ } else {
+ jQuery.event.dispatch.call( elem, e );
+ }
+ if ( e.isDefaultPrevented() ) {
+ event.preventDefault();
+ }
+ }
+};
+
+jQuery.removeEvent = document.removeEventListener ?
+ function( elem, type, handle ) {
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, handle, false );
+ }
+ } :
+ function( elem, type, handle ) {
+ var name = "on" + type;
+
+ if ( elem.detachEvent ) {
+
+ // #8545, #7054, preventing memory leaks for custom events in IE6-8
+ // detachEvent needed property on element, by name of that event, to properly expose it to GC
+ if ( typeof elem[ name ] === core_strundefined ) {
+ elem[ name ] = null;
+ }
+
+ elem.detachEvent( name, handle );
+ }
+ };
+
+jQuery.Event = function( src, props ) {
+ // Allow instantiation without the 'new' keyword
+ if ( !(this instanceof jQuery.Event) ) {
+ return new jQuery.Event( src, props );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+
+ // Events bubbling up the document may have been marked as prevented
+ // by a handler lower down the tree; reflect the correct value.
+ this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+ src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // Put explicitly provided properties onto the event object
+ if ( props ) {
+ jQuery.extend( this, props );
+ }
+
+ // Create a timestamp if incoming event doesn't have one
+ this.timeStamp = src && src.timeStamp || jQuery.now();
+
+ // Mark it as fixed
+ this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse,
+
+ preventDefault: function() {
+ var e = this.originalEvent;
+
+ this.isDefaultPrevented = returnTrue;
+ if ( !e ) {
+ return;
+ }
+
+ // If preventDefault exists, run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+
+ // Support: IE
+ // Otherwise set the returnValue property of the original event to false
+ } else {
+ e.returnValue = false;
+ }
+ },
+ stopPropagation: function() {
+ var e = this.originalEvent;
+
+ this.isPropagationStopped = returnTrue;
+ if ( !e ) {
+ return;
+ }
+ // If stopPropagation exists, run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+
+ // Support: IE
+ // Set the cancelBubble property of the original event to true
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ }
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ delegateType: fix,
+ bindType: fix,
+
+ handle: function( event ) {
+ var ret,
+ target = this,
+ related = event.relatedTarget,
+ handleObj = event.handleObj;
+
+ // For mousenter/leave call the handler if related is outside the target.
+ // NB: No relatedTarget if the mouse left/entered the browser window
+ if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+ event.type = handleObj.origType;
+ ret = handleObj.handler.apply( this, arguments );
+ event.type = fix;
+ }
+ return ret;
+ }
+ };
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+ jQuery.event.special.submit = {
+ setup: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Lazy-add a submit handler when a descendant form may potentially be submitted
+ jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+ // Node name check avoids a VML-related crash in IE (#9807)
+ var elem = e.target,
+ form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+ if ( form && !jQuery._data( form, "submitBubbles" ) ) {
+ jQuery.event.add( form, "submit._submit", function( event ) {
+ event._submit_bubble = true;
+ });
+ jQuery._data( form, "submitBubbles", true );
+ }
+ });
+ // return undefined since we don't need an event listener
+ },
+
+ postDispatch: function( event ) {
+ // If form was submitted by the user, bubble the event up the tree
+ if ( event._submit_bubble ) {
+ delete event._submit_bubble;
+ if ( this.parentNode && !event.isTrigger ) {
+ jQuery.event.simulate( "submit", this.parentNode, event, true );
+ }
+ }
+ },
+
+ teardown: function() {
+ // Only need this for delegated form submit events
+ if ( jQuery.nodeName( this, "form" ) ) {
+ return false;
+ }
+
+ // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+ jQuery.event.remove( this, "._submit" );
+ }
+ };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+ jQuery.event.special.change = {
+
+ setup: function() {
+
+ if ( rformElems.test( this.nodeName ) ) {
+ // IE doesn't fire change on a check/radio until blur; trigger it on click
+ // after a propertychange. Eat the blur-change in special.change.handle.
+ // This still fires onchange a second time for check/radio after blur.
+ if ( this.type === "checkbox" || this.type === "radio" ) {
+ jQuery.event.add( this, "propertychange._change", function( event ) {
+ if ( event.originalEvent.propertyName === "checked" ) {
+ this._just_changed = true;
+ }
+ });
+ jQuery.event.add( this, "click._change", function( event ) {
+ if ( this._just_changed && !event.isTrigger ) {
+ this._just_changed = false;
+ }
+ // Allow triggered, simulated change events (#11500)
+ jQuery.event.simulate( "change", this, event, true );
+ });
+ }
+ return false;
+ }
+ // Delegated event; lazy-add a change handler on descendant inputs
+ jQuery.event.add( this, "beforeactivate._change", function( e ) {
+ var elem = e.target;
+
+ if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
+ jQuery.event.add( elem, "change._change", function( event ) {
+ if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+ jQuery.event.simulate( "change", this.parentNode, event, true );
+ }
+ });
+ jQuery._data( elem, "changeBubbles", true );
+ }
+ });
+ },
+
+ handle: function( event ) {
+ var elem = event.target;
+
+ // Swallow native change events from checkbox/radio, we already triggered them above
+ if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+ return event.handleObj.handler.apply( this, arguments );
+ }
+ },
+
+ teardown: function() {
+ jQuery.event.remove( this, "._change" );
+
+ return !rformElems.test( this.nodeName );
+ }
+ };
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler while someone wants focusin/focusout
+ var attaches = 0,
+ handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ if ( attaches++ === 0 ) {
+ document.addEventListener( orig, handler, true );
+ }
+ },
+ teardown: function() {
+ if ( --attaches === 0 ) {
+ document.removeEventListener( orig, handler, true );
+ }
+ }
+ };
+ });
+}
+
+jQuery.fn.extend({
+
+ on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+ var type, origFn;
+
+ // Types can be a map of types/handlers
+ if ( typeof types === "object" ) {
+ // ( types-Object, selector, data )
+ if ( typeof selector !== "string" ) {
+ // ( types-Object, data )
+ data = data || selector;
+ selector = undefined;
+ }
+ for ( type in types ) {
+ this.on( type, selector, data, types[ type ], one );
+ }
+ return this;
+ }
+
+ if ( data == null && fn == null ) {
+ // ( types, fn )
+ fn = selector;
+ data = selector = undefined;
+ } else if ( fn == null ) {
+ if ( typeof selector === "string" ) {
+ // ( types, selector, fn )
+ fn = data;
+ data = undefined;
+ } else {
+ // ( types, data, fn )
+ fn = data;
+ data = selector;
+ selector = undefined;
+ }
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ } else if ( !fn ) {
+ return this;
+ }
+
+ if ( one === 1 ) {
+ origFn = fn;
+ fn = function( event ) {
+ // Can use an empty set, since event contains the info
+ jQuery().off( event );
+ return origFn.apply( this, arguments );
+ };
+ // Use same guid so caller can remove using origFn
+ fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+ }
+ return this.each( function() {
+ jQuery.event.add( this, types, fn, data, selector );
+ });
+ },
+ one: function( types, selector, data, fn ) {
+ return this.on( types, selector, data, fn, 1 );
+ },
+ off: function( types, selector, fn ) {
+ var handleObj, type;
+ if ( types && types.preventDefault && types.handleObj ) {
+ // ( event ) dispatched jQuery.Event
+ handleObj = types.handleObj;
+ jQuery( types.delegateTarget ).off(
+ handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+ handleObj.selector,
+ handleObj.handler
+ );
+ return this;
+ }
+ if ( typeof types === "object" ) {
+ // ( types-object [, selector] )
+ for ( type in types ) {
+ this.off( type, selector, types[ type ] );
+ }
+ return this;
+ }
+ if ( selector === false || typeof selector === "function" ) {
+ // ( types [, fn] )
+ fn = selector;
+ selector = undefined;
+ }
+ if ( fn === false ) {
+ fn = returnFalse;
+ }
+ return this.each(function() {
+ jQuery.event.remove( this, types, fn, selector );
+ });
+ },
+
+ bind: function( types, data, fn ) {
+ return this.on( types, null, data, fn );
+ },
+ unbind: function( types, fn ) {
+ return this.off( types, null, fn );
+ },
+
+ delegate: function( selector, types, data, fn ) {
+ return this.on( types, selector, data, fn );
+ },
+ undelegate: function( selector, types, fn ) {
+ // ( namespace ) or ( selector, types [, fn] )
+ return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
+ },
+
+ trigger: function( type, data ) {
+ return this.each(function() {
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+ triggerHandler: function( type, data ) {
+ var elem = this[0];
+ if ( elem ) {
+ return jQuery.event.trigger( type, data, elem, true );
+ }
+ }
+});
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://sizzlejs.com/
+ */
+(function( window, undefined ) {
+
+var i,
+ cachedruns,
+ Expr,
+ getText,
+ isXML,
+ compile,
+ hasDuplicate,
+ outermostContext,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsXML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+ sortOrder,
+
+ // Instance-specific data
+ expando = "sizzle" + -(new Date()),
+ preferredDoc = window.document,
+ support = {},
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+
+ // General-purpose constants
+ strundefined = typeof undefined,
+ MAX_NEGATIVE = 1 << 31,
+
+ // Array methods
+ arr = [],
+ pop = arr.pop,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf if we can't use a native one
+ indexOf = arr.indexOf || function( elem ) {
+ var i = 0,
+ len = this.length;
+ for ( ; i < len; i++ ) {
+ if ( this[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+
+ // Regular expressions
+
+ // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+ // http://www.w3.org/TR/css3-syntax/#characters
+ characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+ // Loosely modeled on CSS identifier characters
+ // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
+ // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = characterEncoding.replace( "w", "w#" ),
+
+ // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
+ operators = "([*^$|!~]?=)",
+ attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+ "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
+
+ // Prefer arguments quoted,
+ // then not containing pseudos/brackets,
+ // then attribute selectors/non-parenthetical expressions,
+ // then anything else
+ // These preferences are here to reduce the number of selectors
+ // needing tokenize in the PSEUDO preFilter
+ pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + characterEncoding + ")" ),
+ "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+ "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
+ "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rsibling = /[\x20\t\r\n\f]*[+~]/,
+
+ rnative = /^[^{]+\{\s*\[native code/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rescape = /'|\\/g,
+ rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
+
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
+ funescape = function( _, escaped ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ return high !== high ?
+ escaped :
+ // BMP codepoint
+ high < 0 ?
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ };
+
+// Use a stripped-down slice if we can't use a native one
+try {
+ slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType;
+} catch ( e ) {
+ slice = function( i ) {
+ var elem,
+ results = [];
+ while ( (elem = this[i++]) ) {
+ results.push( elem );
+ }
+ return results;
+ };
+}
+
+/**
+ * For feature detection
+ * @param {Function} fn The function to test for native support
+ */
+function isNative( fn ) {
+ return rnative.test( fn + "" );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var cache,
+ keys = [];
+
+ return (cache = function( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key += " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key ] = value);
+ });
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+ var div = document.createElement("div");
+
+ try {
+ return fn( div );
+ } catch (e) {
+ return false;
+ } finally {
+ // release memory in IE
+ div = null;
+ }
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var match, elem, m, nodeType,
+ // QSA vars
+ i, groups, old, nid, newContext, newSelector;
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+
+ context = context || document;
+ results = results || [];
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !documentIsXML && !seed ) {
+
+ // Shortcuts
+ if ( (match = rquickExpr.exec( selector )) ) {
+ // Speed-up: Sizzle("#ID")
+ if ( (m = match[1]) ) {
+ if ( nodeType === 9 ) {
+ elem = context.getElementById( m );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE, Opera, and Webkit return items
+ // by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+ } else {
+ // Context is not a document
+ if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+ contains( context, elem ) && elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Speed-up: Sizzle("TAG")
+ } else if ( match[2] ) {
+ push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
+ return results;
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) {
+ push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
+ return results;
+ }
+ }
+
+ // QSA path
+ if ( support.qsa && !rbuggyQSA.test(selector) ) {
+ old = true;
+ nid = expando;
+ newContext = context;
+ newSelector = nodeType === 9 && selector;
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ groups = tokenize( selector );
+
+ if ( (old = context.getAttribute("id")) ) {
+ nid = old.replace( rescape, "\\$&" );
+ } else {
+ context.setAttribute( "id", nid );
+ }
+ nid = "[id='" + nid + "'] ";
+
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = nid + toSelector( groups[i] );
+ }
+ newContext = rsibling.test( selector ) && context.parentNode || context;
+ newSelector = groups.join(",");
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results, slice.call( newContext.querySelectorAll(
+ newSelector
+ ), 0 ) );
+ return results;
+ } catch(qsaError) {
+ } finally {
+ if ( !old ) {
+ context.removeAttribute("id");
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Detect xml
+ * @param {Element|Object} elem An element or a document
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var doc = node ? node.ownerDocument || node : preferredDoc;
+
+ // If no document and documentElement is available, return
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Set our document
+ document = doc;
+ docElem = doc.documentElement;
+
+ // Support tests
+ documentIsXML = isXML( doc );
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.tagNameNoComments = assert(function( div ) {
+ div.appendChild( doc.createComment("") );
+ return !div.getElementsByTagName("*").length;
+ });
+
+ // Check if attributes should be retrieved by attribute nodes
+ support.attributes = assert(function( div ) {
+ div.innerHTML = "<select></select>";
+ var type = typeof div.lastChild.getAttribute("multiple");
+ // IE8 returns a string for some attributes even when not present
+ return type !== "boolean" && type !== "string";
+ });
+
+ // Check if getElementsByClassName can be trusted
+ support.getByClassName = assert(function( div ) {
+ // Opera can't find a second classname (in 9.6)
+ div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";
+ if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {
+ return false;
+ }
+
+ // Safari 3.2 caches class attributes and doesn't catch changes
+ div.lastChild.className = "e";
+ return div.getElementsByClassName("e").length === 2;
+ });
+
+ // Check if getElementById returns elements by name
+ // Check if getElementsByName privileges form controls or returns elements by ID
+ support.getByName = assert(function( div ) {
+ // Inject content
+ div.id = expando + 0;
+ div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";
+ docElem.insertBefore( div, docElem.firstChild );
+
+ // Test
+ var pass = doc.getElementsByName &&
+ // buggy browsers will return fewer than the correct 2
+ doc.getElementsByName( expando ).length === 2 +
+ // buggy browsers will return more than the correct 0
+ doc.getElementsByName( expando + 0 ).length;
+ support.getIdNotName = !doc.getElementById( expando );
+
+ // Cleanup
+ docElem.removeChild( div );
+
+ return pass;
+ });
+
+ // IE6/7 return modified attributes
+ Expr.attrHandle = assert(function( div ) {
+ div.innerHTML = "<a href='#'></a>";
+ return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
+ div.firstChild.getAttribute("href") === "#";
+ }) ?
+ {} :
+ {
+ "href": function( elem ) {
+ return elem.getAttribute( "href", 2 );
+ },
+ "type": function( elem ) {
+ return elem.getAttribute("type");
+ }
+ };
+
+ // ID find and filter
+ if ( support.getIdNotName ) {
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== strundefined && !documentIsXML ) {
+ var m = context.getElementById( id );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ };
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ } else {
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== strundefined && !documentIsXML ) {
+ var m = context.getElementById( id );
+
+ return m ?
+ m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
+ [m] :
+ undefined :
+ [];
+ }
+ };
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.tagNameNoComments ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== strundefined ) {
+ return context.getElementsByTagName( tag );
+ }
+ } :
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Name
+ Expr.find["NAME"] = support.getByName && function( tag, context ) {
+ if ( typeof context.getElementsByName !== strundefined ) {
+ return context.getElementsByName( name );
+ }
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21),
+ // no need to also add to buggyMatches since matches checks buggyQSA
+ // A support test would require too much code (would include document ready)
+ rbuggyQSA = [ ":focus" ];
+
+ if ( (support.qsa = isNative(doc.querySelectorAll)) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( div ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explictly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // http://bugs.jquery.com/ticket/12359
+ div.innerHTML = "<select><option selected=''></option></select>";
+
+ // IE8 - Some boolean attributes are not treated correctly
+ if ( !div.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+ });
+
+ assert(function( div ) {
+
+ // Opera 10-12/IE8 - ^= $= *= and empty values
+ // Should not select anything
+ div.innerHTML = "<input type='hidden' i=''/>";
+ if ( div.querySelectorAll("[i^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":enabled").length ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ div.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.webkitMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( div ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( div, "div" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( div, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = new RegExp( rbuggyMatches.join("|") );
+
+ // Element contains another
+ // Purposefully does not implement inclusive descendent
+ // As in, an element does not contain itself
+ contains = isNative(docElem.contains) || docElem.compareDocumentPosition ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ // Document order sorting
+ sortOrder = docElem.compareDocumentPosition ?
+ function( a, b ) {
+ var compare;
+
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) {
+ if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) {
+ if ( a === doc || contains( preferredDoc, a ) ) {
+ return -1;
+ }
+ if ( b === doc || contains( preferredDoc, b ) ) {
+ return 1;
+ }
+ return 0;
+ }
+ return compare & 4 ? -1 : 1;
+ }
+
+ return a.compareDocumentPosition ? -1 : 1;
+ } :
+ function( a, b ) {
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+
+ // Parentless nodes are either documents or disconnected
+ } else if ( !aup || !bup ) {
+ return a === doc ? -1 :
+ b === doc ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ // Always assume the presence of duplicates if sort doesn't
+ // pass them to our comparison function (as in Google Chrome).
+ hasDuplicate = false;
+ [0, 0].sort( sortOrder );
+ support.detectDuplicates = hasDuplicate;
+
+ return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ // rbuggyQSA always contains :focus, so no need for an existence check
+ if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) {
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle( expr, document, null, [elem] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ var val;
+
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ if ( !documentIsXML ) {
+ name = name.toLowerCase();
+ }
+ if ( (val = Expr.attrHandle[ name ]) ) {
+ return val( elem );
+ }
+ if ( documentIsXML || support.attributes ) {
+ return elem.getAttribute( name );
+ }
+ return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ?
+ name :
+ val && val.specified ? val.value : null;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+// Document sorting and removing duplicates
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ i = 1,
+ j = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ for ( ; (elem = results[i]); i++ ) {
+ if ( elem === results[ i - 1 ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ return results;
+};
+
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE );
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+// Returns a function to use in pseudos for input types
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+// Returns a function to use in pseudos for buttons
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+// Returns a function to use in pseudos for positionals
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ for ( ; (node = elem[i]); i++ ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (see #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[5] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[4] ) {
+ match[2] = match[4];
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeName ) {
+ if ( nodeName === "*" ) {
+ return function() { return true; };
+ }
+
+ nodeName = nodeName.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, outerCache, node, diff, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+ // Seek `elem` from a previously-cached index
+ outerCache = parent[ expando ] || (parent[ expando ] = {});
+ cache = outerCache[ type ] || [];
+ nodeIndex = cache[0] === dirruns && cache[1];
+ diff = cache[0] === dirruns && cache[2];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ // Use previously-cached element index if available
+ } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+ diff = cache[1];
+
+ // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ } else {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf.call( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifider
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsXML ?
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang") :
+ elem.lang) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": function( elem ) {
+ return elem.disabled === false;
+ },
+
+ "disabled": function( elem ) {
+ return elem.disabled === true;
+ },
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
+ // not comment, processing instructions, or others
+ // Thanks to Diego Perini for the nodeName shortcut
+ // Greater than "@" means alpha characters (specifically not starting with "#" or "?")
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+ // use getAttribute instead to test this case
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+function tokenize( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( tokens = [] );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push( {
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ } );
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push( {
+ value: matched,
+ type: type,
+ matches: match
+ } );
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+}
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ checkNonElements = base && dir === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var data, cache, outerCache,
+ dirkey = dirruns + " " + doneName;
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+ if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {
+ if ( (data = cache[1]) === true || data === cachedruns ) {
+ return data === true;
+ }
+ } else {
+ cache = outerCache[ dir ] = [ dirkey ];
+ cache[1] = matcher( elem, context, xml ) || cachedruns;
+ if ( cache[1] === true ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf.call( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ // A counter to specify which element is currently being matched
+ var matcherCachedRuns = 0,
+ bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, expandContext ) {
+ var elem, j, matcher,
+ setMatched = [],
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ outermost = expandContext != null,
+ contextBackup = outermostContext,
+ // We must always have either seed elements or context
+ elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
+
+ if ( outermost ) {
+ outermostContext = context !== document && context;
+ cachedruns = matcherCachedRuns;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
+ for ( ; (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context, xml ) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ cachedruns = ++matcherCachedRuns;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // Apply set filters to unmatched elements
+ matchedCount += i;
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !group ) {
+ group = tokenize( selector );
+ }
+ i = group.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( group[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+ }
+ return cached;
+};
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function select( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ match = tokenize( selector );
+
+ if ( !seed ) {
+ // Try to minimize operations if there is only one group
+ if ( match.length === 1 ) {
+
+ // Take a shortcut and set the context if the root selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ context.nodeType === 9 && !documentIsXML &&
+ Expr.relative[ tokens[1].type ] ) {
+
+ context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0];
+ if ( !context ) {
+ return results;
+ }
+
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && context.parentNode || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, slice.call( seed, 0 ) );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function
+ // Provide `match` to avoid retokenization if we modified the selector above
+ compile( selector, match )(
+ seed,
+ context,
+ documentIsXML,
+ results,
+ rsibling.test( selector )
+ );
+ return results;
+}
+
+// Deprecated
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Easy API for creating new setFilters
+function setFilters() {}
+Expr.filters = setFilters.prototype = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+// Initialize with the default document
+setDocument();
+
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.pseudos;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})( window );
+var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prev(?:Until|All))/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ rneedsContext = jQuery.expr.match.needsContext,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ var i, ret, self,
+ len = this.length;
+
+ if ( typeof selector !== "string" ) {
+ self = this;
+ return this.pushStack( jQuery( selector ).filter(function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ }) );
+ }
+
+ ret = [];
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, this[ i ], ret );
+ }
+
+ // Needed because $( selector, context ) becomes $( context ).find( selector )
+ ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+ ret.selector = ( this.selector ? this.selector + " " : "" ) + selector;
+ return ret;
+ },
+
+ has: function( target ) {
+ var i,
+ targets = jQuery( target, this ),
+ len = targets.length;
+
+ return this.filter(function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function( selector ) {
+ return this.pushStack( winnow(this, selector, false) );
+ },
+
+ filter: function( selector ) {
+ return this.pushStack( winnow(this, selector, true) );
+ },
+
+ is: function( selector ) {
+ return !!selector && (
+ typeof selector === "string" ?
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ rneedsContext.test( selector ) ?
+ jQuery( selector, this.context ).index( this[0] ) >= 0 :
+ jQuery.filter( selector, this ).length > 0 :
+ this.filter( selector ).length > 0 );
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ ret = [],
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( ; i < l; i++ ) {
+ cur = this[i];
+
+ while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+ ret.push( cur );
+ break;
+ }
+ cur = cur.parentNode;
+ }
+ }
+
+ return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return jQuery.inArray( this[0], jQuery( elem ) );
+ }
+
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ var set = typeof selector === "string" ?
+ jQuery( selector, context ) :
+ jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+ all = jQuery.merge( this.get(), set );
+
+ return this.pushStack( jQuery.unique(all) );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter(selector)
+ );
+ }
+});
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+function sibling( cur, dir ) {
+ do {
+ cur = cur[ dir ];
+ } while ( cur && cur.nodeType !== 1 );
+
+ return cur;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( name ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+ if ( this.length > 1 && rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret );
+ };
+});
+
+jQuery.extend({
+ filter: function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 ?
+ jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+ jQuery.find.matches(expr, elems);
+ },
+
+ dir: function( elem, dir, until ) {
+ var matched = [],
+ cur = elem[ dir ];
+
+ while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+ if ( cur.nodeType === 1 ) {
+ matched.push( cur );
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ sibling: function( n, elem ) {
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ r.push( n );
+ }
+ }
+
+ return r;
+ }
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+ // Can't pass null or undefined to indexOf in Firefox 4
+ // Set to 0 to skip string check
+ qualifier = qualifier || 0;
+
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ var retVal = !!qualifier.call( elem, i, elem );
+ return retVal === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem ) {
+ return ( elem === qualifier ) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem ) {
+ return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
+ });
+}
+function createSafeFragment( document ) {
+ var list = nodeNames.split( "|" ),
+ safeFrag = document.createDocumentFragment();
+
+ if ( safeFrag.createElement ) {
+ while ( list.length ) {
+ safeFrag.createElement(
+ list.pop()
+ );
+ }
+ }
+ return safeFrag;
+}
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
+ "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+ rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+ rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+ rtagName = /<([\w:]+)/,
+ rtbody = /<tbody/i,
+ rhtml = /<|&#?\w+;/,
+ rnoInnerhtml = /<(?:script|style|link)/i,
+ manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
+ // checked="checked" or checked
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+ rscriptType = /^$|\/(?:java|ecma)script/i,
+ rscriptTypeMasked = /^true\/(.*)/,
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
+
+ // We have to close these tags to support XHTML (#13200)
+ wrapMap = {
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
+ area: [ 1, "<map>", "</map>" ],
+ param: [ 1, "<object>", "</object>" ],
+ thead: [ 1, "<table>", "</table>" ],
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+ // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
+ // unless wrapped in a div with non-breaking characters in front of it.
+ _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
+ },
+ safeFragment = createSafeFragment( document ),
+ fragmentDiv = safeFragment.appendChild( document.createElement("div") );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+jQuery.fn.extend({
+ text: function( value ) {
+ return jQuery.access( this, function( value ) {
+ return value === undefined ?
+ jQuery.text( this ) :
+ this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
+ }, null, value, arguments.length );
+ },
+
+ wrapAll: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapAll( html.call(this, i) );
+ });
+ }
+
+ if ( this[0] ) {
+ // The elements to wrap the target around
+ var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+ if ( this[0].parentNode ) {
+ wrap.insertBefore( this[0] );
+ }
+
+ wrap.map(function() {
+ var elem = this;
+
+ while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+ elem = elem.firstChild;
+ }
+
+ return elem;
+ }).append( this );
+ }
+
+ return this;
+ },
+
+ wrapInner: function( html ) {
+ if ( jQuery.isFunction( html ) ) {
+ return this.each(function(i) {
+ jQuery(this).wrapInner( html.call(this, i) );
+ });
+ }
+
+ return this.each(function() {
+ var self = jQuery( this ),
+ contents = self.contents();
+
+ if ( contents.length ) {
+ contents.wrapAll( html );
+
+ } else {
+ self.append( html );
+ }
+ });
+ },
+
+ wrap: function( html ) {
+ var isFunction = jQuery.isFunction( html );
+
+ return this.each(function(i) {
+ jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+ });
+ },
+
+ unwrap: function() {
+ return this.parent().each(function() {
+ if ( !jQuery.nodeName( this, "body" ) ) {
+ jQuery( this ).replaceWith( this.childNodes );
+ }
+ }).end();
+ },
+
+ append: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ this.appendChild( elem );
+ }
+ });
+ },
+
+ prepend: function() {
+ return this.domManip(arguments, true, function( elem ) {
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+ this.insertBefore( elem, this.firstChild );
+ }
+ });
+ },
+
+ before: function() {
+ return this.domManip( arguments, false, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this );
+ }
+ });
+ },
+
+ after: function() {
+ return this.domManip( arguments, false, function( elem ) {
+ if ( this.parentNode ) {
+ this.parentNode.insertBefore( elem, this.nextSibling );
+ }
+ });
+ },
+
+ // keepData is for internal use only--do not document
+ remove: function( selector, keepData ) {
+ var elem,
+ i = 0;
+
+ for ( ; (elem = this[i]) != null; i++ ) {
+ if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) {
+ if ( !keepData && elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem ) );
+ }
+
+ if ( elem.parentNode ) {
+ if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
+ setGlobalEval( getAll( elem, "script" ) );
+ }
+ elem.parentNode.removeChild( elem );
+ }
+ }
+ }
+
+ return this;
+ },
+
+ empty: function() {
+ var elem,
+ i = 0;
+
+ for ( ; (elem = this[i]) != null; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ }
+
+ // Remove any remaining nodes
+ while ( elem.firstChild ) {
+ elem.removeChild( elem.firstChild );
+ }
+
+ // If this is a select, ensure that it displays empty (#12336)
+ // Support: IE<9
+ if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
+ elem.options.length = 0;
+ }
+ }
+
+ return this;
+ },
+
+ clone: function( dataAndEvents, deepDataAndEvents ) {
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+ return this.map( function () {
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+ });
+ },
+
+ html: function( value ) {
+ return jQuery.access( this, function( value ) {
+ var elem = this[0] || {},
+ i = 0,
+ l = this.length;
+
+ if ( value === undefined ) {
+ return elem.nodeType === 1 ?
+ elem.innerHTML.replace( rinlinejQuery, "" ) :
+ undefined;
+ }
+
+ // See if we can take a shortcut and just use innerHTML
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+ ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&
+ ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+ !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
+
+ value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+ try {
+ for (; i < l; i++ ) {
+ // Remove element nodes and prevent memory leaks
+ elem = this[i] || {};
+ if ( elem.nodeType === 1 ) {
+ jQuery.cleanData( getAll( elem, false ) );
+ elem.innerHTML = value;
+ }
+ }
+
+ elem = 0;
+
+ // If using innerHTML throws an exception, use the fallback method
+ } catch(e) {}
+ }
+
+ if ( elem ) {
+ this.empty().append( value );
+ }
+ }, null, value, arguments.length );
+ },
+
+ replaceWith: function( value ) {
+ var isFunc = jQuery.isFunction( value );
+
+ // Make sure that the elements are removed from the DOM before they are inserted
+ // this can help fix replacing a parent with child elements
+ if ( !isFunc && typeof value !== "string" ) {
+ value = jQuery( value ).not( this ).detach();
+ }
+
+ return this.domManip( [ value ], true, function( elem ) {
+ var next = this.nextSibling,
+ parent = this.parentNode;
+
+ if ( parent ) {
+ jQuery( this ).remove();
+ parent.insertBefore( elem, next );
+ }
+ });
+ },
+
+ detach: function( selector ) {
+ return this.remove( selector, true );
+ },
+
+ domManip: function( args, table, callback ) {
+
+ // Flatten any nested arrays
+ args = core_concat.apply( [], args );
+
+ var first, node, hasScripts,
+ scripts, doc, fragment,
+ i = 0,
+ l = this.length,
+ set = this,
+ iNoClone = l - 1,
+ value = args[0],
+ isFunction = jQuery.isFunction( value );
+
+ // We can't cloneNode fragments that contain checked, in WebKit
+ if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
+ return this.each(function( index ) {
+ var self = set.eq( index );
+ if ( isFunction ) {
+ args[0] = value.call( this, index, table ? self.html() : undefined );
+ }
+ self.domManip( args, table, callback );
+ });
+ }
+
+ if ( l ) {
+ fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
+ first = fragment.firstChild;
+
+ if ( fragment.childNodes.length === 1 ) {
+ fragment = first;
+ }
+
+ if ( first ) {
+ table = table && jQuery.nodeName( first, "tr" );
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+ hasScripts = scripts.length;
+
+ // Use the original fragment for the last item instead of the first because it can end up
+ // being emptied incorrectly in certain situations (#8070).
+ for ( ; i < l; i++ ) {
+ node = fragment;
+
+ if ( i !== iNoClone ) {
+ node = jQuery.clone( node, true, true );
+
+ // Keep references to cloned scripts for later restoration
+ if ( hasScripts ) {
+ jQuery.merge( scripts, getAll( node, "script" ) );
+ }
+ }
+
+ callback.call(
+ table && jQuery.nodeName( this[i], "table" ) ?
+ findOrAppend( this[i], "tbody" ) :
+ this[i],
+ node,
+ i
+ );
+ }
+
+ if ( hasScripts ) {
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+ // Reenable scripts
+ jQuery.map( scripts, restoreScript );
+
+ // Evaluate executable scripts on first document insertion
+ for ( i = 0; i < hasScripts; i++ ) {
+ node = scripts[ i ];
+ if ( rscriptType.test( node.type || "" ) &&
+ !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
+
+ if ( node.src ) {
+ // Hope ajax is available...
+ jQuery.ajax({
+ url: node.src,
+ type: "GET",
+ dataType: "script",
+ async: false,
+ global: false,
+ "throws": true
+ });
+ } else {
+ jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
+ }
+ }
+ }
+ }
+
+ // Fix #11809: Avoid leaking memory
+ fragment = first = null;
+ }
+ }
+
+ return this;
+ }
+});
+
+function findOrAppend( elem, tag ) {
+ return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+ var attr = elem.getAttributeNode("type");
+ elem.type = ( attr && attr.specified ) + "/" + elem.type;
+ return elem;
+}
+function restoreScript( elem ) {
+ var match = rscriptTypeMasked.exec( elem.type );
+ if ( match ) {
+ elem.type = match[1];
+ } else {
+ elem.removeAttribute("type");
+ }
+ return elem;
+}
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+ var elem,
+ i = 0;
+ for ( ; (elem = elems[i]) != null; i++ ) {
+ jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
+ }
+}
+
+function cloneCopyEvent( src, dest ) {
+
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+ return;
+ }
+
+ var type, i, l,
+ oldData = jQuery._data( src ),
+ curData = jQuery._data( dest, oldData ),
+ events = oldData.events;
+
+ if ( events ) {
+ delete curData.handle;
+ curData.events = {};
+
+ for ( type in events ) {
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+ jQuery.event.add( dest, type, events[ type ][ i ] );
+ }
+ }
+ }
+
+ // make the cloned public data object a copy from the original
+ if ( curData.data ) {
+ curData.data = jQuery.extend( {}, curData.data );
+ }
+}
+
+function fixCloneNodeIssues( src, dest ) {
+ var nodeName, e, data;
+
+ // We do not need to do anything for non-Elements
+ if ( dest.nodeType !== 1 ) {
+ return;
+ }
+
+ nodeName = dest.nodeName.toLowerCase();
+
+ // IE6-8 copies events bound via attachEvent when using cloneNode.
+ if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
+ data = jQuery._data( dest );
+
+ for ( e in data.events ) {
+ jQuery.removeEvent( dest, e, data.handle );
+ }
+
+ // Event data gets referenced instead of copied if the expando gets copied too
+ dest.removeAttribute( jQuery.expando );
+ }
+
+ // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
+ if ( nodeName === "script" && dest.text !== src.text ) {
+ disableScript( dest ).text = src.text;
+ restoreScript( dest );
+
+ // IE6-10 improperly clones children of object elements using classid.
+ // IE10 throws NoModificationAllowedError if parent is null, #12132.
+ } else if ( nodeName === "object" ) {
+ if ( dest.parentNode ) {
+ dest.outerHTML = src.outerHTML;
+ }
+
+ // This path appears unavoidable for IE9. When cloning an object
+ // element in IE9, the outerHTML strategy above is not sufficient.
+ // If the src has innerHTML and the destination does not,
+ // copy the src.innerHTML into the dest.innerHTML. #10324
+ if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
+ dest.innerHTML = src.innerHTML;
+ }
+
+ } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
+ // IE6-8 fails to persist the checked state of a cloned checkbox
+ // or radio button. Worse, IE6-7 fail to give the cloned element
+ // a checked appearance if the defaultChecked value isn't also set
+
+ dest.defaultChecked = dest.checked = src.checked;
+
+ // IE6-7 get confused and end up setting the value of a cloned
+ // checkbox/radio button to an empty string instead of "on"
+ if ( dest.value !== src.value ) {
+ dest.value = src.value;
+ }
+
+ // IE6-8 fails to return the selected option to the default selected
+ // state when cloning options
+ } else if ( nodeName === "option" ) {
+ dest.defaultSelected = dest.selected = src.defaultSelected;
+
+ // IE6-8 fails to set the defaultValue to the correct value when
+ // cloning other types of input fields
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
+ dest.defaultValue = src.defaultValue;
+ }
+}
+
+jQuery.each({
+ appendTo: "append",
+ prependTo: "prepend",
+ insertBefore: "before",
+ insertAfter: "after",
+ replaceAll: "replaceWith"
+}, function( name, original ) {
+ jQuery.fn[ name ] = function( selector ) {
+ var elems,
+ i = 0,
+ ret = [],
+ insert = jQuery( selector ),
+ last = insert.length - 1;
+
+ for ( ; i <= last; i++ ) {
+ elems = i === last ? this : this.clone(true);
+ jQuery( insert[i] )[ original ]( elems );
+
+ // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
+ core_push.apply( ret, elems.get() );
+ }
+
+ return this.pushStack( ret );
+ };
+});
+
+function getAll( context, tag ) {
+ var elems, elem,
+ i = 0,
+ found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
+ typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
+ undefined;
+
+ if ( !found ) {
+ for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
+ if ( !tag || jQuery.nodeName( elem, tag ) ) {
+ found.push( elem );
+ } else {
+ jQuery.merge( found, getAll( elem, tag ) );
+ }
+ }
+ }
+
+ return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+ jQuery.merge( [ context ], found ) :
+ found;
+}
+
+// Used in buildFragment, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+ if ( manipulation_rcheckableType.test( elem.type ) ) {
+ elem.defaultChecked = elem.checked;
+ }
+}
+
+jQuery.extend({
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+ var destElements, node, clone, i, srcElements,
+ inPage = jQuery.contains( elem.ownerDocument, elem );
+
+ if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
+ clone = elem.cloneNode( true );
+
+ // IE<=8 does not properly clone detached, unknown element nodes
+ } else {
+ fragmentDiv.innerHTML = elem.outerHTML;
+ fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
+ }
+
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+
+ // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+ destElements = getAll( clone );
+ srcElements = getAll( elem );
+
+ // Fix all IE cloning issues
+ for ( i = 0; (node = srcElements[i]) != null; ++i ) {
+ // Ensure that the destination node is not null; Fixes #9587
+ if ( destElements[i] ) {
+ fixCloneNodeIssues( node, destElements[i] );
+ }
+ }
+ }
+
+ // Copy the events from the original to the clone
+ if ( dataAndEvents ) {
+ if ( deepDataAndEvents ) {
+ srcElements = srcElements || getAll( elem );
+ destElements = destElements || getAll( clone );
+
+ for ( i = 0; (node = srcElements[i]) != null; i++ ) {
+ cloneCopyEvent( node, destElements[i] );
+ }
+ } else {
+ cloneCopyEvent( elem, clone );
+ }
+ }
+
+ // Preserve script evaluation history
+ destElements = getAll( clone, "script" );
+ if ( destElements.length > 0 ) {
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+ }
+
+ destElements = srcElements = node = null;
+
+ // Return the cloned set
+ return clone;
+ },
+
+ buildFragment: function( elems, context, scripts, selection ) {
+ var j, elem, contains,
+ tmp, tag, tbody, wrap,
+ l = elems.length,
+
+ // Ensure a safe fragment
+ safe = createSafeFragment( context ),
+
+ nodes = [],
+ i = 0;
+
+ for ( ; i < l; i++ ) {
+ elem = elems[ i ];
+
+ if ( elem || elem === 0 ) {
+
+ // Add nodes directly
+ if ( jQuery.type( elem ) === "object" ) {
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+ // Convert non-html into a text node
+ } else if ( !rhtml.test( elem ) ) {
+ nodes.push( context.createTextNode( elem ) );
+
+ // Convert html into DOM nodes
+ } else {
+ tmp = tmp || safe.appendChild( context.createElement("div") );
+
+ // Deserialize a standard representation
+ tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
+ wrap = wrapMap[ tag ] || wrapMap._default;
+
+ tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
+
+ // Descend through wrappers to the right content
+ j = wrap[0];
+ while ( j-- ) {
+ tmp = tmp.lastChild;
+ }
+
+ // Manually add leading whitespace removed by IE
+ if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+ nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
+ }
+
+ // Remove IE's autoinserted <tbody> from table fragments
+ if ( !jQuery.support.tbody ) {
+
+ // String was a <table>, *may* have spurious <tbody>
+ elem = tag === "table" && !rtbody.test( elem ) ?
+ tmp.firstChild :
+
+ // String was a bare <thead> or <tfoot>
+ wrap[1] === "<table>" && !rtbody.test( elem ) ?
+ tmp :
+ 0;
+
+ j = elem && elem.childNodes.length;
+ while ( j-- ) {
+ if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
+ elem.removeChild( tbody );
+ }
+ }
+ }
+
+ jQuery.merge( nodes, tmp.childNodes );
+
+ // Fix #12392 for WebKit and IE > 9
+ tmp.textContent = "";
+
+ // Fix #12392 for oldIE
+ while ( tmp.firstChild ) {
+ tmp.removeChild( tmp.firstChild );
+ }
+
+ // Remember the top-level container for proper cleanup
+ tmp = safe.lastChild;
+ }
+ }
+ }
+
+ // Fix #11356: Clear elements from fragment
+ if ( tmp ) {
+ safe.removeChild( tmp );
+ }
+
+ // Reset defaultChecked for any radios and checkboxes
+ // about to be appended to the DOM in IE 6/7 (#8060)
+ if ( !jQuery.support.appendChecked ) {
+ jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
+ }
+
+ i = 0;
+ while ( (elem = nodes[ i++ ]) ) {
+
+ // #4087 - If origin and destination elements are the same, and this is
+ // that element, do not do anything
+ if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
+ continue;
+ }
+
+ contains = jQuery.contains( elem.ownerDocument, elem );
+
+ // Append to fragment
+ tmp = getAll( safe.appendChild( elem ), "script" );
+
+ // Preserve script evaluation history
+ if ( contains ) {
+ setGlobalEval( tmp );
+ }
+
+ // Capture executables
+ if ( scripts ) {
+ j = 0;
+ while ( (elem = tmp[ j++ ]) ) {
+ if ( rscriptType.test( elem.type || "" ) ) {
+ scripts.push( elem );
+ }
+ }
+ }
+ }
+
+ tmp = null;
+
+ return safe;
+ },
+
+ cleanData: function( elems, /* internal */ acceptData ) {
+ var elem, type, id, data,
+ i = 0,
+ internalKey = jQuery.expando,
+ cache = jQuery.cache,
+ deleteExpando = jQuery.support.deleteExpando,
+ special = jQuery.event.special;
+
+ for ( ; (elem = elems[i]) != null; i++ ) {
+
+ if ( acceptData || jQuery.acceptData( elem ) ) {
+
+ id = elem[ internalKey ];
+ data = id && cache[ id ];
+
+ if ( data ) {
+ if ( data.events ) {
+ for ( type in data.events ) {
+ if ( special[ type ] ) {
+ jQuery.event.remove( elem, type );
+
+ // This is a shortcut to avoid jQuery.event.remove's overhead
+ } else {
+ jQuery.removeEvent( elem, type, data.handle );
+ }
+ }
+ }
+
+ // Remove cache only if it was not already removed by jQuery.event.remove
+ if ( cache[ id ] ) {
+
+ delete cache[ id ];
+
+ // IE does not allow us to delete expando properties from nodes,
+ // nor does it have a removeAttribute function on Document nodes;
+ // we must handle all of these cases
+ if ( deleteExpando ) {
+ delete elem[ internalKey ];
+
+ } else if ( typeof elem.removeAttribute !== core_strundefined ) {
+ elem.removeAttribute( internalKey );
+
+ } else {
+ elem[ internalKey ] = null;
+ }
+
+ core_deletedIds.push( id );
+ }
+ }
+ }
+ }
+ }
+});
+var iframe, getStyles, curCSS,
+ ralpha = /alpha\([^)]*\)/i,
+ ropacity = /opacity\s*=\s*([^)]*)/,
+ rposition = /^(top|right|bottom|left)$/,
+ // swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
+ // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+ rmargin = /^margin/,
+ rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
+ rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
+ rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
+ elemdisplay = { BODY: "block" },
+
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+ cssNormalTransform = {
+ letterSpacing: 0,
+ fontWeight: 400
+ },
+
+ cssExpand = [ "Top", "Right", "Bottom", "Left" ],
+ cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
+
+// return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( style, name ) {
+
+ // shortcut for names that are not vendor prefixed
+ if ( name in style ) {
+ return name;
+ }
+
+ // check for vendor prefixed names
+ var capName = name.charAt(0).toUpperCase() + name.slice(1),
+ origName = name,
+ i = cssPrefixes.length;
+
+ while ( i-- ) {
+ name = cssPrefixes[ i ] + capName;
+ if ( name in style ) {
+ return name;
+ }
+ }
+
+ return origName;
+}
+
+function isHidden( elem, el ) {
+ // isHidden might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+ return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
+}
+
+function showHide( elements, show ) {
+ var display, elem, hidden,
+ values = [],
+ index = 0,
+ length = elements.length;
+
+ for ( ; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+
+ values[ index ] = jQuery._data( elem, "olddisplay" );
+ display = elem.style.display;
+ if ( show ) {
+ // Reset the inline display of this element to learn if it is
+ // being hidden by cascaded rules or not
+ if ( !values[ index ] && display === "none" ) {
+ elem.style.display = "";
+ }
+
+ // Set elements which have been overridden with display: none
+ // in a stylesheet to whatever the default browser style is
+ // for such an element
+ if ( elem.style.display === "" && isHidden( elem ) ) {
+ values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
+ }
+ } else {
+
+ if ( !values[ index ] ) {
+ hidden = isHidden( elem );
+
+ if ( display && display !== "none" || !hidden ) {
+ jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
+ }
+ }
+ }
+ }
+
+ // Set the display of most of the elements in a second loop
+ // to avoid the constant reflow
+ for ( index = 0; index < length; index++ ) {
+ elem = elements[ index ];
+ if ( !elem.style ) {
+ continue;
+ }
+ if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+ elem.style.display = show ? values[ index ] || "" : "none";
+ }
+ }
+
+ return elements;
+}
+
+jQuery.fn.extend({
+ css: function( name, value ) {
+ return jQuery.access( this, function( elem, name, value ) {
+ var len, styles,
+ map = {},
+ i = 0;
+
+ if ( jQuery.isArray( name ) ) {
+ styles = getStyles( elem );
+ len = name.length;
+
+ for ( ; i < len; i++ ) {
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+ }
+
+ return map;
+ }
+
+ return value !== undefined ?
+ jQuery.style( elem, name, value ) :
+ jQuery.css( elem, name );
+ }, name, value, arguments.length > 1 );
+ },
+ show: function() {
+ return showHide( this, true );
+ },
+ hide: function() {
+ return showHide( this );
+ },
+ toggle: function( state ) {
+ var bool = typeof state === "boolean";
+
+ return this.each(function() {
+ if ( bool ? state : isHidden( this ) ) {
+ jQuery( this ).show();
+ } else {
+ jQuery( this ).hide();
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ // Add in style property hooks for overriding the default
+ // behavior of getting and setting a style property
+ cssHooks: {
+ opacity: {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ // We should always get a number back from opacity
+ var ret = curCSS( elem, "opacity" );
+ return ret === "" ? "1" : ret;
+ }
+ }
+ }
+ },
+
+ // Exclude the following css properties to add px
+ cssNumber: {
+ "columnCount": true,
+ "fillOpacity": true,
+ "fontWeight": true,
+ "lineHeight": true,
+ "opacity": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
+ },
+
+ // Add in properties whose names you wish to fix before
+ // setting or getting the value
+ cssProps: {
+ // normalize float css property
+ "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+ },
+
+ // Get and set the style property on a DOM Node
+ style: function( elem, name, value, extra ) {
+ // Don't set styles on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+ return;
+ }
+
+ // Make sure that we're working with the right name
+ var ret, type, hooks,
+ origName = jQuery.camelCase( name ),
+ style = elem.style;
+
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // Check if we're setting a value
+ if ( value !== undefined ) {
+ type = typeof value;
+
+ // convert relative number strings (+= or -=) to relative numbers. #7345
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+ value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
+ // Fixes bug #9237
+ type = "number";
+ }
+
+ // Make sure that NaN and null values aren't set. See: #7116
+ if ( value == null || type === "number" && isNaN( value ) ) {
+ return;
+ }
+
+ // If a number was passed in, add 'px' to the (except for certain CSS properties)
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+ value += "px";
+ }
+
+ // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
+ // but it would mean to define eight (for every problematic property) identical functions
+ if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
+ style[ name ] = "inherit";
+ }
+
+ // If a hook was provided, use that value, otherwise just set the specified value
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
+
+ // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+ // Fixes bug #5509
+ try {
+ style[ name ] = value;
+ } catch(e) {}
+ }
+
+ } else {
+ // If a hook was provided get the non-computed value from there
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+ return ret;
+ }
+
+ // Otherwise just get the value from the style object
+ return style[ name ];
+ }
+ },
+
+ css: function( elem, name, extra, styles ) {
+ var num, val, hooks,
+ origName = jQuery.camelCase( name );
+
+ // Make sure that we're working with the right name
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
+
+ // gets hook for the prefixed version
+ // followed by the unprefixed version
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+ // If a hook was provided get the computed value from there
+ if ( hooks && "get" in hooks ) {
+ val = hooks.get( elem, true, extra );
+ }
+
+ // Otherwise, if a way to get the computed value exists, use that
+ if ( val === undefined ) {
+ val = curCSS( elem, name, styles );
+ }
+
+ //convert "normal" to computed value
+ if ( val === "normal" && name in cssNormalTransform ) {
+ val = cssNormalTransform[ name ];
+ }
+
+ // Return, converting to number if forced or a qualifier was provided and val looks numeric
+ if ( extra === "" || extra ) {
+ num = parseFloat( val );
+ return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
+ }
+ return val;
+ },
+
+ // A method for quickly swapping in/out CSS properties to get correct calculations
+ swap: function( elem, options, callback, args ) {
+ var ret, name,
+ old = {};
+
+ // Remember the old values, and insert the new ones
+ for ( name in options ) {
+ old[ name ] = elem.style[ name ];
+ elem.style[ name ] = options[ name ];
+ }
+
+ ret = callback.apply( elem, args || [] );
+
+ // Revert the old values
+ for ( name in options ) {
+ elem.style[ name ] = old[ name ];
+ }
+
+ return ret;
+ }
+});
+
+// NOTE: we've included the "window" in window.getComputedStyle
+// because jsdom on node.js will break without it.
+if ( window.getComputedStyle ) {
+ getStyles = function( elem ) {
+ return window.getComputedStyle( elem, null );
+ };
+
+ curCSS = function( elem, name, _computed ) {
+ var width, minWidth, maxWidth,
+ computed = _computed || getStyles( elem ),
+
+ // getPropertyValue is only needed for .css('filter') in IE9, see #12537
+ ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
+ style = elem.style;
+
+ if ( computed ) {
+
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+ ret = jQuery.style( elem, name );
+ }
+
+ // A tribute to the "awesome hack by Dean Edwards"
+ // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
+ // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
+ // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+ if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+ // Remember the original values
+ width = style.width;
+ minWidth = style.minWidth;
+ maxWidth = style.maxWidth;
+
+ // Put in the new values to get a computed value out
+ style.minWidth = style.maxWidth = style.width = ret;
+ ret = computed.width;
+
+ // Revert the changed values
+ style.width = width;
+ style.minWidth = minWidth;
+ style.maxWidth = maxWidth;
+ }
+ }
+
+ return ret;
+ };
+} else if ( document.documentElement.currentStyle ) {
+ getStyles = function( elem ) {
+ return elem.currentStyle;
+ };
+
+ curCSS = function( elem, name, _computed ) {
+ var left, rs, rsLeft,
+ computed = _computed || getStyles( elem ),
+ ret = computed ? computed[ name ] : undefined,
+ style = elem.style;
+
+ // Avoid setting ret to empty string here
+ // so we don't default to auto
+ if ( ret == null && style && style[ name ] ) {
+ ret = style[ name ];
+ }
+
+ // From the awesome hack by Dean Edwards
+ // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+ // If we're not dealing with a regular pixel number
+ // but a number that has a weird ending, we need to convert it to pixels
+ // but not position css attributes, as those are proportional to the parent element instead
+ // and we can't measure the parent instead because it might trigger a "stacking dolls" problem
+ if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
+
+ // Remember the original values
+ left = style.left;
+ rs = elem.runtimeStyle;
+ rsLeft = rs && rs.left;
+
+ // Put in the new values to get a computed value out
+ if ( rsLeft ) {
+ rs.left = elem.currentStyle.left;
+ }
+ style.left = name === "fontSize" ? "1em" : ret;
+ ret = style.pixelLeft + "px";
+
+ // Revert the changed values
+ style.left = left;
+ if ( rsLeft ) {
+ rs.left = rsLeft;
+ }
+ }
+
+ return ret === "" ? "auto" : ret;
+ };
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+ var matches = rnumsplit.exec( value );
+ return matches ?
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
+ Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+ value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+ var i = extra === ( isBorderBox ? "border" : "content" ) ?
+ // If we already have the right measurement, avoid augmentation
+ 4 :
+ // Otherwise initialize for horizontal or vertical properties
+ name === "width" ? 1 : 0,
+
+ val = 0;
+
+ for ( ; i < 4; i += 2 ) {
+ // both box models exclude margin, so add it if we want it
+ if ( extra === "margin" ) {
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+ }
+
+ if ( isBorderBox ) {
+ // border-box includes padding, so remove it if we want content
+ if ( extra === "content" ) {
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+ }
+
+ // at this point, extra isn't border nor margin, so remove border
+ if ( extra !== "margin" ) {
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ } else {
+ // at this point, extra isn't content, so add padding
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+ // at this point, extra isn't content nor padding, so add border
+ if ( extra !== "padding" ) {
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+ }
+ }
+ }
+
+ return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+ // Start with offset property, which is equivalent to the border-box value
+ var valueIsBorderBox = true,
+ val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+ styles = getStyles( elem ),
+ isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+ // some non-html elements return undefined for offsetWidth, so check for null/undefined
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+ if ( val <= 0 || val == null ) {
+ // Fall back to computed then uncomputed css if necessary
+ val = curCSS( elem, name, styles );
+ if ( val < 0 || val == null ) {
+ val = elem.style[ name ];
+ }
+
+ // Computed unit is not pixels. Stop here and return.
+ if ( rnumnonpx.test(val) ) {
+ return val;
+ }
+
+ // we need the check for style in case a browser which returns unreliable values
+ // for getComputedStyle silently falls back to the reliable elem.style
+ valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
+
+ // Normalize "", auto, and prepare for extra
+ val = parseFloat( val ) || 0;
+ }
+
+ // use the active box-sizing model to add/subtract irrelevant styles
+ return ( val +
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra || ( isBorderBox ? "border" : "content" ),
+ valueIsBorderBox,
+ styles
+ )
+ ) + "px";
+}
+
+// Try to determine the default display value of an element
+function css_defaultDisplay( nodeName ) {
+ var doc = document,
+ display = elemdisplay[ nodeName ];
+
+ if ( !display ) {
+ display = actualDisplay( nodeName, doc );
+
+ // If the simple way fails, read from inside an iframe
+ if ( display === "none" || !display ) {
+ // Use the already-created iframe if possible
+ iframe = ( iframe ||
+ jQuery("<iframe frameborder='0' width='0' height='0'/>")
+ .css( "cssText", "display:block !important" )
+ ).appendTo( doc.documentElement );
+
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+ doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
+ doc.write("<!doctype html><html><body>");
+ doc.close();
+
+ display = actualDisplay( nodeName, doc );
+ iframe.detach();
+ }
+
+ // Store the correct default display
+ elemdisplay[ nodeName ] = display;
+ }
+
+ return display;
+}
+
+// Called ONLY from within css_defaultDisplay
+function actualDisplay( name, doc ) {
+ var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+ display = jQuery.css( elem[0], "display" );
+ elem.remove();
+ return display;
+}
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+ jQuery.cssHooks[ name ] = {
+ get: function( elem, computed, extra ) {
+ if ( computed ) {
+ // certain elements can have dimension info if we invisibly show them
+ // however, it must have a current display style that would benefit from this
+ return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
+ jQuery.swap( elem, cssShow, function() {
+ return getWidthOrHeight( elem, name, extra );
+ }) :
+ getWidthOrHeight( elem, name, extra );
+ }
+ },
+
+ set: function( elem, value, extra ) {
+ var styles = extra && getStyles( elem );
+ return setPositiveNumber( elem, value, extra ?
+ augmentWidthOrHeight(
+ elem,
+ name,
+ extra,
+ jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+ styles
+ ) : 0
+ );
+ }
+ };
+});
+
+if ( !jQuery.support.opacity ) {
+ jQuery.cssHooks.opacity = {
+ get: function( elem, computed ) {
+ // IE uses filters for opacity
+ return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+ ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+ computed ? "1" : "";
+ },
+
+ set: function( elem, value ) {
+ var style = elem.style,
+ currentStyle = elem.currentStyle,
+ opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+ filter = currentStyle && currentStyle.filter || style.filter || "";
+
+ // IE has trouble with opacity if it does not have layout
+ // Force it by setting the zoom level
+ style.zoom = 1;
+
+ // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+ // if value === "", then remove inline opacity #12685
+ if ( ( value >= 1 || value === "" ) &&
+ jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
+ style.removeAttribute ) {
+
+ // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+ // if "filter:" is present at all, clearType is disabled, we want to avoid this
+ // style.removeAttribute is IE Only, but so apparently is this code path...
+ style.removeAttribute( "filter" );
+
+ // if there is no filter style applied in a css rule or unset inline opacity, we are done
+ if ( value === "" || currentStyle && !currentStyle.filter ) {
+ return;
+ }
+ }
+
+ // otherwise, set new filter values
+ style.filter = ralpha.test( filter ) ?
+ filter.replace( ralpha, opacity ) :
+ filter + " " + opacity;
+ }
+ };
+}
+
+// These hooks cannot be added until DOM ready because the support test
+// for it is not run until after DOM ready
+jQuery(function() {
+ if ( !jQuery.support.reliableMarginRight ) {
+ jQuery.cssHooks.marginRight = {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ // Work around by temporarily setting element display to inline-block
+ return jQuery.swap( elem, { "display": "inline-block" },
+ curCSS, [ elem, "marginRight" ] );
+ }
+ }
+ };
+ }
+
+ // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+ // getComputedStyle returns percent when specified for top/left/bottom/right
+ // rather than make the css module depend on the offset module, we just check for it here
+ if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
+ jQuery.each( [ "top", "left" ], function( i, prop ) {
+ jQuery.cssHooks[ prop ] = {
+ get: function( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+ // if curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
+ }
+ }
+ };
+ });
+ }
+
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.hidden = function( elem ) {
+ // Support: Opera <= 12.12
+ // Opera reports offsetWidths and offsetHeights less than zero on some elements
+ return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
+ (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+ };
+
+ jQuery.expr.filters.visible = function( elem ) {
+ return !jQuery.expr.filters.hidden( elem );
+ };
+}
+
+// These hooks are used by animate to expand properties
+jQuery.each({
+ margin: "",
+ padding: "",
+ border: "Width"
+}, function( prefix, suffix ) {
+ jQuery.cssHooks[ prefix + suffix ] = {
+ expand: function( value ) {
+ var i = 0,
+ expanded = {},
+
+ // assumes a single number if not a string
+ parts = typeof value === "string" ? value.split(" ") : [ value ];
+
+ for ( ; i < 4; i++ ) {
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+ }
+
+ return expanded;
+ }
+ };
+
+ if ( !rmargin.test( prefix ) ) {
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+ }
+});
+var r20 = /%20/g,
+ rbracket = /\[\]$/,
+ rCRLF = /\r?\n/g,
+ rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+ rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+jQuery.fn.extend({
+ serialize: function() {
+ return jQuery.param( this.serializeArray() );
+ },
+ serializeArray: function() {
+ return this.map(function(){
+ // Can add propHook for "elements" to filter or add form elements
+ var elements = jQuery.prop( this, "elements" );
+ return elements ? jQuery.makeArray( elements ) : this;
+ })
+ .filter(function(){
+ var type = this.type;
+ // Use .is(":disabled") so that fieldset[disabled] works
+ return this.name && !jQuery( this ).is( ":disabled" ) &&
+ rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+ ( this.checked || !manipulation_rcheckableType.test( type ) );
+ })
+ .map(function( i, elem ){
+ var val = jQuery( this ).val();
+
+ return val == null ?
+ null :
+ jQuery.isArray( val ) ?
+ jQuery.map( val, function( val ){
+ return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }) :
+ { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+ }).get();
+ }
+});
+
+//Serialize an array of form elements or a set of
+//key/values into a query string
+jQuery.param = function( a, traditional ) {
+ var prefix,
+ s = [],
+ add = function( key, value ) {
+ // If value is a function, invoke it and return its value
+ value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+ s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+ };
+
+ // Set traditional to true for jQuery <= 1.3.2 behavior.
+ if ( traditional === undefined ) {
+ traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+ }
+
+ // If an array was passed in, assume that it is an array of form elements.
+ if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+ // Serialize the form elements
+ jQuery.each( a, function() {
+ add( this.name, this.value );
+ });
+
+ } else {
+ // If traditional, encode the "old" way (the way 1.3.2 or older
+ // did it), otherwise encode params recursively.
+ for ( prefix in a ) {
+ buildParams( prefix, a[ prefix ], traditional, add );
+ }
+ }
+
+ // Return the resulting serialization
+ return s.join( "&" ).replace( r20, "+" );
+};
+
+function buildParams( prefix, obj, traditional, add ) {
+ var name;
+
+ if ( jQuery.isArray( obj ) ) {
+ // Serialize array item.
+ jQuery.each( obj, function( i, v ) {
+ if ( traditional || rbracket.test( prefix ) ) {
+ // Treat each array item as a scalar.
+ add( prefix, v );
+
+ } else {
+ // Item is non-scalar (array or object), encode its numeric index.
+ buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+ }
+ });
+
+ } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+ // Serialize object item.
+ for ( name in obj ) {
+ buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+ }
+
+ } else {
+ // Serialize scalar item.
+ add( prefix, obj );
+ }
+}
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+ "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
+
+ // Handle event binding
+ jQuery.fn[ name ] = function( data, fn ) {
+ return arguments.length > 0 ?
+ this.on( name, null, data, fn ) :
+ this.trigger( name );
+ };
+});
+
+jQuery.fn.hover = function( fnOver, fnOut ) {
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+};
+var
+ // Document location
+ ajaxLocParts,
+ ajaxLocation,
+ ajax_nonce = jQuery.now(),
+
+ ajax_rquery = /\?/,
+ rhash = /#.*$/,
+ rts = /([?&])_=[^&]*/,
+ rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+ // #7653, #8125, #8152: local protocol detection
+ rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+ rnoContent = /^(?:GET|HEAD)$/,
+ rprotocol = /^\/\//,
+ rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
+
+ // Keep a copy of the old load method
+ _load = jQuery.fn.load,
+
+ /* Prefilters
+ * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+ * 2) These are called:
+ * - BEFORE asking for a transport
+ * - AFTER param serialization (s.data is a string if s.processData is true)
+ * 3) key is the dataType
+ * 4) the catchall symbol "*" can be used
+ * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+ */
+ prefilters = {},
+
+ /* Transports bindings
+ * 1) key is the dataType
+ * 2) the catchall symbol "*" can be used
+ * 3) selection will start with transport dataType and THEN go to "*" if needed
+ */
+ transports = {},
+
+ // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+ allTypes = "*/".concat("*");
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+ ajaxLocation = location.href;
+} catch( e ) {
+ // Use the href attribute of an A element
+ // since IE will modify it given document.location
+ ajaxLocation = document.createElement( "a" );
+ ajaxLocation.href = "";
+ ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+ // dataTypeExpression is optional and defaults to "*"
+ return function( dataTypeExpression, func ) {
+
+ if ( typeof dataTypeExpression !== "string" ) {
+ func = dataTypeExpression;
+ dataTypeExpression = "*";
+ }
+
+ var dataType,
+ i = 0,
+ dataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];
+
+ if ( jQuery.isFunction( func ) ) {
+ // For each dataType in the dataTypeExpression
+ while ( (dataType = dataTypes[i++]) ) {
+ // Prepend if requested
+ if ( dataType[0] === "+" ) {
+ dataType = dataType.slice( 1 ) || "*";
+ (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
+
+ // Otherwise append
+ } else {
+ (structure[ dataType ] = structure[ dataType ] || []).push( func );
+ }
+ }
+ }
+ };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+ var inspected = {},
+ seekingTransport = ( structure === transports );
+
+ function inspect( dataType ) {
+ var selected;
+ inspected[ dataType ] = true;
+ jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+ var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+ if( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+ options.dataTypes.unshift( dataTypeOrTransport );
+ inspect( dataTypeOrTransport );
+ return false;
+ } else if ( seekingTransport ) {
+ return !( selected = dataTypeOrTransport );
+ }
+ });
+ return selected;
+ }
+
+ return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+ var deep, key,
+ flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+ for ( key in src ) {
+ if ( src[ key ] !== undefined ) {
+ ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
+ }
+ }
+ if ( deep ) {
+ jQuery.extend( true, target, deep );
+ }
+
+ return target;
+}
+
+jQuery.fn.load = function( url, params, callback ) {
+ if ( typeof url !== "string" && _load ) {
+ return _load.apply( this, arguments );
+ }
+
+ var selector, response, type,
+ self = this,
+ off = url.indexOf(" ");
+
+ if ( off >= 0 ) {
+ selector = url.slice( off, url.length );
+ url = url.slice( 0, off );
+ }
+
+ // If it's a function
+ if ( jQuery.isFunction( params ) ) {
+
+ // We assume that it's the callback
+ callback = params;
+ params = undefined;
+
+ // Otherwise, build a param string
+ } else if ( params && typeof params === "object" ) {
+ type = "POST";
+ }
+
+ // If we have elements to modify, make the request
+ if ( self.length > 0 ) {
+ jQuery.ajax({
+ url: url,
+
+ // if "type" variable is undefined, then "GET" method will be used
+ type: type,
+ dataType: "html",
+ data: params
+ }).done(function( responseText ) {
+
+ // Save response for use in complete callback
+ response = arguments;
+
+ self.html( selector ?
+
+ // If a selector was specified, locate the right elements in a dummy div
+ // Exclude scripts to avoid IE 'Permission Denied' errors
+ jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+ // Otherwise use the full result
+ responseText );
+
+ }).complete( callback && function( jqXHR, status ) {
+ self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+ });
+ }
+
+ return this;
+};
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
+ jQuery.fn[ type ] = function( fn ){
+ return this.on( type, fn );
+ };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
+ // shift arguments if data argument was omitted
+ if ( jQuery.isFunction( data ) ) {
+ type = type || callback;
+ callback = data;
+ data = undefined;
+ }
+
+ return jQuery.ajax({
+ url: url,
+ type: method,
+ dataType: type,
+ data: data,
+ success: callback
+ });
+ };
+});
+
+jQuery.extend({
+
+ // Counter for holding the number of active queries
+ active: 0,
+
+ // Last-Modified header cache for next request
+ lastModified: {},
+ etag: {},
+
+ ajaxSettings: {
+ url: ajaxLocation,
+ type: "GET",
+ isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+ global: true,
+ processData: true,
+ async: true,
+ contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+ /*
+ timeout: 0,
+ data: null,
+ dataType: null,
+ username: null,
+ password: null,
+ cache: null,
+ throws: false,
+ traditional: false,
+ headers: {},
+ */
+
+ accepts: {
+ "*": allTypes,
+ text: "text/plain",
+ html: "text/html",
+ xml: "application/xml, text/xml",
+ json: "application/json, text/javascript"
+ },
+
+ contents: {
+ xml: /xml/,
+ html: /html/,
+ json: /json/
+ },
+
+ responseFields: {
+ xml: "responseXML",
+ text: "responseText"
+ },
+
+ // Data converters
+ // Keys separate source (or catchall "*") and destination types with a single space
+ converters: {
+
+ // Convert anything to text
+ "* text": window.String,
+
+ // Text to html (true = no transformation)
+ "text html": true,
+
+ // Evaluate text as a json expression
+ "text json": jQuery.parseJSON,
+
+ // Parse text as xml
+ "text xml": jQuery.parseXML
+ },
+
+ // For options that shouldn't be deep extended:
+ // you can add your own custom options here if
+ // and when you create one that shouldn't be
+ // deep extended (see ajaxExtend)
+ flatOptions: {
+ url: true,
+ context: true
+ }
+ },
+
+ // Creates a full fledged settings object into target
+ // with both ajaxSettings and settings fields.
+ // If target is omitted, writes into ajaxSettings.
+ ajaxSetup: function( target, settings ) {
+ return settings ?
+
+ // Building a settings object
+ ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+ // Extending ajaxSettings
+ ajaxExtend( jQuery.ajaxSettings, target );
+ },
+
+ ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+ ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+ // Main method
+ ajax: function( url, options ) {
+
+ // If url is an object, simulate pre-1.5 signature
+ if ( typeof url === "object" ) {
+ options = url;
+ url = undefined;
+ }
+
+ // Force options to be an object
+ options = options || {};
+
+ var // Cross-domain detection vars
+ parts,
+ // Loop variable
+ i,
+ // URL without anti-cache param
+ cacheURL,
+ // Response headers as string
+ responseHeadersString,
+ // timeout handle
+ timeoutTimer,
+
+ // To know if global events are to be dispatched
+ fireGlobals,
+
+ transport,
+ // Response headers
+ responseHeaders,
+ // Create the final options object
+ s = jQuery.ajaxSetup( {}, options ),
+ // Callbacks context
+ callbackContext = s.context || s,
+ // Context for global events is callbackContext if it is a DOM node or jQuery collection
+ globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
+ jQuery( callbackContext ) :
+ jQuery.event,
+ // Deferreds
+ deferred = jQuery.Deferred(),
+ completeDeferred = jQuery.Callbacks("once memory"),
+ // Status-dependent callbacks
+ statusCode = s.statusCode || {},
+ // Headers (they are sent all at once)
+ requestHeaders = {},
+ requestHeadersNames = {},
+ // The jqXHR state
+ state = 0,
+ // Default abort message
+ strAbort = "canceled",
+ // Fake xhr
+ jqXHR = {
+ readyState: 0,
+
+ // Builds headers hashtable if needed
+ getResponseHeader: function( key ) {
+ var match;
+ if ( state === 2 ) {
+ if ( !responseHeaders ) {
+ responseHeaders = {};
+ while ( (match = rheaders.exec( responseHeadersString )) ) {
+ responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+ }
+ }
+ match = responseHeaders[ key.toLowerCase() ];
+ }
+ return match == null ? null : match;
+ },
+
+ // Raw string
+ getAllResponseHeaders: function() {
+ return state === 2 ? responseHeadersString : null;
+ },
+
+ // Caches the header
+ setRequestHeader: function( name, value ) {
+ var lname = name.toLowerCase();
+ if ( !state ) {
+ name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+ requestHeaders[ name ] = value;
+ }
+ return this;
+ },
+
+ // Overrides response content-type header
+ overrideMimeType: function( type ) {
+ if ( !state ) {
+ s.mimeType = type;
+ }
+ return this;
+ },
+
+ // Status-dependent callbacks
+ statusCode: function( map ) {
+ var code;
+ if ( map ) {
+ if ( state < 2 ) {
+ for ( code in map ) {
+ // Lazy-add the new callback in a way that preserves old ones
+ statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+ }
+ } else {
+ // Execute the appropriate callbacks
+ jqXHR.always( map[ jqXHR.status ] );
+ }
+ }
+ return this;
+ },
+
+ // Cancel the request
+ abort: function( statusText ) {
+ var finalText = statusText || strAbort;
+ if ( transport ) {
+ transport.abort( finalText );
+ }
+ done( 0, finalText );
+ return this;
+ }
+ };
+
+ // Attach deferreds
+ deferred.promise( jqXHR ).complete = completeDeferred.add;
+ jqXHR.success = jqXHR.done;
+ jqXHR.error = jqXHR.fail;
+
+ // Remove hash character (#7531: and string promotion)
+ // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+ // Handle falsy url in the settings object (#10093: consistency with old signature)
+ // We also use the url parameter if available
+ s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+ // Alias method option to type as per ticket #12004
+ s.type = options.method || options.type || s.method || s.type;
+
+ // Extract dataTypes list
+ s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
+
+ // A cross-domain request is in order when we have a protocol:host:port mismatch
+ if ( s.crossDomain == null ) {
+ parts = rurl.exec( s.url.toLowerCase() );
+ s.crossDomain = !!( parts &&
+ ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+ ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+ ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+ );
+ }
+
+ // Convert data if not already a string
+ if ( s.data && s.processData && typeof s.data !== "string" ) {
+ s.data = jQuery.param( s.data, s.traditional );
+ }
+
+ // Apply prefilters
+ inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+ // If request was aborted inside a prefilter, stop there
+ if ( state === 2 ) {
+ return jqXHR;
+ }
+
+ // We can fire global events as of now if asked to
+ fireGlobals = s.global;
+
+ // Watch for a new set of requests
+ if ( fireGlobals && jQuery.active++ === 0 ) {
+ jQuery.event.trigger("ajaxStart");
+ }
+
+ // Uppercase the type
+ s.type = s.type.toUpperCase();
+
+ // Determine if request has content
+ s.hasContent = !rnoContent.test( s.type );
+
+ // Save the URL in case we're toying with the If-Modified-Since
+ // and/or If-None-Match header later on
+ cacheURL = s.url;
+
+ // More options handling for requests with no content
+ if ( !s.hasContent ) {
+
+ // If data is available, append data to url
+ if ( s.data ) {
+ cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+ // #9682: remove data so that it's not used in an eventual retry
+ delete s.data;
+ }
+
+ // Add anti-cache in url if needed
+ if ( s.cache === false ) {
+ s.url = rts.test( cacheURL ) ?
+
+ // If there is already a '_' parameter, set its value
+ cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
+
+ // Otherwise add one to the end
+ cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
+ }
+ }
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ if ( jQuery.lastModified[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+ }
+ if ( jQuery.etag[ cacheURL ] ) {
+ jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+ }
+ }
+
+ // Set the correct header, if data is being sent
+ if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+ jqXHR.setRequestHeader( "Content-Type", s.contentType );
+ }
+
+ // Set the Accepts header for the server, depending on the dataType
+ jqXHR.setRequestHeader(
+ "Accept",
+ s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+ s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+ s.accepts[ "*" ]
+ );
+
+ // Check for headers option
+ for ( i in s.headers ) {
+ jqXHR.setRequestHeader( i, s.headers[ i ] );
+ }
+
+ // Allow custom headers/mimetypes and early abort
+ if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+ // Abort if not done already and return
+ return jqXHR.abort();
+ }
+
+ // aborting is no longer a cancellation
+ strAbort = "abort";
+
+ // Install callbacks on deferreds
+ for ( i in { success: 1, error: 1, complete: 1 } ) {
+ jqXHR[ i ]( s[ i ] );
+ }
+
+ // Get transport
+ transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+ // If no transport, we auto-abort
+ if ( !transport ) {
+ done( -1, "No Transport" );
+ } else {
+ jqXHR.readyState = 1;
+
+ // Send global event
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+ }
+ // Timeout
+ if ( s.async && s.timeout > 0 ) {
+ timeoutTimer = setTimeout(function() {
+ jqXHR.abort("timeout");
+ }, s.timeout );
+ }
+
+ try {
+ state = 1;
+ transport.send( requestHeaders, done );
+ } catch ( e ) {
+ // Propagate exception as error if not done
+ if ( state < 2 ) {
+ done( -1, e );
+ // Simply rethrow otherwise
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ // Callback for when everything is done
+ function done( status, nativeStatusText, responses, headers ) {
+ var isSuccess, success, error, response, modified,
+ statusText = nativeStatusText;
+
+ // Called once
+ if ( state === 2 ) {
+ return;
+ }
+
+ // State is "done" now
+ state = 2;
+
+ // Clear timeout if it exists
+ if ( timeoutTimer ) {
+ clearTimeout( timeoutTimer );
+ }
+
+ // Dereference transport for early garbage collection
+ // (no matter how long the jqXHR object will be used)
+ transport = undefined;
+
+ // Cache response headers
+ responseHeadersString = headers || "";
+
+ // Set readyState
+ jqXHR.readyState = status > 0 ? 4 : 0;
+
+ // Get response data
+ if ( responses ) {
+ response = ajaxHandleResponses( s, jqXHR, responses );
+ }
+
+ // If successful, handle type chaining
+ if ( status >= 200 && status < 300 || status === 304 ) {
+
+ // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+ if ( s.ifModified ) {
+ modified = jqXHR.getResponseHeader("Last-Modified");
+ if ( modified ) {
+ jQuery.lastModified[ cacheURL ] = modified;
+ }
+ modified = jqXHR.getResponseHeader("etag");
+ if ( modified ) {
+ jQuery.etag[ cacheURL ] = modified;
+ }
+ }
+
+ // if no content
+ if ( status === 204 ) {
+ isSuccess = true;
+ statusText = "nocontent";
+
+ // if not modified
+ } else if ( status === 304 ) {
+ isSuccess = true;
+ statusText = "notmodified";
+
+ // If we have data, let's convert it
+ } else {
+ isSuccess = ajaxConvert( s, response );
+ statusText = isSuccess.state;
+ success = isSuccess.data;
+ error = isSuccess.error;
+ isSuccess = !error;
+ }
+ } else {
+ // We extract error from statusText
+ // then normalize statusText and status for non-aborts
+ error = statusText;
+ if ( status || !statusText ) {
+ statusText = "error";
+ if ( status < 0 ) {
+ status = 0;
+ }
+ }
+ }
+
+ // Set data for the fake xhr object
+ jqXHR.status = status;
+ jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+ // Success/Error
+ if ( isSuccess ) {
+ deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+ } else {
+ deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+ }
+
+ // Status-dependent callbacks
+ jqXHR.statusCode( statusCode );
+ statusCode = undefined;
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+ [ jqXHR, s, isSuccess ? success : error ] );
+ }
+
+ // Complete
+ completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+ if ( fireGlobals ) {
+ globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+ // Handle the global AJAX counter
+ if ( !( --jQuery.active ) ) {
+ jQuery.event.trigger("ajaxStop");
+ }
+ }
+ }
+
+ return jqXHR;
+ },
+
+ getScript: function( url, callback ) {
+ return jQuery.get( url, undefined, callback, "script" );
+ },
+
+ getJSON: function( url, data, callback ) {
+ return jQuery.get( url, data, callback, "json" );
+ }
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+ var firstDataType, ct, finalDataType, type,
+ contents = s.contents,
+ dataTypes = s.dataTypes,
+ responseFields = s.responseFields;
+
+ // Fill responseXXX fields
+ for ( type in responseFields ) {
+ if ( type in responses ) {
+ jqXHR[ responseFields[type] ] = responses[ type ];
+ }
+ }
+
+ // Remove auto dataType and get content-type in the process
+ while( dataTypes[ 0 ] === "*" ) {
+ dataTypes.shift();
+ if ( ct === undefined ) {
+ ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
+ }
+ }
+
+ // Check if we're dealing with a known content-type
+ if ( ct ) {
+ for ( type in contents ) {
+ if ( contents[ type ] && contents[ type ].test( ct ) ) {
+ dataTypes.unshift( type );
+ break;
+ }
+ }
+ }
+
+ // Check to see if we have a response for the expected dataType
+ if ( dataTypes[ 0 ] in responses ) {
+ finalDataType = dataTypes[ 0 ];
+ } else {
+ // Try convertible dataTypes
+ for ( type in responses ) {
+ if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+ finalDataType = type;
+ break;
+ }
+ if ( !firstDataType ) {
+ firstDataType = type;
+ }
+ }
+ // Or just use first one
+ finalDataType = finalDataType || firstDataType;
+ }
+
+ // If we found a dataType
+ // We add the dataType to the list if needed
+ // and return the corresponding response
+ if ( finalDataType ) {
+ if ( finalDataType !== dataTypes[ 0 ] ) {
+ dataTypes.unshift( finalDataType );
+ }
+ return responses[ finalDataType ];
+ }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+ var conv2, current, conv, tmp,
+ converters = {},
+ i = 0,
+ // Work with a copy of dataTypes in case we need to modify it for conversion
+ dataTypes = s.dataTypes.slice(),
+ prev = dataTypes[ 0 ];
+
+ // Apply the dataFilter if provided
+ if ( s.dataFilter ) {
+ response = s.dataFilter( response, s.dataType );
+ }
+
+ // Create converters map with lowercased keys
+ if ( dataTypes[ 1 ] ) {
+ for ( conv in s.converters ) {
+ converters[ conv.toLowerCase() ] = s.converters[ conv ];
+ }
+ }
+
+ // Convert to each sequential dataType, tolerating list modification
+ for ( ; (current = dataTypes[++i]); ) {
+
+ // There's only work to do if current dataType is non-auto
+ if ( current !== "*" ) {
+
+ // Convert response if prev dataType is non-auto and differs from current
+ if ( prev !== "*" && prev !== current ) {
+
+ // Seek a direct converter
+ conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+ // If none found, seek a pair
+ if ( !conv ) {
+ for ( conv2 in converters ) {
+
+ // If conv2 outputs current
+ tmp = conv2.split(" ");
+ if ( tmp[ 1 ] === current ) {
+
+ // If prev can be converted to accepted input
+ conv = converters[ prev + " " + tmp[ 0 ] ] ||
+ converters[ "* " + tmp[ 0 ] ];
+ if ( conv ) {
+ // Condense equivalence converters
+ if ( conv === true ) {
+ conv = converters[ conv2 ];
+
+ // Otherwise, insert the intermediate dataType
+ } else if ( converters[ conv2 ] !== true ) {
+ current = tmp[ 0 ];
+ dataTypes.splice( i--, 0, current );
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ // Apply converter (if not an equivalence)
+ if ( conv !== true ) {
+
+ // Unless errors are allowed to bubble, catch and return them
+ if ( conv && s["throws"] ) {
+ response = conv( response );
+ } else {
+ try {
+ response = conv( response );
+ } catch ( e ) {
+ return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+ }
+ }
+ }
+ }
+
+ // Update prev for next iteration
+ prev = current;
+ }
+ }
+
+ return { state: "success", data: response };
+}
+// Install script dataType
+jQuery.ajaxSetup({
+ accepts: {
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+ },
+ contents: {
+ script: /(?:java|ecma)script/
+ },
+ converters: {
+ "text script": function( text ) {
+ jQuery.globalEval( text );
+ return text;
+ }
+ }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+ if ( s.cache === undefined ) {
+ s.cache = false;
+ }
+ if ( s.crossDomain ) {
+ s.type = "GET";
+ s.global = false;
+ }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+ // This transport only deals with cross domain requests
+ if ( s.crossDomain ) {
+
+ var script,
+ head = document.head || jQuery("head")[0] || document.documentElement;
+
+ return {
+
+ send: function( _, callback ) {
+
+ script = document.createElement("script");
+
+ script.async = true;
+
+ if ( s.scriptCharset ) {
+ script.charset = s.scriptCharset;
+ }
+
+ script.src = s.url;
+
+ // Attach handlers for all browsers
+ script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+ if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+ // Handle memory leak in IE
+ script.onload = script.onreadystatechange = null;
+
+ // Remove the script
+ if ( script.parentNode ) {
+ script.parentNode.removeChild( script );
+ }
+
+ // Dereference the script
+ script = null;
+
+ // Callback if not abort
+ if ( !isAbort ) {
+ callback( 200, "success" );
+ }
+ }
+ };
+
+ // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
+ // Use native DOM manipulation to avoid our domManip AJAX trickery
+ head.insertBefore( script, head.firstChild );
+ },
+
+ abort: function() {
+ if ( script ) {
+ script.onload( undefined, true );
+ }
+ }
+ };
+ }
+});
+var oldCallbacks = [],
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+ jsonp: "callback",
+ jsonpCallback: function() {
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
+ this[ callback ] = true;
+ return callback;
+ }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+ var callbackName, overwritten, responseContainer,
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+ "url" :
+ typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
+ );
+
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+ // Get callback name, remembering preexisting value associated with it
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+ s.jsonpCallback() :
+ s.jsonpCallback;
+
+ // Insert callback into url or form data
+ if ( jsonProp ) {
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+ } else if ( s.jsonp !== false ) {
+ s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+ }
+
+ // Use data converter to retrieve json after script execution
+ s.converters["script json"] = function() {
+ if ( !responseContainer ) {
+ jQuery.error( callbackName + " was not called" );
+ }
+ return responseContainer[ 0 ];
+ };
+
+ // force json dataType
+ s.dataTypes[ 0 ] = "json";
+
+ // Install callback
+ overwritten = window[ callbackName ];
+ window[ callbackName ] = function() {
+ responseContainer = arguments;
+ };
+
+ // Clean-up function (fires after converters)
+ jqXHR.always(function() {
+ // Restore preexisting value
+ window[ callbackName ] = overwritten;
+
+ // Save back as free
+ if ( s[ callbackName ] ) {
+ // make sure that re-using the options doesn't screw things around
+ s.jsonpCallback = originalSettings.jsonpCallback;
+
+ // save the callback name for future use
+ oldCallbacks.push( callbackName );
+ }
+
+ // Call if it was a function and we have a response
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+ overwritten( responseContainer[ 0 ] );
+ }
+
+ responseContainer = overwritten = undefined;
+ });
+
+ // Delegate to script
+ return "script";
+ }
+});
+var xhrCallbacks, xhrSupported,
+ xhrId = 0,
+ // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+ xhrOnUnloadAbort = window.ActiveXObject && function() {
+ // Abort all pending requests
+ var key;
+ for ( key in xhrCallbacks ) {
+ xhrCallbacks[ key ]( undefined, true );
+ }
+ };
+
+// Functions to create xhrs
+function createStandardXHR() {
+ try {
+ return new window.XMLHttpRequest();
+ } catch( e ) {}
+}
+
+function createActiveXHR() {
+ try {
+ return new window.ActiveXObject("Microsoft.XMLHTTP");
+ } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+ /* Microsoft failed to properly
+ * implement the XMLHttpRequest in IE7 (can't request local files),
+ * so we use the ActiveXObject when it is available
+ * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+ * we need a fallback.
+ */
+ function() {
+ return !this.isLocal && createStandardXHR() || createActiveXHR();
+ } :
+ // For all other browsers, use the standard XMLHttpRequest object
+ createStandardXHR;
+
+// Determine support properties
+xhrSupported = jQuery.ajaxSettings.xhr();
+jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+xhrSupported = jQuery.support.ajax = !!xhrSupported;
+
+// Create transport if the browser can provide an xhr
+if ( xhrSupported ) {
+
+ jQuery.ajaxTransport(function( s ) {
+ // Cross domain only allowed if supported through XMLHttpRequest
+ if ( !s.crossDomain || jQuery.support.cors ) {
+
+ var callback;
+
+ return {
+ send: function( headers, complete ) {
+
+ // Get a new xhr
+ var handle, i,
+ xhr = s.xhr();
+
+ // Open the socket
+ // Passing null username, generates a login popup on Opera (#2865)
+ if ( s.username ) {
+ xhr.open( s.type, s.url, s.async, s.username, s.password );
+ } else {
+ xhr.open( s.type, s.url, s.async );
+ }
+
+ // Apply custom fields if provided
+ if ( s.xhrFields ) {
+ for ( i in s.xhrFields ) {
+ xhr[ i ] = s.xhrFields[ i ];
+ }
+ }
+
+ // Override mime type if needed
+ if ( s.mimeType && xhr.overrideMimeType ) {
+ xhr.overrideMimeType( s.mimeType );
+ }
+
+ // X-Requested-With header
+ // For cross-domain requests, seeing as conditions for a preflight are
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
+ // (it can always be set on a per-request basis or even using ajaxSetup)
+ // For same-domain requests, won't change header if already provided.
+ if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+ headers["X-Requested-With"] = "XMLHttpRequest";
+ }
+
+ // Need an extra try/catch for cross domain requests in Firefox 3
+ try {
+ for ( i in headers ) {
+ xhr.setRequestHeader( i, headers[ i ] );
+ }
+ } catch( err ) {}
+
+ // Do send the request
+ // This may raise an exception which is actually
+ // handled in jQuery.ajax (so no try/catch here)
+ xhr.send( ( s.hasContent && s.data ) || null );
+
+ // Listener
+ callback = function( _, isAbort ) {
+ var status, responseHeaders, statusText, responses;
+
+ // Firefox throws exceptions when accessing properties
+ // of an xhr when a network error occurred
+ // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+ try {
+
+ // Was never called and is aborted or complete
+ if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+ // Only called once
+ callback = undefined;
+
+ // Do not keep as active anymore
+ if ( handle ) {
+ xhr.onreadystatechange = jQuery.noop;
+ if ( xhrOnUnloadAbort ) {
+ delete xhrCallbacks[ handle ];
+ }
+ }
+
+ // If it's an abort
+ if ( isAbort ) {
+ // Abort it manually if needed
+ if ( xhr.readyState !== 4 ) {
+ xhr.abort();
+ }
+ } else {
+ responses = {};
+ status = xhr.status;
+ responseHeaders = xhr.getAllResponseHeaders();
+
+ // When requesting binary data, IE6-9 will throw an exception
+ // on any attempt to access responseText (#11426)
+ if ( typeof xhr.responseText === "string" ) {
+ responses.text = xhr.responseText;
+ }
+
+ // Firefox throws an exception when accessing
+ // statusText for faulty cross-domain requests
+ try {
+ statusText = xhr.statusText;
+ } catch( e ) {
+ // We normalize with Webkit giving an empty statusText
+ statusText = "";
+ }
+
+ // Filter status for non standard behaviors
+
+ // If the request is local and we have data: assume a success
+ // (success with no data won't get notified, that's the best we
+ // can do given current implementations)
+ if ( !status && s.isLocal && !s.crossDomain ) {
+ status = responses.text ? 200 : 404;
+ // IE - #1450: sometimes returns 1223 when it should be 204
+ } else if ( status === 1223 ) {
+ status = 204;
+ }
+ }
+ }
+ } catch( firefoxAccessException ) {
+ if ( !isAbort ) {
+ complete( -1, firefoxAccessException );
+ }
+ }
+
+ // Call complete if needed
+ if ( responses ) {
+ complete( status, statusText, responses, responseHeaders );
+ }
+ };
+
+ if ( !s.async ) {
+ // if we're in sync mode we fire the callback
+ callback();
+ } else if ( xhr.readyState === 4 ) {
+ // (IE6 & IE7) if it's in cache and has been
+ // retrieved directly we need to fire the callback
+ setTimeout( callback );
+ } else {
+ handle = ++xhrId;
+ if ( xhrOnUnloadAbort ) {
+ // Create the active xhrs callbacks list if needed
+ // and attach the unload handler
+ if ( !xhrCallbacks ) {
+ xhrCallbacks = {};
+ jQuery( window ).unload( xhrOnUnloadAbort );
+ }
+ // Add to list of active xhrs callbacks
+ xhrCallbacks[ handle ] = callback;
+ }
+ xhr.onreadystatechange = callback;
+ }
+ },
+
+ abort: function() {
+ if ( callback ) {
+ callback( undefined, true );
+ }
+ }
+ };
+ }
+ });
+}
+var fxNow, timerId,
+ rfxtypes = /^(?:toggle|show|hide)$/,
+ rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
+ rrun = /queueHooks$/,
+ animationPrefilters = [ defaultPrefilter ],
+ tweeners = {
+ "*": [function( prop, value ) {
+ var end, unit,
+ tween = this.createTween( prop, value ),
+ parts = rfxnum.exec( value ),
+ target = tween.cur(),
+ start = +target || 0,
+ scale = 1,
+ maxIterations = 20;
+
+ if ( parts ) {
+ end = +parts[2];
+ unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+
+ // We need to compute starting value
+ if ( unit !== "px" && start ) {
+ // Iteratively approximate from a nonzero starting point
+ // Prefer the current property, because this process will be trivial if it uses the same units
+ // Fallback to end or a simple constant
+ start = jQuery.css( tween.elem, prop, true ) || end || 1;
+
+ do {
+ // If previous iteration zeroed out, double until we get *something*
+ // Use a string for doubling factor so we don't accidentally see scale as unchanged below
+ scale = scale || ".5";
+
+ // Adjust and apply
+ start = start / scale;
+ jQuery.style( tween.elem, prop, start + unit );
+
+ // Update scale, tolerating zero or NaN from tween.cur()
+ // And breaking the loop if scale is unchanged or perfect, or if we've just had enough
+ } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
+ }
+
+ tween.unit = unit;
+ tween.start = start;
+ // If a +=/-= token was provided, we're doing a relative animation
+ tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end;
+ }
+ return tween;
+ }]
+ };
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+ setTimeout(function() {
+ fxNow = undefined;
+ });
+ return ( fxNow = jQuery.now() );
+}
+
+function createTweens( animation, props ) {
+ jQuery.each( props, function( prop, value ) {
+ var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
+ index = 0,
+ length = collection.length;
+ for ( ; index < length; index++ ) {
+ if ( collection[ index ].call( animation, prop, value ) ) {
+
+ // we're done with this property
+ return;
+ }
+ }
+ });
+}
+
+function Animation( elem, properties, options ) {
+ var result,
+ stopped,
+ index = 0,
+ length = animationPrefilters.length,
+ deferred = jQuery.Deferred().always( function() {
+ // don't match elem in the :animated selector
+ delete tick.elem;
+ }),
+ tick = function() {
+ if ( stopped ) {
+ return false;
+ }
+ var currentTime = fxNow || createFxNow(),
+ remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+ // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
+ temp = remaining / animation.duration || 0,
+ percent = 1 - temp,
+ index = 0,
+ length = animation.tweens.length;
+
+ for ( ; index < length ; index++ ) {
+ animation.tweens[ index ].run( percent );
+ }
+
+ deferred.notifyWith( elem, [ animation, percent, remaining ]);
+
+ if ( percent < 1 && length ) {
+ return remaining;
+ } else {
+ deferred.resolveWith( elem, [ animation ] );
+ return false;
+ }
+ },
+ animation = deferred.promise({
+ elem: elem,
+ props: jQuery.extend( {}, properties ),
+ opts: jQuery.extend( true, { specialEasing: {} }, options ),
+ originalProperties: properties,
+ originalOptions: options,
+ startTime: fxNow || createFxNow(),
+ duration: options.duration,
+ tweens: [],
+ createTween: function( prop, end ) {
+ var tween = jQuery.Tween( elem, animation.opts, prop, end,
+ animation.opts.specialEasing[ prop ] || animation.opts.easing );
+ animation.tweens.push( tween );
+ return tween;
+ },
+ stop: function( gotoEnd ) {
+ var index = 0,
+ // if we are going to the end, we want to run all the tweens
+ // otherwise we skip this part
+ length = gotoEnd ? animation.tweens.length : 0;
+ if ( stopped ) {
+ return this;
+ }
+ stopped = true;
+ for ( ; index < length ; index++ ) {
+ animation.tweens[ index ].run( 1 );
+ }
+
+ // resolve when we played the last frame
+ // otherwise, reject
+ if ( gotoEnd ) {
+ deferred.resolveWith( elem, [ animation, gotoEnd ] );
+ } else {
+ deferred.rejectWith( elem, [ animation, gotoEnd ] );
+ }
+ return this;
+ }
+ }),
+ props = animation.props;
+
+ propFilter( props, animation.opts.specialEasing );
+
+ for ( ; index < length ; index++ ) {
+ result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
+ if ( result ) {
+ return result;
+ }
+ }
+
+ createTweens( animation, props );
+
+ if ( jQuery.isFunction( animation.opts.start ) ) {
+ animation.opts.start.call( elem, animation );
+ }
+
+ jQuery.fx.timer(
+ jQuery.extend( tick, {
+ elem: elem,
+ anim: animation,
+ queue: animation.opts.queue
+ })
+ );
+
+ // attach callbacks from options
+ return animation.progress( animation.opts.progress )
+ .done( animation.opts.done, animation.opts.complete )
+ .fail( animation.opts.fail )
+ .always( animation.opts.always );
+}
+
+function propFilter( props, specialEasing ) {
+ var value, name, index, easing, hooks;
+
+ // camelCase, specialEasing and expand cssHook pass
+ for ( index in props ) {
+ name = jQuery.camelCase( index );
+ easing = specialEasing[ name ];
+ value = props[ index ];
+ if ( jQuery.isArray( value ) ) {
+ easing = value[ 1 ];
+ value = props[ index ] = value[ 0 ];
+ }
+
+ if ( index !== name ) {
+ props[ name ] = value;
+ delete props[ index ];
+ }
+
+ hooks = jQuery.cssHooks[ name ];
+ if ( hooks && "expand" in hooks ) {
+ value = hooks.expand( value );
+ delete props[ name ];
+
+ // not quite $.extend, this wont overwrite keys already present.
+ // also - reusing 'index' from above because we have the correct "name"
+ for ( index in value ) {
+ if ( !( index in props ) ) {
+ props[ index ] = value[ index ];
+ specialEasing[ index ] = easing;
+ }
+ }
+ } else {
+ specialEasing[ name ] = easing;
+ }
+ }
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+ tweener: function( props, callback ) {
+ if ( jQuery.isFunction( props ) ) {
+ callback = props;
+ props = [ "*" ];
+ } else {
+ props = props.split(" ");
+ }
+
+ var prop,
+ index = 0,
+ length = props.length;
+
+ for ( ; index < length ; index++ ) {
+ prop = props[ index ];
+ tweeners[ prop ] = tweeners[ prop ] || [];
+ tweeners[ prop ].unshift( callback );
+ }
+ },
+
+ prefilter: function( callback, prepend ) {
+ if ( prepend ) {
+ animationPrefilters.unshift( callback );
+ } else {
+ animationPrefilters.push( callback );
+ }
+ }
+});
+
+function defaultPrefilter( elem, props, opts ) {
+ /*jshint validthis:true */
+ var prop, index, length,
+ value, dataShow, toggle,
+ tween, hooks, oldfire,
+ anim = this,
+ style = elem.style,
+ orig = {},
+ handled = [],
+ hidden = elem.nodeType && isHidden( elem );
+
+ // handle queue: false promises
+ if ( !opts.queue ) {
+ hooks = jQuery._queueHooks( elem, "fx" );
+ if ( hooks.unqueued == null ) {
+ hooks.unqueued = 0;
+ oldfire = hooks.empty.fire;
+ hooks.empty.fire = function() {
+ if ( !hooks.unqueued ) {
+ oldfire();
+ }
+ };
+ }
+ hooks.unqueued++;
+
+ anim.always(function() {
+ // doing this makes sure that the complete handler will be called
+ // before this completes
+ anim.always(function() {
+ hooks.unqueued--;
+ if ( !jQuery.queue( elem, "fx" ).length ) {
+ hooks.empty.fire();
+ }
+ });
+ });
+ }
+
+ // height/width overflow pass
+ if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+ // Make sure that nothing sneaks out
+ // Record all 3 overflow attributes because IE does not
+ // change the overflow attribute when overflowX and
+ // overflowY are set to the same value
+ opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+ // Set display property to inline-block for height/width
+ // animations on inline elements that are having width/height animated
+ if ( jQuery.css( elem, "display" ) === "inline" &&
+ jQuery.css( elem, "float" ) === "none" ) {
+
+ // inline-level elements accept inline-block;
+ // block-level elements need to be inline with layout
+ if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
+ style.display = "inline-block";
+
+ } else {
+ style.zoom = 1;
+ }
+ }
+ }
+
+ if ( opts.overflow ) {
+ style.overflow = "hidden";
+ if ( !jQuery.support.shrinkWrapBlocks ) {
+ anim.always(function() {
+ style.overflow = opts.overflow[ 0 ];
+ style.overflowX = opts.overflow[ 1 ];
+ style.overflowY = opts.overflow[ 2 ];
+ });
+ }
+ }
+
+
+ // show/hide pass
+ for ( index in props ) {
+ value = props[ index ];
+ if ( rfxtypes.exec( value ) ) {
+ delete props[ index ];
+ toggle = toggle || value === "toggle";
+ if ( value === ( hidden ? "hide" : "show" ) ) {
+ continue;
+ }
+ handled.push( index );
+ }
+ }
+
+ length = handled.length;
+ if ( length ) {
+ dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
+ if ( "hidden" in dataShow ) {
+ hidden = dataShow.hidden;
+ }
+
+ // store state if its toggle - enables .stop().toggle() to "reverse"
+ if ( toggle ) {
+ dataShow.hidden = !hidden;
+ }
+ if ( hidden ) {
+ jQuery( elem ).show();
+ } else {
+ anim.done(function() {
+ jQuery( elem ).hide();
+ });
+ }
+ anim.done(function() {
+ var prop;
+ jQuery._removeData( elem, "fxshow" );
+ for ( prop in orig ) {
+ jQuery.style( elem, prop, orig[ prop ] );
+ }
+ });
+ for ( index = 0 ; index < length ; index++ ) {
+ prop = handled[ index ];
+ tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 );
+ orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop );
+
+ if ( !( prop in dataShow ) ) {
+ dataShow[ prop ] = tween.start;
+ if ( hidden ) {
+ tween.end = tween.start;
+ tween.start = prop === "width" || prop === "height" ? 1 : 0;
+ }
+ }
+ }
+ }
+}
+
+function Tween( elem, options, prop, end, easing ) {
+ return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+ constructor: Tween,
+ init: function( elem, options, prop, end, easing, unit ) {
+ this.elem = elem;
+ this.prop = prop;
+ this.easing = easing || "swing";
+ this.options = options;
+ this.start = this.now = this.cur();
+ this.end = end;
+ this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+ },
+ cur: function() {
+ var hooks = Tween.propHooks[ this.prop ];
+
+ return hooks && hooks.get ?
+ hooks.get( this ) :
+ Tween.propHooks._default.get( this );
+ },
+ run: function( percent ) {
+ var eased,
+ hooks = Tween.propHooks[ this.prop ];
+
+ if ( this.options.duration ) {
+ this.pos = eased = jQuery.easing[ this.easing ](
+ percent, this.options.duration * percent, 0, 1, this.options.duration
+ );
+ } else {
+ this.pos = eased = percent;
+ }
+ this.now = ( this.end - this.start ) * eased + this.start;
+
+ if ( this.options.step ) {
+ this.options.step.call( this.elem, this.now, this );
+ }
+
+ if ( hooks && hooks.set ) {
+ hooks.set( this );
+ } else {
+ Tween.propHooks._default.set( this );
+ }
+ return this;
+ }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+ _default: {
+ get: function( tween ) {
+ var result;
+
+ if ( tween.elem[ tween.prop ] != null &&
+ (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
+ return tween.elem[ tween.prop ];
+ }
+
+ // passing an empty string as a 3rd parameter to .css will automatically
+ // attempt a parseFloat and fallback to a string if the parse fails
+ // so, simple values such as "10px" are parsed to Float.
+ // complex values such as "rotate(1rad)" are returned as is.
+ result = jQuery.css( tween.elem, tween.prop, "" );
+ // Empty strings, null, undefined and "auto" are converted to 0.
+ return !result || result === "auto" ? 0 : result;
+ },
+ set: function( tween ) {
+ // use step hook for back compat - use cssHook if its there - use .style if its
+ // available and use plain properties where available
+ if ( jQuery.fx.step[ tween.prop ] ) {
+ jQuery.fx.step[ tween.prop ]( tween );
+ } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
+ jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+ } else {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+ }
+};
+
+// Remove in 2.0 - this supports IE8's panic based approach
+// to setting things on disconnected nodes
+
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+ set: function( tween ) {
+ if ( tween.elem.nodeType && tween.elem.parentNode ) {
+ tween.elem[ tween.prop ] = tween.now;
+ }
+ }
+};
+
+jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
+ var cssFn = jQuery.fn[ name ];
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return speed == null || typeof speed === "boolean" ?
+ cssFn.apply( this, arguments ) :
+ this.animate( genFx( name, true ), speed, easing, callback );
+ };
+});
+
+jQuery.fn.extend({
+ fadeTo: function( speed, to, easing, callback ) {
+
+ // show any hidden elements after setting opacity to 0
+ return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+ // animate to the value specified
+ .end().animate({ opacity: to }, speed, easing, callback );
+ },
+ animate: function( prop, speed, easing, callback ) {
+ var empty = jQuery.isEmptyObject( prop ),
+ optall = jQuery.speed( speed, easing, callback ),
+ doAnimation = function() {
+ // Operate on a copy of prop so per-property easing won't be lost
+ var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+ doAnimation.finish = function() {
+ anim.stop( true );
+ };
+ // Empty animations, or finishing resolves immediately
+ if ( empty || jQuery._data( this, "finish" ) ) {
+ anim.stop( true );
+ }
+ };
+ doAnimation.finish = doAnimation;
+
+ return empty || optall.queue === false ?
+ this.each( doAnimation ) :
+ this.queue( optall.queue, doAnimation );
+ },
+ stop: function( type, clearQueue, gotoEnd ) {
+ var stopQueue = function( hooks ) {
+ var stop = hooks.stop;
+ delete hooks.stop;
+ stop( gotoEnd );
+ };
+
+ if ( typeof type !== "string" ) {
+ gotoEnd = clearQueue;
+ clearQueue = type;
+ type = undefined;
+ }
+ if ( clearQueue && type !== false ) {
+ this.queue( type || "fx", [] );
+ }
+
+ return this.each(function() {
+ var dequeue = true,
+ index = type != null && type + "queueHooks",
+ timers = jQuery.timers,
+ data = jQuery._data( this );
+
+ if ( index ) {
+ if ( data[ index ] && data[ index ].stop ) {
+ stopQueue( data[ index ] );
+ }
+ } else {
+ for ( index in data ) {
+ if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+ stopQueue( data[ index ] );
+ }
+ }
+ }
+
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+ timers[ index ].anim.stop( gotoEnd );
+ dequeue = false;
+ timers.splice( index, 1 );
+ }
+ }
+
+ // start the next in the queue if the last step wasn't forced
+ // timers currently will call their complete callbacks, which will dequeue
+ // but only if they were gotoEnd
+ if ( dequeue || !gotoEnd ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ finish: function( type ) {
+ if ( type !== false ) {
+ type = type || "fx";
+ }
+ return this.each(function() {
+ var index,
+ data = jQuery._data( this ),
+ queue = data[ type + "queue" ],
+ hooks = data[ type + "queueHooks" ],
+ timers = jQuery.timers,
+ length = queue ? queue.length : 0;
+
+ // enable finishing flag on private data
+ data.finish = true;
+
+ // empty the queue first
+ jQuery.queue( this, type, [] );
+
+ if ( hooks && hooks.cur && hooks.cur.finish ) {
+ hooks.cur.finish.call( this );
+ }
+
+ // look for any active animations, and finish them
+ for ( index = timers.length; index--; ) {
+ if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+ timers[ index ].anim.stop( true );
+ timers.splice( index, 1 );
+ }
+ }
+
+ // look for any animations in the old queue and finish them
+ for ( index = 0; index < length; index++ ) {
+ if ( queue[ index ] && queue[ index ].finish ) {
+ queue[ index ].finish.call( this );
+ }
+ }
+
+ // turn off finishing flag
+ delete data.finish;
+ });
+ }
+});
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+ var which,
+ attrs = { height: type },
+ i = 0;
+
+ // if we include width, step value is 1 to do all cssExpand values,
+ // if we don't include width, step value is 2 to skip over Left and Right
+ includeWidth = includeWidth? 1 : 0;
+ for( ; i < 4 ; i += 2 - includeWidth ) {
+ which = cssExpand[ i ];
+ attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+ }
+
+ if ( includeWidth ) {
+ attrs.opacity = attrs.width = type;
+ }
+
+ return attrs;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+ slideDown: genFx("show"),
+ slideUp: genFx("hide"),
+ slideToggle: genFx("toggle"),
+ fadeIn: { opacity: "show" },
+ fadeOut: { opacity: "hide" },
+ fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+ jQuery.fn[ name ] = function( speed, easing, callback ) {
+ return this.animate( props, speed, easing, callback );
+ };
+});
+
+jQuery.speed = function( speed, easing, fn ) {
+ var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+ complete: fn || !fn && easing ||
+ jQuery.isFunction( speed ) && speed,
+ duration: speed,
+ easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+ };
+
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+ opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+ // normalize opt.queue - true/undefined/null -> "fx"
+ if ( opt.queue == null || opt.queue === true ) {
+ opt.queue = "fx";
+ }
+
+ // Queueing
+ opt.old = opt.complete;
+
+ opt.complete = function() {
+ if ( jQuery.isFunction( opt.old ) ) {
+ opt.old.call( this );
+ }
+
+ if ( opt.queue ) {
+ jQuery.dequeue( this, opt.queue );
+ }
+ };
+
+ return opt;
+};
+
+jQuery.easing = {
+ linear: function( p ) {
+ return p;
+ },
+ swing: function( p ) {
+ return 0.5 - Math.cos( p*Math.PI ) / 2;
+ }
+};
+
+jQuery.timers = [];
+jQuery.fx = Tween.prototype.init;
+jQuery.fx.tick = function() {
+ var timer,
+ timers = jQuery.timers,
+ i = 0;
+
+ fxNow = jQuery.now();
+
+ for ( ; i < timers.length; i++ ) {
+ timer = timers[ i ];
+ // Checks the timer has not already been removed
+ if ( !timer() && timers[ i ] === timer ) {
+ timers.splice( i--, 1 );
+ }
+ }
+
+ if ( !timers.length ) {
+ jQuery.fx.stop();
+ }
+ fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+ if ( timer() && jQuery.timers.push( timer ) ) {
+ jQuery.fx.start();
+ }
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+ if ( !timerId ) {
+ timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
+ }
+};
+
+jQuery.fx.stop = function() {
+ clearInterval( timerId );
+ timerId = null;
+};
+
+jQuery.fx.speeds = {
+ slow: 600,
+ fast: 200,
+ // Default speed
+ _default: 400
+};
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+ jQuery.expr.filters.animated = function( elem ) {
+ return jQuery.grep(jQuery.timers, function( fn ) {
+ return elem === fn.elem;
+ }).length;
+ };
+}
+jQuery.fn.offset = function( options ) {
+ if ( arguments.length ) {
+ return options === undefined ?
+ this :
+ this.each(function( i ) {
+ jQuery.offset.setOffset( this, options, i );
+ });
+ }
+
+ var docElem, win,
+ box = { top: 0, left: 0 },
+ elem = this[ 0 ],
+ doc = elem && elem.ownerDocument;
+
+ if ( !doc ) {
+ return;
+ }
+
+ docElem = doc.documentElement;
+
+ // Make sure it's not a disconnected DOM node
+ if ( !jQuery.contains( docElem, elem ) ) {
+ return box;
+ }
+
+ // If we don't have gBCR, just use 0,0 rather than error
+ // BlackBerry 5, iOS 3 (original iPhone)
+ if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
+ box = elem.getBoundingClientRect();
+ }
+ win = getWindow( doc );
+ return {
+ top: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),
+ left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+ };
+};
+
+jQuery.offset = {
+
+ setOffset: function( elem, options, i ) {
+ var position = jQuery.css( elem, "position" );
+
+ // set position first, in-case top/left are set even on static elem
+ if ( position === "static" ) {
+ elem.style.position = "relative";
+ }
+
+ var curElem = jQuery( elem ),
+ curOffset = curElem.offset(),
+ curCSSTop = jQuery.css( elem, "top" ),
+ curCSSLeft = jQuery.css( elem, "left" ),
+ calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+ props = {}, curPosition = {}, curTop, curLeft;
+
+ // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+ if ( calculatePosition ) {
+ curPosition = curElem.position();
+ curTop = curPosition.top;
+ curLeft = curPosition.left;
+ } else {
+ curTop = parseFloat( curCSSTop ) || 0;
+ curLeft = parseFloat( curCSSLeft ) || 0;
+ }
+
+ if ( jQuery.isFunction( options ) ) {
+ options = options.call( elem, i, curOffset );
+ }
+
+ if ( options.top != null ) {
+ props.top = ( options.top - curOffset.top ) + curTop;
+ }
+ if ( options.left != null ) {
+ props.left = ( options.left - curOffset.left ) + curLeft;
+ }
+
+ if ( "using" in options ) {
+ options.using.call( elem, props );
+ } else {
+ curElem.css( props );
+ }
+ }
+};
+
+
+jQuery.fn.extend({
+
+ position: function() {
+ if ( !this[ 0 ] ) {
+ return;
+ }
+
+ var offsetParent, offset,
+ parentOffset = { top: 0, left: 0 },
+ elem = this[ 0 ];
+
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
+ if ( jQuery.css( elem, "position" ) === "fixed" ) {
+ // we assume that getBoundingClientRect is available when computed position is fixed
+ offset = elem.getBoundingClientRect();
+ } else {
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+ parentOffset = offsetParent.offset();
+ }
+
+ // Add offsetParent borders
+ parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+ parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+ }
+
+ // Subtract parent offsets and element margins
+ // note: when an element has margin: auto the offsetLeft and marginLeft
+ // are the same in Safari causing offset.left to incorrectly be 0
+ return {
+ top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+ left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
+ };
+ },
+
+ offsetParent: function() {
+ return this.map(function() {
+ var offsetParent = this.offsetParent || document.documentElement;
+ while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
+ offsetParent = offsetParent.offsetParent;
+ }
+ return offsetParent || document.documentElement;
+ });
+ }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
+ var top = /Y/.test( prop );
+
+ jQuery.fn[ method ] = function( val ) {
+ return jQuery.access( this, function( elem, method, val ) {
+ var win = getWindow( elem );
+
+ if ( val === undefined ) {
+ return win ? (prop in win) ? win[ prop ] :
+ win.document.documentElement[ method ] :
+ elem[ method ];
+ }
+
+ if ( win ) {
+ win.scrollTo(
+ !top ? val : jQuery( win ).scrollLeft(),
+ top ? val : jQuery( win ).scrollTop()
+ );
+
+ } else {
+ elem[ method ] = val;
+ }
+ }, method, val, arguments.length, null );
+ };
+});
+
+function getWindow( elem ) {
+ return jQuery.isWindow( elem ) ?
+ elem :
+ elem.nodeType === 9 ?
+ elem.defaultView || elem.parentWindow :
+ false;
+}
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+ jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
+ // margin is only for outerHeight, outerWidth
+ jQuery.fn[ funcName ] = function( margin, value ) {
+ var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+ extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+ return jQuery.access( this, function( elem, type, value ) {
+ var doc;
+
+ if ( jQuery.isWindow( elem ) ) {
+ // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+ // isn't a whole lot we can do. See pull request at this URL for discussion:
+ // https://github.com/jquery/jquery/pull/764
+ return elem.document.documentElement[ "client" + name ];
+ }
+
+ // Get document width or height
+ if ( elem.nodeType === 9 ) {
+ doc = elem.documentElement;
+
+ // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
+ // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
+ return Math.max(
+ elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+ elem.body[ "offset" + name ], doc[ "offset" + name ],
+ doc[ "client" + name ]
+ );
+ }
+
+ return value === undefined ?
+ // Get width or height on the element, requesting but not forcing parseFloat
+ jQuery.css( elem, type, extra ) :
+
+ // Set width or height on the element
+ jQuery.style( elem, type, value, extra );
+ }, type, chainable ? margin : undefined, chainable, null );
+ };
+ });
+});
+// Limit scope pollution from any deprecated API
+// (function() {
+
+// })();
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+// Do this after creating the global so that if an AMD module wants to call
+// noConflict to hide this version of jQuery, it will work.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+ define( "jquery", [], function () { return jQuery; } );
+}
+
+})( window );
--- /dev/null
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH jsc 1 "Jan 21, 2014"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+jsc \- command-line JavaScript interpreter.
+.SH SYNOPSIS
+.B jsc
+.RI [ options ]
+.RI [ files ]
+.RI [ \-\-\ arguments ]
+.SH DESCRIPTION
+This manual page documents briefly the
+.B jsc
+command.
+.PP
+\fBjsc\fP is a command-line utility that allows you to run JavaScript
+programs outside of the context of a web browser. It is primarily used
+as part of the test harness for validating the JavaScript portions of
+WebKit, but can also be used as a scripting tool.
+.PP
+\fBjsc\fP can be run in an interactive mode to test out JavaScript
+expressions, or it can be passed one or more files to run similar to
+invoking a Perl or Python script.
+.SH OPTIONS
+.TP
+.B \-e
+Evaluate argument as script code.
+.TP
+.B \-f
+Specifies a source file (deprecated).
+.TP
+.B \-h,\ \-\-help
+Shows summary of command-line options.
+.TP
+.B \-i
+Enables interactive mode (default if no files are specified).
+.TP
+.BI \-p " file"
+Outputs profiling data to a file.
+.TP
+.B \-s
+Installs signal handlers that exit on a crash.
+.TP
+.B \-x
+Output exit code before terminating.
+.TP
+.B \--options
+Dumps all JSC VM options and exits.
+.TP
+.B \-\-dumpOptions
+Dumps all JSC VM options before continuing.
+.TP
+.B \-\-<jsc VM option>=<value>
+Sets the specified JSC VM option.
+.SH AUTHOR
+This manual page was written by Alberto Garcia <berto@igalia.com>,
+based on the contents of \fIhttp://trac.webkit.org/wiki/JSC\fP.
--- /dev/null
+usr/lib/*/libjavascriptcoregtk-4.0.so.*
--- /dev/null
+usr/bin/jsc
--- /dev/null
+debian/jsc.1
--- /dev/null
+usr/include/webkitgtk-4.0/JavaScriptCore/
+usr/lib/*/libjavascriptcoregtk-4.0.so
+usr/lib/*/pkgconfig/javascriptcoregtk-4.0.pc
+usr/share/gir-1.0/JavaScriptCore-4.0.gir usr/share/gir-1.0/
--- /dev/null
+usr/lib/*/libwebkit2gtk-4.0.so.*
+usr/lib/*/webkit2gtk-4.0
+usr/share/locale/*
--- /dev/null
+libwebkit2gtk-4.0-37: shared-lib-without-dependency-information usr/lib/*/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so
--- /dev/null
+libwebkit2gtk-4.0.so.37 libwebkit2gtk-4.0-37 #MINVER#
+ NetworkProcessMainUnix@Base 2.5.3
+ PluginProcessMainUnix@Base 2.5.3
+ WebProcessMainUnix@Base 2.5.3
+ (c++)"WebKit::WebGtkExtensionManager::initialize(OpaqueWKBundle const*, void const*)@Base" 2.5.3
+ (c++)"WebKit::WebGtkExtensionManager::shared()@Base" 2.5.3
+ webkit_authentication_dialog_get_type@Base 2.5.3
+ webkit_authentication_request_authenticate@Base 2.5.3
+ webkit_authentication_request_can_save_credentials@Base 2.5.3
+ webkit_authentication_request_cancel@Base 2.5.3
+ webkit_authentication_request_get_host@Base 2.5.3
+ webkit_authentication_request_get_port@Base 2.5.3
+ webkit_authentication_request_get_proposed_credential@Base 2.5.3
+ webkit_authentication_request_get_realm@Base 2.5.3
+ webkit_authentication_request_get_scheme@Base 2.5.3
+ webkit_authentication_request_get_type@Base 2.5.3
+ webkit_authentication_request_is_for_proxy@Base 2.5.3
+ webkit_authentication_request_is_retry@Base 2.5.3
+ webkit_authentication_scheme_get_type@Base 2.5.3
+ webkit_back_forward_list_get_back_item@Base 2.5.3
+ webkit_back_forward_list_get_back_list@Base 2.5.3
+ webkit_back_forward_list_get_back_list_with_limit@Base 2.5.3
+ webkit_back_forward_list_get_current_item@Base 2.5.3
+ webkit_back_forward_list_get_forward_item@Base 2.5.3
+ webkit_back_forward_list_get_forward_list@Base 2.5.3
+ webkit_back_forward_list_get_forward_list_with_limit@Base 2.5.3
+ webkit_back_forward_list_get_length@Base 2.5.3
+ webkit_back_forward_list_get_nth_item@Base 2.5.3
+ webkit_back_forward_list_get_type@Base 2.5.3
+ webkit_back_forward_list_item_get_original_uri@Base 2.5.3
+ webkit_back_forward_list_item_get_title@Base 2.5.3
+ webkit_back_forward_list_item_get_type@Base 2.5.3
+ webkit_back_forward_list_item_get_uri@Base 2.5.3
+ webkit_cache_model_get_type@Base 2.5.3
+ webkit_context_menu_action_get_type@Base 2.5.3
+ webkit_context_menu_append@Base 2.5.3
+ webkit_context_menu_first@Base 2.5.3
+ webkit_context_menu_get_item_at_position@Base 2.5.3
+ webkit_context_menu_get_items@Base 2.5.3
+ webkit_context_menu_get_n_items@Base 2.5.3
+ webkit_context_menu_get_type@Base 2.5.3
+ webkit_context_menu_insert@Base 2.5.3
+ webkit_context_menu_item_get_action@Base 2.5.3
+ webkit_context_menu_item_get_stock_action@Base 2.5.3
+ webkit_context_menu_item_get_submenu@Base 2.5.3
+ webkit_context_menu_item_get_type@Base 2.5.3
+ webkit_context_menu_item_is_separator@Base 2.5.3
+ webkit_context_menu_item_new@Base 2.5.3
+ webkit_context_menu_item_new_from_stock_action@Base 2.5.3
+ webkit_context_menu_item_new_from_stock_action_with_label@Base 2.5.3
+ webkit_context_menu_item_new_separator@Base 2.5.3
+ webkit_context_menu_item_new_with_submenu@Base 2.5.3
+ webkit_context_menu_item_set_submenu@Base 2.5.3
+ webkit_context_menu_last@Base 2.5.3
+ webkit_context_menu_move_item@Base 2.5.3
+ webkit_context_menu_new@Base 2.5.3
+ webkit_context_menu_new_with_items@Base 2.5.3
+ webkit_context_menu_prepend@Base 2.5.3
+ webkit_context_menu_remove@Base 2.5.3
+ webkit_context_menu_remove_all@Base 2.5.3
+ webkit_cookie_accept_policy_get_type@Base 2.5.3
+ webkit_cookie_manager_delete_all_cookies@Base 2.5.3
+ webkit_cookie_manager_delete_cookies_for_domain@Base 2.5.3
+ webkit_cookie_manager_get_accept_policy@Base 2.5.3
+ webkit_cookie_manager_get_accept_policy_finish@Base 2.5.3
+ webkit_cookie_manager_get_domains_with_cookies@Base 2.5.3
+ webkit_cookie_manager_get_domains_with_cookies_finish@Base 2.5.3
+ webkit_cookie_manager_get_type@Base 2.5.3
+ webkit_cookie_manager_set_accept_policy@Base 2.5.3
+ webkit_cookie_manager_set_persistent_storage@Base 2.5.3
+ webkit_cookie_persistent_storage_get_type@Base 2.5.3
+ webkit_credential_copy@Base 2.5.3
+ webkit_credential_free@Base 2.5.3
+ webkit_credential_get_password@Base 2.5.3
+ webkit_credential_get_persistence@Base 2.5.3
+ webkit_credential_get_type@Base 2.5.3
+ webkit_credential_get_username@Base 2.5.3
+ webkit_credential_has_password@Base 2.5.3
+ webkit_credential_new@Base 2.5.3
+ webkit_credential_persistence_get_type@Base 2.5.3
+ (optional)webkit_dom_attr_get_is_id@Base 2.5.3
+ webkit_dom_attr_get_name@Base 2.5.3
+ webkit_dom_attr_get_owner_element@Base 2.5.3
+ webkit_dom_attr_get_specified@Base 2.5.3
+ webkit_dom_attr_get_type@Base 2.5.3
+ webkit_dom_attr_get_value@Base 2.5.3
+ webkit_dom_attr_set_value@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_enabled@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_id@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_kind@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_label@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_language@Base 2.5.3
+ (optional)webkit_dom_audio_track_get_type@Base 2.5.3
+ (optional)webkit_dom_audio_track_list_get_length@Base 2.5.3
+ (optional)webkit_dom_audio_track_list_get_track_by_id@Base 2.5.3
+ (optional)webkit_dom_audio_track_list_get_type@Base 2.5.3
+ (optional)webkit_dom_audio_track_list_item@Base 2.5.3
+ (optional)webkit_dom_audio_track_set_enabled@Base 2.5.3
+ (optional)webkit_dom_bar_prop_get_type@Base 2.5.3
+ (optional)webkit_dom_bar_prop_get_visible@Base 2.5.3
+ (optional)webkit_dom_battery_manager_get_charging@Base 2.5.3
+ (optional)webkit_dom_battery_manager_get_charging_time@Base 2.5.3
+ (optional)webkit_dom_battery_manager_get_discharging_time@Base 2.5.3
+ (optional)webkit_dom_battery_manager_get_level@Base 2.5.3
+ (optional)webkit_dom_battery_manager_get_type@Base 2.5.3
+ (optional)webkit_dom_blob_get_blob_type@Base 2.5.3
+ webkit_dom_blob_get_size@Base 2.5.3
+ webkit_dom_blob_get_type@Base 2.5.3
+ (optional)webkit_dom_blob_slice@Base 2.5.3
+ webkit_dom_cdata_section_get_type@Base 2.5.3
+ webkit_dom_character_data_append_data@Base 2.5.3
+ webkit_dom_character_data_delete_data@Base 2.5.3
+ webkit_dom_character_data_get_data@Base 2.5.3
+ webkit_dom_character_data_get_length@Base 2.5.3
+ webkit_dom_character_data_get_type@Base 2.5.3
+ webkit_dom_character_data_insert_data@Base 2.5.3
+ (optional)webkit_dom_character_data_remove@Base 2.5.3
+ webkit_dom_character_data_replace_data@Base 2.5.3
+ webkit_dom_character_data_set_data@Base 2.5.3
+ webkit_dom_character_data_substring_data@Base 2.5.3
+ webkit_dom_comment_get_type@Base 2.5.3
+ webkit_dom_css_rule_get_css_text@Base 2.5.3
+ webkit_dom_css_rule_get_parent_rule@Base 2.5.3
+ webkit_dom_css_rule_get_parent_style_sheet@Base 2.5.3
+ webkit_dom_css_rule_get_rule_type@Base 2.5.3
+ webkit_dom_css_rule_get_type@Base 2.5.3
+ webkit_dom_css_rule_list_get_length@Base 2.5.3
+ webkit_dom_css_rule_list_get_type@Base 2.5.3
+ webkit_dom_css_rule_list_item@Base 2.5.3
+ webkit_dom_css_rule_set_css_text@Base 2.5.3
+ webkit_dom_css_style_declaration_get_css_text@Base 2.5.3
+ webkit_dom_css_style_declaration_get_length@Base 2.5.3
+ webkit_dom_css_style_declaration_get_parent_rule@Base 2.5.3
+ webkit_dom_css_style_declaration_get_property_priority@Base 2.5.3
+ webkit_dom_css_style_declaration_get_property_shorthand@Base 2.5.3
+ webkit_dom_css_style_declaration_get_property_value@Base 2.5.3
+ webkit_dom_css_style_declaration_get_type@Base 2.5.3
+ webkit_dom_css_style_declaration_is_property_implicit@Base 2.5.3
+ webkit_dom_css_style_declaration_item@Base 2.5.3
+ webkit_dom_css_style_declaration_remove_property@Base 2.5.3
+ webkit_dom_css_style_declaration_set_css_text@Base 2.5.3
+ webkit_dom_css_style_declaration_set_property@Base 2.5.3
+ webkit_dom_css_style_sheet_add_rule@Base 2.5.3
+ webkit_dom_css_style_sheet_delete_rule@Base 2.5.3
+ webkit_dom_css_style_sheet_get_css_rules@Base 2.5.3
+ webkit_dom_css_style_sheet_get_owner_rule@Base 2.5.3
+ webkit_dom_css_style_sheet_get_rules@Base 2.5.3
+ webkit_dom_css_style_sheet_get_type@Base 2.5.3
+ webkit_dom_css_style_sheet_insert_rule@Base 2.5.3
+ webkit_dom_css_style_sheet_remove_rule@Base 2.5.3
+ webkit_dom_css_value_get_css_text@Base 2.5.3
+ webkit_dom_css_value_get_css_value_type@Base 2.5.3
+ webkit_dom_css_value_get_type@Base 2.5.3
+ webkit_dom_css_value_set_css_text@Base 2.5.3
+ (optional)webkit_dom_data_cue_get_text@Base 2.5.3
+ (optional)webkit_dom_data_cue_get_type@Base 2.5.3
+ (optional)webkit_dom_database_get_type@Base 2.5.3
+ (optional)webkit_dom_database_get_version@Base 2.5.3
+ webkit_dom_document_adopt_node@Base 2.5.3
+ (optional)webkit_dom_document_caret_range_from_point@Base 2.5.3
+ webkit_dom_document_create_attribute@Base 2.5.3
+ webkit_dom_document_create_attribute_ns@Base 2.5.3
+ webkit_dom_document_create_cdata_section@Base 2.5.3
+ webkit_dom_document_create_comment@Base 2.5.3
+ webkit_dom_document_create_css_style_declaration@Base 2.5.3
+ webkit_dom_document_create_document_fragment@Base 2.5.3
+ webkit_dom_document_create_element@Base 2.5.3
+ webkit_dom_document_create_element_ns@Base 2.5.3
+ webkit_dom_document_create_entity_reference@Base 2.5.3
+ webkit_dom_document_create_event@Base 2.5.3
+ webkit_dom_document_create_expression@Base 2.5.3
+ webkit_dom_document_create_node_iterator@Base 2.5.3
+ webkit_dom_document_create_ns_resolver@Base 2.5.3
+ webkit_dom_document_create_processing_instruction@Base 2.5.3
+ webkit_dom_document_create_range@Base 2.5.3
+ webkit_dom_document_create_text_node@Base 2.5.3
+ (optional)webkit_dom_document_create_touch@Base 2.5.3
+ webkit_dom_document_create_tree_walker@Base 2.5.3
+ webkit_dom_document_element_from_point@Base 2.5.3
+ webkit_dom_document_evaluate@Base 2.5.3
+ webkit_dom_document_exec_command@Base 2.5.3
+ (optional)webkit_dom_document_exit_pointer_lock@Base 2.5.3
+ webkit_dom_document_fragment_get_type@Base 2.5.3
+ (optional)webkit_dom_document_fragment_query_selector@Base 2.5.3
+ (optional)webkit_dom_document_fragment_query_selector_all@Base 2.5.3
+ webkit_dom_document_get_active_element@Base 2.5.3
+ webkit_dom_document_get_anchors@Base 2.5.3
+ webkit_dom_document_get_applets@Base 2.5.3
+ webkit_dom_document_get_body@Base 2.5.3
+ webkit_dom_document_get_character_set@Base 2.5.3
+ webkit_dom_document_get_charset@Base 2.5.3
+ (optional)webkit_dom_document_get_compat_mode@Base 2.5.3
+ webkit_dom_document_get_cookie@Base 2.5.3
+ (optional)webkit_dom_document_get_current_script@Base 2.5.3
+ webkit_dom_document_get_default_charset@Base 2.5.3
+ webkit_dom_document_get_default_view@Base 2.5.3
+ webkit_dom_document_get_doctype@Base 2.5.3
+ webkit_dom_document_get_document_element@Base 2.5.3
+ webkit_dom_document_get_document_uri@Base 2.5.3
+ webkit_dom_document_get_domain@Base 2.5.3
+ webkit_dom_document_get_element_by_id@Base 2.5.3
+ webkit_dom_document_get_elements_by_class_name@Base 2.5.3
+ webkit_dom_document_get_elements_by_name@Base 2.5.3
+ webkit_dom_document_get_elements_by_tag_name@Base 2.5.3
+ webkit_dom_document_get_elements_by_tag_name_ns@Base 2.5.3
+ webkit_dom_document_get_forms@Base 2.5.3
+ webkit_dom_document_get_head@Base 2.5.3
+ (optional)webkit_dom_document_get_hidden@Base 2.5.3
+ webkit_dom_document_get_images@Base 2.5.3
+ webkit_dom_document_get_implementation@Base 2.5.3
+ webkit_dom_document_get_input_encoding@Base 2.5.3
+ webkit_dom_document_get_last_modified@Base 2.5.3
+ webkit_dom_document_get_links@Base 2.5.3
+ (optional)webkit_dom_document_get_origin@Base 2.5.3
+ webkit_dom_document_get_override_style@Base 2.5.3
+ (optional)webkit_dom_document_get_pointer_lock_element@Base 2.5.3
+ webkit_dom_document_get_preferred_stylesheet_set@Base 2.5.3
+ webkit_dom_document_get_ready_state@Base 2.5.3
+ webkit_dom_document_get_referrer@Base 2.5.3
+ (optional)webkit_dom_document_get_security_policy@Base 2.5.3
+ webkit_dom_document_get_selected_stylesheet_set@Base 2.5.3
+ webkit_dom_document_get_style_sheets@Base 2.5.3
+ webkit_dom_document_get_title@Base 2.5.3
+ webkit_dom_document_get_type@Base 2.5.3
+ webkit_dom_document_get_url@Base 2.5.3
+ (optional)webkit_dom_document_get_visibility_state@Base 2.5.3
+ (optional)webkit_dom_document_get_webkit_current_full_screen_element@Base 2.5.3
+ (optional)webkit_dom_document_get_webkit_full_screen_keyboard_input_allowed@Base 2.5.3
+ (optional)webkit_dom_document_get_webkit_fullscreen_element@Base 2.5.3
+ (optional)webkit_dom_document_get_webkit_fullscreen_enabled@Base 2.5.3
+ (optional)webkit_dom_document_get_webkit_is_full_screen@Base 2.5.3
+ webkit_dom_document_get_xml_encoding@Base 2.5.3
+ webkit_dom_document_get_xml_standalone@Base 2.5.3
+ webkit_dom_document_get_xml_version@Base 2.5.3
+ webkit_dom_document_has_focus@Base 2.5.3
+ webkit_dom_document_import_node@Base 2.5.3
+ webkit_dom_document_query_command_enabled@Base 2.5.3
+ webkit_dom_document_query_command_indeterm@Base 2.5.3
+ webkit_dom_document_query_command_state@Base 2.5.3
+ webkit_dom_document_query_command_supported@Base 2.5.3
+ webkit_dom_document_query_command_value@Base 2.5.3
+ webkit_dom_document_query_selector@Base 2.5.3
+ webkit_dom_document_query_selector_all@Base 2.5.3
+ webkit_dom_document_set_body@Base 2.5.3
+ webkit_dom_document_set_charset@Base 2.5.3
+ webkit_dom_document_set_cookie@Base 2.5.3
+ webkit_dom_document_set_document_uri@Base 2.5.3
+ webkit_dom_document_set_selected_stylesheet_set@Base 2.5.3
+ webkit_dom_document_set_title@Base 2.5.3
+ webkit_dom_document_set_xml_standalone@Base 2.5.3
+ webkit_dom_document_set_xml_version@Base 2.5.3
+ webkit_dom_document_type_get_entities@Base 2.5.3
+ webkit_dom_document_type_get_internal_subset@Base 2.5.3
+ webkit_dom_document_type_get_name@Base 2.5.3
+ webkit_dom_document_type_get_notations@Base 2.5.3
+ webkit_dom_document_type_get_public_id@Base 2.5.3
+ webkit_dom_document_type_get_system_id@Base 2.5.3
+ webkit_dom_document_type_get_type@Base 2.5.3
+ (optional)webkit_dom_document_type_remove@Base 2.5.3
+ (optional)webkit_dom_document_webkit_cancel_full_screen@Base 2.5.3
+ (optional)webkit_dom_document_webkit_exit_fullscreen@Base 2.5.3
+ (optional)webkit_dom_document_webkit_get_named_flows@Base 2.5.3
+ (optional)webkit_dom_dom_application_cache_abort@Base 2.5.3
+ (optional)webkit_dom_dom_application_cache_get_status@Base 2.5.3
+ (optional)webkit_dom_dom_application_cache_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_application_cache_swap_cache@Base 2.5.3
+ (optional)webkit_dom_dom_application_cache_update@Base 2.5.3
+ webkit_dom_dom_implementation_create_css_style_sheet@Base 2.5.3
+ webkit_dom_dom_implementation_create_document@Base 2.5.3
+ webkit_dom_dom_implementation_create_document_type@Base 2.5.3
+ webkit_dom_dom_implementation_create_html_document@Base 2.5.3
+ webkit_dom_dom_implementation_get_type@Base 2.5.3
+ webkit_dom_dom_implementation_has_feature@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_array_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_array_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_array_item@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_array_named_item@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_get_content_type@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_get_description@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_get_enabled_plugin@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_get_suffixes@Base 2.5.3
+ (optional)webkit_dom_dom_mime_type_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_named_flow_collection_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_named_flow_collection_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_named_flow_collection_item@Base 2.5.3
+ (optional)webkit_dom_dom_named_flow_collection_named_item@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_array_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_array_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_array_item@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_array_named_item@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_array_refresh@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_get_description@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_get_filename@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_get_name@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_item@Base 2.5.3
+ (optional)webkit_dom_dom_plugin_named_item@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_connection_to@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_font_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_form_action@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_frame_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_image_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_media_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_object_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_plugin_type@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_script_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_allows_style_from@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_allows_eval@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_allows_inline_script@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_allows_inline_style@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_is_active@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_report_ur_is@Base 2.5.3
+ (optional)webkit_dom_dom_security_policy_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_selection_add_range@Base 2.5.3
+ (optional)webkit_dom_dom_selection_collapse@Base 2.5.3
+ (optional)webkit_dom_dom_selection_collapse_to_end@Base 2.5.3
+ (optional)webkit_dom_dom_selection_collapse_to_start@Base 2.5.3
+ (optional)webkit_dom_dom_selection_contains_node@Base 2.5.3
+ (optional)webkit_dom_dom_selection_delete_from_document@Base 2.5.3
+ (optional)webkit_dom_dom_selection_empty@Base 2.5.3
+ (optional)webkit_dom_dom_selection_extend@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_anchor_node@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_anchor_offset@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_base_node@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_base_offset@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_extent_node@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_extent_offset@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_focus_node@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_focus_offset@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_is_collapsed@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_range_at@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_range_count@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_selection_type@Base 2.5.3
+ (optional)webkit_dom_dom_selection_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_selection_modify@Base 2.5.3
+ (optional)webkit_dom_dom_selection_remove_all_ranges@Base 2.5.3
+ (optional)webkit_dom_dom_selection_select_all_children@Base 2.5.3
+ (optional)webkit_dom_dom_selection_set_base_and_extent@Base 2.5.3
+ (optional)webkit_dom_dom_selection_set_position@Base 2.5.3
+ (optional)webkit_dom_dom_settable_token_list_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_settable_token_list_get_value@Base 2.5.3
+ (optional)webkit_dom_dom_settable_token_list_set_value@Base 2.5.3
+ (optional)webkit_dom_dom_string_list_contains@Base 2.5.3
+ (optional)webkit_dom_dom_string_list_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_string_list_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_string_list_item@Base 2.5.3
+ (optional)webkit_dom_dom_string_map_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_add@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_contains@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_item@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_remove@Base 2.5.3
+ (optional)webkit_dom_dom_token_list_toggle@Base 2.5.3
+ (optional)webkit_dom_dom_window_alert@Base 2.5.3
+ (optional)webkit_dom_dom_window_atob@Base 2.5.3
+ (optional)webkit_dom_dom_window_blur@Base 2.5.3
+ (optional)webkit_dom_dom_window_btoa@Base 2.5.3
+ (optional)webkit_dom_dom_window_cancel_animation_frame@Base 2.5.3
+ (optional)webkit_dom_dom_window_capture_events@Base 2.5.3
+ (optional)webkit_dom_dom_window_clear_interval@Base 2.5.3
+ (optional)webkit_dom_dom_window_clear_timeout@Base 2.5.3
+ (optional)webkit_dom_dom_window_close@Base 2.5.3
+ (optional)webkit_dom_dom_window_confirm@Base 2.5.3
+ (optional)webkit_dom_dom_window_css_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_window_css_supports@Base 2.5.3
+ (optional)webkit_dom_dom_window_find@Base 2.5.3
+ (optional)webkit_dom_dom_window_focus@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_application_cache@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_client_information@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_closed@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_computed_style@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_css@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_default_status@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_device_pixel_ratio@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_document@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_frame_element@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_frames@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_history@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_inner_height@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_inner_width@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_length@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_local_storage@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_locationbar@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_menubar@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_name@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_navigator@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_offscreen_buffering@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_opener@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_outer_height@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_outer_width@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_page_x_offset@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_page_y_offset@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_parent@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_performance@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_personalbar@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_screen@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_screen_left@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_screen_top@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_screen_x@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_screen_y@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_scroll_x@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_scroll_y@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_scrollbars@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_selection@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_self@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_session_storage@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_speech_synthesis@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_status@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_statusbar@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_style_media@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_toolbar@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_top@Base 2.5.3
+ webkit_dom_dom_window_get_type@Base 2.5.3
+ (optional)webkit_dom_dom_window_get_window@Base 2.5.3
+ (optional)webkit_dom_dom_window_match_media@Base 2.5.3
+ (optional)webkit_dom_dom_window_move_by@Base 2.5.3
+ (optional)webkit_dom_dom_window_move_to@Base 2.5.3
+ (optional)webkit_dom_dom_window_print@Base 2.5.3
+ (optional)webkit_dom_dom_window_prompt@Base 2.5.3
+ (optional)webkit_dom_dom_window_release_events@Base 2.5.3
+ (optional)webkit_dom_dom_window_resize_by@Base 2.5.3
+ (optional)webkit_dom_dom_window_resize_to@Base 2.5.3
+ (optional)webkit_dom_dom_window_scroll@Base 2.5.3
+ (optional)webkit_dom_dom_window_scroll_by@Base 2.5.3
+ (optional)webkit_dom_dom_window_scroll_to@Base 2.5.3
+ (optional)webkit_dom_dom_window_set_default_status@Base 2.5.3
+ (optional)webkit_dom_dom_window_set_name@Base 2.5.3
+ (optional)webkit_dom_dom_window_set_status@Base 2.5.3
+ (optional)webkit_dom_dom_window_stop@Base 2.5.3
+ (optional)webkit_dom_dom_window_webkit_cancel_animation_frame@Base 2.5.3
+ (optional)webkit_dom_dom_window_webkit_cancel_request_animation_frame@Base 2.5.3
+ (optional)webkit_dom_dom_window_webkit_convert_point_from_node_to_page@Base 2.5.3
+ (optional)webkit_dom_dom_window_webkit_convert_point_from_page_to_node@Base 2.5.3
+ webkit_dom_element_blur@Base 2.5.3
+ webkit_dom_element_focus@Base 2.5.3
+ webkit_dom_element_get_attribute@Base 2.5.3
+ webkit_dom_element_get_attribute_node@Base 2.5.3
+ webkit_dom_element_get_attribute_node_ns@Base 2.5.3
+ webkit_dom_element_get_attribute_ns@Base 2.5.3
+ webkit_dom_element_get_attributes@Base 2.5.3
+ webkit_dom_element_get_child_element_count@Base 2.5.3
+ (optional)webkit_dom_element_get_class_list@Base 2.5.3
+ webkit_dom_element_get_class_name@Base 2.5.3
+ webkit_dom_element_get_client_height@Base 2.5.3
+ webkit_dom_element_get_client_left@Base 2.5.3
+ webkit_dom_element_get_client_top@Base 2.5.3
+ webkit_dom_element_get_client_width@Base 2.5.3
+ webkit_dom_element_get_elements_by_class_name@Base 2.5.3
+ webkit_dom_element_get_elements_by_tag_name@Base 2.5.3
+ webkit_dom_element_get_elements_by_tag_name_ns@Base 2.5.3
+ webkit_dom_element_get_first_element_child@Base 2.5.3
+ webkit_dom_element_get_id@Base 2.5.3
+ webkit_dom_element_get_last_element_child@Base 2.5.3
+ webkit_dom_element_get_next_element_sibling@Base 2.5.3
+ webkit_dom_element_get_offset_height@Base 2.5.3
+ webkit_dom_element_get_offset_left@Base 2.5.3
+ webkit_dom_element_get_offset_parent@Base 2.5.3
+ webkit_dom_element_get_offset_top@Base 2.5.3
+ webkit_dom_element_get_offset_width@Base 2.5.3
+ webkit_dom_element_get_previous_element_sibling@Base 2.5.3
+ webkit_dom_element_get_scroll_height@Base 2.5.3
+ webkit_dom_element_get_scroll_left@Base 2.5.3
+ webkit_dom_element_get_scroll_top@Base 2.5.3
+ webkit_dom_element_get_scroll_width@Base 2.5.3
+ webkit_dom_element_get_style@Base 2.5.3
+ webkit_dom_element_get_tag_name@Base 2.5.3
+ webkit_dom_element_get_type@Base 2.5.3
+ (optional)webkit_dom_element_get_webkit_region_overset@Base 2.5.3
+ webkit_dom_element_has_attribute@Base 2.5.3
+ webkit_dom_element_has_attribute_ns@Base 2.5.3
+ webkit_dom_element_has_attributes@Base 2.5.3
+ (optional)webkit_dom_element_matches@Base 2.5.3
+ webkit_dom_element_query_selector@Base 2.5.3
+ webkit_dom_element_query_selector_all@Base 2.5.3
+ (optional)webkit_dom_element_remove@Base 2.5.3
+ webkit_dom_element_remove_attribute@Base 2.5.3
+ webkit_dom_element_remove_attribute_node@Base 2.5.3
+ webkit_dom_element_remove_attribute_ns@Base 2.5.3
+ (optional)webkit_dom_element_request_pointer_lock@Base 2.5.3
+ webkit_dom_element_scroll_by_lines@Base 2.5.3
+ webkit_dom_element_scroll_by_pages@Base 2.5.3
+ webkit_dom_element_scroll_into_view@Base 2.5.3
+ webkit_dom_element_scroll_into_view_if_needed@Base 2.5.3
+ webkit_dom_element_set_attribute@Base 2.5.3
+ webkit_dom_element_set_attribute_node@Base 2.5.3
+ webkit_dom_element_set_attribute_node_ns@Base 2.5.3
+ webkit_dom_element_set_attribute_ns@Base 2.5.3
+ webkit_dom_element_set_class_name@Base 2.5.3
+ webkit_dom_element_set_id@Base 2.5.3
+ webkit_dom_element_set_scroll_left@Base 2.5.3
+ webkit_dom_element_set_scroll_top@Base 2.5.3
+ (optional)webkit_dom_element_webkit_matches_selector@Base 2.5.3
+ (optional)webkit_dom_element_webkit_request_full_screen@Base 2.5.3
+ (optional)webkit_dom_element_webkit_request_fullscreen@Base 2.5.3
+ webkit_dom_entity_reference_get_type@Base 2.5.3
+ webkit_dom_event_get_bubbles@Base 2.5.3
+ webkit_dom_event_get_cancel_bubble@Base 2.5.3
+ webkit_dom_event_get_cancelable@Base 2.5.3
+ webkit_dom_event_get_current_target@Base 2.5.3
+ (optional)webkit_dom_event_get_default_prevented@Base 2.5.3
+ webkit_dom_event_get_event_phase@Base 2.5.3
+ webkit_dom_event_get_event_type@Base 2.5.3
+ webkit_dom_event_get_return_value@Base 2.5.3
+ webkit_dom_event_get_src_element@Base 2.5.3
+ webkit_dom_event_get_target@Base 2.5.3
+ webkit_dom_event_get_time_stamp@Base 2.5.3
+ webkit_dom_event_get_type@Base 2.5.3
+ webkit_dom_event_init_event@Base 2.5.3
+ webkit_dom_event_prevent_default@Base 2.5.3
+ webkit_dom_event_set_cancel_bubble@Base 2.5.3
+ webkit_dom_event_set_return_value@Base 2.5.3
+ (optional)webkit_dom_event_stop_immediate_propagation@Base 2.5.3
+ webkit_dom_event_stop_propagation@Base 2.5.3
+ webkit_dom_event_target_add_event_listener@Base 2.5.3
+ webkit_dom_event_target_add_event_listener_with_closure@Base 2.5.3
+ webkit_dom_event_target_dispatch_event@Base 2.5.3
+ webkit_dom_event_target_get_type@Base 2.5.3
+ webkit_dom_event_target_remove_event_listener@Base 2.5.3
+ webkit_dom_event_target_remove_event_listener_with_closure@Base 2.5.3
+ webkit_dom_file_get_name@Base 2.5.3
+ webkit_dom_file_get_type@Base 2.5.3
+ webkit_dom_file_list_get_length@Base 2.5.3
+ webkit_dom_file_list_get_type@Base 2.5.3
+ webkit_dom_file_list_item@Base 2.5.3
+ (optional)webkit_dom_gamepad_get_id@Base 2.5.3
+ (optional)webkit_dom_gamepad_get_index@Base 2.5.3
+ (optional)webkit_dom_gamepad_get_timestamp@Base 2.5.3
+ (optional)webkit_dom_gamepad_get_type@Base 2.5.3
+ (optional)webkit_dom_gamepad_list_get_length@Base 2.5.3
+ (optional)webkit_dom_gamepad_list_get_type@Base 2.5.3
+ (optional)webkit_dom_gamepad_list_item@Base 2.5.3
+ (optional)webkit_dom_geolocation_clear_watch@Base 2.5.3
+ (optional)webkit_dom_geolocation_get_type@Base 2.5.3
+ (optional)webkit_dom_history_back@Base 2.5.3
+ (optional)webkit_dom_history_forward@Base 2.5.3
+ (optional)webkit_dom_history_get_length@Base 2.5.3
+ (optional)webkit_dom_history_get_type@Base 2.5.3
+ (optional)webkit_dom_history_go@Base 2.5.3
+ webkit_dom_html_anchor_element_get_charset@Base 2.5.3
+ webkit_dom_html_anchor_element_get_coords@Base 2.5.3
+ (optional)webkit_dom_html_anchor_element_get_download@Base 2.5.3
+ webkit_dom_html_anchor_element_get_hash@Base 2.5.3
+ webkit_dom_html_anchor_element_get_host@Base 2.5.3
+ webkit_dom_html_anchor_element_get_hostname@Base 2.5.3
+ webkit_dom_html_anchor_element_get_href@Base 2.5.3
+ webkit_dom_html_anchor_element_get_hreflang@Base 2.5.3
+ webkit_dom_html_anchor_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_anchor_element_get_origin@Base 2.5.3
+ webkit_dom_html_anchor_element_get_pathname@Base 2.5.3
+ (optional)webkit_dom_html_anchor_element_get_ping@Base 2.5.3
+ webkit_dom_html_anchor_element_get_port@Base 2.5.3
+ webkit_dom_html_anchor_element_get_protocol@Base 2.5.3
+ webkit_dom_html_anchor_element_get_rel@Base 2.5.3
+ webkit_dom_html_anchor_element_get_rev@Base 2.5.3
+ webkit_dom_html_anchor_element_get_search@Base 2.5.3
+ webkit_dom_html_anchor_element_get_shape@Base 2.5.3
+ webkit_dom_html_anchor_element_get_target@Base 2.5.3
+ webkit_dom_html_anchor_element_get_text@Base 2.5.3
+ webkit_dom_html_anchor_element_get_type@Base 2.5.3
+ webkit_dom_html_anchor_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_anchor_element_set_charset@Base 2.5.3
+ webkit_dom_html_anchor_element_set_coords@Base 2.5.3
+ (optional)webkit_dom_html_anchor_element_set_download@Base 2.5.3
+ webkit_dom_html_anchor_element_set_hash@Base 2.5.3
+ webkit_dom_html_anchor_element_set_host@Base 2.5.3
+ webkit_dom_html_anchor_element_set_hostname@Base 2.5.3
+ webkit_dom_html_anchor_element_set_href@Base 2.5.3
+ webkit_dom_html_anchor_element_set_hreflang@Base 2.5.3
+ webkit_dom_html_anchor_element_set_name@Base 2.5.3
+ webkit_dom_html_anchor_element_set_pathname@Base 2.5.3
+ (optional)webkit_dom_html_anchor_element_set_ping@Base 2.5.3
+ webkit_dom_html_anchor_element_set_port@Base 2.5.3
+ webkit_dom_html_anchor_element_set_protocol@Base 2.5.3
+ webkit_dom_html_anchor_element_set_rel@Base 2.5.3
+ webkit_dom_html_anchor_element_set_rev@Base 2.5.3
+ webkit_dom_html_anchor_element_set_search@Base 2.5.3
+ webkit_dom_html_anchor_element_set_shape@Base 2.5.3
+ webkit_dom_html_anchor_element_set_target@Base 2.5.3
+ webkit_dom_html_anchor_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_applet_element_get_align@Base 2.5.3
+ webkit_dom_html_applet_element_get_alt@Base 2.5.3
+ webkit_dom_html_applet_element_get_archive@Base 2.5.3
+ webkit_dom_html_applet_element_get_code@Base 2.5.3
+ webkit_dom_html_applet_element_get_code_base@Base 2.5.3
+ webkit_dom_html_applet_element_get_height@Base 2.5.3
+ webkit_dom_html_applet_element_get_hspace@Base 2.5.3
+ webkit_dom_html_applet_element_get_name@Base 2.5.3
+ webkit_dom_html_applet_element_get_object@Base 2.5.3
+ webkit_dom_html_applet_element_get_type@Base 2.5.3
+ webkit_dom_html_applet_element_get_vspace@Base 2.5.3
+ webkit_dom_html_applet_element_get_width@Base 2.5.3
+ webkit_dom_html_applet_element_set_align@Base 2.5.3
+ webkit_dom_html_applet_element_set_alt@Base 2.5.3
+ webkit_dom_html_applet_element_set_archive@Base 2.5.3
+ webkit_dom_html_applet_element_set_code@Base 2.5.3
+ webkit_dom_html_applet_element_set_code_base@Base 2.5.3
+ webkit_dom_html_applet_element_set_height@Base 2.5.3
+ webkit_dom_html_applet_element_set_hspace@Base 2.5.3
+ webkit_dom_html_applet_element_set_name@Base 2.5.3
+ webkit_dom_html_applet_element_set_object@Base 2.5.3
+ webkit_dom_html_applet_element_set_vspace@Base 2.5.3
+ webkit_dom_html_applet_element_set_width@Base 2.5.3
+ webkit_dom_html_area_element_get_alt@Base 2.5.3
+ webkit_dom_html_area_element_get_coords@Base 2.5.3
+ webkit_dom_html_area_element_get_hash@Base 2.5.3
+ webkit_dom_html_area_element_get_host@Base 2.5.3
+ webkit_dom_html_area_element_get_hostname@Base 2.5.3
+ webkit_dom_html_area_element_get_href@Base 2.5.3
+ webkit_dom_html_area_element_get_no_href@Base 2.5.3
+ webkit_dom_html_area_element_get_pathname@Base 2.5.3
+ (optional)webkit_dom_html_area_element_get_ping@Base 2.5.3
+ webkit_dom_html_area_element_get_port@Base 2.5.3
+ webkit_dom_html_area_element_get_protocol@Base 2.5.3
+ webkit_dom_html_area_element_get_search@Base 2.5.3
+ webkit_dom_html_area_element_get_shape@Base 2.5.3
+ webkit_dom_html_area_element_get_target@Base 2.5.3
+ webkit_dom_html_area_element_get_type@Base 2.5.3
+ webkit_dom_html_area_element_set_alt@Base 2.5.3
+ webkit_dom_html_area_element_set_coords@Base 2.5.3
+ webkit_dom_html_area_element_set_href@Base 2.5.3
+ webkit_dom_html_area_element_set_no_href@Base 2.5.3
+ (optional)webkit_dom_html_area_element_set_ping@Base 2.5.3
+ webkit_dom_html_area_element_set_shape@Base 2.5.3
+ webkit_dom_html_area_element_set_target@Base 2.5.3
+ (optional)webkit_dom_html_audio_element_get_type@Base 2.5.3
+ webkit_dom_html_base_element_get_href@Base 2.5.3
+ webkit_dom_html_base_element_get_target@Base 2.5.3
+ webkit_dom_html_base_element_get_type@Base 2.5.3
+ webkit_dom_html_base_element_set_href@Base 2.5.3
+ webkit_dom_html_base_element_set_target@Base 2.5.3
+ webkit_dom_html_base_font_element_get_color@Base 2.5.3
+ webkit_dom_html_base_font_element_get_face@Base 2.5.3
+ webkit_dom_html_base_font_element_get_size@Base 2.5.3
+ webkit_dom_html_base_font_element_get_type@Base 2.5.3
+ webkit_dom_html_base_font_element_set_color@Base 2.5.3
+ webkit_dom_html_base_font_element_set_face@Base 2.5.3
+ webkit_dom_html_base_font_element_set_size@Base 2.5.3
+ webkit_dom_html_body_element_get_a_link@Base 2.5.3
+ webkit_dom_html_body_element_get_background@Base 2.5.3
+ webkit_dom_html_body_element_get_bg_color@Base 2.5.3
+ webkit_dom_html_body_element_get_link@Base 2.5.3
+ webkit_dom_html_body_element_get_text@Base 2.5.3
+ webkit_dom_html_body_element_get_type@Base 2.5.3
+ webkit_dom_html_body_element_get_v_link@Base 2.5.3
+ webkit_dom_html_body_element_set_a_link@Base 2.5.3
+ webkit_dom_html_body_element_set_background@Base 2.5.3
+ webkit_dom_html_body_element_set_bg_color@Base 2.5.3
+ webkit_dom_html_body_element_set_link@Base 2.5.3
+ webkit_dom_html_body_element_set_text@Base 2.5.3
+ webkit_dom_html_body_element_set_v_link@Base 2.5.3
+ webkit_dom_html_br_element_get_clear@Base 2.5.3
+ webkit_dom_html_br_element_get_type@Base 2.5.3
+ webkit_dom_html_br_element_set_clear@Base 2.5.3
+ (optional)webkit_dom_html_button_element_check_validity@Base 2.5.3
+ webkit_dom_html_button_element_get_autofocus@Base 2.5.3
+ webkit_dom_html_button_element_get_button_type@Base 2.5.3
+ webkit_dom_html_button_element_get_disabled@Base 2.5.3
+ webkit_dom_html_button_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_form_action@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_form_enctype@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_form_method@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_form_no_validate@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_form_target@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_labels@Base 2.5.3
+ webkit_dom_html_button_element_get_name@Base 2.5.3
+ webkit_dom_html_button_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_button_element_get_validity@Base 2.5.3
+ webkit_dom_html_button_element_get_value@Base 2.5.3
+ webkit_dom_html_button_element_get_will_validate@Base 2.5.3
+ webkit_dom_html_button_element_set_autofocus@Base 2.5.3
+ webkit_dom_html_button_element_set_button_type@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_custom_validity@Base 2.5.3
+ webkit_dom_html_button_element_set_disabled@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_form_action@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_form_enctype@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_form_method@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_form_no_validate@Base 2.5.3
+ (optional)webkit_dom_html_button_element_set_form_target@Base 2.5.3
+ webkit_dom_html_button_element_set_name@Base 2.5.3
+ webkit_dom_html_button_element_set_value@Base 2.5.3
+ webkit_dom_html_canvas_element_get_height@Base 2.5.3
+ webkit_dom_html_canvas_element_get_type@Base 2.5.3
+ webkit_dom_html_canvas_element_get_width@Base 2.5.3
+ webkit_dom_html_canvas_element_set_height@Base 2.5.3
+ webkit_dom_html_canvas_element_set_width@Base 2.5.3
+ webkit_dom_html_collection_get_length@Base 2.5.3
+ webkit_dom_html_collection_get_type@Base 2.5.3
+ webkit_dom_html_collection_item@Base 2.5.3
+ webkit_dom_html_collection_named_item@Base 2.5.3
+ webkit_dom_html_d_list_element_get_compact@Base 2.5.3
+ webkit_dom_html_d_list_element_get_type@Base 2.5.3
+ webkit_dom_html_d_list_element_set_compact@Base 2.5.3
+ (optional)webkit_dom_html_details_element_get_open@Base 2.5.3
+ (optional)webkit_dom_html_details_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_details_element_set_open@Base 2.5.3
+ webkit_dom_html_directory_element_get_compact@Base 2.5.3
+ webkit_dom_html_directory_element_get_type@Base 2.5.3
+ webkit_dom_html_directory_element_set_compact@Base 2.5.3
+ webkit_dom_html_div_element_get_align@Base 2.5.3
+ webkit_dom_html_div_element_get_type@Base 2.5.3
+ webkit_dom_html_div_element_set_align@Base 2.5.3
+ webkit_dom_html_document_capture_events@Base 2.5.3
+ webkit_dom_html_document_clear@Base 2.5.3
+ webkit_dom_html_document_close@Base 2.5.3
+ webkit_dom_html_document_get_alink_color@Base 2.5.3
+ webkit_dom_html_document_get_bg_color@Base 2.5.3
+ webkit_dom_html_document_get_compat_mode@Base 2.5.3
+ webkit_dom_html_document_get_design_mode@Base 2.5.3
+ webkit_dom_html_document_get_dir@Base 2.5.3
+ webkit_dom_html_document_get_embeds@Base 2.5.3
+ webkit_dom_html_document_get_fg_color@Base 2.5.3
+ webkit_dom_html_document_get_height@Base 2.5.3
+ webkit_dom_html_document_get_link_color@Base 2.5.3
+ webkit_dom_html_document_get_plugins@Base 2.5.3
+ webkit_dom_html_document_get_scripts@Base 2.5.3
+ webkit_dom_html_document_get_type@Base 2.5.3
+ webkit_dom_html_document_get_vlink_color@Base 2.5.3
+ webkit_dom_html_document_get_width@Base 2.5.3
+ webkit_dom_html_document_release_events@Base 2.5.3
+ webkit_dom_html_document_set_alink_color@Base 2.5.3
+ webkit_dom_html_document_set_bg_color@Base 2.5.3
+ webkit_dom_html_document_set_design_mode@Base 2.5.3
+ webkit_dom_html_document_set_dir@Base 2.5.3
+ webkit_dom_html_document_set_fg_color@Base 2.5.3
+ webkit_dom_html_document_set_link_color@Base 2.5.3
+ webkit_dom_html_document_set_vlink_color@Base 2.5.3
+ webkit_dom_html_element_click@Base 2.5.3
+ webkit_dom_html_element_get_access_key@Base 2.5.3
+ webkit_dom_html_element_get_children@Base 2.5.3
+ webkit_dom_html_element_get_content_editable@Base 2.5.3
+ webkit_dom_html_element_get_dir@Base 2.5.3
+ (optional)webkit_dom_html_element_get_draggable@Base 2.5.3
+ (optional)webkit_dom_html_element_get_hidden@Base 2.5.3
+ webkit_dom_html_element_get_inner_html@Base 2.5.3
+ webkit_dom_html_element_get_inner_text@Base 2.5.3
+ webkit_dom_html_element_get_is_content_editable@Base 2.5.3
+ webkit_dom_html_element_get_lang@Base 2.5.3
+ webkit_dom_html_element_get_outer_html@Base 2.5.3
+ webkit_dom_html_element_get_outer_text@Base 2.5.3
+ (optional)webkit_dom_html_element_get_spellcheck@Base 2.5.3
+ webkit_dom_html_element_get_tab_index@Base 2.5.3
+ webkit_dom_html_element_get_title@Base 2.5.3
+ (optional)webkit_dom_html_element_get_translate@Base 2.5.3
+ webkit_dom_html_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_element_get_webkitdropzone@Base 2.5.3
+ (optional)webkit_dom_html_element_insert_adjacent_element@Base 2.5.3
+ (optional)webkit_dom_html_element_insert_adjacent_html@Base 2.5.3
+ (optional)webkit_dom_html_element_insert_adjacent_text@Base 2.5.3
+ webkit_dom_html_element_set_access_key@Base 2.5.3
+ webkit_dom_html_element_set_content_editable@Base 2.5.3
+ webkit_dom_html_element_set_dir@Base 2.5.3
+ (optional)webkit_dom_html_element_set_draggable@Base 2.5.3
+ (optional)webkit_dom_html_element_set_hidden@Base 2.5.3
+ webkit_dom_html_element_set_inner_html@Base 2.5.3
+ webkit_dom_html_element_set_inner_text@Base 2.5.3
+ webkit_dom_html_element_set_lang@Base 2.5.3
+ webkit_dom_html_element_set_outer_html@Base 2.5.3
+ webkit_dom_html_element_set_outer_text@Base 2.5.3
+ (optional)webkit_dom_html_element_set_spellcheck@Base 2.5.3
+ webkit_dom_html_element_set_tab_index@Base 2.5.3
+ webkit_dom_html_element_set_title@Base 2.5.3
+ (optional)webkit_dom_html_element_set_translate@Base 2.5.3
+ (optional)webkit_dom_html_element_set_webkitdropzone@Base 2.5.3
+ webkit_dom_html_embed_element_get_align@Base 2.5.3
+ webkit_dom_html_embed_element_get_height@Base 2.5.3
+ webkit_dom_html_embed_element_get_name@Base 2.5.3
+ webkit_dom_html_embed_element_get_src@Base 2.5.3
+ webkit_dom_html_embed_element_get_type@Base 2.5.3
+ webkit_dom_html_embed_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_embed_element_get_width@Base 2.5.3
+ webkit_dom_html_embed_element_set_align@Base 2.5.3
+ webkit_dom_html_embed_element_set_height@Base 2.5.3
+ webkit_dom_html_embed_element_set_name@Base 2.5.3
+ webkit_dom_html_embed_element_set_src@Base 2.5.3
+ webkit_dom_html_embed_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_embed_element_set_width@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_check_validity@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_disabled@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_elements@Base 2.5.3
+ webkit_dom_html_field_set_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_set_type@Base 2.5.3
+ webkit_dom_html_field_set_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_validity@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_get_will_validate@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_set_custom_validity@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_set_disabled@Base 2.5.3
+ (optional)webkit_dom_html_field_set_element_set_name@Base 2.5.3
+ webkit_dom_html_font_element_get_color@Base 2.5.3
+ webkit_dom_html_font_element_get_face@Base 2.5.3
+ webkit_dom_html_font_element_get_size@Base 2.5.3
+ webkit_dom_html_font_element_get_type@Base 2.5.3
+ webkit_dom_html_font_element_set_color@Base 2.5.3
+ webkit_dom_html_font_element_set_face@Base 2.5.3
+ webkit_dom_html_font_element_set_size@Base 2.5.3
+ (optional)webkit_dom_html_form_element_check_validity@Base 2.5.3
+ webkit_dom_html_form_element_get_accept_charset@Base 2.5.3
+ webkit_dom_html_form_element_get_action@Base 2.5.3
+ (optional)webkit_dom_html_form_element_get_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_form_element_get_autocomplete@Base 2.5.3
+ (optional)webkit_dom_html_form_element_get_autocorrect@Base 2.5.3
+ webkit_dom_html_form_element_get_elements@Base 2.5.3
+ webkit_dom_html_form_element_get_encoding@Base 2.5.3
+ webkit_dom_html_form_element_get_enctype@Base 2.5.3
+ webkit_dom_html_form_element_get_length@Base 2.5.3
+ webkit_dom_html_form_element_get_method@Base 2.5.3
+ webkit_dom_html_form_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_form_element_get_no_validate@Base 2.5.3
+ webkit_dom_html_form_element_get_target@Base 2.5.3
+ webkit_dom_html_form_element_get_type@Base 2.5.3
+ webkit_dom_html_form_element_request_autocomplete@Base 2.6.0
+ webkit_dom_html_form_element_reset@Base 2.5.3
+ webkit_dom_html_form_element_set_accept_charset@Base 2.5.3
+ webkit_dom_html_form_element_set_action@Base 2.5.3
+ (optional)webkit_dom_html_form_element_set_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_form_element_set_autocomplete@Base 2.5.3
+ (optional)webkit_dom_html_form_element_set_autocorrect@Base 2.5.3
+ webkit_dom_html_form_element_set_encoding@Base 2.5.3
+ webkit_dom_html_form_element_set_enctype@Base 2.5.3
+ webkit_dom_html_form_element_set_method@Base 2.5.3
+ webkit_dom_html_form_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_form_element_set_no_validate@Base 2.5.3
+ webkit_dom_html_form_element_set_target@Base 2.5.3
+ webkit_dom_html_form_element_submit@Base 2.5.3
+ webkit_dom_html_frame_element_get_content_document@Base 2.5.3
+ webkit_dom_html_frame_element_get_content_window@Base 2.5.3
+ webkit_dom_html_frame_element_get_frame_border@Base 2.5.3
+ webkit_dom_html_frame_element_get_height@Base 2.5.3
+ webkit_dom_html_frame_element_get_long_desc@Base 2.5.3
+ webkit_dom_html_frame_element_get_margin_height@Base 2.5.3
+ webkit_dom_html_frame_element_get_margin_width@Base 2.5.3
+ webkit_dom_html_frame_element_get_name@Base 2.5.3
+ webkit_dom_html_frame_element_get_no_resize@Base 2.5.3
+ webkit_dom_html_frame_element_get_scrolling@Base 2.5.3
+ webkit_dom_html_frame_element_get_src@Base 2.5.3
+ webkit_dom_html_frame_element_get_type@Base 2.5.3
+ webkit_dom_html_frame_element_get_width@Base 2.5.3
+ webkit_dom_html_frame_element_set_frame_border@Base 2.5.3
+ webkit_dom_html_frame_element_set_long_desc@Base 2.5.3
+ webkit_dom_html_frame_element_set_margin_height@Base 2.5.3
+ webkit_dom_html_frame_element_set_margin_width@Base 2.5.3
+ webkit_dom_html_frame_element_set_name@Base 2.5.3
+ webkit_dom_html_frame_element_set_no_resize@Base 2.5.3
+ webkit_dom_html_frame_element_set_scrolling@Base 2.5.3
+ webkit_dom_html_frame_element_set_src@Base 2.5.3
+ webkit_dom_html_frame_set_element_get_cols@Base 2.5.3
+ webkit_dom_html_frame_set_element_get_rows@Base 2.5.3
+ webkit_dom_html_frame_set_element_get_type@Base 2.5.3
+ webkit_dom_html_frame_set_element_set_cols@Base 2.5.3
+ webkit_dom_html_frame_set_element_set_rows@Base 2.5.3
+ webkit_dom_html_head_element_get_profile@Base 2.5.3
+ webkit_dom_html_head_element_get_type@Base 2.5.3
+ webkit_dom_html_head_element_set_profile@Base 2.5.3
+ webkit_dom_html_heading_element_get_align@Base 2.5.3
+ webkit_dom_html_heading_element_get_type@Base 2.5.3
+ webkit_dom_html_heading_element_set_align@Base 2.5.3
+ webkit_dom_html_hr_element_get_align@Base 2.5.3
+ webkit_dom_html_hr_element_get_no_shade@Base 2.5.3
+ webkit_dom_html_hr_element_get_size@Base 2.5.3
+ webkit_dom_html_hr_element_get_type@Base 2.5.3
+ webkit_dom_html_hr_element_get_width@Base 2.5.3
+ webkit_dom_html_hr_element_set_align@Base 2.5.3
+ webkit_dom_html_hr_element_set_no_shade@Base 2.5.3
+ webkit_dom_html_hr_element_set_size@Base 2.5.3
+ webkit_dom_html_hr_element_set_width@Base 2.5.3
+ (optional)webkit_dom_html_html_element_get_manifest@Base 2.5.3
+ webkit_dom_html_html_element_get_type@Base 2.5.3
+ webkit_dom_html_html_element_get_version@Base 2.5.3
+ (optional)webkit_dom_html_html_element_set_manifest@Base 2.5.3
+ webkit_dom_html_html_element_set_version@Base 2.5.3
+ webkit_dom_html_iframe_element_get_align@Base 2.5.3
+ webkit_dom_html_iframe_element_get_content_document@Base 2.5.3
+ webkit_dom_html_iframe_element_get_content_window@Base 2.5.3
+ webkit_dom_html_iframe_element_get_frame_border@Base 2.5.3
+ webkit_dom_html_iframe_element_get_height@Base 2.5.3
+ webkit_dom_html_iframe_element_get_long_desc@Base 2.5.3
+ webkit_dom_html_iframe_element_get_margin_height@Base 2.5.3
+ webkit_dom_html_iframe_element_get_margin_width@Base 2.5.3
+ webkit_dom_html_iframe_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_iframe_element_get_sandbox@Base 2.5.3
+ webkit_dom_html_iframe_element_get_scrolling@Base 2.5.3
+ webkit_dom_html_iframe_element_get_src@Base 2.5.3
+ (optional)webkit_dom_html_iframe_element_get_srcdoc@Base 2.5.3
+ webkit_dom_html_iframe_element_get_type@Base 2.5.3
+ webkit_dom_html_iframe_element_get_width@Base 2.5.3
+ webkit_dom_html_iframe_element_set_align@Base 2.5.3
+ webkit_dom_html_iframe_element_set_frame_border@Base 2.5.3
+ webkit_dom_html_iframe_element_set_height@Base 2.5.3
+ webkit_dom_html_iframe_element_set_long_desc@Base 2.5.3
+ webkit_dom_html_iframe_element_set_margin_height@Base 2.5.3
+ webkit_dom_html_iframe_element_set_margin_width@Base 2.5.3
+ webkit_dom_html_iframe_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_iframe_element_set_sandbox@Base 2.5.3
+ webkit_dom_html_iframe_element_set_scrolling@Base 2.5.3
+ webkit_dom_html_iframe_element_set_src@Base 2.5.3
+ (optional)webkit_dom_html_iframe_element_set_srcdoc@Base 2.5.3
+ webkit_dom_html_iframe_element_set_width@Base 2.5.3
+ webkit_dom_html_image_element_get_align@Base 2.5.3
+ webkit_dom_html_image_element_get_alt@Base 2.5.3
+ webkit_dom_html_image_element_get_border@Base 2.5.3
+ webkit_dom_html_image_element_get_complete@Base 2.5.3
+ (optional)webkit_dom_html_image_element_get_cross_origin@Base 2.5.3
+ (optional)webkit_dom_html_image_element_get_current_src@Base 2.5.3
+ webkit_dom_html_image_element_get_height@Base 2.5.3
+ webkit_dom_html_image_element_get_hspace@Base 2.5.3
+ webkit_dom_html_image_element_get_is_map@Base 2.5.3
+ webkit_dom_html_image_element_get_long_desc@Base 2.5.3
+ webkit_dom_html_image_element_get_lowsrc@Base 2.5.3
+ webkit_dom_html_image_element_get_name@Base 2.5.3
+ webkit_dom_html_image_element_get_natural_height@Base 2.5.3
+ webkit_dom_html_image_element_get_natural_width@Base 2.5.3
+ (optional)webkit_dom_html_image_element_get_sizes@Base 2.5.3
+ webkit_dom_html_image_element_get_src@Base 2.5.3
+ (optional)webkit_dom_html_image_element_get_srcset@Base 2.5.3
+ webkit_dom_html_image_element_get_type@Base 2.5.3
+ webkit_dom_html_image_element_get_use_map@Base 2.5.3
+ webkit_dom_html_image_element_get_vspace@Base 2.5.3
+ webkit_dom_html_image_element_get_width@Base 2.5.3
+ webkit_dom_html_image_element_get_x@Base 2.5.3
+ webkit_dom_html_image_element_get_y@Base 2.5.3
+ webkit_dom_html_image_element_set_align@Base 2.5.3
+ webkit_dom_html_image_element_set_alt@Base 2.5.3
+ webkit_dom_html_image_element_set_border@Base 2.5.3
+ (optional)webkit_dom_html_image_element_set_cross_origin@Base 2.5.3
+ webkit_dom_html_image_element_set_height@Base 2.5.3
+ webkit_dom_html_image_element_set_hspace@Base 2.5.3
+ webkit_dom_html_image_element_set_is_map@Base 2.5.3
+ webkit_dom_html_image_element_set_long_desc@Base 2.5.3
+ webkit_dom_html_image_element_set_lowsrc@Base 2.5.3
+ webkit_dom_html_image_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_image_element_set_sizes@Base 2.5.3
+ webkit_dom_html_image_element_set_src@Base 2.5.3
+ (optional)webkit_dom_html_image_element_set_srcset@Base 2.5.3
+ webkit_dom_html_image_element_set_use_map@Base 2.5.3
+ webkit_dom_html_image_element_set_vspace@Base 2.5.3
+ webkit_dom_html_image_element_set_width@Base 2.5.3
+ (optional)webkit_dom_html_input_element_check_validity@Base 2.5.3
+ webkit_dom_html_input_element_get_accept@Base 2.5.3
+ webkit_dom_html_input_element_get_align@Base 2.5.3
+ webkit_dom_html_input_element_get_alt@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_autocomplete@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_autocorrect@Base 2.5.3
+ webkit_dom_html_input_element_get_autofocus@Base 2.5.3
+ webkit_dom_html_input_element_get_capture@Base 2.5.3
+ webkit_dom_html_input_element_get_checked@Base 2.5.3
+ webkit_dom_html_input_element_get_default_checked@Base 2.5.3
+ webkit_dom_html_input_element_get_default_value@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_dir_name@Base 2.5.3
+ webkit_dom_html_input_element_get_disabled@Base 2.5.3
+ webkit_dom_html_input_element_get_files@Base 2.5.3
+ webkit_dom_html_input_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_form_action@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_form_enctype@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_form_method@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_form_no_validate@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_form_target@Base 2.5.3
+ webkit_dom_html_input_element_get_height@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_incremental@Base 2.5.3
+ webkit_dom_html_input_element_get_indeterminate@Base 2.5.3
+ webkit_dom_html_input_element_get_input_type@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_labels@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_list@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_max@Base 2.5.3
+ webkit_dom_html_input_element_get_max_length@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_min@Base 2.5.3
+ webkit_dom_html_input_element_get_multiple@Base 2.5.3
+ webkit_dom_html_input_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_pattern@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_placeholder@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_read_only@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_required@Base 2.5.3
+ webkit_dom_html_input_element_get_size@Base 2.5.3
+ webkit_dom_html_input_element_get_src@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_step@Base 2.5.3
+ webkit_dom_html_input_element_get_type@Base 2.5.3
+ webkit_dom_html_input_element_get_use_map@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_validity@Base 2.5.3
+ webkit_dom_html_input_element_get_value@Base 2.5.3
+ (optional)webkit_dom_html_input_element_get_value_as_number@Base 2.5.3
+ webkit_dom_html_input_element_get_width@Base 2.5.3
+ webkit_dom_html_input_element_get_will_validate@Base 2.5.3
+ webkit_dom_html_input_element_is_edited@Base 2.5.3
+ webkit_dom_html_input_element_select@Base 2.5.3
+ webkit_dom_html_input_element_set_accept@Base 2.5.3
+ webkit_dom_html_input_element_set_align@Base 2.5.3
+ webkit_dom_html_input_element_set_alt@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_autocomplete@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_autocorrect@Base 2.5.3
+ webkit_dom_html_input_element_set_autofocus@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_capture@Base 2.5.3
+ webkit_dom_html_input_element_set_checked@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_custom_validity@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_default_checked@Base 2.5.3
+ webkit_dom_html_input_element_set_default_value@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_dir_name@Base 2.5.3
+ webkit_dom_html_input_element_set_disabled@Base 2.5.3
+ webkit_dom_html_input_element_set_files@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_form_action@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_form_enctype@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_form_method@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_form_no_validate@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_form_target@Base 2.5.3
+ webkit_dom_html_input_element_set_height@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_incremental@Base 2.5.3
+ webkit_dom_html_input_element_set_indeterminate@Base 2.5.3
+ webkit_dom_html_input_element_set_input_type@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_max@Base 2.5.3
+ webkit_dom_html_input_element_set_max_length@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_min@Base 2.5.3
+ webkit_dom_html_input_element_set_multiple@Base 2.5.3
+ webkit_dom_html_input_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_pattern@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_placeholder@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_range_text@Base 2.5.3
+ webkit_dom_html_input_element_set_read_only@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_required@Base 2.5.3
+ webkit_dom_html_input_element_set_size@Base 2.5.3
+ webkit_dom_html_input_element_set_src@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_step@Base 2.5.3
+ webkit_dom_html_input_element_set_use_map@Base 2.5.3
+ webkit_dom_html_input_element_set_value@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_value_as_number@Base 2.5.3
+ (optional)webkit_dom_html_input_element_set_value_for_user@Base 2.5.3
+ webkit_dom_html_input_element_set_width@Base 2.5.3
+ (optional)webkit_dom_html_input_element_step_down@Base 2.5.3
+ (optional)webkit_dom_html_input_element_step_up@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_check_validity@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_autofocus@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_challenge@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_disabled@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_keygen_type@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_keytype@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_labels@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_validity@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_get_will_validate@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_autofocus@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_challenge@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_custom_validity@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_disabled@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_keytype@Base 2.5.3
+ (optional)webkit_dom_html_keygen_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_label_element_get_control@Base 2.5.3
+ webkit_dom_html_label_element_get_form@Base 2.5.3
+ webkit_dom_html_label_element_get_html_for@Base 2.5.3
+ webkit_dom_html_label_element_get_type@Base 2.5.3
+ webkit_dom_html_label_element_set_html_for@Base 2.5.3
+ webkit_dom_html_legend_element_get_align@Base 2.5.3
+ webkit_dom_html_legend_element_get_form@Base 2.5.3
+ webkit_dom_html_legend_element_get_type@Base 2.5.3
+ webkit_dom_html_legend_element_set_align@Base 2.5.3
+ webkit_dom_html_li_element_get_type@Base 2.5.3
+ webkit_dom_html_li_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_li_element_get_value@Base 2.5.3
+ webkit_dom_html_li_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_li_element_set_value@Base 2.5.3
+ webkit_dom_html_link_element_get_charset@Base 2.5.3
+ webkit_dom_html_link_element_get_disabled@Base 2.5.3
+ webkit_dom_html_link_element_get_href@Base 2.5.3
+ webkit_dom_html_link_element_get_hreflang@Base 2.5.3
+ webkit_dom_html_link_element_get_media@Base 2.5.3
+ webkit_dom_html_link_element_get_rel@Base 2.5.3
+ webkit_dom_html_link_element_get_rev@Base 2.5.3
+ webkit_dom_html_link_element_get_sheet@Base 2.5.3
+ webkit_dom_html_link_element_get_target@Base 2.5.3
+ webkit_dom_html_link_element_get_type@Base 2.5.3
+ webkit_dom_html_link_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_link_element_set_charset@Base 2.5.3
+ webkit_dom_html_link_element_set_disabled@Base 2.5.3
+ webkit_dom_html_link_element_set_href@Base 2.5.3
+ webkit_dom_html_link_element_set_hreflang@Base 2.5.3
+ webkit_dom_html_link_element_set_media@Base 2.5.3
+ webkit_dom_html_link_element_set_rel@Base 2.5.3
+ webkit_dom_html_link_element_set_rev@Base 2.5.3
+ webkit_dom_html_link_element_set_target@Base 2.5.3
+ webkit_dom_html_link_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_map_element_get_areas@Base 2.5.3
+ webkit_dom_html_map_element_get_name@Base 2.5.3
+ webkit_dom_html_map_element_get_type@Base 2.5.3
+ webkit_dom_html_map_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_behavior@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_bg_color@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_direction@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_height@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_hspace@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_loop@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_scroll_amount@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_scroll_delay@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_true_speed@Base 2.5.3
+ webkit_dom_html_marquee_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_vspace@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_get_width@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_behavior@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_bg_color@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_direction@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_height@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_hspace@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_loop@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_scroll_amount@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_scroll_delay@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_true_speed@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_vspace@Base 2.5.3
+ (optional)webkit_dom_html_marquee_element_set_width@Base 2.5.3
+ webkit_dom_html_marquee_element_start@Base 2.5.3
+ webkit_dom_html_marquee_element_stop@Base 2.5.3
+ (optional)webkit_dom_html_media_element_add_text_track@Base 2.5.3
+ (optional)webkit_dom_html_media_element_can_play_type@Base 2.5.3
+ (optional)webkit_dom_html_media_element_fast_seek@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_audio_tracks@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_autoplay@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_buffered@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_controller@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_controls@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_current_src@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_current_time@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_default_muted@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_default_playback_rate@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_duration@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_ended@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_error@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_loop@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_media_group@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_muted@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_network_state@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_paused@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_playback_rate@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_played@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_preload@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_ready_state@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_seekable@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_seeking@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_src@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_text_tracks@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_video_tracks@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_volume@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_audio_decoded_byte_count@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_closed_captions_visible@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_current_playback_target_is_wireless@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_has_closed_captions@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_preserves_pitch@Base 2.5.3
+ (optional)webkit_dom_html_media_element_get_webkit_video_decoded_byte_count@Base 2.5.3
+ (optional)webkit_dom_html_media_element_load@Base 2.5.3
+ (optional)webkit_dom_html_media_element_pause@Base 2.5.3
+ (optional)webkit_dom_html_media_element_play@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_autoplay@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_controls@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_current_time@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_default_muted@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_default_playback_rate@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_loop@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_media_group@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_muted@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_playback_rate@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_preload@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_src@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_volume@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_webkit_closed_captions_visible@Base 2.5.3
+ (optional)webkit_dom_html_media_element_set_webkit_preserves_pitch@Base 2.5.3
+ (optional)webkit_dom_html_media_element_webkit_show_playback_target_picker@Base 2.5.3
+ webkit_dom_html_menu_element_get_compact@Base 2.5.3
+ webkit_dom_html_menu_element_get_type@Base 2.5.3
+ webkit_dom_html_menu_element_set_compact@Base 2.5.3
+ webkit_dom_html_meta_element_get_content@Base 2.5.3
+ webkit_dom_html_meta_element_get_http_equiv@Base 2.5.3
+ webkit_dom_html_meta_element_get_name@Base 2.5.3
+ webkit_dom_html_meta_element_get_scheme@Base 2.5.3
+ webkit_dom_html_meta_element_get_type@Base 2.5.3
+ webkit_dom_html_meta_element_set_content@Base 2.5.3
+ webkit_dom_html_meta_element_set_http_equiv@Base 2.5.3
+ webkit_dom_html_meta_element_set_name@Base 2.5.3
+ webkit_dom_html_meta_element_set_scheme@Base 2.5.3
+ webkit_dom_html_mod_element_get_cite@Base 2.5.3
+ webkit_dom_html_mod_element_get_date_time@Base 2.5.3
+ webkit_dom_html_mod_element_get_type@Base 2.5.3
+ webkit_dom_html_mod_element_set_cite@Base 2.5.3
+ webkit_dom_html_mod_element_set_date_time@Base 2.5.3
+ webkit_dom_html_o_list_element_get_compact@Base 2.5.3
+ (optional)webkit_dom_html_o_list_element_get_reversed@Base 2.5.3
+ webkit_dom_html_o_list_element_get_start@Base 2.5.3
+ webkit_dom_html_o_list_element_get_type@Base 2.5.3
+ webkit_dom_html_o_list_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_o_list_element_set_compact@Base 2.5.3
+ (optional)webkit_dom_html_o_list_element_set_reversed@Base 2.5.3
+ webkit_dom_html_o_list_element_set_start@Base 2.5.3
+ webkit_dom_html_o_list_element_set_type_attr@Base 2.5.3
+ (optional)webkit_dom_html_object_element_check_validity@Base 2.5.3
+ webkit_dom_html_object_element_get_align@Base 2.5.3
+ webkit_dom_html_object_element_get_archive@Base 2.5.3
+ webkit_dom_html_object_element_get_border@Base 2.5.3
+ webkit_dom_html_object_element_get_code@Base 2.5.3
+ webkit_dom_html_object_element_get_code_base@Base 2.5.3
+ webkit_dom_html_object_element_get_code_type@Base 2.5.3
+ webkit_dom_html_object_element_get_content_document@Base 2.5.3
+ webkit_dom_html_object_element_get_data@Base 2.5.3
+ webkit_dom_html_object_element_get_declare@Base 2.5.3
+ webkit_dom_html_object_element_get_form@Base 2.5.3
+ webkit_dom_html_object_element_get_height@Base 2.5.3
+ webkit_dom_html_object_element_get_hspace@Base 2.5.3
+ webkit_dom_html_object_element_get_name@Base 2.5.3
+ webkit_dom_html_object_element_get_standby@Base 2.5.3
+ webkit_dom_html_object_element_get_type@Base 2.5.3
+ webkit_dom_html_object_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_object_element_get_use_map@Base 2.5.3
+ (optional)webkit_dom_html_object_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_object_element_get_validity@Base 2.5.3
+ webkit_dom_html_object_element_get_vspace@Base 2.5.3
+ webkit_dom_html_object_element_get_width@Base 2.5.3
+ (optional)webkit_dom_html_object_element_get_will_validate@Base 2.5.3
+ webkit_dom_html_object_element_set_align@Base 2.5.3
+ webkit_dom_html_object_element_set_archive@Base 2.5.3
+ webkit_dom_html_object_element_set_border@Base 2.5.3
+ webkit_dom_html_object_element_set_code@Base 2.5.3
+ webkit_dom_html_object_element_set_code_base@Base 2.5.3
+ webkit_dom_html_object_element_set_code_type@Base 2.5.3
+ (optional)webkit_dom_html_object_element_set_custom_validity@Base 2.5.3
+ webkit_dom_html_object_element_set_data@Base 2.5.3
+ webkit_dom_html_object_element_set_declare@Base 2.5.3
+ webkit_dom_html_object_element_set_height@Base 2.5.3
+ webkit_dom_html_object_element_set_hspace@Base 2.5.3
+ webkit_dom_html_object_element_set_name@Base 2.5.3
+ webkit_dom_html_object_element_set_standby@Base 2.5.3
+ webkit_dom_html_object_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_object_element_set_use_map@Base 2.5.3
+ webkit_dom_html_object_element_set_vspace@Base 2.5.3
+ webkit_dom_html_object_element_set_width@Base 2.5.3
+ webkit_dom_html_opt_group_element_get_disabled@Base 2.5.3
+ webkit_dom_html_opt_group_element_get_label@Base 2.5.3
+ webkit_dom_html_opt_group_element_get_type@Base 2.5.3
+ webkit_dom_html_opt_group_element_set_disabled@Base 2.5.3
+ webkit_dom_html_opt_group_element_set_label@Base 2.5.3
+ webkit_dom_html_option_element_get_default_selected@Base 2.5.3
+ webkit_dom_html_option_element_get_disabled@Base 2.5.3
+ webkit_dom_html_option_element_get_form@Base 2.5.3
+ webkit_dom_html_option_element_get_index@Base 2.5.3
+ webkit_dom_html_option_element_get_label@Base 2.5.3
+ webkit_dom_html_option_element_get_selected@Base 2.5.3
+ webkit_dom_html_option_element_get_text@Base 2.5.3
+ webkit_dom_html_option_element_get_type@Base 2.5.3
+ webkit_dom_html_option_element_get_value@Base 2.5.3
+ webkit_dom_html_option_element_set_default_selected@Base 2.5.3
+ webkit_dom_html_option_element_set_disabled@Base 2.5.3
+ webkit_dom_html_option_element_set_label@Base 2.5.3
+ webkit_dom_html_option_element_set_selected@Base 2.5.3
+ webkit_dom_html_option_element_set_value@Base 2.5.3
+ webkit_dom_html_options_collection_get_length@Base 2.5.3
+ webkit_dom_html_options_collection_get_selected_index@Base 2.5.3
+ webkit_dom_html_options_collection_get_type@Base 2.5.3
+ webkit_dom_html_options_collection_named_item@Base 2.5.3
+ webkit_dom_html_options_collection_set_selected_index@Base 2.5.3
+ webkit_dom_html_paragraph_element_get_align@Base 2.5.3
+ webkit_dom_html_paragraph_element_get_type@Base 2.5.3
+ webkit_dom_html_paragraph_element_set_align@Base 2.5.3
+ webkit_dom_html_param_element_get_name@Base 2.5.3
+ webkit_dom_html_param_element_get_type@Base 2.5.3
+ webkit_dom_html_param_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_param_element_get_value@Base 2.5.3
+ webkit_dom_html_param_element_get_value_type@Base 2.5.3
+ webkit_dom_html_param_element_set_name@Base 2.5.3
+ webkit_dom_html_param_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_param_element_set_value@Base 2.5.3
+ webkit_dom_html_param_element_set_value_type@Base 2.5.3
+ webkit_dom_html_pre_element_get_type@Base 2.5.3
+ webkit_dom_html_pre_element_get_width@Base 2.5.3
+ webkit_dom_html_pre_element_get_wrap@Base 2.5.3
+ webkit_dom_html_pre_element_set_width@Base 2.5.3
+ webkit_dom_html_pre_element_set_wrap@Base 2.5.3
+ webkit_dom_html_quote_element_get_cite@Base 2.5.3
+ webkit_dom_html_quote_element_get_type@Base 2.5.3
+ webkit_dom_html_quote_element_set_cite@Base 2.5.3
+ (optional)webkit_dom_html_script_element_get_async@Base 2.5.3
+ webkit_dom_html_script_element_get_charset@Base 2.5.3
+ (optional)webkit_dom_html_script_element_get_cross_origin@Base 2.5.3
+ webkit_dom_html_script_element_get_defer@Base 2.5.3
+ webkit_dom_html_script_element_get_event@Base 2.5.3
+ webkit_dom_html_script_element_get_html_for@Base 2.5.3
+ (optional)webkit_dom_html_script_element_get_nonce@Base 2.5.3
+ webkit_dom_html_script_element_get_src@Base 2.5.3
+ webkit_dom_html_script_element_get_text@Base 2.5.3
+ webkit_dom_html_script_element_get_type@Base 2.5.3
+ webkit_dom_html_script_element_get_type_attr@Base 2.5.3
+ (optional)webkit_dom_html_script_element_set_async@Base 2.5.3
+ (optional)webkit_dom_html_script_element_set_charset@Base 2.5.3
+ (optional)webkit_dom_html_script_element_set_cross_origin@Base 2.5.3
+ webkit_dom_html_script_element_set_defer@Base 2.5.3
+ webkit_dom_html_script_element_set_event@Base 2.5.3
+ webkit_dom_html_script_element_set_html_for@Base 2.5.3
+ (optional)webkit_dom_html_script_element_set_nonce@Base 2.5.3
+ webkit_dom_html_script_element_set_src@Base 2.5.3
+ webkit_dom_html_script_element_set_text@Base 2.5.3
+ webkit_dom_html_script_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_select_element_add@Base 2.5.3
+ (optional)webkit_dom_html_select_element_check_validity@Base 2.5.3
+ webkit_dom_html_select_element_get_autofocus@Base 2.5.3
+ webkit_dom_html_select_element_get_disabled@Base 2.5.3
+ webkit_dom_html_select_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_select_element_get_labels@Base 2.5.3
+ webkit_dom_html_select_element_get_length@Base 2.5.3
+ webkit_dom_html_select_element_get_multiple@Base 2.5.3
+ webkit_dom_html_select_element_get_name@Base 2.5.3
+ webkit_dom_html_select_element_get_options@Base 2.5.3
+ (optional)webkit_dom_html_select_element_get_required@Base 2.5.3
+ webkit_dom_html_select_element_get_select_type@Base 2.5.3
+ webkit_dom_html_select_element_get_selected_index@Base 2.5.3
+ (optional)webkit_dom_html_select_element_get_selected_options@Base 2.5.3
+ webkit_dom_html_select_element_get_size@Base 2.5.3
+ webkit_dom_html_select_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_select_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_select_element_get_validity@Base 2.5.3
+ webkit_dom_html_select_element_get_value@Base 2.5.3
+ webkit_dom_html_select_element_get_will_validate@Base 2.5.3
+ webkit_dom_html_select_element_item@Base 2.5.3
+ webkit_dom_html_select_element_named_item@Base 2.5.3
+ webkit_dom_html_select_element_remove@Base 2.5.3
+ webkit_dom_html_select_element_set_autofocus@Base 2.5.3
+ (optional)webkit_dom_html_select_element_set_custom_validity@Base 2.5.3
+ webkit_dom_html_select_element_set_disabled@Base 2.5.3
+ webkit_dom_html_select_element_set_length@Base 2.5.3
+ webkit_dom_html_select_element_set_multiple@Base 2.5.3
+ webkit_dom_html_select_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_select_element_set_required@Base 2.5.3
+ webkit_dom_html_select_element_set_selected_index@Base 2.5.3
+ webkit_dom_html_select_element_set_size@Base 2.5.3
+ webkit_dom_html_select_element_set_value@Base 2.5.3
+ webkit_dom_html_style_element_get_disabled@Base 2.5.3
+ webkit_dom_html_style_element_get_media@Base 2.5.3
+ webkit_dom_html_style_element_get_sheet@Base 2.5.3
+ webkit_dom_html_style_element_get_type@Base 2.5.3
+ webkit_dom_html_style_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_style_element_set_disabled@Base 2.5.3
+ webkit_dom_html_style_element_set_media@Base 2.5.3
+ webkit_dom_html_style_element_set_type_attr@Base 2.5.3
+ webkit_dom_html_table_caption_element_get_align@Base 2.5.3
+ webkit_dom_html_table_caption_element_get_type@Base 2.5.3
+ webkit_dom_html_table_caption_element_set_align@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_abbr@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_align@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_axis@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_bg_color@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_cell_index@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_ch@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_ch_off@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_col_span@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_headers@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_height@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_no_wrap@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_row_span@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_scope@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_type@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_v_align@Base 2.5.3
+ webkit_dom_html_table_cell_element_get_width@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_abbr@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_align@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_axis@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_bg_color@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_ch@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_ch_off@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_col_span@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_headers@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_height@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_no_wrap@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_row_span@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_scope@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_v_align@Base 2.5.3
+ webkit_dom_html_table_cell_element_set_width@Base 2.5.3
+ webkit_dom_html_table_col_element_get_align@Base 2.5.3
+ webkit_dom_html_table_col_element_get_ch@Base 2.5.3
+ webkit_dom_html_table_col_element_get_ch_off@Base 2.5.3
+ webkit_dom_html_table_col_element_get_span@Base 2.5.3
+ webkit_dom_html_table_col_element_get_type@Base 2.5.3
+ webkit_dom_html_table_col_element_get_v_align@Base 2.5.3
+ webkit_dom_html_table_col_element_get_width@Base 2.5.3
+ webkit_dom_html_table_col_element_set_align@Base 2.5.3
+ webkit_dom_html_table_col_element_set_ch@Base 2.5.3
+ webkit_dom_html_table_col_element_set_ch_off@Base 2.5.3
+ webkit_dom_html_table_col_element_set_span@Base 2.5.3
+ webkit_dom_html_table_col_element_set_v_align@Base 2.5.3
+ webkit_dom_html_table_col_element_set_width@Base 2.5.3
+ webkit_dom_html_table_element_create_caption@Base 2.5.3
+ (optional)webkit_dom_html_table_element_create_t_body@Base 2.5.3
+ webkit_dom_html_table_element_create_t_foot@Base 2.5.3
+ webkit_dom_html_table_element_create_t_head@Base 2.5.3
+ webkit_dom_html_table_element_delete_caption@Base 2.5.3
+ webkit_dom_html_table_element_delete_row@Base 2.5.3
+ webkit_dom_html_table_element_delete_t_foot@Base 2.5.3
+ webkit_dom_html_table_element_delete_t_head@Base 2.5.3
+ webkit_dom_html_table_element_get_align@Base 2.5.3
+ webkit_dom_html_table_element_get_bg_color@Base 2.5.3
+ webkit_dom_html_table_element_get_border@Base 2.5.3
+ webkit_dom_html_table_element_get_caption@Base 2.5.3
+ webkit_dom_html_table_element_get_cell_padding@Base 2.5.3
+ webkit_dom_html_table_element_get_cell_spacing@Base 2.5.3
+ (optional)webkit_dom_html_table_element_get_frame@Base 2.5.3
+ webkit_dom_html_table_element_get_rows@Base 2.5.3
+ webkit_dom_html_table_element_get_rules@Base 2.5.3
+ webkit_dom_html_table_element_get_summary@Base 2.5.3
+ webkit_dom_html_table_element_get_t_bodies@Base 2.5.3
+ webkit_dom_html_table_element_get_t_foot@Base 2.5.3
+ webkit_dom_html_table_element_get_t_head@Base 2.5.3
+ webkit_dom_html_table_element_get_type@Base 2.5.3
+ webkit_dom_html_table_element_get_width@Base 2.5.3
+ webkit_dom_html_table_element_insert_row@Base 2.5.3
+ webkit_dom_html_table_element_set_align@Base 2.5.3
+ webkit_dom_html_table_element_set_bg_color@Base 2.5.3
+ webkit_dom_html_table_element_set_border@Base 2.5.3
+ webkit_dom_html_table_element_set_caption@Base 2.5.3
+ webkit_dom_html_table_element_set_cell_padding@Base 2.5.3
+ webkit_dom_html_table_element_set_cell_spacing@Base 2.5.3
+ (optional)webkit_dom_html_table_element_set_frame@Base 2.5.3
+ webkit_dom_html_table_element_set_rules@Base 2.5.3
+ webkit_dom_html_table_element_set_summary@Base 2.5.3
+ webkit_dom_html_table_element_set_t_foot@Base 2.5.3
+ webkit_dom_html_table_element_set_t_head@Base 2.5.3
+ webkit_dom_html_table_element_set_width@Base 2.5.3
+ webkit_dom_html_table_row_element_delete_cell@Base 2.5.3
+ webkit_dom_html_table_row_element_get_align@Base 2.5.3
+ webkit_dom_html_table_row_element_get_bg_color@Base 2.5.3
+ webkit_dom_html_table_row_element_get_cells@Base 2.5.3
+ webkit_dom_html_table_row_element_get_ch@Base 2.5.3
+ webkit_dom_html_table_row_element_get_ch_off@Base 2.5.3
+ webkit_dom_html_table_row_element_get_row_index@Base 2.5.3
+ webkit_dom_html_table_row_element_get_section_row_index@Base 2.5.3
+ webkit_dom_html_table_row_element_get_type@Base 2.5.3
+ webkit_dom_html_table_row_element_get_v_align@Base 2.5.3
+ webkit_dom_html_table_row_element_insert_cell@Base 2.5.3
+ webkit_dom_html_table_row_element_set_align@Base 2.5.3
+ webkit_dom_html_table_row_element_set_bg_color@Base 2.5.3
+ webkit_dom_html_table_row_element_set_ch@Base 2.5.3
+ webkit_dom_html_table_row_element_set_ch_off@Base 2.5.3
+ webkit_dom_html_table_row_element_set_v_align@Base 2.5.3
+ webkit_dom_html_table_section_element_delete_row@Base 2.5.3
+ webkit_dom_html_table_section_element_get_align@Base 2.5.3
+ webkit_dom_html_table_section_element_get_ch@Base 2.5.3
+ webkit_dom_html_table_section_element_get_ch_off@Base 2.5.3
+ webkit_dom_html_table_section_element_get_rows@Base 2.5.3
+ webkit_dom_html_table_section_element_get_type@Base 2.5.3
+ webkit_dom_html_table_section_element_get_v_align@Base 2.5.3
+ webkit_dom_html_table_section_element_insert_row@Base 2.5.3
+ webkit_dom_html_table_section_element_set_align@Base 2.5.3
+ webkit_dom_html_table_section_element_set_ch@Base 2.5.3
+ webkit_dom_html_table_section_element_set_ch_off@Base 2.5.3
+ webkit_dom_html_table_section_element_set_v_align@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_check_validity@Base 2.5.3
+ webkit_dom_html_text_area_element_get_area_type@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_autocorrect@Base 2.5.3
+ webkit_dom_html_text_area_element_get_autofocus@Base 2.5.3
+ webkit_dom_html_text_area_element_get_cols@Base 2.5.3
+ webkit_dom_html_text_area_element_get_default_value@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_dir_name@Base 2.5.3
+ webkit_dom_html_text_area_element_get_disabled@Base 2.5.3
+ webkit_dom_html_text_area_element_get_form@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_labels@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_max_length@Base 2.5.3
+ webkit_dom_html_text_area_element_get_name@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_placeholder@Base 2.5.3
+ webkit_dom_html_text_area_element_get_read_only@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_required@Base 2.5.3
+ webkit_dom_html_text_area_element_get_rows@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_selection_direction@Base 2.5.3
+ webkit_dom_html_text_area_element_get_selection_end@Base 2.5.3
+ webkit_dom_html_text_area_element_get_selection_start@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_text_length@Base 2.5.3
+ webkit_dom_html_text_area_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_validation_message@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_validity@Base 2.5.3
+ webkit_dom_html_text_area_element_get_value@Base 2.5.3
+ webkit_dom_html_text_area_element_get_will_validate@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_get_wrap@Base 2.5.3
+ webkit_dom_html_text_area_element_is_edited@Base 2.5.3
+ webkit_dom_html_text_area_element_select@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_autocapitalize@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_autocorrect@Base 2.5.3
+ webkit_dom_html_text_area_element_set_autofocus@Base 2.5.3
+ webkit_dom_html_text_area_element_set_cols@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_custom_validity@Base 2.5.3
+ webkit_dom_html_text_area_element_set_default_value@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_dir_name@Base 2.5.3
+ webkit_dom_html_text_area_element_set_disabled@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_max_length@Base 2.5.3
+ webkit_dom_html_text_area_element_set_name@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_placeholder@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_range_text@Base 2.5.3
+ webkit_dom_html_text_area_element_set_read_only@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_required@Base 2.5.3
+ webkit_dom_html_text_area_element_set_rows@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_selection_direction@Base 2.5.3
+ webkit_dom_html_text_area_element_set_selection_end@Base 2.5.3
+ webkit_dom_html_text_area_element_set_selection_range@Base 2.5.3
+ webkit_dom_html_text_area_element_set_selection_start@Base 2.5.3
+ webkit_dom_html_text_area_element_set_value@Base 2.5.3
+ (optional)webkit_dom_html_text_area_element_set_wrap@Base 2.5.3
+ webkit_dom_html_title_element_get_text@Base 2.5.3
+ webkit_dom_html_title_element_get_type@Base 2.5.3
+ webkit_dom_html_title_element_set_text@Base 2.5.3
+ webkit_dom_html_u_list_element_get_compact@Base 2.5.3
+ webkit_dom_html_u_list_element_get_type@Base 2.5.3
+ webkit_dom_html_u_list_element_get_type_attr@Base 2.5.3
+ webkit_dom_html_u_list_element_set_compact@Base 2.5.3
+ webkit_dom_html_u_list_element_set_type_attr@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_height@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_poster@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_type@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_video_height@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_video_width@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_webkit_decoded_frame_count@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_webkit_displaying_fullscreen@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_webkit_dropped_frame_count@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_webkit_supports_fullscreen@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_webkit_wireless_video_playback_disabled@Base 2.5.3
+ (optional)webkit_dom_html_video_element_get_width@Base 2.5.3
+ (optional)webkit_dom_html_video_element_set_height@Base 2.5.3
+ (optional)webkit_dom_html_video_element_set_poster@Base 2.5.3
+ (optional)webkit_dom_html_video_element_set_webkit_wireless_video_playback_disabled@Base 2.5.3
+ (optional)webkit_dom_html_video_element_set_width@Base 2.5.3
+ (optional)webkit_dom_html_video_element_webkit_enter_full_screen@Base 2.5.3
+ (optional)webkit_dom_html_video_element_webkit_enter_fullscreen@Base 2.5.3
+ (optional)webkit_dom_html_video_element_webkit_exit_full_screen@Base 2.5.3
+ (optional)webkit_dom_html_video_element_webkit_exit_fullscreen@Base 2.5.3
+ webkit_dom_keyboard_event_get_alt_graph_key@Base 2.5.3
+ webkit_dom_keyboard_event_get_alt_key@Base 2.5.3
+ webkit_dom_keyboard_event_get_ctrl_key@Base 2.5.3
+ webkit_dom_keyboard_event_get_key_identifier@Base 2.5.3
+ webkit_dom_keyboard_event_get_key_location@Base 2.5.3
+ webkit_dom_keyboard_event_get_meta_key@Base 2.5.3
+ webkit_dom_keyboard_event_get_modifier_state@Base 2.5.3
+ webkit_dom_keyboard_event_get_shift_key@Base 2.5.3
+ webkit_dom_keyboard_event_get_type@Base 2.5.3
+ webkit_dom_keyboard_event_init_keyboard_event@Base 2.5.3
+ (optional)webkit_dom_location_get_ancestor_origins@Base 2.5.3
+ (optional)webkit_dom_location_get_hash@Base 2.5.3
+ (optional)webkit_dom_location_get_host@Base 2.5.3
+ (optional)webkit_dom_location_get_hostname@Base 2.5.3
+ (optional)webkit_dom_location_get_href@Base 2.5.3
+ (optional)webkit_dom_location_get_origin@Base 2.5.3
+ (optional)webkit_dom_location_get_pathname@Base 2.5.3
+ (optional)webkit_dom_location_get_port@Base 2.5.3
+ (optional)webkit_dom_location_get_protocol@Base 2.5.3
+ (optional)webkit_dom_location_get_search@Base 2.5.3
+ (optional)webkit_dom_location_get_type@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_buffered@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_current_time@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_default_playback_rate@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_duration@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_muted@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_paused@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_playback_rate@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_playback_state@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_played@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_seekable@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_type@Base 2.5.3
+ (optional)webkit_dom_media_controller_get_volume@Base 2.5.3
+ (optional)webkit_dom_media_controller_pause@Base 2.5.3
+ (optional)webkit_dom_media_controller_play@Base 2.5.3
+ (optional)webkit_dom_media_controller_set_current_time@Base 2.5.3
+ (optional)webkit_dom_media_controller_set_default_playback_rate@Base 2.5.3
+ (optional)webkit_dom_media_controller_set_muted@Base 2.5.3
+ (optional)webkit_dom_media_controller_set_playback_rate@Base 2.5.3
+ (optional)webkit_dom_media_controller_set_volume@Base 2.5.3
+ (optional)webkit_dom_media_controller_unpause@Base 2.5.3
+ (optional)webkit_dom_media_error_get_code@Base 2.5.3
+ (optional)webkit_dom_media_error_get_type@Base 2.5.3
+ webkit_dom_media_list_append_medium@Base 2.5.3
+ webkit_dom_media_list_delete_medium@Base 2.5.3
+ webkit_dom_media_list_get_length@Base 2.5.3
+ webkit_dom_media_list_get_media_text@Base 2.5.3
+ webkit_dom_media_list_get_type@Base 2.5.3
+ webkit_dom_media_list_item@Base 2.5.3
+ webkit_dom_media_list_set_media_text@Base 2.5.3
+ (optional)webkit_dom_media_query_list_get_matches@Base 2.5.3
+ (optional)webkit_dom_media_query_list_get_media@Base 2.5.3
+ (optional)webkit_dom_media_query_list_get_type@Base 2.5.3
+ (optional)webkit_dom_message_port_get_type@Base 2.5.3
+ webkit_dom_mouse_event_get_alt_key@Base 2.5.3
+ webkit_dom_mouse_event_get_button@Base 2.5.3
+ webkit_dom_mouse_event_get_client_x@Base 2.5.3
+ webkit_dom_mouse_event_get_client_y@Base 2.5.3
+ webkit_dom_mouse_event_get_ctrl_key@Base 2.5.3
+ webkit_dom_mouse_event_get_from_element@Base 2.5.3
+ webkit_dom_mouse_event_get_meta_key@Base 2.5.3
+ (optional)webkit_dom_mouse_event_get_movement_x@Base 2.5.3
+ (optional)webkit_dom_mouse_event_get_movement_y@Base 2.5.3
+ webkit_dom_mouse_event_get_offset_x@Base 2.5.3
+ webkit_dom_mouse_event_get_offset_y@Base 2.5.3
+ webkit_dom_mouse_event_get_related_target@Base 2.5.3
+ webkit_dom_mouse_event_get_screen_x@Base 2.5.3
+ webkit_dom_mouse_event_get_screen_y@Base 2.5.3
+ webkit_dom_mouse_event_get_shift_key@Base 2.5.3
+ webkit_dom_mouse_event_get_to_element@Base 2.5.3
+ webkit_dom_mouse_event_get_type@Base 2.5.3
+ webkit_dom_mouse_event_get_x@Base 2.5.3
+ webkit_dom_mouse_event_get_y@Base 2.5.3
+ webkit_dom_mouse_event_init_mouse_event@Base 2.5.3
+ webkit_dom_named_node_map_get_length@Base 2.5.3
+ webkit_dom_named_node_map_get_named_item@Base 2.5.3
+ webkit_dom_named_node_map_get_named_item_ns@Base 2.5.3
+ webkit_dom_named_node_map_get_type@Base 2.5.3
+ webkit_dom_named_node_map_item@Base 2.5.3
+ webkit_dom_named_node_map_remove_named_item@Base 2.5.3
+ webkit_dom_named_node_map_remove_named_item_ns@Base 2.5.3
+ webkit_dom_named_node_map_set_named_item@Base 2.5.3
+ webkit_dom_named_node_map_set_named_item_ns@Base 2.5.3
+ (optional)webkit_dom_navigator_get_app_code_name@Base 2.5.3
+ (optional)webkit_dom_navigator_get_app_name@Base 2.5.3
+ (optional)webkit_dom_navigator_get_app_version@Base 2.5.3
+ (optional)webkit_dom_navigator_get_cookie_enabled@Base 2.5.3
+ (optional)webkit_dom_navigator_get_geolocation@Base 2.5.3
+ (optional)webkit_dom_navigator_get_hardware_concurrency@Base 2.5.3
+ (optional)webkit_dom_navigator_get_language@Base 2.5.3
+ (optional)webkit_dom_navigator_get_mime_types@Base 2.5.3
+ (optional)webkit_dom_navigator_get_on_line@Base 2.5.3
+ (optional)webkit_dom_navigator_get_platform@Base 2.5.3
+ (optional)webkit_dom_navigator_get_plugins@Base 2.5.3
+ (optional)webkit_dom_navigator_get_product@Base 2.5.3
+ (optional)webkit_dom_navigator_get_product_sub@Base 2.5.3
+ (optional)webkit_dom_navigator_get_storage_updates@Base 2.5.3
+ (optional)webkit_dom_navigator_get_type@Base 2.5.3
+ (optional)webkit_dom_navigator_get_user_agent@Base 2.5.3
+ (optional)webkit_dom_navigator_get_vendor@Base 2.5.3
+ (optional)webkit_dom_navigator_get_vendor_sub@Base 2.5.3
+ (optional)webkit_dom_navigator_get_webkit_battery@Base 2.5.3
+ (optional)webkit_dom_navigator_is_protocol_handler_registered@Base 2.5.3
+ (optional)webkit_dom_navigator_java_enabled@Base 2.5.3
+ (optional)webkit_dom_navigator_register_protocol_handler@Base 2.5.3
+ (optional)webkit_dom_navigator_unregister_protocol_handler@Base 2.5.3
+ (optional)webkit_dom_navigator_vibrate@Base 2.5.3
+ (optional)webkit_dom_navigator_webkit_get_gamepads@Base 2.5.3
+ webkit_dom_node_append_child@Base 2.5.3
+ webkit_dom_node_clone_node@Base 2.5.3
+ webkit_dom_node_compare_document_position@Base 2.5.3
+ webkit_dom_node_contains@Base 2.5.3
+ webkit_dom_node_filter_accept_node@Base 2.5.3
+ webkit_dom_node_filter_get_type@Base 2.5.3
+ webkit_dom_node_get_base_uri@Base 2.5.3
+ webkit_dom_node_get_child_nodes@Base 2.5.3
+ webkit_dom_node_get_first_child@Base 2.5.3
+ webkit_dom_node_get_last_child@Base 2.5.3
+ webkit_dom_node_get_local_name@Base 2.5.3
+ webkit_dom_node_get_namespace_uri@Base 2.5.3
+ webkit_dom_node_get_next_sibling@Base 2.5.3
+ webkit_dom_node_get_node_name@Base 2.5.3
+ webkit_dom_node_get_node_type@Base 2.5.3
+ webkit_dom_node_get_node_value@Base 2.5.3
+ webkit_dom_node_get_owner_document@Base 2.5.3
+ webkit_dom_node_get_parent_element@Base 2.5.3
+ webkit_dom_node_get_parent_node@Base 2.5.3
+ webkit_dom_node_get_prefix@Base 2.5.3
+ webkit_dom_node_get_previous_sibling@Base 2.5.3
+ webkit_dom_node_get_text_content@Base 2.5.3
+ webkit_dom_node_get_type@Base 2.5.3
+ webkit_dom_node_has_child_nodes@Base 2.5.3
+ webkit_dom_node_insert_before@Base 2.5.3
+ webkit_dom_node_is_default_namespace@Base 2.5.3
+ webkit_dom_node_is_equal_node@Base 2.5.3
+ webkit_dom_node_is_same_node@Base 2.5.3
+ webkit_dom_node_is_supported@Base 2.5.3
+ webkit_dom_node_iterator_detach@Base 2.5.3
+ webkit_dom_node_iterator_get_expand_entity_references@Base 2.5.3
+ webkit_dom_node_iterator_get_filter@Base 2.5.3
+ webkit_dom_node_iterator_get_pointer_before_reference_node@Base 2.5.3
+ webkit_dom_node_iterator_get_reference_node@Base 2.5.3
+ webkit_dom_node_iterator_get_root@Base 2.5.3
+ webkit_dom_node_iterator_get_type@Base 2.5.3
+ webkit_dom_node_iterator_get_what_to_show@Base 2.5.3
+ webkit_dom_node_iterator_next_node@Base 2.5.3
+ webkit_dom_node_iterator_previous_node@Base 2.5.3
+ webkit_dom_node_list_get_length@Base 2.5.3
+ webkit_dom_node_list_get_type@Base 2.5.3
+ webkit_dom_node_list_item@Base 2.5.3
+ webkit_dom_node_lookup_namespace_uri@Base 2.5.3
+ webkit_dom_node_lookup_prefix@Base 2.5.3
+ webkit_dom_node_normalize@Base 2.5.3
+ webkit_dom_node_remove_child@Base 2.5.3
+ webkit_dom_node_replace_child@Base 2.5.3
+ webkit_dom_node_set_node_value@Base 2.5.3
+ webkit_dom_node_set_prefix@Base 2.5.3
+ webkit_dom_node_set_text_content@Base 2.5.3
+ webkit_dom_object_get_type@Base 2.5.3
+ (optional)webkit_dom_performance_entry_get_duration@Base 2.5.3
+ (optional)webkit_dom_performance_entry_get_entry_type@Base 2.5.3
+ (optional)webkit_dom_performance_entry_get_name@Base 2.5.3
+ (optional)webkit_dom_performance_entry_get_start_time@Base 2.5.3
+ (optional)webkit_dom_performance_entry_get_type@Base 2.5.3
+ (optional)webkit_dom_performance_entry_list_get_length@Base 2.5.3
+ (optional)webkit_dom_performance_entry_list_get_type@Base 2.5.3
+ (optional)webkit_dom_performance_entry_list_item@Base 2.5.3
+ (optional)webkit_dom_performance_get_navigation@Base 2.5.3
+ (optional)webkit_dom_performance_get_timing@Base 2.5.3
+ (optional)webkit_dom_performance_get_type@Base 2.5.3
+ webkit_navigation_policy_decision_get_navigation_action@Base 2.5.3
+ (optional)webkit_dom_performance_navigation_get_navigation_type@Base 2.5.3
+ (optional)webkit_dom_performance_navigation_get_redirect_count@Base 2.5.3
+ (optional)webkit_dom_performance_navigation_get_type@Base 2.5.3
+ (optional)webkit_dom_performance_now@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_connect_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_connect_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_dom_complete@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_dom_content_loaded_event_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_dom_content_loaded_event_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_dom_interactive@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_dom_loading@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_domain_lookup_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_domain_lookup_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_fetch_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_load_event_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_load_event_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_navigation_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_redirect_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_redirect_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_request_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_response_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_response_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_secure_connection_start@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_type@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_unload_event_end@Base 2.5.3
+ (optional)webkit_dom_performance_timing_get_unload_event_start@Base 2.5.3
+ webkit_dom_processing_instruction_get_sheet@Base 2.5.3
+ webkit_dom_processing_instruction_get_target@Base 2.5.3
+ webkit_dom_processing_instruction_get_type@Base 2.5.3
+ webkit_dom_range_clone_contents@Base 2.5.3
+ webkit_dom_range_clone_range@Base 2.5.3
+ webkit_dom_range_collapse@Base 2.5.3
+ webkit_dom_range_compare_boundary_points@Base 2.5.3
+ webkit_dom_range_compare_node@Base 2.5.3
+ webkit_dom_range_compare_point@Base 2.5.3
+ webkit_dom_range_create_contextual_fragment@Base 2.5.3
+ webkit_dom_range_delete_contents@Base 2.5.3
+ webkit_dom_range_detach@Base 2.5.3
+ (optional)webkit_dom_range_expand@Base 2.5.3
+ webkit_dom_range_extract_contents@Base 2.5.3
+ webkit_dom_range_get_collapsed@Base 2.5.3
+ webkit_dom_range_get_common_ancestor_container@Base 2.5.3
+ webkit_dom_range_get_end_container@Base 2.5.3
+ webkit_dom_range_get_end_offset@Base 2.5.3
+ webkit_dom_range_get_start_container@Base 2.5.3
+ webkit_dom_range_get_start_offset@Base 2.5.3
+ webkit_dom_range_get_text@Base 2.5.3
+ webkit_dom_range_get_type@Base 2.5.3
+ webkit_dom_range_insert_node@Base 2.5.3
+ webkit_dom_range_intersects_node@Base 2.5.3
+ webkit_dom_range_is_point_in_range@Base 2.5.3
+ webkit_dom_range_select_node@Base 2.5.3
+ webkit_dom_range_select_node_contents@Base 2.5.3
+ webkit_dom_range_set_end@Base 2.5.3
+ webkit_dom_range_set_end_after@Base 2.5.3
+ webkit_dom_range_set_end_before@Base 2.5.3
+ webkit_dom_range_set_start@Base 2.5.3
+ webkit_dom_range_set_start_after@Base 2.5.3
+ webkit_dom_range_set_start_before@Base 2.5.3
+ webkit_dom_range_surround_contents@Base 2.5.3
+ webkit_dom_range_to_string@Base 2.5.3
+ (optional)webkit_dom_screen_get_avail_height@Base 2.5.3
+ (optional)webkit_dom_screen_get_avail_left@Base 2.5.3
+ (optional)webkit_dom_screen_get_avail_top@Base 2.5.3
+ (optional)webkit_dom_screen_get_avail_width@Base 2.5.3
+ (optional)webkit_dom_screen_get_color_depth@Base 2.5.3
+ (optional)webkit_dom_screen_get_height@Base 2.5.3
+ (optional)webkit_dom_screen_get_pixel_depth@Base 2.5.3
+ (optional)webkit_dom_screen_get_type@Base 2.5.3
+ (optional)webkit_dom_screen_get_width@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_cancel@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_event_get_char_index@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_event_get_elapsed_time@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_event_get_name@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_event_get_type@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_get_paused@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_get_pending@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_get_speaking@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_get_type@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_pause@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_resume@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_speak@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_lang@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_pitch@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_rate@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_text@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_type@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_voice@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_get_volume@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_lang@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_pitch@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_rate@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_text@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_voice@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_utterance_set_volume@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_default@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_lang@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_local_service@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_name@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_type@Base 2.5.3
+ (optional)webkit_dom_speech_synthesis_voice_get_voice_uri@Base 2.5.3
+ (optional)webkit_dom_storage_clear@Base 2.5.3
+ (optional)webkit_dom_storage_get_item@Base 2.5.3
+ (optional)webkit_dom_storage_get_length@Base 2.5.3
+ (optional)webkit_dom_storage_get_type@Base 2.5.3
+ (optional)webkit_dom_storage_key@Base 2.5.3
+ (optional)webkit_dom_storage_remove_item@Base 2.5.3
+ (optional)webkit_dom_storage_set_item@Base 2.5.3
+ (optional)webkit_dom_style_media_get_media_type@Base 2.5.3
+ (optional)webkit_dom_style_media_get_type@Base 2.5.3
+ (optional)webkit_dom_style_media_match_medium@Base 2.5.3
+ webkit_dom_style_sheet_get_content_type@Base 2.5.3
+ webkit_dom_style_sheet_get_disabled@Base 2.5.3
+ webkit_dom_style_sheet_get_href@Base 2.5.3
+ webkit_dom_style_sheet_get_media@Base 2.5.3
+ webkit_dom_style_sheet_get_owner_node@Base 2.5.3
+ webkit_dom_style_sheet_get_parent_style_sheet@Base 2.5.3
+ webkit_dom_style_sheet_get_title@Base 2.5.3
+ webkit_dom_style_sheet_get_type@Base 2.5.3
+ webkit_dom_style_sheet_list_get_length@Base 2.5.3
+ webkit_dom_style_sheet_list_get_type@Base 2.5.3
+ webkit_dom_style_sheet_list_item@Base 2.5.3
+ webkit_dom_style_sheet_set_disabled@Base 2.5.3
+ webkit_dom_text_get_type@Base 2.5.3
+ webkit_dom_text_get_whole_text@Base 2.5.3
+ webkit_dom_text_replace_whole_text@Base 2.5.3
+ webkit_dom_text_split_text@Base 2.5.3
+ (optional)webkit_dom_text_track_add_cue@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_end_time@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_id@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_pause_on_exit@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_start_time@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_track@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_get_type@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_list_get_cue_by_id@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_list_get_length@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_list_get_type@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_list_item@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_set_end_time@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_set_id@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_set_pause_on_exit@Base 2.5.3
+ (optional)webkit_dom_text_track_cue_set_start_time@Base 2.5.3
+ (optional)webkit_dom_text_track_get_active_cues@Base 2.5.3
+ (optional)webkit_dom_text_track_get_cues@Base 2.5.3
+ (optional)webkit_dom_text_track_get_id@Base 2.5.3
+ (optional)webkit_dom_text_track_get_in_band_metadata_track_dispatch_type@Base 2.5.3
+ (optional)webkit_dom_text_track_get_label@Base 2.5.3
+ (optional)webkit_dom_text_track_get_language@Base 2.5.3
+ (optional)webkit_dom_text_track_get_type@Base 2.5.3
+ (optional)webkit_dom_text_track_list_get_length@Base 2.5.3
+ (optional)webkit_dom_text_track_list_get_track_by_id@Base 2.5.3
+ (optional)webkit_dom_text_track_list_get_type@Base 2.5.3
+ (optional)webkit_dom_text_track_list_item@Base 2.5.3
+ (optional)webkit_dom_text_track_remove_cue@Base 2.5.3
+ (optional)webkit_dom_time_ranges_end@Base 2.5.3
+ (optional)webkit_dom_time_ranges_get_length@Base 2.5.3
+ (optional)webkit_dom_time_ranges_get_type@Base 2.5.3
+ (optional)webkit_dom_time_ranges_start@Base 2.5.3
+ (optional)webkit_dom_touch_get_client_x@Base 2.5.3
+ (optional)webkit_dom_touch_get_client_y@Base 2.5.3
+ (optional)webkit_dom_touch_get_identifier@Base 2.5.3
+ (optional)webkit_dom_touch_get_page_x@Base 2.5.3
+ (optional)webkit_dom_touch_get_page_y@Base 2.5.3
+ (optional)webkit_dom_touch_get_screen_x@Base 2.5.3
+ (optional)webkit_dom_touch_get_screen_y@Base 2.5.3
+ (optional)webkit_dom_touch_get_target@Base 2.5.3
+ (optional)webkit_dom_touch_get_type@Base 2.5.3
+ (optional)webkit_dom_touch_get_webkit_force@Base 2.5.3
+ (optional)webkit_dom_touch_get_webkit_radius_x@Base 2.5.3
+ (optional)webkit_dom_touch_get_webkit_radius_y@Base 2.5.3
+ (optional)webkit_dom_touch_get_webkit_rotation_angle@Base 2.5.3
+ (optional)webkit_dom_track_event_get_type@Base 2.5.3
+ webkit_dom_tree_walker_first_child@Base 2.5.3
+ webkit_dom_tree_walker_get_current_node@Base 2.5.3
+ webkit_dom_tree_walker_get_expand_entity_references@Base 2.5.3
+ webkit_dom_tree_walker_get_filter@Base 2.5.3
+ webkit_dom_tree_walker_get_root@Base 2.5.3
+ webkit_dom_tree_walker_get_type@Base 2.5.3
+ webkit_dom_tree_walker_get_what_to_show@Base 2.5.3
+ webkit_dom_tree_walker_last_child@Base 2.5.3
+ webkit_dom_tree_walker_next_node@Base 2.5.3
+ webkit_dom_tree_walker_next_sibling@Base 2.5.3
+ webkit_dom_tree_walker_parent_node@Base 2.5.3
+ webkit_dom_tree_walker_previous_node@Base 2.5.3
+ webkit_dom_tree_walker_previous_sibling@Base 2.5.3
+ webkit_dom_tree_walker_set_current_node@Base 2.5.3
+ webkit_dom_ui_event_get_char_code@Base 2.5.3
+ webkit_dom_ui_event_get_detail@Base 2.5.3
+ webkit_dom_ui_event_get_key_code@Base 2.5.3
+ webkit_dom_ui_event_get_layer_x@Base 2.5.3
+ webkit_dom_ui_event_get_layer_y@Base 2.5.3
+ webkit_dom_ui_event_get_page_x@Base 2.5.3
+ webkit_dom_ui_event_get_page_y@Base 2.5.3
+ webkit_dom_ui_event_get_type@Base 2.5.3
+ webkit_dom_ui_event_get_view@Base 2.5.3
+ (optional)webkit_dom_ui_event_get_which@Base 2.5.3
+ webkit_dom_ui_event_init_ui_event@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_bad_input@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_custom_error@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_pattern_mismatch@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_range_overflow@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_range_underflow@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_step_mismatch@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_too_long@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_type@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_type_mismatch@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_valid@Base 2.5.3
+ (optional)webkit_dom_validity_state_get_value_missing@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_corrupted_video_frames@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_creation_time@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_dropped_video_frames@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_total_frame_delay@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_total_video_frames@Base 2.5.3
+ (optional)webkit_dom_video_playback_quality_get_type@Base 2.5.3
+ (optional)webkit_dom_video_track_get_id@Base 2.5.3
+ (optional)webkit_dom_video_track_get_kind@Base 2.5.3
+ (optional)webkit_dom_video_track_get_label@Base 2.5.3
+ (optional)webkit_dom_video_track_get_language@Base 2.5.3
+ (optional)webkit_dom_video_track_get_selected@Base 2.5.3
+ (optional)webkit_dom_video_track_get_type@Base 2.5.3
+ (optional)webkit_dom_video_track_list_get_length@Base 2.5.3
+ (optional)webkit_dom_video_track_list_get_selected_index@Base 2.5.3
+ (optional)webkit_dom_video_track_list_get_track_by_id@Base 2.5.3
+ (optional)webkit_dom_video_track_list_get_type@Base 2.5.3
+ (optional)webkit_dom_video_track_list_item@Base 2.5.3
+ (optional)webkit_dom_video_track_set_selected@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_align@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_cue_as_html@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_line@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_position@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_size@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_snap_to_lines@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_text@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_type@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_get_vertical@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_align@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_line@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_position@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_size@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_snap_to_lines@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_text@Base 2.5.3
+ (optional)webkit_dom_vtt_cue_set_vertical@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_content@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_first_empty_region_index@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_name@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_overset@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_regions@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_regions_by_content@Base 2.5.3
+ (optional)webkit_dom_webkit_named_flow_get_type@Base 2.5.3
+ (optional)webkit_dom_webkit_point_get_type@Base 2.5.3
+ (optional)webkit_dom_webkit_point_get_x@Base 2.5.3
+ (optional)webkit_dom_webkit_point_get_y@Base 2.5.3
+ (optional)webkit_dom_webkit_point_set_x@Base 2.5.3
+ (optional)webkit_dom_webkit_point_set_y@Base 2.5.3
+ (optional)webkit_dom_wheel_event_get_delta_mode@Base 2.5.3
+ (optional)webkit_dom_wheel_event_get_delta_x@Base 2.5.3
+ (optional)webkit_dom_wheel_event_get_delta_y@Base 2.5.3
+ (optional)webkit_dom_wheel_event_get_delta_z@Base 2.5.3
+ webkit_dom_wheel_event_get_type@Base 2.5.3
+ (optional)webkit_dom_wheel_event_get_webkit_direction_inverted_from_device@Base 2.5.3
+ webkit_dom_wheel_event_get_wheel_delta@Base 2.5.3
+ webkit_dom_wheel_event_get_wheel_delta_x@Base 2.5.3
+ webkit_dom_wheel_event_get_wheel_delta_y@Base 2.5.3
+ webkit_dom_wheel_event_init_wheel_event@Base 2.5.3
+ webkit_dom_xpath_expression_evaluate@Base 2.5.3
+ webkit_dom_xpath_expression_get_type@Base 2.5.3
+ webkit_dom_xpath_ns_resolver_get_type@Base 2.5.3
+ webkit_dom_xpath_ns_resolver_lookup_namespace_uri@Base 2.5.3
+ webkit_dom_xpath_result_get_boolean_value@Base 2.5.3
+ webkit_dom_xpath_result_get_invalid_iterator_state@Base 2.5.3
+ webkit_dom_xpath_result_get_number_value@Base 2.5.3
+ webkit_dom_xpath_result_get_result_type@Base 2.5.3
+ webkit_dom_xpath_result_get_single_node_value@Base 2.5.3
+ webkit_dom_xpath_result_get_snapshot_length@Base 2.5.3
+ webkit_dom_xpath_result_get_string_value@Base 2.5.3
+ webkit_dom_xpath_result_get_type@Base 2.5.3
+ webkit_dom_xpath_result_iterate_next@Base 2.5.3
+ webkit_dom_xpath_result_snapshot_item@Base 2.5.3
+ webkit_download_cancel@Base 2.5.3
+ webkit_download_error_get_type@Base 2.5.3
+ webkit_download_error_quark@Base 2.5.3
+ webkit_download_get_allow_overwrite@Base 2.6.0
+ webkit_download_get_destination@Base 2.5.3
+ webkit_download_get_elapsed_time@Base 2.5.3
+ webkit_download_get_estimated_progress@Base 2.5.3
+ webkit_download_get_received_data_length@Base 2.5.3
+ webkit_download_get_request@Base 2.5.3
+ webkit_download_get_response@Base 2.5.3
+ webkit_download_get_type@Base 2.5.3
+ webkit_download_get_web_view@Base 2.5.3
+ webkit_download_set_allow_overwrite@Base 2.6.0
+ webkit_download_set_destination@Base 2.5.3
+ webkit_favicon_database_clear@Base 2.5.3
+ webkit_favicon_database_error_get_type@Base 2.5.3
+ webkit_favicon_database_error_quark@Base 2.5.3
+ webkit_favicon_database_get_favicon@Base 2.5.3
+ webkit_favicon_database_get_favicon_finish@Base 2.5.3
+ webkit_favicon_database_get_favicon_uri@Base 2.5.3
+ webkit_favicon_database_get_type@Base 2.5.3
+ webkit_file_chooser_request_cancel@Base 2.5.3
+ webkit_file_chooser_request_get_mime_types@Base 2.5.3
+ webkit_file_chooser_request_get_mime_types_filter@Base 2.5.3
+ webkit_file_chooser_request_get_select_multiple@Base 2.5.3
+ webkit_file_chooser_request_get_selected_files@Base 2.5.3
+ webkit_file_chooser_request_get_type@Base 2.5.3
+ webkit_file_chooser_request_select_files@Base 2.5.3
+ webkit_find_controller_count_matches@Base 2.5.3
+ webkit_find_controller_get_max_match_count@Base 2.5.3
+ webkit_find_controller_get_options@Base 2.5.3
+ webkit_find_controller_get_search_text@Base 2.5.3
+ webkit_find_controller_get_type@Base 2.5.3
+ webkit_find_controller_get_web_view@Base 2.5.3
+ webkit_find_controller_search@Base 2.5.3
+ webkit_find_controller_search_finish@Base 2.5.3
+ webkit_find_controller_search_next@Base 2.5.3
+ webkit_find_controller_search_previous@Base 2.5.3
+ webkit_find_options_get_type@Base 2.5.3
+ webkit_form_submission_request_get_text_fields@Base 2.5.3
+ webkit_form_submission_request_get_type@Base 2.5.3
+ webkit_form_submission_request_submit@Base 2.5.3
+ webkit_frame_get_javascript_context_for_script_world@Base 2.5.3
+ webkit_frame_get_javascript_global_context@Base 2.5.3
+ webkit_frame_get_type@Base 2.5.3
+ webkit_frame_get_uri@Base 2.5.3
+ webkit_frame_is_main_frame@Base 2.5.3
+ webkit_geolocation_permission_request_get_type@Base 2.5.3
+ webkit_get_major_version@Base 2.5.3
+ webkit_get_micro_version@Base 2.5.3
+ webkit_get_minor_version@Base 2.5.3
+ webkit_hit_test_result_context_get_type@Base 2.5.3
+ webkit_hit_test_result_context_is_editable@Base 2.5.3
+ webkit_hit_test_result_context_is_image@Base 2.5.3
+ webkit_hit_test_result_context_is_link@Base 2.5.3
+ webkit_hit_test_result_context_is_media@Base 2.5.3
+ webkit_hit_test_result_context_is_scrollbar@Base 2.5.3
+ webkit_hit_test_result_get_context@Base 2.5.3
+ webkit_hit_test_result_get_image_uri@Base 2.5.3
+ webkit_hit_test_result_get_link_label@Base 2.5.3
+ webkit_hit_test_result_get_link_title@Base 2.5.3
+ webkit_hit_test_result_get_link_uri@Base 2.5.3
+ webkit_hit_test_result_get_media_uri@Base 2.5.3
+ webkit_hit_test_result_get_type@Base 2.5.3
+ webkit_insecure_content_event_get_type@Base 2.5.3
+ webkit_javascript_error_get_type@Base 2.5.3
+ webkit_javascript_error_quark@Base 2.5.3
+ webkit_javascript_result_get_global_context@Base 2.5.3
+ webkit_javascript_result_get_type@Base 2.5.3
+ webkit_javascript_result_get_value@Base 2.5.3
+ webkit_javascript_result_ref@Base 2.5.3
+ webkit_javascript_result_unref@Base 2.5.3
+ webkit_load_event_get_type@Base 2.5.3
+ webkit_marshal_BOOLEAN__BOXED@Base 2.5.3
+ webkit_marshal_BOOLEAN__BOXED_STRING@Base 2.5.3
+ webkit_marshal_BOOLEAN__ENUM_STRING_POINTER@Base 2.5.3
+ webkit_marshal_BOOLEAN__OBJECT@Base 2.5.3
+ webkit_marshal_BOOLEAN__OBJECT_BOXED_OBJECT@Base 2.5.3
+ webkit_marshal_BOOLEAN__OBJECT_ENUM@Base 2.5.3
+ webkit_marshal_BOOLEAN__OBJECT_OBJECT@Base 2.5.3
+ webkit_marshal_BOOLEAN__STRING@Base 2.5.3
+ webkit_marshal_BOOLEAN__VOID@Base 2.5.3
+ webkit_marshal_OBJECT__VOID@Base 2.5.3
+ webkit_marshal_VOID__OBJECT_OBJECT@Base 2.5.3
+ webkit_marshal_VOID__OBJECT_POINTER@Base 2.5.3
+ webkit_marshal_VOID__OBJECT_UINT@Base 2.5.3
+ webkit_marshal_VOID__STRING_STRING@Base 2.5.3
+ webkit_marshal_VOID__UINT64@Base 2.5.3
+ webkit_mime_info_get_description@Base 2.5.3
+ webkit_mime_info_get_extensions@Base 2.5.3
+ webkit_mime_info_get_mime_type@Base 2.5.3
+ webkit_mime_info_get_type@Base 2.5.3
+ webkit_mime_info_ref@Base 2.5.3
+ webkit_mime_info_unref@Base 2.5.3
+ webkit_navigation_action_copy@Base 2.5.3
+ webkit_navigation_action_free@Base 2.5.3
+ webkit_navigation_action_get_modifiers@Base 2.5.3
+ webkit_navigation_action_get_mouse_button@Base 2.5.3
+ webkit_navigation_action_get_navigation_type@Base 2.5.3
+ webkit_navigation_action_get_request@Base 2.5.3
+ webkit_navigation_action_get_type@Base 2.5.3
+ webkit_navigation_action_is_user_gesture@Base 2.5.3
+ webkit_navigation_policy_decision_get_frame_name@Base 2.5.3
+ webkit_navigation_policy_decision_get_modifiers@Base 2.5.3
+ webkit_navigation_policy_decision_get_mouse_button@Base 2.5.3
+ webkit_navigation_policy_decision_get_navigation_type@Base 2.5.3
+ webkit_navigation_policy_decision_get_request@Base 2.5.3
+ webkit_navigation_policy_decision_get_type@Base 2.5.3
+ webkit_navigation_type_get_type@Base 2.5.3
+ webkit_network_error_get_type@Base 2.5.3
+ webkit_network_error_quark@Base 2.5.3
+ webkit_permission_request_allow@Base 2.5.3
+ webkit_permission_request_deny@Base 2.5.3
+ webkit_permission_request_get_type@Base 2.5.3
+ webkit_plugin_error_get_type@Base 2.5.3
+ webkit_plugin_error_quark@Base 2.5.3
+ webkit_plugin_get_description@Base 2.5.3
+ webkit_plugin_get_mime_info_list@Base 2.5.3
+ webkit_plugin_get_name@Base 2.5.3
+ webkit_plugin_get_path@Base 2.5.3
+ webkit_plugin_get_type@Base 2.5.3
+ webkit_policy_decision_download@Base 2.5.3
+ webkit_policy_decision_get_type@Base 2.5.3
+ webkit_policy_decision_ignore@Base 2.5.3
+ webkit_policy_decision_type_get_type@Base 2.5.3
+ webkit_policy_decision_use@Base 2.5.3
+ webkit_policy_error_get_type@Base 2.5.3
+ webkit_policy_error_quark@Base 2.5.3
+ webkit_print_error_get_type@Base 2.5.3
+ webkit_print_error_quark@Base 2.5.3
+ webkit_print_operation_get_page_setup@Base 2.5.3
+ webkit_print_operation_get_print_settings@Base 2.5.3
+ webkit_print_operation_get_type@Base 2.5.3
+ webkit_print_operation_new@Base 2.5.3
+ webkit_print_operation_print@Base 2.5.3
+ webkit_print_operation_response_get_type@Base 2.5.3
+ webkit_print_operation_run_dialog@Base 2.5.3
+ webkit_print_operation_set_page_setup@Base 2.5.3
+ webkit_print_operation_set_print_settings@Base 2.5.3
+ webkit_process_model_get_type@Base 2.5.3
+ webkit_response_policy_decision_get_request@Base 2.5.3
+ webkit_response_policy_decision_get_response@Base 2.5.3
+ webkit_response_policy_decision_get_type@Base 2.5.3
+ webkit_response_policy_decision_is_mime_type_supported@Base 2.5.3
+ webkit_save_mode_get_type@Base 2.5.3
+ webkit_script_dialog_confirm_set_confirmed@Base 2.5.3
+ webkit_script_dialog_get_dialog_type@Base 2.5.3
+ webkit_script_dialog_get_message@Base 2.5.3
+ webkit_script_dialog_get_type@Base 2.5.3
+ webkit_script_dialog_prompt_get_default_text@Base 2.5.3
+ webkit_script_dialog_prompt_set_text@Base 2.5.3
+ webkit_script_dialog_type_get_type@Base 2.5.3
+ webkit_script_world_get_default@Base 2.5.3
+ webkit_script_world_get_type@Base 2.5.3
+ webkit_script_world_new@Base 2.5.3
+ webkit_security_manager_get_type@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_cors_enabled@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_display_isolated@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_empty_document@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_local@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_no_access@Base 2.5.3
+ webkit_security_manager_register_uri_scheme_as_secure@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_cors_enabled@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_display_isolated@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_empty_document@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_local@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_no_access@Base 2.5.3
+ webkit_security_manager_uri_scheme_is_secure@Base 2.5.3
+ webkit_settings_get_allow_modal_dialogs@Base 2.5.3
+ webkit_settings_get_auto_load_images@Base 2.5.3
+ webkit_settings_get_cursive_font_family@Base 2.5.3
+ webkit_settings_get_default_charset@Base 2.5.3
+ webkit_settings_get_default_font_family@Base 2.5.3
+ webkit_settings_get_default_font_size@Base 2.5.3
+ webkit_settings_get_default_monospace_font_size@Base 2.5.3
+ webkit_settings_get_draw_compositing_indicators@Base 2.5.3
+ webkit_settings_get_enable_accelerated_2d_canvas@Base 2.5.3
+ webkit_settings_get_enable_caret_browsing@Base 2.5.3
+ webkit_settings_get_enable_developer_extras@Base 2.5.3
+ webkit_settings_get_enable_dns_prefetching@Base 2.5.3
+ webkit_settings_get_enable_frame_flattening@Base 2.5.3
+ webkit_settings_get_enable_fullscreen@Base 2.5.3
+ webkit_settings_get_enable_html5_database@Base 2.5.3
+ webkit_settings_get_enable_html5_local_storage@Base 2.5.3
+ webkit_settings_get_enable_hyperlink_auditing@Base 2.5.3
+ webkit_settings_get_enable_java@Base 2.5.3
+ webkit_settings_get_enable_javascript@Base 2.5.3
+ webkit_settings_get_enable_media_stream@Base 2.5.3
+ webkit_settings_get_enable_mediasource@Base 2.5.3
+ webkit_settings_get_enable_offline_web_application_cache@Base 2.5.3
+ webkit_settings_get_enable_page_cache@Base 2.5.3
+ webkit_settings_get_enable_plugins@Base 2.5.3
+ webkit_settings_get_enable_private_browsing@Base 2.5.3
+ webkit_settings_get_enable_resizable_text_areas@Base 2.5.3
+ webkit_settings_get_enable_site_specific_quirks@Base 2.5.3
+ webkit_settings_get_enable_smooth_scrolling@Base 2.5.3
+ webkit_settings_get_enable_spatial_navigation@Base 2.5.3
+ webkit_settings_get_enable_tabs_to_links@Base 2.5.3
+ webkit_settings_get_enable_webaudio@Base 2.5.3
+ webkit_settings_get_enable_webgl@Base 2.5.3
+ webkit_settings_get_enable_write_console_messages_to_stdout@Base 2.5.3
+ webkit_settings_get_enable_xss_auditor@Base 2.5.3
+ webkit_settings_get_fantasy_font_family@Base 2.5.3
+ webkit_settings_get_javascript_can_access_clipboard@Base 2.5.3
+ webkit_settings_get_javascript_can_open_windows_automatically@Base 2.5.3
+ webkit_settings_get_load_icons_ignoring_image_load_setting@Base 2.5.3
+ webkit_settings_get_media_playback_allows_inline@Base 2.5.3
+ webkit_settings_get_media_playback_requires_user_gesture@Base 2.5.3
+ webkit_settings_get_minimum_font_size@Base 2.5.3
+ webkit_settings_get_monospace_font_family@Base 2.5.3
+ webkit_settings_get_pictograph_font_family@Base 2.5.3
+ webkit_settings_get_print_backgrounds@Base 2.5.3
+ webkit_settings_get_sans_serif_font_family@Base 2.5.3
+ webkit_settings_get_serif_font_family@Base 2.5.3
+ webkit_settings_get_type@Base 2.5.3
+ webkit_settings_get_user_agent@Base 2.5.3
+ webkit_settings_get_zoom_text_only@Base 2.5.3
+ webkit_settings_new@Base 2.5.3
+ webkit_settings_new_with_settings@Base 2.5.3
+ webkit_settings_set_allow_modal_dialogs@Base 2.5.3
+ webkit_settings_set_auto_load_images@Base 2.5.3
+ webkit_settings_set_cursive_font_family@Base 2.5.3
+ webkit_settings_set_default_charset@Base 2.5.3
+ webkit_settings_set_default_font_family@Base 2.5.3
+ webkit_settings_set_default_font_size@Base 2.5.3
+ webkit_settings_set_default_monospace_font_size@Base 2.5.3
+ webkit_settings_set_draw_compositing_indicators@Base 2.5.3
+ webkit_settings_set_enable_accelerated_2d_canvas@Base 2.5.3
+ webkit_settings_set_enable_caret_browsing@Base 2.5.3
+ webkit_settings_set_enable_developer_extras@Base 2.5.3
+ webkit_settings_set_enable_dns_prefetching@Base 2.5.3
+ webkit_settings_set_enable_frame_flattening@Base 2.5.3
+ webkit_settings_set_enable_fullscreen@Base 2.5.3
+ webkit_settings_set_enable_html5_database@Base 2.5.3
+ webkit_settings_set_enable_html5_local_storage@Base 2.5.3
+ webkit_settings_set_enable_hyperlink_auditing@Base 2.5.3
+ webkit_settings_set_enable_java@Base 2.5.3
+ webkit_settings_set_enable_javascript@Base 2.5.3
+ webkit_settings_set_enable_media_stream@Base 2.5.3
+ webkit_settings_set_enable_mediasource@Base 2.5.3
+ webkit_settings_set_enable_offline_web_application_cache@Base 2.5.3
+ webkit_settings_set_enable_page_cache@Base 2.5.3
+ webkit_settings_set_enable_plugins@Base 2.5.3
+ webkit_settings_set_enable_private_browsing@Base 2.5.3
+ webkit_settings_set_enable_resizable_text_areas@Base 2.5.3
+ webkit_settings_set_enable_site_specific_quirks@Base 2.5.3
+ webkit_settings_set_enable_smooth_scrolling@Base 2.5.3
+ webkit_settings_set_enable_spatial_navigation@Base 2.5.3
+ webkit_settings_set_enable_tabs_to_links@Base 2.5.3
+ webkit_settings_set_enable_webaudio@Base 2.5.3
+ webkit_settings_set_enable_webgl@Base 2.5.3
+ webkit_settings_set_enable_write_console_messages_to_stdout@Base 2.5.3
+ webkit_settings_set_enable_xss_auditor@Base 2.5.3
+ webkit_settings_set_fantasy_font_family@Base 2.5.3
+ webkit_settings_set_javascript_can_access_clipboard@Base 2.5.3
+ webkit_settings_set_javascript_can_open_windows_automatically@Base 2.5.3
+ webkit_settings_set_load_icons_ignoring_image_load_setting@Base 2.5.3
+ webkit_settings_set_media_playback_allows_inline@Base 2.5.3
+ webkit_settings_set_media_playback_requires_user_gesture@Base 2.5.3
+ webkit_settings_set_minimum_font_size@Base 2.5.3
+ webkit_settings_set_monospace_font_family@Base 2.5.3
+ webkit_settings_set_pictograph_font_family@Base 2.5.3
+ webkit_settings_set_print_backgrounds@Base 2.5.3
+ webkit_settings_set_sans_serif_font_family@Base 2.5.3
+ webkit_settings_set_serif_font_family@Base 2.5.3
+ webkit_settings_set_user_agent@Base 2.5.3
+ webkit_settings_set_user_agent_with_application_details@Base 2.5.3
+ webkit_settings_set_zoom_text_only@Base 2.5.3
+ webkit_snapshot_error_get_type@Base 2.5.3
+ webkit_snapshot_error_quark@Base 2.5.3
+ webkit_snapshot_options_get_type@Base 2.5.3
+ webkit_snapshot_region_get_type@Base 2.5.3
+ (optional)webkit_soup_cookie_jar_sqlite_get_type@Base 2.5.3
+ (optional)webkit_soup_request_generic_get_type@Base 2.5.3
+ (optional)webkit_soup_request_input_stream_get_type@Base 2.5.3
+ webkit_tls_errors_policy_get_type@Base 2.5.3
+ webkit_uri_request_get_http_headers@Base 2.5.3
+ webkit_uri_request_get_type@Base 2.5.3
+ webkit_uri_request_get_uri@Base 2.5.3
+ webkit_uri_request_new@Base 2.5.3
+ webkit_uri_request_set_uri@Base 2.5.3
+ webkit_uri_response_get_content_length@Base 2.5.3
+ webkit_uri_response_get_http_headers@Base 2.6.0
+ webkit_uri_response_get_mime_type@Base 2.5.3
+ webkit_uri_response_get_status_code@Base 2.5.3
+ webkit_uri_response_get_suggested_filename@Base 2.5.3
+ webkit_uri_response_get_type@Base 2.5.3
+ webkit_uri_response_get_uri@Base 2.5.3
+ webkit_uri_scheme_request_finish@Base 2.5.3
+ webkit_uri_scheme_request_finish_error@Base 2.5.3
+ webkit_uri_scheme_request_get_path@Base 2.5.3
+ webkit_uri_scheme_request_get_scheme@Base 2.5.3
+ webkit_uri_scheme_request_get_type@Base 2.5.3
+ webkit_uri_scheme_request_get_uri@Base 2.5.3
+ webkit_uri_scheme_request_get_web_view@Base 2.5.3
+ webkit_user_content_injected_frames_get_type@Base 2.5.3
+ webkit_user_content_manager_add_script@Base 2.5.3
+ webkit_user_content_manager_add_style_sheet@Base 2.5.3
+ webkit_user_content_manager_get_type@Base 2.5.3
+ webkit_user_content_manager_new@Base 2.5.3
+ webkit_user_content_manager_remove_all_scripts@Base 2.5.3
+ webkit_user_content_manager_remove_all_style_sheets@Base 2.5.3
+ webkit_user_script_get_type@Base 2.5.3
+ webkit_user_script_injection_time_get_type@Base 2.5.3
+ webkit_user_script_new@Base 2.5.3
+ webkit_user_script_ref@Base 2.5.3
+ webkit_user_script_unref@Base 2.5.3
+ webkit_user_style_level_get_type@Base 2.5.3
+ webkit_user_style_sheet_get_type@Base 2.5.3
+ webkit_user_style_sheet_new@Base 2.5.3
+ webkit_user_style_sheet_ref@Base 2.5.3
+ webkit_user_style_sheet_unref@Base 2.5.3
+ webkit_web_context_allow_tls_certificate_for_host@Base 2.5.3
+ webkit_web_context_clear_cache@Base 2.5.3
+ webkit_web_context_download_uri@Base 2.5.3
+ webkit_web_context_get_cache_model@Base 2.5.3
+ webkit_web_context_get_cookie_manager@Base 2.5.3
+ webkit_web_context_get_default@Base 2.5.3
+ webkit_web_context_get_favicon_database@Base 2.5.3
+ webkit_web_context_get_favicon_database_directory@Base 2.5.3
+ webkit_web_context_get_plugins@Base 2.5.3
+ webkit_web_context_get_plugins_finish@Base 2.5.3
+ webkit_web_context_get_process_model@Base 2.5.3
+ webkit_web_context_get_security_manager@Base 2.5.3
+ webkit_web_context_get_spell_checking_enabled@Base 2.5.3
+ webkit_web_context_get_spell_checking_languages@Base 2.5.3
+ webkit_web_context_get_tls_errors_policy@Base 2.5.3
+ webkit_web_context_get_type@Base 2.5.3
+ webkit_web_context_prefetch_dns@Base 2.5.3
+ webkit_web_context_register_uri_scheme@Base 2.5.3
+ webkit_web_context_set_additional_plugins_directory@Base 2.5.3
+ webkit_web_context_set_cache_model@Base 2.5.3
+ webkit_web_context_set_disk_cache_directory@Base 2.5.3
+ webkit_web_context_set_favicon_database_directory@Base 2.5.3
+ webkit_web_context_set_preferred_languages@Base 2.5.3
+ webkit_web_context_set_process_model@Base 2.5.3
+ webkit_web_context_set_spell_checking_enabled@Base 2.5.3
+ webkit_web_context_set_spell_checking_languages@Base 2.5.3
+ webkit_web_context_set_tls_errors_policy@Base 2.5.3
+ webkit_web_context_set_web_extensions_directory@Base 2.5.3
+ webkit_web_context_set_web_extensions_initialization_user_data@Base 2.5.3
+ webkit_web_extension_get_page@Base 2.5.3
+ webkit_web_extension_get_type@Base 2.5.3
+ webkit_web_inspector_attach@Base 2.5.3
+ webkit_web_inspector_close@Base 2.5.3
+ webkit_web_inspector_detach@Base 2.5.3
+ webkit_web_inspector_get_attached_height@Base 2.5.3
+ webkit_web_inspector_get_inspected_uri@Base 2.5.3
+ webkit_web_inspector_get_type@Base 2.5.3
+ webkit_web_inspector_get_web_view@Base 2.5.3
+ webkit_web_inspector_is_attached@Base 2.5.3
+ webkit_web_inspector_show@Base 2.5.3
+ webkit_web_page_get_dom_document@Base 2.5.3
+ webkit_web_page_get_id@Base 2.5.3
+ webkit_web_page_get_main_frame@Base 2.5.3
+ webkit_web_page_get_type@Base 2.5.3
+ webkit_web_page_get_uri@Base 2.5.3
+ webkit_web_resource_get_data@Base 2.5.3
+ webkit_web_resource_get_data_finish@Base 2.5.3
+ webkit_web_resource_get_response@Base 2.5.3
+ webkit_web_resource_get_type@Base 2.5.3
+ webkit_web_resource_get_uri@Base 2.5.3
+ webkit_web_src_get_type@Base 2.5.3
+ webkit_web_view_base_accessible_get_type@Base 2.5.3
+ webkit_web_view_base_get_type@Base 2.5.3
+ webkit_web_view_can_execute_editing_command@Base 2.5.3
+ webkit_web_view_can_execute_editing_command_finish@Base 2.5.3
+ webkit_web_view_can_go_back@Base 2.5.3
+ webkit_web_view_can_go_forward@Base 2.5.3
+ webkit_web_view_can_show_mime_type@Base 2.5.3
+ webkit_web_view_download_uri@Base 2.5.3
+ webkit_web_view_execute_editing_command@Base 2.5.3
+ webkit_web_view_get_back_forward_list@Base 2.5.3
+ webkit_web_view_get_context@Base 2.5.3
+ webkit_web_view_get_custom_charset@Base 2.5.3
+ webkit_web_view_get_estimated_load_progress@Base 2.5.3
+ webkit_web_view_get_favicon@Base 2.5.3
+ webkit_web_view_get_find_controller@Base 2.5.3
+ webkit_web_view_get_inspector@Base 2.5.3
+ webkit_web_view_get_javascript_global_context@Base 2.5.3
+ webkit_web_view_get_main_resource@Base 2.5.3
+ webkit_web_view_get_page_id@Base 2.5.3
+ webkit_web_view_get_settings@Base 2.5.3
+ webkit_web_view_get_snapshot@Base 2.5.3
+ webkit_web_view_get_snapshot_finish@Base 2.5.3
+ webkit_web_view_get_title@Base 2.5.3
+ webkit_web_view_get_tls_info@Base 2.5.3
+ webkit_web_view_get_type@Base 2.5.3
+ webkit_web_view_get_uri@Base 2.5.3
+ webkit_web_view_get_user_content_manager@Base 2.5.3
+ webkit_web_view_get_window_properties@Base 2.5.3
+ webkit_web_view_get_zoom_level@Base 2.5.3
+ webkit_web_view_go_back@Base 2.5.3
+ webkit_web_view_go_forward@Base 2.5.3
+ webkit_web_view_go_to_back_forward_list_item@Base 2.5.3
+ webkit_web_view_is_loading@Base 2.5.3
+ webkit_web_view_load_alternate_html@Base 2.5.3
+ webkit_web_view_load_bytes@Base 2.5.3
+ webkit_web_view_load_html@Base 2.5.3
+ webkit_web_view_load_plain_text@Base 2.5.3
+ webkit_web_view_load_request@Base 2.5.3
+ webkit_web_view_load_uri@Base 2.5.3
+ webkit_web_view_new@Base 2.5.3
+ webkit_web_view_new_with_context@Base 2.5.3
+ webkit_web_view_new_with_related_view@Base 2.5.3
+ webkit_web_view_new_with_settings@Base 2.5.3
+ webkit_web_view_new_with_user_content_manager@Base 2.5.3
+ webkit_web_view_reload@Base 2.5.3
+ webkit_web_view_reload_bypass_cache@Base 2.5.3
+ webkit_web_view_run_javascript@Base 2.5.3
+ webkit_web_view_run_javascript_finish@Base 2.5.3
+ webkit_web_view_run_javascript_from_gresource@Base 2.5.3
+ webkit_web_view_run_javascript_from_gresource_finish@Base 2.5.3
+ webkit_web_view_save@Base 2.5.3
+ webkit_web_view_save_finish@Base 2.5.3
+ webkit_web_view_save_to_file@Base 2.5.3
+ webkit_web_view_save_to_file_finish@Base 2.5.3
+ webkit_web_view_set_custom_charset@Base 2.5.3
+ webkit_web_view_set_settings@Base 2.5.3
+ webkit_web_view_set_zoom_level@Base 2.5.3
+ webkit_web_view_stop_loading@Base 2.5.3
+ webkit_window_properties_get_fullscreen@Base 2.5.3
+ webkit_window_properties_get_geometry@Base 2.5.3
+ webkit_window_properties_get_locationbar_visible@Base 2.5.3
+ webkit_window_properties_get_menubar_visible@Base 2.5.3
+ webkit_window_properties_get_resizable@Base 2.5.3
+ webkit_window_properties_get_scrollbars_visible@Base 2.5.3
+ webkit_window_properties_get_statusbar_visible@Base 2.5.3
+ webkit_window_properties_get_toolbar_visible@Base 2.5.3
+ webkit_window_properties_get_type@Base 2.5.3
--- /dev/null
+usr/include/webkitgtk-4.0/webkit2
+usr/include/webkitgtk-4.0/webkitdom
+usr/lib/*/libwebkit2gtk-4.0.so
+usr/lib/*/pkgconfig/webkit2gtk-4.0.pc
+usr/lib/*/pkgconfig/webkit2gtk-web-extension-4.0.pc
+usr/share/gir-1.0/WebKit2-4.0.gir usr/share/gir-1.0/
+usr/share/gir-1.0/WebKit2WebExtension-4.0.gir usr/share/gir-1.0/
--- /dev/null
+Document: webkit2gtk
+Title: WebKit2GTK+ reference manual
+Author: WebKitGTK+ development team
+Abstract: This manual contains the developer documentation of
+ WebKitGTK+, a web content engine, designed to be embedded in other
+ applications, such as mail readers, or web browsers.
+ .
+ It is able to display content such as HTML, SVG, XML, and others. It
+ also supports DOM, XMLHttpRequest, XSLT, CSS, JavaScript/ECMAScript
+ and more.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/libwebkit2gtk-4.0-doc/html/index.html
+Files: /usr/share/doc/libwebkit2gtk-4.0-doc/html/*.html
--- /dev/null
+Documentation/webkit2gtk/html/* usr/share/doc/libwebkit2gtk-4.0-doc/html/
--- /dev/null
+usr/share/doc/libwebkit2gtk-4.0-doc/html usr/share/gtk-doc/html/webkit2gtk-4.0
+usr/share/doc/libwebkit2gtk-4.0-doc/html/webkit2gtk.devhelp2.gz usr/share/doc/libwebkit2gtk-4.0-doc/html/webkit2gtk-4.0.devhelp2.gz
--- /dev/null
+From: Joanmarie Diggs <jdiggs@igalia.com>
+Subject: Accessible values are no longer accessible via AT-SPI2
+Origin: http://trac.webkit.org/changeset/176193
+Index: webkitgtk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceValue.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceValue.cpp
++++ webkitgtk/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceValue.cpp
+@@ -114,7 +114,7 @@ static AtkRange* webkitAccessibleGetRang
+ gchar* valueDescription = g_strdup_printf("%s", coreObject->valueDescription().utf8().data());
+ return atk_range_new(minValue, maxValue, valueDescription);
+ }
+-#else
++#endif
+ static void webkitAccessibleValueGetCurrentValue(AtkValue* value, GValue* gValue)
+ {
+ g_return_if_fail(ATK_VALUE(value));
+@@ -184,7 +184,6 @@ static void webkitAccessibleValueGetMini
+ AccessibilityObject* coreObject = core(value);
+ g_value_set_float(gValue, webkitAccessibleGetIncrementValue(coreObject));
+ }
+-#endif
+
+ void webkitAccessibleValueInterfaceInit(AtkValueIface* iface)
+ {
+@@ -193,13 +192,12 @@ void webkitAccessibleValueInterfaceInit(
+ iface->get_increment = webkitAccessibleGetIncrement;
+ iface->set_value = webkitAccessibleSetValue;
+ iface->get_range = webkitAccessibleGetRange;
+-#else
++#endif
+ iface->get_current_value = webkitAccessibleValueGetCurrentValue;
+ iface->get_maximum_value = webkitAccessibleValueGetMaximumValue;
+ iface->get_minimum_value = webkitAccessibleValueGetMinimumValue;
+ iface->set_current_value = webkitAccessibleValueSetCurrentValue;
+ iface->get_minimum_increment = webkitAccessibleValueGetMinimumIncrement;
+-#endif
+ }
+
+ #endif
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Some architectures need to add -latomic explicitly
+Index: webkitgtk/Source/cmake/OptionsCommon.cmake
+===================================================================
+--- webkitgtk.orig/Source/cmake/OptionsCommon.cmake
++++ webkitgtk/Source/cmake/OptionsCommon.cmake
+@@ -69,3 +69,10 @@ endif ()
+ # files must be used to deal with very long linker command lines.
+ # See https://bugs.webkit.org/show_bug.cgi?id=129771
+ set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1)
++
++try_compile(ATOMIC_BUILD_SUCCEEDED ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/atomic.cpp)
++if (NOT ATOMIC_BUILD_SUCCEEDED)
++ message(STATUS "Adding -latomic to the linker flags")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--push-state,--no-as-needed,-latomic,--pop-state")
++ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--push-state,--no-as-needed,-latomic,--pop-state")
++endif()
+Index: webkitgtk/atomic.cpp
+===================================================================
+--- /dev/null
++++ webkitgtk/atomic.cpp
+@@ -0,0 +1,7 @@
++#include <atomic>
++
++int main() {
++ std::atomic<int64_t> i(0);
++ i++;
++ return 0;
++}
--- /dev/null
+From: Joanmarie Diggs <jdiggs@igalia.com>
+Subject: Fix accessible focus events in non-focused combo boxes
+Origin: http://trac.webkit.org/changeset/176177, http://trac.webkit.org/changeset/176178
+Index: webkitgtk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
++++ webkitgtk/Source/WebCore/accessibility/atk/AXObjectCacheAtk.cpp
+@@ -175,8 +175,12 @@ static void notifyChildrenSelectionChang
+ if (axItem) {
+ bool isSelected = item->isSelected();
+ atk_object_notify_state_change(axItem, ATK_STATE_SELECTED, isSelected);
+- g_signal_emit_by_name(axItem, "focus-event", isSelected);
+- atk_object_notify_state_change(axItem, ATK_STATE_FOCUSED, isSelected);
++ // When the selection changes in a collapsed widget such as a combo box
++ // whose child menu is not showing, that collapsed widget retains focus.
++ if (!object->isCollapsed()) {
++ g_signal_emit_by_name(axItem, "focus-event", isSelected);
++ atk_object_notify_state_change(axItem, ATK_STATE_FOCUSED, isSelected);
++ }
+ }
+
+ // Update pointers to the previously involved objects.
+@@ -199,7 +203,8 @@ void AXObjectCache::postPlatformNotifica
+
+ case AXSelectedChildrenChanged:
+ case AXMenuListValueChanged:
+- if (notification == AXMenuListValueChanged && coreObject->isMenuList()) {
++ // Accessible focus claims should not be made if the associated widget is not focused.
++ if (notification == AXMenuListValueChanged && coreObject->isMenuList() && coreObject->isFocused()) {
+ g_signal_emit_by_name(axObject, "focus-event", true);
+ atk_object_notify_state_change(axObject, ATK_STATE_FOCUSED, true);
+ }
+Index: webkitgtk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
++++ webkitgtk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp
+@@ -748,13 +748,15 @@ static AtkRole atkRole(AccessibilityObje
+
+ static AtkRole webkitAccessibleGetRole(AtkObject* object)
+ {
+- g_return_val_if_fail(WEBKIT_IS_ACCESSIBLE(object), ATK_ROLE_UNKNOWN);
+- returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(object), ATK_ROLE_UNKNOWN);
++ // ATK_ROLE_UNKNOWN should only be applied in cases where there is a valid
++ // WebCore accessible object for which the platform role mapping is unknown.
++ g_return_val_if_fail(WEBKIT_IS_ACCESSIBLE(object), ATK_ROLE_INVALID);
++ returnValIfWebKitAccessibleIsInvalid(WEBKIT_ACCESSIBLE(object), ATK_ROLE_INVALID);
+
+ AccessibilityObject* coreObject = core(object);
+
+ if (!coreObject)
+- return ATK_ROLE_UNKNOWN;
++ return ATK_ROLE_INVALID;
+
+ // Note: Why doesn't WebCore have a password field for this
+ if (coreObject->isPasswordField())
+Index: webkitgtk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp
+===================================================================
+--- webkitgtk.orig/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp
++++ webkitgtk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp
+@@ -369,6 +369,8 @@ const gchar* roleToString(AtkObject* obj
+ return "AXImage";
+ case ATK_ROLE_IMAGE_MAP:
+ return "AXImageMap";
++ case ATK_ROLE_INVALID:
++ return "AXInvalid";
+ case ATK_ROLE_LABEL:
+ return "AXLabel";
+ case ATK_ROLE_LINK:
+@@ -1013,9 +1015,6 @@ JSRetainPtr<JSStringRef> AccessibilityUI
+ if (!ATK_IS_OBJECT(m_element.get()))
+ return JSStringCreateWithCharacters(0, 0);
+
+- if (!atk_object_get_role(ATK_OBJECT(m_element.get())))
+- return JSStringCreateWithCharacters(0, 0);
+-
+ GUniquePtr<char> roleStringWithPrefix(g_strdup_printf("AXRole: %s", roleToString(ATK_OBJECT(m_element.get()))));
+ return JSStringCreateWithUTF8CString(roleStringWithPrefix.get());
+ }
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Check TLS errors as soon as they are set in the SoupMessage
+Bug: https://bugs.webkit.org/show_bug.cgi?id=142244
+Origin: http://trac.webkit.org/changeset/181074
+Index: webkitgtk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
++++ webkitgtk/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+@@ -331,16 +331,21 @@ static bool handleUnignoredTLSErrors(Res
+ return true;
+ }
+
+-static void gotHeadersCallback(SoupMessage* message, gpointer data)
++static void tlsErrorsChangedCallback(SoupMessage* message, GParamSpec*, gpointer data)
+ {
+ ResourceHandle* handle = static_cast<ResourceHandle*>(data);
+ if (!handle || handle->cancelledOrClientless())
+ return;
+
+- if (handleUnignoredTLSErrors(handle, message)) {
++ if (handleUnignoredTLSErrors(handle, message))
+ handle->cancel();
++}
++
++static void gotHeadersCallback(SoupMessage* message, gpointer data)
++{
++ ResourceHandle* handle = static_cast<ResourceHandle*>(data);
++ if (!handle || handle->cancelledOrClientless())
+ return;
+- }
+
+ ResourceHandleInternal* d = handle->getInternal();
+
+@@ -931,6 +936,7 @@ static bool createSoupMessageForHandleAn
+ && (!request.httpBody() || request.httpBody()->isEmpty()))
+ soup_message_headers_set_content_length(soupMessage->request_headers, 0);
+
++ g_signal_connect(d->m_soupMessage.get(), "notify::tls-errors", G_CALLBACK(tlsErrorsChangedCallback), handle);
+ g_signal_connect(d->m_soupMessage.get(), "got-headers", G_CALLBACK(gotHeadersCallback), handle);
+ g_signal_connect(d->m_soupMessage.get(), "wrote-body-data", G_CALLBACK(wroteBodyDataCallback), handle);
+
+Index: webkitgtk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp
+===================================================================
+--- webkitgtk.orig/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp
++++ webkitgtk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp
+@@ -129,16 +129,21 @@ static void testInsecureContent(Insecure
+ webkit_web_context_set_tls_errors_policy(context, originalPolicy);
+ }
+
++static bool assertIfSSLRequestProcessed = false;
++
+ static void testTLSErrorsPolicy(SSLTest* test, gconstpointer)
+ {
+ WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);
+ // TLS errors are treated as transport failures by default.
+ g_assert(webkit_web_context_get_tls_errors_policy(context) == WEBKIT_TLS_ERRORS_POLICY_FAIL);
++
++ assertIfSSLRequestProcessed = true;
+ test->loadURI(kHttpsServer->getURIForPath("/").data());
+ test->waitUntilLoadFinished();
+ g_assert(test->m_loadFailed);
+ g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
+ g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadCommitted));
++ assertIfSSLRequestProcessed = false;
+
+ webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_IGNORE);
+ g_assert(webkit_web_context_get_tls_errors_policy(context) == WEBKIT_TLS_ERRORS_POLICY_IGNORE);
+@@ -158,11 +163,13 @@ static void testTLSErrorsRedirect(SSLTes
+ WebKitTLSErrorsPolicy originalPolicy = webkit_web_context_get_tls_errors_policy(context);
+ webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);
+
++ assertIfSSLRequestProcessed = true;
+ test->loadURI(kHttpsServer->getURIForPath("/redirect").data());
+ test->waitUntilLoadFinished();
+ g_assert(test->m_loadFailed);
+ g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
+ g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadCommitted));
++ assertIfSSLRequestProcessed = false;
+
+ webkit_web_context_set_tls_errors_policy(context, originalPolicy);
+ }
+@@ -180,12 +187,14 @@ static void testTLSErrorsHTTPAuth(SSLTes
+ WebKitTLSErrorsPolicy originalPolicy = webkit_web_context_get_tls_errors_policy(context);
+ webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);
+
++ assertIfSSLRequestProcessed = true;
+ g_signal_connect(test->m_webView, "authenticate", G_CALLBACK(webViewAuthenticationCallback), NULL);
+ test->loadURI(kHttpsServer->getURIForPath("/auth").data());
+ test->waitUntilLoadFinished();
+ g_assert(test->m_loadFailed);
+ g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
+ g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadCommitted));
++ assertIfSSLRequestProcessed = false;
+
+ webkit_web_context_set_tls_errors_policy(context, originalPolicy);
+ }
+@@ -235,6 +244,7 @@ static void testLoadFailedWithTLSErrors(
+ WebKitTLSErrorsPolicy originalPolicy = webkit_web_context_get_tls_errors_policy(context);
+ webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);
+
++ assertIfSSLRequestProcessed = true;
+ // The load-failed-with-tls-errors signal should be emitted when there is a TLS failure.
+ test->loadURI(kHttpsServer->getURIForPath("/test-tls/").data());
+ test->waitUntilLoadFinished();
+@@ -244,6 +254,7 @@ static void testLoadFailedWithTLSErrors(
+ g_assert_cmpint(test->m_loadEvents[0], ==, LoadTrackingTest::ProvisionalLoadStarted);
+ g_assert_cmpint(test->m_loadEvents[1], ==, LoadTrackingTest::LoadFailedWithTLSErrors);
+ g_assert_cmpint(test->m_loadEvents[2], ==, LoadTrackingTest::LoadFinished);
++ assertIfSSLRequestProcessed = false;
+
+ // Test allowing an exception for this certificate on this host.
+ webkit_web_context_allow_tls_certificate_for_host(context, test->certificate(), test->host());
+@@ -267,6 +278,8 @@ static void httpsServerCallback(SoupServ
+ return;
+ }
+
++ g_assert(!assertIfSSLRequestProcessed);
++
+ if (g_str_equal(path, "/")) {
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, indexHTML, strlen(indexHTML));
--- /dev/null
+From: Carlos Garcia Campos <cgarcia@igalia.com>
+Subject: Enable CSS_IMAGE_SET, required in order to display all inspector icons
+Origin: http://trac.webkit.org/changeset/173999
+Index: webkitgtk/Source/cmake/OptionsGTK.cmake
+===================================================================
+--- webkitgtk.orig/Source/cmake/OptionsGTK.cmake
++++ webkitgtk/Source/cmake/OptionsGTK.cmake
+@@ -111,7 +111,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS3_TEXT OFF)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_DEVICE_ADAPTATION OFF)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_GRID_LAYOUT OFF)
+-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_SET OFF)
++WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_IMAGE_SET ON)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS ON)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SELECTORS_LEVEL4 ON)
+ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER OFF)
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Enable DFG JIT on FreeBSD and Hurd
+Bug: https://bugs.webkit.org/show_bug.cgi?id=128898
+Index: webkitgtk/Source/WTF/wtf/Platform.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/Platform.h
++++ webkitgtk/Source/WTF/wtf/Platform.h
+@@ -713,7 +713,7 @@
+
+ #if !defined(ENABLE_DFG_JIT) && ENABLE(JIT)
+ /* Enable the DFG JIT on X86 and X86_64. */
+-#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(WINDOWS))
++#if (CPU(X86) || CPU(X86_64)) && (OS(DARWIN) || OS(LINUX) || OS(FREEBSD) || OS(WINDOWS) || OS(HURD))
+ #define ENABLE_DFG_JIT 1
+ #endif
+ /* Enable the DFG JIT on ARMv7. Only tested on iOS and Qt/GTK+ Linux. */
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Recursive crash at WebCore::accessibleNameForNode
+Bug: https://bugs.webkit.org/show_bug.cgi?id=139616
+Origin: http://trac.webkit.org/changeset/178359
+Index: webkitgtk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
++++ webkitgtk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
+@@ -86,7 +86,7 @@ namespace WebCore {
+
+ using namespace HTMLNames;
+
+-static String accessibleNameForNode(Node*);
++static String accessibleNameForNode(Node* node, Node* labelledbyNode = nullptr);
+
+ AccessibilityNodeObject::AccessibilityNodeObject(Node* node)
+ : AccessibilityObject()
+@@ -1664,6 +1664,8 @@ String AccessibilityNodeObject::textUnde
+
+ StringBuilder builder;
+ for (AccessibilityObject* child = firstChild(); child; child = child->nextSibling()) {
++ if (mode.ignoredChildNode && child->node() == mode.ignoredChildNode)
++ continue;
+
+ bool shouldDeriveNameFromAuthor = (mode.childrenInclusion == AccessibilityTextUnderElementMode::TextUnderElementModeIncludeNameFromContentsChildren && !child->accessibleNameDerivesFromContent());
+ if (shouldDeriveNameFromAuthor) {
+@@ -1840,7 +1842,7 @@ void AccessibilityNodeObject::colorValue
+
+ // This function implements the ARIA accessible name as described by the Mozilla
+ // ARIA Implementer's Guide.
+-static String accessibleNameForNode(Node* node)
++static String accessibleNameForNode(Node* node, Node* labelledbyNode)
+ {
+ ASSERT(node);
+ if (!node || !node->isElementNode())
+@@ -1870,7 +1872,7 @@ static String accessibleNameForNode(Node
+ String text;
+ if (axObject) {
+ if (axObject->accessibleNameDerivesFromContent())
+- text = axObject->textUnderElement(AccessibilityTextUnderElementMode(AccessibilityTextUnderElementMode::TextUnderElementModeIncludeNameFromContentsChildren, true));
++ text = axObject->textUnderElement(AccessibilityTextUnderElementMode(AccessibilityTextUnderElementMode::TextUnderElementModeIncludeNameFromContentsChildren, true, labelledbyNode));
+ } else
+ text = element->innerText();
+
+@@ -1889,7 +1891,7 @@ String AccessibilityNodeObject::accessib
+ StringBuilder builder;
+ unsigned size = elements.size();
+ for (unsigned i = 0; i < size; ++i)
+- appendNameToStringBuilder(builder, accessibleNameForNode(elements[i]));
++ appendNameToStringBuilder(builder, accessibleNameForNode(elements[i], node()));
+ return builder.toString();
+ }
+
+Index: webkitgtk/Source/WebCore/accessibility/AccessibilityObject.h
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/AccessibilityObject.h
++++ webkitgtk/Source/WebCore/accessibility/AccessibilityObject.h
+@@ -253,11 +253,13 @@ struct AccessibilityTextUnderElementMode
+
+ ChildrenInclusion childrenInclusion;
+ bool includeFocusableContent;
++ Node* ignoredChildNode;
+
+- AccessibilityTextUnderElementMode(ChildrenInclusion c = TextUnderElementModeSkipIgnoredChildren, bool i = false)
+- : childrenInclusion(c)
+- , includeFocusableContent(i)
+- { }
++ AccessibilityTextUnderElementMode(ChildrenInclusion c = TextUnderElementModeSkipIgnoredChildren, bool i = false, Node* ignored = nullptr)
++ : childrenInclusion(c)
++ , includeFocusableContent(i)
++ , ignoredChildNode(ignored)
++ { }
+ };
+
+ enum AccessibilityOrientation {
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Fix segfault when calling clearSelection on a detached RenderObject
+Bug: https://bugs.webkit.org/show_bug.cgi?id=140275
+Origin: http://trac.webkit.org/changeset/178360
+Index: webkitgtk/Source/WebCore/rendering/RenderBox.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/rendering/RenderBox.cpp
++++ webkitgtk/Source/WebCore/rendering/RenderBox.cpp
+@@ -1828,6 +1828,8 @@ LayoutUnit RenderBox::containingBlockLog
+ #endif
+
+ RenderBlock* cb = containingBlock();
++ if (!cb)
++ return LayoutUnit();
+ return cb->availableLogicalWidth();
+ }
+
+@@ -1839,6 +1841,8 @@ LayoutUnit RenderBox::containingBlockLog
+ #endif
+
+ RenderBlock* cb = containingBlock();
++ if (!cb)
++ return LayoutUnit();
+ return cb->availableLogicalHeight(heightType);
+ }
+
+Index: webkitgtk/Source/WebCore/rendering/RenderView.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/rendering/RenderView.cpp
++++ webkitgtk/Source/WebCore/rendering/RenderView.cpp
+@@ -1105,7 +1105,7 @@ void RenderView::getSelection(RenderObje
+ void RenderView::clearSelection()
+ {
+ layer()->repaintBlockSelectionGaps();
+- setSelection(0, -1, 0, -1, RepaintNewMinusOld);
++ setSelection(nullptr, -1, nullptr, -1, RepaintNewMinusOld);
+ }
+
+ bool RenderView::printing() const
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: String(new Date(Mar 30 2014 01:00:00)) is wrong in CET
+Bug: https://bugs.webkit.org/show_bug.cgi?id=130967
+Origin: http://trac.webkit.org/changeset/175904
+Index: webkitgtk/Source/JavaScriptCore/runtime/DateConstructor.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/DateConstructor.cpp
++++ webkitgtk/Source/JavaScriptCore/runtime/DateConstructor.cpp
+@@ -166,7 +166,7 @@ JSObject* constructDate(ExecState* exec,
+ t.setSecond(JSC::toInt32(doubleArguments[5]));
+ t.setIsDST(-1);
+ double ms = (numArgs >= 7) ? doubleArguments[6] : 0;
+- value = gregorianDateTimeToMS(vm, t, ms, false);
++ value = gregorianDateTimeToMS(vm, t, ms, WTF::LocalTime);
+ }
+ }
+
+@@ -190,7 +190,7 @@ static EncodedJSValue JSC_HOST_CALL call
+ {
+ VM& vm = exec->vm();
+ GregorianDateTime ts;
+- msToGregorianDateTime(vm, currentTimeMS(), false, ts);
++ msToGregorianDateTime(vm, currentTimeMS(), WTF::LocalTime, ts);
+ return JSValue::encode(jsNontrivialString(&vm, formatDateTime(ts, DateTimeFormatDateAndTime, false)));
+ }
+
+@@ -244,7 +244,7 @@ EncodedJSValue JSC_HOST_CALL dateUTC(Exe
+ t.setMinute(JSC::toInt32(doubleArguments[4]));
+ t.setSecond(JSC::toInt32(doubleArguments[5]));
+ double ms = (n >= 7) ? doubleArguments[6] : 0;
+- return JSValue::encode(jsNumber(timeClip(gregorianDateTimeToMS(exec->vm(), t, ms, true))));
++ return JSValue::encode(jsNumber(timeClip(gregorianDateTimeToMS(exec->vm(), t, ms, WTF::UTCTime))));
+ }
+
+ } // namespace JSC
+Index: webkitgtk/Source/JavaScriptCore/runtime/DateInstance.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/DateInstance.cpp
++++ webkitgtk/Source/JavaScriptCore/runtime/DateInstance.cpp
+@@ -69,7 +69,7 @@ const GregorianDateTime* DateInstance::c
+ m_data = vm.dateInstanceCache.add(milli);
+
+ if (m_data->m_gregorianDateTimeCachedForMS != milli) {
+- msToGregorianDateTime(vm, milli, false, m_data->m_cachedGregorianDateTime);
++ msToGregorianDateTime(vm, milli, WTF::LocalTime, m_data->m_cachedGregorianDateTime);
+ m_data->m_gregorianDateTimeCachedForMS = milli;
+ }
+ return &m_data->m_cachedGregorianDateTime;
+@@ -86,7 +86,7 @@ const GregorianDateTime* DateInstance::c
+ m_data = vm.dateInstanceCache.add(milli);
+
+ if (m_data->m_gregorianDateTimeUTCCachedForMS != milli) {
+- msToGregorianDateTime(vm, milli, true, m_data->m_cachedGregorianDateTimeUTC);
++ msToGregorianDateTime(vm, milli, WTF::UTCTime, m_data->m_cachedGregorianDateTimeUTC);
+ m_data->m_gregorianDateTimeUTCCachedForMS = milli;
+ }
+ return &m_data->m_cachedGregorianDateTimeUTC;
+Index: webkitgtk/Source/JavaScriptCore/runtime/DatePrototype.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/DatePrototype.cpp
++++ webkitgtk/Source/JavaScriptCore/runtime/DatePrototype.cpp
+@@ -859,7 +859,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFu
+ return JSValue::encode(result);
+ }
+
+-static EncodedJSValue setNewValueFromTimeArgs(ExecState* exec, int numArgsToUse, bool inputIsUTC)
++static EncodedJSValue setNewValueFromTimeArgs(ExecState* exec, int numArgsToUse, WTF::TimeType inputTimeType)
+ {
+ JSValue thisValue = exec->thisValue();
+ if (!thisValue.inherits(DateInstance::info()))
+@@ -878,7 +878,7 @@ static EncodedJSValue setNewValueFromTim
+ double secs = floor(milli / msPerSecond);
+ double ms = milli - secs * msPerSecond;
+
+- const GregorianDateTime* other = inputIsUTC
++ const GregorianDateTime* other = inputTimeType == WTF::UTCTime
+ ? thisDateObj->gregorianDateTimeUTC(exec)
+ : thisDateObj->gregorianDateTime(exec);
+ if (!other)
+@@ -892,12 +892,12 @@ static EncodedJSValue setNewValueFromTim
+ return JSValue::encode(result);
+ }
+
+- JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputIsUTC));
++ JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputTimeType));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
+ }
+
+-static EncodedJSValue setNewValueFromDateArgs(ExecState* exec, int numArgsToUse, bool inputIsUTC)
++static EncodedJSValue setNewValueFromDateArgs(ExecState* exec, int numArgsToUse, WTF::TimeType inputTimeType)
+ {
+ JSValue thisValue = exec->thisValue();
+ if (!thisValue.inherits(DateInstance::info()))
+@@ -916,10 +916,10 @@ static EncodedJSValue setNewValueFromDat
+
+ GregorianDateTime gregorianDateTime;
+ if (numArgsToUse == 3 && std::isnan(milli))
+- msToGregorianDateTime(vm, 0, true, gregorianDateTime);
++ msToGregorianDateTime(vm, 0, WTF::UTCTime, gregorianDateTime);
+ else {
+ ms = milli - floor(milli / msPerSecond) * msPerSecond;
+- const GregorianDateTime* other = inputIsUTC
++ const GregorianDateTime* other = inputTimeType == WTF::UTCTime
+ ? thisDateObj->gregorianDateTimeUTC(exec)
+ : thisDateObj->gregorianDateTime(exec);
+ if (!other)
+@@ -933,93 +933,93 @@ static EncodedJSValue setNewValueFromDat
+ return JSValue::encode(result);
+ }
+
+- JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputIsUTC));
++ JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, inputTimeType));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetMilliSeconds(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromTimeArgs(exec, 1, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromTimeArgs(exec, 1, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCMilliseconds(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromTimeArgs(exec, 1, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromTimeArgs(exec, 1, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetSeconds(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromTimeArgs(exec, 2, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromTimeArgs(exec, 2, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCSeconds(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromTimeArgs(exec, 2, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromTimeArgs(exec, 2, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetMinutes(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromTimeArgs(exec, 3, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromTimeArgs(exec, 3, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCMinutes(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromTimeArgs(exec, 3, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromTimeArgs(exec, 3, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetHours(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromTimeArgs(exec, 4, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromTimeArgs(exec, 4, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCHours(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromTimeArgs(exec, 4, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromTimeArgs(exec, 4, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetDate(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromDateArgs(exec, 1, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromDateArgs(exec, 1, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCDate(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromDateArgs(exec, 1, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromDateArgs(exec, 1, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetMonth(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromDateArgs(exec, 2, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromDateArgs(exec, 2, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCMonth(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromDateArgs(exec, 2, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromDateArgs(exec, 2, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetFullYear(ExecState* exec)
+ {
+- const bool inputIsUTC = false;
+- return setNewValueFromDateArgs(exec, 3, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::LocalTime;
++ return setNewValueFromDateArgs(exec, 3, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetUTCFullYear(ExecState* exec)
+ {
+- const bool inputIsUTC = true;
+- return setNewValueFromDateArgs(exec, 3, inputIsUTC);
++ const WTF::TimeType inputTimeType = WTF::UTCTime;
++ return setNewValueFromDateArgs(exec, 3, inputTimeType);
+ }
+
+ EncodedJSValue JSC_HOST_CALL dateProtoFuncSetYear(ExecState* exec)
+@@ -1043,7 +1043,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFu
+ if (std::isnan(milli))
+ // Based on ECMA 262 B.2.5 (setYear)
+ // the time must be reset to +0 if it is NaN.
+- msToGregorianDateTime(vm, 0, true, gregorianDateTime);
++ msToGregorianDateTime(vm, 0, WTF::UTCTime, gregorianDateTime);
+ else {
+ double secs = floor(milli / msPerSecond);
+ ms = milli - secs * msPerSecond;
+@@ -1059,7 +1059,7 @@ EncodedJSValue JSC_HOST_CALL dateProtoFu
+ }
+
+ gregorianDateTime.setYear(toInt32((year >= 0 && year <= 99) ? (year + 1900) : year));
+- JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, false));
++ JSValue result = jsNumber(gregorianDateTimeToMS(vm, gregorianDateTime, ms, WTF::LocalTime));
+ thisDateObj->setInternalValue(vm, result);
+ return JSValue::encode(result);
+ }
+Index: webkitgtk/Source/JavaScriptCore/runtime/JSDateMath.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/JSDateMath.cpp
++++ webkitgtk/Source/JavaScriptCore/runtime/JSDateMath.cpp
+@@ -132,13 +132,14 @@ static inline int msToWeekDay(double ms)
+ // NOTE: The implementation relies on the fact that no time zones have
+ // more than one daylight savings offset change per month.
+ // If this function is called with NaN it returns NaN.
+-static LocalTimeOffset localTimeOffset(VM& vm, double ms)
++static LocalTimeOffset localTimeOffset(VM& vm, double ms, WTF::TimeType inputTimeType = WTF::UTCTime)
+ {
+ LocalTimeOffsetCache& cache = vm.localTimeOffsetCache;
+ double start = cache.start;
+ double end = cache.end;
++ WTF::TimeType cachedTimeType = cache.timeType;
+
+- if (start <= ms) {
++ if (cachedTimeType == inputTimeType && start <= ms) {
+ // If the time fits in the cached interval, return the cached offset.
+ if (ms <= end) return cache.offset;
+
+@@ -146,7 +147,7 @@ static LocalTimeOffset localTimeOffset(V
+ double newEnd = end + cache.increment;
+
+ if (ms <= newEnd) {
+- LocalTimeOffset endOffset = calculateLocalTimeOffset(newEnd);
++ LocalTimeOffset endOffset = calculateLocalTimeOffset(newEnd, inputTimeType);
+ if (cache.offset == endOffset) {
+ // If the offset at the end of the new interval still matches
+ // the offset in the cache, we grow the cached time interval
+@@ -155,7 +156,7 @@ static LocalTimeOffset localTimeOffset(V
+ cache.increment = msPerMonth;
+ return endOffset;
+ }
+- LocalTimeOffset offset = calculateLocalTimeOffset(ms);
++ LocalTimeOffset offset = calculateLocalTimeOffset(ms, inputTimeType);
+ if (offset == endOffset) {
+ // The offset at the given time is equal to the offset at the
+ // new end of the interval, so that means that we've just skipped
+@@ -180,31 +181,31 @@ static LocalTimeOffset localTimeOffset(V
+ // Compute the DST offset for the time and shrink the cache interval
+ // to only contain the time. This allows fast repeated DST offset
+ // computations for the same time.
+- LocalTimeOffset offset = calculateLocalTimeOffset(ms);
++ LocalTimeOffset offset = calculateLocalTimeOffset(ms, inputTimeType);
+ cache.offset = offset;
+ cache.start = ms;
+ cache.end = ms;
+ cache.increment = msPerMonth;
++ cache.timeType = inputTimeType;
+ return offset;
+ }
+
+-double gregorianDateTimeToMS(VM& vm, const GregorianDateTime& t, double milliSeconds, bool inputIsUTC)
++double gregorianDateTimeToMS(VM& vm, const GregorianDateTime& t, double milliSeconds, WTF::TimeType inputTimeType)
+ {
+ double day = dateToDaysFrom1970(t.year(), t.month(), t.monthDay());
+ double ms = timeToMS(t.hour(), t.minute(), t.second(), milliSeconds);
+- double result = (day * WTF::msPerDay) + ms;
++ double localTimeResult = (day * WTF::msPerDay) + ms;
++ double localToUTCTimeOffset = inputTimeType == LocalTime
++ ? localTimeOffset(vm, localTimeResult, inputTimeType).offset : 0;
+
+- if (!inputIsUTC)
+- result -= localTimeOffset(vm, result).offset;
+-
+- return result;
++ return localTimeResult - localToUTCTimeOffset;
+ }
+
+ // input is UTC
+-void msToGregorianDateTime(VM& vm, double ms, bool outputIsUTC, GregorianDateTime& tm)
++void msToGregorianDateTime(VM& vm, double ms, WTF::TimeType outputTimeType, GregorianDateTime& tm)
+ {
+ LocalTimeOffset localTime;
+- if (!outputIsUTC) {
++ if (outputTimeType == WTF::LocalTime) {
+ localTime = localTimeOffset(vm, ms);
+ ms += localTime.offset;
+ }
+@@ -226,15 +227,15 @@ double parseDateFromNullTerminatedCharac
+ {
+ bool haveTZ;
+ int offset;
+- double ms = WTF::parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
+- if (std::isnan(ms))
++ double localTimeMS = WTF::parseDateFromNullTerminatedCharacters(dateString, haveTZ, offset);
++ if (std::isnan(localTimeMS))
+ return std::numeric_limits<double>::quiet_NaN();
+
+- // fall back to local timezone
++ // fall back to local timezone.
+ if (!haveTZ)
+- offset = localTimeOffset(vm, ms).offset / WTF::msPerMinute;
++ offset = localTimeOffset(vm, localTimeMS, WTF::LocalTime).offset / WTF::msPerMinute;
+
+- return ms - (offset * WTF::msPerMinute);
++ return localTimeMS - (offset * WTF::msPerMinute);
+ }
+
+ double parseDate(VM& vm, const String& date)
+Index: webkitgtk/Source/JavaScriptCore/runtime/JSDateMath.h
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/JSDateMath.h
++++ webkitgtk/Source/JavaScriptCore/runtime/JSDateMath.h
+@@ -50,8 +50,8 @@ namespace JSC {
+
+ class VM;
+
+-JS_EXPORT_PRIVATE void msToGregorianDateTime(VM&, double, bool outputIsUTC, GregorianDateTime&);
+-JS_EXPORT_PRIVATE double gregorianDateTimeToMS(VM&, const GregorianDateTime&, double, bool inputIsUTC);
++JS_EXPORT_PRIVATE void msToGregorianDateTime(VM&, double, WTF::TimeType outputTimeType, GregorianDateTime&);
++JS_EXPORT_PRIVATE double gregorianDateTimeToMS(VM&, const GregorianDateTime&, double, WTF::TimeType inputTimeType);
+ JS_EXPORT_PRIVATE double getUTCOffset(VM&);
+ JS_EXPORT_PRIVATE double parseDateFromNullTerminatedCharacters(VM&, const char* dateString);
+ JS_EXPORT_PRIVATE double parseDate(VM&, const WTF::String&);
+Index: webkitgtk/Source/JavaScriptCore/runtime/VM.h
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/VM.h
++++ webkitgtk/Source/JavaScriptCore/runtime/VM.h
+@@ -133,6 +133,7 @@ struct LocalTimeOffsetCache {
+ : start(0.0)
+ , end(-1.0)
+ , increment(0.0)
++ , timeType(WTF::UTCTime)
+ {
+ }
+
+@@ -142,12 +143,14 @@ struct LocalTimeOffsetCache {
+ start = 0.0;
+ end = -1.0;
+ increment = 0.0;
++ timeType = WTF::UTCTime;
+ }
+
+ LocalTimeOffset offset;
+ double start;
+ double end;
+ double increment;
++ WTF::TimeType timeType;
+ };
+
+ class ConservativeRoots;
+Index: webkitgtk/Source/WTF/wtf/DateMath.cpp
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/DateMath.cpp
++++ webkitgtk/Source/WTF/wtf/DateMath.cpp
+@@ -363,8 +363,6 @@ int equivalentYearForDST(int year)
+ return year;
+ }
+
+-#if !HAVE(TM_GMTOFF)
+-
+ static int32_t calculateUTCOffset()
+ {
+ #if OS(WINDOWS)
+@@ -406,6 +404,8 @@ static int32_t calculateUTCOffset()
+ #endif
+ }
+
++#if !HAVE(TM_GMTOFF)
++
+ #if OS(WINDOWS)
+ // Code taken from http://support.microsoft.com/kb/167296
+ static void UnixTimeToFileTime(time_t t, LPFILETIME pft)
+@@ -467,8 +467,16 @@ static double calculateDSTOffset(time_t
+ #endif
+
+ // Returns combined offset in millisecond (UTC + DST).
+-LocalTimeOffset calculateLocalTimeOffset(double ms)
++LocalTimeOffset calculateLocalTimeOffset(double ms, TimeType inputTimeType)
+ {
++#if HAVE(TM_GMTOFF)
++ double localToUTCTimeOffset = inputTimeType == LocalTime ? calculateUTCOffset() : 0;
++#else
++ double localToUTCTimeOffset = calculateUTCOffset();
++#endif
++ if (inputTimeType == LocalTime)
++ ms -= localToUTCTimeOffset;
++
+ // On Mac OS X, the call to localtime (see calculateDSTOffset) will return historically accurate
+ // DST information (e.g. New Zealand did not have DST from 1946 to 1974) however the JavaScript
+ // standard explicitly dictates that historical information should not be considered when
+@@ -498,9 +506,8 @@ LocalTimeOffset calculateLocalTimeOffset
+ getLocalTime(&localTime, &localTM);
+ return LocalTimeOffset(localTM.tm_isdst, localTM.tm_gmtoff * msPerSecond);
+ #else
+- double utcOffset = calculateUTCOffset();
+- double dstOffset = calculateDSTOffset(localTime, utcOffset);
+- return LocalTimeOffset(dstOffset, utcOffset + dstOffset);
++ double dstOffset = calculateDSTOffset(localTime, localToUTCTimeOffset);
++ return LocalTimeOffset(dstOffset, localToUTCTimeOffset + dstOffset);
+ #endif
+ }
+
+@@ -1091,7 +1098,7 @@ double parseDateFromNullTerminatedCharac
+
+ // fall back to local timezone
+ if (!haveTZ)
+- offset = calculateLocalTimeOffset(ms).offset / msPerMinute;
++ offset = calculateLocalTimeOffset(ms, LocalTime).offset / msPerMinute; // ms value is in local time milliseconds.
+
+ return ms - (offset * msPerMinute);
+ }
+Index: webkitgtk/Source/WTF/wtf/DateMath.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/DateMath.h
++++ webkitgtk/Source/WTF/wtf/DateMath.h
+@@ -53,6 +53,11 @@
+
+ namespace WTF {
+
++enum TimeType {
++ UTCTime = 0,
++ LocalTime
++};
++
+ struct LocalTimeOffset {
+ LocalTimeOffset()
+ : isDST(false)
+@@ -126,7 +131,7 @@ WTF_EXPORT_PRIVATE int monthFromDayInYea
+ WTF_EXPORT_PRIVATE int dayInMonthFromDayInYear(int dayInYear, bool leapYear);
+
+ // Returns combined offset in millisecond (UTC + DST).
+-WTF_EXPORT_PRIVATE LocalTimeOffset calculateLocalTimeOffset(double utcInMilliseconds);
++WTF_EXPORT_PRIVATE LocalTimeOffset calculateLocalTimeOffset(double utcInMilliseconds, TimeType = UTCTime);
+
+ } // namespace WTF
+
--- /dev/null
+From: Helge Deller <deller@gmx.de>
+Subject: Fix FTBFS in HPPA
+Bug-Debian: http://bugs.debian.org/776281
+Index: webkitgtk/CMakeLists.txt
+===================================================================
+--- webkitgtk.orig/CMakeLists.txt
++++ webkitgtk/CMakeLists.txt
+@@ -99,6 +99,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR
+ set(WTF_CPU_PPC64 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
+ set(WTF_CPU_PPC64LE 1)
++elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "parisc*")
++ set(WTF_CPU_HPPA 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390")
+ set(WTF_CPU_S390 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
+Index: webkitgtk/Source/JavaScriptCore/CMakeLists.txt
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/CMakeLists.txt
++++ webkitgtk/Source/JavaScriptCore/CMakeLists.txt
+@@ -1056,6 +1056,7 @@ if (WTF_CPU_ARM)
+ list(APPEND JavaScriptCore_SOURCES ${DERIVED_SOURCES_DIR}/GeneratedJITStubs.obj)
+ endif ()
+ elseif (WTF_CPU_ARM64)
++elseif (WTF_CPU_HPPA)
+ elseif (WTF_CPU_PPC)
+ elseif (WTF_CPU_PPC64)
+ elseif (WTF_CPU_PPC64LE)
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Fix memory leak in GStreamer code
+Bug: https://bugs.webkit.org/show_bug.cgi?id=46560
+Origin: http://trac.webkit.org/changeset/175945
+Index: webkitgtk/Source/WebCore/platform/graphics/MediaPlayer.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/graphics/MediaPlayer.cpp
++++ webkitgtk/Source/WebCore/platform/graphics/MediaPlayer.cpp
+@@ -130,7 +130,7 @@ public:
+ virtual double minTimeSeekable() const { return 0; }
+ virtual std::unique_ptr<PlatformTimeRanges> buffered() const { return PlatformTimeRanges::create(); }
+
+- virtual unsigned totalBytes() const { return 0; }
++ virtual unsigned long long totalBytes() const { return 0; }
+ virtual bool didLoadingProgress() const { return false; }
+
+ virtual void setSize(const IntSize&) { }
+Index: webkitgtk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
++++ webkitgtk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
+@@ -130,6 +130,7 @@ public:
+ virtual MediaTime minMediaTimeSeekable() const { return MediaTime::createWithDouble(minTimeSeekable()); }
+ virtual std::unique_ptr<PlatformTimeRanges> buffered() const = 0;
+
++ virtual unsigned long long totalBytes() const { return 0; }
+ virtual bool didLoadingProgress() const = 0;
+
+ virtual void setSize(const IntSize&) = 0;
+@@ -242,8 +243,16 @@ public:
+
+ virtual String languageOfPrimaryAudioTrack() const { return emptyString(); }
+
+- virtual size_t extraMemoryCost() const { return 0; }
+-
++ virtual size_t extraMemoryCost() const
++ {
++ MediaTime duration = this->durationMediaTime();
++ if (!duration)
++ return 0;
++
++ unsigned long long extra = totalBytes() * buffered()->totalDuration().toDouble() / duration.toDouble();
++ return static_cast<unsigned>(extra);
++ }
++
+ virtual unsigned long long fileSize() const { return 0; }
+
+ #if ENABLE(MEDIA_SOURCE)
+Index: webkitgtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
++++ webkitgtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
+@@ -211,7 +211,7 @@ MediaPlayerPrivateGStreamer::MediaPlayer
+ , m_volumeAndMuteInitialized(false)
+ , m_hasVideo(false)
+ , m_hasAudio(false)
+- , m_totalBytes(-1)
++ , m_totalBytes(0)
+ , m_preservesPitch(false)
+ , m_requestedState(GST_STATE_VOID_PENDING)
+ , m_missingPlugins(false)
+@@ -1228,12 +1228,12 @@ bool MediaPlayerPrivateGStreamer::didLoa
+ return didLoadingProgress;
+ }
+
+-unsigned MediaPlayerPrivateGStreamer::totalBytes() const
++unsigned long long MediaPlayerPrivateGStreamer::totalBytes() const
+ {
+ if (m_errorOccured)
+ return 0;
+
+- if (m_totalBytes != -1)
++ if (m_totalBytes)
+ return m_totalBytes;
+
+ if (!m_source)
+@@ -1243,7 +1243,7 @@ unsigned MediaPlayerPrivateGStreamer::to
+ gint64 length = 0;
+ if (gst_element_query_duration(m_source.get(), fmt, &length)) {
+ INFO_MEDIA_MESSAGE("totalBytes %" G_GINT64_FORMAT, length);
+- m_totalBytes = static_cast<unsigned>(length);
++ m_totalBytes = static_cast<unsigned long long>(length);
+ m_isStreaming = !length;
+ return m_totalBytes;
+ }
+@@ -1278,7 +1278,7 @@ unsigned MediaPlayerPrivateGStreamer::to
+ gst_iterator_free(iter);
+
+ INFO_MEDIA_MESSAGE("totalBytes %" G_GINT64_FORMAT, length);
+- m_totalBytes = static_cast<unsigned>(length);
++ m_totalBytes = static_cast<unsigned long long>(length);
+ m_isStreaming = !length;
+ return m_totalBytes;
+ }
+Index: webkitgtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
++++ webkitgtk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
+@@ -92,7 +92,7 @@ public:
+ std::unique_ptr<PlatformTimeRanges> buffered() const;
+ float maxTimeSeekable() const;
+ bool didLoadingProgress() const;
+- unsigned totalBytes() const;
++ unsigned long long totalBytes() const;
+ float maxTimeLoaded() const;
+
+ void loadStateChanged();
+@@ -207,7 +207,7 @@ private:
+ GThreadSafeMainLoopSource m_videoTimerHandler;
+ GThreadSafeMainLoopSource m_videoCapsTimerHandler;
+ GThreadSafeMainLoopSource m_readyTimerHandler;
+- mutable long m_totalBytes;
++ mutable unsigned long long m_totalBytes;
+ URL m_url;
+ bool m_preservesPitch;
+ GstState m_requestedState;
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Fix crash due to integer overflow
+Bug: https://bugs.webkit.org/show_bug.cgi?id=139165
+Origin: http://trac.webkit.org/changeset/178283
+Index: webkitgtk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
++++ webkitgtk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
+@@ -2023,7 +2023,7 @@ void ByteCodeParser::handleGetById(
+ {
+ NodeType getById = getByIdStatus.makesCalls() ? GetByIdFlush : GetById;
+
+- if (!getByIdStatus.isSimple() || !Options::enableAccessInlining()) {
++ if (!getByIdStatus.isSimple() || !getByIdStatus.numVariants() || !Options::enableAccessInlining()) {
+ set(VirtualRegister(destinationOperand),
+ addToGraph(getById, OpInfo(identifierNumber), OpInfo(prediction), base));
+ return;
+@@ -2138,7 +2138,7 @@ void ByteCodeParser::handlePutById(
+ Node* base, unsigned identifierNumber, Node* value,
+ const PutByIdStatus& putByIdStatus, bool isDirect)
+ {
+- if (!putByIdStatus.isSimple() || !Options::enableAccessInlining()) {
++ if (!putByIdStatus.isSimple() || !putByIdStatus.numVariants() || !Options::enableAccessInlining()) {
+ if (!putByIdStatus.isSet())
+ addToGraph(ForceOSRExit);
+ emitPutById(base, identifierNumber, value, putByIdStatus, isDirect);
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Fix crash in SpeculativeJIT::compile() when loading theblaze.com
+Bug: https://bugs.webkit.org/show_bug.cgi?id=137642
+Origin: http://trac.webkit.org/changeset/178264
+Index: webkitgtk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
++++ webkitgtk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
+@@ -1692,7 +1692,26 @@ void SpeculativeJIT::compile(Node* node)
+ break;
+
+ case Identity: {
+- RELEASE_ASSERT_NOT_REACHED();
++ speculate(node, node->child1());
++ switch (node->child1().useKind()) {
++ case DoubleRepUse:
++ case DoubleRepRealUse: {
++ SpeculateDoubleOperand op(this, node->child1());
++ doubleResult(op.fpr(), node);
++ break;
++ }
++ case Int52RepUse:
++ case MachineIntUse:
++ case DoubleRepMachineIntUse: {
++ RELEASE_ASSERT_NOT_REACHED();
++ break;
++ }
++ default: {
++ JSValueOperand op(this, node->child1());
++ jsValueResult(op.tagGPR(), op.payloadGPR(), node);
++ break;
++ }
++ } // switch
+ break;
+ }
+
+Index: webkitgtk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
++++ webkitgtk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
+@@ -1795,8 +1795,26 @@ void SpeculativeJIT::compile(Node* node)
+ break;
+
+ case Identity: {
+- // CSE should always eliminate this.
+- DFG_CRASH(m_jit.graph(), node, "Unexpected Identity node");
++ speculate(node, node->child1());
++ switch (node->child1().useKind()) {
++ case DoubleRepUse:
++ case DoubleRepRealUse:
++ case DoubleRepMachineIntUse: {
++ SpeculateDoubleOperand op(this, node->child1());
++ doubleResult(op.fpr(), node);
++ break;
++ }
++ case Int52RepUse: {
++ SpeculateInt52Operand op(this, node->child1());
++ int52Result(op.gpr(), node);
++ break;
++ }
++ default: {
++ JSValueOperand op(this, node->child1());
++ jsValueResult(op.gpr(), node);
++ break;
++ }
++ } // switch
+ break;
+ }
+
--- /dev/null
+From: YunQiang Su <wzssyqa@gmail.com>
+Subject: Fix build in MIPS64EL
+Bug-Debian: http://bugs.debian.org/767598
+Bug: https://bugs.webkit.org/show_bug.cgi?id=124370
+Index: webkitgtk/Source/WTF/wtf/Platform.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/Platform.h
++++ webkitgtk/Source/WTF/wtf/Platform.h
+@@ -80,16 +80,20 @@
+ #endif
+ #endif
+
+-/* CPU(MIPS) - MIPS 32-bit */
+-/* Note: Only O32 ABI is tested, so we enable it for O32 ABI for now. */
+-#if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_)) \
+- && defined(_ABIO32)
++/* CPU(MIPS) - MIPS 32-bit and 64-bit */
++#if (defined(mips) || defined(__mips__) || defined(MIPS) || defined(_MIPS_) \
++ || defined(__mips64))
++#if defined(__mips64)
++#define WTF_CPU_MIPS64 1
++#define WTF_MIPS_ARCH __mips64
++#else
+ #define WTF_CPU_MIPS 1
++#define WTF_MIPS_ARCH __mips
++#endif
+ #if defined(__MIPSEB__)
+ #define WTF_CPU_BIG_ENDIAN 1
+ #endif
+ #define WTF_MIPS_PIC (defined __PIC__)
+-#define WTF_MIPS_ARCH __mips
+ #define WTF_MIPS_ISA(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH == v)
+ #define WTF_MIPS_ISA_AT_LEAST(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH >= v)
+ #define WTF_MIPS_ARCH_REV __mips_isa_rev
+@@ -662,6 +666,7 @@
+ || CPU(ARM64) \
+ || CPU(SPARC64) \
+ || CPU(S390X) \
++ || CPU(MIPS64) \
+ || CPU(PPC64) \
+ || CPU(PPC64LE)
+ #define WTF_USE_JSVALUE64 1
+Index: webkitgtk/Source/WTF/wtf/dtoa/utils.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/dtoa/utils.h
++++ webkitgtk/Source/WTF/wtf/dtoa/utils.h
+@@ -49,7 +49,7 @@
+ defined(__ARMEL__) || \
+ defined(_MIPS_ARCH_MIPS32R2)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
++#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__)
+ #if defined(_WIN32)
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: NULL pointer check in HTMLPlugInImageElement
+Bug: https://bugs.webkit.org/show_bug.cgi?id=139057
+Origin: http://trac.webkit.org/changeset/178276
+Index: webkitgtk/Source/WebCore/html/HTMLPlugInImageElement.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/html/HTMLPlugInImageElement.cpp
++++ webkitgtk/Source/WebCore/html/HTMLPlugInImageElement.cpp
+@@ -334,6 +334,9 @@ void HTMLPlugInImageElement::updateSnaps
+
+ m_snapshotImage = image;
+
++ if (!renderer())
++ return;
++
+ if (renderer()->isSnapshottedPlugIn()) {
+ toRenderSnapshottedPlugIn(renderer())->updateSnapshot(image);
+ return;
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Add NULL check to convertToUTF8String()
+Bug: https://bugs.webkit.org/show_bug.cgi?id=133904
+Origin: http://trac.webkit.org/changeset/178339
+Index: webkitgtk/Source/WebCore/bindings/gobject/ConvertToUTF8String.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/bindings/gobject/ConvertToUTF8String.cpp
++++ webkitgtk/Source/WebCore/bindings/gobject/ConvertToUTF8String.cpp
+@@ -29,11 +29,14 @@
+
+ gchar* convertToUTF8String(WTF::String const& s)
+ {
++ if (s.isNull())
++ return 0;
++
+ return g_strdup(s.utf8().data());
+ }
+
+ gchar* convertToUTF8String(WebCore::URL const& s)
+ {
+- return g_strdup(s.string().utf8().data());
++ return convertToUTF8String(s.string());
+ }
+
+Index: webkitgtk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
+===================================================================
+--- webkitgtk.orig/Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
++++ webkitgtk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp
+@@ -108,6 +108,9 @@ private:
+ // Body shouldn't have any children at this point.
+ g_assert(!webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)));
+
++ // The value of a non-existent attribute should be null, not an empty string
++ g_assert(!webkit_dom_html_body_element_get_background(WEBKIT_DOM_HTML_BODY_ELEMENT(body)));
++
+ // Insert one P element.
+ WebKitDOMElement* p = webkit_dom_document_create_element(document, "P", 0);
+ g_assert(WEBKIT_DOM_IS_HTML_ELEMENT(p));
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Timers might never be fired during animations
+Bug: https://bugs.webkit.org/show_bug.cgi?id=139062
+Origin: http://trac.webkit.org/changeset/178348
+Index: webkitgtk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
++++ webkitgtk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
+@@ -72,7 +72,7 @@ LayerTreeHostGtk::LayerTreeHostGtk(WebPa
+ : LayerTreeHost(webPage)
+ , m_isValid(true)
+ , m_notifyAfterScheduledLayerFlush(false)
+- , m_lastFlushTime(0)
++ , m_lastImmediateFlushTime(0)
+ , m_layerFlushSchedulingEnabled(true)
+ {
+ }
+@@ -273,16 +273,44 @@ void LayerTreeHostGtk::paintContents(con
+ // FIXME: Draw page overlays. https://bugs.webkit.org/show_bug.cgi?id=131433.
+ }
+
++static inline bool shouldSkipNextFrameBecauseOfContinousImmediateFlushes(double current, double lastImmediateFlushTime)
++{
++ // 100ms is about a perceptable delay in UI, so when scheduling layer flushes immediately for more than 100ms,
++ // we skip the next frame to ensure pending timers have a change to be fired.
++ static const double maxDurationOfImmediateFlushes = 0.100;
++ if (!lastImmediateFlushTime)
++ return false;
++ return lastImmediateFlushTime + maxDurationOfImmediateFlushes < current;
++}
++
++// Use a higher priority than WebCore timers.
++static const int layerFlushTimerPriority = GDK_PRIORITY_REDRAW - 1;
++
+ void LayerTreeHostGtk::layerFlushTimerFired()
+ {
++ double fireTime = monotonicallyIncreasingTime();
+ flushAndRenderLayers();
++ if (m_layerFlushTimerCallback.isScheduled() || !toTextureMapperLayer(m_rootLayer.get())->descendantsOrSelfHaveRunningAnimations())
++ return;
+
+- if (!m_layerFlushTimerCallback.isScheduled() && toTextureMapperLayer(m_rootLayer.get())->descendantsOrSelfHaveRunningAnimations()) {
+- const double targetFPS = 60;
+- double nextFlush = std::max((1 / targetFPS) - (currentTime() - m_lastFlushTime), 0.0);
+- m_layerFlushTimerCallback.scheduleAfterDelay("[WebKit] layerFlushTimer", std::bind(&LayerTreeHostGtk::layerFlushTimerFired, this),
+- std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(nextFlush)), GDK_PRIORITY_EVENTS);
++ static const double targetFramerate = 1 / 60.0;
++ // When rendering layers takes more time than the target delay (0.016), we end up scheduling layer flushes
++ // immediately. Since the layer flush timer has a higher priority than WebCore timers, these are never
++ // fired while we keep scheduling layer flushes immediately.
++ double current = monotonicallyIncreasingTime();
++ double timeToNextFlush = std::max(targetFramerate - (current - fireTime), 0.0);
++ if (timeToNextFlush)
++ m_lastImmediateFlushTime = 0;
++ else if (!m_lastImmediateFlushTime)
++ m_lastImmediateFlushTime = current;
++
++ if (shouldSkipNextFrameBecauseOfContinousImmediateFlushes(current, m_lastImmediateFlushTime)) {
++ timeToNextFlush = targetFramerate;
++ m_lastImmediateFlushTime = 0;
+ }
++
++ m_layerFlushTimerCallback.scheduleAfterDelay("[WebKit] layerFlushTimer", std::bind(&LayerTreeHostGtk::layerFlushTimerFired, this),
++ std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(timeToNextFlush)), layerFlushTimerPriority);
+ }
+
+ bool LayerTreeHostGtk::flushPendingLayerChanges()
+@@ -335,7 +363,6 @@ void LayerTreeHostGtk::flushAndRenderLay
+ if (!context || !context->makeContextCurrent())
+ return;
+
+- m_lastFlushTime = currentTime();
+ if (!flushPendingLayerChanges())
+ return;
+
+@@ -381,7 +408,7 @@ void LayerTreeHostGtk::scheduleLayerFlus
+
+ // We use a GLib timer because otherwise GTK+ event handling during dragging can starve WebCore timers, which have a lower priority.
+ if (!m_layerFlushTimerCallback.isScheduled())
+- m_layerFlushTimerCallback.schedule("[WebKit] layerFlushTimer", std::bind(&LayerTreeHostGtk::layerFlushTimerFired, this), GDK_PRIORITY_EVENTS);
++ m_layerFlushTimerCallback.schedule("[WebKit] layerFlushTimer", std::bind(&LayerTreeHostGtk::layerFlushTimerFired, this), layerFlushTimerPriority);
+ }
+
+ void LayerTreeHostGtk::setLayerFlushSchedulingEnabled(bool layerFlushingEnabled)
+Index: webkitgtk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
++++ webkitgtk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
+@@ -103,7 +103,7 @@ private:
+ PageOverlayLayerMap m_pageOverlayLayers;
+ std::unique_ptr<WebCore::TextureMapper> m_textureMapper;
+ OwnPtr<WebCore::GLContext> m_context;
+- double m_lastFlushTime;
++ double m_lastImmediateFlushTime;
+ bool m_layerFlushSchedulingEnabled;
+ GMainLoopSource m_layerFlushTimerCallback;
+ };
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Fix crash in the Flash plugin
+Bug: https://bugs.webkit.org/show_bug.cgi?id=137849
+Bug-Debian: http://bugs.debian.org/768341
+Index: webkitgtk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
++++ webkitgtk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
+@@ -202,7 +202,9 @@ void NetscapePlugin::platformPreInitiali
+ bool NetscapePlugin::platformPostInitialize()
+ {
+ uint64_t windowID = 0;
+- bool needsXEmbed = false;
++ // NPPVpluginNeedsXEmbed is a boolean value, but at least the
++ // Flash player plugin is using an 'int' instead.
++ int needsXEmbed = 0;
+ if (m_isWindowed) {
+ NPP_GetValue(NPPVpluginNeedsXEmbed, &needsXEmbed);
+ if (needsXEmbed) {
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: HTTP header values should be treated as latin1, not UTF-8
+Bug: https://bugs.webkit.org/show_bug.cgi?id=128739
+Origin: http://trac.webkit.org/changeset/178328
+Index: webkitgtk/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
++++ webkitgtk/Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
+@@ -65,12 +65,12 @@ void ResourceRequest::updateFromSoupMess
+ const char* headerName;
+ const char* headerValue;
+ while (soup_message_headers_iter_next(&headersIter, &headerName, &headerValue))
+- m_httpHeaderFields.set(String::fromUTF8(headerName), String::fromUTF8(headerValue));
++ m_httpHeaderFields.set(String(headerName), String(headerValue));
+ }
+
+ void ResourceRequest::updateSoupMessage(SoupMessage* soupMessage) const
+ {
+- g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().utf8().data(), NULL);
++ g_object_set(soupMessage, SOUP_MESSAGE_METHOD, httpMethod().ascii().data(), NULL);
+
+ GUniquePtr<SoupURI> uri = createSoupURI();
+ soup_message_set_uri(soupMessage, uri.get());
+@@ -80,7 +80,7 @@ void ResourceRequest::updateSoupMessage(
+
+ SoupMessage* ResourceRequest::toSoupMessage() const
+ {
+- SoupMessage* soupMessage = soup_message_new(httpMethod().utf8().data(), url().string().utf8().data());
++ SoupMessage* soupMessage = soup_message_new(httpMethod().ascii().data(), url().string().utf8().data());
+ if (!soupMessage)
+ return 0;
+
+@@ -102,7 +102,7 @@ void ResourceRequest::updateFromSoupMess
+ if (shouldPortBeResetToZero)
+ m_url.setPort(0);
+
+- m_httpMethod = String::fromUTF8(soupMessage->method);
++ m_httpMethod = String(soupMessage->method);
+
+ updateFromSoupMessageHeaders(soupMessage->request_headers);
+
+Index: webkitgtk/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
++++ webkitgtk/Source/WebCore/platform/network/soup/ResourceResponseSoup.cpp
+@@ -87,7 +87,7 @@ void ResourceResponse::updateFromSoupMes
+
+ soup_message_headers_iter_init(&headersIter, headers);
+ while (soup_message_headers_iter_next(&headersIter, &headerName, &headerValue))
+- addHTTPHeaderField(String::fromUTF8WithLatin1Fallback(headerName, strlen(headerName)), String::fromUTF8WithLatin1Fallback(headerValue, strlen(headerValue)));
++ addHTTPHeaderField(String(headerName), String(headerValue));
+
+ String contentType;
+ const char* officialType = soup_message_headers_get_one(headers, "Content-Type");
+@@ -108,7 +108,8 @@ CertificateInfo ResourceResponse::platfo
+
+ String ResourceResponse::platformSuggestedFilename() const
+ {
+- return filenameFromHTTPContentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition));
++ String contentDisposition(httpHeaderField(HTTPHeaderName::ContentDisposition));
++ return filenameFromHTTPContentDisposition(String::fromUTF8WithLatin1Fallback(contentDisposition.characters8(), contentDisposition.length()));
+ }
+
+ }
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Install the MiniBrowser binary
+Forwarded: not-needed
+Index: webkitgtk/Tools/MiniBrowser/gtk/main.c
+===================================================================
+--- webkitgtk.orig/Tools/MiniBrowser/gtk/main.c
++++ webkitgtk/Tools/MiniBrowser/gtk/main.c
+@@ -240,7 +240,6 @@ aboutURISchemeRequestCallback(WebKitURIS
+ int main(int argc, char *argv[])
+ {
+ gtk_init(&argc, &argv);
+- g_setenv("WEBKIT_INJECTED_BUNDLE_PATH", WEBKIT_INJECTED_BUNDLE_PATH, FALSE);
+
+ const gchar *multiprocess = g_getenv("MINIBROWSER_MULTIPROCESS");
+ if (multiprocess && *multiprocess) {
+Index: webkitgtk/Tools/MiniBrowser/gtk/CMakeLists.txt
+===================================================================
+--- webkitgtk.orig/Tools/MiniBrowser/gtk/CMakeLists.txt
++++ webkitgtk/Tools/MiniBrowser/gtk/CMakeLists.txt
+@@ -52,3 +52,4 @@ include_directories(${MiniBrowser_INCLUD
+ add_executable(MiniBrowser ${MiniBrowser_SOURCES})
+ target_link_libraries(MiniBrowser ${MiniBrowser_LIBRARIES})
+ set_target_properties(MiniBrowser PROPERTIES FOLDER "Tools")
++install(TARGETS MiniBrowser DESTINATION "${LIBEXEC_INSTALL_DIR}")
+Index: webkitgtk/CMakeLists.txt
+===================================================================
+--- webkitgtk.orig/CMakeLists.txt
++++ webkitgtk/CMakeLists.txt
+@@ -184,3 +184,4 @@ add_subdirectory(Source)
+ if (ENABLE_TOOLS)
+ add_subdirectory(Tools)
+ endif ()
++add_subdirectory(Tools/MiniBrowser/gtk)
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Fix FTBFS in Hurd
+Forwarded: no
+Index: webkitgtk/Source/WTF/wtf/InlineASM.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/InlineASM.h
++++ webkitgtk/Source/WTF/wtf/InlineASM.h
+@@ -82,6 +82,7 @@
+ #elif OS(LINUX) \
+ || OS(FREEBSD) \
+ || OS(OPENBSD) \
++ || OS(HURD) \
+ || OS(NETBSD)
+ // GNU as-compatible syntax.
+ #define LOCAL_LABEL_STRING(name) ".L" #name
--- /dev/null
+From: Carlos Alberto Lopez Perez <clopez@igalia.com>
+Subject: Don't use a SSL3.0 record version in client hello
+Origin: http://trac.webkit.org/changeset/176253
+Index: webkitgtk/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
++++ webkitgtk/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
+@@ -39,7 +39,7 @@ int main(int argc, char** argv)
+ // overwrite this priority string if it's already set by the user.
+ // Keep this in sync with WebProcessMain.cpp.
+ // https://bugzilla.gnome.org/show_bug.cgi?id=738633
+- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0", 0);
++ setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0", 0);
+
+ return NetworkProcessMainUnix(argc, argv);
+ }
+Index: webkitgtk/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
++++ webkitgtk/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
+@@ -39,7 +39,7 @@ int main(int argc, char** argv)
+ // overwrite this priority string if it's already set by the user.
+ // Keep this in sync with NetworkProcessMain.cpp.
+ // https://bugzilla.gnome.org/show_bug.cgi?id=738633
+- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0", 0);
++ setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0", 0);
+
+ return WebProcessMainUnix(argc, argv);
+ }
--- /dev/null
+From: Joanmarie Diggs <jdiggs@igalia.com>
+Subject: Check for NULL pointers in AccessibilityMenuListOption
+Origin: http://trac.webkit.org/changeset/176389
+Index: webkitgtk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
++++ webkitgtk/Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
+@@ -104,9 +104,13 @@ bool AccessibilityMenuListOption::comput
+ LayoutRect AccessibilityMenuListOption::elementRect() const
+ {
+ AccessibilityObject* parent = parentObject();
++ if (!parent)
++ return boundingBoxRect();
+ ASSERT(parent->isMenuListPopup());
+
+ AccessibilityObject* grandparent = parent->parentObject();
++ if (!grandparent)
++ return boundingBoxRect();
+ ASSERT(grandparent->isMenuList());
+
+ return grandparent->elementRect();
--- /dev/null
+From: Csaba Osztrogonác <ossy@webkit.org>
+Subject: Check for NULL pointer in ApplyStyleCommand
+Origin: http://trac.webkit.org/changeset/176182
+Index: webkitgtk/Source/WebCore/editing/ApplyStyleCommand.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/editing/ApplyStyleCommand.cpp
++++ webkitgtk/Source/WebCore/editing/ApplyStyleCommand.cpp
+@@ -257,6 +257,9 @@ void ApplyStyleCommand::applyBlockStyle(
+ // addBlockStyleIfNeeded may moveParagraphs, which can remove these endpoints.
+ // Calculate start and end indices from the start of the tree that they're in.
+ Node* scope = highestEditableRoot(visibleStart.deepEquivalent());
++ if (!scope)
++ return;
++
+ RefPtr<Range> startRange = Range::create(document(), firstPositionInNode(scope), visibleStart.deepEquivalent().parentAnchoredEquivalent());
+ RefPtr<Range> endRange = Range::create(document(), firstPositionInNode(scope), visibleEnd.deepEquivalent().parentAnchoredEquivalent());
+ int startIndex = TextIterator::rangeLength(startRange.get(), true);
--- /dev/null
+From: Jeffrey Pfau <jpfau@apple.com>
+Subject: Check for NULL pointer in FrameProgressTracker
+Origin: http://trac.webkit.org/changeset/175919
+Index: webkitgtk/Source/WebCore/loader/FrameLoader.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/loader/FrameLoader.cpp
++++ webkitgtk/Source/WebCore/loader/FrameLoader.cpp
+@@ -189,8 +189,7 @@ public:
+
+ ~FrameProgressTracker()
+ {
+- ASSERT(!m_inProgress || m_frame.page());
+- if (m_inProgress)
++ if (m_inProgress && m_frame.page())
+ m_frame.page()->progress().progressCompleted(m_frame);
+ }
+
--- /dev/null
+From: David Kilzer <ddkilzer@apple.com>
+Subject: Protect Document in ProcessingInstruction::setXSLStyleSheet()
+Origin: http://trac.webkit.org/changeset/176014
+Index: webkitgtk/Source/WebCore/dom/ProcessingInstruction.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/dom/ProcessingInstruction.cpp
++++ webkitgtk/Source/WebCore/dom/ProcessingInstruction.cpp
+@@ -215,6 +215,7 @@ void ProcessingInstruction::setXSLStyleS
+ {
+ ASSERT(m_isXSL);
+ m_sheet = XSLStyleSheet::create(this, href, baseURL);
++ Ref<Document> protect(document());
+ parseStyleSheet(sheet);
+ }
+ #endif
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Make the remote inspector work again
+Bug: https://bugs.webkit.org/show_bug.cgi?id=138246
+Origin: http://trac.webkit.org/changeset/176392
+Index: webkitgtk/Source/WebKit2/UIProcess/WebPageProxy.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebKit2/UIProcess/WebPageProxy.cpp
++++ webkitgtk/Source/WebKit2/UIProcess/WebPageProxy.cpp
+@@ -639,7 +639,7 @@ void WebPageProxy::initializeWebPage()
+ #endif
+
+ #if ENABLE(INSPECTOR_SERVER)
+- if (pageGroup().preferences().developerExtrasEnabled())
++ if (m_preferences->developerExtrasEnabled())
+ inspector()->enableRemoteInspection();
+ #endif
+
--- /dev/null
+From: Carlos Garcia Campos <carlosgc@webkit.org>
+Subject: Fix invalid cast in WebCore::RenderBlock::blockSelectionGaps
+Bug: https://bugs.webkit.org/show_bug.cgi?id=137590
+Origin: http://trac.webkit.org/changeset/178261
+Index: webkitgtk/Source/WebCore/rendering/RenderBlock.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/rendering/RenderBlock.cpp
++++ webkitgtk/Source/WebCore/rendering/RenderBlock.cpp
+@@ -2040,7 +2040,7 @@ GapRects RenderBlock::blockSelectionGaps
+ lastLogicalTop = blockDirectionOffset(rootBlock, offsetFromRootBlock) + curr->logicalBottom();
+ lastLogicalLeft = logicalLeftSelectionOffset(rootBlock, curr->logicalBottom(), cache);
+ lastLogicalRight = logicalRightSelectionOffset(rootBlock, curr->logicalBottom(), cache);
+- } else if (childState != SelectionNone) {
++ } else if (childState != SelectionNone && curr->isRenderBlock()) {
+ // We must be a block that has some selected object inside it. Go ahead and recur.
+ result.unite(toRenderBlock(curr)->selectionGaps(rootBlock, rootBlockPhysicalPosition, LayoutSize(offsetFromRootBlock.width() + curr->x(), offsetFromRootBlock.height() + curr->y()),
+ lastLogicalTop, lastLogicalLeft, lastLogicalRight, childCache, paintInfo));
--- /dev/null
+From: Zalan Bujtas <zalan@apple.com>
+Subject: Check for NULL pointer in SearchInputType.
+Origin: http://trac.webkit.org/changeset/175912
+Index: webkitgtk/Source/WebCore/html/SearchInputType.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/html/SearchInputType.cpp
++++ webkitgtk/Source/WebCore/html/SearchInputType.cpp
+@@ -185,7 +185,7 @@ bool SearchInputType::searchEventsShould
+
+ void SearchInputType::didSetValueByUserEdit(ValueChangeState state)
+ {
+- if (m_cancelButton)
++ if (m_cancelButton && element().renderer())
+ toRenderSearchField(element().renderer())->updateCancelButtonVisibility();
+
+ // If the incremental attribute is set, then dispatch the search event
--- /dev/null
+From: Alberto Garcia <berto@igalia.com>
+Subject: Restore removed SPARC code
+Bug: https://bugs.webkit.org/show_bug.cgi?id=124941
+Index: webkitgtk/Source/WTF/wtf/Platform.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/Platform.h
++++ webkitgtk/Source/WTF/wtf/Platform.h
+@@ -138,6 +138,23 @@
+ #define WTF_CPU_SH4 1
+ #endif
+
++/* CPU(SPARC32) - SPARC 32-bit */
++#if defined(__sparc) && !defined(__arch64__) || defined(__sparcv8)
++#define WTF_CPU_SPARC32 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
++/* CPU(SPARC64) - SPARC 64-bit */
++#if defined(__sparc__) && defined(__arch64__) || defined (__sparcv9)
++#define WTF_CPU_SPARC64 1
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++
++/* CPU(SPARC) - any SPARC, true for CPU(SPARC32) and CPU(SPARC64) */
++#if CPU(SPARC32) || CPU(SPARC64)
++#define WTF_CPU_SPARC 1
++#endif
++
+ /* CPU(S390X) - S390 64-bit */
+ #if defined(__s390x__)
+ #define WTF_CPU_S390X 1
+@@ -333,7 +350,7 @@
+
+ #endif /* ARM */
+
+-#if CPU(ARM) || CPU(MIPS) || CPU(SH4)
++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC)
+ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
+ #endif
+
+@@ -643,6 +660,7 @@
+ || (CPU(IA64) && !CPU(IA64_32)) \
+ || CPU(ALPHA) \
+ || CPU(ARM64) \
++ || CPU(SPARC64) \
+ || CPU(S390X) \
+ || CPU(PPC64) \
+ || CPU(PPC64LE)
+Index: webkitgtk/Source/WTF/wtf/dtoa/utils.h
+===================================================================
+--- webkitgtk.orig/Source/WTF/wtf/dtoa/utils.h
++++ webkitgtk/Source/WTF/wtf/dtoa/utils.h
+@@ -49,7 +49,7 @@
+ defined(__ARMEL__) || \
+ defined(_MIPS_ARCH_MIPS32R2)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
++#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(SPARC) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__)
+ #if defined(_WIN32)
--- /dev/null
+From: Carlos Garcia Campos carlosgc@webkit.org>
+Subject: Prevent unsafe access to internal types
+Bug: https://bugs.webkit.org/show_bug.cgi?id=138653
+Origin: http://trac.webkit.org/changeset/178320
+Index: webkitgtk/Source/JavaScriptCore/runtime/MapData.h
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/MapData.h
++++ webkitgtk/Source/JavaScriptCore/runtime/MapData.h
+@@ -42,8 +42,8 @@ public:
+ const_iterator(const MapData*);
+ ~const_iterator();
+ const WTF::KeyValuePair<JSValue, JSValue> operator*() const;
+- JSValue key() const { ASSERT(!atEnd()); return m_mapData->m_entries[m_index].key.get(); }
+- JSValue value() const { ASSERT(!atEnd()); return m_mapData->m_entries[m_index].value.get(); }
++ JSValue key() const { RELEASE_ASSERT(!atEnd()); return m_mapData->m_entries[m_index].key.get(); }
++ JSValue value() const { RELEASE_ASSERT(!atEnd()); return m_mapData->m_entries[m_index].value.get(); }
+ void operator++() { ASSERT(!atEnd()); internalIncrement(); }
+ static const_iterator end(const MapData*);
+ bool operator!=(const const_iterator& other);
+Index: webkitgtk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
+===================================================================
+--- webkitgtk.orig/Source/WebCore/bindings/js/SerializedScriptValue.cpp
++++ webkitgtk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
+@@ -1218,6 +1218,7 @@ SerializationReturnCode CloneSerializer:
+ Vector<JSObject*, 32> inputObjectStack;
+ Vector<MapData*, 4> mapDataStack;
+ Vector<MapData::const_iterator, 4> iteratorStack;
++ Vector<JSValue, 4> iteratorValueStack;
+ Vector<WalkerState, 16> stateStack;
+ WalkerState state = StateUnknown;
+ JSValue inValue = in;
+@@ -1386,16 +1387,20 @@ SerializationReturnCode CloneSerializer:
+ goto objectStartVisitMember;
+ }
+ inValue = ptr.key();
++ m_gcBuffer.append(ptr.value());
++ iteratorValueStack.append(ptr.value());
+ stateStack.append(MapDataEndVisitKey);
+ goto stateUnknown;
+ }
+ case MapDataEndVisitKey: {
+- inValue = iteratorStack.last().value();
++ inValue = iteratorValueStack.last();
++ iteratorValueStack.removeLast();
+ stateStack.append(MapDataEndVisitValue);
+ goto stateUnknown;
+ }
+ case MapDataEndVisitValue: {
+- ++iteratorStack.last();
++ if (iteratorStack.last() != mapDataStack.last()->end())
++ ++iteratorStack.last();
+ goto mapDataStartVisitEntry;
+ }
+
--- /dev/null
+dfg-jit.patch
+install-minibrowser.patch
+restore_sparc_code.patch
+local-label-string-hurd.patch
+atomic_build_fix.patch
+css-image-set.patch
+fix-mips64-build.patch
+flash-crash.patch
+no-ssl-record-version.patch
+render-text-control.patch
+nullptr-frameprogresstracker.patch
+nullptr-applystylecommand.patch
+nullptr-accessibilitymenulistoption.patch
+twitter-inserted-text.patch
+protect-document.patch
+at-spi2.patch
+ax-focus-events.patch
+fix-ftbfs-hppa.patch
+fix-gstreamer-leak.patch
+remote-inspector.patch
+render-block-cast.patch
+fix-jit-crash.patch
+fix-null-renderer.patch
+fix-integer-overflow.patch
+serialized-script-value.patch
+http-latin1.patch
+fix-null-string-conversion.patch
+fix-timers-animations.patch
+fix-ax-crash.patch
+fix-clearselection-segfault.patch
+fix-date.patch
+check-tls-errors.patch
--- /dev/null
+From: Andreas Kling <akling@apple.com>
+Subject: Fix inserted text when typing in the Twitter message box.
+Origin: http://trac.webkit.org/changeset/176824
+Index: webkitgtk/Source/JavaScriptCore/runtime/JSString.h
+===================================================================
+--- webkitgtk.orig/Source/JavaScriptCore/runtime/JSString.h
++++ webkitgtk/Source/JavaScriptCore/runtime/JSString.h
+@@ -482,12 +482,7 @@ ALWAYS_INLINE AtomicStringImpl* JSString
+ return static_cast<const JSRopeString*>(this)->resolveRopeToExistingAtomicString(exec);
+ if (m_value.impl()->isAtomic())
+ return static_cast<AtomicStringImpl*>(m_value.impl());
+- if (AtomicStringImpl* existingAtomicString = AtomicString::find(m_value.impl())) {
+- m_value = *existingAtomicString;
+- setIs8Bit(m_value.impl()->is8Bit());
+- return existingAtomicString;
+- }
+- return nullptr;
++ return AtomicString::find(m_value.impl());
+ }
+
+ inline const String& JSString::value(ExecState* exec) const
--- /dev/null
+#!/usr/bin/make -f
+
+DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS) -Wall
+CFLAGS = $(shell dpkg-buildflags --get CFLAGS)
+LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
+
+EXTRA_DH_ARGUMENTS =
+
+# Sacrifice speed in order to make it more likely resource limits
+# won't be hit.
+ifeq ($(DEB_HOST_ARCH_BITS),32)
+ LDFLAGS += -Wl,--no-keep-memory
+endif
+
+ifeq ($(DEB_BUILD_ARCH),alpha)
+ LDFLAGS += -Wl,--no-relax
+endif
+
+# Disable debugging symbols on these arches.
+ifneq (,$(filter $(DEB_BUILD_ARCH),hurd-i386 ia64 kfreebsd-i386 kfreebsd-amd64 mips mipsel powerpc powerpcspe s390 s390x sparc armel armhf))
+ CFLAGS := $(CFLAGS:-g=)
+ EXTRA_DH_ARGUMENTS += -Nlibwebkit2gtk-4.0-37-dbg -Nlibjavascriptcoregtk-4.0-18-dbg
+endif
+
+# See https://bugs.webkit.org/show_bug.cgi?id=113638
+ifeq (,$(filter $(DEB_BUILD_ARCH),i386 amd64 hurd-i386 kfreebsd-i386 kfreebsd-amd64 armhf))
+ EXTRA_CMAKE_ARGUMENTS += -DENABLE_JIT=OFF
+ CPPFLAGS += -DENABLE_YARR_JIT=0 -DENABLE_ASSEMBLER=0
+endif
+
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+ EXTRA_CMAKE_ARGUMENTS += -DUSE_SYSTEM_MALLOC=ON
+endif
+
+ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
+ EXTRA_CMAKE_ARGUMENTS += -DCMAKE_BUILD_TYPE=Debug
+else
+ EXTRA_CMAKE_ARGUMENTS += -DCMAKE_BUILD_TYPE=Release
+ CPPFLAGS += -DNDEBUG
+endif
+
+ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
+ DEB_DH_GENCONTROL_ARGS += -- -Vgst:Recommends=""
+else
+ DEB_DH_GENCONTROL_ARGS += -- -Vgst:Recommends="gstreamer1.0-plugins-bad, gstreamer1.0-libav,"
+endif
+
+%:
+ dh $@ --parallel $(EXTRA_DH_ARGUMENTS)
+
+override_dh_auto_configure:
+ slimit -m debian/jquery-1.9.1.js > \
+ Source/WebInspectorUI/Tools/PrettyPrinting/populate/jquery.min.js
+ CFLAGS="$(CFLAGS) $(CPPFLAGS)" \
+ CXXFLAGS="$(CFLAGS) $(CPPFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ dh_auto_configure -- \
+ -DPORT=GTK \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib/$(DEB_HOST_MULTIARCH) \
+ -DCMAKE_C_FLAGS_RELEASE="" \
+ -DCMAKE_C_FLAGS_DEBUG="" \
+ -DCMAKE_CXX_FLAGS_RELEASE="" \
+ -DCMAKE_CXX_FLAGS_DEBUG="" \
+ $(EXTRA_CMAKE_ARGUMENTS)
+
+override_dh_strip:
+ dh_strip -plibwebkit2gtk-4.0-37 --dbg-package=libwebkit2gtk-4.0-37-dbg $(EXTRA_DH_ARGUMENTS)
+ dh_strip -plibjavascriptcoregtk-4.0-18 --dbg-package=libjavascriptcoregtk-4.0-18-dbg $(EXTRA_DH_ARGUMENTS)
+ dh_strip $(EXTRA_DH_ARGUMENTS)
+
+override_dh_makeshlibs:
+ dh_makeshlibs -plibwebkit2gtk-4.0-37 -Xinjected-bundle $(EXTRA_DH_ARGUMENTS)
+ dh_makeshlibs -plibjavascriptcoregtk-4.0-18 $(EXTRA_DH_ARGUMENTS)
+
+override_dh_shlibdeps:
+ dh_shlibdeps $(EXTRA_DH_ARGUMENTS)
+ dh_girepository $(EXTRA_DH_ARGUMENTS)
+
+override_dh_clean:
+ dh_clean $(EXTRA_DH_ARGUMENTS)
+ rm -f Source/WebInspectorUI/Tools/PrettyPrinting/populate/jquery.min.js
+
+override_dh_auto_test:
+
+VERSION := $(shell dpkg-parsechangelog | sed -ne 's/^Version: \(.*\)-.*/\1/p')
+UPSTREAM_VERSION := $(shell echo $(VERSION) | sed 's/+dfsg1//')
+
+get-orig-source:
+ dh_testdir
+ uscan --rename --download-current-version
+ mkdir "webkit2gtk-$(VERSION)"
+ tar -C "webkit2gtk-$(VERSION)" \
+ --strip-components=1 \
+ --exclude=Source/WebInspectorUI/Tools/PrettyPrinting/populate/jquery.min.js \
+ --exclude=Tools/WebKitTestRunner/gtk/fonts/FontWithNoValidEncoding.fon \
+ -xaf "../webkit2gtk_$(UPSTREAM_VERSION).orig.tar.xz"
+ fakeroot tar -caf "../webkit2gtk_$(VERSION).orig.tar.xz" \
+ "webkit2gtk-$(VERSION)"
+ rm -rf "webkit2gtk-$(VERSION)"
--- /dev/null
+3.0 (quilt)
--- /dev/null
+version=3
+opts="dversionmangle=s/\+dfsg\d+$//" \
+ http://webkitgtk.org/releases/ webkitgtk-([\d]+\.[\d]*[\d]\.[\d]+).tar.xz