gtk+3.0 (3.22.12-1) unstable; urgency=medium
authorAndreas Henriksson <andreas@fatal.se>
Thu, 13 Apr 2017 04:41:09 +0000 (05:41 +0100)
committerAndreas Henriksson <andreas@fatal.se>
Thu, 13 Apr 2017 04:41:09 +0000 (05:41 +0100)
  * New upstream release.

[dgit import unpatched gtk+3.0 3.22.12-1]

104 files changed:
1  2 
debian/changelog
debian/compat
debian/control
debian/control.in
debian/copyright
debian/gir1.2-gtk-3.0.install
debian/gtk-3-examples.examples
debian/gtk-3-examples.install
debian/gtk-update-icon-cache.install
debian/gtk-update-icon-cache.manpages
debian/gtk-update-icon-cache.preinst
debian/libgail-3-0.install
debian/libgail-3-0.symbols
debian/libgail-3-dev.install
debian/libgail-3-doc.doc-base.gail-reference
debian/libgail-3-doc.install
debian/libgail-3-doc.links
debian/libgtk-3-0-udeb.install
debian/libgtk-3-0.install.in
debian/libgtk-3-0.links.in
debian/libgtk-3-0.postinst.in
debian/libgtk-3-0.postrm.in
debian/libgtk-3-0.symbols
debian/libgtk-3-0.triggers.in
debian/libgtk-3-bin.install
debian/libgtk-3-bin.links.in
debian/libgtk-3-common.install.in
debian/libgtk-3-dev.install
debian/libgtk-3-dev.links.in
debian/libgtk-3-doc.doc-base.gdk.in
debian/libgtk-3-doc.doc-base.gtk.in
debian/libgtk-3-doc.docs
debian/libgtk-3-doc.install.in
debian/libgtk-3-doc.links.in
debian/missing-sources/README
debian/missing-sources/rawinflate.js
debian/missing-sources/zlib.js-0.1.6/ChangeLog.md
debian/missing-sources/zlib.js-0.1.6/LICENSE
debian/missing-sources/zlib.js-0.1.6/LICENSE_min
debian/missing-sources/zlib.js-0.1.6/README.en.md
debian/missing-sources/zlib.js-0.1.6/README.md
debian/missing-sources/zlib.js-0.1.6/bin/rawinflate.min.js
debian/missing-sources/zlib.js-0.1.6/bin/rawinflate.min.js.map
debian/missing-sources/zlib.js-0.1.6/build.xml
debian/missing-sources/zlib.js-0.1.6/closure-primitives/base.js
debian/missing-sources/zlib.js-0.1.6/closure-primitives/depswriter.py
debian/missing-sources/zlib.js-0.1.6/closure-primitives/source.py
debian/missing-sources/zlib.js-0.1.6/closure-primitives/treescan.py
debian/missing-sources/zlib.js-0.1.6/define/typedarray/hybrid.js
debian/missing-sources/zlib.js-0.1.6/define/typedarray/use.js
debian/missing-sources/zlib.js-0.1.6/deps.js
debian/missing-sources/zlib.js-0.1.6/export/adler32.js
debian/missing-sources/zlib.js-0.1.6/export/crc32.js
debian/missing-sources/zlib.js-0.1.6/export/deflate.js
debian/missing-sources/zlib.js-0.1.6/export/gunzip.js
debian/missing-sources/zlib.js-0.1.6/export/gunzip_member.js
debian/missing-sources/zlib.js-0.1.6/export/gzip.js
debian/missing-sources/zlib.js-0.1.6/export/inflate.js
debian/missing-sources/zlib.js-0.1.6/export/inflate_stream.js
debian/missing-sources/zlib.js-0.1.6/export/rawdeflate.js
debian/missing-sources/zlib.js-0.1.6/export/rawinflate.js
debian/missing-sources/zlib.js-0.1.6/export/rawinflate_stream.js
debian/missing-sources/zlib.js-0.1.6/export/unzip.js
debian/missing-sources/zlib.js-0.1.6/export/zip.js
debian/missing-sources/zlib.js-0.1.6/node/exports.js
debian/missing-sources/zlib.js-0.1.6/node/externs.js
debian/missing-sources/zlib.js-0.1.6/package.json
debian/missing-sources/zlib.js-0.1.6/src/adler32.js
debian/missing-sources/zlib.js-0.1.6/src/bitstream.js
debian/missing-sources/zlib.js-0.1.6/src/crc32.js
debian/missing-sources/zlib.js-0.1.6/src/deflate.js
debian/missing-sources/zlib.js-0.1.6/src/export_object.js
debian/missing-sources/zlib.js-0.1.6/src/gunzip.js
debian/missing-sources/zlib.js-0.1.6/src/gunzip_member.js
debian/missing-sources/zlib.js-0.1.6/src/gzip.js
debian/missing-sources/zlib.js-0.1.6/src/heap.js
debian/missing-sources/zlib.js-0.1.6/src/huffman.js
debian/missing-sources/zlib.js-0.1.6/src/inflate.js
debian/missing-sources/zlib.js-0.1.6/src/inflate_stream.js
debian/missing-sources/zlib.js-0.1.6/src/rawdeflate.js
debian/missing-sources/zlib.js-0.1.6/src/rawinflate.js
debian/missing-sources/zlib.js-0.1.6/src/rawinflate_stream.js
debian/missing-sources/zlib.js-0.1.6/src/unzip.js
debian/missing-sources/zlib.js-0.1.6/src/util.js
debian/missing-sources/zlib.js-0.1.6/src/zip.js
debian/missing-sources/zlib.js-0.1.6/src/zlib.js
debian/patches/016_no_offscreen_widgets_grabbing.patch
debian/patches/017_no_offscreen_device_grabbing.patch
debian/patches/018_gdkenumtypes.c_location.patch
debian/patches/022_disable-viqr-im-for-vi-locale.patch
debian/patches/060_ignore-random-icons.patch
debian/patches/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
debian/patches/no-accessibility-dump.patch
debian/patches/reftest-known-fail.patch
debian/patches/series
debian/rules
debian/source/format
debian/source/lintian-overrides
debian/tests/build
debian/tests/control
debian/tests/python3-gi
debian/update-icon-caches
debian/update-icon-caches.8
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..372484d879045db855de6395d704e1db39ee320d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4803 @@@
++gtk+3.0 (3.22.12-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Thu, 13 Apr 2017 06:41:09 +0200
++
++gtk+3.0 (3.22.11-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop patches which have been merged upstream.
++
++ -- Michael Biebl <biebl@debian.org>  Fri, 24 Mar 2017 02:27:48 +0100
++
++gtk+3.0 (3.22.9-4) unstable; urgency=medium
++
++  * Force update of GResource files so the changes to the CSS files are
++    actually applied.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 14 Mar 2017 01:38:30 +0100
++
++gtk+3.0 (3.22.9-3) unstable; urgency=medium
++
++  * Revert move of .flat from frame > border to frame as it broke existing
++    themes which relied on that behaviour.
++
++ -- Michael Biebl <biebl@debian.org>  Sun, 05 Mar 2017 21:40:15 +0100
++
++gtk+3.0 (3.22.9-2) unstable; urgency=medium
++
++  * Team upload
++  * d/p/wayland-make-sure-to-clear-up-the-number-of-keys.patch:
++    Add patch from upstream fixing unintended key repeats on Wayland
++    (Closes: #856478)
++
++ -- Simon McVittie <smcv@debian.org>  Wed, 01 Mar 2017 15:50:14 +0000
++
++gtk+3.0 (3.22.9-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop debian/patches/032_mips_treeview_row_separator_height.patch, no
++    longer needed.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 28 Feb 2017 18:48:39 +0100
++
++gtk+3.0 (3.22.8-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Stop patching gtk-doc.make and instead run gtkdocize via the upstream
++    provided autogen.sh on autoreconf. The gtk-doc-tools version in Debian has
++    been fixed to properly handle the installation of HTML images for
++    out-of-tree builds.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 15 Feb 2017 12:17:29 +0100
++
++gtk+3.0 (3.22.7-2) unstable; urgency=medium
++
++  * Team upload
++  * d/p/gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch:
++    add proposed patch from upstream Bugzilla to let GDK X11
++    initialization complete successfully when libGL.so.1 is not
++    available (Closes: #847366)
++  * Override Lintian error source-is-missing for
++    debian/missing-sources/zlib.js-0.1.6/deps.js. It is a generated
++    file, but the script to generate it is also present.
++
++ -- Simon McVittie <smcv@debian.org>  Sat, 21 Jan 2017 15:38:15 +0000
++
++gtk+3.0 (3.22.7-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 17 Jan 2017 19:09:05 +0100
++
++gtk+3.0 (3.22.6-1) unstable; urgency=medium
++
++  [ Jeremy Bicha ]
++  * Update debian/watch to only look for GTK+ 3.22 releases
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++  * debian/libgtk-3-0.symbols: add new symbol.
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 09 Jan 2017 15:55:17 +0100
++
++gtk+3.0 (3.22.5-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 10 Dec 2016 17:00:03 +0100
++
++gtk+3.0 (3.22.4-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop d/p/cssshadowvalue-scale-the-blur-surface-by-the-same-fa.patch
++    - now included in upstream release.
++  * Update debian/libgtk-3-0.symbols with one addition.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sun, 20 Nov 2016 19:22:12 +0100
++
++gtk+3.0 (3.22.3-2) unstable; urgency=medium
++
++  * d/p/cssshadowvalue-scale-the-blur-surface-by-the-same-fa.patch
++    - Added. Improve the rendering of shadow around GTK windows, this turns out
++      to be a big performance improvement for HiDPI on wayland (From upstream
++      git, bgo#772075)
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Thu, 10 Nov 2016 22:58:59 +0100
++
++gtk+3.0 (3.22.3-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 08 Nov 2016 17:32:27 +0100
++
++gtk+3.0 (3.22.2-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 25 Oct 2016 00:10:32 +0200
++
++gtk+3.0 (3.22.1-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop d/p/wayland-Avoid-negative-size-constraints.patch and
++    d/p/wayland-always-sync-state-after-a-frame-is-painted.patch, merged
++    upstream.
++  * Bump Build-Depends on libxrandr-dev to (>= 2:1.5.0). This means we can
++    drop d/p/0001-Fix-division-by-zero-when-calculating-the-refresh-ra.patch.
++    Upstream has already applied a similar patch for the Xrandr 1.5 code path
++    and we no longer need the workaround for Xrandr 1.3.
++  * Update Build-Depends as per configure.ac:
++    - Add libfontconfig1-dev.
++    - Drop libxt-dev, libxft-dev, libxrender-dev and x11proto-xext-dev.
++    - Drop Debian specific versions for various libx*-dev packages. Those
++      versions were a long time ago for gtk+2.0 when the udeb was switched
++      from DirectFB to Xlib.
++  * Update Depends of libgtk-3-dev to match the dependencies declared in the
++    pkg-config .pc files.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 01 Oct 2016 15:36:03 +0200
++
++gtk+3.0 (3.22.0-2) unstable; urgency=medium
++
++  * d/p/wayland-Avoid-negative-size-constraints.patch
++    - Added. Resolve unexpected order of size-allocation signals, fixes issues
++      with placing clutter-gtk widgets on wayland.
++      (From upstream git, bgo#771915)
++  * d/p/wayland-always-sync-state-after-a-frame-is-painted.patch
++    - Added. Always sync the state after a frame paint. Avoids things getting
++      out of sync when painting using GL as e.g. epiphany does these days.
++      (From upstream git, bgo#771553)
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Fri, 30 Sep 2016 14:36:52 +0200
++
++gtk+3.0 (3.22.0-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop dbg packages now that we have automatic dbgsym packages.
++  * Bump debhelper compat level to 9.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 20 Sep 2016 20:48:18 +0200
++
++gtk+3.0 (3.21.6-1) unstable; urgency=medium
++
++  [ Andreas Henriksson ]
++  * New upstream development release.
++  * Update (build-)dependencies according to configure.ac changes:
++    - bump wayland-protocols to >= 1.7
++  * Update debian/libgtk-3-0.symbols with a few scrolled_window additions.
++
++  [ Michael Biebl ]
++  * Refresh patches.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 14 Sep 2016 10:35:59 +0200
++
++gtk+3.0 (3.21.5-3) unstable; urgency=medium
++
++  * Mark two more reftests as known_fail and make test-suite failures fatal
++    again.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 31 Aug 2016 23:41:32 +0200
++
++gtk+3.0 (3.21.5-2) unstable; urgency=medium
++
++  * Mark the gdk_wayland_* symbols as linux-any.
++  * Drop workaround for cdbs bug which has been fixed in the mean time.
++  * Change Build-Depends on dbus-x11 to dbus. The use of dbus-launch has been
++    removed upstream so having only dbus installed is sufficient to run the
++    test-suite. (Closes: #835891)
++  * Add dbus to autopkgtest dependencies to ensure machine-id is properly
++    setup.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 31 Aug 2016 18:48:24 +0200
++
++gtk+3.0 (3.21.5-1) unstable; urgency=low
++
++  [ Simon McVittie ]
++  * Merge packaging changes from 3.20.9-1 in unstable
++
++  [ Andreas Henriksson ]
++  * New upstream release.
++  * Update build-dependencies according to configure.ac changes:
++    - bump libglib2.0-dev to >= 2.49.4
++    - bump wayland-protocols to >= 1.6
++  * Fix debian/patches/no-accessibility-dump.patch to apply again.
++  * Drop d/p/Don-t-apply-GDK_HINT_RESIZE_INC-to-GDK_WINDOW_STATE_.patch
++    - now included in upstream release.
++  * Update debian/libgtk-3-0.symbols with several additions and one missing:
++    - gdk_wayland_display_get_xdg_shell unused outside of gtk+.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Tue, 30 Aug 2016 18:13:45 +0200
++
++gtk+3.0 (3.20.9-1) unstable; urgency=medium
++
++  [ Jeremy Bicha ]
++  * Team upload
++  * New upstream release
++  * debian/control.in:
++    - Drop unnecessary version number from dependency on adwaita-icon-theme
++  * debian/patches/0001-Revert-Improve-external-drives-detection.patch:
++    - Dropped, applied in new version
++
++  [ Simon McVittie ]
++  * Another new upstream release
++  * Explicitly build-depend on docbook-xsl, libxml2-utils and xsltproc
++    to be able to generate man pages from their source code. Move docbook-xml
++    to Build-Depends since the man pages are in an Architecture: any package.
++  * Drop Build-Depends-Indep on docbook-utils, the old SGML toolchain,
++    which is currently uninstallable (#834616) and does not appear to be
++    needed for anything
++
++ -- Simon McVittie <smcv@debian.org>  Thu, 18 Aug 2016 10:47:10 +0100
++
++gtk+3.0 (3.20.7-1) unstable; urgency=medium
++
++  [ Laurent Bigonville ]
++  * debian/control.in: Add hicolor-icon-theme as a hard dependency, the
++    package is small and only provides the directory structure of the theme.
++  * debian/control.in: Move adwaita-icon-theme dependency to the main package.
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++  * debian/patches/0001-Revert-Improve-external-drives-detection.patch:
++    + Revert upstream change that requires unstable glib 2.49.1.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Thu, 04 Aug 2016 19:07:21 +0200
++
++gtk+3.0 (3.21.4-1) experimental; urgency=medium
++
++  * New upstream release.
++  * debian/control.in:
++    + Build depend on xauth, needed for xvfb-run.
++    + Drop build-dependency on gettext and update the version requirements
++      for wayland-protocols and glib.
++  * debian/patches/wayland-add-extended-state-for-tiled.patch:
++    + Dropped, included upstream.
++  * d/p/0001-Fix-division-by-zero-when-calculating-the-refresh-ra.patch:
++    + New patch. Fix division by zero when running under Xvfb.
++  * debian/libgtk-3-0.symbols:
++    + Add new symbols.
++  * debian/rules:
++    + Don't abort on test suite failures for now. Too many new failures due
++      to deprecation warnings.
++  * Upload to experimental.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Wed, 20 Jul 2016 23:33:22 +0200
++
++gtk+3.0 (3.20.6-2) unstable; urgency=medium
++
++  * Team upload
++
++  [ Laurent Bigonville ]
++  * Drop patches/015_default-fallback-icon-theme.patch: The default icon theme
++    is already defined as Adwaita, not need to also define the fallback theme.
++
++  [ Simon McVittie ]
++  * d/rules: reset XDG_CONFIG_HOME, XDG_CACHE_HOME, XDG_DATA_HOME so that
++    they are based on the temporary HOME
++  * Backport patch from upstream to mark tiled Mutter/Shell windows
++    as GDK_WINDOW_STATE_TILED under Wayland (with mutter >= 3.20.2-2)
++  * Add my patch from upstream bug 755947 to disable character-cell-based
++    size contraints for TILED windows, so that gnome-terminal can snap to
++    half the screen under Wayland
++
++ -- Simon McVittie <smcv@debian.org>  Sat, 25 Jun 2016 00:19:51 +0100
++
++gtk+3.0 (3.20.6-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop revert-scrolledwindow-Remove-child-before-destroying.patch, merged
++    upstream.
++  * Re-enable test-suite.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 31 May 2016 21:33:34 +0200
++
++gtk+3.0 (3.20.5-4) unstable; urgency=medium
++
++  * Work around a bug in cdbs which causes the package to FTBFS; see #825135
++    for further details.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 26 May 2016 08:08:16 +0200
++
++gtk+3.0 (3.20.5-3) unstable; urgency=medium
++
++  * Make it simpler to bootstrap the package by marking the build dependencies
++    which are required to run the test-suite with <!nocheck>.
++    (Closes: #747392)
++  * Bump Build-Depends on debhelper to (>= 9.20141010) and dpkg-dev to
++    (>= 1.17.14) for build dependency restrictions support.
++  * Temporarily disable the test suite (and its build-dependencies) to allow
++    building the new gtk-update-icon-cache package. Our buildds don't support
++    build profiles yet, so we'll have to bootstrap manually for now.
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 23 May 2016 01:01:27 +0200
++
++gtk+3.0 (3.20.5-2) unstable; urgency=medium
++
++  * Split gtk-update-icon-cache utility out of libgtk-3-bin into a separate
++    package called gtk-update-icon-cache to break a dependency cycle with
++    adwaita-icon-theme when building the package. (Closes: #824999)
++    As the gtk-update-icon-cache binary doesn't actually have any libgtk-3-0
++    dependency, there is no longer a reason to ship a gtk2 and gtk3 variant.
++    So from now on we will only ship one implementation built from src:gtk+3.0
++    and drop the Debian specific -3.0 suffix. To simplify the transition make
++    libgtk-3-bin depend on gtk-update-icon-cache. Once all theme packages have
++    been updated, this dependency can be dropped.
++  * Cherry-pick patch from upstream Git which reverts a commit that was
++    causing crashes in the filechooser in some applications.
++
++ -- Michael Biebl <biebl@debian.org>  Sun, 22 May 2016 08:52:19 +0200
++
++gtk+3.0 (3.20.5-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++  * Bump Standards-Version to 3.9.8.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 21 May 2016 00:11:13 +0200
++
++gtk+3.0 (3.20.4-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Tue, 10 May 2016 14:29:37 +0200
++
++gtk+3.0 (3.20.3-2) unstable; urgency=medium
++
++  * Restore debian/patches/reftest-known-fail.patch so we can mark known
++    failing tests as non-fatal.
++  * Drop debian/patches/disable-flaky-textview-margins-reftest.patch and tag
++    textview-margins.ui as known-fail.
++  * Mark button-wrapping.ui reftest as known-fail, it currently fails on
++    mips(64)el and prevents testing migration and important fixes in other
++    packages reaching testing.
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 02 May 2016 01:18:04 +0200
++
++gtk+3.0 (3.20.3-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Drop debian/patches/git_window-Remove-suspicious-branch.patch, merged
++    upstream and refresh the remaining patches.
++  * Upload to unstable.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 16 Apr 2016 21:13:07 +0200
++
++gtk+3.0 (3.20.2-1) experimental; urgency=medium
++
++  * New upstream release.
++  * Drop debian/patches/git_fix_emacs.patch, included in release.
++  * Add debian/patches/git_window-Remove-suspicious-branch.patch
++    - from upstream git, reverts a revert in 3.20.2 that causes the
++      testsuite to fail. Emacs users watch out!
++
++ -- Andreas Henriksson <andreas@fatal.se>  Mon, 11 Apr 2016 12:53:17 +0200
++
++gtk+3.0 (3.20.1-2) experimental; urgency=medium
++
++  * Add debian/patches/disable-flaky-textview-margins-reftest.patch
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 30 Mar 2016 14:02:10 +0200
++
++gtk+3.0 (3.20.1-1) experimental; urgency=medium
++
++  * New upstream release.
++  * Drop debian/patches/git_a11y_GTK_CSD_distcheck.patch, included in release.
++  * Add debian/patches/git_fix_emacs.patch, cherry-picked from upstream git.
++    Thanks to Matteo F. Vescovi for verifying the commit fixed the emacs problem.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 30 Mar 2016 11:08:26 +0200
++
++gtk+3.0 (3.20.0-1) experimental; urgency=medium
++
++  * New upstream release.
++  * Make testsuite fatal again.
++  * Add debian/patches/git_a11y_GTK_CSD_distcheck.patch
++    - cherry-pick commit from upstream to use client-side decorations
++      for a11y tests when running under distcheck.
++  * Drop debian/patches/reftest-known-fail.patch
++  * Stop tagging reftests as known fail since they should be fixed now:
++    - style-properties-nth-child.ui
++    - label-text-shadow-changes-modify-clip.ui
++  * Add debian/patches/no-accessibility-dump.patch
++    - skip this test until someone figures out how to reliably run it
++      always with CSD enabled, to match testsuite expected data.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 23 Mar 2016 14:10:27 +0100
++
++gtk+3.0 (3.19.12-1) experimental; urgency=medium
++
++  * New upstream development release+snapshot.
++  * Update (build-)dependencies according to configure.ac changes:
++    - add wayland-protocols (>= 1.1)
++    - bump libwayland-dev to 1.9.91
++    - add libharfbuzz-dev (>= 0.9), libpango1.0-dev
++  * Temporarily make testsuite non-fatal while investigating.
++  * libgtk-3-bin.install:
++    - ship new gtk-query-settings tool.
++    - ship gtk-builder gettext (its) files.
++    - run wrap-and-sort on this file while at it.
++  * Update debian/libgtk-3-0.symbols with new additions.
++    - also drops an internal unused wayland-related drag and drop symbol.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Tue, 15 Mar 2016 11:34:25 +0100
++
++gtk+3.0 (3.18.9-1) unstable; urgency=medium
++
++  [ Michael Biebl ]
++  * New upstream release.
++  * Bump Standards-Version to 3.9.7.
++
++  [ Uwe Kleine-König ]
++  * Remove debian/{build,install} in clean target. (Closes: #792736)
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 12 Mar 2016 21:29:26 +0100
++
++gtk+3.0 (3.18.8-1) unstable; urgency=medium
++
++  * New upstream stable release 3.18.8
++
++ -- Iain Lane <iain@orangesquash.org.uk>  Wed, 24 Feb 2016 17:55:46 +0000
++
++gtk+3.0 (3.18.7-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 02 Feb 2016 19:12:28 +0100
++
++gtk+3.0 (3.18.6-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh debian/patches/071_fix-installation-of-HTML-images.patch.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 08 Dec 2015 15:11:24 +0100
++
++gtk+3.0 (3.18.5-1) unstable; urgency=medium
++
++  * New upstream stable release 3.18.5
++    + GtkFileChooser:
++      - Make sure external drives show up either in the sidebar or the places
++        view
++      - Ignore double-click events
++    + Avoid some crashes in CSS parsing error handling
++
++ -- Iain Lane <laney@debian.org>  Tue, 17 Nov 2015 14:10:09 +0000
++
++gtk+3.0 (3.18.4-1) unstable; urgency=medium
++
++  * New upstream stable release 3.18.4
++    + Revert a GtkTextBuffer change that broke binding API
++      - Remove downstream cherry-picks for this change.
++    + Properly refresh styles when widget names change
++
++ -- Iain Lane <laney@debian.org>  Fri, 13 Nov 2015 13:19:47 +0000
++
++gtk+3.0 (3.18.3-3) unstable; urgency=medium
++
++  * Revert "textbuffer: nicer get_iter functions" and related commits since
++    this broke the bindings API. (Closes: #804798)
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 12 Nov 2015 18:50:55 +0100
++
++gtk+3.0 (3.18.3-2) unstable; urgency=medium
++
++  * The placesview API was not supposed to be public, so those symbols were
++    removed. Update the libgtk-3-0.symbols file accordingly.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 11 Nov 2015 02:39:56 +0100
++
++gtk+3.0 (3.18.3-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++  * Drop Recommends on hicolor-icon-theme from libgtk-3-0 as libgtk-3-common
++    already has a Depends on adwaita-icon-theme.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 11 Nov 2015 01:41:11 +0100
++
++gtk+3.0 (3.18.2-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 13 Oct 2015 23:07:49 +0200
++
++gtk+3.0 (3.18.1-2) unstable; urgency=medium
++
++  * Add debian/patches/git_stylecontext-make-sure-valid.patch
++    - patch from upstream git to fix crash with some themes (Closes: #800911)
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sun, 11 Oct 2015 01:21:46 +0200
++
++gtk+3.0 (3.18.1-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++  * Drop debian/patches/git_bitmask-dont-hardcode-64bit-size.patch, merged
++    upstream.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 08 Oct 2015 00:41:06 +0200
++
++gtk+3.0 (3.18.0-4) unstable; urgency=medium
++
++  * Team upload.
++  * gir1.2-gtk-3.0 Breaks pre-3.18 versions of pygobject (Closes: #800798)
++
++ -- Simon McVittie <smcv@debian.org>  Sun, 04 Oct 2015 15:46:54 +0100
++
++gtk+3.0 (3.18.0-3) unstable; urgency=medium
++
++  [ Michael Biebl ]
++  * Drop the XS-Testsuite: autopkgtest field
++    - it is no longer required, as dpkg 1.17.11 will add it
++      automatically if there is a debian/tests/control file.
++
++  [ Andreas Henriksson ]
++  * Upload to unstable.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Fri, 02 Oct 2015 17:04:02 +0200
++
++gtk+3.0 (3.18.0-2) experimental; urgency=medium
++
++  * Add debian/patches/git_bitmask-dont-hardcode-64bit-size.patch
++    - from upstream git. should fix test failure on i386, mips, mipsel.
++  * debian/rules: move --fail-missing to binary target instead of
++    binary-indep to use it on full builds only. This should avoid
++    breaking source-only uploads as the binary-indep (only) builds
++    more then it needs to do (which is not installed anywhere).
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sun, 27 Sep 2015 15:29:19 +0200
++
++gtk+3.0 (3.18.0-1) experimental; urgency=medium
++
++  * Drop debian/patches/061_multiarch_module_fallback.patch
++    - now obsolete since all packages has been fixed to install
++      in multiarch directories.
++  * Drop patches which are unused and has been for a very long time:
++    - debian/patches/030_tests_skip_filechooser.patch
++    - debian/patches/042_treeview_single-focus.patch
++    - debian/patches/043_notebook_scroll.patch
++  * New upstream release.
++  * Drop debian/patches/git_test-simplify-use-bash.patch
++    - now included in upstream release.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 23 Sep 2015 17:07:59 +0200
++
++gtk+3.0 (3.17.9-2) experimental; urgency=medium
++
++  * Add debian/patches/git_test-simplify-use-bash.patch from upstream
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sun, 20 Sep 2015 19:46:36 +0200
++
++gtk+3.0 (3.17.9-1) experimental; urgency=medium
++
++  [ Simon McVittie ]
++  * d/p/073-Use-AC_USE_SYSTEM_EXTENSIONS-to-get-_GNU_SOURCE-_XOP.patch:
++    remove, applied upstream in 3.13 and no longer listed in series
++
++  [ Andreas Henriksson ]
++  * Add Breaks against gtk3-engines-oxygen << 1.4.1-3 (Closes: #797797)
++  * New upstream development release.
++  * Update (build-)dependencies according to configure.ac changes:
++    - bump pango to >= 1.37.3
++  * Bump glib build-dep to >= 2.45.8
++    - g_param_spec_get_name_quark is needed.
++  * Ship new gtk-builder-tool in libgtk-3-bin package.
++  * Update debian/libgtk-3-0.symbols with many new additions.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Thu, 17 Sep 2015 13:12:35 +0200
++
++gtk+3.0 (3.16.6-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++  * Drop obsolete Breaks from pre-wheezy.
++  * Remove debian/libgtk-3-common.preinst.in, this file is a leftover from
++    gtk+2.0 and not necessary anymore.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 22 Jul 2015 21:29:11 +0200
++
++gtk+3.0 (3.16.5-1) unstable; urgency=medium
++
++  * New upstream bugfix release 3.16.5
++
++ -- Iain Lane <laney@debian.org>  Wed, 08 Jul 2015 16:20:40 +0100
++
++gtk+3.0 (3.16.4-2) unstable; urgency=medium
++
++  * Merge changes from 3.14.13-1.
++  * debian/README.Debian:
++    + Removed, that's for gtk+2.0. Closes: #622913.
++  * debian/control.in:
++    + Drop versioned dependency on pkg-config. The version is satisfied
++      in oldstable and that helps other packages that provide pkg-config.
++      Closes: #734481.
++  * Upload to unstable.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sun, 14 Jun 2015 13:30:06 +0200
++
++gtk+3.0 (3.16.4-1) experimental; urgency=medium
++
++  [ Iain Lane ]
++  * build with --fail-missing when doing an indep build
++  * Install some utilities and missing icons, desktop files and manpages into
++    gtk-3-examples (for want of a better package).
++  * clean up reftest known_fail files in clean target which we create in
++    pre-build
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Fri, 12 Jun 2015 00:06:44 +0200
++
++gtk+3.0 (3.16.3-2) experimental; urgency=medium
++
++  * d/p/015_default-fallback-icon-theme.patch: Replace gnome with Adwaita.
++  * Update libgtk-3-dev dependencies according to its pkg-config file.
++
++ -- Dmitry Shachnev <mitya57@debian.org>  Sun, 24 May 2015 19:26:07 +0300
++
++gtk+3.0 (3.16.3-1) experimental; urgency=medium
++
++  [ Sjoerd Simons ]
++  * New upstream release 3.16.2.
++  * debian/patches/044_tracker_fts.patch:
++    + Dropped, upstream also defaults to FTS tracker queries now
++  * debian/control: Update build-dependency versions
++  * debian/control: Add libexpoxy and libegl1-mesa-dev to build-depencies
++  * debian/libgtk-3-0.symbols: Updated
++  * d/p/notify-test-Don-t-test-object-relying-on-dbus-connec.patch:
++    + Added. Fix test failure when no session bus is running (bgo#749009)
++  * debian/rules: Add label-text-shadow-changes-modify-clip.ui to known
++    reftest failures
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release 3.16.3.
++  * debian/patches:
++    + Refreshed.
++  * debian/patches/notify-test-Don-t-test-object-relying-on-dbus-connec.patch:
++    + Dropped, included upstream.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Fri, 22 May 2015 18:23:50 +0200
++
++gtk+3.0 (3.14.13-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Wed, 10 Jun 2015 18:19:44 +0200
++
++gtk+3.0 (3.14.5-1) unstable; urgency=medium
++
++  * New upstream bugfix release.
++  * debian/patches/077_fix_menu_height_calculating.patch:
++    + Dropped, merged upstream.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 11 Nov 2014 18:55:46 +0100
++
++gtk+3.0 (3.14.4-2) unstable; urgency=medium
++
++  [ Rico Tzschichholz ]
++  * Install org.gtk.Settings.Debug.gschema.xml
++
++  [ Dmitry Shachnev ]
++  * debian/patches/077_fix_menu_height_calculating.patch: backport upstream
++    commit to fix calculation of menu height (closes: #767906).
++
++ -- Dmitry Shachnev <mitya57@debian.org>  Tue, 04 Nov 2014 17:19:48 +0300
++
++gtk+3.0 (3.14.4-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 23 Oct 2014 15:43:31 +0200
++
++gtk+3.0 (3.14.3-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Install typelib files into multiarch paths.
++  * Mark gir and dev package as Multi-Arch: same.
++  * Bump Standards-Version to 3.9.6. No further changes.
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 13 Oct 2014 23:35:40 +0200
++
++gtk+3.0 (3.14.2-1) unstable; urgency=medium
++
++  * New upstream release.
++    - includes fix gtkbuilder fix for problems affecting libgweather
++      users (like gnome-clocks, Closes: #764681)
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sat, 11 Oct 2014 15:12:08 +0200
++
++gtk+3.0 (3.14.1-1) unstable; urgency=medium
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++
++  [ Andreas Henriksson ]
++  * Add debian/patches/reftest-known-fail.patch
++    - make it possible to tag individual reftests as ok to fail.
++  * debian/rules:
++    touch testsuite/reftests/style-properties-nth-child.ui.known_fail
++    - reftest shows this intermittently has a couple of pixels
++      difference on some architectures. No big deal.
++      Noone is willing to investigate and consensus is it's ok to disable.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 02 Oct 2014 01:49:16 +0200
++
++gtk+3.0 (3.14.0-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 23 Sep 2014 22:25:42 +0200
++
++gtk+3.0 (3.13.9-2) unstable; urgency=medium
++
++  * Upload to unstable.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Fri, 19 Sep 2014 22:25:39 +0200
++
++gtk+3.0 (3.13.9-1) experimental; urgency=medium
++
++  [ Andreas Henriksson ]
++  * libgtk-3-common: Depend on adwaita-icon-theme (>= ${gnome:Version})
++    - gtk+ should guarantee we have atleast one sane icon theme available.
++  * debian/rules: Include gnome-version.mk to generate ${gnome:Version}
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream development release.
++  * debian/control.in:
++    + Bump libpango1.0-dev minimum (build-)dependency.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Fri, 19 Sep 2014 17:37:42 +0200
++
++gtk+3.0 (3.13.8-1) experimental; urgency=medium
++
++  [ Andreas Henriksson ]
++  * New upstream development release (3.13.7)
++  * Update build-dependencies according to configure.ac
++    - bump libglib2.0-dev to (>= 2.41.2)
++  * Update libgtk-3.0-dev dependency on libglib2.0-dev to (>= 2.41.2)
++  * Massage debian/patches/018_gdkenumtypes.c_location.patch to apply again
++  * Drop backported/merged patches now in released version:
++    - debian/patches/072_Avoid-pkg-config-atleast-version.patch
++  * Have quilt refresh remaining patches.
++  * Bump gobject-introspection build-dependency to (>= 1.41.3)
++    - this one supports new "nullable" annotation.
++  * Build-depend on adwaita-icon-theme instead of gnome-icon-theme-symbolic
++  * Update debian/libgtk-3-0.symbols with many additions
++  * New upstream development release (3.13.8)
++  * Update build-dependencies according to configure.ac changes:
++    - Bump libgdk-pixbuf2.0-dev to (>= 2.30.0)
++    - Bump libwayland-dev to (>= 1.5.91)
++  * debian/patches/032_mips_treeview_row_separator_height.patch:
++    - massage the patch into applying again.
++  * Update debian/libgtk-3-0.symbols
++    - 4 dropped gdk_wayland_*_libgtk_only symbols, should be unused.
++    - 3 new wayland related symbols
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Fri, 05 Sep 2014 22:50:11 +0200
++
++gtk+3.0 (3.12.2-3) unstable; urgency=medium
++
++  * Team upload
++  * debian/missing-sources/zlib.js-0.1.6: add missing source code for
++    gdk/broadway/rawinflate.min.js (Closes: #753968)
++    - some files in zlib.js upstream had missing source code themselves
++      (closure-compiler.jar) or are not needed here, and have been removed
++      to save space; see debian/missing-sources/README for details
++    - make debian/missing-sources/rawinflate.js a symlink into zlib.js-0.1.6
++      to reassure lintian that source is present
++  * d/p/073-Use-AC_USE_SYSTEM_EXTENSIONS-to-get-_GNU_SOURCE-_XOP.patch:
++    define _GNU_SOURCE on non-Linux to fix "assignment makes pointer from
++    integer without a cast" found by build-log scanning on kFreeBSD
++
++ -- Simon McVittie <smcv@debian.org>  Sun, 17 Aug 2014 15:26:50 +0100
++
++gtk+3.0 (3.12.2-2) unstable; urgency=medium
++
++  * Team upload
++
++  [ Dmitry Shachnev ]
++  * Autopkgtests fixes: add missing xauth dependency, and stop using
++    deprecated GtkStock item.
++
++  [ Simon McVittie ]
++  * debian/patches/072_Avoid-pkg-config-atleast-version.patch:
++    stop AM_PATH_GTK_3_0([3], [], [], [gthread]) trying to require
++    gthread-2.0 >= 3, which doesn't exist (Closes: #756476)
++
++ -- Simon McVittie <smcv@debian.org>  Sun, 10 Aug 2014 17:26:57 +0100
++
++gtk+3.0 (3.12.2-1) unstable; urgency=medium
++
++  * New upstream release.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Fri, 16 May 2014 12:12:48 +0200
++
++gtk+3.0 (3.12.1-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Sat, 26 Apr 2014 16:44:41 +0200
++
++gtk+3.0 (3.12.0-4) unstable; urgency=medium
++
++  * Build-depend on gnome-icon-theme-symbolic and make test suite errors
++    fatal again.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Thu, 03 Apr 2014 19:45:56 +0200
++
++gtk+3.0 (3.12.0-3) unstable; urgency=medium
++
++  * debian/control.in:
++    + Loosen the dependencies on libgtk-3-common from = ${source:Version}
++      to >= ${source:Version} to make libgtk-3-bin and libgtk-3-0 installable
++      when a new source version is uploaded.
++    + Don't build depend on gnome-icon-theme-symbolic as that pulls
++      gnome-icon-theme which in turns pulls libgtk-3-bin, which isn't
++      installable at the moment.
++  * debian/rules:
++    + Temporarily make the test suite non-fatal as gnome-icon-theme-symbolic
++      is needed for some tests.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Wed, 02 Apr 2014 19:11:32 +0200
++
++gtk+3.0 (3.12.0-2) unstable; urgency=medium
++
++  * Upload to unstable.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Wed, 02 Apr 2014 16:10:12 +0200
++
++gtk+3.0 (3.12.0-1) experimental; urgency=medium
++
++  * New upstream release.
++  * Update debian/libgtk-3-0.symbols with added symbols.
++
++ -- Andreas Henriksson <andreas@fatal.se>  Tue, 25 Mar 2014 10:17:09 +0100
++
++gtk+3.0 (3.11.8-1) experimental; urgency=medium
++
++  * New upstream release.
++  * debian/control.in,
++    debian/rules:
++    + Enable Google cloud print support on the normal build.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sun, 09 Mar 2014 15:07:56 +0100
++
++gtk+3.0 (3.11.7-1) experimental; urgency=medium
++
++  * New upstream release.
++  * Bump build-dependencies according to configure.ac:
++    - glib 2.39.5 and gtk-doc 1.20
++  * Use quilt to refresh all patches.
++  * Update debian/libgtk-3-0.symbols
++
++ -- Andreas Henriksson <andreas@fatal.se>  Tue, 18 Feb 2014 20:22:50 +0100
++
++gtk+3.0 (3.11.5-1) experimental; urgency=medium
++
++  * New upstream development release.
++  * debian/control.in:
++    + Update build dependencies.
++    + Build depend on gnome-icon-theme-symbolic, needed for some tests.
++    + Standards-Version is 3.9.5, no changes needed.
++  * debian/libgtk-3-0.symbols:
++    + Add new symbols. A couple of wayland-related symbols,
++      gdk_wayland_display_get_wl_shell{,_surface} are gone in favor of
++      gdk_wayland_display_get_xdg_shell. The wayland backend is not fully
++      stable yet and nothing in the archive should be depending on them,
++      so this should be fine.
++    + Drop four commented-out symbols that weren't exported after 3.9.10,
++      as mentioned below in the 3.9.14 changelog entry. Those for symbols
++      were not exported in the headers and were only used internally by
++      gdk.
++  * debian/patches/080_disable-parallel-docs-build.patch:
++     + Dropped, gtk-doc 1.20 works fine with parallel builds.
++  * debian/rules:
++     + Break colord<->gtk+ loop when bootstrapping. Thanks Daniel Schepler.
++       Closes: #738603.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 17 Feb 2014 18:57:53 +0100
++
++gtk+3.0 (3.10.7-1) unstable; urgency=low
++
++  * debian/libgtk-3-bin.install:
++    + Ship broadwayd.
++  * debian/rules:
++    + Enable parallel builds.
++  * New upstream release.
++  * debian/patches/080_disable-parallel-docs-build.patch:
++    + Disable parallel support for the docs as that has races, see
++      the similar glib2.0 patch for a longer explanation.
++  * Upload to unstable.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sat, 15 Feb 2014 14:15:56 +0100
++
++gtk+3.0 (3.10.2-1) experimental; urgency=low
++
++  * debian/libgtk-3-0.symbols:
++    + Mark wayland symbols as linux-any.
++  * New upstream release.
++    + debian/libgtk-3-0.symbols:
++      - Removed a couple of private structs that shouldn't have been
++        exported.
++  * debian/rules:
++    + Set VERBOSE so we get more information about test failures.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 28 Oct 2013 02:08:26 +0100
++
++gtk+3.0 (3.10.1-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * debian/control.in,
++    debian/rules:
++    + Only build the wayland backend on linux-any.
++
++  [ Andreas Henriksson ]
++  * New upstream release
++  * Bump libwayland-dev (build-)dependency to >= 1.2.0
++  * Update debian/libgtk-3-0.symbols with added symbols
++
++ -- Andreas Henriksson <andreas@fatal.se>  Sun, 13 Oct 2013 20:14:15 +0200
++
++gtk+3.0 (3.9.14-1) experimental; urgency=low
++
++  [ Andreas Henriksson ]
++  * New upstream development release (3.9.10)
++  * Bump glib (build-)dependency to >= 2.37.3 as per configure.ac
++  * Trivial update in 015_default-fallback-icon-theme.patch to apply.
++  * Update debian/patches/018_gdkenumtypes.c_location.patch to apply
++    after upstream dropped --disable-rebuilds.
++  * Disable 030_tests_skip_filechooser.patch
++    - testsuite moved and restructured....
++  * Updated to apply patch against new testsuite file location:
++    - 032_mips_treeview_row_separator_height.patch
++  * Drop 031_ia64_children_test.patch
++    - fixed differently upstream (see GBZ #702370)
++  * Drop 080_correct_padding_of_submenu_arrows.patch
++    - previously cherry-picked, now included in upstream release.
++  * Refresh all patches to apply without offset.
++  * Ignore testsuite failures for now...
++  * Update debian/libgtk-3-0.symbols
++    - many added symbols, and four missing:
++      gdk_frame_clock_idle_get_type,
++      gdk_offscreen_window_get_type,
++      gdk_window_impl_get_type,
++      gdk_window_impl_x11_get_type.
++  * Explicitly set which GDK backends to build:
++    - enable x11,wayland,broadway in regular build
++    - disable wayland,broadway and enable x11 in udeb build
++  * Add build-dependencies needed by wayland backend:
++    - libwayland-dev (>= 1.1.90), libxkbcommon-dev (>= 0.2.0)
++  * Update debian/libgtk-3-0.symbols with added broadway & wayland symbols.
++  * New upstream release (3.9.12)
++    - bump cairo build-dependency to >= 1.12
++
++  [ Sjoerd Simons ]
++  * Add libwayland-dev depend in libgtk-3-dev since we're building the wayland
++    backend now
++  * Also needs libxkbcommon-dev now due to the wayland backend (Found by Andrew
++    Lee)
++  * debian/libgtk-3-0.symbols: Update for new symbols (Patch by Andrew Lee)
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream development release (3.9.14).
++  * debian/libgtk-3-0.symbols:
++    + Updated for new symbols.
++  * debian/control.in:
++    + Bump minimum libglib2.0-dev build dependency.
++    + Build depend on gsettings-desktop-schemas for the testsuite.
++    + Build depend on dbus-x11 for the testsuite.
++    + Build depend on at-spi2-core as libatspi2.0-0 seems to require it,
++      tests that use dbus fail otherwise.
++  * debian/rules:
++    + Set XDG_DATA_DIRS and copy and copile the gsettings schemas so that
++      gsettings can find them. Makes the test suite happy.
++    + Set XDG_RUNTIME_DIR, makes the test suite even happier.
++    + Make the test suite fatal again.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 10 Sep 2013 01:23:06 +0200
++
++gtk+3.0 (3.8.2-3) unstable; urgency=low
++
++  * Simplify our trigger for gtk-query-immodules-3.0, use the --update-cache
++    option instead of redirecting stdout.
++  * debian/patches/080_correct_padding_of_submenu_arrows.patch: Take padding
++    into account to position submenu arrow. Patch cherry-picked from upstream
++    Git.
++  * Update debian/copyright to comply with the final 1.0 spec.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 06 Jul 2013 00:51:39 +0200
++
++gtk+3.0 (3.8.2-2) unstable; urgency=low
++
++  * debian/patches/031_ia64_children_test.patch:
++    + Patch from Stephan Schreiber, fix an invalid read on a test case
++      that caused it to fail on ia64, making the build fail.
++  * debian/patches/032_mips_treeview_row_separator_height.patch:
++    + Disable another test that currently fails on mips but that also
++      fails at least on amd64 when run under valgrind.
++  * All the above closes: #711107.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sun, 16 Jun 2013 01:25:10 +0200
++
++gtk+3.0 (3.8.2-1) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * Switch to interest-noawait for triggers. They only affect IM 
++    modules, so this is not likely to cause upgrade problems.
++
++  [ Michael Biebl ]
++  * Upload to unstable.
++  * New upstream release.
++  * Update debian/copyright following the latest copyright-format spec.
++  * Bump Standards-Version to 3.9.4. No further changes.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 23 May 2013 16:23:37 +0200
++
++gtk+3.0 (3.8.0-1) experimental; urgency=low
++
++  [ Rico Tzschichholz ]
++  * debian/gtk-3-examples.install:
++    - Install usr/bin/gtk3-demo-application
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++    + debian/patches/071_fix-installation-of-HTML-images.patch:
++      - Refreshed.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 26 Mar 2013 11:21:30 +0100
++
++gtk+3.0 (3.7.14-1) experimental; urgency=low
++
++  * New upstream release.
++    + d/p/090-GtkTextView-don-t-popdown-a-bubble-if-we-don-t-have-.patch:
++      - Removed, included upstream.
++  * debian/rules:
++    + Set HOME rather than G_HOME, as GLib now honors the former and
++      G_HOME is a Debian-specific thing.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 19 Mar 2013 12:06:40 +0100
++
++gtk+3.0 (3.7.12-2) experimental; urgency=low
++
++  * d/p/090-GtkTextView-don-t-popdown-a-bubble-if-we-don-t-have-.patch:
++    + Added. Fix segv when popping down non-existing bubblees (From upstream
++      git, bgo #695304)
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Mon, 11 Mar 2013 21:42:39 +0100
++
++gtk+3.0 (3.7.12-1) experimental; urgency=low
++
++  [ Sjoerd Simons ]
++  * debian/patches/80_Fix-DND-with-frame-sync.patch:
++    + Added. Temporary fix for DND when using mutter with the frame sync
++    protocol (from upstream git, bgo#694217).
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++    + debian/patches/*:
++      - Refreshed.
++    + debian/patches/80_Fix-DND-with-frame-sync.patch:
++      - Removed, included upstream.
++    + debian/libgtk-3-0.symbols:
++      - Updated for new symbols.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Wed, 06 Mar 2013 13:43:48 +0100
++
++gtk+3.0 (3.7.10-1) experimental; urgency=low
++
++  * New upstream release.
++    + debian/control.in:
++      - Update build dependencies.
++    + debian/patches:
++      - Refreshed.
++    + debian/libgtk-3-0.symbols:
++      - Updated for the new symbols.
++    + debian/gtk-3-examples.install:
++      - Stop installing gtk3-demo files, no longer needed.
++    + debian/patches/030_tests_skip_filechooser.patch:
++      - New patch: skip filechooser tests as they are not designed to
++        be run without gtk+ installed.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sat, 23 Feb 2013 20:37:27 +0100
++
++gtk+3.0 (3.6.4-1) experimental; urgency=low
++
++  * New upstream release
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Tue, 08 Jan 2013 13:54:26 +0100
++
++gtk+3.0 (3.6.3-1) experimental; urgency=low
++
++  * New upstream release.
++  * Refresh patches.
++  * debian/libgtk-3-bin.install: Install gtk-launch man page.
++  * debian/libgtk-3-dev.install: Install gtkbuilder.rng RELAX NG schema file
++    which can be used to validate GtkBuilder ui files.
++
++ -- Michael Biebl <biebl@debian.org>  Fri, 04 Jan 2013 23:23:45 +0100
++
++gtk+3.0 (3.6.1-1) experimental; urgency=low
++
++  * Team upload
++  * New upstream release 3.6.1
++    - drop private symbols gtk_css_image_get_parser_type and
++      gtk_style_properties_get_style from symbols file (made static upstream;
++      verified not to be present in any header file)
++
++ -- Simon McVittie <smcv@debian.org>  Mon, 22 Oct 2012 21:17:30 +0100
++
++gtk+3.0 (3.6.0-2) experimental; urgency=low
++
++  * debian/control.in: Add ${shlibs:Depends} Depends to libgtk-3-bin
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Wed, 03 Oct 2012 18:44:04 +0200
++
++gtk+3.0 (3.6.0-1) experimental; urgency=low
++
++  * New upstream release (3.6.0)
++  * Sync with ubuntu:
++    * debian/rules: Make test failures fatal again
++    * debian/libgtk-3-0.symbols: Updated
++    * debian/rules: Update build-depends
++    * debian/libgtk-3-bin.install: Add gtk-launch: A new commandline utility
++      to launch an application from its desktop file
++    * Add autopkgtest support
++  * debian/patches/072_statusicon_icon_size.patch:
++    * Removed merged upstream
++  * debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
++    * Removed, fixed upstream
++  * debian/patches/073_transparent_colors.patch
++    * Removed, fixed upstream
++  * debian/control.in: bump glib2.0 build-dep to >= 2.33.14 to trump the dodgy
++    version in unstable
++  * debian/control.in: Bump gnome-themes-standard break due to theme related
++    changes
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Wed, 03 Oct 2012 09:07:16 +0200
++
++gtk+3.0 (3.4.2-6) unstable; urgency=low
++
++  * Team upload.
++  * debian/patches/076_check_wm_supports_hint.patch: This patch fixes the
++    size and placement of popup menus with some window managers, such as
++    Awesome and XMonad. Closes: #681974
++
++ -- Sébastien Villemot <sebastien@debian.org>  Thu, 31 Jan 2013 18:09:43 +0100
++
++gtk+3.0 (3.4.2-5) unstable; urgency=low
++
++  * debian/patches/075_gtkplug-fix-handling-of-key-events-for-layouts.patch:
++    This patch fixes handling of key events for different layouts in
++    GtkPlug. In particular, it fixes the keyboard layout switching from
++    gnome-screensaver when the screen is locked. Closes: #692235
++  * debian/libgtk-3-0.symbols: add gdk_x11_keymap_get_group_for_state and
++    gdk_x11_keymap_key_is_modifier which are introduced by the above patch
++    (actually backported from the 3.5.2 API).
++  * debian/rules: call dh_makeshlibs with -V 'libgtk-3-0 (>= 3.4.2-5~)',
++    since we introduced new public symbols in this Debian revision.
++
++ -- Sébastien Villemot <sebastien@debian.org>  Wed, 09 Jan 2013 11:00:22 +0100
++
++gtk+3.0 (3.4.2-4) unstable; urgency=low
++
++  * debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch:
++    With xkb-data 2.5.1-2.1 preserving the Shift modifier, GTK+ can properly
++    map F10 and Shift-F10 to different key bindings. Closes: #658392
++
++ -- Michael Biebl <biebl@debian.org>  Fri, 21 Sep 2012 18:30:41 +0200
++
++gtk+3.0 (3.4.2-3) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * Update xrandr epoch.
++
++  [ Michael Biebl ]
++  * debian/libgtk-3-0.postrm.in: Drop "rm -rf /etc/gtk-3.0/" on purge since
++    this removes files owned by libgtk-3-common. Those bits were copied over
++    from the gtk+2.0 package but they are actually obsolete and no longer
++    required. Closes: #681198
++  * debian/patches/073_transparent_colors.patch: Handle transparent colors
++    better in GtkStyle emulation. Patch cherry-picked from upstream Git.
++    Closes: #669694
++  * debian/patches/070_revert-widget-set-up-signals-after-initializing.patch:
++    This patch was a temporary workaround for a bug in mutter which has been
++    fixed in version 3.4. It was not supposed to be shipped as part of wheezy,
++    so drop it again.
++  * If the NEWS or README file is larger than 4k in size append a .gz suffix
++    as dh_compress will compress those files. This avoids dangling symlinks.
++    Closes: #679754
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 06 Aug 2012 21:40:53 +0200
++
++gtk+3.0 (3.4.2-2) unstable; urgency=low
++
++  * debian/patches/072_statusicon_icon_size.patch: Fix how we determine the
++    icon size for the statusicon. This fixes a crash in notification-daemon
++    which was caused by an assertion failure. Closes: #669883
++    Thanks to Fernando Lemos for the patch and Brad Jorsch for the excellent
++    debugging.
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 30 Jun 2012 17:01:38 +0200
++
++gtk+3.0 (3.4.2-1) unstable; urgency=low
++
++  * New upstream release.
++  * Simplify shlibs version information for libgail-3-0 and no longer create a
++    dependency on libgail-3-common, this package has been dropped in 3.2.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 10 May 2012 14:44:28 +0200
++
++gtk+3.0 (3.4.1-2) unstable; urgency=low
++
++  * Upload to unstable.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 19 Apr 2012 02:46:25 +0200
++
++gtk+3.0 (3.4.1-1) experimental; urgency=low
++
++  [ Josselin Mouette ]
++  * Break libvte-2.90-9 < 0.32 and libwebkitgtk-3.0-0 < 1.8.0 for the
++    scrolling related changes. Closes: #666921.
++
++  [ Michael Biebl ]
++  * New upstream release.
++    - Fixes GtkPaned's handling of preferred size. Closes: #666718
++  * Update dependencies according to configure.ac.
++  * Drop explicit Build-Depends on gir1.2-glib-2.0 and gir1.2-freedesktop.
++  * Refresh patches.
++  * Remove leftovers from the opt flavor.
++  * Set --sourcedir for the different flavors when running dh_install. This
++    way the .install files can be simplified a lot which makes them much more
++    readable.
++  * Bump Standards-Version to 3.9.3.
++  * Update Vcs-* URLs.
++  * Remove --enable-xinput configure flag as xinput support is no longer
++    optional and this flag has thus been removed upstream.
++  * debian/patches/071_fix-installation-of-HTML-images.patch: Fix installation
++    of HTML images for out-of-tree builds when using absolute paths.
++    Closes: #656803
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 17 Apr 2012 20:59:19 +0200
++
++gtk+3.0 (3.4.0-1) experimental; urgency=low
++
++  * New upstream release.
++  * Bump Build-Depends on cdbs for multiarch support.
++  * debian/libgtk-3-0.symbols: Updated.
++  * debian/rules: Bump SHVER to 3.3.18.
++  * debian/control.in:
++    - Bump (Build-)Depends on libglib2.0-dev to (>= 2.31.20).
++    - Drop explicit Build-Depends on gir1.2-atk-1.0, gir1.2-pango-1.0 and
++      gir1.2-gdkpixbuf-2.0, those are pulled via the corresponding -dev
++      package.
++    - Update dependencies of libgtk-3-dev. Strip the minimum version from
++      libx*-dev, since those versions were older then lenny anyway.
++    - Remove a few obsolete Conflicts/Replaces.
++  * Refresh patches.
++  * Disable 043_notebook_scroll.patch, it needs to be updated.
++  * Move org.gtk.Demo.gschema.xml gsettings schema from libgtk-3-common to
++    gtk-3-examples. Add the necessary Breaks/Replaces.
++  * debian/libgtk-3-bin.install.in: Install the man pages from the install
++    directory, not the source directory.
++  * debian/patches/070_revert-widget-set-up-signals-after-initializing.patch:
++    Revert upstream commit which breaks the window decorations in
++    gnome-shell resp. mutter 3.2.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 28 Mar 2012 15:27:05 +0200
++
++gtk+3.0 (3.3.16-1) experimental; urgency=low
++
++  * New upstream development release.
++  * debian/libgtk-3-0.symbols: Add new symbols.
++  * debian/rules: Bump SHVER to 3.3.16.
++  * debian/control.in:
++    - Bump (Build-)Depends on libglib2.0-dev to (>= 2.31.18).
++    - Bump (Build-)Depends on libgdk-pixbuf2.0-dev to (>= 2.25.2).
++    - Drop Depends on libxml2-utils from libgtk-3-dev as gtk-builder-convert
++      has been removed.
++    - Drop Recommends on python and debhelper from libgtk-3-dev since it no
++      longer includes a dh_gtkmodules debhelper addon.
++    - Bump Breaks against gnome-themes-standard due to theming related
++      changes.
++  * Remove leftovers from the gtk3-engines-pixbuf package.
++  * Update patches:
++    - Drop 003_gdk.pc_privates.patch, fixed upstream in a similar way.
++    - Drop 70-Fix-document-generation-in-out-of-tree-builds.patch, applied
++      upstream.
++    - Drop 041_ia32-libs.patch, no longer required with multiarch.
++    - Disable 042_treeview_single-focus.patch for now since it has no
++      description why this patch is needed and it needs to be updated.
++    - Refresh remaining patches.
++  * debian/gtk-3-examples.install.in: Install gtk3-widget-factory demo
++    application.
++  * Stop building static libraries which require a full separate build and
++    appear to be unused.
++  * Enable colord support for color-managed printing. Keep it disabled for the
++    udeb build.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 07 Mar 2012 01:16:05 +0100
++
++gtk+3.0 (3.2.3-1) unstable; urgency=low
++
++  * New upstream release.
++    - Fixes segfault on arrow keypress in empty GtkIconView. Closes: #638704
++    - Fixes a11y related crash in treeview. Closes: #652073
++    - Fixes mouse grabbing when clicking resize grip. Closes: #630972
++  * Update patches:
++    - Drop 000git_gtk_tree_view_get_tooltip_context_annotation.patch, applied
++      upstream.
++    - Drop 080_filechooserdefault-Don-t-unref-value-twice.patch, applied
++      upstream.
++    - Refresh 017_no_offscreen_device_grabbing.patch,
++      042_treeview_single-focus.patch and 043_notebook_scroll.patch.
++  * Change section of gir1.2-gtk-3.0 to introspection.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 20 Dec 2011 18:42:32 +0100
++
++gtk+3.0 (3.2.2-3) unstable; urgency=low
++
++  [ Martin Pitt ]
++  * Add 000git_gtk_tree_view_get_tooltip_context_annotation.patch: Fix
++    gtk_tree_view_get_tooltip_context() transfer annotation, causing crashes
++    when using this method from Python.
++  * Add 016_no_offscreen_widgets_grabbing.patch: Widgets inside
++    GtkOffscreenWindow seem like they should not be allowed to do
++    grab the mouse or whatever, as this can deactivate open menus.
++    (LP: #512427, GNOME #607668)
++  * Add 017_no_offscreen_device_grabbing.patch: Do not allow devices in an
++    offscreen hierarchy to take grabs. (LP: #804009, GNOME #658563)
++  * Add 018_gdkenumtypes.c_location.patch: Always generate gdk/gdkenumtypes.c
++    in the source tree, and fix path in the introspection sources. With this,
++    gdkenumtypes.c is correctly included with separate build trees, too.  This
++    fixes missing GTypes in the .gir when using a separate build tree.
++    (LP: #769256, GNOME #647729)
++  * debian/rules: Bump SHVER to 3.1.90.
++  * Build for multiarch. Adapted Steve Langasek's changes to Ubuntu's gtk+2.0
++    package:
++    - debian/control.in: Bump build dependencies to multiarch aware versions.
++    - debian/control.in: Add Multi-Arch: and necessary Pre-Depends: fields.
++      (libraries/-dbg are "same", -doc/-bin are "foreign").
++    - debian/rules: Use multiarch LIBDIR.
++    - debian/libgail-3-dev.install, debian/libgail-3-0.install: Rename to
++      *.in, and use @LIBDIR@ instead of hardcoded usr/lib.
++    - debian/gir1.2-gtk-3.0.install.in: Use @LIBDIR@.
++    - debian/libgtk-3-0.triggers.in, debian/libgtk-3-0.postinst.in,
++      debian/rules: Also trigger on changes to the fallback non-multiarch
++      module directory, which is now called @OLD_MODULES_BASE_PATH@.
++    - Add 061_multiarch_module_fallback.patch: Fall back to the hard-coded
++      pre-multiarch module directory when searching for modules. This
++      maintains compatibility with packages installing modules to
++      the old directories.
++
++  [ Josselin Mouette ]
++  * Break murrine-themes (same reason as gnome-themes-standard).
++  * Move /etc/gtk-3.0 to libgtk-3-common.
++  * Add appropriate Breaks/Replaces to handle it.
++  * Remove gtk-query-immodules-3.0 from libgtk-3-bin since it is 
++    clearly not Multi-Arch compatible. It should not be needed anyway, 
++    everything is handled by triggers from the private directory.
++  * Remove incorrect M-A: same statement for the debug package.
++  * Make libgtk-3-bin arch-any, thanks Rico for noticing.
++
++  [ Michael Biebl ]
++  * debian/libgtk-3-0.postinst.in: If the non-multiarch immodules directory
++    does not exist or is empty handle this case more gracefully and don't
++    print an error message.
++  * debian/patches/080_filechooserdefault-Don-t-unref-value-twice.patch: Fix
++    incorrect ref counting which could lead to a crash in the filechooser.
++    Closes: #650223
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 30 Nov 2011 00:25:29 +0100
++
++gtk+3.0 (3.2.2-2) unstable; urgency=low
++
++  * Upload to unstable.
++  * debian/control.in:
++    - Add Breaks against gnome-themes-standard (<< 3.2) due to the CSS theming
++      related changes. Closes: #649203
++  * Fix broken symlinks in /usr/share/doc. Closes: #647466
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 19 Nov 2011 00:01:03 +0100
++
++gtk+3.0 (3.2.2-1) experimental; urgency=low
++
++  * New upstream release.
++  * Refresh patches.
++
++ -- Michael Biebl <biebl@debian.org>  Mon, 14 Nov 2011 00:07:56 +0100
++
++gtk+3.0 (3.2.1-2) experimental; urgency=low
++
++  * debian/control.in:
++    - Move gtk-doc-tools from Build-Depends-Indep to Build-Depends as it is
++      required by autoreconf. Also bump it to (>= 1.11).
++
++ -- Michael Biebl <biebl@debian.org>  Sat, 22 Oct 2011 00:30:44 +0200
++
++gtk+3.0 (3.2.1-1) experimental; urgency=low
++
++  [ Sjoerd Simons ]
++  * New upstream release
++  * debian/control.in: Update build-depends
++  * debian/rules: Bump libgail SHVER depends
++  * d/p/002_static-linking-dont-build-perf.patch: Removed, fixed upstream
++  * d/p/030_xim-modules.patch: Removed, fixed upstream
++  * d/p/045_trayicon-visual.patch: Removed, fixed upstream
++  * d/p/003_gdk.pc_privates.patch: Refreshed
++  * d/p/043_notebook_scroll.patch: Refreshed
++  * d/p/044_tracker_fts.patch: Refreshed
++  * debian/rules: Enable gtk-doc build with the shared build
++
++  [ Michael Biebl ]
++  * debian/watch:
++    - Track .xz tarballs.
++  * debian/control.in:
++    - Set pkg-gnome-maintainers@lists.alioth.debian.org as Maintainer.
++    - Instead of depending on lynx | www-browser, make the -doc packages
++      suggest devhelp.
++
++  [ Sjoerd Simons ]
++  * debian/libgtk-3-0.symbols: Update symbols
++  * Remove libgail-3-common package. Modules have been integrated directly into
++    Gtk
++  * debian/patches/70-Fix-document-generation-in-out-of-tree-builds.patch:
++    + Added, fix documentation when build out of tree
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Fri, 21 Oct 2011 19:36:06 +0200
++
++gtk+3.0 (3.0.12-3) unstable; urgency=low
++
++  * 030_xim-modules.patch: stolen from upstream git. Fix the behavior of 
++    XIM modules. Closes: #633720.
++  * 043_notebook_scroll.patch: handle a few more widgets to avoid 
++    alt+scroll being intercepted by ranges, spin buttons, combo boxes…
++
++ -- Josselin Mouette <joss@debian.org>  Thu, 08 Sep 2011 13:01:03 +0200
++
++gtk+3.0 (3.0.12-2) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * Tighten dependencies on libgtk-3-common. Closes: #636766.
++
++  [ Michael Biebl ]
++  * debian/patches/045_trayicon-visual.patch: Fix assertion in trayicon-x11
++    when visual is not available. Thanks to Vincent Bernat for the patch.
++    Closes: #637067
++  * debian/libgail-3-0.symbols: Remove trailing empty line which confuses
++    dpkg-gensymbols.
++  * Bump debhelper compatibility level to 8.
++
++ -- Michael Biebl <biebl@debian.org>  Tue, 30 Aug 2011 01:57:26 +0200
++
++gtk+3.0 (3.0.12-1) unstable; urgency=low
++
++  * New upstream release.
++    - GdkKeymap: Prevent an infinite loop in the non-XKB case.
++      (Closes: #633917)
++  * Stop installing libtool .la files.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 28 Jul 2011 12:45:04 +0200
++
++gtk+3.0 (3.0.11-1) unstable; urgency=low
++
++  * New upstream release.
++    - Fixes infinite-loop in GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER.
++      (Closes: #628457)
++  * debian/patches/044_tracker_fts.patch: Enable Tracker full text search.
++
++ -- Michael Biebl <biebl@debian.org>  Thu, 14 Jul 2011 14:45:24 +0200
++
++gtk+3.0 (3.0.10-1) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * libgtk-3-0.postrm.in: fix badly written test.
++
++  [ Fabian Greffrath ]
++  * Remove leftover diversions from the libgtk3.0-bin package
++    that got replaced by libgtk-3-bin (Closes: #617662 ).
++
++  [ Michael Biebl ]
++  * debian/watch: Switch to .bz2 tarballs.
++  * New upstream release.
++  * Refresh patches.
++  * Bump Standards-Version to 3.9.2. No further changes.
++  * Drop Build-Depends on dpkg-dev (>= 1.13.19). Even lenny has a more recent
++    version.
++  * Update package descriptions.
++  * Drop debian/gruik2devhelp.awk and Build-Depends on gawk, obsolete.
++
++  [ Josselin Mouette ]
++  * 043_notebook_scroll.patch: new patch. Reintroduce tab scrolling in 
++    GtkNotebook, but this time only when Alt is pressed, as recommended 
++    by upstream, and from the whole notebook area.
++  * Drop debhelper 8 requirement so that it can build.
++  * libgtk-3-bin.preinst: only remove libgtk3.0-bin diversions if they 
++    already exist.
++
++ -- Josselin Mouette <joss@debian.org>  Sat, 04 Jun 2011 22:51:06 +0200
++
++gtk+3.0 (3.0.8-1) unstable; urgency=low
++
++  * Make the -dev package depend on the gir package.
++  * New upstream release.
++  * Drop the mimeinfo.cache from the udeb, it’s been moved to
++    gdk-pixbuf.
++  * Upload to unstable; drop check-dist include.
++
++ -- Josselin Mouette <joss@debian.org>  Sun, 10 Apr 2011 18:29:44 +0200
++
++gtk+3.0 (3.0.6-1) experimental; urgency=low
++
++  * New upstream release.
++    + debian/libgtk-3-0.symbols:
++      - Updated.
++  * debian/control.in:
++    + Tighten libatk1.0-dev b-d to make sure we get an Atk-1.0.gir file.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sat, 26 Mar 2011 00:00:41 +0000
++
++gtk+3.0 (3.0.3-1) experimental; urgency=low
++
++  * New upstream release.
++    + debian/control.in:
++      - Bump minimum libpango1.0-dev dependency.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Mon, 14 Mar 2011 23:34:09 +0000
++
++gtk+3.0 (3.0.2-1) experimental; urgency=low
++
++  * New upstream release
++  * debian/patches/080_prevent_invalid_free.patch
++    - Removed. fixed upstream
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Wed, 09 Mar 2011 23:46:48 +0000
++
++gtk+3.0 (3.0.1-2) experimental; urgency=low
++
++  * debian/patches/080_prevent_invalid_free.patch
++    - Added. Prevent invalid free on double/tripple click events (from upstream
++      git)
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Sat, 26 Feb 2011 16:02:13 +0000
++
++gtk+3.0 (3.0.1-1) experimental; urgency=low
++
++  [ Robert Ancell ]
++  * debian/libgtk-3-bin.postrm:
++  * debian/libgtk-3-bin.preinst:
++    - Fix package name used in diversion
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 22 Feb 2011 20:36:55 +0000
++
++gtk+3.0 (3.0.0-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++    + debian/control.in:
++      - Stop building the pixbuf package, it hasn't been ported to the
++        new style API so is useless.
++    + debian/patches/006_reenable_pixbuf_engine.patch:
++      - Removed, no longer necessary.
++    + debian/libgtk3.0-0.symbols:
++      - Updated.
++    + debian/libgtk3.0-dev.install.in,
++      debian/libgtk3.0-dev.manpages,
++      debian/rules:
++      - gtk-builder-convert is gone, stop shipping it.
++
++  [ Robert Ancell ]
++  * New upstream release
++  * Rename binary packages to new so naming
++  * debian/control:
++    - Bump build-depends on libglib2.0-dev, libgdk-pixbuf2.0-dev, libatk1.0-dev,
++      gobject-introspection
++  * debian/libgail-3-0.symbols:
++  * debian/libgtk-3-0.symbols:
++    - Updated
++    - Mark symbols with stable version number
++  * debian/rules:
++    - Bump SHVER
++
++  [ Emilio Pozuelo Monfort ]
++  * Fix some leftovers after the renaming.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sat, 19 Feb 2011 11:40:36 +0000
++
++gtk+3.0 (2.99.2-1) experimental; urgency=low
++
++  * New upstream release.
++    + d/p/0001-stylecontext-Protect-the-cairo-contexts-with-cairo_s.patch
++      d/p/0003-Fixed-assertions-in-gtk_cell_renderer_get_aligned_ar.patch
++      d/p/0002-_gtk_cell_area_set_cell_data_func_with_proxy-set-the.patch
++      - Removed, included upstream.
++    + debian/libgtk3.0-0.symbols:
++      - Updated.
++    + debian/rules:
++      - Bumped the shver.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Thu, 13 Jan 2011 18:36:27 +0000
++
++gtk+3.0 (2.99.1-1) experimental; urgency=low
++
++  [ Robert Ancell ]
++  * debian/control.in:
++    - Bump build-depends on libglib2.0-dev
++  * debian/libgtk3.0-0.symbols:
++    - Updated.
++  * debian/libgtk3.0-dev.install.in
++    - gdkconfig.h no longer distributed
++  * debian/rules:
++    - Bumped the shver.
++  * debian/patches/001_static-linking-dont-query-immodules.patch:
++  * debian/patches/005_support_disabling_x11_extensions.patch:
++  * debian/patches/003_gdk.pc_privates.patch:
++  * debian/patches/070_mandatory-relibtoolize.patch:
++  * debian/patches/041_ia32-libs.patch:
++  * debian/patches/002_static-linking-dont-build-perf.patch:
++  * debian/patches/004_git_add_missing_include.patch:
++  * debian/patches/042_treeview_single-focus.patch:
++    - Refreshed.
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream release.
++    + debian/rules:
++      - Pass --enable-xinput instead of --with-xinput=yes.
++      - Bump the shver.
++    + debian/patches/004_git_add_missing_include.patch,
++      debian/patches/005_support_disabling_x11_extensions.patch,
++      debian/patches/007-continue-to-install-gdk-TARGET-3.0.pc.patch:
++      - Removed, included upstream.
++    + debian/patches/061_use_pdf_as_default_printing_standard.patch:
++      - Removed. The cups backend part has been fixed upstream in a (better)
++        different way, and the lpr part doesn't make sense as we don't know
++        if the job will be sent to CUPS or not.
++    + debian/patches/070_mandatory-relibtoolize.patch,
++      debian/rules:
++      - Switch to dh-autoreconf.
++    + debian/patches/*:
++      - Refreshed.
++    + debian/libgtk3.0-0.symbols,
++      debian/libgail3.0-0.symbols:
++      - Updated.
++    + debian/libgtk3.0-*.{install.in,manpages},
++      debian/rules:
++      - Install manpages and binaries with the -3.0 suffix as upstream has
++        stopped doing so.
++  * Switch to CDBS' flavours system.
++  * debian/rules:
++    + Remove hack to build on PowerPC64. That port is dead, and if it's
++      ever back, hopefully we won't need to workaround toolchain issues.
++    + Pass -O1 to the linker so dynamic loading is faster.
++  * d/patches/0001-stylecontext-Protect-the-cairo-contexts-with-cairo_s.patch
++    d/patches/0003-Fixed-assertions-in-gtk_cell_renderer_get_aligned_ar.patch
++    d/patches/0002-_gtk_cell_area_set_cell_data_func_with_proxy-set-the.patch
++    + Backport patches from upstream git. They fix rendering issues and
++      assertion failures.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Wed, 12 Jan 2011 22:06:17 +0000
++
++gtk+3.0 (2.91.6-1) experimental; urgency=low
++
++  * New upstream release.
++    + debian/patches/004_git_dont_setup_timeout_twice.patch:
++      - Removed, included upstream.
++    + debian/patches/004_git_add_missing_include.patch:
++      - New patch from upstream git, add a missing include that
++        otherwise caused the build to fail when disabling X extensions.
++    + debian/patches/006_reenable_pixbuf_engine.patch:
++      - New patch. Build the pixbuf engine even if it hasn't been ported to
++        the new GtkThemingEngine API.
++    + debian/patches/*:
++      - Refreshed.
++    + debian/libgtk3.0-0.symbols:
++      - Updated.
++      - Add Build-Depends-Package.
++    + debian/rules:
++      - Bumped the shver.
++      - Disable silent builds.
++  * Let gir1.2-gtk-3.0 replace gir1.0-gtk-3.0.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sat, 18 Dec 2010 16:00:23 +0000
++
++gtk+3.0 (2.91.5-2) experimental; urgency=low
++
++  * debian/control.in,
++    debian/rules:
++    + Remove the chrpath hack, it's been fixed in libtool.
++  * Update to the new gir policy:
++    - Rename gir1.0-gtk-3.0 to gir1.2-gtk-3.0.
++    - Bump the gobject-introspection build dependency.
++    - Build depend on gir1.2 packages.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Sun, 12 Dec 2010 16:03:02 +0100
++
++gtk+3.0 (2.91.5-1) experimental; urgency=low
++
++  * New upstream release.
++    + debian/patches/004_gtk_gir_build.patch:
++      - Removed, fixed upstream.
++    + debian/patches/004_git_dont_setup_timeout_twice.patch:
++      - New patch from upstream git, don't setup a timeout in
++        gtkspinners twice.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated.
++    + debian/libgtk3.0-0.symbols:
++      - Updated.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 30 Nov 2010 23:13:17 +0100
++
++gtk+3.0 (2.91.4-2) experimental; urgency=low
++
++  [ Laurent Bigonville ]
++  * debian/watch: Bump version to 3
++
++  [ Emilio Pozuelo Monfort ]
++  * Add gir1.0-gtk-3.0, based on the gir1.0-gtk-2.0 Ubuntu patch.
++  * debian/patches/004_gtk_gir_build.patch:
++    + Fix the introspection build.
++  * debian/patches/070_mandatory-relibtoolize.patch:
++    + Updated.
++
++  [ Sjoerd Simons ]
++  * Update build-depends to properly depend on -dev packages with .gir
++  * Target experimental
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Sat, 27 Nov 2010 17:01:51 +0000
++
++gtk+3.0 (2.91.4-1) experimental; urgency=low
++
++  * debian/libgtk3.0-common.install:
++    + Ship the GSettings schemas.
++  * New upstream release.
++    + debian/control.in:
++      - Bump glib2.0 build requirement.
++    + debian/patches/*:
++      - Refreshed.
++  * debian/libgtk3.0-bin.{preinst,postrm}:
++    + Add #DEBHELPER# token. Make errors fatal with set -e.
++  * debian/rules:
++    + Exclude .in files from the dh_installdocs call, so that
++      it picks the real .doc-base files and not the .in ones.
++  * debian/libgtk3.0-doc.doc-base.gdk{,.in}:
++    + Don't hardcode the package name, generate it at build time.
++  * debian/libgail3.0-doc.doc-base.gail-reference:
++    + Fix paths to the manual.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 16 Nov 2010 06:30:33 +0100
++
++gtk+3.0 (2.91.3-1) experimental; urgency=low
++
++  [ Sebastian Dröge ]
++  * Initial GTK+ 3 packaging.
++
++  [ Rico Tzschichholz ]
++  * New upstream development release
++  * some fixes and changes
++
++  [ Sjoerd Simons ]
++  * New upstream release (2.91.3)
++  * debian/patches/009_gtk-export-filechooser.patch:
++    + Removed. Doesn't apply anymore and was only needed for hildon
++  * Update build-depends to cairo >= 1.10.0 and glib-2.0 >= 2.27.0
++  * debian/patches/070_mandatory-relibtoolize.patch
++    + Updated
++  * Update the faq/tutorial index files names
++  * debian/control.in:
++    + Add dependency on docbook-utils for db2html to generate the documentation
++      html during build
++  * Update the symbols file
++  * Version various document index files so they don't conflict with their
++    gtk2 flavour
++  * debian/libgtk3-bin.preinst, debian/libgtk3-bin.postrm:
++    + Divert gtk+2.0's update-icon-caches. The format remained the same so this
++      is safe to do
++  * debian/ruels, libtk3.0-doc.*: Tutorial and FAQ have been removed from the
++    gtk source as they were updated, stop trying to install them
++  * debian/libgail3.0-doc.doc-base.gail-reference
++    + Rename the doc-base to gail-reference-3.0 to not conflict with
++      libgail3.0-doc
++  * debian/copyright updated/rewritten
++
++ -- Sjoerd Simons <sjoerd@debian.org>  Sun, 07 Nov 2010 20:45:46 +0000
++
++gtk+2.0 (2.21.5-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/control.in,
++      debian/rules,
++      debian/*:
++      - Remove all mentions of gdk-pixbuf and (build-) depend on it.
++    + debian/libgtk2.0-0.postinst.in,
++      debian/libgtk2.0-0.postrm.in,
++      debian/libgtk2.0-0.triggers.in,
++      debian/dh_gtkmodules.in:
++      - Handle immodules by triggers and deprecate dh_gtkmodules.
++    + debian/patches/*:
++      - Refreshed.
++      - Remove gdk-pixbuf and immodule patches.
++    + debian/rules,
++      debian/libgtk2.0-0.symbols:
++      - Update for new API symbols.
++    + debian/update-gdkpixbuf-loaders*,
++      debian/update-gtk-immodules*:
++      - Drop module update scripts which are no-ops since 2.10.1.
++
++ -- Sebastian Dröge <slomo@debian.org>  Thu, 22 Jul 2010 21:01:09 +0200
++
++gtk+2.0 (2.21.2-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/rules,
++      debian/libgtk2.0-0.symbols:
++      - Update for new API symbols.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/control.in:
++      - Update GLib (build-) dependency to >= 2.25.8.
++
++ -- Sebastian Dröge <slomo@debian.org>  Fri, 11 Jun 2010 12:19:30 +0200
++
++gtk+2.0 (2.21.1-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/rules,
++      debian/libgtk2.0-0.symbols:
++      - Update for new API symbols.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Mon, 31 May 2010 09:45:32 +0200
++
++gtk+2.0 (2.21.0-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/rules,
++      debian/libgtk2.0-0.symbols:
++      - Update for new API symbols.
++    + debian/patches/002_static-linking-dont-build-perf.patch:
++      - Refreshed.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Sat, 08 May 2010 08:20:19 +0200
++
++gtk+2.0 (2.20.1-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/006_support-for-tracker-0.8-stable-releases.patch:
++      - Dropped, merged upstream.
++    + debian/patches/003_gdk.pc_privates.patch:
++      - Updated to apply cleanly again.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Mon, 03 May 2010 07:26:14 +0200
++
++gtk+2.0 (2.20.0-3) unstable; urgency=low
++
++  * debian/control.in
++    - Add Vcs-* fields.
++    - Add Homepage field.
++  * debian/patches/006_support-for-tracker-0.8-stable-releases.patch
++    - Add support for tracker 0.8 stable and future 0.9 releases. Also add
++      support for loading the search engines on demand until they are actually
++      needed. Patch is backported from upstream Git branch "tracker-0.8".
++  * Refresh patches to apply cleanly.
++
++ -- Michael Biebl <biebl@debian.org>  Wed, 14 Apr 2010 20:39:28 +0200
++
++gtk+2.0 (2.20.0-2) unstable; urgency=low
++
++  * Upload to unstable.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 31 Mar 2010 09:16:00 +0200
++
++gtk+2.0 (2.20.0-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * debian/rules,
++    debian/control.in,
++    debian/libgtk-directfb-2.0-0.*,
++    debian/libgtk-directfb-2.0-dev.*,
++    debian/patches/090_directfb-map-virtual-modifiers.patch,
++    debian/patches/series:
++    - Drop the DirectFB enabled GTK+ packages. They were needed for the
++      graphical installer but it's now switching to X11 so we don't need
++      them anymore.
++  * debian/rules:
++    - Move --with-xinput=yes and --with-libjasper to configure_flags
++      since they are common to all of our flavours.
++
++  [ Sebastian Dröge ]
++  * New upstream stable release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.20.0 for the new API to force dependencies
++        on the stable version.
++    + debian/control.in:
++      - Update GLib build dependency and tighten some -dev package dependencies.
++    + debian/patches/003_gdk.pc_privates.patch:
++      - Updated to apply cleanly again.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 23 Mar 2010 15:55:56 +0100
++
++gtk+2.0 (2.19.7-3) experimental; urgency=low
++
++  * debian/control.in:
++    - Build depend on xsltproc, needed to generate the mime cache.
++      It was brought indirectly by gtk-doc-tools, but that's on
++      Build-Depends-Indep which isn't enough.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 16 Mar 2010 15:30:32 +0100
++
++gtk+2.0 (2.19.7-2) experimental; urgency=low
++
++  [ Cyril Brulebois ]
++  * Switch udeb from DirectFB to Xlib to prepare the move to an X11-based
++    graphical installer. Closes: #573872.
++     - Replace libgtk-directfb-2.0-0-udeb with libgtk-x11-udeb in control
++       file.
++     - Update description accordingly.
++     - Update .install.in accordingly, using the “shared_udeb” flavour,
++       based on the “shared” one, but with a few X11 extensions disabled.
++     - Update package name and file paths accordingly in rules file.
++  * Version/Bump some B-D to make sure the udeb gets proper dependencies
++    on the recently reworked/added udebs:
++     - libx11-dev
++     - libxcursor-dev
++     - libxext-dev
++     - libxi-dev
++     - libxinerama-dev
++     - libxrender-dev
++  * Add one patch to make it possible to disable X11 extensions, and
++    refresh the other one accordingly:
++     - 005_support_disabling_x11_extensions.patch
++     - 070_mandatory-relibtoolize.patch
++  * Ship a minimal MIME database in the udeb, since the loaders mechanism
++    isn’t sufficient to get proper PNG support:
++     - Add shared-mime-info to Build-Depends to ensure that the
++       update-mime-database tool is available at build-time, as well as
++       the source freedesktop.org.xml file.
++     - Add debian/keep-png-only.xsl to only keep the mime-type matching
++       type="image/png". Matching with namespaces is tricky, see the
++       comments in the XSL file for the details.
++     - Build a MIME cache, and only ship the resulting mime.cache file
++       under /usr/share/mime in the udeb.
++     - While this is dirty, that should do the trick until it is needed
++       for shared-mime-info to ship its own udeb.
++
++  [ Emilio Pozuelo Monfort ]
++  * Rename the udeb to libgtk2.0-0-udeb.
++  * Standards-Version is 3.8.4, no changes needed.
++
++ -- Emilio Pozuelo Monfort <pochu@debian.org>  Tue, 16 Mar 2010 01:01:48 +0100
++
++gtk+2.0 (2.19.7-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Fri, 12 Mar 2010 15:59:27 +0100
++
++gtk+2.0 (2.19.6-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.6 for the new API and add new symbols.
++  * debian/patches/090_directfb-map-virtual-modifiers.patch:
++    + Update to add just another stub to fix the build.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 24 Feb 2010 10:01:31 +0100
++
++gtk+2.0 (2.19.5-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.5 for the new API and add new symbols.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 10 Feb 2010 09:38:52 +0100
++
++gtk+2.0 (2.19.4-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.4 for the new API and add new symbols.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 26 Jan 2010 08:25:41 +0100
++
++gtk+2.0 (2.19.3-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.3 for the new API and add new symbols.
++    + debian/patches/091_size_allocate_crash.patch:
++      - Dropped, merged upstream.
++
++ -- Sebastian Dröge <slomo@debian.org>  Mon, 11 Jan 2010 20:36:25 +0100
++
++gtk+2.0 (2.19.2-2) experimental; urgency=low
++
++  * debian/patches/091_size_allocate_crash.patch:
++    + Patch from upstream GIT to fix a crash on size allocations.
++      Thanks to Sebastien Bacher.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 06 Jan 2010 11:42:07 +0100
++
++gtk+2.0 (2.19.2-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * debian/patches/000_gtk+-2.0.6-exportsymbols.patch:
++    + Removed, it wasn't being applied and hasn't been relevant for a
++      long time.
++
++  [ Sebastian Dröge ]
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.2 for the new API and add new symbols.
++  * debian/patches/090_directfb-map-virtual-modifiers.patch:
++    + Fix compilation of the DirectFB backend, patch adapted from
++      upstream commit to fix the Quartz backend.
++
++ -- Sebastian Dröge <slomo@debian.org>  Mon, 04 Jan 2010 10:43:48 +0100
++
++gtk+2.0 (2.19.1-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/rules:
++      - Include check-dist.mk to prevent accidental uploads to unstable.
++    + debian/control.in:
++      - Update ATK build dependency.
++    + debian/rules,
++      debian/libgtk-directfb-2.0-0.symbols,
++      debian/libgtk2.0-0.symbols:
++      - Update SHVER to 2.19.1 for the new API and add new symbols.
++    + debian/patches/009_gtk-export-filechooser.patch,
++      debian/patches/021_loader-files-d.patch:
++      - Updated to apply cleanly again.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Dec 2009 15:28:10 +0100
++
++gtk+2.0 (2.18.4-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + debian/patches/091_dont-omit-gtk-icon-size-dialog.patch,
++      debian/patches/092_gtk-image-size-allocation.patch:
++      - Dropped, merged upstream.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 01 Dec 2009 07:46:18 +0100
++
++gtk+2.0 (2.18.3-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++  * debian/patches/091_dont-omit-gtk-icon-size-dialog.patch:
++    + Patch from upstream GIT to not omit GTk_ICON_SIZE_DIALOG
++      when searching for an appropiate icon size.
++  * debian/patches/092_gtk-image-size-allocation.patch:
++    + Patch from upstream GIT to fix size allocation of GtkImage.
++
++ -- Sebastian Dröge <slomo@debian.org>  Sun, 18 Oct 2009 13:23:44 +0200
++
++gtk+2.0 (2.18.2-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + 090_directfb-backend-compilation-fix.patch:
++      - Dropped, merged upstream.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 06 Oct 2009 07:41:45 +0200
++
++gtk+2.0 (2.18.1-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + 090_directfb-backend-compilation-fix.patch:
++      - Fix compilation of the DirectFB backend, see
++        https://bugzilla.gnome.org/show_bug.cgi?id=596959
++
++ -- Sebastian Dröge <slomo@debian.org>  Thu, 01 Oct 2009 07:20:43 +0200
++
++gtk+2.0 (2.18.0-1) unstable; urgency=low
++
++  * New upstream stable release:
++    + debian/rules,
++      debian/*.symbols:
++      - Updated for the new version. 
++    + debian/patches/005_gdk_directfb_window_new.patch:
++      - Dropped, merged upstream.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 23 Sep 2009 06:36:41 +0200
++
++gtk+2.0 (2.17.11-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + debian/rules,
++      debian/*.symbols:
++      - Updated for the new version. 
++
++ -- Sebastian Dröge <slomo@debian.org>  Sat, 05 Sep 2009 07:16:24 +0200
++
++gtk+2.0 (2.17.10-1) experimental; urgency=low
++
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + debian/rules,
++      debian/*.symbols:
++      - Updated for the new version. 
++  * -
++
++ -- Sebastian Dröge <slomo@debian.org>  Sat, 05 Sep 2009 07:16:21 +0200
++
++gtk+2.0 (2.17.9-1) experimental; urgency=low
++
++  [ Josselin Mouette ]
++  * Clean up the .la files in all -dev packages, not only in the main 
++    one.
++
++  [ Sebastian Dröge ]
++  * New upstream development release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Updated for the new version.
++    + debian/rules,
++      debian/*.symbols:
++      - Updated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 25 Aug 2009 18:37:11 +0200
++
++gtk+2.0 (2.17.8-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream development release.
++    - Handle printers needing authentication. Closes: #499759.
++    - Update libglib2.0-dev requirement.
++  * debian/watch:
++    - Don't uupdate.
++  * debian/rules:
++    - Configure with --with-libjasper, it's disabled by default now.
++  * debian/control.in:
++    - Remove conflicts and replaces no longer needed for packages in stable.
++    - Standards-Version is 3.8.3, no changes needed.
++  * debian/patches/005_xpmico.patch:
++    - Removed, this check is not needed as HeaderSize can't overflow because
++      IconCount will be at most 16 bits, and that multiplied by 16 is not
++      enough to overflow an integer. (Checked with upstream)
++  * debian/patches/001_static-linking-dont-query-immodules.patch,
++    debian/patches/002_static-linking-dont-build-perf.patch:
++    - Add headers.
++  * debian/patches/005_gdk_directfb_window_new.patch:
++    - New patch. Readd gdk_directfb_window_new(), which is exported in the
++      public API and was removed by mistake.
++  * debian/patches/*
++    - Refreshed.
++  * debian/libgtk-directfb-2.0-0.symbols,
++    debian/libgtk2.0-0.symbols:
++    - Updated for the new symbols. There's one symbol removed from the
++      directfb backend, gdk_display_pointer_grab(). It wasn't exported in
++      the headers, nor was supposed to be public, so if something out there
++      is using it, they are doing it wrong.
++  * debian/rules:
++    - Remove a trailing backslash that prevented -c4 to be passed to
++      dh_makeshlibs.
++
++ -- Josselin Mouette <joss@debian.org>  Thu, 20 Aug 2009 18:29:04 +0200
++
++gtk+2.0 (2.16.5-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 21 Jul 2009 08:09:50 +0200
++
++gtk+2.0 (2.16.4-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Thu, 02 Jul 2009 06:09:04 +0200
++
++gtk+2.0 (2.16.3-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++  * debian/control.in:
++    + Update Standards-Version to 3.8.2.
++
++ -- Sebastian Dröge <slomo@debian.org>  Mon, 29 Jun 2009 11:39:01 +0200
++
++gtk+2.0 (2.16.2-1) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Fix string concat in dh_gtkmodules; thanks Kanru Chen; closes: #528782.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + debian/patches/091_workaround_no_gtk_init_incorrect_display.patch:
++      - Dropped, merged upstream.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/*.install:
++      - Install the manpages from their source locations as
++        they're not installed anymore for some reason.
++  * debian/control.in:
++    + Updated Standards-Version to 3.8.1, no additional changes needed.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 02 Jun 2009 07:44:43 +0200
++
++gtk+2.0 (2.16.1-2) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Fix test-print-backend configure flag addition.
++  * Set opt_configure_flags to $(shared_configure_flags) in the sample opt
++    flavor for armel and move the opt flavor and check flavors below the
++    definition of other flags.
++
++ -- Josselin Mouette <joss@debian.org>  Thu, 16 Apr 2009 18:08:02 +0200
++
++gtk+2.0 (2.16.1-1) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Clarify dh_gtkmodules doc slightly.
++
++  [ Gustavo Noronha Silva ]
++  * debian/series:
++  - forgot to add 022_disable-viqr-im-for-vi-locale.patch and
++    061_use_pdf_as_default_printing_standard.patch to the series file
++    (thanks to seb128 for noticing)
++  * debian/control.in:
++  - sync Replaces with ubuntu's package for easier migration from Ubuntu
++    to Debian ;)
++
++  [ Josselin Mouette ]
++  * Make update-icon-caches always generate the cache, now that dh_icons
++    is widespread.
++
++  [ Sebastian Dröge ]
++  * debian/libgtk-directfb-2.0-0.symbols,
++    debian/libgtk2.0-0.symbols,
++    debian/libgail18.symbols,
++    debian/rules:
++    + Add symbol files for GTK.
++
++  [ Loic Minier ]
++  * Merge the following changes by Emmet Hikory:
++
++  [ Emmet Hikory ]
++  * Port optimised flavor work by Loic Minier from pango1.0:
++    - Rework flavor-specific vars.
++      + Introduce $(flavor) which is set to $* to clarify implicit rules
++      + Rename common_configure_flags to configure_flags
++      + Introduce the flavor_get macro to use a flavor specific override or
++        fallback to the common defaults for make vars.
++      + Use $(call flavor_get, ) to retrieve configure_flags, CFLAGS, and
++        LDFLAGS allowing to override these per flavor.
++    - Add support for an optimised pass, implemented as a flavor
++      + Define a default OPTLIBDIR and replace it in the sed foo for %.in
++        files; this is like LIBDIR, but with some hwcaps extension, e.g.
++        usr/lib/vfp.
++      + Add vars to build an optimised vfp flavour for armel with
++        additional CFLAGS
++      + Add the "opt" special flavor to flavors to run the testuites on,
++        CHECK_FLAVORS
++      + Also sed and append %.opt after %.in when generating $ files from
++        %.in; the %.opt file is optional and only included if the opt flavor
++        is included.
++      + Add a debian/libgtk2.0-0.install.opt which lists files from the
++        optimised flavor to install in libgtk2.0-0.
++      + Add a debian/libgail18.install.opt which lists files from the
++        optimised flavor to install in libgail18.
++
++  [ Loic Minier ]
++  * Only pass -j to the main make call, do not parallelize the debian/rules
++    themselves as it seems to be racy for an unidentified reason which is hard
++    to reproduce.
++  * Merge patch below from Ubuntu.
++
++  [ Sebastien Bacher ]
++  * debian/patches/093_git_change_fix_focus_issue.patch:
++    - upstream git change to fix a timestamp issue leading to get nautilus.
++      dialog opening sometime unfocussed for example (lp: #333366)
++
++  [ Loic Minier ]
++  * Build-dep on autotools-dev for the config.guess / .sub updates to work.
++  * Drop duplicate Section/Priority fields.
++  * ppc64: use DEB_HOST_GNU_CPU instead of BUILD; drop TODOs, the current
++    implementation is correct.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/patches/072_workaround_directfb_build.patch,
++      debian/patches/092_fix_printtest_include.patch,
++      debian/patches/093_git_change_fix_focus_issue.patch:
++      - Dropped, merged upstream.
++
++ -- Sebastian Dröge <slomo@debian.org>  Sun, 12 Apr 2009 11:21:58 +0200
++
++gtk+2.0 (2.16.0-1) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * Let libgtk2.0-0 suggest gvfs, as it's needed for some APIs like
++    gtk_show_uri.
++
++  [ Josselin Mouette ]
++  * libgtk2.0-0 depends on shared-mime-info. Closes: #518090.
++  * Add dependent doc packages to b-d-i to ensure proper xrefs.
++
++  [ Loic Minier ]
++  * Clean up dh_gtkmodules output:
++    - Demote warnings when skipping non-existent GtkPixbuf loaders and Gtk IM
++      modules dirs to verbose_print(); use -v to see them.
++    - Always print the number of GdkPixbuf loaders and Gtk IM modules found in
++      each package.
++
++  [ Emilio Pozuelo Monfort ]
++  * New upstream stable release.
++    - Bump shlibs.
++    - debian/patches/070_mandatory-relibtoolize.patch: regenerated.
++  * Ship the gtk-builder-convert manpage in libgtk2.0-dev.
++  * Section of dbg packages is debug.
++
++ -- Emilio Pozuelo Monfort <pochu@ubuntu.com>  Sun, 15 Mar 2009 20:10:34 +0100
++
++gtk+2.0 (2.15.5-2) experimental; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * debian/control.in:
++  - bump libglib2.0-dev build-dep requirement to >= 2.19.7
++  - bump libxrandr-dev build-dep requirement to >= 1:1.2.99
++  - also bump libgtk2.0-dev dependecies accordingly
++    (Closes: #518078)
++
++  [ Gustavo Noronha Silva ]
++  * 042_treeview_single-focus.patch:
++  - removed FIXME note, since it was explained to me that the patch is
++    still necessary
++  * debian/rules:
++  - bumped SHVER to 2.15.5
++
++  [ Imported from Ubuntu ]
++  * 022_disable-viqr-im-for-vi-locale.patch,
++    061_use_pdf_as_default_printing_standard.patch:
++  - for the rationale for the PDF for printing one see:
++    https://wiki.ubuntu.com/PDFasStandardPrintJobFormat
++
++ -- Gustavo Noronha Silva <kov@debian.org>  Tue, 03 Mar 2009 21:58:20 -0300
++
++gtk+2.0 (2.15.5-1) experimental; urgency=low
++
++  * New upstream development release
++  * 070_mandatory-relibtoolize.patch: refreshed.
++  * 031_directfb_dead-keys.patch, 032_gdkwindowimpl_directfb.patch,
++    033_directfb_client-message.patch, 034_directfb_memleak.patch,
++    071_jasper_link_fix.patch, 092_fix_printtest_include.patch:
++  - dropped; already featured in this release
++  * 030_gtkentry_password-char-circle.patch:
++  - dropped; upstream provides a different solution to setting the default
++    invisible char now, that takes the font being used into consideration
++  * 003_gdk.pc_privates.patch:
++  - refreshed
++
++ -- Gustavo Noronha Silva <kov@debian.org>  Mon, 02 Mar 2009 22:01:03 -0300
++
++gtk+2.0 (2.14.7-3) experimental; urgency=low
++
++  * 032_gdkwindowimpl_directfb.patch: new version of the patch. This 
++    should restore the basic functionality of the backend, but there is 
++    still work underway.
++  * 033_directfb_client-message.patch: stolen from the upstream SVN. Fix 
++    the DirectFB client_message API.
++  * 034_directfb_memleak.patch: stolen from the upstream SVN. Fix memory 
++    leak in the DirectFB code.
++  * Require DirectFB 1.0.0 for the 034 patch.
++  * 070_mandatory-relibtoolize.patch: updated accordingly.
++
++ -- Josselin Mouette <joss@debian.org>  Sat, 21 Feb 2009 14:59:45 +0100
++
++gtk+2.0 (2.14.7-2) experimental; urgency=low
++
++  * 008_implicit_pointer_conversion_gdkgc_directfb.patch: removed, it’s 
++    obsolete and just defines the same macro a second time.
++  * 007_implicit_pointer_conversion_gdkdrawable_directfb.patch: removed, 
++    it’s not needed anymore with the latest directfb.
++  * 006_proper-directfb-modules.patch: removed from the package, it 
++    won’t be necessary anymore.
++  * 001_static-linking-dont-query-immodules.patch,
++    002_static-linking-dont-build-perf.patch,
++    003_gdk.pc_privates.patch,
++    004_gtk+-ximian-gtk2-filesel-navbutton-5.patch: refreshed.
++  * Remove 071_correct_directfb_declarations.patch, and replace it by 
++    032_gdkwindowimpl_directfb.patch, a patch from Sven Neumann to 
++    (hopefully) fix DirectFB support for GTK+ 2.14.
++
++ -- Josselin Mouette <joss@debian.org>  Tue, 17 Feb 2009 23:17:56 +0100
++
++gtk+2.0 (2.14.7-1) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Don't purge /etc/gtk-2.0/gdk-pixbuf.loaders and /etc/gtk-2.0/gtk.immodules
++    during first configuration.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Thu, 08 Jan 2009 08:06:02 +0100
++
++gtk+2.0 (2.14.5-1) experimental; urgency=low
++
++  [ Josselin Mouette ]
++  * Really install the faq and tutorial files correctly so that the 
++    devhelp file is read.
++  * Update doc-base files accordingly.
++  * gruik2devhelp.awk: new script to generate the devhelp files 
++    automatically for the FAQ and tutorial, based on the HTML doc.
++  * Build-depend on gawk, run the script appropriately.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 25 Nov 2008 11:00:35 +0100
++
++gtk+2.0 (2.14.4-3) experimental; urgency=low
++
++  * libgail*.install: fix installation paths. Closes: #505105.
++  * Do not ship .la files for gail modules.
++  * Generate shlibs for libgail.
++  * Bump shlibs version to 2.14.0.
++  * Do not install libgailutil in libgtk2.0-0.
++  * Do not install gtk libs in libgail-dev.
++  * Rework docs installation.
++  * Add doc links where needed.
++  * Install .devhelp files at the correct places. Closes: #504807.
++  * Bump dependencies for the development package.
++  * Fix dependencies of gail packages.
++  * Don’t install libgail in the udeb.
++  * Stop shipping /usr/lib/pkgconfig/libgtk-directfb-2.0-0/, nobody uses 
++    it.
++  * Remove versioned conflicts with libgail packages.
++  * Remove libgail18.shlibs.
++  * Put debugging symbols of libgail modules in libgail-dbg.
++  * dh_gtkmodules.in: fix a pod2man error.
++  * Disable 006_proper-directfb-modules.patch.
++  * Update 070_mandatory_relibtoolize.patch accordingly.
++
++ -- Josselin Mouette <joss@debian.org>  Tue, 11 Nov 2008 14:44:21 +0100
++
++gtk+2.0 (2.14.4-2) experimental; urgency=low
++
++  * debian/control, debian/rules, debian/libgail*:
++  - split libgail packages
++
++ -- Gustavo Noronha Silva <kov@debian.org>  Wed, 05 Nov 2008 14:54:08 -0200
++
++gtk+2.0 (2.14.4-1) experimental; urgency=low
++
++  [ Gustavo Noronha Silva ]
++  * New upstream release
++  * debian/patches/006_proper-directfb-modules.patch:
++  - refreshed
++  * debian/patches/008_implicit_pointer_conversion_gdkgc_directfb.patch,
++    debian/patches/009_gtk-export-filechooser.patch,
++    debian/patches/020_immodules-files-d.patch,
++    debian/patches/021_loader-files-d.patch,
++  - update borrowed from Ubuntu's package
++  * debian/patches/071_correct_directfb_declarations.patch,
++    debian/patches/072_workaround_directfb_build.patch:
++  - borrowed from ubuntu
++  * debian/patches/033_treeview_resizing.patch,
++    debian/patches/095_gtk-im-module-setting.patch:
++  - removed; fixed upstream
++  * debian/patches/070_mandatory-relibtoolize.patch:
++  - refreshed
++  * debian/control.in:
++  - added libjasper-dev to the Build-Depends, as GTK+ now supports
++    JPEG2000
++  - make GTK+ packages conflict/replace with gail ones, since they are now
++    included in GTK+
++  * debian/patches/092_fix_printtest_include.patch:
++  - new patch, to fix build problem in print test
++  * debian/patches/071_jasper_link_fix.patch:
++  - make gdk-pixbuf-csource link correctly with libjasper
++  * debian/rules, debian/control:
++  - newer libcairo2-dev contains everything needed to build the directfb
++    target, so disable building with the dummy libcairo-directfb2-dev
++  - this makes us have to build depend on libcairo2-dev >= 1.6.4-6.1
++
++  [ Loic Minier ]
++  * Let libgtk2.0-dev recommend debhelper for dh_gtkmodules.
++  * Let libgtk2.0-dev depend on libxml2-utils as it's required for
++    gtk-builder-convert to work and might be relied upon by packages bdeping
++    on libgtk2.0-dev.
++
++  [ Emilio Pozuelo Monfort ]
++  * Update build-dependencies for the new version:
++    - libglib2.0-dev >= 2.17.6
++    - libpango1.0-dev >= 1.20
++    - libatk1.0-dev >= 1.13.0
++    - libcairo2-dev >= 1.6.0
++
++ -- Gustavo Noronha Silva <kov@debian.org>  Wed, 24 Sep 2008 21:38:58 -0300
++
++gtk+2.0 (2.12.11-3) unstable; urgency=low
++
++  * 031_directfb_dead-keys.patch: patch from Jérémy Bobbio to fix dead
++    keys in the DirectFB backend. Closes: #394871.
++  * Now require DirectFB 0.9.26.
++  * 070_mandatory_relibtoolize: updated to match the dependency bump.
++  * 033_treeview_resizing.patch:
++    + Fix crasher introduced by the patch. Closes: #491611.
++    + Add references.
++
++ -- Josselin Mouette <joss@debian.org>  Mon, 21 Jul 2008 15:22:38 +0200
++
++gtk+2.0 (2.12.11-2) unstable; urgency=low
++
++  * 033_treeview_resizing.patch:
++    + Enable again, it was disabled by mistake.
++    + Update to new version provided by Kristian Rietveld.
++      Closes: #471073.
++  * libgtk2.0-doc.doc-base.gtk2-tutorial: fix spelling of GTK+.
++  * *.doc-base.*: fix doc-base sections.
++
++ -- Josselin Mouette <joss@debian.org>  Fri, 18 Jul 2008 14:53:17 +0200
++
++gtk+2.0 (2.12.11-1) unstable; urgency=low
++
++  [ Emilio Pozuelo Monfort ]
++  * Build-depend on libcups2-dev instead of libcupsys2-dev, as cups
++    is transitioning to that new name.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++    + debian/patches/092_openoffice-menus.patch:
++      - Dropped, merged upstream.
++  * debian/control.in:
++    + Updated Standards-Version to 3.8.0, no additional changes needed.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 02 Jul 2008 06:37:51 +0200
++
++gtk+2.0 (2.12.10-2) unstable; urgency=low
++
++  * debian/patches/092_openoffice-menus.patch:
++    + Patch from upstream SVN to fix regression in menu placement
++      in openoffice.org (Closes: #484580).
++
++ -- Sebastian Dröge <slomo@debian.org>  Sat, 07 Jun 2008 10:27:50 +0200
++
++gtk+2.0 (2.12.10-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/009_gtk-export-filechooser.patch:
++      - Updated to apply cleanly again.
++    + debian/patches/031_gtksearchenginetracker_fixes.patch,
++      debian/patches/061_foreign_colormaps.patch,
++      debian/patches/092_implicit-g-fopen.patch:
++      - Dropped, merged upstream.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 04 Jun 2008 08:14:08 +0200
++
++gtk+2.0 (2.12.9-4) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Flip back gdkpixbuf_module_files_d_str after gdkpixbuf_module_file_str in
++    patch 021_loader-files-d; this fixes config of gdk loaders and hence the
++    current ia32-libs implementation; the change in 2.12.0-3 was incorrect in
++    that it flipped the order for im modules and pixbuf loaders, but only im
++    modules had to be flipped; the reason im modules had to be flipped is that
++    the first list of modules wins for im modules as there is some duplicate
++    checking, while in the case of gdk pixbufs, the last file wins.  What
++    remains to be done here is:
++    - biarch support, similar to pango, by loading /usr/lib32 and /usr/lib64
++      stuff before /usr/lib; allows dropping the config file hack in
++      ia32-libs.
++    - loading of modules from multiarch locations (not multiarch); allows
++      dropping the config file hack in ia32-libs.
++  * Bump build-deps and libgtk2.0-dev's deps to ensure we get Xorg dev
++    packages with .pc files, see list below; thanks Anon Sricharoenchai;
++    closes: #370693.
++        libxext-dev >= 1:1.0.1-2, libxinerama-dev >= 1:1.0.1-4.1, libxi-dev >=
++        1:1.0.1-4, libxrandr-dev >= 1:1.0.2-2, libxfixes-dev >= 1:3.0.0-3,
++        libxcomposite-dev >= 1:0.2.0-3, libxdamage-dev >= 1:1.0.1-3.
++
++  [ Josselin Mouette ]
++  * 061_foreign_colormaps.patch: stolen from upstream SVN. Don't call
++    XFreeColormap on foreign colormaps, this causes crashes in e.g.
++    vinagre. Closes: #477199.
++  * Apply multiarch patch by Javier Serrano Polo, replacing all
++    occurrences of usr/lib by $(LIBDIR). Closes: #468100.
++  * rules: don't compress .sgml and .devhelp files.
++
++  [ Loic Minier ]
++  * Fix broken second dh_strip invocation which was not only acting on the
++    udeb but also on binary packages (-s -pUDEB should have been -pUDEB).
++  * Update patch 021_loader-files-d to use PIXBUF_FILES_LIBDIR which is
++    defined in gdk-pixbuf/Makefile.am, similarly to PIXBUF_LIBDIR, and based
++    on the newly defined loaderfilesdir, similar to loaderdir; update
++    070_mandatory-relibtoolize.
++  * New patch, 022_module-files-append-compat-module-files-d, prefer
++    /usr/lib32/gtk-2.0/<gtk-binary-version>/loader-files.d and
++    /immodule-files.d over the /usr/lib/.../*.d pathnames added in
++    020_immodules-files-d and 021_loader-files-d when available; this is
++    useful for ia32-libs support; other modules might need additional support
++    depending on how they are loaded, for example GTK_MODULES will probably
++    still be looked up below libdir, as well as engines, printbackends,
++    filesystems, and generic modules.  See also Ubuntu #205223 and #190227 for
++    examples.
++
++ -- Loic Minier <lool@dooz.org>  Sun, 11 May 2008 00:47:26 +0200
++
++gtk+2.0 (2.12.9-3) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Refresh patches 009_gtk-export-filechooser,
++    030_gtkentry_password-char-circle, 033_treeview_resizing,
++    042_treeview_single-focus, 060_ignore-random-icons
++  * Fix offsets in patch 095_gtk-im-module-setting; thanks Akira TAGOH;
++    closes: #473699.
++
++  [ Sebastian Dröge ]
++  * debian/rules:
++    + Don't include the udeb in the debug package to get a working debug
++      package in case the udeb libraries differ from the real ones.
++
++ -- Sebastian Dröge <slomo@debian.org>  Sat, 12 Apr 2008 14:00:22 +0200
++
++gtk+2.0 (2.12.9-2) unstable; urgency=low
++
++  * debian/patches/092_implicit-g-fopen.patch:
++    + Include glib/gstdio.h for g_fopen to prevent crashes on 64 bit
++      architectures. Thanks to Dann Frazier for the patch (Closes: #470665).
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 12 Mar 2008 18:52:53 +0100
++
++gtk+2.0 (2.12.9-1) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * update-icon-caches: always exit with a 0 code to avoid breaking
++    upgrades when a cache is corrupt. Display a big fat warning instead.
++    Closes: #466083.
++
++  [ Sebastian Dröge ]
++  * New upstream bugfix release:
++    + 092_recentfiles-recursion-fix, dropped merged upstream.
++    + 070_mandatory-relibtoolize.patch, regenerated for the new version.
++  * debian/rules,
++    debian/*.links.in:
++    + Don't ship very old upstream changelogs and news as they're quite large.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 12 Mar 2008 09:41:23 +0100
++
++gtk+2.0 (2.12.8-1) unstable; urgency=low
++
++  * New upstream bugfix release:
++    + debian/patches/040_filechooser_single-click.patch,
++      debian/patches/093_directfb-type-changes.patch,
++      debian/patches/094_directfb-deprecation-fixes.patch:
++      - Dropped, merged upstream.
++    + debian/patches/070_mandatory-relibtoolize.patch:
++      - Regenerated for the new version.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 13 Feb 2008 09:11:50 +0100
++
++gtk+2.0 (2.12.7-1) unstable; urgency=low
++
++  * Fix GNOME casing in gtk-faq and gtk doc base descriptions.
++  * Drop cruft trying to convert /usr/share/doc/libgtk2.0-0 directory into a
++    symlink in libgtk2.0-0.postinst; thanks Sven Joachim; closes: #462057.
++  * New upstream stable release; no API change; bug fixes and translation
++    updates.
++    - Refresh patches 033_treeview_resizing, 042_treeview_single-focus to
++      apply cleanly.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize
++    - New patch, 094_directfb-deprecation-fixes, fixes directfb build with
++      GLib 2.15 deprecation of G_GNUC_FUNCTION in favor of G_STRLOC.
++  * Fix ordering in series.
++  * New patch, 095_gtk-im-module-setting, adds XSETTINGS support for immodule;
++    from GNOME 502446.
++  * New upstream release; no change tarball update.
++
++ -- Loic Minier <lool@dooz.org>  Mon, 21 Jan 2008 18:42:28 +0100
++
++gtk+2.0 (2.12.5-2) unstable; urgency=medium
++
++  * Add ${shlibs:Depends} to libgtk2.0-dev.
++  * Rework /usr/share/doc symlinks completely; closes: #461440.
++    - Use a real directory for all packages using a symlink previously:
++      libgtk2.0-bin, libgtk-directfb-2.0-dev, libgtk2.0-dev, libgtk2.0-0-dbg,
++      libgtk-directfb-2.0-0, libgtk2.0-0; add a preinst snippet removing the
++      path on upgrade if it's a symlink and points to the proper directory;
++      add a prerm snippet removing the path on upgrade (for downgrades) if
++      it's a directory (and not a symlink).
++    - Create symlinks for changelog.gz, NEWS.gz, NEWS.pre-1-0.gz, and
++      README.gz in the /usr/share/doc dirs of these packages as well as for
++      gtk2-engines-pixbuf; add a libgtk2.0-common unversionned dependency for
++      all these packages.
++    - Split dh_installdocs and dh_installchangelogs calls on multiple packages
++      and use one call per package as the intent was to install in all the
++      specified packages; also call dh_installdocs and dh_installchangelogs
++      without any extra file for all packages to install copyright and Debian
++      changelog.
++    - Factor the list of dh_installdocs files in DH_INSTALLDOCS_FILES in
++      rules.
++
++ -- Loic Minier <lool@dooz.org>  Fri, 18 Jan 2008 10:38:43 +0100
++
++gtk+2.0 (2.12.5-1) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Drop the version in the libgtk2.0-0 -> libgtk2.0-common dependency; the
++    translations and gtkrc files aren't critical to libgtk's working and have
++    been compatible with other libgtk versions since years.
++  * New patch, 094_fix-jpeg-loader-big-buffers, fixes spinguard logic for big
++    buffers in the JPEG pixbuf loader; GNOME #494667; from SVN r19135.
++  * New upstream stable releases; no API change; bug fixes and translation
++    updates.
++    - Drop patches 092_notebook-critical-warnings,
++      094_fix-jpeg-loader-big-buffers, merged upstream.
++    - Refresh patches 040_filechooser_single-click, 093_directfb-type-changes
++      to apply cleanly.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++
++  [ Sebastian Dröge ]
++  * Upload to unstable.
++  * Fixes FTBFS caused by not installing the png pixbuf loader correctly
++    (Closes: #461037).
++  * Update Standards-Version to 3.7.3, no additional changes needed.
++  * 092_recentfiles-recursion-fix.patch: Guard against recursion in
++    gtk_recent_files_menu_populate(). Patch from upstream SVN by
++    William Pitcock (Closes: #459393).
++  * Drop duplicated ${misc:Depends} from Recommends.
++
++ -- Sebastian Dröge <slomo@debian.org>  Thu, 17 Jan 2008 10:49:09 +0100
++
++gtk+2.0 (2.12.3-2) unstable; urgency=low
++
++  * 092_notebook-critical-warnings.patch: Fix removal of tab labels to not
++    ref and unref a NULL pointer. Patch from upstream SVN, see BGO #388321.
++  * 093_directfb-type-changes.patch: Define __u32 and __u8 to fix compilation
++    with latest directfb from unstable while still supporting older versions.
++    Patch from BGO #503190.
++
++ -- Sebastian Dröge <slomo@debian.org>  Wed, 12 Dec 2007 05:36:40 +0100
++
++gtk+2.0 (2.12.3-1) unstable; urgency=low
++
++  * Let update-icon-caches skip args which are not dirs or don't exist; fixes
++    postrm behavior of packages with an icon cache.
++  * New upstream stable release; no API change; bug fixes and translation
++    updates.
++    - Refresh patch 042_treeview_single-focus to apply cleanly.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 04 Dec 2007 22:39:07 +0100
++
++gtk+2.0 (2.12.2-1) unstable; urgency=low
++
++  * New upstream stable release; no API change; bug fixes and translation
++    updated.
++    - Drop patches 034_gtkcupsutils_type_fix, 071_fix_gdk_window_null_crasher
++      fixed upstream.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++
++ -- Sebastian Dröge <slomo@debian.org>  Tue, 27 Nov 2007 05:15:01 +0100
++
++gtk+2.0 (2.12.1-3) unstable; urgency=low
++
++  * Conflict against metacity < 1:2.20.0-1. Closes: #450693.
++  * Suggest librsvg2-common for SVG pixbuf support.
++  * 033_treeview_resizing.patch: fix segmentation fault introduced by
++    an API inconsistency.
++  * 003_gdk.pc_privates.patch: generate correct Requires.private for
++    gdk-2.0.pc containing all necessary dependencies for static linking.
++  * 006_proper-directfb-modules.patch: refreshed.
++  * 010_gdkpixbuf_-lm.patch: fix gdk-pixbuf-2.0.pc by adding back -lm,
++    which is required by some macros. Closes: #451512.
++  * 070_mandatory-relibtoolize.patch: regenerated.
++  * rules: copy the extraneous libraries generated in the static build
++    to the Libs.private of the shared build.
++
++ -- Josselin Mouette <joss@debian.org>  Sun, 18 Nov 2007 01:30:52 +0100
++
++gtk+2.0 (2.12.1-2) unstable; urgency=low
++
++  * Stop suggesting gtk-engines-pixmap.
++  * Remove the --enable-explicit-deps flag. Closes: #343711, thanks Tom
++    Parker. If some other packages still rely on having explicit X11
++    dependencies, they are buggy and need to be fixed anyway.
++  * Keep --enable-explicit-deps in the directfb build; otherwise this
++    breaks any binary linking against it because the rpath isn't passed.
++  * 033_treeview_resizing.patch: updated patch from Kristian Rietveld.
++    + Add a new sizing fix for the case where there is a scrollbar.
++  * 031_gtksearchenginetracker_fixes.patch: added back, only the name
++    change was fixed upstream.
++  * 034_gtkcupsutils_type_fix.patch: type-casting fix from Herbert
++    Valerio Riedel that allows remote printing. Closes: #448071.
++  * 040_filechooser_single-click.patch: allow a situation where no
++    shortcut is selected, to avoid issues for keyboard users.
++    Closes: #448674.
++  * 042_treeview_single_focus.patch: don't select the focused item for
++    GTK_SELECTION_SINGLE type treeviews. Allows the fix in
++    040_filechooser_single-click.patch to work.
++  * Conflict against libeel2-2.18. Closes: #443701, #499070.
++  * Conflict against xfwm4 < 4.4.1-3 (previous versions freeze on
++    startup).
++  * 021_loader-files-d.patch: enclose process_module_file in correct
++    #ifdef's.
++  * 040_filechooser_single-click.patch: filter out duplicate entries in
++    bookmarks. This avoids a situation where the selection is changed to
++    the duplicate during DnD, causing an assertion error.
++    Closes: #447279.
++
++ -- Josselin Mouette <joss@debian.org>  Sun, 04 Nov 2007 16:22:31 +0100
++
++gtk+2.0 (2.12.1-1) unstable; urgency=low
++
++  * New upstream stable release; no API change; bug fixes and translation
++    updates.
++    - Drop patches 031_gtksearchenginetracker_fixes,
++      080_from_bugzilla_workaround_eclipse_crash, 081_icon-cache-validate
++      fixed upstream.
++    - Refresh patches 033_treeview_resizing, 040_filechooser_single-click to
++      apply cleanly.
++    - Drop patches 060_opening-display-by-env-error-message,
++      065_gtk-filechooser-locale-time merged upstream.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++  * Chech the exit status of close() in dh_gtkmodules; closes: #427654.
++  * New patch, 060_ignore-random-icons, don't list images from unknown
++    directories in icon cache; closes: #443571, #443574, #444285, #446188.
++
++ -- Loic Minier <lool@dooz.org>  Sun, 21 Oct 2007 22:05:42 +0200
++
++gtk+2.0 (2.12.0-3) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * 031_gtksearchenginetracker_fixes.patch: new patch.
++    + Use libtrackerclient.so.0 (closes: #443403).
++    + Check that tracker actually works before using it.
++
++  [ Loic Minier ]
++  * Conflict with libwxgtk2.6-0 << 2.6.3.2.2-1 to prevent the migration of gtk
++    to testing until the wxwidgets2.6 fix is there too; see #441766 and
++    friends.
++
++  [ Josselin Mouette ]
++  * Conflict with glabels << 2.1.3-3 to prevent a segmentation fault
++    from showing up.
++
++  [ Loic Minier ]
++  * Cleanup whitespace.
++  * Add comments to relibtoolizing patch, 070_mandatody-relibtoolize, to
++    mention the age of the upstream libtool in released tarballs which make
++    relibtoolizing important for hurd-i386; GNOME #484426; Debian #445001.
++
++  [ Josselin Mouette ]
++  * 020_immodules-files-d.patch, 021_loader-files-d.patch: read the
++    GDK_PIXBUF_MODULE_FILE and GTK_IM_MODULE_FILE variables before the
++    Debian directories. Thanks Thadeu Lima de Souza Cascardo.
++    Closes: #439004.
++
++  [ Loic Minier ]
++  * New patch, 080_from_bugzilla_workaround_eclipse_crash, fixes crash when
++    displaying tooltips in SWT apps such as Eclipse; GNOME #410194; LP
++    #128232; closes: #445613.
++  * New patch, 060_opening-display-by-env-error-message, fixes error message
++    on opening of display to include the display when it was set via the
++    DISPLAY env var; GNOME #486636; closes: #283076.
++  * New patch, 065_gtk-filechooser-locale-time, fixes conversion of localized
++    week days in non-UTF-8 locales in the file chooser; GNOME #482504;
++    closes: #444927.
++  * Enable 091_workaround_no_gtk_init_incorrect_display to allow the non-free
++    Flash plugin to work for users of non-Gtk browsers; please do bug Adobe
++    about this; closes: #443661, #440165.
++  * New patch, 071_fix_gdk_window_null_crasher, fixes potential crashes in
++    IceWeasel's print preview dialog; GNOME #482531; LP #144326; found in the
++    Ubuntu package.
++
++ -- Loic Minier <lool@dooz.org>  Sun, 14 Oct 2007 20:46:29 +0200
++
++gtk+2.0 (2.12.0-2) unstable; urgency=low
++
++  [ Josselin Mouette ]
++  * Add a conflict against openoffice.org-core (<< 2.2.1-8).
++    Closes: #439256.
++
++  [ Loic Minier ]
++  * Upload to unstable; drop check-dist include.
++
++ -- Loic Minier <lool@dooz.org>  Thu, 20 Sep 2007 11:59:26 +0200
++
++gtk+2.0 (2.12.0-1) experimental; urgency=low
++
++  [ Alan Baghumian ]
++  * New upstream stable release
++    - Regenerated 070_mandatory-relibtoolize.patch
++  * Added 081_icon-cache-validate.patch, GNOME #476342
++
++  [ Loic Minier ]
++  * Refresh patches 033_treeview_resizing and 040_filechooser_single-click to
++    apply cleanly.
++  * Drop patch 080_from_svn_fix_dangling_tooltip, merged upstream.
++  * Bump shlibs to 2.12.0 in the new upstream release for the addition of
++    gdk_window_thaw_toplevel_updates_libgtk_only() and
++    gdk_window_freeze_toplevel_updates_libgtk_only() to the ABI.
++  * Add disabled patch 091_workaround_no_gtk_init_incorrect_display, taken
++    from the Ubuntu package; it works around broken applications missing a
++    call to gtk_init() but the breakage should better be exposed now so that
++    applications can be fixed in time for release.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 18 Sep 2007 22:30:39 +0200
++
++gtk+2.0 (2.11.6-1) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Don't run the directfb testsuite on kfreebsd as it hangs; proposed patch
++    by Petr Salinger; closes: #431477.
++
++  [ Josselin Mouette ]
++  * Move manual pages of binaries in /usr/sbin to section 8.
++  * update-icon-caches: new script, updates the icon caches in a given
++    list of directories. It is meant to be used by packages shipping
++    icons, in the postinst/postrm.
++    For transition purposes, icon caches are currently updated but not
++    created if they don't already exist.
++  * Install this script and its manual page in libgtk2.0-bin.
++
++  [ Loic Minier ]
++  * Call dh_shlibdeps separately for the udeb and add a
++    -l/usr/lib/libcairo-directfb/lib/ flag to ensure libcairo-directfb2 is
++    found.
++  * New upstream development release, with API additions.
++    - Bump up shlibs to >= 2.11.6.
++    - Refresh patches 006_proper-directfb-modules,
++      015_default-fallback-icon-theme, 040_filechooser_single-click to apply
++      cleanly.
++    - Update patches 009_gtk-export-filechooser, 033_treeview_resizing to
++      apply; update relibtoolizing patch, 070_mandatory-relibtoolize.
++  * Update patch 009_gtk-export-filechooser:
++    - gtk/Makefile.am (gtk_private_h_sources, gtk_semi_private_h_sources):
++      export gtkquery.h and gtksearchengine.h as semi-private.
++    - gtk/gtkquery.h: add GTK_FILE_CHOOSER_ENABLE_UNSUPPORTED #ifdef guard.
++    - gtk/gtksearchengine.h: add GTK_FILE_CHOOSER_ENABLE_UNSUPPORTED #ifdef
++      guard.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 24 Jul 2007 10:43:23 +0200
++
++gtk+2.0 (2.11.5-1) experimental; urgency=low
++
++  * New upstream development release, with API additions; the new API may
++    still change incompatibly, especially the tooltips API.
++    - Bump shlibs to >= 2.11.5.
++    - Bump up libpango1.0-dev build-dep to >= 1.17.3.
++    - Ship the new gtk-builder-convert Python script to convert Glade files to
++      GtkBuilder syntax in libgtk2.0-dev; don't call dh_py* to generate a
++      ${python:Depends} but Recommend python (>= 2.4) to avoid pulling python
++      on buildds; the script requires python >= 2.4, but this is not enforced
++      in the dependencies.
++    - Refresh patches 001_static-linking-dont-query-immodules,
++      006_proper-directfb-modules, 040_filechooser_single-click to apply
++      cleanly.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++  * Use -s instead of -a in arch-specific dh_* calls.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 03 Jul 2007 13:01:25 +0200
++
++gtk+2.0 (2.11.4-1) experimental; urgency=low
++
++  [ Josselin Mouette ]
++  * 040_filechooser_single-click.patch: fix the patch to apply cleanly
++    again, and enable it.
++
++  [ Loic Minier ]
++  * Pass -mminimal-toc in CFLAGS for ppc64 support; thanks Andreas Jochens;
++    closes: #386815.
++  * New upstream development release, with API additions; the new API may
++    still change incompatibly.
++    - Bump shlibs to >= 2.11.3.
++    - Refresh patches 006_proper-directfb-modules,
++      008_implicit_pointer_conversion_gdkgc_directfb,
++      009_gtk-export-filechooser, 030_gtkentry_password-char-circle,
++      033_treeview_resizing, 040_filechooser_single-click, and 041_ia32-libs
++      to apply cleanly.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++  * Add a debian/dh_listmissing.pl script based on dh_install snippets but
++    customized to handle multiple source installation dirs which can report
++    files which were not installed to a package.
++  * New list-missing rule to list files which were not installed to a package
++    calling debian/dh_listmissing.pl.
++  * Also depend on libxcomposite-dev, libxdamage-dev; thanks Sébastien Bacher.
++  * Ship etc/gtk-2.0/im-multipress.conf in the shared library.
++  * New upstream development release, with incompatible API changes; the new
++    API may still change incompatibly.
++    - Bump shlibs to >= 2.11.4.
++    - Refresh relibtoolizing patch, 070_mandatory-relibtoolize.
++    - Bump up libglib2.0-dev build-dep to >= 2.11.5.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 20 Jun 2007 10:47:42 +0200
++
++gtk+2.0 (2.11.2-1) experimental; urgency=low
++
++  * New upstream release series; these are development releases, the new API
++    may still change incompatibly.
++    - Target at experimental; include check-dist.
++    - Bump shlibs to >= 2.11.2.
++    - Refresh patches 001_static-linking-dont-query-immodules, 005_xpmico,
++      009_gtk-export-filechooser, 015_default-fallback-icon-theme,
++      033_treeview_resizing, 041_ia32-libs to apply cleanly.
++    - Update patch 021_loader-files-d to apply with the upstream G_MODULE
++      changes and the support for included modules.
++    - Update patch 030_gtkentry_password-char-circle to apply.
++    - Drop patch 031_cursor-blinking-timeout, merged upstream.
++    - Disable 040_filechooser_single-click for now as it doesn't apply cleanly
++      and doesn't seem critical; add a description and cross-refs.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++    - Bump up build-deps to libglib2.0-dev >= 2.13.1, libpango1.0-dev >=
++      1.15.3, gtk-doc-tools >= 1.6.
++    - Build-dep on libxcomposite-dev for composite support.
++    - Build-dep on libxdamage-dev for damage support.
++    - Enable test print backend by passing --enable-test-print-backend to
++      configure.
++  * Update 007_implicit_pointer_conversion_gdkdrawable_directfb to include
++    cairo.h instead of defining the directfb feature manually.
++  * New patch, 006_proper-directfb-modules, fixes pkg-config modules included
++    to build directfb stuff, uncovered by the change in
++    007_implicit_pointer_conversion_gdkdrawable_directfb; refresh
++    relibtoolizing patch.
++  * Add cross-refs to patch headers.
++  * Clean up CFLAGS.
++  * Prepare passing -z defs via LDFLAGS in the future.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 13 Jun 2007 16:57:47 +0200
++
++gtk+2.0 (2.10.13-1) unstable; urgency=low
++
++  * Bump Conflicts to iiimf-client-gtk << 12.3.91-4.
++  * Upload to unstable; drop check-dist include.
++  * New upstream release; no API change.
++    - Drop patches 011_directfb-build-fixes-from-head,
++      013_gdkproperty-directfb-strdup, 032_filechooser-sizing,
++      090_capslock-numlock-im-thai merged upstream.
++    - Update relibtoolizing patch, 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 13 Jun 2007 10:06:49 +0200
++
++gtk+2.0 (2.10.12-3) experimental; urgency=low
++
++  * Use printf instead of echo in dh_gtkmodules to write to write data to
++    files in complex_doit() calls as dash's echo will always honor escape
++    sequences.
++  * Conflict with gtk2-engines-ubuntulooks (<= 0.9.11-1).
++  * New patch, 009_gtk-export-filechooser, exports some filechooser API for
++    use in maemo / Hildon; from Nokia, taken from the Ubuntu package; update
++    patch 032_filechooser-sizing to apply cleanly; bump shlibs to 2.10.12-3;
++    update patch 070_mandatory-relibtoolize.
++  * Kill patch 025_dfb-window-destroy-leak from source tree as well now.
++  * Include check-dist to prevent accidental uploads to unstable.
++
++ -- Loic Minier <lool@dooz.org>  Thu, 07 Jun 2007 00:13:00 +0200
++
++gtk+2.0 (2.10.12-2) unstable; urgency=low
++
++  [ Loic Minier ]
++  * New patch, 15_default-fallback-icon-theme, sets the default
++    gtk-fallback-icon-theme to "gnome"; closes: #421353.
++  * Also honor parallel=n in DEB_BUILD_OPTIONS.
++
++  [ Josselin Mouette ]
++  * 032_filechooser-sizing.patch: patch from Carlos Garnacho in bugzilla
++    #420285, committed in trunk. Fixes (among many other things) infinite
++    flickering with some window managers (closes: #420021).
++  * Refresh other patches.
++
++  [ Loic Minier ]
++  * New patch 090_capslock-numlock-im-thai, fixes Thai input method when
++    NumLock/CapsLock is on; thanks Theppitak Karoonboonyanan; GNOME #438261;
++    closes: #414698.
++  * Re-add patch 031_cursor-blinking-timeout to patch series.
++
++  [ Josselin Mouette ]
++  * 033_treeview_resizing.patch: fix column resizing in GtkTreeView when
++    there is an expander column. See bugzilla #316087.
++
++ -- Josselin Mouette <joss@debian.org>  Fri, 18 May 2007 19:02:20 +0200
++
++gtk+2.0 (2.10.12-1) unstable; urgency=low
++
++  * Bump Conflicts to gtk-im-libthai <= 0.1.4-2.
++  * Document that 2.10.11-2 bumped the conflict on scim-gtk2-immodule to <=
++    1.4.4-7.
++  * Post-transition bump of conflicts to gtk2-engines-wonderland << 1.0-4,
++    imhangul (<< 0.9.13-5), gcin (<< 1.3.4-2), gtk-im-libthai (<< 0.1.4-3),
++    scim-gtk2-immodule (<< 1.4.4-8), uim-gtk2.0 (<< 1:1.4.1-3),
++    gtk2-engines-cleanice (<< 2.4.0-1.1), gtk2-engines-magicchicken
++    (<< 1.1.1-7.1), gtk2-engines-qtpixmap (<< 0.28-1.2), libginspx0
++    (<< 20050529-1.1), tamil-gtk2im (<< 2.2-4.4), gtk2-engines-xfce
++    (<< 2.4.0-1), scim-bridge-client-gtk (<< 0.4.10-1.1), swf-player
++    (<< 0.3.6-2.3), gtk-qt-engine (<< 1:0.8~svn-rev36-1).
++  * Let the udeb provide the Gtk+ module ABI (binver); closes: #419592.
++  * Add a -k flag to dh_gtkmodules, matching the change in dh_pangomodules.
++  * Use this new flag for the udeb and the shared library packages.
++  * Add ${misc:Depends}.
++  * Drop "libtool_is_fool" snippet patching hardcode_libdir_flag_spec and
++    archive_cmds which is probably dangerous with newer libtools.
++  * Drop patch 000_gtk+-2.0.6-exportsymbols which made all libs export way too
++    many symbols and hence was dangerous; closes: #327652.
++    - Update patch 070_mandatory-relibtoolize.
++  * Fix description of the -dbg package.
++  * New upstream release; no ABI change.
++    - Refresh patches 011_directfb-build-fixes-from-head and
++      040_filechooser_single-click.
++    - Update relibtoolizing patch.
++
++ -- Loic Minier <lool@dooz.org>  Thu, 03 May 2007 15:13:54 +0200
++
++gtk+2.0 (2.10.11-2) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Bump libwmf conflicts to << 0.2.8.4-5.
++  * Fix control generation.
++  * Include the new uploaders.mk from gnome-pkg-tools instead of duplicating
++    its logic; build-dep on gnome-pkg-tools >= 0.11.
++  * Run "make check" test suite for all flavors except if DEB_BUILD_OPTIONS
++    contains the "nocheck" keyword; ignore failures.
++  * Add support for DEB_BUILD_OPTIONS_PARALLEL.
++  * Re-enable FAQ and Tutorial which were fixed upstream at some point; update
++    installation dirs.
++  * Call dh_installman -a.
++
++  [ Josselin Mouette ]
++  * 040_filechooser_single-click.patch: remove shortcut-related actions
++    in the response callback. This fixes the annoying bug where you need
++    to click twice on "save" after clicking on a shortcut.
++
++  [ Loic Minier ]
++  * Initialize CFLAGS to -Wall -g; pass debian/rules' CFLAGS and LDFLAGS to
++    configure, doh!
++  * Document that 2.10.8 (and 2.10.9) fixed CVE-2007-0010.
++  * Stop shipping engines in the udeb again.
++  * New patch, 040_ia32-libs.patch, for ia32-libs support via ia32-libs-gtk;
++    based on a patch by Goswin von Brederlow with the following changes: a)
++    use .32 and .64 suffixes in all cases (compatible with Ubuntu), b) fix
++    typo, c) use g_file_test() instead of g_access(); does not cover module
++    loading via env vars; closes: #406453.
++  * Upload to unstable; drop check-dist include.
++  * Wrap build-deps and deps.
++  * Add Conflicts on gcin (<= 1.3.4-1), gtk-qt-engine (<= 1:0.8~svn-rev31-3),
++    iiimf-client-gtk (<= 12.3.91-3), libginspx0 (<= 20050529-1),
++    scim-bridge-client-gtk (<= 0.4.10-1), iiimgcf (<= 11.4.1870-7).
++  * Bump Conflicts to gtk2-engines-gtk-qt << 1:0.7-2, imhangul <=
++    0.9.13-3.1, libgnomeui-0 <= 2.14.1-3, swf-player <= 0.3.6-2.2,
++    tamil-gtk2im <= 2.2-4.3, uim-gtk2.0 <= 1:1.2.1-9, scim-gtk2-immodule (<=
++    1.4.4-7).
++  * Drop docbook-utils and linuxdoc-tools-text from the build-deps.
++
++ -- Loic Minier <lool@dooz.org>  Fri, 13 Apr 2007 22:25:49 +0200
++
++gtk+2.0 (2.10.11-1) experimental; urgency=low
++
++  * Move build and install base dirs to debian/build and debian/install
++    instead of debian/tmp/build and debian/tmp/install.
++  * Cleanup rules.
++  * Make debian/control PHONY.
++  * Use @DOC_PKG@ to point at the HTML doc as well.
++  * Tune udeb description.
++  * New upstream releases.
++    - Drop patch 003_default_fallback_icon_theme, upstream added a fallback on
++      hicolor.
++    - Drop patch 015_gdkmain-x11_button-mask.patch, merged upstream.
++    - Refresh patches.
++    - Relibtoolize.
++  * Remove 031_cursor-blinking-timeout from patch series as it causes a
++    regression in the Thai IM; closes: #414698.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 14 Mar 2007 14:11:58 +0100
++
++gtk+2.0 (2.10.9-1) experimental; urgency=low
++
++  [ Josselin Mouette ]
++  * 024_filechooser_single-click.patch:
++    + Monitor selection changes instead of monitoring the cursor.
++    + Miscellaneous fixes.
++  * 015_gdkmain-x11_button-mask.patch, stolen from upstream SVN: fix the
++    issue of resizing columns needing two tries in some cases
++    (closes: #406906).
++
++  [ Loic Minier ]
++  * Add a get-orig-source target to retrieve the upstream tarball.
++  * Rename patch 023_gtkentry_password-char-circle to
++    030_gtkentry_password-char-circle.
++  * Rename patch 024_filechooser_single-click to 040_filechooser_single-click.
++  * New patch, 031_cursor-blinking-timeout.patch, to stop blinking the cursor
++    after a configurable timeout; helps saving energy by not waking up all Gtk
++    processes with a cursor continuously; from upstream SVN r16366 (trunk);
++    GNOME #353670, #352442.
++  * Include the new check-dist Makefile to prevent accidental uploads to
++    unstable; bump build-dep on gnome-pkg-tools to >= 0.10.
++  * Bump up libglib2.0-dev of libgtk2.0-dev dep to >= 2.12.0 as well; thanks
++    Marc Brockschmidt.
++
++  [ Josselin Mouette ]
++  * New upstream release.
++    - Fixes CVE-2007-0010; RedHat #218755, #218932.
++  * Remove patches integrated upstream:
++    + 009_directfb_build.patch
++    + 010_fix-stuc-vs-stub-typo.patch
++    + 012_missing-stub-files.patch
++    + 014_gtktreeview_missing-icons.patch
++  * Refresh patches:
++    + 020_immodules-files-d.patch
++    + 031_cursor-blinking-timeout.patch
++    + 040_filechooser_single-click.patch
++    + 070_mandatory-relibtoolize.patch
++
++ -- Josselin Mouette <joss@debian.org>  Thu,  1 Mar 2007 21:50:34 +0100
++
++gtk+2.0 (2.10.7-1) experimental; urgency=low
++
++  * New upstream release.
++  * Refresh patches.
++  * 022_gtkcupsutils_multipage.patch: removed, integrated upstream.
++  * Regenerate 070_mandatory-relibtoolize.patch.
++  * 014_gtktreeview_missing-icons.patch: update patch with the upstream
++    fix that was committed.
++  * 009_directfb_build.patch: new patch, fix typo in configure.in for
++    the directfb build.
++
++ -- Josselin Mouette <joss@debian.org>  Wed, 10 Jan 2007 00:03:03 +0100
++
++gtk+2.0 (2.10.6-5) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Really update gtk2-engines conflict to << 2.8.2-2.
++
++  [ Josselin Mouette ]
++  * 022_gtkcupsutils_multipage.patch: new patch, stolen upstream.
++    Properly pass multi-value options to cups (closes: #404867).
++  * 023_gtkentry_password-char-circle.patch: new patch to replace stars by
++    black circles in password fields; thanks Sven Arvidsson; found in Fedora
++    and OpenSuse (closes: #401568).
++  * 024_filechooser_single-click.patch: patch from UHU-Linux to make the
++    side pane in the filechooser usable with a single click
++    (closes: #405296).
++
++ -- Josselin Mouette <joss@debian.org>  Wed,  3 Jan 2007 00:14:28 +0100
++
++gtk+2.0 (2.10.6-4) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Update gtk2-engines conflict to << 2.8.2-2.
++
++  [ Josselin Mouette ]
++  * 014_gtktreeview_missing-icons.patch, stolen from bugzilla: fix
++    missing icon in "save as" filechooser dialogs.
++
++ -- Josselin Mouette <joss@debian.org>  Thu, 30 Nov 2006 20:42:44 +0100
++
++gtk+2.0 (2.10.6-3) experimental; urgency=low
++
++  [ Loic Minier ]
++  * Update gtk2-engines conflict to <= 2.8.1-4.
++  * Update gtk2-engines-pixbuf conflict to <= 2.10.
++  * Bump up libcairo-directfb2-dev build-dep to 1.2.4-4.
++
++  [ Josselin Mouette ]
++  * 070_mandatory-relibtoolize.patch: recreate with autoconf 2.59, to
++    avoid the AM_GLIB_DEFINE_LOCALEDIR bug (making GTK+ applications
++    untranslated).
++  * Make gtk2-engines conflict less strict.
++
++ -- Josselin Mouette <joss@debian.org>  Sat, 11 Nov 2006 00:04:46 +0100
++
++gtk+2.0 (2.10.6-2) experimental; urgency=medium
++
++  * New patch, 013_gdkproperty-directfb-strdup, to g_strdup() strings returned
++    by gdk_atom_name(); GNOME #357611; thanks Attilio Fiandrotti.
++
++ -- Loic Minier <lool@dooz.org>  Sun,  8 Oct 2006 16:03:08 +0200
++
++gtk+2.0 (2.10.6-1) experimental; urgency=low
++
++  * New upstream release.
++    - Drop patch 013_stock-icons-typo-in-rm, merged upstream.
++    - Relibtoolize: update patch 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Wed,  4 Oct 2006 11:41:37 +0200
++
++gtk+2.0 (2.10.5-1) experimental; urgency=low
++
++  * Fail if dh_gtkmodules called query helpers on module files, but no module
++    could be written to the module file.
++  * Parse stderr as well as the stdout of query helpers and bail out if
++    g_module_open(); suggest adjusting LD_LIBRARY_PATH.
++  * Fix some probably harmless typos.
++  * New patch, 030_gtkfilechooserbutton-update-combo-box-null-base-path, to
++    avoid a segfault when opening some filechoosers; thanks Sam Morris for
++    reporting and testing; from CVS HEAD; GNOME #358405; closes: #390231.
++  * New upstream release; no API change.
++    - Drop patch 030_gtkfilechooserbutton-update-combo-box-null-base-path,
++      merged upstream.
++    - New patch, 013_stock-icons-typo-in-rm, to fix a typo in gtk/Makefile.am;
++      GNOME #358931.
++    - Relibtoolize: update patch 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Mon,  2 Oct 2006 16:59:18 +0200
++
++gtk+2.0 (2.10.4-1) experimental; urgency=low
++
++  * New upstream release; no API change.
++    - Switch from tar-in-tar and sys-build to regular source and quilt
++      patching; build-depend on quilt; remove occurrences of $(TOP_SRC_DIR)
++      and @TOP_SRC_DIR@ which isn't needed anymore.
++    - Refresh patch 021_loader-files-d.
++    - New patch, 010_fix-stuc-vs-stub-typo, to replace "stuc" with "stub" in
++      gtk/Makefile.am; from HEAD, not commited in the gtk-2-10 branch.
++    - New patch, 011_directfb-build-fixes-from-head, to backport directfb
++      build fixes; from HEAD not commited in the gtk-2-10 branch.  Thanks
++      Attilio Fiandrotti for pointing me at the actual log entry.
++    - New patch, 012_missing-stub-files, to add gtk/gtkplug-stub.c and
++      gtksocket-stub.c missing from the tarball; from the gtk-2-10 branch.
++    - Relibtoolize: update patch 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Sun, 24 Sep 2006 12:24:31 +0200
++
++gtk+2.0 (2.10.3-3) experimental; urgency=medium
++
++  * Update patch 021_loader-files-d to not warn about missing module files or
++    unreadable files as is already the case for immodules; see #388450 for
++    more background.
++  * Fix awful typo which broke generation of the udeb shlibs and which I
++    didn't notice with debdiff; thanks Frans Pop.
++  * Drop debian/docs.in and pass the list of files to dh_installdocs instead;
++    should fix the missing README and NEWS files.
++
++ -- Loic Minier <lool@dooz.org>  Thu, 21 Sep 2006 17:35:16 +0200
++
++gtk+2.0 (2.10.3-2) experimental; urgency=low
++
++  * Drop obsolete --with-cairo-backend configure flag.
++  * Make update-gtk-immodules and update-gtk-immodules no-ops, to avoid
++    modules to recreate the /etc modules files on upgrades or by mistake;
++    remove the generated module files in /etc on upgrades. closes: #388450
++  * Merge 2.8.20-2; drop patch 009_revert-gdkdrawable-directfb, merged
++    upstream.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 20 Sep 2006 22:17:30 +0200
++
++gtk+2.0 (2.10.3-1) experimental; urgency=low
++
++  * New upstream releases; with API additions in the filesystem modules API,
++    probably only used by gtk-demo, and in the quartz gdk backend, not used in
++    Debian.
++    - Bump shlibs to >= 2.10.3.
++    - Drop patch 009_configurable-cairo-backend-module, it was not really
++      required to select a cairo backend dynamically as the backend is always
++      cairo-directfb for a directfb gdk.
++    - Drop patch 010_gdk-require-cairo-module, merged upstream.
++    - Drop patch 011_gdk-directfb-cvs-changes, this release includes the
++      changes that were pulled back then.
++    - Relibtoolize: update patch 070_mandatory-relibtoolize.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 19 Sep 2006 20:42:38 +0200
++
++gtk+2.0 (2.10.1-2) experimental; urgency=low
++
++  * Drop obsolete scary warning in 2.10.1-1.
++  * Drop update-gtk-immodules and update-gdkpixbuf-loaders calls from
++    libgtk2.0-0's postinst, this isn't needed for backwards compatibility.
++  * Use /usr/lib/libgtk2.0-0/gdk-pixbuf-query-loaders and
++    /usr/lib/libgtk2.0-0/gtk-query-immodules-2.0 instead of
++    /usr/bin/gdk-pixbuf-query-loaders and /usr/bin/gtk-query-immodules-2.0 in
++    dh_gtkmodules.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 19 Sep 2006 16:40:22 +0200
++
++gtk+2.0 (2.10.1-1) experimental; urgency=low
++
++  * Add a missing x11proto-xext-dev build-dep for X SYNC checks.
++  * Add a missing libatk1.0-dev (>= 1.9.0) build-dep for ATK.
++  * Replace GTK_BINARY_VERSION in debian/*.in to set the binary version of
++    binary modules; it is set via debian/scripts/vars and currently in use in
++    update-gdkpixbuf-loaders.in and update-gtk-immodules.in.
++  * Remove fake support for version argument from update-gdkpixbuf-loaders and
++    update-gtk-immodules.
++  * New upstream development releases with API additions, and non-public API
++    changes and removals.
++    - Target at experimental.
++    - Update copyright from AUTHORS.
++    - Update upstream URL.
++    - Bump up libglib2.0-dev build-dep to >= 2.12.0.
++    - Add a libdirectfb-dev (>= 0.9.24) build-dep for DirectFB.
++    - Add a libcupsys2-dev (>= 1.2) build-dep for CUPS printing backend.
++    - Bump shlibs to >= 2.10.0.
++    - Update list of docs to ship; now includes NEWS. (Closes: #384225)
++    - Update watch file to track stable releases and use HTTP.
++    - Set GTK_BINARY_VERSION to 2.10.0.
++    - Add or bump Conflicts with packages shipping modules for the 2.4.0
++      binary version of Gtk: gtk2-engines-wonderland <= 1.0-3,
++      gtk2-engines-cleanice <= 2.4.0-1, gtk2-engines <= 1:2.6.10-2,
++      gtk2-engines-magicchicken <= 1.1.1-7, gtk2-engines-pixbuf <= 2.8.20-1,
++      gtk2-engines-gtk-qt <= 1:0.7-1, gtk2-engines-qtpixmap <= 0.28-1.1,
++      librsvg2-common <= 2.14.4-2, gtk2-engines-xfce <= 2.3.90.2-1,
++      libgnomeui-0 <= 2.14.1-2, tamil-gtk2im <= 2.2-4.2, imhangul <= 0.9.13-3,
++      iiimgcf <= 11.4.1870-7.3, scim-bridge <= 0.2.4-1, scim-gtk2-immodule <=
++      1.4.4-4, gtk-im-libthai <= 0.1.4-1, uim-gtk2.0 <= 1:1.2.1-3, libwmf-dev
++      <= 0.2.8.4-2, libwmf0.2-7 <= 0.2.8.4-2, swf-player <= 0.3.6-2.1.
++    - Replace 001_gtk+-2.2.0-buildfix-immodule patch with
++      001_static-linking-dont-query-immodules which has more chances to be
++      merged upstream; see GNOME #346531.
++    - Drop 006_gtk+-2.8.17-directfb patch, merged upstream.
++    - Refresh patches: 000_gtk+-2.0.6-exportsymbols,
++      003_default_fallback_icon_theme,
++      004_gtk+-ximian-gtk2-filesel-navbutton-5,
++      007_implicit_pointer_conversion_gdkdrawable_directfb.
++    - Update 070_mandatory-relibtoolize with libtoolize --force --copy &&
++      aclocal-1.7 -I m4macros && autoconf && automake-1.7.
++    - New patch, 002_static-linking-dont-build-perf, to avoid building the
++      perf measurement tools in static builds; see GNOME #346559; needs
++      the 001_gtk+-2.2.0-buildfix-immodule patch.
++    - New patch, 009_configurable-cairo-backend-module, to add a new
++      --with-cairo-backend flag which will select a cairo-$backend.pc
++      pkg-config module instead of the default of cairo.pc; see GNOME #351509.
++    - Configure with --with-cairo-backend=directfb for the dfb build.
++    - New patch, 010_gdk-require-cairo-module, to require the Cflags and Libs
++      from the cairo-directfb module (as $cairo_module); see GNOME #351519.
++    - New patch, 011_gdk-directfb-cvs-changes, backport of CVS only build
++      fixes to permit compilation against directfb 0.9.25.1.
++  * Fix bashishms in debian/rules. (Closes: #385473)
++  * Generate a Provides: gtk2.0-binver-@BINVER@ in libgtk2.0-@SONAME@ to track
++    the binary version of Gtk and to permit Gtk modules to depend on it.
++  * Define the flags for each flavor (shared, static, and udeb) in Makefile
++    vars and share the common flags.
++  * Only pass --host to configure if DEB_HOST_GNU_TYPE and DEB_BUILD_GNU_TYPE
++    differ.
++  * Stop shipping *.la and *.a files of modules (all module types).
++  * Move GTK_BINARY_VERSION back to rules.
++  * Use GTK_BINVER_DEP instead of BINVER.
++  * Build flavors out-of-tree; saves 25% of required build space (315 MB) and
++    some build time / IO load; this clutters the headers a little (full build
++    path is mentionned instead of ".") though.
++  * Rewrite and cleanup the build process completely.
++  * Install the full set of pkg-config files from the dfb flavor in
++    /usr/lib/pkgconfig/libgtk-directfb-2.0; to use this feature, set
++    PKG_CONFIG_PATH while invoking pkg-config (or configure); the
++    /usr/lib/pkgconfig/*directfb*.pc files will be removed when Debian sources
++    have been converted.
++  * In the same spirit, gdkconfig.h is in /usr/lib/gtk-2.0/include/directfb;
++    to use it, prepend -I/usr/lib/gtk-2.0/include/directfb to CFLAGS.
++  * Fix generation of /etc/gtk-2.0/gdk-pixbuf.loaders for the udeb.
++    (Closes: #382435)
++  * Build-depend on libcairo-directfb2-dev >= 1.2.4-2 to get PDF/PS support in
++    the directfb flavor of libcairo.
++  * Recommend the linked source packages in libgtk2.0-doc instead of simply
++    suggesting them.
++  * Rewrite update-gdkpixbuf-loaders and update-gtk-immodules.
++  * Drop double libatk1.0-dev build-dep.
++  * Empty the dependency_libs in the *.la files of libgtk2.0-dev.
++  * New immodule files handling with *.immodules files below
++    /usr/lib/gtk-2.0/<BINARY_VERSION>/immodule-files.d.
++    - New patch, 020_immodules-files-d, to split the module search path on
++      ":", as is done in Pango, prepend
++      /usr/lib/gtk-2.0/<BINARY_VERSION>/immodule-files.d to the search path,
++      and to read all *.immodules files when a directory is encountered in the
++      search path.
++    - Pre-generate
++      /usr/lib/gtk-2.0/<BINARY_VERSION>/immodule-files.d/libgtk2.0-0.immodules
++      for the shared library.
++    - Continue generating /etc/gtk-2.0/gtk.immodules until packages are
++      updated.
++  * Add the libpixmap engine to the udeb for the new Bladr GTK theme for g-i.
++  * New loader files handling with *.loaders files below
++    /usr/lib/gtk-2.0/<BINARY_VERSION>/loaders-files.d.
++    - New patch, 021_loader-files-d, to split the module search path on
++      ":", as is done in Pango, prepend
++      /usr/lib/gtk-2.0/<BINARY_VERSION>/loader-files.d to the search path,
++      and to read all *.loaders files when a directory is encountered in the
++      search path.
++    - Pre-generate
++      /usr/lib/gtk-2.0/<BINARY_VERSION>/loader-files.d/libgtk2.0-0.loaders
++      for the shared library and libgtk-directfb-2.0-0-udeb.loaders for the
++      udeb.
++    - Continue generating /etc/gtk-2.0/gdk-pixbuf.loaders until packages are
++      updated.
++    - This particular patch uses two ugly workarounds and needs work before
++      being sent upstream.
++  * New Debhelper-based command, dh_gtkmodules, to create module files for IM
++    modules and GdkPixbuf loaders; it will still add a dependency on the
++    binary version of Gtk for other modules.
++  * Make use of the new dh_gtkmodules during the build (override the path to
++    gtk-query-immodules-2.0 and gdk-pixbuf-query-loaders.
++  * Add ${misc:Depends} to gtk2-engines-pixbuf.
++
++ -- Loic Minier <lool@dooz.org>  Tue, 19 Sep 2006 15:13:38 +0200
++
++gtk+2.0 (2.8.20-2) unstable; urgency=low
++
++  * New patch, 009_revert-gdkdrawable-directfb, to revert a fix for Italic
++    letters which caused ugly unneeded horizontal/vertical lines; thanks
++    Davide Viti. (Closes: #386860)
++  * Fix typo, install-dfb depends on build-dfb, not build-shared.
++  * Fix typo (DFB_PKGFIR versus DFB_PKGDIR), use the BUILD_DFB_DIR version of
++    gdk-pixbuf-query-loaders, and set LD_LIBRARY_PATH to the udeb's /usr/lib;
++    should fix the empty /etc/gtk-2.0/gdk-pixbuf.loaders. (Closes: #382435)
++  * Ship all engines of the DirectFB build in the udeb, that is
++    engines/libpixmap.so.
++
++ -- Loic Minier <lool@dooz.org>  Wed, 20 Sep 2006 21:36:04 +0200
++
++gtk+2.0 (2.8.20-1) unstable; urgency=low
++
++  * New upstream releases; no API changes.
++
++ -- Loic Minier <lool@dooz.org>  Mon, 14 Aug 2006 16:52:04 +0200
++
++gtk+2.0 (2.8.18-7) unstable; urgency=medium
++
++  * Rename patches to reflect the order in which they are applied:
++    - 000_gtk+-2.2.0-buildfix-immodule to 001_gtk+-2.2.0-buildfix-immodule
++    - 001_default_fallback_icon_theme to 003_default_fallback_icon_theme
++    - 001_gtk+-ximian-gtk2-filesel-navbutton-5 to
++      004_gtk+-ximian-gtk2-filesel-navbutton-5
++    - 002_xpmico to 005_xpmico
++    - 003_gtk+-2.8.17-directfb to 006_gtk+-2.8.17-directfb
++    - 005_implicit_pointer_conversion to
++      007_implicit_pointer_conversion_gdkdrawable_directfb
++    - 006_implicit_pointer_conversion to
++      008_implicit_pointer_conversion_gdkgc_directfb
++  * Change the 000_gtk+-2.0.6-exportsymbols, and
++    001_gtk+-2.2.0-buildfix-immodule patches to only patch the
++    non-autogenerated files.
++  * Rename 004_reautoconf to 070_mandatory-relibtoolize; update it for the
++    previous changes; use an older autoconf version to work around a bug
++    in the glib-gettext macro which broke localization in dialog boxes; thanks
++    Mike Hommey.
++
++ -- Loic Minier <lool@dooz.org>  Sun,  6 Aug 2006 11:49:48 +0200
++
++gtk+2.0 (2.8.18-6) unstable; urgency=low
++
++  * 005_implicit_pointer_conversion.patch: patch from Dann Frazier to
++    fix an implicit pointer conversion error on 64-bit architectures
++    (closes: #381081).
++  * 006_implicit_pointer_conversion.patch: fix another implicit
++    conversion by allowing deprecated functions in the necessary header
++    file (closes: #381082).
++
++ -- Josselin Mouette <joss@debian.org>  Wed,  2 Aug 2006 14:48:54 +0200
++
++gtk+2.0 (2.8.18-5) unstable; urgency=low
++
++  [ Loic Minier ]
++  * Set Priority to extra to sync with overrides.
++
++  [ Josselin Mouette ]
++  * Set priority to extra for the udeb.
++  * Bump build dependencies for libcairo to the stable version.
++  * Lots of cleanup in debian/rules.
++  * Rename directfb packages to libgtk-directfb-2.0-*.
++  * Move .a and .la files from the engine package to the development
++    package.
++    + Add appropriate Replaces: field.
++
++ -- Josselin Mouette <joss@debian.org>  Sun, 30 Jul 2006 18:21:37 +0200
++
++gtk+2.0 (2.8.18-4) experimental; urgency=low
++
++  * Bump libcairo build dependencies.
++  * Only install the PNG loader in the udeb.
++  * Rebuild against a fixed glib.
++
++ -- Josselin Mouette <joss@debian.org>  Mon, 26 Jun 2006 22:34:27 +0200
++
++gtk+2.0 (2.8.18-3) experimental; urgency=low
++
++  [ Loïc Minier ]
++  * Bump libgtk2.0-dev dependency and build-dep on libx11-dev to >= 2:1.0.0-6
++    as it ships x11.pc which ends up in the Requires of gdk-x11-2.0.pc.
++    (Closes: #326199, #370693)
++    [debian/control, debian/control.in]
++
++  [ Josselin Mouette ]
++  * 003_gtk+-2.8.17-directfb.patch: new patch, bringing a new directfb
++    backend.
++  * 004_reautoconf.patch: new patch, result of "libtoolize --force
++    --copy; aclocal; autoheader; automake -acf; autoconf; rm -rf
++    autom4te.cache" with the previous patches applied.
++  * Make 3 new packages: libgtk+2.0-directfb0-udeb,
++    libgtk+2.0-directfb-dev and  libgtk+2.0-directfb0.
++  * Add a new build flavour for directfb (only the shared version).
++  * Use chrpath to remove the rpath in the udeb.
++  * Generate a fake shlibs.local to handle all intra-gtk dependencies by
++    hand.
++  * Switch to debhelper compatibility mode 5 and require 5.0.22.
++  * Standards-version is 3.7.2.
++  * Break the circular dependency between libgtk2.0-0, libgtk2.0-bin and
++    libgtk2.0-common (closes: #309604).
++    + Remove libgtk2.0-common dependency on libgtk2.0-0.
++    + Remove libgtk2.0-0 dependency on libgtk2.0-bin.
++    + Use ${binary:Version} and ${source:Version} to ensure strict
++      dependencies.
++    + Build-depend on dpkg-dev 1.13.19.
++    + Invert the libgtk2.0-common -> libgtk2.0-0 symbolic link.
++    + libgtk2.0-common.preinst, libgtk2.0-0.postinst: dance the symbolic
++      link samba.
++    + Move support binaries and scripts to libgtk2.0-0 and make
++      libgtk2.0-bin a binary-all package containing only scripts.
++    + Move /usr/sbin/update-* calls to libgtk2.0-0.
++    + update-*: call binaries at their new location.
++
++ -- Josselin Mouette <joss@debian.org>  Mon, 26 Jun 2006 22:31:14 +0200
++
++gtk+2.0 (2.8.18-1) unstable; urgency=low
++
++  * New upstream version:
++    Bugs fixed:
++    - search box positioning has some bugs
++    - Gdk does not translate VK_NUMPADx to GDK_KP_x
++    - sanely handle late (re)setting of dnd image
++    - Text is shifted off-by-one in Add to panel
++    - gtk_widget_create_pango_layout docs typo
++    - GtkLayout In GtkScrolledWindow does not receive the scroll_event
++    - gtktreeview has RTL problems with toggle buttons if using gtktreestore
++      as a model
++    - Wrong drop location in GtkEntry
++    - GtkImage animation CRITICALS on switching themes
++    - DnD: Conditional jump or move depends on uninitialised value
++    - cursor blocked to dnd mode after using shift and dnd on a GtkCalendar
++    - Crashes while creating source code w/GtkFontSelection
++    - the right edge tab does not appear when switching tab
++    - Warning in gtk_paned_compute_position
++    - gdk should set resolution on PangoCairoFontmap, not PangoCairoContext
++    - GtkTreeView does not resize correctly
++    - gtk_tree_view_get_cell_area() forgets depth-one expander
++    - expander animation not working in RTL mode
++    - Multiple issues discovered by Coverity
++    - Make gtk_file_chooser_button_new() friendlier for language bindings
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 30 May 2006 17:02:26 +0200
++
++gtk+2.0 (2.8.17-1) unstable; urgency=low
++
++  * New upstream version:
++    Bugs fixed:
++    - Expander disclosure button is too small
++    - gtk_image_clear doesn't cause redraw
++    - typo in configure.in yields suspicious warning
++    - gtk_icon_view_set_cursor causes Segmentation fault
++    - garbage output of --help in non UTF-8 locale
++    - GtkNotebook does not destroy its children on destroy()
++    - TreeView DnD between-row highlight colo
++    - Gtk-Criticals occur when scrolling a text_view that is not realized
++    - Hidden menubar still activates submenus with kbd
++    - GtkTreeItem broken
++    -  Clean up button press handling (use one-grab-op-at-a-time pattern)
++    - broken scrolling when selecting
++    - GTK+ File-chooser dialog crashes
++    - Nautilus crashes when dragging icons to another screen
++    - mixed line separators confuse gtk_text_iter_ends_line
++    - Textview child is covered by window border
++    - gdk_pixbuf_loader_new_with_type(): What image types are allowed?
++    - Missing progress bar label
++    - Fix a problem which caused grab-notify signal to be missed in some cases
++  * debian/control.in:
++    - clear the Build-Depends on xlibs-static-pic | xlibs-pic, not required
++    - updated the Build-Depends on libpango1.0-dev so it build with
++      the xorg transitioned version
++  * * debian/patches/001_default_fallback_icon_theme.patch:
++    - set the default fallback icon theme to "gnome", fixes the issues with
++      the moves of icons from hicolor to gnome
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun,  9 Apr 2006 21:54:11 +0200
++
++gtk+2.0 (2.8.16-1) unstable; urgency=low
++
++  * New upstream version
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 15 Mar 2006 19:26:46 +0100
++
++gtk+2.0 (2.8.15-1) unstable; urgency=low
++
++  * New upstream version:
++    * Bugs fixed:
++      - Keys P and N in "open file" dialog have special meaning
++      - MS-Windows theme (GTK-Wimp) shows all funky characters
++      - Optimize gdk on win32
++      - Hollow polygons have wrong linecaps
++      - panel crash with a11y enabled
++    * Updated translations (bg,bn,cs,eu,ro)
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 14 Mar 2006 15:41:56 +0100
++
++gtk+2.0 (2.8.13-1) unstable; urgency=low
++
++  * New upstream version:
++    * Bugs fixed:
++    - Can't select some items in GtkIconView
++    - gtk_icon_theme_list_icons: example contexts don't work
++    - gnopernicus crashes on changing display screen source for magnifier
++    - evince crashes in gdk_region_union_with_rect
++    - Small error in _gdk_gc_update_context
++    - gtk.Notebook.get_current_page() returns incorrect page number
++      when pages hidden
++    - GtkAboutDialog not responsive to Escape key
++    - GtkNotebook popup menu not keynavigatable
++    - GtkRadioButton does not issue notify::active
++    - Make more use of G_DISABLE_ASSERT in TextView code
++    * Updated translations
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat, 25 Feb 2006 23:56:58 +0100
++
++gtk+2.0 (2.8.12-1) unstable; urgency=low
++
++  * New upstream bugfix release.
++  * [debian/copyright] Updated FSF's address.
++
++ -- J.H.M. Dassen (Ray) <jdassen@debian.org>  Sun, 12 Feb 2006 14:11:11 +0100
++
++gtk+2.0 (2.8.11-1) unstable; urgency=low
++
++  * New upstream version
++    * Avoid memory overruns in the pixbuf theme engine with nonsensical
++      gradient specifications.  [Matthias]
++    * Bugs fixed:
++    - Cursor doesn't move as expected
++    - Segfault from combination of gtk_container_set_resize_mode()
++      and GtkComboBox
++    - segfault in update_cursor on amd64
++    - eog crashes at launch under AIX
++    - "~" should bring up the location dialog
++    - gtk_text_layout_get_cursor_locations() chokes on layout=0x0
++    * Documentation improvements [Federico Mena Quintero]
++    * Translation updates (es,pt_BR,zh_HK,zh_TW)
++
++ -- Sebastien Bacher <seb128@debian.org>  Fri, 27 Jan 2006 22:28:05 +0100
++
++gtk+2.0 (2.8.10-1) unstable; urgency=low
++
++  * New upstream version
++  * debian/control.in:
++    - updated the glib requirement
++  * debian/patches/001_fs_documents.patch:
++    - dropped, stick with upstream behaviour rather
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 12 Jan 2006 13:34:37 +0100
++
++gtk+2.0 (2.8.9-2) unstable; urgency=low
++
++  * Upload to unstable
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 15 Dec 2005 15:13:32 +0100
++
++gtk+2.0 (2.8.9-1) experimental; urgency=low
++
++  * New upstream version:
++    Bugs fixed:
++    - File chooser filter behaves weird
++    - 2.8.4 to 2.8.6: sound-juicer crash, fileselector assertions
++    - On unsetting the Model, GtkTreeView does not clear
++      it's associated TreeSelection
++    - Crash on selecting a file of null mime-type
++    - gtktoolbutton leaks a pixbuf
++    - GdkEvent leaked in gtktreeview.c / gtk_tree_view_key_press
++    - Typo in trap_activate_cb()
++    - gtkcalendar.c: The identifier is already declared.
++    - gtk_menu_attach_to_widget() does not take NULL detacher
++    - Unhinted fonts are measured incorrectly and drawing
++      problems occur as a result
++    - unwanted scrolling in recent gtk
++    - Toolbars without icons are invisible in icon-only mode
++    - Search-entry in the TreeView not working properly
++    - gtktoolbutton.c:562: warning: 'image' is used
++      uninitialized in this function
++    - reference count of textbuffer increases with each paste
++    - gtk_selection_data_get_uris leaks memory
++    Other changes:
++    - Remove GMemChunk from public header files to
++      support building against GLib 2.10
++    - Report errors in option parsing
++    - Merge upstream xdgmime changes to handle duplicate glob patterns
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat, 10 Dec 2005 18:22:50 +0100
++
++gtk+2.0 (2.8.8-1) experimental; urgency=low
++
++  * New upstream version:
++    GtkFileChooser:
++     - Make F2 work for renaming bookmarks
++    GtkEntry:
++     - Turn off input methods in password entries
++    - Other fixes * Documentation improvements
++    - Updated translations
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 29 Nov 2005 16:00:32 +0100
++
++gtk+2.0 (2.8.7-1) experimental; urgency=low
++
++  * New upstream version.
++  * Security fixes:
++    - Add check to XPM reader to prevent integer overflow for specially crafted
++      number of colors (CVE-2005-3186) (Closes: #339431).
++    - Fix endless loop with specially crafted number of colors (CVE-2005-2975).
++  * debian/patches/001_fs_documents.patch:
++    - updated.
++  * debian/rules:
++    - fix confusing cp usage.
++
++  [ Loic Minier ]
++  * Drop xlibs-dev deps and build-deps.
++    [debian/control, debian/control.in]
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 16 Nov 2005 11:54:11 +0100
++
++gtk+2.0 (2.8.3-1) experimental; urgency=low
++
++  * New upstream version:
++    - Fix problems with the handling of initial settings
++      for font options and cursor themes.
++    - Add a --ignore-theme-index option to gtk-update-icon-cache.
++
++ -- Jordi Mallach <jordi@debian.org>  Thu,  1 Sep 2005 19:45:50 +0200
++
++gtk+2.0 (2.8.2-1) experimental; urgency=low
++
++  * New upstream version:
++    - Fix a crash with custom icon themes, which affected
++      the gnome-theme-manager.
++    - Make sure font and cursor settings are propaged down
++      to the screen initially.
++  * debian/control.in:
++    - require the current pango.
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 25 Aug 2005 00:36:18 +0200
++
++gtk+2.0 (2.8.1-1) experimental; urgency=low
++
++  * New upstream version:
++    - gtk-update-icon-cache no longer stores copies of symlinked icons,
++      and it has a --index-only option to omit image data from the cache.
++    - Make large GtkSizeGroups more efficient.
++    - Improve positioning of menus in GtkToolbar.
++    - Make scrolling work on unrealized icon views.
++    - Avoid unnecessary redraws on range widgets.
++    - Make sure that all GTK+ applications reload icon themes promptly.
++    - Ensure that gdk_pango_get_context() and gtk_widget_get_pango_context()
++      use the same font options and dpi value.
++    - Multiple memory leak fixes.
++  * debian/control.in:
++    - updated the libgtk2.0-dev Depends according to the changes.
++  * debian/rules:
++    Add --enable-explicit-deps=yes to make sure stuff like x11 gets listed as a
++    Requires: in gdk(-x11)-2.0.pc, because otherwise linkage against -lX11 and
++    friends doesn't get carried through.  Whether or not this is correct is
++    arguable, since libgdk-x11-2.0.so.0* ends up linked against it anyway, but
++    stuff like gnome-panel seems to be relying on this transience.
++    Change by Daniel Stone.
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 24 Aug 2005 11:24:16 +0200
++
++gtk+2.0 (2.8.0-1) experimental; urgency=low
++
++  * New upstream version.
++  * debian/control.in:
++    - build with the new cairo (Closes: #323705).
++    - updated the Build-Depends for xorg (Closes: #323080).
++  * debian/copyright:
++    - use License instead of Copyright (Closes: #323209).
++  * debian/patches/001_fs_documents.patch:
++    - default to Documents.
++  * debian/rules:
++    - updated the shlibs.
++  * debian/watch:
++    - updated.
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 18 Aug 2005 12:19:41 +0200
++
++gtk+2.0 (2.7.2-1) experimental; urgency=low
++
++  * New upstream version.
++  * debian/control.in:
++    - updated the Build-Depends.
++  * debian/rules:
++    - updated the shlibs.
++    - use cairo.
++  * debian/watch:
++    - updated.
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 12 Jul 2005 01:06:55 +0200
++
++gtk+2.0 (2.6.8-1) unstable; urgency=low
++
++  * New upstream version.
++  * debian/patches/003_focus_issues.patch:
++    - fixed with the new version.
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 16 Jun 2005 12:52:35 +0200
++
++gtk+2.0 (2.6.7-2) unstable; urgency=low
++
++  * Upload to unstable.
++  * Forward patches from 2.6.4 branch:
++    + 003_focus_issues.patch: stolen from CVS HEAD to fix focus issues.
++    + debian/gtk-tutorial.devhelp: updated to reflect the reality of the
++      html files.
++  * Loïc Minier:
++    + Document the configuration of Emacs-style key bindings in README.Debian,
++      with additional instructions for GNOME users. [debian/README.Debian]
++      (Closes: #309530)
++
++ -- Josselin Mouette <joss@debian.org>  Mon,  6 Jun 2005 22:39:27 +0200
++
++gtk+2.0 (2.6.7-1) experimental; urgency=low
++
++  * New upstream version:
++    - Fix compilation with gcc 4.0 (Closes: #303646).
++  * debian/rules:
++    - clean from the mips changes.
++  * debian/patches/002_bmp.patch:
++    - the new version fixes that.
++  * debian/patches/004_fs_newdir.patch:
++    - the new version fixes that.
++
++ -- Sebastien Bacher <seb128@debian.org>  Thu, 14 Apr 2005 22:06:53 +0200
++
++gtk+2.0 (2.6.4-1) unstable; urgency=medium
++
++  * New upstream release.
++  * debian/patches/004_fs_newdir.patch:
++    - fix a crash in the fileselector when creating a directory.
++  * debian/patches/003_iconcache.patch:
++    - this bug is fixed in the new version.
++  * debian/patches/004_mipsbuild.patch:
++    - dropped, this change is not required.
++  * debian/patches/002_bmp.patch:
++     - fix CAN-2005-0891: BMP double free Dos (Closes: #303141).
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue,  5 Apr 2005 21:09:01 +0200
++
++gtk+2.0 (2.6.2-4) unstable; urgency=high
++
++  * Sjoerd Simons:
++    - debian/patches/003_iconcache.patch
++      + Updated. Let updateiconcache.c include config.h so it's correctly build
++        with large file support (Closes: #295777).
++  * Sebastien Bacher:
++    - debian/shlibs.local:
++      + dropped, fix the self depends (Closes: #296175).
++  * Loic Minier:
++    - debian/control*
++      + added gtk2-engines-pixbuf subsection and priority to sync with
++        the override.
++  * Use high urgency so that icon themes can propagate to testing.
++
++ -- Josselin Mouette <joss@debian.org>  Wed,  2 Mar 2005 22:28:38 +0100
++
++gtk+2.0 (2.6.2-3) unstable; urgency=low
++
++  * Patch from Steve Langasek <vorlon@debian.org>:
++    Add a --disable-testsuite argument to upstream configure, to permit
++    skipping the testsuite on architectures where large static binaries
++    are currently problematic (i.e., mips).  Closes: #295048.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun, 13 Feb 2005 19:23:39 +0100
++
++gtk+2.0 (2.6.2-2) unstable; urgency=low
++
++  * debian/libgtk2.0-bin.postinst:
++    - don't run gtk-update-icon-cache, the themes should do that
++      (Closes: #293568).
++  * debian/patches/003_iconcache.patch:
++    - should fix the gtk-update-icon-cache issue on sparc.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun,  6 Feb 2005 19:57:57 +0100
++
++gtk+2.0 (2.6.2-1) unstable; urgency=low
++
++  * New upstream release:
++    - fix the loop in gtkdialog (Closes: #291051).
++    - should fix the issue on sparc (Closes: #293711).
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun,  6 Feb 2005 00:16:52 +0100
++
++gtk+2.0 (2.6.1-2) unstable; urgency=low
++
++  * Upload to unstable.
++  * debian/patches/004_gtkmodules.patch:
++    - don't reverse the order of modules, that fix a crash with the modules.
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed,  2 Feb 2005 18:28:09 +0100
++
++gtk+2.0 (2.6.1-1) experimental; urgency=low
++
++  * New upstream release.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun,  9 Jan 2005 14:23:07 +0100
++
++gtk+2.0 (2.6.0-1) experimental; urgency=low
++
++  * New upstream release (Closes: #275239).
++  * debian/control.in:
++    - create a gtk2-engines-pixbuf package.
++    - recommends hicolor-icon-theme (Closes: #287334).
++    - rename libgtk2.0-dbg to libgtk2.0-0-dbg.
++    - updated the Build-Depends.
++  * debian/gtk2-engines-pixbuf.files:
++    - added.
++  * debian/libgtk2.0-bin.files:
++    - install gtk-update-icon-cache here.
++  * debian/libgtk2.0-bin.postinst:
++    - call gtk-update-icon-cache.
++  * debian/patches/001_gtk+-debian-aclocal-pass_all.patch:
++    - removed, should not be needed with the new version.
++  * debian/patches/003_treeview-typeahead.patch,
++    debian/patches/003_filechooser-search.patch,
++    debian/patches/004_treeview-activate.patch,
++    debian/patches/005_modifiers.patch:
++    - removed, these changes are in the new version.
++  * debian/rules:
++    - updated the shlibs.
++    - use dh_strip to make the debug package.
++  * update-gtk-immodules.in:
++  * update-gdkpixbuf-loaders.in:
++    - module version is 2.4.0.
++  * debian/watch:
++    - updated.
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 29 Dec 2004 18:55:11 +0100
++
++gtk+2.0 (2.4.14-2) unstable; urgency=low
++
++  * debian/patches/003_filechooser-search.patch:
++    - open the path entry if "/" is enter in the file-selector.
++  * debian/patches/004_treeview-activate.patch:
++    - typeahead active the row.
++  * debian/patches/005_modifiers.patch:
++    - accept shift-/ for bringing up the location popup.
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 21 Dec 2004 16:21:15 +0100
++
++gtk+2.0 (2.4.14-1) unstable; urgency=low
++
++  * New upstream release (Closes: #286021).
++  * debian/control.in:
++    - set myself as maintainer.
++  * debian/patches/003_treeview-typeahead.patch:
++    - backport of the typeahead feature for the treeviews.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun, 19 Dec 2004 14:55:07 +0100
++
++gtk+2.0 (2.4.13-1) unstable; urgency=low
++
++  * New upstream release:
++    - make new notebook tabs appear again (Closes: #276266).
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 13 Oct 2004 16:48:13 +0200
++
++gtk+2.0 (2.4.11-1) unstable; urgency=low
++
++  * New upstream release.
++
++ -- Sebastien Bacher <seb128@debian.org>  Mon, 11 Oct 2004 19:48:52 +0200
++
++gtk+2.0 (2.4.10-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/patches/002_xpmico.patch:
++    - updated, the two xpm fixes are in the new version.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun, 19 Sep 2004 00:19:27 +0200
++
++gtk+2.0 (2.4.9-2) unstable; urgency=high
++
++  * debian/patches/002_xpmico.patch:
++    - fix CAN-2004-0782 Heap-based overflow in pixbuf_create_from_xpm.
++    - fix CAN-2004-0783 Stack-based overflow in xpm_extract_color.
++    - fix CAN-2004-0788 ico loader integer overflow.
++
++ -- Sebastien Bacher <seb128@debian.org>  Fri, 17 Sep 2004 12:23:02 +0200
++
++gtk+2.0 (2.4.9-1) unstable; urgency=medium
++
++  * GNOME team upload.
++  * New upstream release.
++  * debian/patches/002_gtk+-pixbuf-breakage.patch: removed, included in
++    upstream version 2.4.8.
++
++ -- Jordi Mallach <jordi@debian.org>  Thu, 26 Aug 2004 14:41:17 +0200
++
++gtk+2.0 (2.4.7-1) unstable; urgency=medium
++
++  * GNOME team upload.
++  * New upstream release.
++  * debian/patches/002_gtk+-pixbuf-breakage.patch: new, apply patch
++    from CVS to fix thumbnail corruption in nautilus.
++
++ -- Jordi Mallach <jordi@debian.org>  Wed, 25 Aug 2004 20:12:28 +0200
++
++gtk+2.0 (2.4.4-2) unstable; urgency=medium
++
++  * Rebuilt with libtiff4.
++  * debian/control.in:
++    - Build-Depends on libtiff4-dev.
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed, 28 Jul 2004 23:11:54 +0200
++
++gtk+2.0 (2.4.4-1) unstable; urgency=low
++
++  * New upstream release
++    - fix the problem with directories displayed twice in the file chooser
++      (Closes: #249057).
++  * debian/control.in:
++    - libgtk2.0-bin Conflicts with old libgtk2.0-dev.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sun, 11 Jul 2004 00:33:45 +0200
++
++gtk+2.0 (2.4.3-3) unstable; urgency=low
++
++  * debian/control.in:
++    - since manpages have moved from libgtk2.0-dev to libgtk2.0-bin we need
++      to update the Replaces.
++
++ -- Sebastien Bacher <seb128@debian.org>  Mon,  5 Jul 2004 21:15:25 +0200
++
++gtk+2.0 (2.4.3-2) unstable; urgency=low
++
++  * debian/libgtk2.0-bin.files:
++    - moved gdk-pixbuf-query-loader and gtk-query-immodules-2.0 manpages
++      to libgtk2.0-bin. (Closes: #257399).
++  * debian/libgtk2.0-doc.doc-base.gtk-faq,
++    debian/libgtk2.0-doc.doc-base.gtk-tutorial:
++    - changed index.html with book1.html.
++  * Included devehelp files from Richard Cohen <richard@daijobu.co.uk>
++    for the faq and the tutorial (Closes: #256844).
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat,  3 Jul 2004 12:14:38 +0200
++
++gtk+2.0 (2.4.3-1) unstable; urgency=medium
++
++  * New upstream release
++    - fix the button size allocation logic (Closes: #253971, #253974).
++  * debian/rules
++    - updated the shlibs.
++
++ -- Sebastien Bacher <seb128@debian.org>  Tue, 15 Jun 2004 11:29:13 +0200
++
++gtk+2.0 (2.4.2-1) unstable; urgency=low
++
++  * New upstream release (Closes: #252690).
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat,  5 Jun 2004 17:23:57 +0200
++
++gtk+2.0 (2.4.1-4) unstable; urgency=low
++
++  * Conflict with librsvg2-common << 2.6.3-1 (closes: #250714, #250647).
++
++ -- Josselin Mouette <joss@debian.org>  Tue, 25 May 2004 14:15:22 +0200
++
++gtk+2.0 (2.4.1-3) unstable; urgency=low
++
++  * GNOME Team Upload.
++  * Upload to unstable
++    + close bug fixed in experimental uploads
++      (Closes: #161244, #201429, #201507, #203677, #208744, #223316, #228603)
++      (Closes: #232081, #234902, #238479, #241860)
++  * Marc Brockschmidt <he@debian.org>
++   + debian/rules: Really, *really* surpress warnings when removing directories
++     (using >/dev/null 2>&1 instead of 2>&1 >/dev/null)
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat, 22 May 2004 15:23:21 +0200
++
++gtk+2.0 (2.4.1-2) experimental; urgency=low
++
++  * debian/control.in:
++    + Conflict with old versions of packages that need a rebuild to work with
++      gtk+2.4 to force the updates.
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat, 15 May 2004 23:24:07 +0200
++
++gtk+2.0 (2.4.1-1) experimental; urgency=low
++
++  * New upstream release.
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/control:
++    - added libgtk2.0-0 to Depends for libgtk2.0-common. (from 2.2.4-6).
++    - libgtk2.0-dev requires libxext-dev. (Closes: #247469)
++  * Sebastien Bacher <seb128@debian.org>
++  + debian/rules:
++    - updated shlib to 2.4.1.
++
++ -- Sebastien Bacher <seb128@debian.org>  Wed,  5 May 2004 23:32:54 +0200
++
++gtk+2.0 (2.4.0-4) experimental; urgency=low
++
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/control:
++    - moved arch-independent files to libgtk2.0-common again.
++    - separated arch-dependent files to libgtk2.0-bin.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 24 Apr 2004 02:11:52 +0900
++
++gtk+2.0 (2.4.0-3) experimental; urgency=low
++
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/rules:
++    - modified the sed script to strip the version properly.
++      (closes: Bug#241860)
++    - clean up.
++  + debian/control:
++    - updated the dependencies for the separated xlibs-dev. (from 2.2.4-4)
++    - separated arch-independent data to libgtk2.0-data package.
++      (from 2.2.4-4)
++
++ -- Akira TAGOH <tagoh@debian.org>  Fri, 23 Apr 2004 22:43:58 +0900
++
++gtk+2.0 (2.4.0-2) experimental; urgency=low
++
++  * debian/control.in:
++    + Added build dependency on libxcursor-dev. (Closes: #239886)
++
++  Sebastien Bacher <seb128@debian.org>:
++  * debian/rules:
++    + Updated shver.
++  * debian/control.in:
++    + Added again Build-Depends removed in 2.4.0-1.
++
++ -- J.H.M. Dassen (Ray) <jdassen@debian.org>  Thu, 25 Mar 2004 11:18:48 +0100
++
++gtk+2.0 (2.4.0-1) experimental; urgency=low
++
++  * First upload of new GTK+ branch in experimental (Closes: #238479):
++    + back out locale-dependent interpretation of KP_Decimal (Closes: #234902).
++    + change scrolling method (Closes: #161244).
++    + first day of the week depends of the locale (Closes: #228603).
++    + fix fileselector multiple selection handling after keyboard validation
++      (Closes: #208744).
++    + fix gtktreeview crash when expanding nodes (Closes: #232081).
++    + fix quotes missing in gtk-2.0.m4 (Closes: #223316).
++    + use the new file selector (Closes: #203677, #201429, #201507).
++    + and probably a lot of other bug fixes and improvements ...
++  * Sebastien Bacher <seb128@debian.org>:
++    * debian/control.in:
++      - removed Build-Depends on docbook-utils and linuxdoc-tools-text.
++    * patches/001_gtk+-debian-docfix-dtds.patch:
++      - removed since we have a xml catalog now.
++  * Rob Taylor <robtaylor@fastmail.fm>:
++    * debian/control.in, debian/sources, debian/scripts/vars, debian/watch:
++      - updated for 2.4.0.
++    * debian/patches/:
++      - 002_gtk+-debian-freetype.patch:
++        + removed, not needed any more, configure already has the changes.
++      - 000_gtk+-2.2.4-non-weak-symbols.patch:
++        + removed, fixed in upstream source.
++      - 000_gtk+-2.2.4-socketfocus.patch:
++        + removed, fixed in upstream source.
++      - 001_gtk+-debian-aclocal-pass_all.patch :
++        + updated.
++      - 000_gtk+-2.2.0-buildfix-immodule.patch
++        + updated.
++      - 000_gtk+-debian-xinerama-pic.patch
++        + updated.
++
++ -- Sebastien Bacher <seb128@debian.org>  Mon, 22 Mar 2004 22:00:09 +0100
++
++gtk+2.0 (2.2.4-6) unstable; urgency=low
++
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/control:
++    - added libxt-dev to fix FTBFS. (closes: Bug#246450)
++    - added libgtk2.0-0 to Depends for libgtk2.0-common.
++
++ -- Akira TAGOH <tagoh@debian.org>  Tue,  4 May 2004 11:30:56 +0900
++
++gtk+2.0 (2.2.4-5) unstable; urgency=low
++
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/control:
++    - moved arch-independent files to libgtk2.0-common again.
++    - separated arch-dependent files to libgtk2.0-bin.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 24 Apr 2004 01:12:08 +0900
++
++gtk+2.0 (2.2.4-4) unstable; urgency=low
++
++  * Akira TAGOH <tagoh@debian.org>
++  + debian/rules:
++    - bumped the shlib version to 2.2.1-3. (closes: Bug#208671)
++  + debian/control:
++    - separated arch-independent data to libgtk2.0-data package.
++      (closes: Bug#233396)
++    - fixed the dependencies for the separated xlibs-dev.
++      (closes: Bug#241782, Bug#241522)
++  + debian/libgtk2.0-data.{dir,files}:
++    - added.
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu, 22 Apr 2004 00:42:02 +0900
++
++gtk+2.0 (2.2.4-3) unstable; urgency=low
++
++  * debian/patches/:
++    - 002_gtk+-debian-freetype.patch: patch from Daniel Schepler to fix the
++      build failure due to freetype (Closes: #225129).
++
++ -- Sebastien Bacher <seb128@debian.org>  Sat, 27 Dec 2003 13:00:17 +0100
++
++gtk+2.0 (2.2.4-2) unstable; urgency=low
++
++  * debian/control:
++    - added Uploaders to maintain as team.
++    - added gnome-pkg-tools to Build-Depends.
++  * debian/gtk-options.7:
++    - included a manpage with the help on the options (Closes: Bug#216897).
++  * debian/libgtk2.0-doc.doc-base.gtk-faq
++  * debian/libgtk2.0-doc.doc-base.gtk-tutorial:
++    - replaced book1.html by index.html (closes: Bug#215382).
++  * debian/patches/:
++    - 000_gtk+-2.2.4-socketfocus.patch: new patch to fix a GtkSocket focus
++      problem that hang the system tray applet.
++      (closes: Bug#210813, Bug#212772).
++    - 001_gtk+-ximian-gtk2-filesel-navbutton-5.patch: updated
++      (closes: Bug#216660).
++  * debian/rules:
++    - modified to generate debian/control using gnome-pkg-tools.
++
++ -- Sebastien Bacher <seb128@debian.org>  Fri, 31 Oct 2003 21:32:29 +0100
++
++gtk+2.0 (2.2.4-1) unstable; urgency=low
++
++  * New upstream release.
++    - implemented the im module that produces C_WITH_CEDILLA rather than
++      C_WITH_ACUTE for dead_acute+c combinations. it will be used as default
++      im module for fr and pt. (closes: Bug#168557)
++    - reworked the handling of XIM's status window. (closes: Bug#203009)
++  * debian/control:
++    - removed libgtk2.0-0png3 which is unnecessary anymore.
++    - added non-versioned Conflicts: libgtk2.0-0png3.
++    - bumped Standards-Version to 3.6.1.0.
++  * debian/patches/: removed the backported patches.
++    - 000_gtk+-2.2.2-docfix-gtk2compliant.patch
++    - 000_gtk+-2.2.2-docfix-gtktreemodel.patch
++    - 000_gtk+-2.2.2-gtkwidget-viewable.patch
++    - 000_gtk+-2.2.2-imxim-reconnect.patch
++
++ -- Akira TAGOH <tagoh@debian.org>  Mon,  8 Sep 2003 03:42:18 +0900
++
++gtk+2.0 (2.2.2-3) unstable; urgency=low
++
++  * debian/patches/:
++    - 000_gtk+-2.2.2-docfix-gtk2compliant.patch: applied a backported patch
++      from CVS to fix the old documentation. (closes: Bug#146723)
++    - 000_gtk+-2.2.2-docfix-gtktreemodel.patch: applied a backported patch
++      from CVS to fix the sample code. (closes: Bug#201322)
++    - 000_gtk+-2.2.2-gtkwidget-viewable.patch: applied a backported patch from
++      CVS to fix the garbled pixmaps. (closes: Bug#201808, Bug#202486)
++    - 000_gtk+-2.2.2-imxim-reconnect.patch: applied a backported patch from
++      CVS to fix the segfaults if the XIM server is killed during running gtk2
++      applications.
++    - 001_gtk+-debian-docfix-dtds.patch: applied to use the local DTD.
++  * debian/control:
++    - added Build-Depends-Indep: gtk-doc-tools, docbook-xml to re-generate the
++      fixed documents.
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu,  7 Aug 2003 01:42:46 +0900
++
++gtk+2.0 (2.2.2-2) unstable; urgency=low
++
++  * debian/patches/:
++    - 001_gtk+-debian-aclocal-pass_all.patch: re-applied a patch to fix FTBFS
++      on arm. (closes: Bug#201443)
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu, 24 Jul 2003 03:14:10 +0900
++
++gtk+2.0 (2.2.2-1) unstable; urgency=low
++
++  * New upstream release. (closes: Bug#200350)
++    - Fixed threadlocks on GtkTreeView. (closes: Bug#192136)
++    - Fixed the crash on moving the cursor when the cursor is invisible.
++      (closes: Bug#187858)
++    - Fixed the compose table for ascending order. (closes: Bug#182073)
++  * debian/control:
++    - fix the FTBFS. Thanks to Daniel Baeyens.
++    - bumped Standards-Version to 3.6.0.
++  * debian/rules:
++    - removed dh_undocumented.
++    - don't claim the newer shlibs.
++  * debian/patches/:
++    - 000_gtk+-2.2.1-gdk_event_copy_for_xinput.patch: removed.
++    - 000_gtk+-2.2.1-gdk_visual_get_best_with_depth.patch: removed.
++    - 000_gtk+-2.2.1-gtk_text_line_previous_could_contain_tag.patch: removed.
++    - 000_gtk+-2.2.1-gtktreeview-scroll.patch: removed.
++    - 000_gtk+-debian-xinerama-pic.patch: updated.
++    - 001_gtk+-debian-aclocal.patch: removed.
++    - 001_gtk+-ximian-gtk2-filesel-navbutton-5.patch: applied a Ximian patch
++      to improve the GtkFileSel UI. Requested from Ross Burton.
++    - 000_gtk+-2.2.2-non-weak-symbols.patch: applied to fix the undefined non
++      weak symbols. (closes: Bug#193774)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 13 Jul 2003 21:26:49 +0900
++
++gtk+2.0 (2.2.1-6) unstable; urgency=low
++
++  * debian/patches/001_gtk+-debian-aclocal.patch:
++    - damn. forgot to re-run automake and autoconf. fix again.
++      (closes: Bug#190569)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat,  3 May 2003 16:56:18 +0900
++
++gtk+2.0 (2.2.1-5) unstable; urgency=low
++
++  * debian/control:
++    - changed a section for libgtk2.0-dbg to libdevel.
++  * debian/patches/000_gtk+-debian-aclocal.patch:
++    - applied to fix Xinerama library linkage broken on arm and m68k.
++      (closes: Bug#190569)
++      Thanks to James Troup and Phil Blundell.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat,  3 May 2003 01:50:52 +0900
++
++gtk+2.0 (2.2.1-4) unstable; urgency=low
++
++  * debian/patches/:
++    - 000_gtk+-2.2.1-gtk_text_line_previous_could_contain_tag.patch:
++      applied a backported patch from CVS. (closes: Bug#185066)
++    - 000_gtk+-2.2.1-gtktreeview-scroll.patch:
++      applied a patch from Red Hat to fix infinite expose loops in TreeView.
++      (closes: Bug#187312)
++  * debian/control:
++    - bumped Standards-Version to 3.5.9.
++    - changed a section for libgtk2.0-dev to libdevel.
++  * debian/rules:
++    - fixed the symlinks on /usr/share/gtk-doc/html. (closes: Bug#183377)
++  * debian/compat:
++    - use it instead of DH_COMPAT.
++
++ -- Akira TAGOH <tagoh@debian.org>  Fri,  4 Apr 2003 01:55:35 +0900
++
++gtk+2.0 (2.2.1-3) unstable; urgency=low
++
++  * build against the latest xlibs and xlibs-pic. so now correct
++    libXinerama_pic.a is linked and supporting xinarama is re-enabled.
++    (closes: Bug#177318)
++  * debian/control:
++    - depend on xlibs-pic (>= 4.2.1-6)
++  * debian/README.Debian:
++    - improve description of static libraries issue. (closes: Bug#181879)
++      Thanks to Marcelo E. Magallon <mmagallo@debian.org>
++    - mention gtk-key-theme-name and gnome-settings-daemon.
++  * debian/rules:
++    - create the symlinks in /usr/share/gtk-doc
++
++ -- Akira TAGOH <tagoh@debian.org>  Mon,  3 Mar 2003 01:35:04 +0900
++
++gtk+2.0 (2.2.1-2) unstable; urgency=low
++
++  * debian/patches/:
++    - 000_gtk+-2.2.1-gdk_visual_get_best_with_depth.patch:
++      backport from CVS to fix wrong pointer returned. (closes: Bug#180786)
++    - 000_gtk+-2.2.1-gdk_event_copy_for_xinput.patch:
++      applied to fix a crash when using xinput. (closes: Bug#178908)
++
++ -- Akira TAGOH <tagoh@debian.org>  Wed, 19 Feb 2003 03:10:55 +0900
++
++gtk+2.0 (2.2.1-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/patches/: removed patches. they were fixed in this release.
++    - 000_gtk+-2.2.0-buildfix-modules.patch
++    - 000_gtk+-2.2.0-fix-es.po.patch
++    - 000_gtk+-2.2.0-fnmatch-undef.patch
++    - 002_gtk+-2.2.0-fixtypo-xinput.patch
++  * debian/patches/000_gtk+-debian-xinerama-pic.patch: update.
++
++ -- Akira TAGOH <tagoh@debian.org>  Fri,  7 Feb 2003 03:37:44 +0900
++
++gtk+2.0 (2.2.0-3) unstable; urgency=low
++
++  * debian/: clean the unnecessary files up. (closes: Bug#177809)
++  * debian/rules:
++    remove the old debug libraries on install process if exists. (closes:
++    Bug#177376)
++  * debian/patches/:
++    - 002_gtk+-2.2.0-fixtypo-xinput.patch:
++      fix to enable XFree86 xinput extension. (closes: Bug#176104)
++    - 000_gtk+-2.2.0-fix-es.po.patch:
++      applied to fix es.po. (closes: Bug#178870)
++
++ -- Akira TAGOH <tagoh@debian.org>  Wed, 29 Jan 2003 23:01:43 +0900
++
++gtk+2.0 (2.2.0-2) unstable; urgency=low
++
++  * debian/control:
++    - add Conflicts libgnomeui-0 (<< 2.0.6-2) to avoid the gtk+ 2.2 breakage.
++      (closes: Bug#175946)
++    - add Conflicts gtk2.0-examples (<< 2.2.0) (closes: Bug#175868)
++    - add dependency of libgtk2.0-common. (closes: Bug#175873)
++    - removed libgtk-common package. it's no longer needed. I hope the loop
++      dependency will be disappeared.
++    - used libpng12-0-dev instead of libpng3-dev for Build-Depends.
++  * debian/patches/001_gtk+-2.2.0-xinerama-pic.patch:
++    disabled Xinerama support until xlibs-pic has libXinerama_pic.a.
++    (closes: Bug#175923)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 11 Jan 2003 05:09:12 +0900
++
++gtk+2.0 (2.2.0-1) unstable; urgency=low
++
++  * New upstream release.
++    - upstream bug were closed. so it should be fixed. (closes: Bug#147697)
++  * debian/control:
++    - updated Build-Depends.
++    - bumped Standards-Version to 3.5.8.
++    - fix description-synopsis-ends-with-full-stop stuff.
++  * debian/update-gdkpixbuf-loaders: add brand-new wrapper script.
++  * debian/update-gdkpixbuf-loaders.1: add manpage.
++  * debian/rules:
++    modified to build the static libraries. (closes: Bug#161938)
++  * debian/README.Debian: updated.
++  * debian/patches/:
++    - 000_gtk+-2.0.6-extranotify.patch: removed.
++    - 000_gtk+-2.0.6-scroll_to.patch: removed.
++    - 000_gtk+-2.2.0-fnmatch-undef.patch:
++      applied to fix having main() in the library.
++    - 000_gtk+-2.2.0-buildfix-immodule.patch:
++      applied to build the static libraries.
++    - 000_gtk+-2.2.0-buildfix-modules.patch:
++      applied to fix a typo in configure.in.
++
++ -- Akira TAGOH <tagoh@debian.org>  Mon,  6 Jan 2003 18:34:31 +0900
++
++gtk+2.0 (2.0.9-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/patches/000_gtk+-2.0.8-refcolormap.patch: this release contains it.
++    removed.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 24 Nov 2002 00:08:42 +0900
++
++gtk+2.0 (2.0.8-2) unstable; urgency=low
++
++  * debian/patches/000_gtk+-2.0.8-refcolormap.patch: applied to fix the crash
++    problem with close. For solve your problem, I recommend you restart all
++    processes related gtk+2.0. (closes: Bug#169005)
++
++ -- Akira TAGOH <tagoh@debian.org>  Fri, 15 Nov 2002 09:16:40 +0900
++
++gtk+2.0 (2.0.8-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/patches/000_gtk+-2.0.7-gifsymbol.patch: it's no longer needed.
++  * debian/rules: fix twice called ldconfig. (closes: Bug#168071)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 10 Nov 2002 16:36:45 +0900
++
++gtk+2.0 (2.0.7-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/rules:
++    - support noopt option for DEB_BUILD_OPTIONS.
++    - add symlink for gobject. (closes: Bug#167755)
++  * Hm, closed a bug which is marked as NMU due to mis-upload. (closes:
++    Bug#166442)
++  * debian/patches: these patches are no longer needed, so removed.
++    - 000_gtk+-2.0.6-64bitfix.patch
++    - 000_gtk+-2.0.6-imenvvar.patch
++    - 000_gtk+-2.0.6-keycode.patch
++    - 000_gtk+-2.0.6-usintl.patch
++  * debian/patches/000_gtk+-2.0.7-gifsymbol.patch: applied to fix the
++    undefined symbol issue on libpixbufloader-gif.so.
++
++ -- Akira TAGOH <tagoh@debian.org>  Wed,  6 Nov 2002 01:42:22 +0900
++
++gtk+2.0 (2.0.6-4) unstable; urgency=low
++
++  * debian/patches/000_gtk+-2.0.6-64bitfix.patch: applied to fix a segfault on
++    IA64. (closes: Bug#166442)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 27 Oct 2002 03:07:59 +0900
++
++gtk+2.0 (2.0.6-3) unstable; urgency=low
++
++  * debian/control: moved libgtk2.0-0png3 to the last entry.
++  * debian/rule: fix invalid symlink.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 31 Aug 2002 09:46:36 +0900
++
++gtk+2.0 (2.0.6-2) unstable; urgency=low
++
++  * debian/control:
++    - bumped Standards-Version and depends debhelper (>> 4).
++    - revert to libgtk2.0-0 and remove Conflicts libgtk2.0-0, then add
++      versioned conflict to work eog2, gnome-panel2, celestia, gimp1.3 and
++      metatheme. (closes: Bug#155689, Bug#155854)
++    - add libgtk2.0-0png3 to Conflicts, Replaces.
++    - add a dummy package for libgtk2.0-0png3.
++    - remove the image libraries dependency. (closes: Bug#158858)
++    - clean up -dev's Depends.
++    - add libglib2.0-doc, libatk1.0-doc and libpango1.0-doc to Suggests.
++  * debian/patches/: from Red Hat.
++    - 000_gtk+-2.0.6-exportsymbols.patch:
++      applied to fix stripping the wrong symbols due to libtool's bug. but
++      it's not affected about the symbols used by ld and ld.so. mainly for nm,
++      gdb and etc.
++    - 000_gtk+-2.0.6-extranotify.patch:
++      applied to fix extra settings notifies on startup that were causing
++      significant performance problems as fonts were reloaded.
++    - 000_gtk+-2.0.6-imenvvar.patch:
++      applied to fix a bug with GTK_IM_MODULE environment variable.
++    - 000_gtk+-2.0.6-keycode.patch: applied to fix a problem with keycodes
++      passed to GtkIMContextXIM.
++    - 000_gtk+-2.0.6-usintl.patch:
++      applied to fix to GtkIMContextSimple compose for us-intl keyboards.
++      should be fixed. (closes: Bug#149515)
++    - 000_gtk+-2.0.6-scroll_to.patch:
++      applied to fix gtk_tree_view_scroll_to_cell.
++  * debian/rules: add symlink to fix the missing symlink for glib, atk and
++    pango. (closes: Bug#158107)
++  * debian/update-gtk-immodules.fr.1: added. Thanks Julien Louis. (closes:
++    Bug#156985)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 31 Aug 2002 05:22:33 +0900
++
++gtk+2.0 (2.0.6-1) unstable; urgency=low
++
++  * New upstream release.
++  * Build against libpng3 (closes: 147852)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun,  4 Aug 2002 18:31:53 +0900
++
++gtk+2.0 (2.0.5-2) unstable; urgency=low
++
++  * debian/rules: add --with-xinput=xfree. (closes: Bug#151668)
++  * debian/control:
++    - add Conflicts: libgdkxft0 to avoid some problem. (closes: Bug#151439).
++    - changed a summary from 'Dummy' to 'Empty'.
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu,  4 Jul 2002 00:18:53 +0900
++
++gtk+2.0 (2.0.5-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/control: fix typo (closes: Bug#150147)
++
++ -- Akira TAGOH <tagoh@debian.org>  Mon, 17 Jun 2002 01:07:20 +0900
++
++gtk+2.0 (2.0.4-1) unstable; urgency=low
++
++  * New upstream release.
++    - should be fixed in this release. (closes: Bug#149667)
++    - now it's not linked to the Pango docs (closes: Bug#149143)
++  * debian/libgtk2.0-doc.doc-base.{gdk,gdk-pixbuf,gtk,gtk-faq,gtk-tutorial}:
++    add a new line before Format: (closes: Bug#149548, Bug#150043)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 16 Jun 2002 05:16:29 +0900
++
++gtk+2.0 (2.0.3-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/libgtk2.0-doc.doc-base.{gtk-faq,gtk-tutorial}:
++    changed an index file.
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu, 30 May 2002 23:35:52 +0900
++
++gtk+2.0 (2.0.2-5) unstable; urgency=high
++
++  * debian/control: add libtiff3g-dev, libpng2-dev and libjpeg62-dev to
++    Depends for -dev.
++  * set urgency=high because previous version violated our policy 2.3.4.
++    it should be into woody as far as possible.
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu, 23 May 2002 00:31:52 +0900
++
++gtk+2.0 (2.0.2-4) unstable; urgency=high
++
++  * debian/patches/000_gtk+2.0-2.0.2-bigendian.patch: applied to fix a problem
++    for big endian machines. (closes: Bug#145285)
++  * set urgency=high because it should be in woody.
++
++ -- Akira TAGOH <tagoh@debian.org>  Wed,  1 May 2002 02:46:12 +0900
++
++gtk+2.0 (2.0.2-3) unstable; urgency=low
++
++  * debian/update-gtk-immodules: create /etc/gtk-2.0 directory for workaround,
++    if it's not found. oh, why didn't you have it? (closes: Bug#143508,
++    Bug#144673)
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 28 Apr 2002 04:46:30 +0900
++
++gtk+2.0 (2.0.2-2) unstable; urgency=low
++
++  * debian/libgtk2.0-doc.doc-base.{gtk-faq,gtk-tutorial}:
++    Grr, fix again... (closes: Bug#141069)
++  * debian/scripts/vars.build: fix bashism.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat,  6 Apr 2002 04:26:14 +0900
++
++gtk+2.0 (2.0.2-1) unstable; urgency=low
++
++  * New upstream release.
++    - this release has bug fix only.
++  * debian/control: forgot to update versioned dependency for -dev.
++  * debian/libgtk2.0-doc.doc-base.gtk-faq,
++    debian/libgtk2.0-doc.doc-base.gtk-tutorial:
++    fix wrong index. (closes: Bug#141069)
++
++ -- Akira TAGOH <tagoh@debian.org>  Thu,  4 Apr 2002 02:49:49 +0900
++
++gtk+2.0 (2.0.1-1) unstable; urgency=low
++
++  * New upstream release.
++  * debian/update-gtk-immodules: check the immodules directory.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sun, 31 Mar 2002 00:59:03 +0900
++
++gtk+2.0 (2.0.0-3) unstable; urgency=low
++
++  * debian/rules: removed regenerate shlibs. all packages no longer needs to
++    depend on -common.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 16 Mar 2002 21:51:08 +0900
++
++gtk+2.0 (2.0.0-2) unstable; urgency=low
++
++  * debian/control: changed Build-Depends to libpango1.0-dev (>= 1.0.0-3)
++  * debian/{control,rules}: add libgtk-common as dummy package for upgrading.
++  * debian/rules: fix the missing directory.
++  * debian/update-gtk-immodules: fix file attribute for gtk.immodules.
++
++ -- Akira TAGOH <tagoh@debian.org>  Sat, 16 Mar 2002 04:34:39 +0900
++
++gtk+2.0 (2.0.0-1) unstable; urgency=low
++
++  * Initial Release.
++
++ -- Akira TAGOH <tagoh@debian.org>  Wed, 13 Mar 2002 00:07:25 +0900
++
diff --cc debian/compat
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ec635144f60048986bc560c5576355344005e6e7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++9
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c5336492e868b1b34d8ec4ff45dc7c5995627a79
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,298 @@@
++Source: gtk+3.0
++Section: libs
++Priority: optional
++Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
++Uploaders: Andreas Henriksson <andreas@fatal.se>, Michael Biebl <biebl@debian.org>
++Build-Depends: debhelper (>= 9.20141010),
++               cdbs (>= 0.4.93),
++               gnome-pkg-tools (>= 0.11),
++               dpkg-dev (>= 1.17.14),
++               gtk-doc-tools (>= 1.20),
++               dh-autoreconf,
++               docbook-xml,
++               docbook-xsl,
++               pkg-config,
++               autotools-dev,
++               dbus <!nocheck>,
++               gsettings-desktop-schemas <!nocheck>,
++               adwaita-icon-theme <!nocheck>,
++               at-spi2-core <!nocheck>,
++               libglib2.0-dev (>= 2.49.4),
++               libgdk-pixbuf2.0-dev (>= 2.30.0),
++               libpango1.0-dev (>= 1.37.3),
++               libatk1.0-dev (>= 2.15.1),
++               libatk-bridge2.0-dev,
++               libegl1-mesa-dev [linux-any],
++               libepoxy-dev,
++               libfontconfig1-dev,
++               libharfbuzz-dev (>= 0.9),
++               libwayland-dev (>= 1.9.91) [linux-any],
++               wayland-protocols (>= 1.7) [linux-any],
++               libxkbcommon-dev (>= 0.2.0),
++               libx11-dev,
++               libxext-dev,
++               libxi-dev,
++               libxml2-utils,
++               libxrandr-dev (>= 2:1.5.0),
++               libxcursor-dev,
++               libxcomposite-dev,
++               libxdamage-dev,
++               libxkbfile-dev,
++               libxinerama-dev,
++               libxfixes-dev,
++               libcairo2-dev (>= 1.14.0),
++               libcups2-dev (>= 1.2),
++               libcolord-dev (>= 0.1.9),
++               librest-dev,
++               libjson-glib-dev,
++               gobject-introspection (>= 1.41.3),
++               libgirepository1.0-dev (>= 1.39.0),
++               xauth <!nocheck>,
++               xsltproc,
++               xvfb <!nocheck>,
++Build-Depends-Indep: libglib2.0-doc,
++                     libatk1.0-doc,
++                     libpango1.0-doc,
++                     libcairo2-doc
++Standards-Version: 3.9.8
++Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gtk+3.0/
++Vcs-Browser: https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/gtk+3.0/
++Homepage: http://www.gtk.org/
++
++Package: libgtk-3-0
++Architecture: any
++Multi-Arch: same
++Depends: libgtk-3-common (>= ${source:Version}),
++         ${misc:Depends},
++         ${shlibs:Depends},
++         hicolor-icon-theme,
++         adwaita-icon-theme,
++         shared-mime-info
++Provides: gtk3-binver-3.0.0
++Recommends: libgtk-3-bin
++Suggests: librsvg2-common,
++          gvfs
++Breaks: gnome-themes-standard (<< 3.6),
++        gtk3-engines-oxygen (<< 1.4.1-3)
++Pre-Depends: ${misc:Pre-Depends}
++Description: GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the shared libraries.
++
++Package: libgtk-3-0-udeb
++XC-Package-Type: udeb
++Section: debian-installer
++Priority: extra
++Architecture: any
++Depends: ${shlibs:Depends},
++         ${misc:Depends}
++Provides: gtk3-binver-3.0.0
++Description: GTK+ graphical user interface library - minimal runtime
++ This is a udeb, or a microdeb, for the debian-installer.
++ .
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the minimal runtime library using X11 needed
++ by the Debian installer.
++
++Package: libgtk-3-common
++Section: misc
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Recommends: libgtk-3-0
++Breaks: libgtk-3-0 (<< 3.5.4)
++Replaces: libgtk-3-0 (<< 3.5.4)
++Description: common files for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the common files which the libraries need.
++
++Package: libgtk-3-bin
++Section: misc
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends}, ${shlibs:Depends},
++         libgtk-3-0 (>= ${source:Version}),
++         libgtk-3-common (>= ${source:Version}),
++         gtk-update-icon-cache
++Description: programs for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the utilities which are used by the libraries
++ and other packages.
++
++Package: libgtk-3-dev
++Section: libdevel
++Architecture: any
++Multi-Arch: same
++Depends: libgtk-3-0 (= ${binary:Version}),
++         gir1.2-gtk-3.0 (= ${binary:Version}),
++         libgtk-3-common,
++         ${misc:Depends},
++         ${shlibs:Depends},
++         libglib2.0-dev (>= 2.49.4),
++         libgdk-pixbuf2.0-dev (>= 2.30.0),
++         libpango1.0-dev (>= 1.37.3),
++         libatk1.0-dev (>= 2.15.1),
++         libatk-bridge2.0-dev,
++         libcairo2-dev (>= 1.14.0),
++         libepoxy-dev (>= 1.0),
++         libfontconfig1-dev,
++         libx11-dev,
++         libxext-dev,
++         libxinerama-dev,
++         libxi-dev,
++         libxrandr-dev,
++         libxcursor-dev,
++         libxfixes-dev,
++         libxcomposite-dev,
++         libxdamage-dev,
++         pkg-config,
++         libegl1-mesa-dev [linux-any],
++         libwayland-dev (>= 1.9.91) [linux-any],
++         wayland-protocols (>= 1.7) [linux-any],
++         libxkbcommon-dev
++Suggests: libgtk-3-doc
++Description: development files for the GTK+ library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the header and development files which are
++ needed for building GTK+ applications.
++
++Package: libgtk-3-doc
++Section: doc
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Recommends: libglib2.0-doc,
++            libatk1.0-doc,
++            libpango1.0-doc
++Suggests: devhelp
++Description: documentation for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the HTML documentation for the GTK+ library
++ in /usr/share/doc/libgtk-3-doc/ .
++
++Package: gtk-3-examples
++Section: x11
++Priority: extra
++Architecture: any
++Depends: ${shlibs:Depends},
++         ${misc:Depends},
++         libgtk-3-0 (= ${binary:Version})
++Breaks: libgtk-3-common (<< 3.5.4)
++Replaces: libgtk-3-common (<< 3.5.4)
++Description: example files for GTK+ 3
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the example files and a demonstration program
++ for GTK+3.
++
++Package: gir1.2-gtk-3.0
++Section: introspection
++Architecture: any
++Multi-Arch: same
++Depends: libgtk-3-common,
++         ${misc:Depends},
++         ${shlibs:Depends},
++         ${gir:Depends}
++Breaks: python-gi (<< 3.18),
++        python3-gi (<< 3.18),
++Description: GTK+ graphical user interface library -- gir bindings
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package can be used by other packages using the GIRepository format to
++ generate dynamic bindings.
++
++Package: gtk-update-icon-cache
++Section: misc
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends},
++         ${shlibs:Depends}
++Breaks: libgtk2.0-bin (<< 2.24.30-2),
++        libgtk-3-bin (<< 3.20.6-1)
++Replaces: libgtk2.0-bin (<< 2.24.30-2),
++          libgtk-3-bin (<< 3.20.6-1)
++Description: icon theme caching utility
++ gtk-update-icon-cache creates mmap()able cache files for icon themes.
++ .
++ GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot
++ of system call and disk seek overhead when the application starts. Since the
++ format of the cache files allows them to be mmap()ed shared between multiple
++ applications, the overall memory consumption is reduced as well.
++
++Package: libgail-3-0
++Architecture: any
++Multi-Arch: same
++Depends: ${misc:Depends},
++         ${shlibs:Depends},
++         libgtk-3-0 (= ${binary:Version}),
++         at-spi2-core
++Pre-Depends: ${misc:Pre-Depends}
++Description: GNOME Accessibility Implementation Library -- shared libraries
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the shared library.
++
++Package: libgail-3-dev
++Architecture: any
++Multi-Arch: same
++Section: libdevel
++Depends: ${misc:Depends},
++         libgail-3-0 (= ${binary:Version}),
++         libgtk-3-dev (= ${binary:Version}),
++         pkg-config,
++         libatk1.0-dev
++Suggests: libgail-3-doc
++Description: GNOME Accessibility Implementation Library -- development files
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the development files for Gail.
++
++Package: libgail-3-doc
++Architecture: all
++Multi-Arch: foreign
++Section: doc
++Depends: ${misc:Depends}
++Suggests: devhelp
++Description: documentation files of the Gail library
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the documentation files for Gail.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..737654ed4339e5f3cfd7cdd266b2a2effa6a9129
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,298 @@@
++Source: gtk+3.0
++Section: libs
++Priority: optional
++Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
++Uploaders: @GNOME_TEAM@
++Build-Depends: debhelper (>= 9.20141010),
++               cdbs (>= 0.4.93),
++               gnome-pkg-tools (>= 0.11),
++               dpkg-dev (>= 1.17.14),
++               gtk-doc-tools (>= 1.20),
++               dh-autoreconf,
++               docbook-xml,
++               docbook-xsl,
++               pkg-config,
++               autotools-dev,
++               dbus <!nocheck>,
++               gsettings-desktop-schemas <!nocheck>,
++               adwaita-icon-theme <!nocheck>,
++               at-spi2-core <!nocheck>,
++               libglib2.0-dev (>= 2.49.4),
++               libgdk-pixbuf2.0-dev (>= 2.30.0),
++               libpango1.0-dev (>= 1.37.3),
++               libatk1.0-dev (>= 2.15.1),
++               libatk-bridge2.0-dev,
++               libegl1-mesa-dev [linux-any],
++               libepoxy-dev,
++               libfontconfig1-dev,
++               libharfbuzz-dev (>= 0.9),
++               libwayland-dev (>= 1.9.91) [linux-any],
++               wayland-protocols (>= 1.7) [linux-any],
++               libxkbcommon-dev (>= 0.2.0),
++               libx11-dev,
++               libxext-dev,
++               libxi-dev,
++               libxml2-utils,
++               libxrandr-dev (>= 2:1.5.0),
++               libxcursor-dev,
++               libxcomposite-dev,
++               libxdamage-dev,
++               libxkbfile-dev,
++               libxinerama-dev,
++               libxfixes-dev,
++               libcairo2-dev (>= 1.14.0),
++               libcups2-dev (>= 1.2),
++               libcolord-dev (>= 0.1.9),
++               librest-dev,
++               libjson-glib-dev,
++               gobject-introspection (>= 1.41.3),
++               libgirepository1.0-dev (>= 1.39.0),
++               xauth <!nocheck>,
++               xsltproc,
++               xvfb <!nocheck>,
++Build-Depends-Indep: libglib2.0-doc,
++                     libatk1.0-doc,
++                     libpango1.0-doc,
++                     libcairo2-doc
++Standards-Version: 3.9.8
++Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gtk+3.0/
++Vcs-Browser: https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/gtk+3.0/
++Homepage: http://www.gtk.org/
++
++Package: @SHARED_PKG@
++Architecture: any
++Multi-Arch: same
++Depends: @COMMON_PKG@ (>= ${source:Version}),
++         ${misc:Depends},
++         ${shlibs:Depends},
++         hicolor-icon-theme,
++         adwaita-icon-theme,
++         shared-mime-info
++Provides: @GTK_BINVER_DEP@
++Recommends: @BIN_PKG@
++Suggests: librsvg2-common,
++          gvfs
++Breaks: gnome-themes-standard (<< 3.6),
++        gtk3-engines-oxygen (<< 1.4.1-3)
++Pre-Depends: ${misc:Pre-Depends}
++Description: GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the shared libraries.
++
++Package: @UDEB_PKG@
++XC-Package-Type: udeb
++Section: debian-installer
++Priority: extra
++Architecture: any
++Depends: ${shlibs:Depends},
++         ${misc:Depends}
++Provides: @GTK_BINVER_DEP@
++Description: GTK+ graphical user interface library - minimal runtime
++ This is a udeb, or a microdeb, for the debian-installer.
++ .
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the minimal runtime library using X11 needed
++ by the Debian installer.
++
++Package: @COMMON_PKG@
++Section: misc
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Recommends: @SHARED_PKG@
++Breaks: @SHARED_PKG@ (<< 3.5.4)
++Replaces: @SHARED_PKG@ (<< 3.5.4)
++Description: common files for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the common files which the libraries need.
++
++Package: @BIN_PKG@
++Section: misc
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends}, ${shlibs:Depends},
++         @SHARED_PKG@ (>= ${source:Version}),
++         @COMMON_PKG@ (>= ${source:Version}),
++         gtk-update-icon-cache
++Description: programs for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the utilities which are used by the libraries
++ and other packages.
++
++Package: @DEV_PKG@
++Section: libdevel
++Architecture: any
++Multi-Arch: same
++Depends: @SHARED_PKG@ (= ${binary:Version}),
++         gir1.2-gtk-3.0 (= ${binary:Version}),
++         @COMMON_PKG@,
++         ${misc:Depends},
++         ${shlibs:Depends},
++         libglib2.0-dev (>= 2.49.4),
++         libgdk-pixbuf2.0-dev (>= 2.30.0),
++         libpango1.0-dev (>= 1.37.3),
++         libatk1.0-dev (>= 2.15.1),
++         libatk-bridge2.0-dev,
++         libcairo2-dev (>= 1.14.0),
++         libepoxy-dev (>= 1.0),
++         libfontconfig1-dev,
++         libx11-dev,
++         libxext-dev,
++         libxinerama-dev,
++         libxi-dev,
++         libxrandr-dev,
++         libxcursor-dev,
++         libxfixes-dev,
++         libxcomposite-dev,
++         libxdamage-dev,
++         pkg-config,
++         libegl1-mesa-dev [linux-any],
++         libwayland-dev (>= 1.9.91) [linux-any],
++         wayland-protocols (>= 1.7) [linux-any],
++         libxkbcommon-dev
++Suggests: @DOC_PKG@
++Description: development files for the GTK+ library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the header and development files which are
++ needed for building GTK+ applications.
++
++Package: @DOC_PKG@
++Section: doc
++Architecture: all
++Multi-Arch: foreign
++Depends: ${misc:Depends}
++Recommends: libglib2.0-doc,
++            libatk1.0-doc,
++            libpango1.0-doc
++Suggests: devhelp
++Description: documentation for the GTK+ graphical user interface library
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the HTML documentation for the GTK+ library
++ in /usr/share/doc/@DOC_PKG@/ .
++
++Package: @EXAMPLES_PKG@
++Section: x11
++Priority: extra
++Architecture: any
++Depends: ${shlibs:Depends},
++         ${misc:Depends},
++         @SHARED_PKG@ (= ${binary:Version})
++Breaks: @COMMON_PKG@ (<< 3.5.4)
++Replaces: @COMMON_PKG@ (<< 3.5.4)
++Description: example files for GTK+ 3
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package contains the example files and a demonstration program
++ for GTK+3.
++
++Package: gir1.2-gtk-3.0
++Section: introspection
++Architecture: any
++Multi-Arch: same
++Depends: @COMMON_PKG@,
++         ${misc:Depends},
++         ${shlibs:Depends},
++         ${gir:Depends}
++Breaks: python-gi (<< 3.18),
++        python3-gi (<< 3.18),
++Description: GTK+ graphical user interface library -- gir bindings
++ GTK+ is a multi-platform toolkit for creating graphical user
++ interfaces. Offering a complete set of widgets, GTK+ is suitable
++ for projects ranging from small one-off tools to complete application
++ suites.
++ .
++ This package can be used by other packages using the GIRepository format to
++ generate dynamic bindings.
++
++Package: gtk-update-icon-cache
++Section: misc
++Architecture: any
++Multi-Arch: foreign
++Depends: ${misc:Depends},
++         ${shlibs:Depends}
++Breaks: libgtk2.0-bin (<< 2.24.30-2),
++        libgtk-3-bin (<< 3.20.6-1)
++Replaces: libgtk2.0-bin (<< 2.24.30-2),
++          libgtk-3-bin (<< 3.20.6-1)
++Description: icon theme caching utility
++ gtk-update-icon-cache creates mmap()able cache files for icon themes.
++ .
++ GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot
++ of system call and disk seek overhead when the application starts. Since the
++ format of the cache files allows them to be mmap()ed shared between multiple
++ applications, the overall memory consumption is reduced as well.
++
++Package: libgail-3-0
++Architecture: any
++Multi-Arch: same
++Depends: ${misc:Depends},
++         ${shlibs:Depends},
++         @SHARED_PKG@ (= ${binary:Version}),
++         at-spi2-core
++Pre-Depends: ${misc:Pre-Depends}
++Description: GNOME Accessibility Implementation Library -- shared libraries
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the shared library.
++
++Package: libgail-3-dev
++Architecture: any
++Multi-Arch: same
++Section: libdevel
++Depends: ${misc:Depends},
++         libgail-3-0 (= ${binary:Version}),
++         @DEV_PKG@ (= ${binary:Version}),
++         pkg-config,
++         libatk1.0-dev
++Suggests: libgail-3-doc
++Description: GNOME Accessibility Implementation Library -- development files
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the development files for Gail.
++
++Package: libgail-3-doc
++Architecture: all
++Multi-Arch: foreign
++Section: doc
++Depends: ${misc:Depends}
++Suggests: devhelp
++Description: documentation files of the Gail library
++ Gail implements ATK interfaces for GTK+ widgets which are dynamically
++ loadable at runtime by a GTK+ application. Once loaded, those parts of
++ an application that use standard GTK+ widgets will have a basic level
++ of accessibility, without the need to modify the application at all.
++ .
++ This package contains the documentation files for Gail.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4a35143d325aac2a00be752c37fabccfb8cf24fd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,646 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: gtk+
++Source: https://download.gnome.org/sources/gtk+/
++
++Files: *
++Copyright: Copyright (C) 1986, 1987, 1998  The Open Group
++           Copyright (C) 1993 Robert Nation
++           Copyright (C) 1997-2010 The GTK+ Team
++           Copyright (C) 1991-1993, 1995, 1999-2010 Free Software Foundation, Inc.
++           Copyright (C) 1995, 1996, 1997, 1998 Steffen Beyer
++           Copyright (C) 1996-2007, 2009 Sun Microsystems, Inc.
++           Copyright (C) 1998 David Abilleira Freijeiro <odaf@nexo.es>
++           Copyright (C) 1998 Lars Hamann and Stefan Jeske
++           Copyright (C) 1998 Cesar Miquel and Shawn T. Amundson
++           Copyright (C) 1995-2007 Peter Mattis, Spencer Kimball and Josh MacDonald
++           Copyright (C) 1995-2007 Ryan Lortie
++           Copyright (C) 1998, 2002 Owen Taylor
++           Copyright (C) 1998 Elliot Lee
++           Copyright (C) 1998 Shawn T. Amundson
++           Copyright (C) 1998-2004 Tor Lillqvist
++           Copyright (C) 1998-2001, 2005, 2006 Tim Janik
++           Copyright (C) 1998-2007, 2010 Red Hat, Inc.
++           Copyright (C) 1998 Stanislav Brabec <utx@k332.feld.cvut.cz>
++           Copyright (C) 1998 Jiří Pavlovský <pavlovsk@ff.cuni.cz>
++           Copyright (C) 1999 Mark Crichton, Larry Ewing
++           Copyright (C) 1999 Michael Zucchi
++           Copyright (C) 2000 Keith Packard
++           Copyright (C) 2000 SuSE Linux Ltd
++           Copyright (C) 2001 CodeFactory AB
++           Copyright (C) 2001 Havoc Pennington
++           Copyright (C) 2001 Stefan Ondrejicka
++           Copyright (C) 2001 Archaeopteryx Software Inc.
++           Copyright (C) 2001-2005 Hans Breuer
++           Copyright (C) 2001,2002,2004 Anders Carlsson <andersca@gnu.org>
++           Copyright (C) 2001-2003, 2006, 2007, 2009, 2010 Kristian Rietveld <kris@gtk.org>
++           Copyright (C) 2002 Sayed Jaffer Al-Mosawi <mosawi@arabeyes.org>
++           Copyright (C) 2002 Naba Kumar <kh_naba@users.sourceforge.net>
++           Copyright (C) 2002 James Henstridge <james@daa.com.au>
++           Copyright (C) 2003, 2004 Raymond Penners <raymond@dotsphinx.com>
++           Copyright (C) 2003, 2004 Dom Lachowicz <cinamod@hotmail.com>
++           Copyright (C) 2003, 2004 Soeren Sandmann <sandmann@daimi.au.dk>
++           Copyright (C) 2003, 2004, 2006, 2009 Matthias Clasen <mclasen@redhat.com>
++           Copyright (C) 2003 Takuro Ashie
++           Copyright (C) 2003-2004 Kazuki IWAMOTO
++           Copyright (C) 2003 Apple Computer, Inc.
++           Copyright (C) 2003 Ricardo Fernandez Pascual
++           Copyright (C) 2003 Alex Graveley
++           Copyright (C) 2004 Paolo Borelli
++           Copyright (C) 2004, 2009, 2010 Nokia Corporation
++           Copyright (C) 2004-2006 Christian Hammond
++           Copyright (C) 2004 Lorenzo Gil Sanchez
++           Copyright (c) 2004 James M. Cape <jcape@ignore-your.tv>
++           Copyright (C) 2004-2009 GNOME Foundation
++           Copyright (C) 2005 Paolo Maggi
++           Copyright (C) 2005 Jamie McCracken <jamiemcc@gnome.org>
++           Copyright (C) 2005 Ronald S. Bultje
++           Copyright (C) 2005-2007 Vincent Untz
++           Copyright (C) 2005,2007-2009 Carlos Garnacho <carlosg@gnome.org>
++           Copyright (C) 2005-2008 Imendio AB
++           Copyright (C) 2005 Novell, Inc.
++           Copyright (C) 2005-2007 Emmanuele Bassi
++           Copyright (C) 2006 Alexander Larsson <alexl@redhat.com>
++           Copyright (C) 2006 John (J5) Palmieri <johnp@redhat.com>
++           Copyright (C) 2006-2008, 2010 Christian Persch
++           Copyright (C) 2006,2008 Jan Arne Petersen
++           Copyright (C) 2006 Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
++           Copyright (C) 2006-2007 Async Open Source
++           Copyright (C) 2006-2010 Openismus GmbH
++           Copyright (C) 2007 John Stowers, Neil Jagdish Patel
++           Copyright (C) 2007-2009 Cody Russell
++           Copyright (C) 2008 Tristan Van Berkom <tristan.van.berkom@gmail.com>
++           Copyright (C) 2008 Tadej Borovšak <tadeboro@gmail.com>
++           Copyright (C) 2008 Jaap Haitsma <jaap@haitsma.org>
++           Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
++           Copyright (C) 2009 Bastien Nocera
++           Copyright (C) 2009 Stefan Walter <stef@memberwebs.com>
++           Copyright (C) 2009 Ghee Teo <ghee.teo@sun.com>
++           Copyright (C) 2010 Codethink Limited
++           Copyright (C) 2010 Christian Dywan
++           Copyright (C) 2010 Xandru Armesto <xandru@softastur.org>
++           Copyright (C) 2010 Damyan Ivanov <dam+gnome@ktnx.net>
++           Copyright (C) 2010 Sadia Afroz <sadia@ankur.org.bd>
++           Copyright (C) 2010 Israt Jahan <israt@ankur.org.bd>
++           Copyright (C) Federico Mena
++           Copyright (C) Christian Kellner <gicmo@gnome.org>
++           Copyright (C) David Zeuthen <davidz@redhat.com>
++           Copyright (C) Javier Jardón <jjardon@gnome.org>
++License: LGPL-2+
++ This library 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 library is distributed in the hope that it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
++ for more details.
++ .
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ 02110-1301  USA.
++ .
++ See /usr/share/common-licenses/LGPL-2 on your debian system.
++
++Files: gtk/gtkcomboboxtext.h
++       gtk/gtktoolpaletteprivate.h
++       gtk/gtktoolitemgroup.*
++       gtk/gtktoolpalette.c
++       gtk/gtkaboutdialog.h
++       gtk/gtktoolpaletteprivate.c
++       gtk/org.gtk.Settings.FileChooser.gschema.xml
++Copyright: Copyright (C) 2010 Christian Dywan
++           Copyright (C) 2008 Openismus GmbH
++           Copyright (C) 2001 CodeFactory AB
++           Copyright (C) 2001 Anders Carlsson <andersca@codefactory.se>
++           Copyright (C) 2003, 2004 Matthias Clasen <mclasen@redhat.com>
++           Copyright (C) 2010 Christian Persch
++License: LGPL-2.1+
++ This library 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 library is distributed in the hope that it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
++ for more details.
++ .
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ 02110-1301  USA.
++ .
++ See /usr/share/common-licenses/LGPL-2.1 on your debian system.
++
++Files: po/*
++       po-properties/*
++Copyright: Copyright (C) 1998-2010 The Free Software Foundation, Inc.
++           Copyright (C) 1999, 2003-2010 The GTK+ Team
++           Copyright (C) 2004 Zuza Software Foundation <info@translate.org.za>
++           Copyright (C) 2008-2010 F Wolff <friedel@translate.org.za>
++           Copyright (C) 2002 Ge'ez Frontier Foundation <locales@geez.org>
++           Copyright (C) 2004 GNOME Foundation
++           Copyright (C) 2004 James Johnson <modean52@comcast.net>
++           Copyright (C) 2004 David Lodge <dave@cirt.net>
++           Copyright (C) 2004 Ayman Hourieh <aymanh@gmail.com>
++           Copyright (C) 2002 Sayed Jaffer Al-Mosawi <mosawi@arabeyes.org>
++           Copyright (C) 2002 Isam Bayazidi <bayazidi@arabeyes.org>
++           Copyright (C) 2003, 2004 Arafat Medini <lumina@silverpen.de>
++           Copyright (C) 2004 Ayman Hourieh <aymanh@gmail.com>
++           Copyright (C) 2006 Djihed Afifi <djihed@gmail.com>
++           Copyright (C) 2006 Seba Barto <nanoosaamar@yahoo.com>
++           Copyright (C) 2008 Anas Afif Emad <anas.e87@gmail.com>
++           Copyright (C) 2006-2010 Khaled Hosny <khaledhosny@eglug.org>
++           Copyright (C) 2006, 2008 Amitakhya Phukan <aphukan@redhat.com>
++           Copyright (C) 2008 Amitakhya Phukan <amitakhya@svn.gnome.org>
++           Copyright (C) 2009 Amitakhya Phukan <aphukan@fedoraproject.org>
++           Copyright (C) 2007 Rosetta Contributors and Canonical Ltd
++           Copyright (C) 2007 Xose S. Puente <xspuente@gmail.com>
++           Copyright (C) 2004 Amir Hedayaty <amir@bamdad.org>
++           Copyright (C) 2000 Vasif Ismailoglu MD <azerb_linux@hotmail.com>
++           Copyright (C) 2003, 2004 Mətin Əmirov <metin@karegen.com>
++           Copyright (C) 2006 Alaksandar Navicki <zolak@lacinka.org>
++           Copyright (C) 2001-2003 Ales Nyakhaychyk <i18n@infonet.by>
++           Copyright (C) 2005 Vital Khilko <vk@altlinux.ru>
++           Copyright (C) 2005 Ales Nyakhaychyk <nab@mail.by>
++           Copyright (C) 2002 Borislav Aleksandrov <B.Aleksandrov@CNsys.bg>
++           Copyright (C) 2002 Yanko Kaneti <yaneti@declera.com>
++           Copyright (C) 2004, 2005 Vladimir Petkov <kaladan@gmail.com>
++           Copyright (C) 2005-2010 Alexander Shopov <ash@kambanaria.org>
++           Copyright (C) 2007 Runa Bhattacharjee <runabh@gmail.com>
++           Copyright (C) 2008-2010 Runa Bhattacharjee <runab@redhat.com>
++           Copyright (C) 2004 Sayamindu Dasgupta <unmadindu@Softhome.net>
++           Copyright (C) 2004, 2005 Progga <progga@BengaLinux.Org>
++           Copyright (C) 2007 Runa Bhattacharjee <runabh@gmail.com>
++           Copyright (C) 2008, 2009 Runa Bhattacharjee <runab@redhat.com>
++           Copyright (C) 2009 Maruf Ovee <maruf@ankur.org.bd>
++           Copyright (C) 2004 Rosetta Contributors and Canonical Ltd
++           Copyright (C) 2004 Thierry Vignaud <tvignaud@mandriva.com>
++           Copyright (C) 2005-2008 Alan Monfort <alan.monfort@free.fr>
++           Copyright (C) 2009 Jamy <jamybzh@fre.fr>
++           Copyright (C) 2004 Kenan Hadžiavdić <kenanh@frisurf.no>
++           Copyright (C) 2004 Kenan Hadžiavdić <kenan@bgnett.no>
++           Copyright (C) 1999, 2000 Ivan Vilata i Balaguer <ivan@selidor.net>
++           Copyright (C) 2000-2002 Softcatala <gnome@softcatala.net>
++           Copyright (C) 2002-2006 Jordi Mallach <jordi@sindominio.net>
++           Copyright (C) 2003 Mireia Farrús <mifarrus@hotmail.com>
++           Copyright (C) 2005, 2006 Josep Puigdemont <josep.puigdemont@gmail.com>
++           Copyright (C) 2008-2010 David Planella <david.planella@gmail.com>
++           Copyright (C) 1999, 2000 Ivan Vilata i Balaguer <ivan@selidor.net>
++           Copyright (C) 2000-2002 Softcatala <gnome@softcatala.net>
++           Copyright (C) 2002-2006 Jordi Mallach <jordi@sindominio.net>
++           Copyright (C) 2003 Mireia Farrús <mifarrus@hotmail.com>
++           Copyright (C) 2005, 2006 Josep Puigdemont <josep.puigdemont@gmail.com>
++           Copyright (C) 2008-2010 David Planella <david.planella@gmail.com>
++           Copyright (C) 2009, 2010 Reşat SABIQ <tilde.birlik@gmail.com>
++           Copyright (C) 2003, 2004, 2005 Miloslav Trmac <mitr@volny.cz>
++           Copyright (C) 2006 Lukas Novotny <lukasnov@cvs.gnome.org>
++           Copyright (C) 2002 Jiří Lebl <jirka@5z.com>
++           Copyright (C) 2002 Michal Bukovjan <bukm@centrum.cz>
++           Copyright (C) 2003-2005 Miloslav Trmac <mitr@volny.cz>
++           Copyright (C) 2006 Jakub Friedl <jfriedl@suse.cz>
++           Copyright (C) 2006 Lukas Novotny <lukasnov@cvs.gnome.org>
++           Copyright (C) 2007-2010 Petr Kovar <pknbe@volny.cz>
++           Copyright (C) 2002 Rhoslyn Prys <rhoslyn.prys@ntlworld.com>
++           Copyright (C) 2003, 2004 Dafydd Harries <daf@muse.19inch.net>
++           Copyright (C) 2004-2006 Rhys Jones <rhys@sucs.org>
++           Copyright (C) 2009 Iestyn Pryce <dylunio@gmail.com>
++           Copyright (C) 1999, 2000 Kenneth Christiansen
++           Copyright (C) 2000 Keld Simonsen <keld@dkuug.dk>
++           Copyright (C) 2001-2004 Ole Laursen <olau@hardworking.dk>
++           Copyright (C) 2005 Martin Willemoes Hansen <mwh@sysrq.dk>
++           Copyright (C) 2005 Marie Lund <marielund@post.cybercity.dk>
++           Copyright (C) 2007-2010 Ask Hjorth Larsen <asklarsen@gmail.com>
++           Copyright (C) 2001, 2002 Matthias Warkus <mawarkus@gnome.org>
++           Copyright (C) 2002-2004 Christian Neumair <chris@gnome-de.org>
++           Copyright (C) 2004-2009 Hendrik Richter <hendrikr@gnome.org>
++           Copyright (C) 2004, 2005 Hendrik Brandt <heb@gnome-de.org>
++           Copyright (C) 2008 Andre Klapper <ak-47@gmx.net>
++           Copyright (C) 2009, 2010 Mario Blättermann <mariobl@gnome.org>
++           Copyright (C) 2009, 2010 Christian Kirbach <Christian.Kirbach@googlemail.com>
++           Copyright (C) 1999, 2001, 2002 Simos Xenitellis <simos@hellug.gr>
++           Copyright (C) 2003-2008 Nikos Charonitakis <nikox@gmail.com>
++           Copyright (C) 2003 Nikos Kannelopoulos <nkan@panafonet.gr>
++           Copyright (C) 2002-2007 Kostas Papadimas <pkst@gnome.org>
++           Copyright (C) 2006 Simos Xenitellis <simos@gnome.org>
++           Copyright (C) 2009 Jennie Petoumenou <epetoumenou@gmail.com>
++           Copyright (C) 2009 Simos Xenitellis <simos@gnome.org>
++           Copyright (C) 2004 Adam Weinberger and the GNOME Foundation
++           Copyright (C) 2004 Adam Weinberger <adamw@gnome.org>
++           Copyright (C) 2004 Abigail Brady <morwen@evilmagic.org>
++           Copyright (C) 2004 Gareth Owen <gowen72@yahoo.com>
++           Copyright (C) 2009, 2010 Bruce Cowan <bcowan@fastmail.co.uk>
++           Copyright (C) 2007 Antono VASILJEV <antono.vasiljev@gmail.com>
++           Copyright (C) 2007 Guillaume SAVATON <llumeao@gmail.com>
++           Copyright (C) 1998-2000 Pablo Saratxaga <srtxg@chanae.alphanet.ch>
++           Copyright (C) 2001 José Antonio Salgueiro A. <joseantsa@eresmas.net>
++           Copyright (C) 2002 Carlos Perelló Marín <carlos@gnome-db.org>
++           Copyright (C) 2002 Germán Poo-Caamaño <gpoo@ubiobio.cl>
++           Copyright (C) 2002, 2003 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
++           Copyright (C) 2003 Juan Manuel García Molina <juanma_gm@wanadoo.es>
++           Copyright (C) 2003-2006 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
++           Copyright (C) 2007-2010 Jorge González <jorgegonz@svn.gnome.org>
++           Copyright (C) 2007-2010 The GNOME Project.
++           Copyright (C) 2002-2004 Tõivo Leedjärv <toivo linux ee>
++           Copyright (C) 2004, 2005 Priit Laes <amd tt ee>
++           Copyright (C) 2005-2010 Ivar Smolin <okul linux ee>
++           Copyright (C) 2009-2010 Mattias Põldaru <mahfiaz gmail com>
++           Copyright (C) 1999-2000 Joseba Bidaurrazaga van Dierdonck <gcpbivaj@lg.ehu.es>
++           Copyright (C) 2004 Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>
++           Copyright (C) 2004-2006, 2008-2010 Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>
++           Copyright (C) 2007 Iñaki Larrañaga Murgoitio <dooteo@zundan.com>
++           Copyright (C) 2000, 2002, 2003, 2004, 2005 Sharif FarsiWeb, Inc.
++           Copyright (C) 2000, 2002-2005 Roozbeh Pournader <roozbeh@farsiweb.info>
++           Copyright (C) 2005 Meelad Zakaria <meelad@bamdad.org>
++           Copyright (C) 2004 Sami Pesonen <sampeson@iki.fi>
++           Copyright (C) 2000-2005 Pauli Virtanen
++           Copyright (C) 2005-2009 Ilkka Tuohela <hile@iki.fi>
++           Copyright (C) 2009-2010 Tommi Vainikainen <thv@iki.fi>
++           Copyright (C) 2009 Jiri Grönroos <jiri.gronroos@iki.fi>
++           Copyright (C) 2000-2006 Christophe Merlet <redfox@redfoxcenter.org>
++           Copyright (C) 20002 Christophe Fergeau <christophe.fergeau@laposte.net>
++           Copyright (C) 2003 David Bellot <david.bellot@inrialpes.fr>
++           Copyright (C) 2006 Benoît Dejean <benoit@placenet.org>
++           Copyright (C) 2006-2007 Jonathan Ernst <jonathan@ernstfamily.ch>
++           Copyright (C) 2006-2008 Robert-André Mauchin <zebob.m@pengzone.org>
++           Copyright (C) 2007-2008 Stéphane Raimbault <stephane.raimbault@gmail.com>
++           Copyright (C) 2007-2010 Claude Paroz <claude@2xlibre.net>
++           Copyright (C) 2008 Yannick Tailliez <ytdispatch-libre@yahoo.com>
++           Copyright (C) 2009 Laurent Coudeur <laurentc@iol.ie>
++           Copyright (C) 2004 Alastair McKinstry <mckinstry@computer.org>
++           Copyright (C) 2005 Alan Horkan <horkan@maths.tcd.ie>
++           Copyright (C) 2007-2010 Seán de Búrca <leftmostcat@gmail.com>
++           Copyright (C) 1999, 2000 Jesus Bravo Alvarez <jba@pobox.com>
++           Copyright (C) 2005, 2006 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
++           Copyright (C) 2008 Ignacio Casal Quinteiro <icq@svn.gnome.org>
++           Copyright (C) 2009 Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>
++           Copyright (C) 2009 Antón Méixome <meixome@mancomun.org>
++           Copyright (C) 2009 Anton Meixome <certima@certima.net>
++           Copyright (C) 2009, 2010 Fran Dieguez <frandieguez@ubuntu.com>
++           Copyright (C) 2004 MagNet <magnet@magnet-i.com>
++           Copyright (C) 2005, 2006 Ankit Patel <ankit644@yahoo.com>
++           Copyright (C) 2007, 2009 Ankit Patel <ankit@redhat.com>
++           Copyright (C) 2008-2010 Sweta Kothari <swkothar@redhat.com>
++           Copyright (C) 2000 Tzafrir Cohen <tzafrir@technion.ac.il>
++           Copyright (C) 2002, 2004 Gil 'Dolfin' Osher <dolfin@rpg.org.il>
++           Copyright (C) 2006 Yair Hershkovitz <yairhr@gmail.com>
++           Copyright (C) 2003 G Karunakar <karunakar@freedomink.org>
++           Copyright (C) 2004 Ravishankar Shrivastava <raviratlami@yahoo.com>
++           Copyright (C) 2005, 2006, 2009 Rajesh Ranjan <rranjan@redhat.com>
++           Copyright (C) 2009 Manoj Kumar Giri <mgiri@redhat.com>
++           Copyright (C) 2009 Rajesh Ranjan <rajesh672@gmail.com>
++           Copyright (C) 1999-2002 Szabolcs Ban <shooby at gnome dot hu>
++           Copyright (C) 2002 Andras Timar <timar at gnome dot hu>
++           Copyright (C) 2004, 2005 Laszlo Dvornik <dvornik at gnome dot hu>
++           Copyright (C) 2004, 2005, 2007-2010 Gabor Kelemen <kelemeng at gnome dot hu>
++           Copyright (C) 2005 Lilit Azizbekyan <l@freenet.am>
++           Copyright (C) 2005 Lilit Sargsyan <magicliliac@yahoo.co.uk>
++           Copyright (C) 2005 Norayr Chilingaryan <norik@freenet.am>
++           Copyright (C) 2006 Ahmad Riza H Nst  <rizahnst@gnome.org>
++           Copyright (C) 2003 Mohammad DAMT <mdamt@bisnisweb.com>
++           Copyright (C) 2007 Michael Terry <mike@mterry.name>
++           Copyright (C) 2003 Richard Allen <ra@ra.is>
++           Copyright (C) 2000-2002 Christopher Gabriel <cgabriel@gnu.org>
++           Copyright (C) 2003-2007 Alessio Dessì <alessiodessi@tiscali.it>
++           Copyright (C) 2007-2010 Luca Ferretti <lferrett@gnome.org>
++           Copyright (C) 2000, 2001 Yukihiro Nakai <nakai@gnome.gr.jp>
++           Copyright (C) 2002, 2009, 2010 Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
++           Copyright (C) 2002 Akira TAGOH <tagoh@gnome.gr.jp>
++           Copyright (C) 2003-2009 Takeshi AIHANA <takeshi.aihana@gmail.com>
++           Copyright (C) 2003 KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>
++           Copyright (C) 2006 Satoru SATOh <ss@gnome.gr.jp>
++           Copyright (C) 2009-2010 Nishibori Kiyotaka <ml.nishibori.kiyotaka@gmail.com>
++           Copyright (C) 2005 Gia Shervashidze <giasher@telenet.ge>
++           Copyright (C) 2007, 2008 Vladimer Sichinava ვლადიმერ სიჭინავა <vsichi@gnome.org>
++           Copyright (C) 2006-2010 Kibavuidi Nsiangani <lundombe01@zaya-dio.com>
++           Copyright (C) 2007-2010 Shankar Prasad <svenkate@redhat.com>
++           Copyright (C) 2002-2010 Changwod Ryu <cwryu@debian.org>
++           Copyright (C) 2008, 2009 Erdal Ronahi <erdal dot ronahi at gmail dot com>
++           Copyright (C) 2003 Mathieu van Woerkom <mathieu@brabants.org>
++           Copyright (C) 2000-2004 Gediminas Paulauskas <menesis@delfi.lt>
++           Copyright (C) 2004 Tomas Kuliavas <tokul@users.sourceforge.net>
++           Copyright (C) 2004-2007, 2010 Žygimantas Beručka <zygis@gnome.org>
++           Copyright (C) 2006 Mantas Kriaučiūnas <mantas@akl.lt>
++           Copyright (C) 2007 Gintautas Miliauskas <gintas@akl.lt>
++           Copyright (C) 2008, 2010 Rimas Kudelis <rq@akl.lt>
++           Copyright (C) 2009 Gintautas Miliauskas <gintautas@miliauskas.lt>
++           Copyright (C) 2006, 2007, 2009 Raivis Dejus <orvils@gmail.com>
++           Copyright (C) 2008 BOSS GNU/Linux <bosslinux@cdac.in>
++           Copyright (C) 20009 Rajesh Ranjan <rranjan@redhat.com>
++           Copyright (C) 2009 Rajesh Ranjan <rajesh672@gmail.com>
++           Copyright (C) 2006 The GNOME Foundation
++           Copyright (C) 2004 John C Barstow <jbowtie@amathaine.com>
++           Copyright (C) 2002 Ivan Stojmirov <stojmir@linux.net.mk>
++           Copyright (C) 2004 Tomislav Markovski <herrera@users.sourceforge.net>
++           Copyright (C) 2005 Арангел Ангов <ufo@linux.net.mk>
++           Copyright (C) 2006 Arangel Angov <ufo@linux.net.mk>
++           Copyright (C) 2006, 2007 Jovan Naumovski <jovan@lugola.net>
++           Copyright (C) 2007 Arangel Angov <arangel@linux.net.mk>
++           Copyright (C) 2003 FSF-India <locale@gnu.org.in>
++           Copyright (C) 2006, 2007, 2009 Ani Peter <apeter@redhat.com>
++           Copyright (C) 2008 Hari Vishnu <harivishnu@gmail.com>
++           Copyright (C) 2003 OpenMN team
++           Copyright (C) 2003 2004 Sanlig Badral <badral@openmn.org>
++           Copyright (C) 2004 Sayamindu Dasgupta <unmadindu@Softhome.net>
++           Copyright (C) 2003 Swapnil Hajare <dreamil1000a@yahoo.com>
++           Copyright (C) 2004 Pradeep Deshpande <npdeshpande@vsnl.net>
++           Copyright (C) 2006 Rahul Bhalerao <b.rahul.pm@gmail.com>
++           Copyright (C) 2008, 2009 Sandeep Shedmake <sandeep.shedmake@gmail.com>
++           Copyright (C) 2009, 2010 Sandeep Shedmake <sshedmak@redhat.com>
++           Copyright (C) 2002 Hasbullah Bin Pit (sebol)<sebol@ikhlas.com>
++           Copyright (C) 2009, 2010 Russell Kyaw <rkyaw@yahoo.com>
++           Copyright (C) 2005 Terance Edward Sola <terance@lyse.net>
++           Copyright (C) 2008 Rosetta Contributors and Canonical Ltd 2008
++           Copyright (C) 2009 Nils-Christoph Fiedler <fiedler@medienkompanie.de>
++           Copyright (C) 2004 Pawan Chitrakar <pawan@nplinux.org>
++           Copyright (C) 2005 Jyotshna Shrestha <shresthajyo@hotmail.com>
++           Copyright (C) 2005 Ganesh Ghimire <gghimire@gmail.com>
++           Copyright (C) 2005 Jaydeep Bhusal <zaydeep@hotmail.com>
++           Copyright (C) 2006 Shyam Krishna Bal <shyamkrishna_bal@yahoo.com>
++           Copyright (C) 2006 Shiva Pokharel <pokharelshiva@hotmail.com>
++           Copyright (C) 2006 Mahesh subedi <submanesh@hotmail.com>
++           Copyright (C) 2002 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
++           Copyright (C) 2002 Ronald Hummelink <ronald@hummelink.xs4all.nl>
++           Copyright (C) 2002-2010 Tino Meinen <tino.meinen@gmail.com>
++           Copyright (C) 2009 Reinout van Schouwen <reinouts@gnome.org>
++           Copyright (C) 1998-2001 Kjartan Maraas <kmaraas@gnome.org>
++           Copyright (C) 2001-2002 Roy-Magne Mo <rmo@sunnmore.net>
++           Copyright (C) 2003, 2004 Åsmund Skjæveland <aasmunds@fys.uio.no>
++           Copyright (C) 2008, 2009 Eskild Hustvedt <eskildh@gnome.org>
++           Copyright (C) 2009 Åsmund Skjæveland <aasmunds@ulrik.uio.no>
++           Copyright (C) 2004 Zuza Software Foundation <info@translate.org.za>
++           Copyright (C) 2006-2008 Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>
++           Copyright (C) 2005 Gora Mohanty <gora_mohanty@yahoo.co.in>
++           Copyright (C) 2006 Subhransu Behera <arya_subhransu@yahoo.co.in>
++           Copyright (C) 2008, 2009, 2010 Manoj Kumar Giri <mgiri@redhat.com>
++           Copyright (C) 2004 Amanpreet Singh Alam <amanlinux@netscape.net>
++           Copyright (C) 2005-2009 Amanpreet Singh Alam <aalam@users.sf.net>
++           Copyright (C) 2009, 2010 A S Alam <aalam@users.sf.net>
++           Copyright (C) 2004 Gustavo Noronha Silva <kov@debian.org>
++           Copyright (C) 2004 Alex Camacho Castilho <gnomebr@uol.com.br>
++           Copyright (C) 2004, 2005 Afonso Celso Medina <medina@maua.br>
++           Copyright (C) 2006 Raphael Higino <In Memoriam>
++           Copyright (C) 2007 Og Maciel <ogmaciel@gnome.org>
++           Copyright (C) 2007 Pedro Vaz Mello de Medeiros <pedrovmm@gmail.com>
++           Copyright (C) 2008 Henrique P Machado <zehrique@gmail.com>
++           Copyright (C) 2008 Fábio Nogueira <deb-user-ba@ubuntu.com>
++           Copyright (C) 2006-2009 Leonardo Ferreira Fontenelle <leonardof@gnome.org>
++           Copyright (C) 2009 Vladimir Melo <vmelo@gnome.org>
++           Copyright (C) 2009 André Gondim <andregondim@ubuntu.com>
++           Copyright (C) 2009, 2010 Jonh Wendell <jwendell@gnome.org>
++           Copyright (C) 2001-2010 Duarte Loreto <happyguy_pt@hotmail.com>
++           Copyright (C) 1999, 2000 Dan Damian <dand@gnome.ro>
++           Copyright (C) 2001, 2002 Marius Andreiana <marius galuna.ro>
++           Copyright (C) 2003-2010 Mișu Moldovan <dumol@gnome.ro>
++           Copyright (C) 2009, 2010 Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
++           Copyright (C) 2000-2002 Valek Filippov <frob@df.ru>
++           Copyright (C) 2002-2004 Dmitry Mastrukov <dmitry@taurussoft.org>
++           Copyright (C) 2002 Sun G11n <gnome_int_l10n@ireland.sun.com>
++           Copyright (C) 2003 Andrew W. Nosenko <awn@bcs.zp.ua>
++           Copyright (C) 2004-2006 Leonid Kanter <leon@asplinux.ru>
++           Copyright (C) 2006 Alexander Sigachov <alexander.sigachov@gmail.com>
++           Copyright (C) 2007 Vasiliy Faronov <qvvx@yandex.ru>
++           Copyright (C) 2008 Anton Shestakov <engored@ya.ru>
++           Copyright (C) 2009 Lebedev Roman <roman@lebedev.com>
++           Copyright (C) 2004 Steve Murphy <murf@e-tools.com>
++           Copyright (C) 2004 Philibert Ndandali  <philinda@mail.rw>
++           Copyright (C) 2004 Viateur MUGENZI <muvia@hotmail.com>
++           Copyright (C) 2004 Noëlla Mupole <s24211045@tuks.co.za>
++           Copyright (C) 2004 Carole Karema <karemacarole@hotmail.com>
++           Copyright (C) 2007 Danishka Navin <danishka@gmail.com>
++           Copyright (C) 2001, 2002, 2004 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
++           Copyright (C) 2005, 2008 Marcel Telka <marcel@telka.sk>
++           Copyright (C) 2006-2010 Pavol Šimo <palo.simo@gmail.com>
++           Copyright (C) 2006 Matic Žgur <mr.zgur@gmail.com>
++           Copyright (C) 2007 Martin Srebotnjak <miles@filmsi.net>
++           Copyright (C) 2007 Matej Urbančič <mateju@svn.gnome.org>
++           Copyright (C) 2003 Besnik Bleta <besnikbleta@hotmail.com>
++           Copyright (C) 2003-2009 Laurent Dhima <laurenti@alblinux.net>
++           Copyright (C) 2003-2007 Courtesy of Prevod.org team (http://prevod.org/)
++           Copyright (C) 2000-2005 Christian Rose <menthos@menthos.com>
++           Copyright (C) 2006-2010 Daniel Nylander <po@danielnylander.se>
++           Copyright (C) 2001-2003 Dinesh Nadarajah <n_dinesh@yahoo.com>
++           Copyright (C) 2006 Felix <ifelix25@gmail.com>
++           Copyright (C) 2009 I. Felix <ifelix@redhat.com>
++           Copyright (C) 2005 Prajasakti Localisation Team <localisation@prajasakti.com>
++           Copyright (C) 2007 Sunil Mohan Adapa <sunilmohan@gnu.org.in>
++           Copyright (C) 2008, 2009 Krishna Babu K <kkrothap@redhat.com>
++           Copyright (C) 2003, 2004 Paisa Seeluangsawat <paisa@users.sf.net>
++           Copyright (C) 2005-2010 Theppitak Karoonboonyanan <thep@linux.thai.net>
++           Copyright (C) 2004 Gurban Mühemmet Tewekgeli <gmtavakkoli@yahoo.com>
++           Copyright (C) 2003 Arman Aksoy <armish@linux-sevenler.de
++           Copyright (C) 2002 Ömer Fadıl USTA <omer_fad@hotmail.com>
++           Copyright (C) 2001, 2002 Nilgün Belma Bugüner <nilgun@fide.org>
++           Copyright (C) 1999-2001 Fatih Demir <kabalak@gtranslator.org>
++           Copyright (C) 2001 Görkem Cetin <gorkem@gelecek.com.tr>
++           Copyright (C) 2006-2009 Baris Cicek <baris@teamforce.name.tr>
++           Copyright (C) 2005 Albert Fazlí <tatarish.l10n@gmail.com>
++           Copyright (C) 2008 Rosetta Contributors and Canonical Ltd
++           Copyright (C) 2008 Ömerjan Tursunqasim <omarjan14@qq.com>
++           Copyright (C) 1999, 2004 Yuri Syrota <rasta@cvs.gnome.org>
++           Copyright (C) 2004-2010 Maxim Dziumanenko <dziumanenko@gmail.com>
++           Copyright (C) 2009 wanderlust <wanderlust@ukr.net>
++           Copyright (C) 2003, 2004 Mashrab Kuvatov <kmashrab@uni-bremen.de>
++           Copyright (C) 2008 Nurali Abdurahmonov <mavnur@gmail.com>
++           Copyright (C) 2003, 2004 Mashrab Kuvatov <kmashrab@uni-bremen.de>
++           Copyright (C) 2008 Nurali Abdurahmonov <mavnur@gmail.com>
++           Copyright (C) 2000-2002 Hoang Ngoc Tu <hntu@gmx.de>
++           Copyright (C) 2000-2002 Joern v. Kattchee <kattchee@cs.tu-berlin.de>
++           Copyright (C) 2002-2004, 2007-2009 Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
++           Copyright (C) 2005-2010 Clytie Siddall <clytie@riverland.net.au>
++           Copyright (C) 2001, 2003-2006 Pablo Saratxaga <pablo@walon.org>
++           Copyright (C) 2005 Canonical Ltd.
++           Copyright (C) 2005 Translation World CC in South Africa
++           Copyright (C) 2003 Raphael Finkel <raphael@cs.uky.edu>
++           Copyright (C) 2000 辛立仁 <hsin@med.cgu.edu.tw>
++           Copyright (C) 2000 Chih-Wei Huang <cwhuang@linux.org.tw>
++           Copyright (C) 2001 Abel Cheung <maddog@linux.org.hk>
++           Copyright (C) 2001 He Qiangqiang <carton@263.net>
++           Copyright (C) 2003, 2004 Funda Wang <fundawang@linux.net.cn>
++           Copyright (C) 2007 Yang Zhang <zyangmath@gmail.com>
++           Copyright (C) 2008, 2009 Deng Xiyue <manphiz@gmail.com>
++           Copyright (C) 2008, 2009 Funda Wang <fundawang@gmail.com>
++           Copyright (C) 2009, 2010 Hinker <hinkerliu@gmail.com>
++License: LGPL-2+
++ This library 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 library is distributed in the hope that it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
++ for more details.
++ .
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ 02110-1301  USA.
++ .
++ See /usr/share/common-licenses/LGPL-2 on your debian system.
++
++Files: gdk/win32/wintab.h
++       gdk/win32/pktdef.h
++Copyright: Copyright (C) 1991-1998 LCS/Telegraphics
++License: other
++ The text and information contained in this file may be freely used,
++ copied, or distributed without compensation or licensing restrictions.
++
++Files: gtk/gtktexttag.*
++       gtk/gtktextmark.*
++       gtk/gtktextsegment.c
++       gtk/gtktextchild.c
++       gtk/gtktextchildprivate.h
++       gtk/gtktextbtree.c
++Copyright: Copyright (C) 1992-1994 The Regents of the University of California.
++           Copyright (C) 1994-1997 Sun Microsystems, Inc.
++           Copyright (C) 2000      Red Hat, Inc.
++License: other
++ This software is copyrighted by the Regents of the University of
++ California, Sun Microsystems, Inc., and other parties.  The
++ following terms apply to all files associated with the software
++ unless explicitly disclaimed in individual files.
++ .
++ The authors hereby grant permission to use, copy, modify,
++ distribute, and license this software and its documentation for any
++ purpose, provided that existing copyright notices are retained in
++ all copies and that this notice is included verbatim in any
++ distributions. No written agreement, license, or royalty fee is
++ required for any of the authorized uses.  Modifications to this
++ software may be copyrighted by their authors and need not follow
++ the licensing terms described here, provided that the new terms are
++ clearly indicated on the first page of each file where they apply.
++ .
++ IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY
++ PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
++ DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION,
++ OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED
++ OF THE POSSIBILITY OF SUCH DAMAGE.
++ .
++ THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
++ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
++ NON-INFRINGEMENT.  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
++ AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE
++ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
++ .
++ GOVERNMENT USE: If you are acquiring this software on behalf of the
++ U.S. government, the Government shall have only "Restricted Rights"
++ in the software and related documentation as defined in the Federal
++ Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
++ are acquiring the software on behalf of the Department of Defense,
++ the software shall be classified as "Commercial Computer Software"
++ and the Government shall have only "Restricted Rights" as defined
++ in Clause 252.227-7013 (c) (1) of DFARs.  Notwithstanding the
++ foregoing, the authors grant the U.S. Government and others acting
++ in its behalf permission to use and distribute the software in
++ accordance with the terms specified in this license.
++
++Files: gtk/gtktextdisplay.*
++       gtk/gtktextlayout.*
++Copyright: Copyright (C) 1992-1994 The Regents of the University of California.
++           Copyright (C) 1994-1997 Sun Microsystems, Inc.
++           Copyright (C) 2000      Red Hat, Inc.
++License: LGPL-2+ or other
++ This software is copyrighted by the Regents of the University of
++ California, Sun Microsystems, Inc., and other parties.  The
++ following terms apply to all files associated with the software
++ unless explicitly disclaimed in individual files.
++ .
++ The authors hereby grant permission to use, copy, modify,
++ distribute, and license this software and its documentation for any
++ purpose, provided that existing copyright notices are retained in
++ all copies and that this notice is included verbatim in any
++ distributions. No written agreement, license, or royalty fee is
++ required for any of the authorized uses.  Modifications to this
++ software may be copyrighted by their authors and need not follow
++ the licensing terms described here, provided that the new terms are
++ clearly indicated on the first page of each file where they apply.
++ .
++ IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY
++ PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
++ DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION,
++ OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED
++ OF THE POSSIBILITY OF SUCH DAMAGE.
++ .
++ THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
++ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
++ NON-INFRINGEMENT.  THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
++ AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE
++ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
++ .
++ GOVERNMENT USE: If you are acquiring this software on behalf of the
++ U.S. government, the Government shall have only "Restricted Rights"
++ in the software and related documentation as defined in the Federal
++ Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2).  If you
++ are acquiring the software on behalf of the Department of Defense,
++ the software shall be classified as "Commercial Computer Software"
++ and the Government shall have only "Restricted Rights" as defined
++ in Clause 252.227-7013 (c) (1) of DFARs.  Notwithstanding the
++ foregoing, the authors grant the U.S. Government and others acting
++ in its behalf permission to use and distribute the software in
++ accordance with the terms specified in this license.
++ .
++ or
++ .
++ This library 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 library is distributed in the hope that it will be useful, but WITHOUT
++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
++ for more details.
++ .
++ You should have received a copy of the GNU Lesser General Public
++ License along with this library; if not, write to the
++ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ 02110-1301  USA.
++ .
++ See /usr/share/common-licenses/LGPL-2 on your debian system.
++
++Files:
++ gdk/broadway/rawinflate.min.js
++ debian/missing-sources/zlib.js-0.1.6
++Copyright: © 2012 imaya
++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.
++
++Files:
++ debian/missing-sources/zlib.js-0.1.6/closure-primitives
++Copyright: © 2006-2010 The Closure Library Authors
++License: Apache-2.0
++ Licensed under the Apache License, Version 2.0 (the "License");
++ you may not use this file except in compliance with the License.
++ You may obtain a copy of the License at
++ .
++      https://www.apache.org/licenses/LICENSE-2.0
++ .
++ Unless required by applicable law or agreed to in writing, software
++ distributed under the License is distributed on an "AS-IS" BASIS,
++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ See the License for the specific language governing permissions and
++ limitations under the License.
++Comment:
++ On Debian systems a copy of the Apache License, Version 2.0 can be
++ found in /usr/share/common-licenses/Apache-2.0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9038727d6e0080cf3aa7ca11c3c0d25cb9dc6f35
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/girepository-1.0/
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6ad24cd97366cbe0ce83f2873b4274b1350d8911
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# from the source
++examples/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..05b649abb67166d34499aab68b52b4e75b9afa1f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++usr/bin/gtk-encode-symbolic-svg
++usr/bin/gtk3-demo
++usr/bin/gtk3-demo-application
++usr/bin/gtk3-icon-browser
++usr/bin/gtk3-widget-factory
++usr/share/applications/gtk3-demo.desktop
++usr/share/applications/gtk3-icon-browser.desktop
++usr/share/applications/gtk3-widget-factory.desktop
++usr/share/icons/hicolor/*/*/gtk3-widget-factory*
++usr/share/icons/hicolor/*/*/gtk3-demo*
++usr/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml
++usr/share/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
++usr/share/man/*/gtk-encode-symbolic-svg.*
++usr/share/man/*/gtk3-demo.*
++usr/share/man/*/gtk3-demo-application.*
++usr/share/man/*/gtk3-icon-browser.*
++usr/share/man/*/gtk3-widget-factory.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3c4895f489d09697a5969659496736d3a8a08b19
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++../../../debian/update-icon-caches usr/sbin/
++usr/bin/gtk-update-icon-cache
++usr/share/man/man1/gtk-update-icon-cache.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7f64d98c33ac5998281ed8c5faed851d98fb0780
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/update-icon-caches.8
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..121eb260c321ccdaa0c691e862f0e6a9e6259e77
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++#!/bin/sh
++set -e
++
++# Clean up existing diversions from libgtk-3-bin
++if dpkg --compare-versions "$2" lt "3.20.5-2" ; then
++    dpkg-divert --remove --package libgtk-3-bin --rename \
++        --divert /usr/sbin/update-icon-caches.gtk2 \
++        /usr/sbin/update-icon-caches
++    dpkg-divert --remove --package libgtk-3-bin --rename \
++        --divert /usr/share/man/man8/update-icon-caches.gtk2.8.gz \
++        /usr/share/man/man8/update-icon-caches.8.gz
++fi
++
++#DEBHELPER#
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8550f77859ac8aa8f7329df77ff00f926ee69574
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libgail*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..932510abbbf42cae7dd4ebff5a4626b1581766ea
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++libgailutil-3.so.0 libgail-3-0 #MINVER#
++ gail_misc_add_attribute@Base 3.0.0
++ gail_misc_buffer_get_run_attributes@Base 3.0.0
++ gail_misc_get_default_attributes@Base 3.0.0
++ gail_misc_get_extents_from_pango_rectangle@Base 3.0.0
++ gail_misc_get_index_at_point_in_layout@Base 3.0.0
++ gail_misc_get_origins@Base 3.0.0
++ gail_misc_layout_get_run_attributes@Base 3.0.0
++ gail_text_util_buffer_setup@Base 3.0.0
++ gail_text_util_get_substring@Base 3.0.0
++ gail_text_util_get_text@Base 3.0.0
++ gail_text_util_get_type@Base 3.0.0
++ gail_text_util_new@Base 3.0.0
++ gail_text_util_text_setup@Base 3.0.0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ed55ce7af42545551756548c727944401ec24aee
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++usr/include/gail*
++usr/lib/*/libgail*.so
++usr/lib/*/pkgconfig/gail*.pc
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a68c9d3488422cdb766d15f33d735e1026886bec
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++Document: gail-reference-3
++Title: Gail Reference Manual
++Author: Padraig O'Briain <padraig.obriain@sun.com>
++Abstract: This manual describes APIs for libgail-util
++Section: Accessibility
++
++Format: HTML
++Index: /usr/share/gtk-doc/html/gail-libgail-util3/index.html
++Files: /usr/share/gtk-doc/html/gail-libgail-util3/*.html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9760670641515b18702f98afc1d08612dadad5f9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/share/gtk-doc/html/gail*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..79258d386e4722f877f73ff9dc59bb4a60646091
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++/usr/share/gtk-doc/html/gail-libgail-util3 /usr/share/doc/libgail-3-doc/html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..62e7ea4de856b6ec25c58e7906ff396944148903
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/libg?k*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..140526cca5e08fcb19d5a08bf374ff664b7f62de
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++usr/bin/gtk-query-immodules-3.0 @LIBDIR@/@SHARED_PKG@
++@MODULES_BASE_PATH@/immodules/*.so
++@MODULES_BASE_PATH@/printbackends/*.so
++@LIBDIR@/libgtk*.so.*
++@LIBDIR@/libgdk*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8c713974daba95554ca99eafb2e30d4409fdc1a3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/share/doc/@COMMON_PKG@/@NEWS@ usr/share/doc/@SHARED_PKG@/@NEWS@
++usr/share/doc/@COMMON_PKG@/@README@ usr/share/doc/@SHARED_PKG@/@README@
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dd7d0e348d7a9540a7090a878228e327355880d5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,20 @@@
++#!/bin/sh
++set -e
++
++IMMODULES_DIR=/@MODULES_BASE_PATH@/immodules
++IMMODULES_DIR_OLD=/@OLD_MODULES_BASE_PATH@/immodules
++
++if [ "$1" = triggered ]; then
++    # This is triggered everytime an application installs a
++    # GTK immodule loader
++    /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-3.0 --update-cache || true
++    exit 0
++fi
++
++#DEBHELPER#
++
++# Also handle the initial installation
++if [ -d $IMMODULES_DIR ] || [ -d $IMMODULES_DIR_OLD ]; then
++     /@LIBDIR@/@SHARED_PKG@/gtk-query-immodules-3.0 --update-cache || true
++fi
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7caff6b607ec1aa0259486c2591319f4ec657fe4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++#!/bin/sh
++
++set -e
++
++#DEBHELPER#
++
++if [ -d /@MODULES_BASE_PATH@ ]; then
++    # Purge the cache
++    rm -f /@MODULES_BASE_PATH@/immodules.cache
++    rmdir -p --ignore-fail-on-non-empty /@MODULES_BASE_PATH@
++fi
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0ec8ae4a764158ff6859a10b0c668fb54bb3acf4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5281 @@@
++libgdk-3.so.0 libgtk-3-0 #MINVER#
++* Build-Depends-Package: libgtk-3-dev
++ gdk__private__@Base 3.16.2
++ gdk_add_option_entries_libgtk_only@Base 3.0.0
++ gdk_anchor_hints_get_type@Base 3.21.5
++ gdk_app_launch_context_get_type@Base 3.0.0
++ gdk_app_launch_context_new@Base 3.0.0
++ gdk_app_launch_context_set_desktop@Base 3.0.0
++ gdk_app_launch_context_set_display@Base 3.0.0
++ gdk_app_launch_context_set_icon@Base 3.0.0
++ gdk_app_launch_context_set_icon_name@Base 3.0.0
++ gdk_app_launch_context_set_screen@Base 3.0.0
++ gdk_app_launch_context_set_timestamp@Base 3.0.0
++ gdk_atom_intern@Base 3.0.0
++ gdk_atom_intern_static_string@Base 3.0.0
++ gdk_atom_name@Base 3.0.0
++ gdk_axis_flags_get_type@Base 3.21.4
++ gdk_axis_use_get_type@Base 3.0.0
++ gdk_beep@Base 3.0.0
++ gdk_broadway_cursor_get_type@Base 3.9.10
++ gdk_broadway_display_get_type@Base 3.11.5
++ gdk_broadway_display_hide_keyboard@Base 3.11.5
++ gdk_broadway_display_show_keyboard@Base 3.11.5
++ gdk_broadway_get_last_seen_time@Base 3.9.10
++ gdk_broadway_monitor_get_type@Base 3.21.4
++ gdk_broadway_visual_get_type@Base 3.9.10
++ gdk_broadway_window_get_type@Base 3.9.10
++ gdk_byte_order_get_type@Base 3.0.0
++ gdk_cairo_create@Base 3.0.0
++ gdk_cairo_draw_from_gl@Base 3.16.2
++ gdk_cairo_get_clip_rectangle@Base 3.0.0
++ gdk_cairo_get_drawing_context@Base 3.21.4
++ gdk_cairo_rectangle@Base 3.0.0
++ gdk_cairo_region@Base 3.0.0
++ gdk_cairo_region_create_from_surface@Base 3.0.0
++ gdk_cairo_set_source_color@Base 3.0.0
++ gdk_cairo_set_source_pixbuf@Base 3.0.0
++ gdk_cairo_set_source_rgba@Base 3.0.0
++ gdk_cairo_set_source_window@Base 3.0.0
++ gdk_cairo_surface_create_from_pixbuf@Base 3.9.10
++ gdk_color_copy@Base 3.0.0
++ gdk_color_equal@Base 3.0.0
++ gdk_color_free@Base 3.0.0
++ gdk_color_get_type@Base 3.0.0
++ gdk_color_hash@Base 3.0.0
++ gdk_color_parse@Base 3.0.0
++ gdk_color_to_string@Base 3.0.0
++ gdk_crossing_mode_get_type@Base 3.0.0
++ gdk_cursor_get_cursor_type@Base 3.0.0
++ gdk_cursor_get_display@Base 3.0.0
++ gdk_cursor_get_image@Base 3.0.0
++ gdk_cursor_get_surface@Base 3.9.12
++ gdk_cursor_get_type@Base 3.0.0
++ gdk_cursor_new@Base 3.0.0
++ gdk_cursor_new_for_display@Base 3.0.0
++ gdk_cursor_new_from_name@Base 3.0.0
++ gdk_cursor_new_from_pixbuf@Base 3.0.0
++ gdk_cursor_new_from_surface@Base 3.9.12
++ gdk_cursor_ref@Base 3.0.0
++ gdk_cursor_type_get_type@Base 3.0.0
++ gdk_cursor_unref@Base 3.0.0
++ gdk_device_free_history@Base 3.0.0
++ gdk_device_get_associated_device@Base 3.0.0
++ gdk_device_get_axes@Base 3.21.4
++ gdk_device_get_axis@Base 3.0.0
++ gdk_device_get_axis_use@Base 3.0.0
++ gdk_device_get_axis_value@Base 3.0.0
++ gdk_device_get_device_type@Base 3.0.0
++ gdk_device_get_display@Base 3.0.0
++ gdk_device_get_has_cursor@Base 3.0.0
++ gdk_device_get_history@Base 3.0.0
++ gdk_device_get_key@Base 3.0.0
++ gdk_device_get_last_event_window@Base 3.12.0
++ gdk_device_get_mode@Base 3.0.0
++ gdk_device_get_n_axes@Base 3.0.0
++ gdk_device_get_n_keys@Base 3.0.0
++ gdk_device_get_name@Base 3.0.0
++ gdk_device_get_position@Base 3.0.0
++ gdk_device_get_position_double@Base 3.9.10
++ gdk_device_get_product_id@Base 3.16.2
++ gdk_device_get_seat@Base 3.19.12
++ gdk_device_get_source@Base 3.0.0
++ gdk_device_get_state@Base 3.0.0
++ gdk_device_get_type@Base 3.0.0
++ gdk_device_get_vendor_id@Base 3.16.2
++ gdk_device_get_window_at_position@Base 3.0.0
++ gdk_device_get_window_at_position_double@Base 3.9.10
++ gdk_device_grab@Base 3.0.0
++ gdk_device_grab_info_libgtk_only@Base 3.0.0
++ gdk_device_list_axes@Base 3.0.0
++ gdk_device_list_slave_devices@Base 3.0.0
++ gdk_device_manager_get_client_pointer@Base 3.0.0
++ gdk_device_manager_get_display@Base 3.0.0
++ gdk_device_manager_get_type@Base 3.0.0
++ gdk_device_manager_list_devices@Base 3.0.0
++ gdk_device_pad_feature_get_type@Base 3.21.5
++ gdk_device_pad_get_feature_group@Base 3.21.5
++ gdk_device_pad_get_group_n_modes@Base 3.21.5
++ gdk_device_pad_get_n_features@Base 3.21.5
++ gdk_device_pad_get_n_groups@Base 3.21.5
++ gdk_device_pad_get_type@Base 3.21.5
++ gdk_device_set_axis_use@Base 3.0.0
++ gdk_device_set_key@Base 3.0.0
++ gdk_device_set_mode@Base 3.0.0
++ gdk_device_tool_get_hardware_id@Base 3.21.5
++ gdk_device_tool_get_serial@Base 3.21.4
++ gdk_device_tool_get_tool_type@Base 3.21.4
++ gdk_device_tool_get_type@Base 3.21.4
++ gdk_device_tool_type_get_type@Base 3.21.4
++ gdk_device_type_get_type@Base 3.0.0
++ gdk_device_ungrab@Base 3.0.0
++ gdk_device_warp@Base 3.0.0
++ gdk_disable_multidevice@Base 3.0.0
++ gdk_display_beep@Base 3.0.0
++ gdk_display_close@Base 3.0.0
++ gdk_display_device_is_grabbed@Base 3.0.0
++ gdk_display_flush@Base 3.0.0
++ gdk_display_get_app_launch_context@Base 3.0.0
++ gdk_display_get_default@Base 3.0.0
++ gdk_display_get_default_cursor_size@Base 3.0.0
++ gdk_display_get_default_group@Base 3.0.0
++ gdk_display_get_default_screen@Base 3.0.0
++ gdk_display_get_default_seat@Base 3.19.12
++ gdk_display_get_device_manager@Base 3.0.0
++ gdk_display_get_event@Base 3.0.0
++ gdk_display_get_maximal_cursor_size@Base 3.0.0
++ gdk_display_get_monitor@Base 3.21.4
++ gdk_display_get_monitor_at_point@Base 3.21.4
++ gdk_display_get_monitor_at_window@Base 3.21.4
++ gdk_display_get_n_monitors@Base 3.21.4
++ gdk_display_get_n_screens@Base 3.0.0
++ gdk_display_get_name@Base 3.0.0
++ gdk_display_get_pointer@Base 3.0.0
++ gdk_display_get_primary_monitor@Base 3.21.4
++ gdk_display_get_screen@Base 3.0.0
++ gdk_display_get_type@Base 3.0.0
++ gdk_display_get_window_at_pointer@Base 3.0.0
++ gdk_display_has_pending@Base 3.0.0
++ gdk_display_is_closed@Base 3.0.0
++ gdk_display_keyboard_ungrab@Base 3.0.0
++ gdk_display_list_devices@Base 3.0.0
++ gdk_display_list_seats@Base 3.19.12
++ gdk_display_manager_get@Base 3.0.0
++ gdk_display_manager_get_default_display@Base 3.0.0
++ gdk_display_manager_get_type@Base 3.0.0
++ gdk_display_manager_list_displays@Base 3.0.0
++ gdk_display_manager_open_display@Base 3.0.0
++ gdk_display_manager_set_default_display@Base 3.0.0
++ gdk_display_notify_startup_complete@Base 3.0.0
++ gdk_display_open@Base 3.0.0
++ gdk_display_open_default_libgtk_only@Base 3.0.0
++ gdk_display_peek_event@Base 3.0.0
++ gdk_display_pointer_is_grabbed@Base 3.0.0
++ gdk_display_pointer_ungrab@Base 3.0.0
++ gdk_display_put_event@Base 3.0.0
++ gdk_display_request_selection_notification@Base 3.0.0
++ gdk_display_set_double_click_distance@Base 3.0.0
++ gdk_display_set_double_click_time@Base 3.0.0
++ gdk_display_store_clipboard@Base 3.0.0
++ gdk_display_supports_clipboard_persistence@Base 3.0.0
++ gdk_display_supports_composite@Base 3.0.0
++ gdk_display_supports_cursor_alpha@Base 3.0.0
++ gdk_display_supports_cursor_color@Base 3.0.0
++ gdk_display_supports_input_shapes@Base 3.0.0
++ gdk_display_supports_selection_notification@Base 3.0.0
++ gdk_display_supports_shapes@Base 3.0.0
++ gdk_display_sync@Base 3.0.0
++ gdk_display_warp_pointer@Base 3.0.0
++ gdk_drag_abort@Base 3.0.0
++ gdk_drag_action_get_type@Base 3.0.0
++ gdk_drag_begin@Base 3.0.0
++ gdk_drag_begin_for_device@Base 3.0.0
++ gdk_drag_begin_from_point@Base 3.19.12
++ gdk_drag_cancel_reason_get_type@Base 3.19.12
++ gdk_drag_context_get_actions@Base 3.0.0
++ gdk_drag_context_get_dest_window@Base 3.0.0
++ gdk_drag_context_get_device@Base 3.0.0
++ gdk_drag_context_get_drag_window@Base 3.19.12
++ gdk_drag_context_get_protocol@Base 3.0.0
++ gdk_drag_context_get_selected_action@Base 3.0.0
++ gdk_drag_context_get_source_window@Base 3.0.0
++ gdk_drag_context_get_suggested_action@Base 3.0.0
++ gdk_drag_context_get_type@Base 3.0.0
++ gdk_drag_context_list_targets@Base 3.0.0
++ gdk_drag_context_manage_dnd@Base 3.19.12
++ gdk_drag_context_set_device@Base 3.0.0
++ gdk_drag_context_set_hotspot@Base 3.19.12
++ gdk_drag_drop@Base 3.0.0
++ gdk_drag_drop_done@Base 3.19.12
++ gdk_drag_drop_succeeded@Base 3.0.0
++ gdk_drag_find_window_for_screen@Base 3.0.0
++ gdk_drag_get_selection@Base 3.0.0
++ gdk_drag_motion@Base 3.0.0
++ gdk_drag_protocol_get_type@Base 3.0.0
++ gdk_drag_status@Base 3.0.0
++ gdk_drawing_context_get_cairo_context@Base 3.21.4
++ gdk_drawing_context_get_clip@Base 3.21.4
++ gdk_drawing_context_get_type@Base 3.21.4
++ gdk_drawing_context_get_window@Base 3.21.4
++ gdk_drawing_context_is_valid@Base 3.21.4
++ gdk_drop_finish@Base 3.0.0
++ gdk_drop_reply@Base 3.0.0
++ gdk_error_trap_pop@Base 3.0.0
++ gdk_error_trap_pop_ignored@Base 3.0.0
++ gdk_error_trap_push@Base 3.0.0
++ gdk_event_copy@Base 3.0.0
++ gdk_event_free@Base 3.0.0
++ gdk_event_get@Base 3.0.0
++ gdk_event_get_axis@Base 3.0.0
++ gdk_event_get_button@Base 3.2.1
++ gdk_event_get_click_count@Base 3.2.1
++ gdk_event_get_coords@Base 3.0.0
++ gdk_event_get_device@Base 3.0.0
++ gdk_event_get_device_tool@Base 3.21.4
++ gdk_event_get_event_sequence@Base 3.3.18
++ gdk_event_get_event_type@Base 3.9.12
++ gdk_event_get_keycode@Base 3.2.1
++ gdk_event_get_keyval@Base 3.2.1
++ gdk_event_get_pointer_emulated@Base 3.21.4
++ gdk_event_get_root_coords@Base 3.0.0
++ gdk_event_get_scancode@Base 3.21.4
++ gdk_event_get_screen@Base 3.0.0
++ gdk_event_get_scroll_deltas@Base 3.3.18
++ gdk_event_get_scroll_direction@Base 3.2.1
++ gdk_event_get_seat@Base 3.19.12
++ gdk_event_get_source_device@Base 3.0.0
++ gdk_event_get_state@Base 3.0.0
++ gdk_event_get_time@Base 3.0.0
++ gdk_event_get_type@Base 3.0.0
++ gdk_event_get_window@Base 3.10.0
++ gdk_event_handler_set@Base 3.0.0
++ gdk_event_is_scroll_stop_event@Base 3.19.12
++ gdk_event_mask_get_type@Base 3.0.0
++ gdk_event_new@Base 3.0.0
++ gdk_event_peek@Base 3.0.0
++ gdk_event_put@Base 3.0.0
++ gdk_event_request_motions@Base 3.0.0
++ gdk_event_sequence_get_type@Base 3.13.7
++ gdk_event_set_device@Base 3.0.0
++ gdk_event_set_device_tool@Base 3.21.4
++ gdk_event_set_screen@Base 3.0.0
++ gdk_event_set_source_device@Base 3.0.0
++ gdk_event_triggers_context_menu@Base 3.3.16
++ gdk_event_type_get_type@Base 3.0.0
++ gdk_events_get_angle@Base 3.0.0
++ gdk_events_get_center@Base 3.0.0
++ gdk_events_get_distance@Base 3.0.0
++ gdk_events_pending@Base 3.0.0
++ gdk_filter_return_get_type@Base 3.0.0
++ gdk_flush@Base 3.0.0
++ gdk_frame_clock_begin_updating@Base 3.7.10
++ gdk_frame_clock_end_updating@Base 3.7.10
++ gdk_frame_clock_get_current_timings@Base 3.7.10
++ gdk_frame_clock_get_frame_counter@Base 3.7.10
++ gdk_frame_clock_get_frame_time@Base 3.7.10
++ gdk_frame_clock_get_history_start@Base 3.7.10
++ gdk_frame_clock_get_refresh_info@Base 3.7.10
++ gdk_frame_clock_get_timings@Base 3.7.10
++ gdk_frame_clock_get_type@Base 3.7.10
++ gdk_frame_clock_phase_get_type@Base 3.7.10
++ gdk_frame_clock_request_phase@Base 3.7.10
++ gdk_frame_timings_get_complete@Base 3.7.10
++ gdk_frame_timings_get_frame_counter@Base 3.7.10
++ gdk_frame_timings_get_frame_time@Base 3.7.10
++ gdk_frame_timings_get_predicted_presentation_time@Base 3.7.10
++ gdk_frame_timings_get_presentation_time@Base 3.7.10
++ gdk_frame_timings_get_refresh_interval@Base 3.7.10
++ gdk_frame_timings_get_type@Base 3.7.10
++ gdk_frame_timings_ref@Base 3.7.10
++ gdk_frame_timings_unref@Base 3.7.10
++ gdk_fullscreen_mode_get_type@Base 3.7.10
++ gdk_get_default_root_window@Base 3.0.0
++ gdk_get_display@Base 3.0.0
++ gdk_get_display_arg_name@Base 3.0.0
++ gdk_get_program_class@Base 3.0.0
++ gdk_get_show_events@Base 3.0.0
++ gdk_gl_context_clear_current@Base 3.16.2
++ gdk_gl_context_get_current@Base 3.16.2
++ gdk_gl_context_get_debug_enabled@Base 3.16.2
++ gdk_gl_context_get_display@Base 3.16.2
++ gdk_gl_context_get_forward_compatible@Base 3.16.2
++ gdk_gl_context_get_required_version@Base 3.16.2
++ gdk_gl_context_get_shared_context@Base 3.16.2
++ gdk_gl_context_get_type@Base 3.16.2
++ gdk_gl_context_get_use_es@Base 3.21.4
++ gdk_gl_context_get_version@Base 3.16.2
++ gdk_gl_context_get_window@Base 3.16.2
++ gdk_gl_context_is_legacy@Base 3.19.12
++ gdk_gl_context_make_current@Base 3.16.2
++ gdk_gl_context_realize@Base 3.16.2
++ gdk_gl_context_set_debug_enabled@Base 3.16.2
++ gdk_gl_context_set_forward_compatible@Base 3.16.2
++ gdk_gl_context_set_required_version@Base 3.16.2
++ gdk_gl_context_set_use_es@Base 3.21.4
++ gdk_gl_error_get_type@Base 3.16.2
++ gdk_gl_error_quark@Base 3.16.2
++ gdk_grab_ownership_get_type@Base 3.0.0
++ gdk_grab_status_get_type@Base 3.0.0
++ gdk_gravity_get_type@Base 3.0.0
++ gdk_init@Base 3.0.0
++ gdk_init_check@Base 3.0.0
++ gdk_input_mode_get_type@Base 3.0.0
++ gdk_input_source_get_type@Base 3.0.0
++ gdk_keyboard_grab@Base 3.0.0
++ gdk_keyboard_ungrab@Base 3.0.0
++ gdk_keymap_add_virtual_modifiers@Base 3.0.0
++ gdk_keymap_get_caps_lock_state@Base 3.0.0
++ gdk_keymap_get_default@Base 3.0.0
++ gdk_keymap_get_direction@Base 3.0.0
++ gdk_keymap_get_entries_for_keycode@Base 3.0.0
++ gdk_keymap_get_entries_for_keyval@Base 3.0.0
++ gdk_keymap_get_for_display@Base 3.0.0
++ gdk_keymap_get_modifier_mask@Base 3.3.16
++ gdk_keymap_get_modifier_state@Base 3.3.16
++ gdk_keymap_get_num_lock_state@Base 3.0.0
++ gdk_keymap_get_scroll_lock_state@Base 3.17.9
++ gdk_keymap_get_type@Base 3.0.0
++ gdk_keymap_have_bidi_layouts@Base 3.0.0
++ gdk_keymap_lookup_key@Base 3.0.0
++ gdk_keymap_map_virtual_modifiers@Base 3.0.0
++ gdk_keymap_translate_keyboard_state@Base 3.0.0
++ gdk_keyval_convert_case@Base 3.0.0
++ gdk_keyval_from_name@Base 3.0.0
++ gdk_keyval_is_lower@Base 3.0.0
++ gdk_keyval_is_upper@Base 3.0.0
++ gdk_keyval_name@Base 3.0.0
++ gdk_keyval_to_lower@Base 3.0.0
++ gdk_keyval_to_unicode@Base 3.0.0
++ gdk_keyval_to_upper@Base 3.0.0
++ gdk_list_visuals@Base 3.0.0
++ gdk_modifier_intent_get_type@Base 3.3.16
++ gdk_modifier_type_get_type@Base 3.0.0
++ gdk_monitor_get_display@Base 3.21.4
++ gdk_monitor_get_geometry@Base 3.21.4
++ gdk_monitor_get_height_mm@Base 3.21.4
++ gdk_monitor_get_manufacturer@Base 3.21.4
++ gdk_monitor_get_model@Base 3.21.4
++ gdk_monitor_get_refresh_rate@Base 3.21.4
++ gdk_monitor_get_scale_factor@Base 3.21.4
++ gdk_monitor_get_subpixel_layout@Base 3.21.4
++ gdk_monitor_get_type@Base 3.21.4
++ gdk_monitor_get_width_mm@Base 3.21.4
++ gdk_monitor_get_workarea@Base 3.21.4
++ gdk_monitor_is_primary@Base 3.21.4
++ gdk_notify_startup_complete@Base 3.0.0
++ gdk_notify_startup_complete_with_id@Base 3.0.0
++ gdk_notify_type_get_type@Base 3.0.0
++ gdk_offscreen_window_get_embedder@Base 3.0.0
++ gdk_offscreen_window_get_surface@Base 3.0.0
++ gdk_offscreen_window_set_embedder@Base 3.0.0
++ gdk_owner_change_get_type@Base 3.0.0
++ gdk_pango_context_get@Base 3.0.0
++ gdk_pango_context_get_for_display@Base 3.21.4
++ gdk_pango_context_get_for_screen@Base 3.0.0
++ gdk_pango_layout_get_clip_region@Base 3.0.0
++ gdk_pango_layout_line_get_clip_region@Base 3.0.0
++ gdk_parse_args@Base 3.0.0
++ gdk_pixbuf_get_from_surface@Base 3.0.0
++ gdk_pixbuf_get_from_window@Base 3.0.0
++ gdk_pointer_grab@Base 3.0.0
++ gdk_pointer_is_grabbed@Base 3.0.0
++ gdk_pointer_ungrab@Base 3.0.0
++ gdk_pre_parse_libgtk_only@Base 3.0.0
++ gdk_prop_mode_get_type@Base 3.0.0
++ gdk_property_change@Base 3.0.0
++ gdk_property_delete@Base 3.0.0
++ gdk_property_get@Base 3.0.0
++ gdk_property_state_get_type@Base 3.0.0
++ gdk_query_depths@Base 3.0.0
++ gdk_query_visual_types@Base 3.0.0
++ gdk_rectangle_equal@Base 3.19.12
++ gdk_rectangle_get_type@Base 3.0.0
++ gdk_rectangle_intersect@Base 3.0.0
++ gdk_rectangle_union@Base 3.0.0
++ gdk_rgba_copy@Base 3.0.0
++ gdk_rgba_equal@Base 3.0.0
++ gdk_rgba_free@Base 3.0.0
++ gdk_rgba_get_type@Base 3.0.0
++ gdk_rgba_hash@Base 3.0.0
++ gdk_rgba_parse@Base 3.0.0
++ gdk_rgba_to_string@Base 3.0.0
++ gdk_screen_get_active_window@Base 3.0.0
++ gdk_screen_get_default@Base 3.0.0
++ gdk_screen_get_display@Base 3.0.0
++ gdk_screen_get_font_options@Base 3.0.0
++ gdk_screen_get_height@Base 3.0.0
++ gdk_screen_get_height_mm@Base 3.0.0
++ gdk_screen_get_monitor_at_point@Base 3.0.0
++ gdk_screen_get_monitor_at_window@Base 3.0.0
++ gdk_screen_get_monitor_geometry@Base 3.0.0
++ gdk_screen_get_monitor_height_mm@Base 3.0.0
++ gdk_screen_get_monitor_plug_name@Base 3.0.0
++ gdk_screen_get_monitor_scale_factor@Base 3.9.10
++ gdk_screen_get_monitor_width_mm@Base 3.0.0
++ gdk_screen_get_monitor_workarea@Base 3.3.16
++ gdk_screen_get_n_monitors@Base 3.0.0
++ gdk_screen_get_number@Base 3.0.0
++ gdk_screen_get_primary_monitor@Base 3.0.0
++ gdk_screen_get_resolution@Base 3.0.0
++ gdk_screen_get_rgba_visual@Base 3.0.0
++ gdk_screen_get_root_window@Base 3.0.0
++ gdk_screen_get_setting@Base 3.0.0
++ gdk_screen_get_system_visual@Base 3.0.0
++ gdk_screen_get_toplevel_windows@Base 3.0.0
++ gdk_screen_get_type@Base 3.0.0
++ gdk_screen_get_width@Base 3.0.0
++ gdk_screen_get_width_mm@Base 3.0.0
++ gdk_screen_get_window_stack@Base 3.0.0
++ gdk_screen_height@Base 3.0.0
++ gdk_screen_height_mm@Base 3.0.0
++ gdk_screen_is_composited@Base 3.0.0
++ gdk_screen_list_visuals@Base 3.0.0
++ gdk_screen_make_display_name@Base 3.0.0
++ gdk_screen_set_font_options@Base 3.0.0
++ gdk_screen_set_resolution@Base 3.0.0
++ gdk_screen_width@Base 3.0.0
++ gdk_screen_width_mm@Base 3.0.0
++ gdk_scroll_direction_get_type@Base 3.0.0
++ gdk_seat_capabilities_get_type@Base 3.19.12
++ gdk_seat_get_capabilities@Base 3.19.12
++ gdk_seat_get_display@Base 3.19.12
++ gdk_seat_get_keyboard@Base 3.19.12
++ gdk_seat_get_pointer@Base 3.19.12
++ gdk_seat_get_slaves@Base 3.19.12
++ gdk_seat_get_type@Base 3.19.12
++ gdk_seat_grab@Base 3.19.12
++ gdk_seat_ungrab@Base 3.19.12
++ gdk_selection_convert@Base 3.0.0
++ gdk_selection_owner_get@Base 3.0.0
++ gdk_selection_owner_get_for_display@Base 3.0.0
++ gdk_selection_owner_set@Base 3.0.0
++ gdk_selection_owner_set_for_display@Base 3.0.0
++ gdk_selection_property_get@Base 3.0.0
++ gdk_selection_send_notify@Base 3.0.0
++ gdk_selection_send_notify_for_display@Base 3.0.0
++ gdk_set_allowed_backends@Base 3.9.10
++ gdk_set_double_click_time@Base 3.0.0
++ gdk_set_program_class@Base 3.0.0
++ gdk_set_show_events@Base 3.0.0
++ gdk_setting_action_get_type@Base 3.0.0
++ gdk_setting_get@Base 3.0.0
++ gdk_status_get_type@Base 3.0.0
++ gdk_subpixel_layout_get_type@Base 3.21.4
++ gdk_synthesize_window_state@Base 3.0.0
++ gdk_test_render_sync@Base 3.0.0
++ gdk_test_simulate_button@Base 3.0.0
++ gdk_test_simulate_key@Base 3.0.0
++ gdk_text_property_to_utf8_list_for_display@Base 3.0.0
++ gdk_threads_add_idle@Base 3.0.0
++ gdk_threads_add_idle_full@Base 3.0.0
++ gdk_threads_add_timeout@Base 3.0.0
++ gdk_threads_add_timeout_full@Base 3.0.0
++ gdk_threads_add_timeout_seconds@Base 3.0.0
++ gdk_threads_add_timeout_seconds_full@Base 3.0.0
++ gdk_threads_enter@Base 3.0.0
++ gdk_threads_init@Base 3.0.0
++ gdk_threads_leave@Base 3.0.0
++ gdk_threads_set_lock_functions@Base 3.0.0
++ gdk_touchpad_gesture_phase_get_type@Base 3.17.9
++ gdk_unicode_to_keyval@Base 3.0.0
++ gdk_utf8_to_string_target@Base 3.0.0
++ gdk_visibility_state_get_type@Base 3.0.0
++ gdk_visual_get_best@Base 3.0.0
++ gdk_visual_get_best_depth@Base 3.0.0
++ gdk_visual_get_best_type@Base 3.0.0
++ gdk_visual_get_best_with_both@Base 3.0.0
++ gdk_visual_get_best_with_depth@Base 3.0.0
++ gdk_visual_get_best_with_type@Base 3.0.0
++ gdk_visual_get_bits_per_rgb@Base 3.0.0
++ gdk_visual_get_blue_pixel_details@Base 3.0.0
++ gdk_visual_get_byte_order@Base 3.0.0
++ gdk_visual_get_colormap_size@Base 3.0.0
++ gdk_visual_get_depth@Base 3.0.0
++ gdk_visual_get_green_pixel_details@Base 3.0.0
++ gdk_visual_get_red_pixel_details@Base 3.0.0
++ gdk_visual_get_screen@Base 3.0.0
++ gdk_visual_get_system@Base 3.0.0
++ gdk_visual_get_type@Base 3.0.0
++ gdk_visual_get_visual_type@Base 3.0.0
++ gdk_visual_type_get_type@Base 3.0.0
++ (arch=linux-any)gdk_wayland_device_get_node_path@Base 3.21.5
++ (arch=linux-any)gdk_wayland_device_get_type@Base 3.9.10
++ (arch=linux-any)gdk_wayland_device_get_wl_keyboard@Base 3.9.10
++ (arch=linux-any)gdk_wayland_device_get_wl_pointer@Base 3.9.10
++ (arch=linux-any)gdk_wayland_device_get_wl_seat@Base 3.9.10
++ (arch=linux-any)gdk_wayland_device_pad_set_feedback@Base 3.21.5
++ (arch=linux-any)gdk_wayland_display_get_type@Base 3.9.10
++ (arch=linux-any)gdk_wayland_display_get_wl_compositor@Base 3.9.10
++ (arch=linux-any)gdk_wayland_display_get_wl_display@Base 3.9.10
++ (arch=linux-any)gdk_wayland_display_set_cursor_theme@Base 3.9.10
++ (arch=linux-any)gdk_wayland_display_set_startup_notification_id@Base 3.22.4
++ (arch=linux-any)gdk_wayland_gl_context_get_type@Base 3.16.2
++ (arch=linux-any)gdk_wayland_monitor_get_type@Base 3.21.4
++ (arch=linux-any)gdk_wayland_monitor_get_wl_output@Base 3.21.4
++ (arch=linux-any)gdk_wayland_seat_get_wl_seat@Base 3.19.12
++ (arch=linux-any)gdk_wayland_selection_add_targets_libgtk_only@Base 3.13.8
++ (arch=linux-any)gdk_wayland_selection_clear_targets_libgtk_only@Base 3.13.8
++ (arch=linux-any)gdk_wayland_window_export_handle@Base 3.21.5
++ (arch=linux-any)gdk_wayland_window_get_type@Base 3.9.10
++ (arch=linux-any)gdk_wayland_window_get_wl_surface@Base 3.9.10
++ (arch=linux-any)gdk_wayland_window_set_dbus_properties_libgtk_only@Base 3.10.0
++ (arch=linux-any)gdk_wayland_window_set_transient_for_exported@Base 3.21.5
++ (arch=linux-any)gdk_wayland_window_set_use_custom_surface@Base 3.9.10
++ (arch=linux-any)gdk_wayland_window_unexport_handle@Base 3.21.5
++ gdk_window_add_filter@Base 3.0.0
++ gdk_window_at_pointer@Base 3.0.0
++ gdk_window_attributes_type_get_type@Base 3.0.0
++ gdk_window_beep@Base 3.0.0
++ gdk_window_begin_draw_frame@Base 3.21.4
++ gdk_window_begin_move_drag@Base 3.0.0
++ gdk_window_begin_move_drag_for_device@Base 3.3.16
++ gdk_window_begin_paint_rect@Base 3.0.0
++ gdk_window_begin_paint_region@Base 3.0.0
++ gdk_window_begin_resize_drag@Base 3.0.0
++ gdk_window_begin_resize_drag_for_device@Base 3.3.16
++ gdk_window_configure_finished@Base 3.0.0
++ gdk_window_constrain_size@Base 3.0.0
++ gdk_window_coords_from_parent@Base 3.0.0
++ gdk_window_coords_to_parent@Base 3.0.0
++ gdk_window_create_gl_context@Base 3.16.2
++ gdk_window_create_similar_image_surface@Base 3.9.10
++ gdk_window_create_similar_surface@Base 3.0.0
++ gdk_window_deiconify@Base 3.0.0
++ gdk_window_destroy@Base 3.0.0
++ gdk_window_destroy_notify@Base 3.0.0
++ gdk_window_edge_get_type@Base 3.0.0
++ gdk_window_enable_synchronized_configure@Base 3.0.0
++ gdk_window_end_draw_frame@Base 3.21.4
++ gdk_window_end_paint@Base 3.0.0
++ gdk_window_ensure_native@Base 3.0.0
++ gdk_window_flush@Base 3.0.0
++ gdk_window_focus@Base 3.0.0
++ gdk_window_freeze_toplevel_updates_libgtk_only@Base 3.0.0
++ gdk_window_freeze_updates@Base 3.0.0
++ gdk_window_fullscreen@Base 3.0.0
++ gdk_window_fullscreen_on_monitor@Base 3.17.9
++ gdk_window_geometry_changed@Base 3.0.0
++ gdk_window_get_accept_focus@Base 3.0.0
++ gdk_window_get_background_pattern@Base 3.0.0
++ gdk_window_get_children@Base 3.0.0
++ gdk_window_get_children_with_user_data@Base 3.9.10
++ gdk_window_get_clip_region@Base 3.0.0
++ gdk_window_get_composited@Base 3.0.0
++ gdk_window_get_cursor@Base 3.0.0
++ gdk_window_get_decorations@Base 3.0.0
++ gdk_window_get_device_cursor@Base 3.0.0
++ gdk_window_get_device_events@Base 3.0.0
++ gdk_window_get_device_position@Base 3.0.0
++ gdk_window_get_device_position_double@Base 3.9.10
++ gdk_window_get_display@Base 3.0.0
++ gdk_window_get_drag_protocol@Base 3.0.0
++ gdk_window_get_effective_parent@Base 3.0.0
++ gdk_window_get_effective_toplevel@Base 3.0.0
++ gdk_window_get_event_compression@Base 3.11.5
++ gdk_window_get_events@Base 3.0.0
++ gdk_window_get_focus_on_map@Base 3.0.0
++ gdk_window_get_frame_clock@Base 3.7.10
++ gdk_window_get_frame_extents@Base 3.0.0
++ gdk_window_get_fullscreen_mode@Base 3.7.10
++ gdk_window_get_geometry@Base 3.0.0
++ gdk_window_get_group@Base 3.0.0
++ gdk_window_get_height@Base 3.0.0
++ gdk_window_get_modal_hint@Base 3.0.0
++ gdk_window_get_origin@Base 3.0.0
++ gdk_window_get_parent@Base 3.0.0
++ gdk_window_get_pass_through@Base 3.17.9
++ gdk_window_get_pointer@Base 3.0.0
++ gdk_window_get_position@Base 3.0.0
++ gdk_window_get_root_coords@Base 3.0.0
++ gdk_window_get_root_origin@Base 3.0.0
++ gdk_window_get_scale_factor@Base 3.9.10
++ gdk_window_get_screen@Base 3.0.0
++ gdk_window_get_source_events@Base 3.0.0
++ gdk_window_get_state@Base 3.0.0
++ gdk_window_get_support_multidevice@Base 3.0.0
++ gdk_window_get_toplevel@Base 3.0.0
++ gdk_window_get_type@Base 3.0.0
++ gdk_window_get_type_hint@Base 3.0.0
++ gdk_window_get_update_area@Base 3.0.0
++ gdk_window_get_user_data@Base 3.0.0
++ gdk_window_get_visible_region@Base 3.0.0
++ gdk_window_get_visual@Base 3.0.0
++ gdk_window_get_width@Base 3.0.0
++ gdk_window_get_window_type@Base 3.0.0
++ gdk_window_has_native@Base 3.0.0
++ gdk_window_hide@Base 3.0.0
++ gdk_window_hints_get_type@Base 3.0.0
++ gdk_window_iconify@Base 3.0.0
++ gdk_window_input_shape_combine_region@Base 3.0.0
++ gdk_window_invalidate_maybe_recurse@Base 3.0.0
++ gdk_window_invalidate_rect@Base 3.0.0
++ gdk_window_invalidate_region@Base 3.0.0
++ gdk_window_is_destroyed@Base 3.0.0
++ gdk_window_is_input_only@Base 3.0.0
++ gdk_window_is_shaped@Base 3.0.0
++ gdk_window_is_viewable@Base 3.0.0
++ gdk_window_is_visible@Base 3.0.0
++ gdk_window_lower@Base 3.0.0
++ gdk_window_mark_paint_from_clip@Base 3.16.2
++ gdk_window_maximize@Base 3.0.0
++ gdk_window_merge_child_input_shapes@Base 3.0.0
++ gdk_window_merge_child_shapes@Base 3.0.0
++ gdk_window_move@Base 3.0.0
++ gdk_window_move_region@Base 3.0.0
++ gdk_window_move_resize@Base 3.0.0
++ gdk_window_new@Base 3.0.0
++ gdk_window_peek_children@Base 3.0.0
++ gdk_window_process_all_updates@Base 3.0.0
++ gdk_window_process_updates@Base 3.0.0
++ gdk_window_raise@Base 3.0.0
++ gdk_window_register_dnd@Base 3.0.0
++ gdk_window_remove_filter@Base 3.0.0
++ gdk_window_reparent@Base 3.0.0
++ gdk_window_resize@Base 3.0.0
++ gdk_window_restack@Base 3.0.0
++ gdk_window_scroll@Base 3.0.0
++ gdk_window_set_accept_focus@Base 3.0.0
++ gdk_window_set_background@Base 3.0.0
++ gdk_window_set_background_pattern@Base 3.0.0
++ gdk_window_set_background_rgba@Base 3.0.0
++ gdk_window_set_child_input_shapes@Base 3.0.0
++ gdk_window_set_child_shapes@Base 3.0.0
++ gdk_window_set_composited@Base 3.0.0
++ gdk_window_set_cursor@Base 3.0.0
++ gdk_window_set_debug_updates@Base 3.0.0
++ gdk_window_set_decorations@Base 3.0.0
++ gdk_window_set_device_cursor@Base 3.0.0
++ gdk_window_set_device_events@Base 3.0.0
++ gdk_window_set_event_compression@Base 3.11.5
++ gdk_window_set_events@Base 3.0.0
++ gdk_window_set_focus_on_map@Base 3.0.0
++ gdk_window_set_fullscreen_mode@Base 3.7.10
++ gdk_window_set_functions@Base 3.0.0
++ gdk_window_set_geometry_hints@Base 3.0.0
++ gdk_window_set_group@Base 3.0.0
++ gdk_window_set_icon_list@Base 3.0.0
++ gdk_window_set_icon_name@Base 3.0.0
++ gdk_window_set_invalidate_handler@Base 3.9.10
++ gdk_window_set_keep_above@Base 3.0.0
++ gdk_window_set_keep_below@Base 3.0.0
++ gdk_window_set_modal_hint@Base 3.0.0
++ gdk_window_set_opacity@Base 3.0.0
++ gdk_window_set_opaque_region@Base 3.9.14
++ gdk_window_set_override_redirect@Base 3.0.0
++ gdk_window_set_pass_through@Base 3.17.9
++ gdk_window_set_role@Base 3.0.0
++ gdk_window_set_shadow_width@Base 3.11.5
++ gdk_window_set_skip_pager_hint@Base 3.0.0
++ gdk_window_set_skip_taskbar_hint@Base 3.0.0
++ gdk_window_set_source_events@Base 3.0.0
++ gdk_window_set_startup_id@Base 3.0.0
++ gdk_window_set_static_gravities@Base 3.0.0
++ gdk_window_set_support_multidevice@Base 3.0.0
++ gdk_window_set_title@Base 3.0.0
++ gdk_window_set_transient_for@Base 3.0.0
++ gdk_window_set_type_hint@Base 3.0.0
++ gdk_window_set_urgency_hint@Base 3.0.0
++ gdk_window_set_user_data@Base 3.0.0
++ gdk_window_shape_combine_region@Base 3.0.0
++ gdk_window_show@Base 3.0.0
++ gdk_window_show_unraised@Base 3.0.0
++ gdk_window_show_window_menu@Base 3.13.7
++ gdk_window_state_get_type@Base 3.0.0
++ gdk_window_stick@Base 3.0.0
++ gdk_window_thaw_toplevel_updates_libgtk_only@Base 3.0.0
++ gdk_window_thaw_updates@Base 3.0.0
++ gdk_window_type_get_type@Base 3.0.0
++ gdk_window_type_hint_get_type@Base 3.0.0
++ gdk_window_unfullscreen@Base 3.0.0
++ gdk_window_unmaximize@Base 3.0.0
++ gdk_window_unstick@Base 3.0.0
++ gdk_window_window_class_get_type@Base 3.0.0
++ gdk_window_withdraw@Base 3.0.0
++ gdk_wm_decoration_get_type@Base 3.0.0
++ gdk_wm_function_get_type@Base 3.0.0
++ gdk_x11_app_launch_context_get_type@Base 3.0.0
++ gdk_x11_atom_to_xatom@Base 3.0.0
++ gdk_x11_atom_to_xatom_for_display@Base 3.0.0
++ gdk_x11_cursor_get_type@Base 3.0.0
++ gdk_x11_cursor_get_xcursor@Base 3.0.0
++ gdk_x11_cursor_get_xdisplay@Base 3.0.0
++ gdk_x11_device_core_get_type@Base 3.0.0
++ gdk_x11_device_get_id@Base 3.2.1
++ gdk_x11_device_manager_core_get_type@Base 3.0.0
++ gdk_x11_device_manager_lookup@Base 3.2.1
++ gdk_x11_device_manager_xi2_get_type@Base 3.0.0
++ gdk_x11_device_xi2_get_type@Base 3.0.0
++ gdk_x11_display_broadcast_startup_message@Base 3.0.0
++ gdk_x11_display_error_trap_pop@Base 3.0.0
++ gdk_x11_display_error_trap_pop_ignored@Base 3.0.0
++ gdk_x11_display_error_trap_push@Base 3.0.0
++ gdk_x11_display_get_glx_version@Base 3.16.2
++ gdk_x11_display_get_startup_notification_id@Base 3.0.0
++ gdk_x11_display_get_type@Base 3.0.0
++ gdk_x11_display_get_user_time@Base 3.0.0
++ gdk_x11_display_get_xdisplay@Base 3.0.0
++ gdk_x11_display_grab@Base 3.0.0
++ gdk_x11_display_manager_get_type@Base 3.0.0
++ gdk_x11_display_set_cursor_theme@Base 3.0.0
++ gdk_x11_display_set_startup_notification_id@Base 3.0.0
++ gdk_x11_display_set_window_scale@Base 3.9.12
++ gdk_x11_display_string_to_compound_text@Base 3.0.0
++ gdk_x11_display_text_property_to_text_list@Base 3.0.0
++ gdk_x11_display_ungrab@Base 3.0.0
++ gdk_x11_display_utf8_to_compound_text@Base 3.0.0
++ gdk_x11_drag_context_get_type@Base 3.0.0
++ gdk_x11_free_compound_text@Base 3.0.0
++ gdk_x11_free_text_list@Base 3.0.0
++ gdk_x11_get_default_root_xwindow@Base 3.0.0
++ gdk_x11_get_default_screen@Base 3.0.0
++ gdk_x11_get_default_xdisplay@Base 3.0.0
++ gdk_x11_get_server_time@Base 3.0.0
++ gdk_x11_get_xatom_by_name@Base 3.0.0
++ gdk_x11_get_xatom_by_name_for_display@Base 3.0.0
++ gdk_x11_get_xatom_name@Base 3.0.0
++ gdk_x11_get_xatom_name_for_display@Base 3.0.0
++ gdk_x11_gl_context_get_type@Base 3.16.2
++ gdk_x11_grab_server@Base 3.0.0
++ gdk_x11_keymap_get_group_for_state@Base 3.5.2
++ gdk_x11_keymap_get_type@Base 3.0.0
++ gdk_x11_keymap_key_is_modifier@Base 3.5.2
++ gdk_x11_lookup_xdisplay@Base 3.0.0
++ gdk_x11_monitor_get_output@Base 3.21.4
++ gdk_x11_monitor_get_type@Base 3.21.4
++ gdk_x11_register_standard_event_type@Base 3.0.0
++ gdk_x11_screen_get_current_desktop@Base 3.9.14
++ gdk_x11_screen_get_monitor_output@Base 3.0.0
++ gdk_x11_screen_get_number_of_desktops@Base 3.9.14
++ gdk_x11_screen_get_screen_number@Base 3.0.0
++ gdk_x11_screen_get_type@Base 3.0.0
++ gdk_x11_screen_get_window_manager_name@Base 3.0.0
++ gdk_x11_screen_get_xscreen@Base 3.0.0
++ gdk_x11_screen_lookup_visual@Base 3.0.0
++ gdk_x11_screen_supports_net_wm_hint@Base 3.0.0
++ gdk_x11_set_sm_client_id@Base 3.0.0
++ gdk_x11_ungrab_server@Base 3.0.0
++ gdk_x11_visual_get_type@Base 3.0.0
++ gdk_x11_visual_get_xvisual@Base 3.0.0
++ gdk_x11_window_foreign_new_for_display@Base 3.0.0
++ gdk_x11_window_get_desktop@Base 3.9.14
++ gdk_x11_window_get_type@Base 3.0.0
++ gdk_x11_window_get_xid@Base 3.0.0
++ gdk_x11_window_lookup_for_display@Base 3.0.0
++ gdk_x11_window_move_to_current_desktop@Base 3.0.0
++ gdk_x11_window_move_to_desktop@Base 3.9.14
++ gdk_x11_window_set_frame_extents@Base 3.9.12
++ gdk_x11_window_set_frame_sync_enabled@Base 3.9.10
++ gdk_x11_window_set_hide_titlebar_when_maximized@Base 3.3.16
++ gdk_x11_window_set_theme_variant@Base 3.1.4
++ gdk_x11_window_set_user_time@Base 3.0.0
++ gdk_x11_window_set_utf8_property@Base 3.3.16
++ gdk_x11_xatom_to_atom@Base 3.0.0
++ gdk_x11_xatom_to_atom_for_display@Base 3.0.0
++libgtk-3.so.0 libgtk-3-0 #MINVER#
++ gtk_about_dialog_add_credit_section@Base 3.3.16
++ gtk_about_dialog_get_artists@Base 3.0.0
++ gtk_about_dialog_get_authors@Base 3.0.0
++ gtk_about_dialog_get_comments@Base 3.0.0
++ gtk_about_dialog_get_copyright@Base 3.0.0
++ gtk_about_dialog_get_documenters@Base 3.0.0
++ gtk_about_dialog_get_license@Base 3.0.0
++ gtk_about_dialog_get_license_type@Base 3.0.0
++ gtk_about_dialog_get_logo@Base 3.0.0
++ gtk_about_dialog_get_logo_icon_name@Base 3.0.0
++ gtk_about_dialog_get_program_name@Base 3.0.0
++ gtk_about_dialog_get_translator_credits@Base 3.0.0
++ gtk_about_dialog_get_type@Base 3.0.0
++ gtk_about_dialog_get_version@Base 3.0.0
++ gtk_about_dialog_get_website@Base 3.0.0
++ gtk_about_dialog_get_website_label@Base 3.0.0
++ gtk_about_dialog_get_wrap_license@Base 3.0.0
++ gtk_about_dialog_new@Base 3.0.0
++ gtk_about_dialog_set_artists@Base 3.0.0
++ gtk_about_dialog_set_authors@Base 3.0.0
++ gtk_about_dialog_set_comments@Base 3.0.0
++ gtk_about_dialog_set_copyright@Base 3.0.0
++ gtk_about_dialog_set_documenters@Base 3.0.0
++ gtk_about_dialog_set_license@Base 3.0.0
++ gtk_about_dialog_set_license_type@Base 3.0.0
++ gtk_about_dialog_set_logo@Base 3.0.0
++ gtk_about_dialog_set_logo_icon_name@Base 3.0.0
++ gtk_about_dialog_set_program_name@Base 3.0.0
++ gtk_about_dialog_set_translator_credits@Base 3.0.0
++ gtk_about_dialog_set_version@Base 3.0.0
++ gtk_about_dialog_set_website@Base 3.0.0
++ gtk_about_dialog_set_website_label@Base 3.0.0
++ gtk_about_dialog_set_wrap_license@Base 3.0.0
++ gtk_accel_flags_get_type@Base 3.0.0
++ gtk_accel_group_activate@Base 3.0.0
++ gtk_accel_group_connect@Base 3.0.0
++ gtk_accel_group_connect_by_path@Base 3.0.0
++ gtk_accel_group_disconnect@Base 3.0.0
++ gtk_accel_group_disconnect_key@Base 3.0.0
++ gtk_accel_group_find@Base 3.0.0
++ gtk_accel_group_from_accel_closure@Base 3.0.0
++ gtk_accel_group_get_is_locked@Base 3.0.0
++ gtk_accel_group_get_modifier_mask@Base 3.0.0
++ gtk_accel_group_get_type@Base 3.0.0
++ gtk_accel_group_lock@Base 3.0.0
++ gtk_accel_group_new@Base 3.0.0
++ gtk_accel_group_query@Base 3.0.0
++ gtk_accel_group_unlock@Base 3.0.0
++ gtk_accel_groups_activate@Base 3.0.0
++ gtk_accel_groups_from_object@Base 3.0.0
++ gtk_accel_label_get_accel@Base 3.11.5
++ gtk_accel_label_get_accel_widget@Base 3.0.0
++ gtk_accel_label_get_accel_width@Base 3.0.0
++ gtk_accel_label_get_type@Base 3.0.0
++ gtk_accel_label_new@Base 3.0.0
++ gtk_accel_label_refetch@Base 3.0.0
++ gtk_accel_label_set_accel@Base 3.5.18
++ gtk_accel_label_set_accel_closure@Base 3.0.0
++ gtk_accel_label_set_accel_widget@Base 3.0.0
++ gtk_accel_map_add_entry@Base 3.0.0
++ gtk_accel_map_add_filter@Base 3.0.0
++ gtk_accel_map_change_entry@Base 3.0.0
++ gtk_accel_map_foreach@Base 3.0.0
++ gtk_accel_map_foreach_unfiltered@Base 3.0.0
++ gtk_accel_map_get@Base 3.0.0
++ gtk_accel_map_get_type@Base 3.0.0
++ gtk_accel_map_load@Base 3.0.0
++ gtk_accel_map_load_fd@Base 3.0.0
++ gtk_accel_map_load_scanner@Base 3.0.0
++ gtk_accel_map_lock_path@Base 3.0.0
++ gtk_accel_map_lookup_entry@Base 3.0.0
++ gtk_accel_map_save@Base 3.0.0
++ gtk_accel_map_save_fd@Base 3.0.0
++ gtk_accel_map_unlock_path@Base 3.0.0
++ gtk_accelerator_get_default_mod_mask@Base 3.0.0
++ gtk_accelerator_get_label@Base 3.0.0
++ gtk_accelerator_get_label_with_keycode@Base 3.3.16
++ gtk_accelerator_name@Base 3.0.0
++ gtk_accelerator_name_with_keycode@Base 3.3.16
++ gtk_accelerator_parse@Base 3.0.0
++ gtk_accelerator_parse_with_keycode@Base 3.3.16
++ gtk_accelerator_set_default_mod_mask@Base 3.0.0
++ gtk_accelerator_valid@Base 3.0.0
++ gtk_accessible_connect_widget_destroyed@Base 3.0.0
++ gtk_accessible_get_type@Base 3.0.0
++ gtk_accessible_get_widget@Base 3.0.0
++ gtk_accessible_set_widget@Base 3.0.0
++ gtk_action_activate@Base 3.0.0
++ gtk_action_bar_get_center_widget@Base 3.11.5
++ gtk_action_bar_get_type@Base 3.11.5
++ gtk_action_bar_new@Base 3.11.5
++ gtk_action_bar_pack_end@Base 3.11.5
++ gtk_action_bar_pack_start@Base 3.11.5
++ gtk_action_bar_set_center_widget@Base 3.11.5
++ gtk_action_block_activate@Base 3.0.0
++ gtk_action_connect_accelerator@Base 3.0.0
++ gtk_action_create_icon@Base 3.0.0
++ gtk_action_create_menu@Base 3.0.0
++ gtk_action_create_menu_item@Base 3.0.0
++ gtk_action_create_tool_item@Base 3.0.0
++ gtk_action_disconnect_accelerator@Base 3.0.0
++ gtk_action_get_accel_closure@Base 3.0.0
++ gtk_action_get_accel_path@Base 3.0.0
++ gtk_action_get_always_show_image@Base 3.0.0
++ gtk_action_get_gicon@Base 3.0.0
++ gtk_action_get_icon_name@Base 3.0.0
++ gtk_action_get_is_important@Base 3.0.0
++ gtk_action_get_label@Base 3.0.0
++ gtk_action_get_name@Base 3.0.0
++ gtk_action_get_proxies@Base 3.0.0
++ gtk_action_get_sensitive@Base 3.0.0
++ gtk_action_get_short_label@Base 3.0.0
++ gtk_action_get_stock_id@Base 3.0.0
++ gtk_action_get_tooltip@Base 3.0.0
++ gtk_action_get_type@Base 3.0.0
++ gtk_action_get_visible@Base 3.0.0
++ gtk_action_get_visible_horizontal@Base 3.0.0
++ gtk_action_get_visible_vertical@Base 3.0.0
++ gtk_action_group_add_action@Base 3.0.0
++ gtk_action_group_add_action_with_accel@Base 3.0.0
++ gtk_action_group_add_actions@Base 3.0.0
++ gtk_action_group_add_actions_full@Base 3.0.0
++ gtk_action_group_add_radio_actions@Base 3.0.0
++ gtk_action_group_add_radio_actions_full@Base 3.0.0
++ gtk_action_group_add_toggle_actions@Base 3.0.0
++ gtk_action_group_add_toggle_actions_full@Base 3.0.0
++ gtk_action_group_get_accel_group@Base 3.5.18
++ gtk_action_group_get_action@Base 3.0.0
++ gtk_action_group_get_name@Base 3.0.0
++ gtk_action_group_get_sensitive@Base 3.0.0
++ gtk_action_group_get_type@Base 3.0.0
++ gtk_action_group_get_visible@Base 3.0.0
++ gtk_action_group_list_actions@Base 3.0.0
++ gtk_action_group_new@Base 3.0.0
++ gtk_action_group_remove_action@Base 3.0.0
++ gtk_action_group_set_accel_group@Base 3.5.18
++ gtk_action_group_set_sensitive@Base 3.0.0
++ gtk_action_group_set_translate_func@Base 3.0.0
++ gtk_action_group_set_translation_domain@Base 3.0.0
++ gtk_action_group_set_visible@Base 3.0.0
++ gtk_action_group_translate_string@Base 3.0.0
++ gtk_action_is_sensitive@Base 3.0.0
++ gtk_action_is_visible@Base 3.0.0
++ gtk_action_new@Base 3.0.0
++ gtk_action_set_accel_group@Base 3.0.0
++ gtk_action_set_accel_path@Base 3.0.0
++ gtk_action_set_always_show_image@Base 3.0.0
++ gtk_action_set_gicon@Base 3.0.0
++ gtk_action_set_icon_name@Base 3.0.0
++ gtk_action_set_is_important@Base 3.0.0
++ gtk_action_set_label@Base 3.0.0
++ gtk_action_set_sensitive@Base 3.0.0
++ gtk_action_set_short_label@Base 3.0.0
++ gtk_action_set_stock_id@Base 3.0.0
++ gtk_action_set_tooltip@Base 3.0.0
++ gtk_action_set_visible@Base 3.0.0
++ gtk_action_set_visible_horizontal@Base 3.0.0
++ gtk_action_set_visible_vertical@Base 3.0.0
++ gtk_action_unblock_activate@Base 3.0.0
++ gtk_actionable_get_action_name@Base 3.3.16
++ gtk_actionable_get_action_target_value@Base 3.3.16
++ gtk_actionable_get_type@Base 3.3.16
++ gtk_actionable_set_action_name@Base 3.3.16
++ gtk_actionable_set_action_target@Base 3.3.16
++ gtk_actionable_set_action_target_value@Base 3.3.16
++ gtk_actionable_set_detailed_action_name@Base 3.3.16
++ gtk_activatable_do_set_related_action@Base 3.0.0
++ gtk_activatable_get_related_action@Base 3.0.0
++ gtk_activatable_get_type@Base 3.0.0
++ gtk_activatable_get_use_action_appearance@Base 3.0.0
++ gtk_activatable_set_related_action@Base 3.0.0
++ gtk_activatable_set_use_action_appearance@Base 3.0.0
++ gtk_activatable_sync_action_properties@Base 3.0.0
++ gtk_adjustment_changed@Base 3.0.0
++ gtk_adjustment_clamp_page@Base 3.0.0
++ gtk_adjustment_configure@Base 3.0.0
++ gtk_adjustment_get_lower@Base 3.0.0
++ gtk_adjustment_get_minimum_increment@Base 3.2.1
++ gtk_adjustment_get_page_increment@Base 3.0.0
++ gtk_adjustment_get_page_size@Base 3.0.0
++ gtk_adjustment_get_step_increment@Base 3.0.0
++ gtk_adjustment_get_type@Base 3.0.0
++ gtk_adjustment_get_upper@Base 3.0.0
++ gtk_adjustment_get_value@Base 3.0.0
++ gtk_adjustment_new@Base 3.0.0
++ gtk_adjustment_set_lower@Base 3.0.0
++ gtk_adjustment_set_page_increment@Base 3.0.0
++ gtk_adjustment_set_page_size@Base 3.0.0
++ gtk_adjustment_set_step_increment@Base 3.0.0
++ gtk_adjustment_set_upper@Base 3.0.0
++ gtk_adjustment_set_value@Base 3.0.0
++ gtk_adjustment_value_changed@Base 3.0.0
++ gtk_align_get_type@Base 3.0.0
++ gtk_alignment_get_padding@Base 3.0.0
++ gtk_alignment_get_type@Base 3.0.0
++ gtk_alignment_new@Base 3.0.0
++ gtk_alignment_set@Base 3.0.0
++ gtk_alignment_set_padding@Base 3.0.0
++ gtk_alternative_dialog_button_order@Base 3.0.0
++ gtk_app_chooser_button_append_custom_item@Base 3.0.0
++ gtk_app_chooser_button_append_separator@Base 3.0.0
++ gtk_app_chooser_button_get_heading@Base 3.0.0
++ gtk_app_chooser_button_get_show_default_item@Base 3.2.1
++ gtk_app_chooser_button_get_show_dialog_item@Base 3.0.0
++ gtk_app_chooser_button_get_type@Base 3.0.0
++ gtk_app_chooser_button_new@Base 3.0.0
++ gtk_app_chooser_button_set_active_custom_item@Base 3.0.0
++ gtk_app_chooser_button_set_heading@Base 3.0.0
++ gtk_app_chooser_button_set_show_default_item@Base 3.2.1
++ gtk_app_chooser_button_set_show_dialog_item@Base 3.0.0
++ gtk_app_chooser_dialog_get_heading@Base 3.0.0
++ gtk_app_chooser_dialog_get_type@Base 3.0.0
++ gtk_app_chooser_dialog_get_widget@Base 3.0.0
++ gtk_app_chooser_dialog_new@Base 3.0.0
++ gtk_app_chooser_dialog_new_for_content_type@Base 3.0.0
++ gtk_app_chooser_dialog_set_heading@Base 3.0.0
++ gtk_app_chooser_get_app_info@Base 3.0.0
++ gtk_app_chooser_get_content_type@Base 3.0.0
++ gtk_app_chooser_get_type@Base 3.0.0
++ gtk_app_chooser_refresh@Base 3.0.0
++ gtk_app_chooser_widget_get_default_text@Base 3.0.0
++ gtk_app_chooser_widget_get_show_all@Base 3.0.0
++ gtk_app_chooser_widget_get_show_default@Base 3.0.0
++ gtk_app_chooser_widget_get_show_fallback@Base 3.0.0
++ gtk_app_chooser_widget_get_show_other@Base 3.0.0
++ gtk_app_chooser_widget_get_show_recommended@Base 3.0.0
++ gtk_app_chooser_widget_get_type@Base 3.0.0
++ gtk_app_chooser_widget_new@Base 3.0.0
++ gtk_app_chooser_widget_set_default_text@Base 3.0.0
++ gtk_app_chooser_widget_set_show_all@Base 3.0.0
++ gtk_app_chooser_widget_set_show_default@Base 3.0.0
++ gtk_app_chooser_widget_set_show_fallback@Base 3.0.0
++ gtk_app_chooser_widget_set_show_other@Base 3.0.0
++ gtk_app_chooser_widget_set_show_recommended@Base 3.0.0
++ gtk_application_add_accelerator@Base 3.3.16
++ gtk_application_add_window@Base 3.0.0
++ gtk_application_get_accels_for_action@Base 3.11.5
++ gtk_application_get_actions_for_accel@Base 3.13.7
++ gtk_application_get_active_window@Base 3.5.12
++ gtk_application_get_app_menu@Base 3.3.16
++ gtk_application_get_menu_by_id@Base 3.13.7
++ gtk_application_get_menubar@Base 3.3.16
++ gtk_application_get_type@Base 3.0.0
++ gtk_application_get_window_by_id@Base 3.5.4
++ gtk_application_get_windows@Base 3.0.0
++ gtk_application_inhibit@Base 3.3.16
++ gtk_application_inhibit_flags_get_type@Base 3.3.16
++ gtk_application_is_inhibited@Base 3.3.16
++ gtk_application_list_action_descriptions@Base 3.11.5
++ gtk_application_new@Base 3.0.0
++ gtk_application_prefers_app_menu@Base 3.13.7
++ gtk_application_remove_accelerator@Base 3.3.16
++ gtk_application_remove_window@Base 3.0.0
++ gtk_application_set_accels_for_action@Base 3.11.5
++ gtk_application_set_app_menu@Base 3.3.16
++ gtk_application_set_menubar@Base 3.3.16
++ gtk_application_uninhibit@Base 3.3.16
++ gtk_application_window_get_help_overlay@Base 3.19.12
++ gtk_application_window_get_id@Base 3.5.4
++ gtk_application_window_get_show_menubar@Base 3.3.16
++ gtk_application_window_get_type@Base 3.3.16
++ gtk_application_window_new@Base 3.3.16
++ gtk_application_window_set_help_overlay@Base 3.19.12
++ gtk_application_window_set_show_menubar@Base 3.3.16
++ gtk_arrow_accessible_get_type@Base 3.7.10
++ gtk_arrow_get_type@Base 3.0.0
++ gtk_arrow_new@Base 3.0.0
++ gtk_arrow_placement_get_type@Base 3.0.0
++ gtk_arrow_set@Base 3.0.0
++ gtk_arrow_type_get_type@Base 3.0.0
++ gtk_aspect_frame_get_type@Base 3.0.0
++ gtk_aspect_frame_new@Base 3.0.0
++ gtk_aspect_frame_set@Base 3.0.0
++ gtk_assistant_add_action_widget@Base 3.0.0
++ gtk_assistant_append_page@Base 3.0.0
++ gtk_assistant_commit@Base 3.0.0
++ gtk_assistant_get_current_page@Base 3.0.0
++ gtk_assistant_get_n_pages@Base 3.0.0
++ gtk_assistant_get_nth_page@Base 3.0.0
++ gtk_assistant_get_page_complete@Base 3.0.0
++ gtk_assistant_get_page_has_padding@Base 3.17.9
++ gtk_assistant_get_page_header_image@Base 3.0.0
++ gtk_assistant_get_page_side_image@Base 3.0.0
++ gtk_assistant_get_page_title@Base 3.0.0
++ gtk_assistant_get_page_type@Base 3.0.0
++ gtk_assistant_get_type@Base 3.0.0
++ gtk_assistant_insert_page@Base 3.0.0
++ gtk_assistant_new@Base 3.0.0
++ gtk_assistant_next_page@Base 3.0.0
++ gtk_assistant_page_type_get_type@Base 3.0.0
++ gtk_assistant_prepend_page@Base 3.0.0
++ gtk_assistant_previous_page@Base 3.0.0
++ gtk_assistant_remove_action_widget@Base 3.0.0
++ gtk_assistant_remove_page@Base 3.2.0
++ gtk_assistant_set_current_page@Base 3.0.0
++ gtk_assistant_set_forward_page_func@Base 3.0.0
++ gtk_assistant_set_page_complete@Base 3.0.0
++ gtk_assistant_set_page_has_padding@Base 3.17.9
++ gtk_assistant_set_page_header_image@Base 3.0.0
++ gtk_assistant_set_page_side_image@Base 3.0.0
++ gtk_assistant_set_page_title@Base 3.0.0
++ gtk_assistant_set_page_type@Base 3.0.0
++ gtk_assistant_update_buttons_state@Base 3.0.0
++ gtk_attach_options_get_type@Base 3.0.0
++ gtk_baseline_position_get_type@Base 3.9.10
++ gtk_bin_get_child@Base 3.0.0
++ gtk_bin_get_type@Base 3.0.0
++ gtk_binding_entry_add_signal@Base 3.0.0
++ gtk_binding_entry_add_signal_from_string@Base 3.0.0
++ gtk_binding_entry_add_signall@Base 3.0.0
++ gtk_binding_entry_remove@Base 3.0.0
++ gtk_binding_entry_skip@Base 3.0.0
++ gtk_binding_set_activate@Base 3.0.0
++ gtk_binding_set_add_path@Base 3.0.0
++ gtk_binding_set_by_class@Base 3.0.0
++ gtk_binding_set_find@Base 3.0.0
++ gtk_binding_set_new@Base 3.0.0
++ gtk_bindings_activate@Base 3.0.0
++ gtk_bindings_activate_event@Base 3.0.0
++ gtk_boolean_cell_accessible_get_type@Base 3.7.10
++ gtk_border_copy@Base 3.0.0
++ gtk_border_free@Base 3.0.0
++ gtk_border_get_type@Base 3.0.0
++ gtk_border_new@Base 3.0.0
++ gtk_border_style_get_type@Base 3.0.0
++ gtk_box_get_baseline_position@Base 3.9.10
++ gtk_box_get_center_widget@Base 3.11.7
++ gtk_box_get_homogeneous@Base 3.0.0
++ gtk_box_get_spacing@Base 3.0.0
++ gtk_box_get_type@Base 3.0.0
++ gtk_box_new@Base 3.0.0
++ gtk_box_pack_end@Base 3.0.0
++ gtk_box_pack_start@Base 3.0.0
++ gtk_box_query_child_packing@Base 3.0.0
++ gtk_box_reorder_child@Base 3.0.0
++ gtk_box_set_baseline_position@Base 3.9.10
++ gtk_box_set_center_widget@Base 3.11.7
++ gtk_box_set_child_packing@Base 3.0.0
++ gtk_box_set_homogeneous@Base 3.0.0
++ gtk_box_set_spacing@Base 3.0.0
++ gtk_buildable_add_child@Base 3.0.0
++ gtk_buildable_construct_child@Base 3.0.0
++ gtk_buildable_custom_finished@Base 3.0.0
++ gtk_buildable_custom_tag_end@Base 3.0.0
++ gtk_buildable_custom_tag_start@Base 3.0.0
++ gtk_buildable_get_internal_child@Base 3.0.0
++ gtk_buildable_get_name@Base 3.0.0
++ gtk_buildable_get_type@Base 3.0.0
++ gtk_buildable_parser_finished@Base 3.0.0
++ gtk_buildable_set_buildable_property@Base 3.0.0
++ gtk_buildable_set_name@Base 3.0.0
++ gtk_builder_add_callback_symbol@Base 3.9.10
++ gtk_builder_add_callback_symbols@Base 3.9.10
++ gtk_builder_add_from_file@Base 3.0.0
++ gtk_builder_add_from_resource@Base 3.3.16
++ gtk_builder_add_from_string@Base 3.0.0
++ gtk_builder_add_objects_from_file@Base 3.0.0
++ gtk_builder_add_objects_from_resource@Base 3.3.16
++ gtk_builder_add_objects_from_string@Base 3.0.0
++ gtk_builder_connect_signals@Base 3.0.0
++ gtk_builder_connect_signals_full@Base 3.0.0
++ gtk_builder_error_get_type@Base 3.0.0
++ gtk_builder_error_quark@Base 3.0.0
++ gtk_builder_expose_object@Base 3.7.10
++ gtk_builder_extend_with_template@Base 3.17.9
++ gtk_builder_get_application@Base 3.11.5
++ gtk_builder_get_object@Base 3.0.0
++ gtk_builder_get_objects@Base 3.0.0
++ gtk_builder_get_translation_domain@Base 3.0.0
++ gtk_builder_get_type@Base 3.0.0
++ gtk_builder_get_type_from_name@Base 3.0.0
++ gtk_builder_lookup_callback_symbol@Base 3.9.10
++ gtk_builder_new@Base 3.0.0
++ gtk_builder_new_from_file@Base 3.9.10
++ gtk_builder_new_from_resource@Base 3.9.10
++ gtk_builder_new_from_string@Base 3.9.10
++ gtk_builder_set_application@Base 3.11.5
++ gtk_builder_set_translation_domain@Base 3.0.0
++ gtk_builder_value_from_string@Base 3.0.0
++ gtk_builder_value_from_string_type@Base 3.0.0
++ gtk_button_accessible_get_type@Base 3.7.10
++ gtk_button_box_get_child_non_homogeneous@Base 3.1.4
++ gtk_button_box_get_child_secondary@Base 3.0.0
++ gtk_button_box_get_layout@Base 3.0.0
++ gtk_button_box_get_type@Base 3.0.0
++ gtk_button_box_new@Base 3.0.0
++ gtk_button_box_set_child_non_homogeneous@Base 3.1.4
++ gtk_button_box_set_child_secondary@Base 3.0.0
++ gtk_button_box_set_layout@Base 3.0.0
++ gtk_button_box_style_get_type@Base 3.0.0
++ gtk_button_clicked@Base 3.0.0
++ gtk_button_enter@Base 3.0.0
++ gtk_button_get_alignment@Base 3.0.0
++ gtk_button_get_always_show_image@Base 3.5.4
++ gtk_button_get_event_window@Base 3.0.0
++ gtk_button_get_focus_on_click@Base 3.0.0
++ gtk_button_get_image@Base 3.0.0
++ gtk_button_get_image_position@Base 3.0.0
++ gtk_button_get_label@Base 3.0.0
++ gtk_button_get_relief@Base 3.0.0
++ gtk_button_get_type@Base 3.0.0
++ gtk_button_get_use_stock@Base 3.0.0
++ gtk_button_get_use_underline@Base 3.0.0
++ gtk_button_leave@Base 3.0.0
++ gtk_button_new@Base 3.0.0
++ gtk_button_new_from_icon_name@Base 3.9.12
++ gtk_button_new_from_stock@Base 3.0.0
++ gtk_button_new_with_label@Base 3.0.0
++ gtk_button_new_with_mnemonic@Base 3.0.0
++ gtk_button_pressed@Base 3.0.0
++ gtk_button_released@Base 3.0.0
++ gtk_button_role_get_type@Base 3.16.2
++ gtk_button_set_alignment@Base 3.0.0
++ gtk_button_set_always_show_image@Base 3.5.4
++ gtk_button_set_focus_on_click@Base 3.0.0
++ gtk_button_set_image@Base 3.0.0
++ gtk_button_set_image_position@Base 3.0.0
++ gtk_button_set_label@Base 3.0.0
++ gtk_button_set_relief@Base 3.0.0
++ gtk_button_set_use_stock@Base 3.0.0
++ gtk_button_set_use_underline@Base 3.0.0
++ gtk_buttons_type_get_type@Base 3.0.0
++ gtk_cairo_should_draw_window@Base 3.0.0
++ gtk_cairo_transform_to_window@Base 3.0.0
++ gtk_calendar_clear_marks@Base 3.0.0
++ gtk_calendar_display_options_get_type@Base 3.0.0
++ gtk_calendar_get_date@Base 3.0.0
++ gtk_calendar_get_day_is_marked@Base 3.0.0
++ gtk_calendar_get_detail_height_rows@Base 3.0.0
++ gtk_calendar_get_detail_width_chars@Base 3.0.0
++ gtk_calendar_get_display_options@Base 3.0.0
++ gtk_calendar_get_type@Base 3.0.0
++ gtk_calendar_mark_day@Base 3.0.0
++ gtk_calendar_new@Base 3.0.0
++ gtk_calendar_select_day@Base 3.0.0
++ gtk_calendar_select_month@Base 3.0.0
++ gtk_calendar_set_detail_func@Base 3.0.0
++ gtk_calendar_set_detail_height_rows@Base 3.0.0
++ gtk_calendar_set_detail_width_chars@Base 3.0.0
++ gtk_calendar_set_display_options@Base 3.0.0
++ gtk_calendar_unmark_day@Base 3.0.0
++ gtk_cell_accessible_get_type@Base 3.7.10
++ gtk_cell_accessible_parent_activate@Base 3.7.10
++ gtk_cell_accessible_parent_edit@Base 3.7.10
++ gtk_cell_accessible_parent_expand_collapse@Base 3.7.10
++ gtk_cell_accessible_parent_get_cell_area@Base 3.7.10
++ gtk_cell_accessible_parent_get_cell_extents@Base 3.7.10
++ gtk_cell_accessible_parent_get_child_index@Base 3.7.10
++ gtk_cell_accessible_parent_get_renderer_state@Base 3.7.10
++ gtk_cell_accessible_parent_get_type@Base 3.7.10
++ gtk_cell_accessible_parent_grab_focus@Base 3.7.10
++ gtk_cell_accessible_parent_update_relationset@Base 3.12.0
++ gtk_cell_area_activate@Base 3.0.0
++ gtk_cell_area_activate_cell@Base 3.0.0
++ gtk_cell_area_add@Base 3.0.0
++ gtk_cell_area_add_focus_sibling@Base 3.0.0
++ gtk_cell_area_add_with_properties@Base 3.0.0
++ gtk_cell_area_apply_attributes@Base 3.0.0
++ gtk_cell_area_attribute_connect@Base 3.0.0
++ gtk_cell_area_attribute_disconnect@Base 3.0.0
++ gtk_cell_area_attribute_get_column@Base 3.13.7
++ gtk_cell_area_box_get_spacing@Base 3.0.0
++ gtk_cell_area_box_get_type@Base 3.0.0
++ gtk_cell_area_box_new@Base 3.0.0
++ gtk_cell_area_box_pack_end@Base 3.0.0
++ gtk_cell_area_box_pack_start@Base 3.0.0
++ gtk_cell_area_box_set_spacing@Base 3.0.0
++ gtk_cell_area_cell_get@Base 3.0.0
++ gtk_cell_area_cell_get_property@Base 3.0.0
++ gtk_cell_area_cell_get_valist@Base 3.0.0
++ gtk_cell_area_cell_set@Base 3.0.0
++ gtk_cell_area_cell_set_property@Base 3.0.0
++ gtk_cell_area_cell_set_valist@Base 3.0.0
++ gtk_cell_area_class_find_cell_property@Base 3.0.0
++ gtk_cell_area_class_install_cell_property@Base 3.0.0
++ gtk_cell_area_class_list_cell_properties@Base 3.0.0
++ gtk_cell_area_context_allocate@Base 3.0.0
++ gtk_cell_area_context_get_allocation@Base 3.0.0
++ gtk_cell_area_context_get_area@Base 3.0.0
++ gtk_cell_area_context_get_preferred_height@Base 3.0.0
++ gtk_cell_area_context_get_preferred_height_for_width@Base 3.0.0
++ gtk_cell_area_context_get_preferred_width@Base 3.0.0
++ gtk_cell_area_context_get_preferred_width_for_height@Base 3.0.0
++ gtk_cell_area_context_get_type@Base 3.0.0
++ gtk_cell_area_context_push_preferred_height@Base 3.0.0
++ gtk_cell_area_context_push_preferred_width@Base 3.0.0
++ gtk_cell_area_context_reset@Base 3.0.0
++ gtk_cell_area_copy_context@Base 3.0.0
++ gtk_cell_area_create_context@Base 3.0.0
++ gtk_cell_area_event@Base 3.0.0
++ gtk_cell_area_focus@Base 3.0.0
++ gtk_cell_area_foreach@Base 3.0.0
++ gtk_cell_area_foreach_alloc@Base 3.0.0
++ gtk_cell_area_get_cell_allocation@Base 3.0.0
++ gtk_cell_area_get_cell_at_position@Base 3.0.0
++ gtk_cell_area_get_current_path_string@Base 3.0.0
++ gtk_cell_area_get_edit_widget@Base 3.0.0
++ gtk_cell_area_get_edited_cell@Base 3.0.0
++ gtk_cell_area_get_focus_cell@Base 3.0.0
++ gtk_cell_area_get_focus_from_sibling@Base 3.0.0
++ gtk_cell_area_get_focus_siblings@Base 3.0.0
++ gtk_cell_area_get_preferred_height@Base 3.0.0
++ gtk_cell_area_get_preferred_height_for_width@Base 3.0.0
++ gtk_cell_area_get_preferred_width@Base 3.0.0
++ gtk_cell_area_get_preferred_width_for_height@Base 3.0.0
++ gtk_cell_area_get_request_mode@Base 3.0.0
++ gtk_cell_area_get_type@Base 3.0.0
++ gtk_cell_area_has_renderer@Base 3.0.0
++ gtk_cell_area_inner_cell_area@Base 3.0.0
++ gtk_cell_area_is_activatable@Base 3.0.0
++ gtk_cell_area_is_focus_sibling@Base 3.0.0
++ gtk_cell_area_remove@Base 3.0.0
++ gtk_cell_area_remove_focus_sibling@Base 3.0.0
++ gtk_cell_area_render@Base 3.0.0
++ gtk_cell_area_request_renderer@Base 3.0.0
++ gtk_cell_area_set_focus_cell@Base 3.0.0
++ gtk_cell_area_stop_editing@Base 3.0.0
++ gtk_cell_editable_editing_done@Base 3.0.0
++ gtk_cell_editable_get_type@Base 3.0.0
++ gtk_cell_editable_remove_widget@Base 3.0.0
++ gtk_cell_editable_start_editing@Base 3.0.0
++ gtk_cell_layout_add_attribute@Base 3.0.0
++ gtk_cell_layout_clear@Base 3.0.0
++ gtk_cell_layout_clear_attributes@Base 3.0.0
++ gtk_cell_layout_get_area@Base 3.0.0
++ gtk_cell_layout_get_cells@Base 3.0.0
++ gtk_cell_layout_get_type@Base 3.0.0
++ gtk_cell_layout_pack_end@Base 3.0.0
++ gtk_cell_layout_pack_start@Base 3.0.0
++ gtk_cell_layout_reorder@Base 3.0.0
++ gtk_cell_layout_set_attributes@Base 3.0.0
++ gtk_cell_layout_set_cell_data_func@Base 3.0.0
++ gtk_cell_renderer_accel_get_type@Base 3.0.0
++ gtk_cell_renderer_accel_mode_get_type@Base 3.0.0
++ gtk_cell_renderer_accel_new@Base 3.0.0
++ gtk_cell_renderer_activate@Base 3.0.0
++ gtk_cell_renderer_class_set_accessible_type@Base 3.7.12
++ gtk_cell_renderer_combo_get_type@Base 3.0.0
++ gtk_cell_renderer_combo_new@Base 3.0.0
++ gtk_cell_renderer_get_aligned_area@Base 3.0.0
++ gtk_cell_renderer_get_alignment@Base 3.0.0
++ gtk_cell_renderer_get_fixed_size@Base 3.0.0
++ gtk_cell_renderer_get_padding@Base 3.0.0
++ gtk_cell_renderer_get_preferred_height@Base 3.0.0
++ gtk_cell_renderer_get_preferred_height_for_width@Base 3.0.0
++ gtk_cell_renderer_get_preferred_size@Base 3.0.0
++ gtk_cell_renderer_get_preferred_width@Base 3.0.0
++ gtk_cell_renderer_get_preferred_width_for_height@Base 3.0.0
++ gtk_cell_renderer_get_request_mode@Base 3.0.0
++ gtk_cell_renderer_get_sensitive@Base 3.0.0
++ gtk_cell_renderer_get_size@Base 3.0.0
++ gtk_cell_renderer_get_state@Base 3.0.0
++ gtk_cell_renderer_get_type@Base 3.0.0
++ gtk_cell_renderer_get_visible@Base 3.0.0
++ gtk_cell_renderer_graph_get_type@Base 3.16.2
++ gtk_cell_renderer_graph_new@Base 3.16.2
++ gtk_cell_renderer_is_activatable@Base 3.0.0
++ gtk_cell_renderer_mode_get_type@Base 3.0.0
++ gtk_cell_renderer_pixbuf_get_type@Base 3.0.0
++ gtk_cell_renderer_pixbuf_new@Base 3.0.0
++ gtk_cell_renderer_progress_get_type@Base 3.0.0
++ gtk_cell_renderer_progress_new@Base 3.0.0
++ gtk_cell_renderer_render@Base 3.0.0
++ gtk_cell_renderer_set_alignment@Base 3.0.0
++ gtk_cell_renderer_set_fixed_size@Base 3.0.0
++ gtk_cell_renderer_set_padding@Base 3.0.0
++ gtk_cell_renderer_set_sensitive@Base 3.0.0
++ gtk_cell_renderer_set_visible@Base 3.0.0
++ gtk_cell_renderer_spin_get_type@Base 3.0.0
++ gtk_cell_renderer_spin_new@Base 3.0.0
++ gtk_cell_renderer_spinner_get_type@Base 3.0.0
++ gtk_cell_renderer_spinner_new@Base 3.0.0
++ gtk_cell_renderer_start_editing@Base 3.0.0
++ gtk_cell_renderer_state_get_type@Base 3.0.0
++ gtk_cell_renderer_stop_editing@Base 3.0.0
++ gtk_cell_renderer_text_get_type@Base 3.0.0
++ gtk_cell_renderer_text_new@Base 3.0.0
++ gtk_cell_renderer_text_set_fixed_height_from_font@Base 3.0.0
++ gtk_cell_renderer_toggle_get_activatable@Base 3.0.0
++ gtk_cell_renderer_toggle_get_active@Base 3.0.0
++ gtk_cell_renderer_toggle_get_radio@Base 3.0.0
++ gtk_cell_renderer_toggle_get_type@Base 3.0.0
++ gtk_cell_renderer_toggle_new@Base 3.0.0
++ gtk_cell_renderer_toggle_set_activatable@Base 3.0.0
++ gtk_cell_renderer_toggle_set_active@Base 3.0.0
++ gtk_cell_renderer_toggle_set_radio@Base 3.0.0
++ gtk_cell_view_get_displayed_row@Base 3.0.0
++ gtk_cell_view_get_draw_sensitive@Base 3.0.0
++ gtk_cell_view_get_fit_model@Base 3.0.0
++ gtk_cell_view_get_model@Base 3.0.0
++ gtk_cell_view_get_size_of_row@Base 3.0.0
++ gtk_cell_view_get_type@Base 3.0.0
++ gtk_cell_view_new@Base 3.0.0
++ gtk_cell_view_new_with_context@Base 3.0.0
++ gtk_cell_view_new_with_markup@Base 3.0.0
++ gtk_cell_view_new_with_pixbuf@Base 3.0.0
++ gtk_cell_view_new_with_text@Base 3.0.0
++ gtk_cell_view_set_background_color@Base 3.0.0
++ gtk_cell_view_set_background_rgba@Base 3.0.0
++ gtk_cell_view_set_displayed_row@Base 3.0.0
++ gtk_cell_view_set_draw_sensitive@Base 3.0.0
++ gtk_cell_view_set_fit_model@Base 3.0.0
++ gtk_cell_view_set_model@Base 3.0.0
++ gtk_check_button_get_type@Base 3.0.0
++ gtk_check_button_new@Base 3.0.0
++ gtk_check_button_new_with_label@Base 3.0.0
++ gtk_check_button_new_with_mnemonic@Base 3.0.0
++ gtk_check_menu_item_accessible_get_type@Base 3.7.10
++ gtk_check_menu_item_get_active@Base 3.0.0
++ gtk_check_menu_item_get_draw_as_radio@Base 3.0.0
++ gtk_check_menu_item_get_inconsistent@Base 3.0.0
++ gtk_check_menu_item_get_type@Base 3.0.0
++ gtk_check_menu_item_new@Base 3.0.0
++ gtk_check_menu_item_new_with_label@Base 3.0.0
++ gtk_check_menu_item_new_with_mnemonic@Base 3.0.0
++ gtk_check_menu_item_set_active@Base 3.0.0
++ gtk_check_menu_item_set_draw_as_radio@Base 3.0.0
++ gtk_check_menu_item_set_inconsistent@Base 3.0.0
++ gtk_check_menu_item_toggled@Base 3.0.0
++ gtk_check_version@Base 3.0.0
++ gtk_clipboard_clear@Base 3.0.0
++ gtk_clipboard_get@Base 3.0.0
++ gtk_clipboard_get_default@Base 3.16.2
++ gtk_clipboard_get_display@Base 3.0.0
++ gtk_clipboard_get_for_display@Base 3.0.0
++ gtk_clipboard_get_owner@Base 3.0.0
++ gtk_clipboard_get_selection@Base 3.21.4
++ gtk_clipboard_get_type@Base 3.0.0
++ gtk_clipboard_request_contents@Base 3.0.0
++ gtk_clipboard_request_image@Base 3.0.0
++ gtk_clipboard_request_rich_text@Base 3.0.0
++ gtk_clipboard_request_targets@Base 3.0.0
++ gtk_clipboard_request_text@Base 3.0.0
++ gtk_clipboard_request_uris@Base 3.0.0
++ gtk_clipboard_set_can_store@Base 3.0.0
++ gtk_clipboard_set_image@Base 3.0.0
++ gtk_clipboard_set_text@Base 3.0.0
++ gtk_clipboard_set_with_data@Base 3.0.0
++ gtk_clipboard_set_with_owner@Base 3.0.0
++ gtk_clipboard_store@Base 3.0.0
++ gtk_clipboard_wait_for_contents@Base 3.0.0
++ gtk_clipboard_wait_for_image@Base 3.0.0
++ gtk_clipboard_wait_for_rich_text@Base 3.0.0
++ gtk_clipboard_wait_for_targets@Base 3.0.0
++ gtk_clipboard_wait_for_text@Base 3.0.0
++ gtk_clipboard_wait_for_uris@Base 3.0.0
++ gtk_clipboard_wait_is_image_available@Base 3.0.0
++ gtk_clipboard_wait_is_rich_text_available@Base 3.0.0
++ gtk_clipboard_wait_is_target_available@Base 3.0.0
++ gtk_clipboard_wait_is_text_available@Base 3.0.0
++ gtk_clipboard_wait_is_uris_available@Base 3.0.0
++ gtk_color_button_get_alpha@Base 3.0.0
++ gtk_color_button_get_color@Base 3.0.0
++ gtk_color_button_get_rgba@Base 3.0.0
++ gtk_color_button_get_title@Base 3.0.0
++ gtk_color_button_get_type@Base 3.0.0
++ gtk_color_button_get_use_alpha@Base 3.0.0
++ gtk_color_button_new@Base 3.0.0
++ gtk_color_button_new_with_color@Base 3.0.0
++ gtk_color_button_new_with_rgba@Base 3.0.0
++ gtk_color_button_set_alpha@Base 3.0.0
++ gtk_color_button_set_color@Base 3.0.0
++ gtk_color_button_set_rgba@Base 3.0.0
++ gtk_color_button_set_title@Base 3.0.0
++ gtk_color_button_set_use_alpha@Base 3.0.0
++ gtk_color_chooser_add_palette@Base 3.3.16
++ gtk_color_chooser_dialog_get_type@Base 3.3.16
++ gtk_color_chooser_dialog_new@Base 3.3.16
++ gtk_color_chooser_get_rgba@Base 3.3.16
++ gtk_color_chooser_get_type@Base 3.3.16
++ gtk_color_chooser_get_use_alpha@Base 3.3.16
++ gtk_color_chooser_set_rgba@Base 3.3.16
++ gtk_color_chooser_set_use_alpha@Base 3.3.16
++ gtk_color_chooser_widget_get_type@Base 3.3.16
++ gtk_color_chooser_widget_new@Base 3.3.16
++ gtk_color_selection_dialog_get_color_selection@Base 3.0.0
++ gtk_color_selection_dialog_get_type@Base 3.0.0
++ gtk_color_selection_dialog_new@Base 3.0.0
++ gtk_color_selection_get_current_alpha@Base 3.0.0
++ gtk_color_selection_get_current_color@Base 3.0.0
++ gtk_color_selection_get_current_rgba@Base 3.0.0
++ gtk_color_selection_get_has_opacity_control@Base 3.0.0
++ gtk_color_selection_get_has_palette@Base 3.0.0
++ gtk_color_selection_get_previous_alpha@Base 3.0.0
++ gtk_color_selection_get_previous_color@Base 3.0.0
++ gtk_color_selection_get_previous_rgba@Base 3.0.0
++ gtk_color_selection_get_type@Base 3.0.0
++ gtk_color_selection_is_adjusting@Base 3.0.0
++ gtk_color_selection_new@Base 3.0.0
++ gtk_color_selection_palette_from_string@Base 3.0.0
++ gtk_color_selection_palette_to_string@Base 3.0.0
++ gtk_color_selection_set_change_palette_with_screen_hook@Base 3.0.0
++ gtk_color_selection_set_current_alpha@Base 3.0.0
++ gtk_color_selection_set_current_color@Base 3.0.0
++ gtk_color_selection_set_current_rgba@Base 3.0.0
++ gtk_color_selection_set_has_opacity_control@Base 3.0.0
++ gtk_color_selection_set_has_palette@Base 3.0.0
++ gtk_color_selection_set_previous_alpha@Base 3.0.0
++ gtk_color_selection_set_previous_color@Base 3.0.0
++ gtk_color_selection_set_previous_rgba@Base 3.0.0
++ gtk_combo_box_accessible_get_type@Base 3.7.10
++ gtk_combo_box_get_active@Base 3.0.0
++ gtk_combo_box_get_active_id@Base 3.0.0
++ gtk_combo_box_get_active_iter@Base 3.0.0
++ gtk_combo_box_get_add_tearoffs@Base 3.0.0
++ gtk_combo_box_get_button_sensitivity@Base 3.0.0
++ gtk_combo_box_get_column_span_column@Base 3.0.0
++ gtk_combo_box_get_entry_text_column@Base 3.0.0
++ gtk_combo_box_get_focus_on_click@Base 3.0.0
++ gtk_combo_box_get_has_entry@Base 3.0.0
++ gtk_combo_box_get_id_column@Base 3.0.0
++ gtk_combo_box_get_model@Base 3.0.0
++ gtk_combo_box_get_popup_accessible@Base 3.0.0
++ gtk_combo_box_get_popup_fixed_width@Base 3.0.0
++ gtk_combo_box_get_row_separator_func@Base 3.0.0
++ gtk_combo_box_get_row_span_column@Base 3.0.0
++ gtk_combo_box_get_title@Base 3.0.0
++ gtk_combo_box_get_type@Base 3.0.0
++ gtk_combo_box_get_wrap_width@Base 3.0.0
++ gtk_combo_box_new@Base 3.0.0
++ gtk_combo_box_new_with_area@Base 3.0.0
++ gtk_combo_box_new_with_area_and_entry@Base 3.0.0
++ gtk_combo_box_new_with_entry@Base 3.0.0
++ gtk_combo_box_new_with_model@Base 3.0.0
++ gtk_combo_box_new_with_model_and_entry@Base 3.0.0
++ gtk_combo_box_popdown@Base 3.0.0
++ gtk_combo_box_popup@Base 3.0.0
++ gtk_combo_box_popup_for_device@Base 3.0.0
++ gtk_combo_box_set_active@Base 3.0.0
++ gtk_combo_box_set_active_id@Base 3.0.0
++ gtk_combo_box_set_active_iter@Base 3.0.0
++ gtk_combo_box_set_add_tearoffs@Base 3.0.0
++ gtk_combo_box_set_button_sensitivity@Base 3.0.0
++ gtk_combo_box_set_column_span_column@Base 3.0.0
++ gtk_combo_box_set_entry_text_column@Base 3.0.0
++ gtk_combo_box_set_focus_on_click@Base 3.0.0
++ gtk_combo_box_set_id_column@Base 3.0.0
++ gtk_combo_box_set_model@Base 3.0.0
++ gtk_combo_box_set_popup_fixed_width@Base 3.0.0
++ gtk_combo_box_set_row_separator_func@Base 3.0.0
++ gtk_combo_box_set_row_span_column@Base 3.0.0
++ gtk_combo_box_set_title@Base 3.0.0
++ gtk_combo_box_set_wrap_width@Base 3.0.0
++ gtk_combo_box_text_append@Base 3.0.0
++ gtk_combo_box_text_append_text@Base 3.0.0
++ gtk_combo_box_text_get_active_text@Base 3.0.0
++ gtk_combo_box_text_get_type@Base 3.0.0
++ gtk_combo_box_text_insert@Base 3.0.0
++ gtk_combo_box_text_insert_text@Base 3.0.0
++ gtk_combo_box_text_new@Base 3.0.0
++ gtk_combo_box_text_new_with_entry@Base 3.0.0
++ gtk_combo_box_text_prepend@Base 3.0.0
++ gtk_combo_box_text_prepend_text@Base 3.0.0
++ gtk_combo_box_text_remove@Base 3.0.0
++ gtk_combo_box_text_remove_all@Base 3.0.0
++ gtk_container_accessible_get_type@Base 3.7.10
++ gtk_container_add@Base 3.0.0
++ gtk_container_add_with_properties@Base 3.0.0
++ gtk_container_cell_accessible_add_child@Base 3.7.10
++ gtk_container_cell_accessible_get_children@Base 3.7.10
++ gtk_container_cell_accessible_get_type@Base 3.7.10
++ gtk_container_cell_accessible_new@Base 3.7.10
++ gtk_container_cell_accessible_remove_child@Base 3.7.10
++ gtk_container_check_resize@Base 3.0.0
++ gtk_container_child_get@Base 3.0.0
++ gtk_container_child_get_property@Base 3.0.0
++ gtk_container_child_get_valist@Base 3.0.0
++ gtk_container_child_notify@Base 3.1.4
++ gtk_container_child_notify_by_pspec@Base 3.17.9
++ gtk_container_child_set@Base 3.0.0
++ gtk_container_child_set_property@Base 3.0.0
++ gtk_container_child_set_valist@Base 3.0.0
++ gtk_container_child_type@Base 3.0.0
++ gtk_container_class_find_child_property@Base 3.0.0
++ gtk_container_class_handle_border_width@Base 3.0.0
++ gtk_container_class_install_child_properties@Base 3.17.9
++ gtk_container_class_install_child_property@Base 3.0.0
++ gtk_container_class_list_child_properties@Base 3.0.0
++ gtk_container_forall@Base 3.0.0
++ gtk_container_foreach@Base 3.0.0
++ gtk_container_get_border_width@Base 3.0.0
++ gtk_container_get_children@Base 3.0.0
++ gtk_container_get_focus_chain@Base 3.0.0
++ gtk_container_get_focus_child@Base 3.0.0
++ gtk_container_get_focus_hadjustment@Base 3.0.0
++ gtk_container_get_focus_vadjustment@Base 3.0.0
++ gtk_container_get_path_for_child@Base 3.0.0
++ gtk_container_get_resize_mode@Base 3.0.0
++ gtk_container_get_type@Base 3.0.0
++ gtk_container_propagate_draw@Base 3.0.0
++ gtk_container_remove@Base 3.0.0
++ gtk_container_resize_children@Base 3.0.0
++ gtk_container_set_border_width@Base 3.0.0
++ gtk_container_set_focus_chain@Base 3.0.0
++ gtk_container_set_focus_child@Base 3.0.0
++ gtk_container_set_focus_hadjustment@Base 3.0.0
++ gtk_container_set_focus_vadjustment@Base 3.0.0
++ gtk_container_set_reallocate_redraws@Base 3.0.0
++ gtk_container_set_resize_mode@Base 3.0.0
++ gtk_container_unset_focus_chain@Base 3.0.0
++ gtk_corner_type_get_type@Base 3.0.0
++ gtk_css_provider_error_get_type@Base 3.0.0
++ gtk_css_provider_error_quark@Base 3.0.0
++ gtk_css_provider_get_default@Base 3.0.0
++ gtk_css_provider_get_named@Base 3.0.0
++ gtk_css_provider_get_type@Base 3.0.0
++ gtk_css_provider_load_from_data@Base 3.0.0
++ gtk_css_provider_load_from_file@Base 3.0.0
++ gtk_css_provider_load_from_path@Base 3.0.0
++ gtk_css_provider_load_from_resource@Base 3.16.2
++ gtk_css_provider_new@Base 3.0.0
++ gtk_css_provider_to_string@Base 3.1.6
++ gtk_css_section_get_end_line@Base 3.2.1
++ gtk_css_section_get_end_position@Base 3.2.1
++ gtk_css_section_get_file@Base 3.2.1
++ gtk_css_section_get_parent@Base 3.2.1
++ gtk_css_section_get_section_type@Base 3.2.1
++ gtk_css_section_get_start_line@Base 3.2.1
++ gtk_css_section_get_start_position@Base 3.2.1
++ gtk_css_section_get_type@Base 3.2.1
++ gtk_css_section_ref@Base 3.2.1
++ gtk_css_section_type_get_type@Base 3.2.1
++ gtk_css_section_unref@Base 3.2.1
++ gtk_custom_paper_unix_dialog_get_type@Base 3.0.0
++ gtk_debug_flag_get_type@Base 3.0.0
++ gtk_delete_type_get_type@Base 3.0.0
++ gtk_dest_defaults_get_type@Base 3.0.0
++ gtk_device_grab_add@Base 3.0.0
++ gtk_device_grab_remove@Base 3.0.0
++ gtk_dialog_add_action_widget@Base 3.0.0
++ gtk_dialog_add_button@Base 3.0.0
++ gtk_dialog_add_buttons@Base 3.0.0
++ gtk_dialog_flags_get_type@Base 3.0.0
++ gtk_dialog_get_action_area@Base 3.0.0
++ gtk_dialog_get_content_area@Base 3.0.0
++ gtk_dialog_get_header_bar@Base 3.11.5
++ gtk_dialog_get_response_for_widget@Base 3.0.0
++ gtk_dialog_get_type@Base 3.0.0
++ gtk_dialog_get_widget_for_response@Base 3.0.0
++ gtk_dialog_new@Base 3.0.0
++ gtk_dialog_new_with_buttons@Base 3.0.0
++ gtk_dialog_response@Base 3.0.0
++ gtk_dialog_run@Base 3.0.0
++ gtk_dialog_set_alternative_button_order@Base 3.0.0
++ gtk_dialog_set_alternative_button_order_from_array@Base 3.0.0
++ gtk_dialog_set_default_response@Base 3.0.0
++ gtk_dialog_set_response_sensitive@Base 3.0.0
++ gtk_direction_type_get_type@Base 3.0.0
++ gtk_disable_setlocale@Base 3.0.0
++ gtk_distribute_natural_allocation@Base 3.0.0
++ gtk_drag_begin@Base 3.0.0
++ gtk_drag_begin_with_coordinates@Base 3.9.12
++ gtk_drag_cancel@Base 3.16.2
++ gtk_drag_check_threshold@Base 3.0.0
++ gtk_drag_dest_add_image_targets@Base 3.0.0
++ gtk_drag_dest_add_text_targets@Base 3.0.0
++ gtk_drag_dest_add_uri_targets@Base 3.0.0
++ gtk_drag_dest_find_target@Base 3.0.0
++ gtk_drag_dest_get_target_list@Base 3.0.0
++ gtk_drag_dest_get_track_motion@Base 3.0.0
++ gtk_drag_dest_set@Base 3.0.0
++ gtk_drag_dest_set_proxy@Base 3.0.0
++ gtk_drag_dest_set_target_list@Base 3.0.0
++ gtk_drag_dest_set_track_motion@Base 3.0.0
++ gtk_drag_dest_unset@Base 3.0.0
++ gtk_drag_finish@Base 3.0.0
++ gtk_drag_get_data@Base 3.0.0
++ gtk_drag_get_source_widget@Base 3.0.0
++ gtk_drag_highlight@Base 3.0.0
++ gtk_drag_result_get_type@Base 3.0.0
++ gtk_drag_set_icon_default@Base 3.0.0
++ gtk_drag_set_icon_gicon@Base 3.1.4
++ gtk_drag_set_icon_name@Base 3.0.0
++ gtk_drag_set_icon_pixbuf@Base 3.0.0
++ gtk_drag_set_icon_stock@Base 3.0.0
++ gtk_drag_set_icon_surface@Base 3.0.0
++ gtk_drag_set_icon_widget@Base 3.0.0
++ gtk_drag_source_add_image_targets@Base 3.0.0
++ gtk_drag_source_add_text_targets@Base 3.0.0
++ gtk_drag_source_add_uri_targets@Base 3.0.0
++ gtk_drag_source_get_target_list@Base 3.0.0
++ gtk_drag_source_set@Base 3.0.0
++ gtk_drag_source_set_icon_gicon@Base 3.1.4
++ gtk_drag_source_set_icon_name@Base 3.0.0
++ gtk_drag_source_set_icon_pixbuf@Base 3.0.0
++ gtk_drag_source_set_icon_stock@Base 3.0.0
++ gtk_drag_source_set_target_list@Base 3.0.0
++ gtk_drag_source_unset@Base 3.0.0
++ gtk_drag_unhighlight@Base 3.0.0
++ gtk_draw_insertion_cursor@Base 3.0.0
++ gtk_drawing_area_get_type@Base 3.0.0
++ gtk_drawing_area_new@Base 3.0.0
++ gtk_editable_copy_clipboard@Base 3.0.0
++ gtk_editable_cut_clipboard@Base 3.0.0
++ gtk_editable_delete_selection@Base 3.0.0
++ gtk_editable_delete_text@Base 3.0.0
++ gtk_editable_get_chars@Base 3.0.0
++ gtk_editable_get_editable@Base 3.0.0
++ gtk_editable_get_position@Base 3.0.0
++ gtk_editable_get_selection_bounds@Base 3.0.0
++ gtk_editable_get_type@Base 3.0.0
++ gtk_editable_insert_text@Base 3.0.0
++ gtk_editable_paste_clipboard@Base 3.0.0
++ gtk_editable_select_region@Base 3.0.0
++ gtk_editable_set_editable@Base 3.0.0
++ gtk_editable_set_position@Base 3.0.0
++ gtk_entry_accessible_get_type@Base 3.7.10
++ gtk_entry_buffer_delete_text@Base 3.0.0
++ gtk_entry_buffer_emit_deleted_text@Base 3.0.0
++ gtk_entry_buffer_emit_inserted_text@Base 3.0.0
++ gtk_entry_buffer_get_bytes@Base 3.0.0
++ gtk_entry_buffer_get_length@Base 3.0.0
++ gtk_entry_buffer_get_max_length@Base 3.0.0
++ gtk_entry_buffer_get_text@Base 3.0.0
++ gtk_entry_buffer_get_type@Base 3.0.0
++ gtk_entry_buffer_insert_text@Base 3.0.0
++ gtk_entry_buffer_new@Base 3.0.0
++ gtk_entry_buffer_set_max_length@Base 3.0.0
++ gtk_entry_buffer_set_text@Base 3.0.0
++ gtk_entry_completion_complete@Base 3.0.0
++ gtk_entry_completion_compute_prefix@Base 3.3.16
++ gtk_entry_completion_delete_action@Base 3.0.0
++ gtk_entry_completion_get_completion_prefix@Base 3.0.0
++ gtk_entry_completion_get_entry@Base 3.0.0
++ gtk_entry_completion_get_inline_completion@Base 3.0.0
++ gtk_entry_completion_get_inline_selection@Base 3.0.0
++ gtk_entry_completion_get_minimum_key_length@Base 3.0.0
++ gtk_entry_completion_get_model@Base 3.0.0
++ gtk_entry_completion_get_popup_completion@Base 3.0.0
++ gtk_entry_completion_get_popup_set_width@Base 3.0.0
++ gtk_entry_completion_get_popup_single_match@Base 3.0.0
++ gtk_entry_completion_get_text_column@Base 3.0.0
++ gtk_entry_completion_get_type@Base 3.0.0
++ gtk_entry_completion_insert_action_markup@Base 3.0.0
++ gtk_entry_completion_insert_action_text@Base 3.0.0
++ gtk_entry_completion_insert_prefix@Base 3.0.0
++ gtk_entry_completion_new@Base 3.0.0
++ gtk_entry_completion_new_with_area@Base 3.0.0
++ gtk_entry_completion_set_inline_completion@Base 3.0.0
++ gtk_entry_completion_set_inline_selection@Base 3.0.0
++ gtk_entry_completion_set_match_func@Base 3.0.0
++ gtk_entry_completion_set_minimum_key_length@Base 3.0.0
++ gtk_entry_completion_set_model@Base 3.0.0
++ gtk_entry_completion_set_popup_completion@Base 3.0.0
++ gtk_entry_completion_set_popup_set_width@Base 3.0.0
++ gtk_entry_completion_set_popup_single_match@Base 3.0.0
++ gtk_entry_completion_set_text_column@Base 3.0.0
++ gtk_entry_get_activates_default@Base 3.0.0
++ gtk_entry_get_alignment@Base 3.0.0
++ gtk_entry_get_attributes@Base 3.5.14
++ gtk_entry_get_buffer@Base 3.0.0
++ gtk_entry_get_completion@Base 3.0.0
++ gtk_entry_get_current_icon_drag_source@Base 3.0.0
++ gtk_entry_get_cursor_hadjustment@Base 3.0.0
++ gtk_entry_get_has_frame@Base 3.0.0
++ gtk_entry_get_icon_activatable@Base 3.0.0
++ gtk_entry_get_icon_area@Base 3.0.0
++ gtk_entry_get_icon_at_pos@Base 3.0.0
++ gtk_entry_get_icon_gicon@Base 3.0.0
++ gtk_entry_get_icon_name@Base 3.0.0
++ gtk_entry_get_icon_pixbuf@Base 3.0.0
++ gtk_entry_get_icon_sensitive@Base 3.0.0
++ gtk_entry_get_icon_stock@Base 3.0.0
++ gtk_entry_get_icon_storage_type@Base 3.0.0
++ gtk_entry_get_icon_tooltip_markup@Base 3.0.0
++ gtk_entry_get_icon_tooltip_text@Base 3.0.0
++ gtk_entry_get_inner_border@Base 3.0.0
++ gtk_entry_get_input_hints@Base 3.5.12
++ gtk_entry_get_input_purpose@Base 3.5.12
++ gtk_entry_get_invisible_char@Base 3.0.0
++ gtk_entry_get_layout@Base 3.0.0
++ gtk_entry_get_layout_offsets@Base 3.0.0
++ gtk_entry_get_max_length@Base 3.0.0
++ gtk_entry_get_max_width_chars@Base 3.11.7
++ gtk_entry_get_overwrite_mode@Base 3.0.0
++ gtk_entry_get_placeholder_text@Base 3.1.4
++ gtk_entry_get_progress_fraction@Base 3.0.0
++ gtk_entry_get_progress_pulse_step@Base 3.0.0
++ gtk_entry_get_tabs@Base 3.9.12
++ gtk_entry_get_text@Base 3.0.0
++ gtk_entry_get_text_area@Base 3.0.0
++ gtk_entry_get_text_length@Base 3.0.0
++ gtk_entry_get_type@Base 3.0.0
++ gtk_entry_get_visibility@Base 3.0.0
++ gtk_entry_get_width_chars@Base 3.0.0
++ gtk_entry_grab_focus_without_selecting@Base 3.16.2
++ gtk_entry_icon_accessible_get_type@Base 3.7.10
++ gtk_entry_icon_position_get_type@Base 3.0.0
++ gtk_entry_im_context_filter_keypress@Base 3.0.0
++ gtk_entry_layout_index_to_text_index@Base 3.0.0
++ gtk_entry_new@Base 3.0.0
++ gtk_entry_new_with_buffer@Base 3.0.0
++ gtk_entry_progress_pulse@Base 3.0.0
++ gtk_entry_reset_im_context@Base 3.0.0
++ gtk_entry_set_activates_default@Base 3.0.0
++ gtk_entry_set_alignment@Base 3.0.0
++ gtk_entry_set_attributes@Base 3.5.14
++ gtk_entry_set_buffer@Base 3.0.0
++ gtk_entry_set_completion@Base 3.0.0
++ gtk_entry_set_cursor_hadjustment@Base 3.0.0
++ gtk_entry_set_has_frame@Base 3.0.0
++ gtk_entry_set_icon_activatable@Base 3.0.0
++ gtk_entry_set_icon_drag_source@Base 3.0.0
++ gtk_entry_set_icon_from_gicon@Base 3.0.0
++ gtk_entry_set_icon_from_icon_name@Base 3.0.0
++ gtk_entry_set_icon_from_pixbuf@Base 3.0.0
++ gtk_entry_set_icon_from_stock@Base 3.0.0
++ gtk_entry_set_icon_sensitive@Base 3.0.0
++ gtk_entry_set_icon_tooltip_markup@Base 3.0.0
++ gtk_entry_set_icon_tooltip_text@Base 3.0.0
++ gtk_entry_set_inner_border@Base 3.0.0
++ gtk_entry_set_input_hints@Base 3.5.12
++ gtk_entry_set_input_purpose@Base 3.5.12
++ gtk_entry_set_invisible_char@Base 3.0.0
++ gtk_entry_set_max_length@Base 3.0.0
++ gtk_entry_set_max_width_chars@Base 3.11.7
++ gtk_entry_set_overwrite_mode@Base 3.0.0
++ gtk_entry_set_placeholder_text@Base 3.1.4
++ gtk_entry_set_progress_fraction@Base 3.0.0
++ gtk_entry_set_progress_pulse_step@Base 3.0.0
++ gtk_entry_set_tabs@Base 3.9.12
++ gtk_entry_set_text@Base 3.0.0
++ gtk_entry_set_visibility@Base 3.0.0
++ gtk_entry_set_width_chars@Base 3.0.0
++ gtk_entry_text_index_to_layout_index@Base 3.0.0
++ gtk_entry_unset_invisible_char@Base 3.0.0
++ gtk_enumerate_printers@Base 3.0.0
++ gtk_event_box_get_above_child@Base 3.0.0
++ gtk_event_box_get_type@Base 3.0.0
++ gtk_event_box_get_visible_window@Base 3.0.0
++ gtk_event_box_new@Base 3.0.0
++ gtk_event_box_set_above_child@Base 3.0.0
++ gtk_event_box_set_visible_window@Base 3.0.0
++ gtk_event_controller_get_propagation_phase@Base 3.13.7
++ gtk_event_controller_get_type@Base 3.13.7
++ gtk_event_controller_get_widget@Base 3.13.7
++ gtk_event_controller_handle_event@Base 3.13.7
++ gtk_event_controller_reset@Base 3.13.7
++ gtk_event_controller_set_propagation_phase@Base 3.13.7
++ gtk_event_sequence_state_get_type@Base 3.13.7
++ gtk_events_pending@Base 3.0.0
++ gtk_expander_accessible_get_type@Base 3.7.10
++ gtk_expander_get_expanded@Base 3.0.0
++ gtk_expander_get_label@Base 3.0.0
++ gtk_expander_get_label_fill@Base 3.0.0
++ gtk_expander_get_label_widget@Base 3.0.0
++ gtk_expander_get_resize_toplevel@Base 3.1.4
++ gtk_expander_get_spacing@Base 3.0.0
++ gtk_expander_get_type@Base 3.0.0
++ gtk_expander_get_use_markup@Base 3.0.0
++ gtk_expander_get_use_underline@Base 3.0.0
++ gtk_expander_new@Base 3.0.0
++ gtk_expander_new_with_mnemonic@Base 3.0.0
++ gtk_expander_set_expanded@Base 3.0.0
++ gtk_expander_set_label@Base 3.0.0
++ gtk_expander_set_label_fill@Base 3.0.0
++ gtk_expander_set_label_widget@Base 3.0.0
++ gtk_expander_set_resize_toplevel@Base 3.1.4
++ gtk_expander_set_spacing@Base 3.0.0
++ gtk_expander_set_use_markup@Base 3.0.0
++ gtk_expander_set_use_underline@Base 3.0.0
++ gtk_expander_style_get_type@Base 3.0.0
++ gtk_false@Base 3.0.0
++ gtk_file_chooser_action_get_type@Base 3.0.0
++ gtk_file_chooser_add_choice@Base 3.21.4
++ gtk_file_chooser_add_filter@Base 3.0.0
++ gtk_file_chooser_add_shortcut_folder@Base 3.0.0
++ gtk_file_chooser_add_shortcut_folder_uri@Base 3.0.0
++ gtk_file_chooser_button_get_focus_on_click@Base 3.0.0
++ gtk_file_chooser_button_get_title@Base 3.0.0
++ gtk_file_chooser_button_get_type@Base 3.0.0
++ gtk_file_chooser_button_get_width_chars@Base 3.0.0
++ gtk_file_chooser_button_new@Base 3.0.0
++ gtk_file_chooser_button_new_with_dialog@Base 3.0.0
++ gtk_file_chooser_button_set_focus_on_click@Base 3.0.0
++ gtk_file_chooser_button_set_title@Base 3.0.0
++ gtk_file_chooser_button_set_width_chars@Base 3.0.0
++ gtk_file_chooser_confirmation_get_type@Base 3.0.0
++ gtk_file_chooser_dialog_get_type@Base 3.0.0
++ gtk_file_chooser_dialog_new@Base 3.0.0
++ gtk_file_chooser_error_get_type@Base 3.0.0
++ gtk_file_chooser_error_quark@Base 3.0.0
++ gtk_file_chooser_get_action@Base 3.0.0
++ gtk_file_chooser_get_choice@Base 3.21.4
++ gtk_file_chooser_get_create_folders@Base 3.0.0
++ gtk_file_chooser_get_current_folder@Base 3.0.0
++ gtk_file_chooser_get_current_folder_file@Base 3.0.0
++ gtk_file_chooser_get_current_folder_uri@Base 3.0.0
++ gtk_file_chooser_get_current_name@Base 3.9.10
++ gtk_file_chooser_get_do_overwrite_confirmation@Base 3.0.0
++ gtk_file_chooser_get_extra_widget@Base 3.0.0
++ gtk_file_chooser_get_file@Base 3.0.0
++ gtk_file_chooser_get_filename@Base 3.0.0
++ gtk_file_chooser_get_filenames@Base 3.0.0
++ gtk_file_chooser_get_files@Base 3.0.0
++ gtk_file_chooser_get_filter@Base 3.0.0
++ gtk_file_chooser_get_local_only@Base 3.0.0
++ gtk_file_chooser_get_preview_file@Base 3.0.0
++ gtk_file_chooser_get_preview_filename@Base 3.0.0
++ gtk_file_chooser_get_preview_uri@Base 3.0.0
++ gtk_file_chooser_get_preview_widget@Base 3.0.0
++ gtk_file_chooser_get_preview_widget_active@Base 3.0.0
++ gtk_file_chooser_get_select_multiple@Base 3.0.0
++ gtk_file_chooser_get_show_hidden@Base 3.0.0
++ gtk_file_chooser_get_type@Base 3.0.0
++ gtk_file_chooser_get_uri@Base 3.0.0
++ gtk_file_chooser_get_uris@Base 3.0.0
++ gtk_file_chooser_get_use_preview_label@Base 3.0.0
++ gtk_file_chooser_list_filters@Base 3.0.0
++ gtk_file_chooser_list_shortcut_folder_uris@Base 3.0.0
++ gtk_file_chooser_list_shortcut_folders@Base 3.0.0
++ gtk_file_chooser_native_get_accept_label@Base 3.19.12
++ gtk_file_chooser_native_get_cancel_label@Base 3.19.12
++ gtk_file_chooser_native_get_type@Base 3.19.12
++ gtk_file_chooser_native_new@Base 3.19.12
++ gtk_file_chooser_native_set_accept_label@Base 3.19.12
++ gtk_file_chooser_native_set_cancel_label@Base 3.19.12
++ gtk_file_chooser_remove_choice@Base 3.21.4
++ gtk_file_chooser_remove_filter@Base 3.0.0
++ gtk_file_chooser_remove_shortcut_folder@Base 3.0.0
++ gtk_file_chooser_remove_shortcut_folder_uri@Base 3.0.0
++ gtk_file_chooser_select_all@Base 3.0.0
++ gtk_file_chooser_select_file@Base 3.0.0
++ gtk_file_chooser_select_filename@Base 3.0.0
++ gtk_file_chooser_select_uri@Base 3.0.0
++ gtk_file_chooser_set_action@Base 3.0.0
++ gtk_file_chooser_set_choice@Base 3.21.4
++ gtk_file_chooser_set_create_folders@Base 3.0.0
++ gtk_file_chooser_set_current_folder@Base 3.0.0
++ gtk_file_chooser_set_current_folder_file@Base 3.0.0
++ gtk_file_chooser_set_current_folder_uri@Base 3.0.0
++ gtk_file_chooser_set_current_name@Base 3.0.0
++ gtk_file_chooser_set_do_overwrite_confirmation@Base 3.0.0
++ gtk_file_chooser_set_extra_widget@Base 3.0.0
++ gtk_file_chooser_set_file@Base 3.0.0
++ gtk_file_chooser_set_filename@Base 3.0.0
++ gtk_file_chooser_set_filter@Base 3.0.0
++ gtk_file_chooser_set_local_only@Base 3.0.0
++ gtk_file_chooser_set_preview_widget@Base 3.0.0
++ gtk_file_chooser_set_preview_widget_active@Base 3.0.0
++ gtk_file_chooser_set_select_multiple@Base 3.0.0
++ gtk_file_chooser_set_show_hidden@Base 3.0.0
++ gtk_file_chooser_set_uri@Base 3.0.0
++ gtk_file_chooser_set_use_preview_label@Base 3.0.0
++ gtk_file_chooser_unselect_all@Base 3.0.0
++ gtk_file_chooser_unselect_file@Base 3.0.0
++ gtk_file_chooser_unselect_filename@Base 3.0.0
++ gtk_file_chooser_unselect_uri@Base 3.0.0
++ gtk_file_chooser_widget_get_type@Base 3.0.0
++ gtk_file_chooser_widget_new@Base 3.0.0
++ gtk_file_filter_add_custom@Base 3.0.0
++ gtk_file_filter_add_mime_type@Base 3.0.0
++ gtk_file_filter_add_pattern@Base 3.0.0
++ gtk_file_filter_add_pixbuf_formats@Base 3.0.0
++ gtk_file_filter_filter@Base 3.0.0
++ gtk_file_filter_flags_get_type@Base 3.0.0
++ gtk_file_filter_get_name@Base 3.0.0
++ gtk_file_filter_get_needed@Base 3.0.0
++ gtk_file_filter_get_type@Base 3.0.0
++ gtk_file_filter_new@Base 3.0.0
++ gtk_file_filter_new_from_gvariant@Base 3.21.4
++ gtk_file_filter_set_name@Base 3.0.0
++ gtk_file_filter_to_gvariant@Base 3.21.4
++ gtk_fixed_get_type@Base 3.0.0
++ gtk_fixed_move@Base 3.0.0
++ gtk_fixed_new@Base 3.0.0
++ gtk_fixed_put@Base 3.0.0
++ gtk_flow_box_accessible_get_type@Base 3.11.5
++ gtk_flow_box_bind_model@Base 3.17.9
++ gtk_flow_box_child_accessible_get_type@Base 3.11.5
++ gtk_flow_box_child_changed@Base 3.11.5
++ gtk_flow_box_child_get_index@Base 3.11.5
++ gtk_flow_box_child_get_type@Base 3.11.5
++ gtk_flow_box_child_is_selected@Base 3.11.5
++ gtk_flow_box_child_new@Base 3.11.5
++ gtk_flow_box_get_activate_on_single_click@Base 3.11.5
++ gtk_flow_box_get_child_at_index@Base 3.11.5
++ gtk_flow_box_get_child_at_pos@Base 3.22.6
++ gtk_flow_box_get_column_spacing@Base 3.11.5
++ gtk_flow_box_get_homogeneous@Base 3.11.5
++ gtk_flow_box_get_max_children_per_line@Base 3.11.5
++ gtk_flow_box_get_min_children_per_line@Base 3.11.5
++ gtk_flow_box_get_row_spacing@Base 3.11.5
++ gtk_flow_box_get_selected_children@Base 3.11.5
++ gtk_flow_box_get_selection_mode@Base 3.11.5
++ gtk_flow_box_get_type@Base 3.11.5
++ gtk_flow_box_insert@Base 3.11.5
++ gtk_flow_box_invalidate_filter@Base 3.11.5
++ gtk_flow_box_invalidate_sort@Base 3.11.5
++ gtk_flow_box_new@Base 3.11.5
++ gtk_flow_box_select_all@Base 3.11.5
++ gtk_flow_box_select_child@Base 3.11.5
++ gtk_flow_box_selected_foreach@Base 3.11.5
++ gtk_flow_box_set_activate_on_single_click@Base 3.11.5
++ gtk_flow_box_set_column_spacing@Base 3.11.5
++ gtk_flow_box_set_filter_func@Base 3.11.5
++ gtk_flow_box_set_hadjustment@Base 3.11.5
++ gtk_flow_box_set_homogeneous@Base 3.11.5
++ gtk_flow_box_set_max_children_per_line@Base 3.11.5
++ gtk_flow_box_set_min_children_per_line@Base 3.11.5
++ gtk_flow_box_set_row_spacing@Base 3.11.5
++ gtk_flow_box_set_selection_mode@Base 3.11.5
++ gtk_flow_box_set_sort_func@Base 3.11.5
++ gtk_flow_box_set_vadjustment@Base 3.11.5
++ gtk_flow_box_unselect_all@Base 3.11.5
++ gtk_flow_box_unselect_child@Base 3.11.5
++ gtk_font_button_get_font_name@Base 3.0.0
++ gtk_font_button_get_show_size@Base 3.0.0
++ gtk_font_button_get_show_style@Base 3.0.0
++ gtk_font_button_get_title@Base 3.0.0
++ gtk_font_button_get_type@Base 3.0.0
++ gtk_font_button_get_use_font@Base 3.0.0
++ gtk_font_button_get_use_size@Base 3.0.0
++ gtk_font_button_new@Base 3.0.0
++ gtk_font_button_new_with_font@Base 3.0.0
++ gtk_font_button_set_font_name@Base 3.0.0
++ gtk_font_button_set_show_size@Base 3.0.0
++ gtk_font_button_set_show_style@Base 3.0.0
++ gtk_font_button_set_title@Base 3.0.0
++ gtk_font_button_set_use_font@Base 3.0.0
++ gtk_font_button_set_use_size@Base 3.0.0
++ gtk_font_chooser_dialog_get_type@Base 3.2.1
++ gtk_font_chooser_dialog_new@Base 3.2.1
++ gtk_font_chooser_get_font@Base 3.2.1
++ gtk_font_chooser_get_font_desc@Base 3.2.1
++ gtk_font_chooser_get_font_face@Base 3.2.1
++ gtk_font_chooser_get_font_family@Base 3.2.1
++ gtk_font_chooser_get_font_map@Base 3.17.9
++ gtk_font_chooser_get_font_size@Base 3.2.1
++ gtk_font_chooser_get_preview_text@Base 3.2.1
++ gtk_font_chooser_get_show_preview_entry@Base 3.2.1
++ gtk_font_chooser_get_type@Base 3.2.1
++ gtk_font_chooser_set_filter_func@Base 3.2.1
++ gtk_font_chooser_set_font@Base 3.2.1
++ gtk_font_chooser_set_font_desc@Base 3.2.1
++ gtk_font_chooser_set_font_map@Base 3.17.9
++ gtk_font_chooser_set_preview_text@Base 3.2.1
++ gtk_font_chooser_set_show_preview_entry@Base 3.2.1
++ gtk_font_chooser_widget_get_type@Base 3.2.1
++ gtk_font_chooser_widget_new@Base 3.2.1
++ gtk_font_selection_dialog_get_cancel_button@Base 3.0.0
++ gtk_font_selection_dialog_get_font_name@Base 3.0.0
++ gtk_font_selection_dialog_get_font_selection@Base 3.0.0
++ gtk_font_selection_dialog_get_ok_button@Base 3.0.0
++ gtk_font_selection_dialog_get_preview_text@Base 3.0.0
++ gtk_font_selection_dialog_get_type@Base 3.0.0
++ gtk_font_selection_dialog_new@Base 3.0.0
++ gtk_font_selection_dialog_set_font_name@Base 3.0.0
++ gtk_font_selection_dialog_set_preview_text@Base 3.0.0
++ gtk_font_selection_get_face@Base 3.0.0
++ gtk_font_selection_get_face_list@Base 3.0.0
++ gtk_font_selection_get_family@Base 3.0.0
++ gtk_font_selection_get_family_list@Base 3.0.0
++ gtk_font_selection_get_font_name@Base 3.0.0
++ gtk_font_selection_get_preview_entry@Base 3.0.0
++ gtk_font_selection_get_preview_text@Base 3.0.0
++ gtk_font_selection_get_size@Base 3.0.0
++ gtk_font_selection_get_size_entry@Base 3.0.0
++ gtk_font_selection_get_size_list@Base 3.0.0
++ gtk_font_selection_get_type@Base 3.0.0
++ gtk_font_selection_new@Base 3.0.0
++ gtk_font_selection_set_font_name@Base 3.0.0
++ gtk_font_selection_set_preview_text@Base 3.0.0
++ gtk_frame_accessible_get_type@Base 3.7.10
++ gtk_frame_get_label@Base 3.0.0
++ gtk_frame_get_label_align@Base 3.0.0
++ gtk_frame_get_label_widget@Base 3.0.0
++ gtk_frame_get_shadow_type@Base 3.0.0
++ gtk_frame_get_type@Base 3.0.0
++ gtk_frame_new@Base 3.0.0
++ gtk_frame_set_label@Base 3.0.0
++ gtk_frame_set_label_align@Base 3.0.0
++ gtk_frame_set_label_widget@Base 3.0.0
++ gtk_frame_set_shadow_type@Base 3.0.0
++ gtk_gesture_drag_get_offset@Base 3.13.7
++ gtk_gesture_drag_get_start_point@Base 3.13.7
++ gtk_gesture_drag_get_type@Base 3.13.7
++ gtk_gesture_drag_new@Base 3.13.7
++ gtk_gesture_get_bounding_box@Base 3.13.7
++ gtk_gesture_get_bounding_box_center@Base 3.13.7
++ gtk_gesture_get_device@Base 3.13.7
++ gtk_gesture_get_group@Base 3.13.7
++ gtk_gesture_get_last_event@Base 3.13.7
++ gtk_gesture_get_last_updated_sequence@Base 3.13.7
++ gtk_gesture_get_point@Base 3.13.7
++ gtk_gesture_get_sequence_state@Base 3.13.7
++ gtk_gesture_get_sequences@Base 3.13.7
++ gtk_gesture_get_type@Base 3.13.7
++ gtk_gesture_get_window@Base 3.13.7
++ gtk_gesture_group@Base 3.13.7
++ gtk_gesture_handles_sequence@Base 3.13.7
++ gtk_gesture_is_active@Base 3.13.7
++ gtk_gesture_is_grouped_with@Base 3.13.7
++ gtk_gesture_is_recognized@Base 3.13.7
++ gtk_gesture_long_press_get_type@Base 3.13.7
++ gtk_gesture_long_press_new@Base 3.13.7
++ gtk_gesture_multi_press_get_area@Base 3.13.7
++ gtk_gesture_multi_press_get_type@Base 3.13.7
++ gtk_gesture_multi_press_new@Base 3.13.7
++ gtk_gesture_multi_press_set_area@Base 3.13.7
++ gtk_gesture_pan_get_orientation@Base 3.13.7
++ gtk_gesture_pan_get_type@Base 3.13.7
++ gtk_gesture_pan_new@Base 3.13.7
++ gtk_gesture_pan_set_orientation@Base 3.13.7
++ gtk_gesture_rotate_get_angle_delta@Base 3.13.7
++ gtk_gesture_rotate_get_type@Base 3.13.7
++ gtk_gesture_rotate_new@Base 3.13.7
++ gtk_gesture_set_sequence_state@Base 3.13.7
++ gtk_gesture_set_state@Base 3.13.7
++ gtk_gesture_set_window@Base 3.13.7
++ gtk_gesture_single_get_button@Base 3.13.7
++ gtk_gesture_single_get_current_button@Base 3.13.7
++ gtk_gesture_single_get_current_sequence@Base 3.13.7
++ gtk_gesture_single_get_exclusive@Base 3.13.7
++ gtk_gesture_single_get_touch_only@Base 3.13.7
++ gtk_gesture_single_get_type@Base 3.13.7
++ gtk_gesture_single_set_button@Base 3.13.7
++ gtk_gesture_single_set_exclusive@Base 3.13.7
++ gtk_gesture_single_set_touch_only@Base 3.13.7
++ gtk_gesture_swipe_get_type@Base 3.13.7
++ gtk_gesture_swipe_get_velocity@Base 3.13.7
++ gtk_gesture_swipe_new@Base 3.13.7
++ gtk_gesture_ungroup@Base 3.13.7
++ gtk_gesture_zoom_get_scale_delta@Base 3.13.7
++ gtk_gesture_zoom_get_type@Base 3.13.7
++ gtk_gesture_zoom_new@Base 3.13.7
++ gtk_get_binary_age@Base 3.0.0
++ gtk_get_current_event@Base 3.0.0
++ gtk_get_current_event_device@Base 3.0.0
++ gtk_get_current_event_state@Base 3.0.0
++ gtk_get_current_event_time@Base 3.0.0
++ gtk_get_debug_flags@Base 3.0.0
++ gtk_get_default_language@Base 3.0.0
++ gtk_get_event_widget@Base 3.0.0
++ gtk_get_interface_age@Base 3.0.0
++ gtk_get_locale_direction@Base 3.11.5
++ gtk_get_major_version@Base 3.0.0
++ gtk_get_micro_version@Base 3.0.0
++ gtk_get_minor_version@Base 3.0.0
++ gtk_get_option_group@Base 3.0.0
++ gtk_gl_area_attach_buffers@Base 3.16.2
++ gtk_gl_area_get_auto_render@Base 3.16.2
++ gtk_gl_area_get_context@Base 3.16.2
++ gtk_gl_area_get_error@Base 3.16.2
++ gtk_gl_area_get_has_alpha@Base 3.16.2
++ gtk_gl_area_get_has_depth_buffer@Base 3.16.2
++ gtk_gl_area_get_has_stencil_buffer@Base 3.16.2
++ gtk_gl_area_get_required_version@Base 3.16.2
++ gtk_gl_area_get_type@Base 3.16.2
++ gtk_gl_area_get_use_es@Base 3.21.4
++ gtk_gl_area_make_current@Base 3.16.2
++ gtk_gl_area_new@Base 3.16.2
++ gtk_gl_area_queue_render@Base 3.16.2
++ gtk_gl_area_set_auto_render@Base 3.16.2
++ gtk_gl_area_set_error@Base 3.16.2
++ gtk_gl_area_set_has_alpha@Base 3.16.2
++ gtk_gl_area_set_has_depth_buffer@Base 3.16.2
++ gtk_gl_area_set_has_stencil_buffer@Base 3.16.2
++ gtk_gl_area_set_required_version@Base 3.16.2
++ gtk_gl_area_set_use_es@Base 3.21.4
++ gtk_glade_catalog_init@Base 3.9.10
++ gtk_grab_add@Base 3.0.0
++ gtk_grab_get_current@Base 3.0.0
++ gtk_grab_remove@Base 3.0.0
++ gtk_gradient_add_color_stop@Base 3.0.0
++ gtk_gradient_get_type@Base 3.0.0
++ gtk_gradient_new_linear@Base 3.0.0
++ gtk_gradient_new_radial@Base 3.0.0
++ gtk_gradient_ref@Base 3.0.0
++ gtk_gradient_resolve@Base 3.0.0
++ gtk_gradient_resolve_for_context@Base 3.3.16
++ gtk_gradient_to_string@Base 3.1.6
++ gtk_gradient_unref@Base 3.0.0
++ gtk_grid_attach@Base 3.0.0
++ gtk_grid_attach_next_to@Base 3.0.0
++ gtk_grid_get_baseline_row@Base 3.9.10
++ gtk_grid_get_child_at@Base 3.2.1
++ gtk_grid_get_column_homogeneous@Base 3.0.0
++ gtk_grid_get_column_spacing@Base 3.0.0
++ gtk_grid_get_row_baseline_position@Base 3.9.10
++ gtk_grid_get_row_homogeneous@Base 3.0.0
++ gtk_grid_get_row_spacing@Base 3.0.0
++ gtk_grid_get_type@Base 3.0.0
++ gtk_grid_insert_column@Base 3.2.1
++ gtk_grid_insert_next_to@Base 3.2.1
++ gtk_grid_insert_row@Base 3.2.1
++ gtk_grid_new@Base 3.0.0
++ gtk_grid_remove_column@Base 3.9.10
++ gtk_grid_remove_row@Base 3.9.10
++ gtk_grid_set_baseline_row@Base 3.9.10
++ gtk_grid_set_column_homogeneous@Base 3.0.0
++ gtk_grid_set_column_spacing@Base 3.0.0
++ gtk_grid_set_row_baseline_position@Base 3.9.10
++ gtk_grid_set_row_homogeneous@Base 3.0.0
++ gtk_grid_set_row_spacing@Base 3.0.0
++ gtk_handle_box_get_child_detached@Base 3.0.0
++ gtk_handle_box_get_handle_position@Base 3.0.0
++ gtk_handle_box_get_shadow_type@Base 3.0.0
++ gtk_handle_box_get_snap_edge@Base 3.0.0
++ gtk_handle_box_get_type@Base 3.0.0
++ gtk_handle_box_new@Base 3.0.0
++ gtk_handle_box_set_handle_position@Base 3.0.0
++ gtk_handle_box_set_shadow_type@Base 3.0.0
++ gtk_handle_box_set_snap_edge@Base 3.0.0
++ gtk_hbox_get_type@Base 3.0.0
++ gtk_hbox_new@Base 3.0.0
++ gtk_hbutton_box_get_type@Base 3.0.0
++ gtk_hbutton_box_new@Base 3.0.0
++ gtk_header_bar_get_custom_title@Base 3.9.10
++ gtk_header_bar_get_decoration_layout@Base 3.11.5
++ gtk_header_bar_get_has_subtitle@Base 3.11.5
++ gtk_header_bar_get_show_close_button@Base 3.9.12
++ gtk_header_bar_get_subtitle@Base 3.9.10
++ gtk_header_bar_get_title@Base 3.9.10
++ gtk_header_bar_get_type@Base 3.9.10
++ gtk_header_bar_new@Base 3.9.10
++ gtk_header_bar_pack_end@Base 3.9.10
++ gtk_header_bar_pack_start@Base 3.9.10
++ gtk_header_bar_set_custom_title@Base 3.9.10
++ gtk_header_bar_set_decoration_layout@Base 3.11.5
++ gtk_header_bar_set_has_subtitle@Base 3.11.5
++ gtk_header_bar_set_show_close_button@Base 3.9.12
++ gtk_header_bar_set_subtitle@Base 3.9.10
++ gtk_header_bar_set_title@Base 3.9.10
++ gtk_hpaned_get_type@Base 3.0.0
++ gtk_hpaned_new@Base 3.0.0
++ gtk_hscale_get_type@Base 3.0.0
++ gtk_hscale_new@Base 3.0.0
++ gtk_hscale_new_with_range@Base 3.0.0
++ gtk_hscrollbar_get_type@Base 3.0.0
++ gtk_hscrollbar_new@Base 3.0.0
++ gtk_hseparator_get_type@Base 3.0.0
++ gtk_hseparator_new@Base 3.0.0
++ gtk_hsv_get_color@Base 3.0.0
++ gtk_hsv_get_metrics@Base 3.0.0
++ gtk_hsv_get_type@Base 3.0.0
++ gtk_hsv_is_adjusting@Base 3.0.0
++ gtk_hsv_new@Base 3.0.0
++ gtk_hsv_set_color@Base 3.0.0
++ gtk_hsv_set_metrics@Base 3.0.0
++ gtk_hsv_to_rgb@Base 3.0.0
++ gtk_icon_factory_add@Base 3.0.0
++ gtk_icon_factory_add_default@Base 3.0.0
++ gtk_icon_factory_get_type@Base 3.0.0
++ gtk_icon_factory_lookup@Base 3.0.0
++ gtk_icon_factory_lookup_default@Base 3.0.0
++ gtk_icon_factory_new@Base 3.0.0
++ gtk_icon_factory_remove_default@Base 3.0.0
++ gtk_icon_info_copy@Base 3.0.0
++ gtk_icon_info_free@Base 3.0.0
++ gtk_icon_info_get_attach_points@Base 3.0.0
++ gtk_icon_info_get_base_scale@Base 3.9.10
++ gtk_icon_info_get_base_size@Base 3.0.0
++ gtk_icon_info_get_builtin_pixbuf@Base 3.0.0
++ gtk_icon_info_get_display_name@Base 3.0.0
++ gtk_icon_info_get_embedded_rect@Base 3.0.0
++ gtk_icon_info_get_filename@Base 3.0.0
++ gtk_icon_info_get_type@Base 3.0.0
++ gtk_icon_info_is_symbolic@Base 3.11.5
++ gtk_icon_info_load_icon@Base 3.0.0
++ gtk_icon_info_load_icon_async@Base 3.7.10
++ gtk_icon_info_load_icon_finish@Base 3.7.10
++ gtk_icon_info_load_surface@Base 3.9.10
++ gtk_icon_info_load_symbolic@Base 3.0.0
++ gtk_icon_info_load_symbolic_async@Base 3.7.10
++ gtk_icon_info_load_symbolic_finish@Base 3.7.10
++ gtk_icon_info_load_symbolic_for_context@Base 3.0.0
++ gtk_icon_info_load_symbolic_for_context_async@Base 3.7.10
++ gtk_icon_info_load_symbolic_for_context_finish@Base 3.7.10
++ gtk_icon_info_load_symbolic_for_style@Base 3.0.0
++ gtk_icon_info_new_for_pixbuf@Base 3.0.0
++ gtk_icon_info_set_raw_coordinates@Base 3.0.0
++ gtk_icon_lookup_flags_get_type@Base 3.0.0
++ gtk_icon_set_add_source@Base 3.0.0
++ gtk_icon_set_copy@Base 3.0.0
++ gtk_icon_set_get_sizes@Base 3.0.0
++ gtk_icon_set_get_type@Base 3.0.0
++ gtk_icon_set_new@Base 3.0.0
++ gtk_icon_set_new_from_pixbuf@Base 3.0.0
++ gtk_icon_set_ref@Base 3.0.0
++ gtk_icon_set_render_icon@Base 3.0.0
++ gtk_icon_set_render_icon_pixbuf@Base 3.0.0
++ gtk_icon_set_render_icon_surface@Base 3.9.10
++ gtk_icon_set_unref@Base 3.0.0
++ gtk_icon_size_from_name@Base 3.0.0
++ gtk_icon_size_get_name@Base 3.0.0
++ gtk_icon_size_get_type@Base 3.0.0
++ gtk_icon_size_lookup@Base 3.0.0
++ gtk_icon_size_lookup_for_settings@Base 3.0.0
++ gtk_icon_size_register@Base 3.0.0
++ gtk_icon_size_register_alias@Base 3.0.0
++ gtk_icon_source_copy@Base 3.0.0
++ gtk_icon_source_free@Base 3.0.0
++ gtk_icon_source_get_direction@Base 3.0.0
++ gtk_icon_source_get_direction_wildcarded@Base 3.0.0
++ gtk_icon_source_get_filename@Base 3.0.0
++ gtk_icon_source_get_icon_name@Base 3.0.0
++ gtk_icon_source_get_pixbuf@Base 3.0.0
++ gtk_icon_source_get_size@Base 3.0.0
++ gtk_icon_source_get_size_wildcarded@Base 3.0.0
++ gtk_icon_source_get_state@Base 3.0.0
++ gtk_icon_source_get_state_wildcarded@Base 3.0.0
++ gtk_icon_source_get_type@Base 3.0.0
++ gtk_icon_source_new@Base 3.0.0
++ gtk_icon_source_set_direction@Base 3.0.0
++ gtk_icon_source_set_direction_wildcarded@Base 3.0.0
++ gtk_icon_source_set_filename@Base 3.0.0
++ gtk_icon_source_set_icon_name@Base 3.0.0
++ gtk_icon_source_set_pixbuf@Base 3.0.0
++ gtk_icon_source_set_size@Base 3.0.0
++ gtk_icon_source_set_size_wildcarded@Base 3.0.0
++ gtk_icon_source_set_state@Base 3.0.0
++ gtk_icon_source_set_state_wildcarded@Base 3.0.0
++ gtk_icon_theme_add_builtin_icon@Base 3.0.0
++ gtk_icon_theme_add_resource_path@Base 3.13.7
++ gtk_icon_theme_append_search_path@Base 3.0.0
++ gtk_icon_theme_choose_icon@Base 3.0.0
++ gtk_icon_theme_choose_icon_for_scale@Base 3.9.10
++ gtk_icon_theme_error_get_type@Base 3.0.0
++ gtk_icon_theme_error_quark@Base 3.0.0
++ gtk_icon_theme_get_default@Base 3.0.0
++ gtk_icon_theme_get_example_icon_name@Base 3.0.0
++ gtk_icon_theme_get_for_screen@Base 3.0.0
++ gtk_icon_theme_get_icon_sizes@Base 3.0.0
++ gtk_icon_theme_get_search_path@Base 3.0.0
++ gtk_icon_theme_get_type@Base 3.0.0
++ gtk_icon_theme_has_icon@Base 3.0.0
++ gtk_icon_theme_list_contexts@Base 3.0.0
++ gtk_icon_theme_list_icons@Base 3.0.0
++ gtk_icon_theme_load_icon@Base 3.0.0
++ gtk_icon_theme_load_icon_for_scale@Base 3.9.10
++ gtk_icon_theme_load_surface@Base 3.9.10
++ gtk_icon_theme_lookup_by_gicon@Base 3.0.0
++ gtk_icon_theme_lookup_by_gicon_for_scale@Base 3.9.10
++ gtk_icon_theme_lookup_icon@Base 3.0.0
++ gtk_icon_theme_lookup_icon_for_scale@Base 3.9.10
++ gtk_icon_theme_new@Base 3.0.0
++ gtk_icon_theme_prepend_search_path@Base 3.0.0
++ gtk_icon_theme_rescan_if_needed@Base 3.0.0
++ gtk_icon_theme_set_custom_theme@Base 3.0.0
++ gtk_icon_theme_set_screen@Base 3.0.0
++ gtk_icon_theme_set_search_path@Base 3.0.0
++ gtk_icon_view_accessible_get_type@Base 3.7.10
++ gtk_icon_view_convert_widget_to_bin_window_coords@Base 3.0.0
++ gtk_icon_view_create_drag_icon@Base 3.0.0
++ gtk_icon_view_drop_position_get_type@Base 3.0.0
++ gtk_icon_view_enable_model_drag_dest@Base 3.0.0
++ gtk_icon_view_enable_model_drag_source@Base 3.0.0
++ gtk_icon_view_get_activate_on_single_click@Base 3.7.10
++ gtk_icon_view_get_cell_rect@Base 3.5.6
++ gtk_icon_view_get_column_spacing@Base 3.0.0
++ gtk_icon_view_get_columns@Base 3.0.0
++ gtk_icon_view_get_cursor@Base 3.0.0
++ gtk_icon_view_get_dest_item_at_pos@Base 3.0.0
++ gtk_icon_view_get_drag_dest_item@Base 3.0.0
++ gtk_icon_view_get_item_at_pos@Base 3.0.0
++ gtk_icon_view_get_item_column@Base 3.0.0
++ gtk_icon_view_get_item_orientation@Base 3.0.0
++ gtk_icon_view_get_item_padding@Base 3.0.0
++ gtk_icon_view_get_item_row@Base 3.0.0
++ gtk_icon_view_get_item_width@Base 3.0.0
++ gtk_icon_view_get_margin@Base 3.0.0
++ gtk_icon_view_get_markup_column@Base 3.0.0
++ gtk_icon_view_get_model@Base 3.0.0
++ gtk_icon_view_get_path_at_pos@Base 3.0.0
++ gtk_icon_view_get_pixbuf_column@Base 3.0.0
++ gtk_icon_view_get_reorderable@Base 3.0.0
++ gtk_icon_view_get_row_spacing@Base 3.0.0
++ gtk_icon_view_get_selected_items@Base 3.0.0
++ gtk_icon_view_get_selection_mode@Base 3.0.0
++ gtk_icon_view_get_spacing@Base 3.0.0
++ gtk_icon_view_get_text_column@Base 3.0.0
++ gtk_icon_view_get_tooltip_column@Base 3.0.0
++ gtk_icon_view_get_tooltip_context@Base 3.0.0
++ gtk_icon_view_get_type@Base 3.0.0
++ gtk_icon_view_get_visible_range@Base 3.0.0
++ gtk_icon_view_item_activated@Base 3.0.0
++ gtk_icon_view_new@Base 3.0.0
++ gtk_icon_view_new_with_area@Base 3.0.0
++ gtk_icon_view_new_with_model@Base 3.0.0
++ gtk_icon_view_path_is_selected@Base 3.0.0
++ gtk_icon_view_scroll_to_path@Base 3.0.0
++ gtk_icon_view_select_all@Base 3.0.0
++ gtk_icon_view_select_path@Base 3.0.0
++ gtk_icon_view_selected_foreach@Base 3.0.0
++ gtk_icon_view_set_activate_on_single_click@Base 3.7.10
++ gtk_icon_view_set_column_spacing@Base 3.0.0
++ gtk_icon_view_set_columns@Base 3.0.0
++ gtk_icon_view_set_cursor@Base 3.0.0
++ gtk_icon_view_set_drag_dest_item@Base 3.0.0
++ gtk_icon_view_set_item_orientation@Base 3.0.0
++ gtk_icon_view_set_item_padding@Base 3.0.0
++ gtk_icon_view_set_item_width@Base 3.0.0
++ gtk_icon_view_set_margin@Base 3.0.0
++ gtk_icon_view_set_markup_column@Base 3.0.0
++ gtk_icon_view_set_model@Base 3.0.0
++ gtk_icon_view_set_pixbuf_column@Base 3.0.0
++ gtk_icon_view_set_reorderable@Base 3.0.0
++ gtk_icon_view_set_row_spacing@Base 3.0.0
++ gtk_icon_view_set_selection_mode@Base 3.0.0
++ gtk_icon_view_set_spacing@Base 3.0.0
++ gtk_icon_view_set_text_column@Base 3.0.0
++ gtk_icon_view_set_tooltip_cell@Base 3.0.0
++ gtk_icon_view_set_tooltip_column@Base 3.0.0
++ gtk_icon_view_set_tooltip_item@Base 3.0.0
++ gtk_icon_view_unselect_all@Base 3.0.0
++ gtk_icon_view_unselect_path@Base 3.0.0
++ gtk_icon_view_unset_model_drag_dest@Base 3.0.0
++ gtk_icon_view_unset_model_drag_source@Base 3.0.0
++ gtk_identifier_get_type@Base 3.0.0
++ gtk_im_context_delete_surrounding@Base 3.0.0
++ gtk_im_context_filter_keypress@Base 3.0.0
++ gtk_im_context_focus_in@Base 3.0.0
++ gtk_im_context_focus_out@Base 3.0.0
++ gtk_im_context_get_preedit_string@Base 3.0.0
++ gtk_im_context_get_surrounding@Base 3.0.0
++ gtk_im_context_get_type@Base 3.0.0
++ gtk_im_context_reset@Base 3.0.0
++ gtk_im_context_set_client_window@Base 3.0.0
++ gtk_im_context_set_cursor_location@Base 3.0.0
++ gtk_im_context_set_surrounding@Base 3.0.0
++ gtk_im_context_set_use_preedit@Base 3.0.0
++ gtk_im_context_simple_add_compose_file@Base 3.19.12
++ gtk_im_context_simple_add_table@Base 3.0.0
++ gtk_im_context_simple_get_type@Base 3.0.0
++ gtk_im_context_simple_new@Base 3.0.0
++ gtk_im_multicontext_append_menuitems@Base 3.0.0
++ gtk_im_multicontext_get_context_id@Base 3.0.0
++ gtk_im_multicontext_get_type@Base 3.0.0
++ gtk_im_multicontext_new@Base 3.0.0
++ gtk_im_multicontext_set_context_id@Base 3.0.0
++ gtk_im_preedit_style_get_type@Base 3.0.0
++ gtk_im_status_style_get_type@Base 3.0.0
++ gtk_image_accessible_get_type@Base 3.7.10
++ gtk_image_cell_accessible_get_type@Base 3.7.10
++ gtk_image_clear@Base 3.0.0
++ gtk_image_get_animation@Base 3.0.0
++ gtk_image_get_gicon@Base 3.0.0
++ gtk_image_get_icon_name@Base 3.0.0
++ gtk_image_get_icon_set@Base 3.0.0
++ gtk_image_get_pixbuf@Base 3.0.0
++ gtk_image_get_pixel_size@Base 3.0.0
++ gtk_image_get_stock@Base 3.0.0
++ gtk_image_get_storage_type@Base 3.0.0
++ gtk_image_get_type@Base 3.0.0
++ gtk_image_menu_item_get_always_show_image@Base 3.0.0
++ gtk_image_menu_item_get_image@Base 3.0.0
++ gtk_image_menu_item_get_type@Base 3.0.0
++ gtk_image_menu_item_get_use_stock@Base 3.0.0
++ gtk_image_menu_item_new@Base 3.0.0
++ gtk_image_menu_item_new_from_stock@Base 3.0.0
++ gtk_image_menu_item_new_with_label@Base 3.0.0
++ gtk_image_menu_item_new_with_mnemonic@Base 3.0.0
++ gtk_image_menu_item_set_accel_group@Base 3.0.0
++ gtk_image_menu_item_set_always_show_image@Base 3.0.0
++ gtk_image_menu_item_set_image@Base 3.0.0
++ gtk_image_menu_item_set_use_stock@Base 3.0.0
++ gtk_image_new@Base 3.0.0
++ gtk_image_new_from_animation@Base 3.0.0
++ gtk_image_new_from_file@Base 3.0.0
++ gtk_image_new_from_gicon@Base 3.0.0
++ gtk_image_new_from_icon_name@Base 3.0.0
++ gtk_image_new_from_icon_set@Base 3.0.0
++ gtk_image_new_from_pixbuf@Base 3.0.0
++ gtk_image_new_from_resource@Base 3.3.16
++ gtk_image_new_from_stock@Base 3.0.0
++ gtk_image_new_from_surface@Base 3.9.10
++ gtk_image_set_from_animation@Base 3.0.0
++ gtk_image_set_from_file@Base 3.0.0
++ gtk_image_set_from_gicon@Base 3.0.0
++ gtk_image_set_from_icon_name@Base 3.0.0
++ gtk_image_set_from_icon_set@Base 3.0.0
++ gtk_image_set_from_pixbuf@Base 3.0.0
++ gtk_image_set_from_resource@Base 3.3.16
++ gtk_image_set_from_stock@Base 3.0.0
++ gtk_image_set_from_surface@Base 3.9.10
++ gtk_image_set_pixel_size@Base 3.0.0
++ gtk_image_type_get_type@Base 3.0.0
++ gtk_info_bar_add_action_widget@Base 3.0.0
++ gtk_info_bar_add_button@Base 3.0.0
++ gtk_info_bar_add_buttons@Base 3.0.0
++ gtk_info_bar_get_action_area@Base 3.0.0
++ gtk_info_bar_get_content_area@Base 3.0.0
++ gtk_info_bar_get_message_type@Base 3.0.0
++ gtk_info_bar_get_show_close_button@Base 3.9.10
++ gtk_info_bar_get_type@Base 3.0.0
++ gtk_info_bar_new@Base 3.0.0
++ gtk_info_bar_new_with_buttons@Base 3.0.0
++ gtk_info_bar_response@Base 3.0.0
++ gtk_info_bar_set_default_response@Base 3.0.0
++ gtk_info_bar_set_message_type@Base 3.0.0
++ gtk_info_bar_set_response_sensitive@Base 3.0.0
++ gtk_info_bar_set_show_close_button@Base 3.9.10
++ gtk_init@Base 3.0.0
++ gtk_init_check@Base 3.0.0
++ gtk_init_with_args@Base 3.0.0
++ gtk_input_hints_get_type@Base 3.5.12
++ gtk_input_purpose_get_type@Base 3.5.12
++ gtk_invisible_get_screen@Base 3.0.0
++ gtk_invisible_get_type@Base 3.0.0
++ gtk_invisible_new@Base 3.0.0
++ gtk_invisible_new_for_screen@Base 3.0.0
++ gtk_invisible_set_screen@Base 3.0.0
++ gtk_junction_sides_get_type@Base 3.0.0
++ gtk_justification_get_type@Base 3.0.0
++ gtk_key_snooper_install@Base 3.0.0
++ gtk_key_snooper_remove@Base 3.0.0
++ gtk_label_accessible_get_type@Base 3.7.10
++ gtk_label_get_angle@Base 3.0.0
++ gtk_label_get_attributes@Base 3.0.0
++ gtk_label_get_current_uri@Base 3.0.0
++ gtk_label_get_ellipsize@Base 3.0.0
++ gtk_label_get_justify@Base 3.0.0
++ gtk_label_get_label@Base 3.0.0
++ gtk_label_get_layout@Base 3.0.0
++ gtk_label_get_layout_offsets@Base 3.0.0
++ gtk_label_get_line_wrap@Base 3.0.0
++ gtk_label_get_line_wrap_mode@Base 3.0.0
++ gtk_label_get_lines@Base 3.9.14
++ gtk_label_get_max_width_chars@Base 3.0.0
++ gtk_label_get_mnemonic_keyval@Base 3.0.0
++ gtk_label_get_mnemonic_widget@Base 3.0.0
++ gtk_label_get_selectable@Base 3.0.0
++ gtk_label_get_selection_bounds@Base 3.0.0
++ gtk_label_get_single_line_mode@Base 3.0.0
++ gtk_label_get_text@Base 3.0.0
++ gtk_label_get_track_visited_links@Base 3.0.0
++ gtk_label_get_type@Base 3.0.0
++ gtk_label_get_use_markup@Base 3.0.0
++ gtk_label_get_use_underline@Base 3.0.0
++ gtk_label_get_width_chars@Base 3.0.0
++ gtk_label_get_xalign@Base 3.16.2
++ gtk_label_get_yalign@Base 3.16.2
++ gtk_label_new@Base 3.0.0
++ gtk_label_new_with_mnemonic@Base 3.0.0
++ gtk_label_select_region@Base 3.0.0
++ gtk_label_set_angle@Base 3.0.0
++ gtk_label_set_attributes@Base 3.0.0
++ gtk_label_set_ellipsize@Base 3.0.0
++ gtk_label_set_justify@Base 3.0.0
++ gtk_label_set_label@Base 3.0.0
++ gtk_label_set_line_wrap@Base 3.0.0
++ gtk_label_set_line_wrap_mode@Base 3.0.0
++ gtk_label_set_lines@Base 3.9.14
++ gtk_label_set_markup@Base 3.0.0
++ gtk_label_set_markup_with_mnemonic@Base 3.0.0
++ gtk_label_set_max_width_chars@Base 3.0.0
++ gtk_label_set_mnemonic_widget@Base 3.0.0
++ gtk_label_set_pattern@Base 3.0.0
++ gtk_label_set_selectable@Base 3.0.0
++ gtk_label_set_single_line_mode@Base 3.0.0
++ gtk_label_set_text@Base 3.0.0
++ gtk_label_set_text_with_mnemonic@Base 3.0.0
++ gtk_label_set_track_visited_links@Base 3.0.0
++ gtk_label_set_use_markup@Base 3.0.0
++ gtk_label_set_use_underline@Base 3.0.0
++ gtk_label_set_width_chars@Base 3.0.0
++ gtk_label_set_xalign@Base 3.16.2
++ gtk_label_set_yalign@Base 3.16.2
++ gtk_layout_get_bin_window@Base 3.0.0
++ gtk_layout_get_hadjustment@Base 3.0.0
++ gtk_layout_get_size@Base 3.0.0
++ gtk_layout_get_type@Base 3.0.0
++ gtk_layout_get_vadjustment@Base 3.0.0
++ gtk_layout_move@Base 3.0.0
++ gtk_layout_new@Base 3.0.0
++ gtk_layout_put@Base 3.0.0
++ gtk_layout_set_hadjustment@Base 3.0.0
++ gtk_layout_set_size@Base 3.0.0
++ gtk_layout_set_vadjustment@Base 3.0.0
++ gtk_level_bar_accessible_get_type@Base 3.7.10
++ gtk_level_bar_add_offset_value@Base 3.5.8
++ gtk_level_bar_get_inverted@Base 3.7.10
++ gtk_level_bar_get_max_value@Base 3.5.8
++ gtk_level_bar_get_min_value@Base 3.5.8
++ gtk_level_bar_get_mode@Base 3.5.8
++ gtk_level_bar_get_offset_value@Base 3.5.8
++ gtk_level_bar_get_type@Base 3.5.8
++ gtk_level_bar_get_value@Base 3.5.8
++ gtk_level_bar_mode_get_type@Base 3.5.8
++ gtk_level_bar_new@Base 3.5.8
++ gtk_level_bar_new_for_interval@Base 3.5.8
++ gtk_level_bar_remove_offset_value@Base 3.5.8
++ gtk_level_bar_set_inverted@Base 3.7.10
++ gtk_level_bar_set_max_value@Base 3.5.8
++ gtk_level_bar_set_min_value@Base 3.5.8
++ gtk_level_bar_set_mode@Base 3.5.8
++ gtk_level_bar_set_value@Base 3.5.8
++ gtk_license_get_type@Base 3.0.0
++ gtk_link_button_accessible_get_type@Base 3.7.10
++ gtk_link_button_get_type@Base 3.0.0
++ gtk_link_button_get_uri@Base 3.0.0
++ gtk_link_button_get_visited@Base 3.0.0
++ gtk_link_button_new@Base 3.0.0
++ gtk_link_button_new_with_label@Base 3.0.0
++ gtk_link_button_set_uri@Base 3.0.0
++ gtk_link_button_set_visited@Base 3.0.0
++ gtk_list_box_accessible_get_type@Base 3.9.10
++ gtk_list_box_bind_model@Base 3.16.2
++ gtk_list_box_drag_highlight_row@Base 3.9.10
++ gtk_list_box_drag_unhighlight_row@Base 3.9.10
++ gtk_list_box_get_activate_on_single_click@Base 3.9.10
++ gtk_list_box_get_adjustment@Base 3.9.10
++ gtk_list_box_get_row_at_index@Base 3.9.10
++ gtk_list_box_get_row_at_y@Base 3.9.10
++ gtk_list_box_get_selected_row@Base 3.9.10
++ gtk_list_box_get_selected_rows@Base 3.13.7
++ gtk_list_box_get_selection_mode@Base 3.9.10
++ gtk_list_box_get_type@Base 3.9.10
++ gtk_list_box_insert@Base 3.9.12
++ gtk_list_box_invalidate_filter@Base 3.9.10
++ gtk_list_box_invalidate_headers@Base 3.9.10
++ gtk_list_box_invalidate_sort@Base 3.9.10
++ gtk_list_box_new@Base 3.9.10
++ gtk_list_box_prepend@Base 3.9.12
++ gtk_list_box_row_accessible_get_type@Base 3.10.0
++ gtk_list_box_row_changed@Base 3.9.10
++ gtk_list_box_row_get_activatable@Base 3.13.7
++ gtk_list_box_row_get_header@Base 3.9.10
++ gtk_list_box_row_get_index@Base 3.9.10
++ gtk_list_box_row_get_selectable@Base 3.13.7
++ gtk_list_box_row_get_type@Base 3.9.10
++ gtk_list_box_row_is_selected@Base 3.13.7
++ gtk_list_box_row_new@Base 3.9.10
++ gtk_list_box_row_set_activatable@Base 3.13.7
++ gtk_list_box_row_set_header@Base 3.9.10
++ gtk_list_box_row_set_selectable@Base 3.13.7
++ gtk_list_box_select_all@Base 3.13.7
++ gtk_list_box_select_row@Base 3.9.10
++ gtk_list_box_selected_foreach@Base 3.13.7
++ gtk_list_box_set_activate_on_single_click@Base 3.9.10
++ gtk_list_box_set_adjustment@Base 3.9.10
++ gtk_list_box_set_filter_func@Base 3.9.10
++ gtk_list_box_set_header_func@Base 3.9.10
++ gtk_list_box_set_placeholder@Base 3.9.10
++ gtk_list_box_set_selection_mode@Base 3.9.10
++ gtk_list_box_set_sort_func@Base 3.9.10
++ gtk_list_box_unselect_all@Base 3.13.7
++ gtk_list_box_unselect_row@Base 3.13.7
++ gtk_list_store_append@Base 3.0.0
++ gtk_list_store_clear@Base 3.0.0
++ gtk_list_store_get_type@Base 3.0.0
++ gtk_list_store_insert@Base 3.0.0
++ gtk_list_store_insert_after@Base 3.0.0
++ gtk_list_store_insert_before@Base 3.0.0
++ gtk_list_store_insert_with_values@Base 3.0.0
++ gtk_list_store_insert_with_valuesv@Base 3.0.0
++ gtk_list_store_iter_is_valid@Base 3.0.0
++ gtk_list_store_move_after@Base 3.0.0
++ gtk_list_store_move_before@Base 3.0.0
++ gtk_list_store_new@Base 3.0.0
++ gtk_list_store_newv@Base 3.0.0
++ gtk_list_store_prepend@Base 3.0.0
++ gtk_list_store_remove@Base 3.0.0
++ gtk_list_store_reorder@Base 3.0.0
++ gtk_list_store_set@Base 3.0.0
++ gtk_list_store_set_column_types@Base 3.0.0
++ gtk_list_store_set_valist@Base 3.0.0
++ gtk_list_store_set_value@Base 3.0.0
++ gtk_list_store_set_valuesv@Base 3.0.0
++ gtk_list_store_swap@Base 3.0.0
++ gtk_lock_button_accessible_get_type@Base 3.7.10
++ gtk_lock_button_get_permission@Base 3.1.4
++ gtk_lock_button_get_type@Base 3.1.4
++ gtk_lock_button_new@Base 3.1.4
++ gtk_lock_button_set_permission@Base 3.1.4
++ gtk_main@Base 3.0.0
++ gtk_main_do_event@Base 3.0.0
++ gtk_main_iteration@Base 3.0.0
++ gtk_main_iteration_do@Base 3.0.0
++ gtk_main_level@Base 3.0.0
++ gtk_main_quit@Base 3.0.0
++ gtk_menu_accessible_get_type@Base 3.7.10
++ gtk_menu_attach@Base 3.0.0
++ gtk_menu_attach_to_widget@Base 3.0.0
++ gtk_menu_bar_get_child_pack_direction@Base 3.0.0
++ gtk_menu_bar_get_pack_direction@Base 3.0.0
++ gtk_menu_bar_get_type@Base 3.0.0
++ gtk_menu_bar_new@Base 3.0.0
++ gtk_menu_bar_new_from_model@Base 3.3.16
++ gtk_menu_bar_set_child_pack_direction@Base 3.0.0
++ gtk_menu_bar_set_pack_direction@Base 3.0.0
++ gtk_menu_button_accessible_get_type@Base 3.11.5
++ gtk_menu_button_get_align_widget@Base 3.5.6
++ gtk_menu_button_get_direction@Base 3.5.6
++ gtk_menu_button_get_menu_model@Base 3.5.6
++ gtk_menu_button_get_popover@Base 3.11.7
++ gtk_menu_button_get_popup@Base 3.5.12
++ gtk_menu_button_get_type@Base 3.5.6
++ gtk_menu_button_get_use_popover@Base 3.11.7
++ gtk_menu_button_new@Base 3.5.6
++ gtk_menu_button_set_align_widget@Base 3.5.6
++ gtk_menu_button_set_direction@Base 3.5.6
++ gtk_menu_button_set_menu_model@Base 3.5.6
++ gtk_menu_button_set_popover@Base 3.11.7
++ gtk_menu_button_set_popup@Base 3.5.12
++ gtk_menu_button_set_use_popover@Base 3.11.7
++ gtk_menu_detach@Base 3.0.0
++ gtk_menu_direction_type_get_type@Base 3.0.0
++ gtk_menu_get_accel_group@Base 3.0.0
++ gtk_menu_get_accel_path@Base 3.0.0
++ gtk_menu_get_active@Base 3.0.0
++ gtk_menu_get_attach_widget@Base 3.0.0
++ gtk_menu_get_for_attach_widget@Base 3.0.0
++ gtk_menu_get_monitor@Base 3.0.0
++ gtk_menu_get_reserve_toggle_size@Base 3.0.0
++ gtk_menu_get_tearoff_state@Base 3.0.0
++ gtk_menu_get_title@Base 3.0.0
++ gtk_menu_get_type@Base 3.0.0
++ gtk_menu_item_accessible_get_type@Base 3.7.10
++ gtk_menu_item_activate@Base 3.0.0
++ gtk_menu_item_deselect@Base 3.0.0
++ gtk_menu_item_get_accel_path@Base 3.0.0
++ gtk_menu_item_get_label@Base 3.0.0
++ gtk_menu_item_get_reserve_indicator@Base 3.0.0
++ gtk_menu_item_get_right_justified@Base 3.0.0
++ gtk_menu_item_get_submenu@Base 3.0.0
++ gtk_menu_item_get_type@Base 3.0.0
++ gtk_menu_item_get_use_underline@Base 3.0.0
++ gtk_menu_item_new@Base 3.0.0
++ gtk_menu_item_new_with_label@Base 3.0.0
++ gtk_menu_item_new_with_mnemonic@Base 3.0.0
++ gtk_menu_item_select@Base 3.0.0
++ gtk_menu_item_set_accel_path@Base 3.0.0
++ gtk_menu_item_set_label@Base 3.0.0
++ gtk_menu_item_set_reserve_indicator@Base 3.0.0
++ gtk_menu_item_set_right_justified@Base 3.0.0
++ gtk_menu_item_set_submenu@Base 3.0.0
++ gtk_menu_item_set_use_underline@Base 3.0.0
++ gtk_menu_item_toggle_size_allocate@Base 3.0.0
++ gtk_menu_item_toggle_size_request@Base 3.0.0
++ gtk_menu_new@Base 3.0.0
++ gtk_menu_new_from_model@Base 3.3.16
++ gtk_menu_place_on_monitor@Base 3.21.4
++ gtk_menu_popdown@Base 3.0.0
++ gtk_menu_popup@Base 3.0.0
++ gtk_menu_popup_at_pointer@Base 3.21.5
++ gtk_menu_popup_at_rect@Base 3.21.5
++ gtk_menu_popup_at_widget@Base 3.21.5
++ gtk_menu_popup_for_device@Base 3.0.0
++ gtk_menu_reorder_child@Base 3.0.0
++ gtk_menu_reposition@Base 3.0.0
++ gtk_menu_set_accel_group@Base 3.0.0
++ gtk_menu_set_accel_path@Base 3.0.0
++ gtk_menu_set_active@Base 3.0.0
++ gtk_menu_set_monitor@Base 3.0.0
++ gtk_menu_set_reserve_toggle_size@Base 3.0.0
++ gtk_menu_set_screen@Base 3.0.0
++ gtk_menu_set_tearoff_state@Base 3.0.0
++ gtk_menu_set_title@Base 3.0.0
++ gtk_menu_shell_accessible_get_type@Base 3.7.10
++ gtk_menu_shell_activate_item@Base 3.0.0
++ gtk_menu_shell_append@Base 3.0.0
++ gtk_menu_shell_bind_model@Base 3.5.18
++ gtk_menu_shell_cancel@Base 3.0.0
++ gtk_menu_shell_deactivate@Base 3.0.0
++ gtk_menu_shell_deselect@Base 3.0.0
++ gtk_menu_shell_get_parent_shell@Base 3.0.0
++ gtk_menu_shell_get_selected_item@Base 3.0.0
++ gtk_menu_shell_get_take_focus@Base 3.0.0
++ gtk_menu_shell_get_type@Base 3.0.0
++ gtk_menu_shell_insert@Base 3.0.0
++ gtk_menu_shell_prepend@Base 3.0.0
++ gtk_menu_shell_select_first@Base 3.0.0
++ gtk_menu_shell_select_item@Base 3.0.0
++ gtk_menu_shell_set_take_focus@Base 3.0.0
++ gtk_menu_tool_button_get_menu@Base 3.0.0
++ gtk_menu_tool_button_get_type@Base 3.0.0
++ gtk_menu_tool_button_new@Base 3.0.0
++ gtk_menu_tool_button_new_from_stock@Base 3.0.0
++ gtk_menu_tool_button_set_arrow_tooltip_markup@Base 3.0.0
++ gtk_menu_tool_button_set_arrow_tooltip_text@Base 3.0.0
++ gtk_menu_tool_button_set_menu@Base 3.0.0
++ gtk_message_dialog_format_secondary_markup@Base 3.0.0
++ gtk_message_dialog_format_secondary_text@Base 3.0.0
++ gtk_message_dialog_get_image@Base 3.0.0
++ gtk_message_dialog_get_message_area@Base 3.0.0
++ gtk_message_dialog_get_type@Base 3.0.0
++ gtk_message_dialog_new@Base 3.0.0
++ gtk_message_dialog_new_with_markup@Base 3.0.0
++ gtk_message_dialog_set_image@Base 3.0.0
++ gtk_message_dialog_set_markup@Base 3.0.0
++ gtk_message_type_get_type@Base 3.0.0
++ gtk_misc_get_alignment@Base 3.0.0
++ gtk_misc_get_padding@Base 3.0.0
++ gtk_misc_get_type@Base 3.0.0
++ gtk_misc_set_alignment@Base 3.0.0
++ gtk_misc_set_padding@Base 3.0.0
++ gtk_model_button_get_type@Base 3.16.2
++ gtk_model_button_new@Base 3.16.2
++ gtk_mount_operation_get_parent@Base 3.0.0
++ gtk_mount_operation_get_screen@Base 3.0.0
++ gtk_mount_operation_get_type@Base 3.0.0
++ gtk_mount_operation_is_showing@Base 3.0.0
++ gtk_mount_operation_new@Base 3.0.0
++ gtk_mount_operation_set_parent@Base 3.0.0
++ gtk_mount_operation_set_screen@Base 3.0.0
++ gtk_movement_step_get_type@Base 3.0.0
++ gtk_native_dialog_destroy@Base 3.19.12
++ gtk_native_dialog_get_modal@Base 3.19.12
++ gtk_native_dialog_get_title@Base 3.19.12
++ gtk_native_dialog_get_transient_for@Base 3.19.12
++ gtk_native_dialog_get_type@Base 3.19.12
++ gtk_native_dialog_get_visible@Base 3.19.12
++ gtk_native_dialog_hide@Base 3.19.12
++ gtk_native_dialog_run@Base 3.19.12
++ gtk_native_dialog_set_modal@Base 3.19.12
++ gtk_native_dialog_set_title@Base 3.19.12
++ gtk_native_dialog_set_transient_for@Base 3.19.12
++ gtk_native_dialog_show@Base 3.19.12
++ gtk_notebook_accessible_get_type@Base 3.7.10
++ gtk_notebook_append_page@Base 3.0.0
++ gtk_notebook_append_page_menu@Base 3.0.0
++ gtk_notebook_detach_tab@Base 3.16.2
++ gtk_notebook_get_action_widget@Base 3.0.0
++ gtk_notebook_get_current_page@Base 3.0.0
++ gtk_notebook_get_group_name@Base 3.0.0
++ gtk_notebook_get_menu_label@Base 3.0.0
++ gtk_notebook_get_menu_label_text@Base 3.0.0
++ gtk_notebook_get_n_pages@Base 3.0.0
++ gtk_notebook_get_nth_page@Base 3.0.0
++ gtk_notebook_get_scrollable@Base 3.0.0
++ gtk_notebook_get_show_border@Base 3.0.0
++ gtk_notebook_get_show_tabs@Base 3.0.0
++ gtk_notebook_get_tab_detachable@Base 3.0.0
++ gtk_notebook_get_tab_hborder@Base 3.0.0
++ gtk_notebook_get_tab_label@Base 3.0.0
++ gtk_notebook_get_tab_label_text@Base 3.0.0
++ gtk_notebook_get_tab_pos@Base 3.0.0
++ gtk_notebook_get_tab_reorderable@Base 3.0.0
++ gtk_notebook_get_tab_vborder@Base 3.0.0
++ gtk_notebook_get_type@Base 3.0.0
++ gtk_notebook_insert_page@Base 3.0.0
++ gtk_notebook_insert_page_menu@Base 3.0.0
++ gtk_notebook_new@Base 3.0.0
++ gtk_notebook_next_page@Base 3.0.0
++ gtk_notebook_page_accessible_get_type@Base 3.7.10
++ gtk_notebook_page_accessible_invalidate@Base 3.7.10
++ gtk_notebook_page_accessible_new@Base 3.7.10
++ gtk_notebook_page_num@Base 3.0.0
++ gtk_notebook_popup_disable@Base 3.0.0
++ gtk_notebook_popup_enable@Base 3.0.0
++ gtk_notebook_prepend_page@Base 3.0.0
++ gtk_notebook_prepend_page_menu@Base 3.0.0
++ gtk_notebook_prev_page@Base 3.0.0
++ gtk_notebook_remove_page@Base 3.0.0
++ gtk_notebook_reorder_child@Base 3.0.0
++ gtk_notebook_set_action_widget@Base 3.0.0
++ gtk_notebook_set_current_page@Base 3.0.0
++ gtk_notebook_set_group_name@Base 3.0.0
++ gtk_notebook_set_menu_label@Base 3.0.0
++ gtk_notebook_set_menu_label_text@Base 3.0.0
++ gtk_notebook_set_scrollable@Base 3.0.0
++ gtk_notebook_set_show_border@Base 3.0.0
++ gtk_notebook_set_show_tabs@Base 3.0.0
++ gtk_notebook_set_tab_detachable@Base 3.0.0
++ gtk_notebook_set_tab_label@Base 3.0.0
++ gtk_notebook_set_tab_label_text@Base 3.0.0
++ gtk_notebook_set_tab_pos@Base 3.0.0
++ gtk_notebook_set_tab_reorderable@Base 3.0.0
++ gtk_notebook_tab_get_type@Base 3.0.0
++ gtk_number_up_layout_get_type@Base 3.0.0
++ gtk_numerable_icon_get_background_gicon@Base 3.0.0
++ gtk_numerable_icon_get_background_icon_name@Base 3.0.0
++ gtk_numerable_icon_get_count@Base 3.0.0
++ gtk_numerable_icon_get_label@Base 3.0.0
++ gtk_numerable_icon_get_style_context@Base 3.0.0
++ gtk_numerable_icon_get_type@Base 3.0.0
++ gtk_numerable_icon_new@Base 3.0.0
++ gtk_numerable_icon_new_with_style_context@Base 3.0.0
++ gtk_numerable_icon_set_background_gicon@Base 3.0.0
++ gtk_numerable_icon_set_background_icon_name@Base 3.0.0
++ gtk_numerable_icon_set_count@Base 3.0.0
++ gtk_numerable_icon_set_label@Base 3.0.0
++ gtk_numerable_icon_set_style_context@Base 3.0.0
++ gtk_offscreen_window_get_pixbuf@Base 3.0.0
++ gtk_offscreen_window_get_surface@Base 3.0.0
++ gtk_offscreen_window_get_type@Base 3.0.0
++ gtk_offscreen_window_new@Base 3.0.0
++ gtk_orientable_get_orientation@Base 3.0.0
++ gtk_orientable_get_type@Base 3.0.0
++ gtk_orientable_set_orientation@Base 3.0.0
++ gtk_orientation_get_type@Base 3.0.0
++ gtk_overlay_add_overlay@Base 3.1.6
++ gtk_overlay_get_overlay_pass_through@Base 3.17.9
++ gtk_overlay_get_type@Base 3.1.6
++ gtk_overlay_new@Base 3.1.6
++ gtk_overlay_reorder_overlay@Base 3.17.9
++ gtk_overlay_set_overlay_pass_through@Base 3.17.9
++ gtk_pack_direction_get_type@Base 3.0.0
++ gtk_pack_type_get_type@Base 3.0.0
++ gtk_pad_action_type_get_type@Base 3.21.5
++ gtk_pad_controller_get_type@Base 3.21.5
++ gtk_pad_controller_new@Base 3.21.5
++ gtk_pad_controller_set_action@Base 3.21.5
++ gtk_pad_controller_set_action_entries@Base 3.21.5
++ gtk_page_orientation_get_type@Base 3.0.0
++ gtk_page_set_get_type@Base 3.0.0
++ gtk_page_setup_copy@Base 3.0.0
++ gtk_page_setup_get_bottom_margin@Base 3.0.0
++ gtk_page_setup_get_left_margin@Base 3.0.0
++ gtk_page_setup_get_orientation@Base 3.0.0
++ gtk_page_setup_get_page_height@Base 3.0.0
++ gtk_page_setup_get_page_width@Base 3.0.0
++ gtk_page_setup_get_paper_height@Base 3.0.0
++ gtk_page_setup_get_paper_size@Base 3.0.0
++ gtk_page_setup_get_paper_width@Base 3.0.0
++ gtk_page_setup_get_right_margin@Base 3.0.0
++ gtk_page_setup_get_top_margin@Base 3.0.0
++ gtk_page_setup_get_type@Base 3.0.0
++ gtk_page_setup_load_file@Base 3.0.0
++ gtk_page_setup_load_key_file@Base 3.0.0
++ gtk_page_setup_new@Base 3.0.0
++ gtk_page_setup_new_from_file@Base 3.0.0
++ gtk_page_setup_new_from_gvariant@Base 3.21.4
++ gtk_page_setup_new_from_key_file@Base 3.0.0
++ gtk_page_setup_set_bottom_margin@Base 3.0.0
++ gtk_page_setup_set_left_margin@Base 3.0.0
++ gtk_page_setup_set_orientation@Base 3.0.0
++ gtk_page_setup_set_paper_size@Base 3.0.0
++ gtk_page_setup_set_paper_size_and_default_margins@Base 3.0.0
++ gtk_page_setup_set_right_margin@Base 3.0.0
++ gtk_page_setup_set_top_margin@Base 3.0.0
++ gtk_page_setup_to_file@Base 3.0.0
++ gtk_page_setup_to_gvariant@Base 3.21.4
++ gtk_page_setup_to_key_file@Base 3.0.0
++ gtk_page_setup_unix_dialog_get_page_setup@Base 3.0.0
++ gtk_page_setup_unix_dialog_get_print_settings@Base 3.0.0
++ gtk_page_setup_unix_dialog_get_type@Base 3.0.0
++ gtk_page_setup_unix_dialog_new@Base 3.0.0
++ gtk_page_setup_unix_dialog_set_page_setup@Base 3.0.0
++ gtk_page_setup_unix_dialog_set_print_settings@Base 3.0.0
++ gtk_paint_arrow@Base 3.0.0
++ gtk_paint_box@Base 3.0.0
++ gtk_paint_box_gap@Base 3.0.0
++ gtk_paint_check@Base 3.0.0
++ gtk_paint_diamond@Base 3.0.0
++ gtk_paint_expander@Base 3.0.0
++ gtk_paint_extension@Base 3.0.0
++ gtk_paint_flat_box@Base 3.0.0
++ gtk_paint_focus@Base 3.0.0
++ gtk_paint_handle@Base 3.0.0
++ gtk_paint_hline@Base 3.0.0
++ gtk_paint_layout@Base 3.0.0
++ gtk_paint_option@Base 3.0.0
++ gtk_paint_resize_grip@Base 3.0.0
++ gtk_paint_shadow@Base 3.0.0
++ gtk_paint_shadow_gap@Base 3.0.0
++ gtk_paint_slider@Base 3.0.0
++ gtk_paint_spinner@Base 3.0.0
++ gtk_paint_tab@Base 3.0.0
++ gtk_paint_vline@Base 3.0.0
++ gtk_pan_direction_get_type@Base 3.13.7
++ gtk_paned_accessible_get_type@Base 3.7.10
++ gtk_paned_add1@Base 3.0.0
++ gtk_paned_add2@Base 3.0.0
++ gtk_paned_get_child1@Base 3.0.0
++ gtk_paned_get_child2@Base 3.0.0
++ gtk_paned_get_handle_window@Base 3.0.0
++ gtk_paned_get_position@Base 3.0.0
++ gtk_paned_get_type@Base 3.0.0
++ gtk_paned_get_wide_handle@Base 3.16.2
++ gtk_paned_new@Base 3.0.0
++ gtk_paned_pack1@Base 3.0.0
++ gtk_paned_pack2@Base 3.0.0
++ gtk_paned_set_position@Base 3.0.0
++ gtk_paned_set_wide_handle@Base 3.16.2
++ gtk_paper_size_copy@Base 3.0.0
++ gtk_paper_size_free@Base 3.0.0
++ gtk_paper_size_get_default@Base 3.0.0
++ gtk_paper_size_get_default_bottom_margin@Base 3.0.0
++ gtk_paper_size_get_default_left_margin@Base 3.0.0
++ gtk_paper_size_get_default_right_margin@Base 3.0.0
++ gtk_paper_size_get_default_top_margin@Base 3.0.0
++ gtk_paper_size_get_display_name@Base 3.0.0
++ gtk_paper_size_get_height@Base 3.0.0
++ gtk_paper_size_get_name@Base 3.0.0
++ gtk_paper_size_get_paper_sizes@Base 3.0.0
++ gtk_paper_size_get_ppd_name@Base 3.0.0
++ gtk_paper_size_get_type@Base 3.0.0
++ gtk_paper_size_get_width@Base 3.0.0
++ gtk_paper_size_is_custom@Base 3.0.0
++ gtk_paper_size_is_equal@Base 3.0.0
++ gtk_paper_size_is_ipp@Base 3.16.2
++ gtk_paper_size_new@Base 3.0.0
++ gtk_paper_size_new_custom@Base 3.0.0
++ gtk_paper_size_new_from_gvariant@Base 3.21.4
++ gtk_paper_size_new_from_ipp@Base 3.16.2
++ gtk_paper_size_new_from_key_file@Base 3.0.0
++ gtk_paper_size_new_from_ppd@Base 3.0.0
++ gtk_paper_size_set_size@Base 3.0.0
++ gtk_paper_size_to_gvariant@Base 3.21.4
++ gtk_paper_size_to_key_file@Base 3.0.0
++ gtk_parse_args@Base 3.0.0
++ gtk_path_bar_get_type@Base 3.0.0
++ gtk_path_priority_type_get_type@Base 3.0.0
++ gtk_path_type_get_type@Base 3.0.0
++ gtk_places_open_flags_get_type@Base 3.9.10
++ gtk_places_sidebar_add_shortcut@Base 3.9.10
++ gtk_places_sidebar_get_local_only@Base 3.11.5
++ gtk_places_sidebar_get_location@Base 3.9.10
++ gtk_places_sidebar_get_nth_bookmark@Base 3.9.10
++ gtk_places_sidebar_get_open_flags@Base 3.9.10
++ gtk_places_sidebar_get_show_connect_to_server@Base 3.9.10
++ gtk_places_sidebar_get_show_desktop@Base 3.9.10
++ gtk_places_sidebar_get_show_enter_location@Base 3.13.7
++ gtk_places_sidebar_get_show_other_locations@Base 3.17.9
++ gtk_places_sidebar_get_show_recent@Base 3.17.9
++ gtk_places_sidebar_get_show_trash@Base 3.17.9
++ gtk_places_sidebar_get_type@Base 3.9.10
++ gtk_places_sidebar_list_shortcuts@Base 3.9.10
++ gtk_places_sidebar_new@Base 3.9.10
++ gtk_places_sidebar_remove_shortcut@Base 3.9.10
++ gtk_places_sidebar_set_drop_targets_visible@Base 3.17.9
++ gtk_places_sidebar_set_local_only@Base 3.11.5
++ gtk_places_sidebar_set_location@Base 3.9.10
++ gtk_places_sidebar_set_open_flags@Base 3.9.10
++ gtk_places_sidebar_set_show_connect_to_server@Base 3.9.10
++ gtk_places_sidebar_set_show_desktop@Base 3.9.10
++ gtk_places_sidebar_set_show_enter_location@Base 3.13.7
++ gtk_places_sidebar_set_show_other_locations@Base 3.17.9
++ gtk_places_sidebar_set_show_recent@Base 3.17.9
++ gtk_places_sidebar_set_show_trash@Base 3.17.9
++ gtk_plug_construct@Base 3.0.0
++ gtk_plug_construct_for_display@Base 3.0.0
++ gtk_plug_get_embedded@Base 3.0.0
++ gtk_plug_get_id@Base 3.0.0
++ gtk_plug_get_socket_window@Base 3.0.0
++ gtk_plug_get_type@Base 3.0.0
++ gtk_plug_new@Base 3.0.0
++ gtk_plug_new_for_display@Base 3.0.0
++ gtk_policy_type_get_type@Base 3.0.0
++ gtk_popover_accessible_get_type@Base 3.12.0
++ gtk_popover_bind_model@Base 3.11.7
++ gtk_popover_constraint_get_type@Base 3.19.12
++ gtk_popover_get_constrain_to@Base 3.19.12
++ gtk_popover_get_default_widget@Base 3.17.9
++ gtk_popover_get_modal@Base 3.11.5
++ gtk_popover_get_pointing_to@Base 3.11.5
++ gtk_popover_get_position@Base 3.11.5
++ gtk_popover_get_relative_to@Base 3.11.5
++ gtk_popover_get_transitions_enabled@Base 3.16.2
++ gtk_popover_get_type@Base 3.11.5
++ gtk_popover_menu_get_type@Base 3.16.2
++ gtk_popover_menu_new@Base 3.16.2
++ gtk_popover_menu_open_submenu@Base 3.16.2
++ gtk_popover_new@Base 3.11.5
++ gtk_popover_new_from_model@Base 3.11.7
++ gtk_popover_popdown@Base 3.21.5
++ gtk_popover_popup@Base 3.21.5
++ gtk_popover_set_constrain_to@Base 3.19.12
++ gtk_popover_set_default_widget@Base 3.17.9
++ gtk_popover_set_modal@Base 3.11.5
++ gtk_popover_set_pointing_to@Base 3.11.5
++ gtk_popover_set_position@Base 3.11.5
++ gtk_popover_set_relative_to@Base 3.11.5
++ gtk_popover_set_transitions_enabled@Base 3.16.2
++ gtk_position_type_get_type@Base 3.0.0
++ gtk_print_backend_add_printer@Base 3.0.0
++ gtk_print_backend_destroy@Base 3.0.0
++ gtk_print_backend_error_quark@Base 3.0.0
++ gtk_print_backend_find_printer@Base 3.0.0
++ gtk_print_backend_get_printer_list@Base 3.0.0
++ gtk_print_backend_get_type@Base 3.0.0
++ gtk_print_backend_load_modules@Base 3.0.0
++ gtk_print_backend_print_stream@Base 3.0.0
++ gtk_print_backend_printer_list_is_done@Base 3.0.0
++ gtk_print_backend_remove_printer@Base 3.0.0
++ gtk_print_backend_set_list_done@Base 3.0.0
++ gtk_print_backend_set_password@Base 3.0.0
++ gtk_print_capabilities_get_type@Base 3.0.0
++ gtk_print_context_create_pango_context@Base 3.0.0
++ gtk_print_context_create_pango_layout@Base 3.0.0
++ gtk_print_context_get_cairo_context@Base 3.0.0
++ gtk_print_context_get_dpi_x@Base 3.0.0
++ gtk_print_context_get_dpi_y@Base 3.0.0
++ gtk_print_context_get_hard_margins@Base 3.0.0
++ gtk_print_context_get_height@Base 3.0.0
++ gtk_print_context_get_page_setup@Base 3.0.0
++ gtk_print_context_get_pango_fontmap@Base 3.0.0
++ gtk_print_context_get_type@Base 3.0.0
++ gtk_print_context_get_width@Base 3.0.0
++ gtk_print_context_set_cairo_context@Base 3.0.0
++ gtk_print_duplex_get_type@Base 3.0.0
++ gtk_print_error_get_type@Base 3.0.0
++ gtk_print_error_quark@Base 3.0.0
++ gtk_print_job_get_collate@Base 3.0.0
++ gtk_print_job_get_n_up@Base 3.0.0
++ gtk_print_job_get_n_up_layout@Base 3.0.0
++ gtk_print_job_get_num_copies@Base 3.0.0
++ gtk_print_job_get_page_ranges@Base 3.0.0
++ gtk_print_job_get_page_set@Base 3.0.0
++ gtk_print_job_get_pages@Base 3.0.0
++ gtk_print_job_get_printer@Base 3.0.0
++ gtk_print_job_get_reverse@Base 3.0.0
++ gtk_print_job_get_rotate@Base 3.0.0
++ gtk_print_job_get_scale@Base 3.0.0
++ gtk_print_job_get_settings@Base 3.0.0
++ gtk_print_job_get_status@Base 3.0.0
++ gtk_print_job_get_surface@Base 3.0.0
++ gtk_print_job_get_title@Base 3.0.0
++ gtk_print_job_get_track_print_status@Base 3.0.0
++ gtk_print_job_get_type@Base 3.0.0
++ gtk_print_job_new@Base 3.0.0
++ gtk_print_job_send@Base 3.0.0
++ gtk_print_job_set_collate@Base 3.0.0
++ gtk_print_job_set_n_up@Base 3.0.0
++ gtk_print_job_set_n_up_layout@Base 3.0.0
++ gtk_print_job_set_num_copies@Base 3.0.0
++ gtk_print_job_set_page_ranges@Base 3.0.0
++ gtk_print_job_set_page_set@Base 3.0.0
++ gtk_print_job_set_pages@Base 3.0.0
++ gtk_print_job_set_reverse@Base 3.0.0
++ gtk_print_job_set_rotate@Base 3.0.0
++ gtk_print_job_set_scale@Base 3.0.0
++ gtk_print_job_set_source_fd@Base 3.21.4
++ gtk_print_job_set_source_file@Base 3.0.0
++ gtk_print_job_set_status@Base 3.0.0
++ gtk_print_job_set_track_print_status@Base 3.0.0
++ gtk_print_operation_action_get_type@Base 3.0.0
++ gtk_print_operation_cancel@Base 3.0.0
++ gtk_print_operation_draw_page_finish@Base 3.0.0
++ gtk_print_operation_get_default_page_setup@Base 3.0.0
++ gtk_print_operation_get_embed_page_setup@Base 3.0.0
++ gtk_print_operation_get_error@Base 3.0.0
++ gtk_print_operation_get_has_selection@Base 3.0.0
++ gtk_print_operation_get_n_pages_to_print@Base 3.0.0
++ gtk_print_operation_get_print_settings@Base 3.0.0
++ gtk_print_operation_get_status@Base 3.0.0
++ gtk_print_operation_get_status_string@Base 3.0.0
++ gtk_print_operation_get_support_selection@Base 3.0.0
++ gtk_print_operation_get_type@Base 3.0.0
++ gtk_print_operation_is_finished@Base 3.0.0
++ gtk_print_operation_new@Base 3.0.0
++ gtk_print_operation_preview_end_preview@Base 3.0.0
++ gtk_print_operation_preview_get_type@Base 3.0.0
++ gtk_print_operation_preview_is_selected@Base 3.0.0
++ gtk_print_operation_preview_render_page@Base 3.0.0
++ gtk_print_operation_result_get_type@Base 3.0.0
++ gtk_print_operation_run@Base 3.0.0
++ gtk_print_operation_set_allow_async@Base 3.0.0
++ gtk_print_operation_set_current_page@Base 3.0.0
++ gtk_print_operation_set_custom_tab_label@Base 3.0.0
++ gtk_print_operation_set_default_page_setup@Base 3.0.0
++ gtk_print_operation_set_defer_drawing@Base 3.0.0
++ gtk_print_operation_set_embed_page_setup@Base 3.0.0
++ gtk_print_operation_set_export_filename@Base 3.0.0
++ gtk_print_operation_set_has_selection@Base 3.0.0
++ gtk_print_operation_set_job_name@Base 3.0.0
++ gtk_print_operation_set_n_pages@Base 3.0.0
++ gtk_print_operation_set_print_settings@Base 3.0.0
++ gtk_print_operation_set_show_progress@Base 3.0.0
++ gtk_print_operation_set_support_selection@Base 3.0.0
++ gtk_print_operation_set_track_print_status@Base 3.0.0
++ gtk_print_operation_set_unit@Base 3.0.0
++ gtk_print_operation_set_use_full_page@Base 3.0.0
++ gtk_print_pages_get_type@Base 3.0.0
++ gtk_print_quality_get_type@Base 3.0.0
++ gtk_print_run_page_setup_dialog@Base 3.0.0
++ gtk_print_run_page_setup_dialog_async@Base 3.0.0
++ gtk_print_settings_copy@Base 3.0.0
++ gtk_print_settings_foreach@Base 3.0.0
++ gtk_print_settings_get@Base 3.0.0
++ gtk_print_settings_get_bool@Base 3.0.0
++ gtk_print_settings_get_collate@Base 3.0.0
++ gtk_print_settings_get_default_source@Base 3.0.0
++ gtk_print_settings_get_dither@Base 3.0.0
++ gtk_print_settings_get_double@Base 3.0.0
++ gtk_print_settings_get_double_with_default@Base 3.0.0
++ gtk_print_settings_get_duplex@Base 3.0.0
++ gtk_print_settings_get_finishings@Base 3.0.0
++ gtk_print_settings_get_int@Base 3.0.0
++ gtk_print_settings_get_int_with_default@Base 3.0.0
++ gtk_print_settings_get_length@Base 3.0.0
++ gtk_print_settings_get_media_type@Base 3.0.0
++ gtk_print_settings_get_n_copies@Base 3.0.0
++ gtk_print_settings_get_number_up@Base 3.0.0
++ gtk_print_settings_get_number_up_layout@Base 3.0.0
++ gtk_print_settings_get_orientation@Base 3.0.0
++ gtk_print_settings_get_output_bin@Base 3.0.0
++ gtk_print_settings_get_page_ranges@Base 3.0.0
++ gtk_print_settings_get_page_set@Base 3.0.0
++ gtk_print_settings_get_paper_height@Base 3.0.0
++ gtk_print_settings_get_paper_size@Base 3.0.0
++ gtk_print_settings_get_paper_width@Base 3.0.0
++ gtk_print_settings_get_print_pages@Base 3.0.0
++ gtk_print_settings_get_printer@Base 3.0.0
++ gtk_print_settings_get_printer_lpi@Base 3.0.0
++ gtk_print_settings_get_quality@Base 3.0.0
++ gtk_print_settings_get_resolution@Base 3.0.0
++ gtk_print_settings_get_resolution_x@Base 3.0.0
++ gtk_print_settings_get_resolution_y@Base 3.0.0
++ gtk_print_settings_get_reverse@Base 3.0.0
++ gtk_print_settings_get_scale@Base 3.0.0
++ gtk_print_settings_get_type@Base 3.0.0
++ gtk_print_settings_get_use_color@Base 3.0.0
++ gtk_print_settings_has_key@Base 3.0.0
++ gtk_print_settings_load_file@Base 3.0.0
++ gtk_print_settings_load_key_file@Base 3.0.0
++ gtk_print_settings_new@Base 3.0.0
++ gtk_print_settings_new_from_file@Base 3.0.0
++ gtk_print_settings_new_from_gvariant@Base 3.21.4
++ gtk_print_settings_new_from_key_file@Base 3.0.0
++ gtk_print_settings_set@Base 3.0.0
++ gtk_print_settings_set_bool@Base 3.0.0
++ gtk_print_settings_set_collate@Base 3.0.0
++ gtk_print_settings_set_default_source@Base 3.0.0
++ gtk_print_settings_set_dither@Base 3.0.0
++ gtk_print_settings_set_double@Base 3.0.0
++ gtk_print_settings_set_duplex@Base 3.0.0
++ gtk_print_settings_set_finishings@Base 3.0.0
++ gtk_print_settings_set_int@Base 3.0.0
++ gtk_print_settings_set_length@Base 3.0.0
++ gtk_print_settings_set_media_type@Base 3.0.0
++ gtk_print_settings_set_n_copies@Base 3.0.0
++ gtk_print_settings_set_number_up@Base 3.0.0
++ gtk_print_settings_set_number_up_layout@Base 3.0.0
++ gtk_print_settings_set_orientation@Base 3.0.0
++ gtk_print_settings_set_output_bin@Base 3.0.0
++ gtk_print_settings_set_page_ranges@Base 3.0.0
++ gtk_print_settings_set_page_set@Base 3.0.0
++ gtk_print_settings_set_paper_height@Base 3.0.0
++ gtk_print_settings_set_paper_size@Base 3.0.0
++ gtk_print_settings_set_paper_width@Base 3.0.0
++ gtk_print_settings_set_print_pages@Base 3.0.0
++ gtk_print_settings_set_printer@Base 3.0.0
++ gtk_print_settings_set_printer_lpi@Base 3.0.0
++ gtk_print_settings_set_quality@Base 3.0.0
++ gtk_print_settings_set_resolution@Base 3.0.0
++ gtk_print_settings_set_resolution_xy@Base 3.0.0
++ gtk_print_settings_set_reverse@Base 3.0.0
++ gtk_print_settings_set_scale@Base 3.0.0
++ gtk_print_settings_set_use_color@Base 3.0.0
++ gtk_print_settings_to_file@Base 3.0.0
++ gtk_print_settings_to_gvariant@Base 3.21.4
++ gtk_print_settings_to_key_file@Base 3.0.0
++ gtk_print_settings_unset@Base 3.0.0
++ gtk_print_status_get_type@Base 3.0.0
++ gtk_print_unix_dialog_add_custom_tab@Base 3.0.0
++ gtk_print_unix_dialog_get_current_page@Base 3.0.0
++ gtk_print_unix_dialog_get_embed_page_setup@Base 3.0.0
++ gtk_print_unix_dialog_get_has_selection@Base 3.0.0
++ gtk_print_unix_dialog_get_manual_capabilities@Base 3.0.0
++ gtk_print_unix_dialog_get_page_setup@Base 3.0.0
++ gtk_print_unix_dialog_get_page_setup_set@Base 3.0.0
++ gtk_print_unix_dialog_get_selected_printer@Base 3.0.0
++ gtk_print_unix_dialog_get_settings@Base 3.0.0
++ gtk_print_unix_dialog_get_support_selection@Base 3.0.0
++ gtk_print_unix_dialog_get_type@Base 3.0.0
++ gtk_print_unix_dialog_new@Base 3.0.0
++ gtk_print_unix_dialog_set_current_page@Base 3.0.0
++ gtk_print_unix_dialog_set_embed_page_setup@Base 3.0.0
++ gtk_print_unix_dialog_set_has_selection@Base 3.0.0
++ gtk_print_unix_dialog_set_manual_capabilities@Base 3.0.0
++ gtk_print_unix_dialog_set_page_setup@Base 3.0.0
++ gtk_print_unix_dialog_set_settings@Base 3.0.0
++ gtk_print_unix_dialog_set_support_selection@Base 3.0.0
++ gtk_printer_accepts_pdf@Base 3.0.0
++ gtk_printer_accepts_ps@Base 3.0.0
++ gtk_printer_compare@Base 3.0.0
++ gtk_printer_get_backend@Base 3.0.0
++ gtk_printer_get_capabilities@Base 3.0.0
++ gtk_printer_get_default_page_size@Base 3.0.0
++ gtk_printer_get_description@Base 3.0.0
++ gtk_printer_get_hard_margins@Base 3.0.0
++ gtk_printer_get_icon_name@Base 3.0.0
++ gtk_printer_get_job_count@Base 3.0.0
++ gtk_printer_get_location@Base 3.0.0
++ gtk_printer_get_name@Base 3.0.0
++ gtk_printer_get_state_message@Base 3.0.0
++ gtk_printer_get_type@Base 3.0.0
++ gtk_printer_has_details@Base 3.0.0
++ gtk_printer_is_accepting_jobs@Base 3.0.0
++ gtk_printer_is_active@Base 3.0.0
++ gtk_printer_is_default@Base 3.0.0
++ gtk_printer_is_new@Base 3.0.0
++ gtk_printer_is_paused@Base 3.0.0
++ gtk_printer_is_virtual@Base 3.0.0
++ gtk_printer_list_papers@Base 3.0.0
++ gtk_printer_new@Base 3.0.0
++ gtk_printer_option_allocate_choices@Base 3.0.0
++ gtk_printer_option_choices_from_array@Base 3.0.0
++ gtk_printer_option_clear_has_conflict@Base 3.0.0
++ gtk_printer_option_get_activates_default@Base 3.0.0
++ gtk_printer_option_get_type@Base 3.0.0
++ gtk_printer_option_has_choice@Base 3.0.0
++ gtk_printer_option_new@Base 3.0.0
++ gtk_printer_option_set@Base 3.0.0
++ gtk_printer_option_set_activates_default@Base 3.0.0
++ gtk_printer_option_set_add@Base 3.0.0
++ gtk_printer_option_set_boolean@Base 3.0.0
++ gtk_printer_option_set_clear_conflicts@Base 3.0.0
++ gtk_printer_option_set_foreach@Base 3.0.0
++ gtk_printer_option_set_foreach_in_group@Base 3.0.0
++ gtk_printer_option_set_get_groups@Base 3.0.0
++ gtk_printer_option_set_get_type@Base 3.0.0
++ gtk_printer_option_set_has_conflict@Base 3.0.0
++ gtk_printer_option_set_lookup@Base 3.0.0
++ gtk_printer_option_set_new@Base 3.0.0
++ gtk_printer_option_set_remove@Base 3.0.0
++ gtk_printer_option_widget_get_external_label@Base 3.0.0
++ gtk_printer_option_widget_get_type@Base 3.0.0
++ gtk_printer_option_widget_get_value@Base 3.0.0
++ gtk_printer_option_widget_has_external_label@Base 3.0.0
++ gtk_printer_option_widget_new@Base 3.0.0
++ gtk_printer_option_widget_set_source@Base 3.0.0
++ gtk_printer_request_details@Base 3.0.0
++ gtk_printer_set_accepts_pdf@Base 3.0.0
++ gtk_printer_set_accepts_ps@Base 3.0.0
++ gtk_printer_set_description@Base 3.0.0
++ gtk_printer_set_has_details@Base 3.0.0
++ gtk_printer_set_icon_name@Base 3.0.0
++ gtk_printer_set_is_accepting_jobs@Base 3.0.0
++ gtk_printer_set_is_active@Base 3.0.0
++ gtk_printer_set_is_default@Base 3.0.0
++ gtk_printer_set_is_new@Base 3.0.0
++ gtk_printer_set_is_paused@Base 3.0.0
++ gtk_printer_set_job_count@Base 3.0.0
++ gtk_printer_set_location@Base 3.0.0
++ gtk_printer_set_state_message@Base 3.0.0
++ gtk_progress_bar_accessible_get_type@Base 3.7.10
++ gtk_progress_bar_get_ellipsize@Base 3.0.0
++ gtk_progress_bar_get_fraction@Base 3.0.0
++ gtk_progress_bar_get_inverted@Base 3.0.0
++ gtk_progress_bar_get_pulse_step@Base 3.0.0
++ gtk_progress_bar_get_show_text@Base 3.0.0
++ gtk_progress_bar_get_text@Base 3.0.0
++ gtk_progress_bar_get_type@Base 3.0.0
++ gtk_progress_bar_new@Base 3.0.0
++ gtk_progress_bar_pulse@Base 3.0.0
++ gtk_progress_bar_set_ellipsize@Base 3.0.0
++ gtk_progress_bar_set_fraction@Base 3.0.0
++ gtk_progress_bar_set_inverted@Base 3.0.0
++ gtk_progress_bar_set_pulse_step@Base 3.0.0
++ gtk_progress_bar_set_show_text@Base 3.0.0
++ gtk_progress_bar_set_text@Base 3.0.0
++ gtk_propagate_event@Base 3.0.0
++ gtk_propagation_phase_get_type@Base 3.13.7
++ gtk_radio_action_get_current_value@Base 3.0.0
++ gtk_radio_action_get_group@Base 3.0.0
++ gtk_radio_action_get_type@Base 3.0.0
++ gtk_radio_action_join_group@Base 3.0.0
++ gtk_radio_action_new@Base 3.0.0
++ gtk_radio_action_set_current_value@Base 3.0.0
++ gtk_radio_action_set_group@Base 3.0.0
++ gtk_radio_button_accessible_get_type@Base 3.7.10
++ gtk_radio_button_get_group@Base 3.0.0
++ gtk_radio_button_get_type@Base 3.0.0
++ gtk_radio_button_join_group@Base 3.0.0
++ gtk_radio_button_new@Base 3.0.0
++ gtk_radio_button_new_from_widget@Base 3.0.0
++ gtk_radio_button_new_with_label@Base 3.0.0
++ gtk_radio_button_new_with_label_from_widget@Base 3.0.0
++ gtk_radio_button_new_with_mnemonic@Base 3.0.0
++ gtk_radio_button_new_with_mnemonic_from_widget@Base 3.0.0
++ gtk_radio_button_set_group@Base 3.0.0
++ gtk_radio_menu_item_accessible_get_type@Base 3.7.10
++ gtk_radio_menu_item_get_group@Base 3.0.0
++ gtk_radio_menu_item_get_type@Base 3.0.0
++ gtk_radio_menu_item_join_group@Base 3.17.9
++ gtk_radio_menu_item_new@Base 3.0.0
++ gtk_radio_menu_item_new_from_widget@Base 3.0.0
++ gtk_radio_menu_item_new_with_label@Base 3.0.0
++ gtk_radio_menu_item_new_with_label_from_widget@Base 3.0.0
++ gtk_radio_menu_item_new_with_mnemonic@Base 3.0.0
++ gtk_radio_menu_item_new_with_mnemonic_from_widget@Base 3.0.0
++ gtk_radio_menu_item_set_group@Base 3.0.0
++ gtk_radio_tool_button_get_group@Base 3.0.0
++ gtk_radio_tool_button_get_type@Base 3.0.0
++ gtk_radio_tool_button_new@Base 3.0.0
++ gtk_radio_tool_button_new_from_stock@Base 3.0.0
++ gtk_radio_tool_button_new_from_widget@Base 3.0.0
++ gtk_radio_tool_button_new_with_stock_from_widget@Base 3.0.0
++ gtk_radio_tool_button_set_group@Base 3.0.0
++ gtk_range_accessible_get_type@Base 3.7.10
++ gtk_range_get_adjustment@Base 3.0.0
++ gtk_range_get_fill_level@Base 3.0.0
++ gtk_range_get_flippable@Base 3.0.0
++ gtk_range_get_inverted@Base 3.0.0
++ gtk_range_get_lower_stepper_sensitivity@Base 3.0.0
++ gtk_range_get_min_slider_size@Base 3.0.0
++ gtk_range_get_range_rect@Base 3.0.0
++ gtk_range_get_restrict_to_fill_level@Base 3.0.0
++ gtk_range_get_round_digits@Base 3.0.0
++ gtk_range_get_show_fill_level@Base 3.0.0
++ gtk_range_get_slider_range@Base 3.0.0
++ gtk_range_get_slider_size_fixed@Base 3.0.0
++ gtk_range_get_type@Base 3.0.0
++ gtk_range_get_upper_stepper_sensitivity@Base 3.0.0
++ gtk_range_get_value@Base 3.0.0
++ gtk_range_set_adjustment@Base 3.0.0
++ gtk_range_set_fill_level@Base 3.0.0
++ gtk_range_set_flippable@Base 3.0.0
++ gtk_range_set_increments@Base 3.0.0
++ gtk_range_set_inverted@Base 3.0.0
++ gtk_range_set_lower_stepper_sensitivity@Base 3.0.0
++ gtk_range_set_min_slider_size@Base 3.0.0
++ gtk_range_set_range@Base 3.0.0
++ gtk_range_set_restrict_to_fill_level@Base 3.0.0
++ gtk_range_set_round_digits@Base 3.0.0
++ gtk_range_set_show_fill_level@Base 3.0.0
++ gtk_range_set_slider_size_fixed@Base 3.0.0
++ gtk_range_set_upper_stepper_sensitivity@Base 3.0.0
++ gtk_range_set_value@Base 3.0.0
++ gtk_rc_add_default_file@Base 3.0.0
++ gtk_rc_find_module_in_path@Base 3.0.0
++ gtk_rc_find_pixmap_in_path@Base 3.0.0
++ gtk_rc_flags_get_type@Base 3.0.0
++ gtk_rc_get_default_files@Base 3.0.0
++ gtk_rc_get_im_module_file@Base 3.0.0
++ gtk_rc_get_im_module_path@Base 3.0.0
++ gtk_rc_get_module_dir@Base 3.0.0
++ gtk_rc_get_style@Base 3.0.0
++ gtk_rc_get_style_by_paths@Base 3.0.0
++ gtk_rc_get_theme_dir@Base 3.0.0
++ gtk_rc_parse@Base 3.0.0
++ gtk_rc_parse_color@Base 3.0.0
++ gtk_rc_parse_color_full@Base 3.0.0
++ gtk_rc_parse_priority@Base 3.0.0
++ gtk_rc_parse_state@Base 3.0.0
++ gtk_rc_parse_string@Base 3.0.0
++ gtk_rc_property_parse_border@Base 3.0.0
++ gtk_rc_property_parse_color@Base 3.0.0
++ gtk_rc_property_parse_enum@Base 3.0.0
++ gtk_rc_property_parse_flags@Base 3.0.0
++ gtk_rc_property_parse_requisition@Base 3.0.0
++ gtk_rc_reparse_all@Base 3.0.0
++ gtk_rc_reparse_all_for_settings@Base 3.0.0
++ gtk_rc_reset_styles@Base 3.0.0
++ gtk_rc_scanner_new@Base 3.0.0
++ gtk_rc_set_default_files@Base 3.0.0
++ gtk_rc_style_copy@Base 3.0.0
++ gtk_rc_style_get_type@Base 3.0.0
++ gtk_rc_style_new@Base 3.0.0
++ gtk_rc_token_type_get_type@Base 3.0.0
++ gtk_recent_action_get_show_numbers@Base 3.0.0
++ gtk_recent_action_get_type@Base 3.0.0
++ gtk_recent_action_new@Base 3.0.0
++ gtk_recent_action_new_for_manager@Base 3.0.0
++ gtk_recent_action_set_show_numbers@Base 3.0.0
++ gtk_recent_chooser_add_filter@Base 3.0.0
++ gtk_recent_chooser_dialog_get_type@Base 3.0.0
++ gtk_recent_chooser_dialog_new@Base 3.0.0
++ gtk_recent_chooser_dialog_new_for_manager@Base 3.0.0
++ gtk_recent_chooser_error_get_type@Base 3.0.0
++ gtk_recent_chooser_error_quark@Base 3.0.0
++ gtk_recent_chooser_get_current_item@Base 3.0.0
++ gtk_recent_chooser_get_current_uri@Base 3.0.0
++ gtk_recent_chooser_get_filter@Base 3.0.0
++ gtk_recent_chooser_get_items@Base 3.0.0
++ gtk_recent_chooser_get_limit@Base 3.0.0
++ gtk_recent_chooser_get_local_only@Base 3.0.0
++ gtk_recent_chooser_get_select_multiple@Base 3.0.0
++ gtk_recent_chooser_get_show_icons@Base 3.0.0
++ gtk_recent_chooser_get_show_not_found@Base 3.0.0
++ gtk_recent_chooser_get_show_private@Base 3.0.0
++ gtk_recent_chooser_get_show_tips@Base 3.0.0
++ gtk_recent_chooser_get_sort_type@Base 3.0.0
++ gtk_recent_chooser_get_type@Base 3.0.0
++ gtk_recent_chooser_get_uris@Base 3.0.0
++ gtk_recent_chooser_list_filters@Base 3.0.0
++ gtk_recent_chooser_menu_get_show_numbers@Base 3.0.0
++ gtk_recent_chooser_menu_get_type@Base 3.0.0
++ gtk_recent_chooser_menu_new@Base 3.0.0
++ gtk_recent_chooser_menu_new_for_manager@Base 3.0.0
++ gtk_recent_chooser_menu_set_show_numbers@Base 3.0.0
++ gtk_recent_chooser_remove_filter@Base 3.0.0
++ gtk_recent_chooser_select_all@Base 3.0.0
++ gtk_recent_chooser_select_uri@Base 3.0.0
++ gtk_recent_chooser_set_current_uri@Base 3.0.0
++ gtk_recent_chooser_set_filter@Base 3.0.0
++ gtk_recent_chooser_set_limit@Base 3.0.0
++ gtk_recent_chooser_set_local_only@Base 3.0.0
++ gtk_recent_chooser_set_select_multiple@Base 3.0.0
++ gtk_recent_chooser_set_show_icons@Base 3.0.0
++ gtk_recent_chooser_set_show_not_found@Base 3.0.0
++ gtk_recent_chooser_set_show_private@Base 3.0.0
++ gtk_recent_chooser_set_show_tips@Base 3.0.0
++ gtk_recent_chooser_set_sort_func@Base 3.0.0
++ gtk_recent_chooser_set_sort_type@Base 3.0.0
++ gtk_recent_chooser_unselect_all@Base 3.0.0
++ gtk_recent_chooser_unselect_uri@Base 3.0.0
++ gtk_recent_chooser_widget_get_type@Base 3.0.0
++ gtk_recent_chooser_widget_new@Base 3.0.0
++ gtk_recent_chooser_widget_new_for_manager@Base 3.0.0
++ gtk_recent_filter_add_age@Base 3.0.0
++ gtk_recent_filter_add_application@Base 3.0.0
++ gtk_recent_filter_add_custom@Base 3.0.0
++ gtk_recent_filter_add_group@Base 3.0.0
++ gtk_recent_filter_add_mime_type@Base 3.0.0
++ gtk_recent_filter_add_pattern@Base 3.0.0
++ gtk_recent_filter_add_pixbuf_formats@Base 3.0.0
++ gtk_recent_filter_filter@Base 3.0.0
++ gtk_recent_filter_flags_get_type@Base 3.0.0
++ gtk_recent_filter_get_name@Base 3.0.0
++ gtk_recent_filter_get_needed@Base 3.0.0
++ gtk_recent_filter_get_type@Base 3.0.0
++ gtk_recent_filter_new@Base 3.0.0
++ gtk_recent_filter_set_name@Base 3.0.0
++ gtk_recent_info_create_app_info@Base 3.0.0
++ gtk_recent_info_exists@Base 3.0.0
++ gtk_recent_info_get_added@Base 3.0.0
++ gtk_recent_info_get_age@Base 3.0.0
++ gtk_recent_info_get_application_info@Base 3.0.0
++ gtk_recent_info_get_applications@Base 3.0.0
++ gtk_recent_info_get_description@Base 3.0.0
++ gtk_recent_info_get_display_name@Base 3.0.0
++ gtk_recent_info_get_gicon@Base 3.0.0
++ gtk_recent_info_get_groups@Base 3.0.0
++ gtk_recent_info_get_icon@Base 3.0.0
++ gtk_recent_info_get_mime_type@Base 3.0.0
++ gtk_recent_info_get_modified@Base 3.0.0
++ gtk_recent_info_get_private_hint@Base 3.0.0
++ gtk_recent_info_get_short_name@Base 3.0.0
++ gtk_recent_info_get_type@Base 3.0.0
++ gtk_recent_info_get_uri@Base 3.0.0
++ gtk_recent_info_get_uri_display@Base 3.0.0
++ gtk_recent_info_get_visited@Base 3.0.0
++ gtk_recent_info_has_application@Base 3.0.0
++ gtk_recent_info_has_group@Base 3.0.0
++ gtk_recent_info_is_local@Base 3.0.0
++ gtk_recent_info_last_application@Base 3.0.0
++ gtk_recent_info_match@Base 3.0.0
++ gtk_recent_info_ref@Base 3.0.0
++ gtk_recent_info_unref@Base 3.0.0
++ gtk_recent_manager_add_full@Base 3.0.0
++ gtk_recent_manager_add_item@Base 3.0.0
++ gtk_recent_manager_error_get_type@Base 3.0.0
++ gtk_recent_manager_error_quark@Base 3.0.0
++ gtk_recent_manager_get_default@Base 3.0.0
++ gtk_recent_manager_get_items@Base 3.0.0
++ gtk_recent_manager_get_type@Base 3.0.0
++ gtk_recent_manager_has_item@Base 3.0.0
++ gtk_recent_manager_lookup_item@Base 3.0.0
++ gtk_recent_manager_move_item@Base 3.0.0
++ gtk_recent_manager_new@Base 3.0.0
++ gtk_recent_manager_purge_items@Base 3.0.0
++ gtk_recent_manager_remove_item@Base 3.0.0
++ gtk_recent_sort_type_get_type@Base 3.0.0
++ gtk_region_flags_get_type@Base 3.0.0
++ gtk_relief_style_get_type@Base 3.0.0
++ gtk_render_activity@Base 3.0.0
++ gtk_render_arrow@Base 3.0.0
++ gtk_render_background@Base 3.0.0
++ gtk_render_background_get_clip@Base 3.19.12
++ gtk_render_check@Base 3.0.0
++ gtk_render_expander@Base 3.0.0
++ gtk_render_extension@Base 3.0.0
++ gtk_render_focus@Base 3.0.0
++ gtk_render_frame@Base 3.0.0
++ gtk_render_frame_gap@Base 3.0.0
++ gtk_render_handle@Base 3.0.0
++ gtk_render_icon@Base 3.1.6
++ gtk_render_icon_pixbuf@Base 3.0.0
++ gtk_render_icon_surface@Base 3.9.10
++ gtk_render_insertion_cursor@Base 3.3.16
++ gtk_render_layout@Base 3.0.0
++ gtk_render_line@Base 3.0.0
++ gtk_render_option@Base 3.0.0
++ gtk_render_slider@Base 3.0.0
++ gtk_renderer_cell_accessible_get_type@Base 3.7.10
++ gtk_renderer_cell_accessible_new@Base 3.7.10
++ gtk_requisition_copy@Base 3.0.0
++ gtk_requisition_free@Base 3.0.0
++ gtk_requisition_get_type@Base 3.0.0
++ gtk_requisition_new@Base 3.0.0
++ gtk_resize_mode_get_type@Base 3.0.0
++ gtk_response_type_get_type@Base 3.0.0
++ gtk_revealer_get_child_revealed@Base 3.9.10
++ gtk_revealer_get_reveal_child@Base 3.9.10
++ gtk_revealer_get_transition_duration@Base 3.9.10
++ gtk_revealer_get_transition_type@Base 3.9.10
++ gtk_revealer_get_type@Base 3.9.10
++ gtk_revealer_new@Base 3.9.10
++ gtk_revealer_set_reveal_child@Base 3.9.10
++ gtk_revealer_set_transition_duration@Base 3.9.10
++ gtk_revealer_set_transition_type@Base 3.9.10
++ gtk_revealer_transition_type_get_type@Base 3.9.10
++ gtk_rgb_to_hsv@Base 3.0.0
++ gtk_scale_accessible_get_type@Base 3.7.10
++ gtk_scale_add_mark@Base 3.0.0
++ gtk_scale_button_accessible_get_type@Base 3.7.10
++ gtk_scale_button_get_adjustment@Base 3.0.0
++ gtk_scale_button_get_minus_button@Base 3.0.0
++ gtk_scale_button_get_plus_button@Base 3.0.0
++ gtk_scale_button_get_popup@Base 3.0.0
++ gtk_scale_button_get_type@Base 3.0.0
++ gtk_scale_button_get_value@Base 3.0.0
++ gtk_scale_button_new@Base 3.0.0
++ gtk_scale_button_set_adjustment@Base 3.0.0
++ gtk_scale_button_set_icons@Base 3.0.0
++ gtk_scale_button_set_value@Base 3.0.0
++ gtk_scale_clear_marks@Base 3.0.0
++ gtk_scale_get_digits@Base 3.0.0
++ gtk_scale_get_draw_value@Base 3.0.0
++ gtk_scale_get_has_origin@Base 3.3.16
++ gtk_scale_get_layout@Base 3.0.0
++ gtk_scale_get_layout_offsets@Base 3.0.0
++ gtk_scale_get_type@Base 3.0.0
++ gtk_scale_get_value_pos@Base 3.0.0
++ gtk_scale_new@Base 3.0.0
++ gtk_scale_new_with_range@Base 3.0.0
++ gtk_scale_set_digits@Base 3.0.0
++ gtk_scale_set_draw_value@Base 3.0.0
++ gtk_scale_set_has_origin@Base 3.3.16
++ gtk_scale_set_value_pos@Base 3.0.0
++ gtk_scroll_step_get_type@Base 3.0.0
++ gtk_scroll_type_get_type@Base 3.0.0
++ gtk_scrollable_get_border@Base 3.16.2
++ gtk_scrollable_get_hadjustment@Base 3.0.0
++ gtk_scrollable_get_hscroll_policy@Base 3.0.0
++ gtk_scrollable_get_type@Base 3.0.0
++ gtk_scrollable_get_vadjustment@Base 3.0.0
++ gtk_scrollable_get_vscroll_policy@Base 3.0.0
++ gtk_scrollable_policy_get_type@Base 3.0.0
++ gtk_scrollable_set_hadjustment@Base 3.0.0
++ gtk_scrollable_set_hscroll_policy@Base 3.0.0
++ gtk_scrollable_set_vadjustment@Base 3.0.0
++ gtk_scrollable_set_vscroll_policy@Base 3.0.0
++ gtk_scrollbar_get_type@Base 3.0.0
++ gtk_scrollbar_new@Base 3.0.0
++ gtk_scrolled_window_accessible_get_type@Base 3.7.10
++ gtk_scrolled_window_add_with_viewport@Base 3.0.0
++ gtk_scrolled_window_get_capture_button_press@Base 3.3.18
++ gtk_scrolled_window_get_hadjustment@Base 3.0.0
++ gtk_scrolled_window_get_hscrollbar@Base 3.0.0
++ gtk_scrolled_window_get_kinetic_scrolling@Base 3.3.18
++ gtk_scrolled_window_get_max_content_height@Base 3.21.4
++ gtk_scrolled_window_get_max_content_width@Base 3.21.4
++ gtk_scrolled_window_get_min_content_height@Base 3.0.0
++ gtk_scrolled_window_get_min_content_width@Base 3.0.0
++ gtk_scrolled_window_get_overlay_scrolling@Base 3.16.2
++ gtk_scrolled_window_get_placement@Base 3.0.0
++ gtk_scrolled_window_get_policy@Base 3.0.0
++ gtk_scrolled_window_get_propagate_natural_height@Base 3.21.6
++ gtk_scrolled_window_get_propagate_natural_width@Base 3.21.6
++ gtk_scrolled_window_get_shadow_type@Base 3.0.0
++ gtk_scrolled_window_get_type@Base 3.0.0
++ gtk_scrolled_window_get_vadjustment@Base 3.0.0
++ gtk_scrolled_window_get_vscrollbar@Base 3.0.0
++ gtk_scrolled_window_new@Base 3.0.0
++ gtk_scrolled_window_set_capture_button_press@Base 3.3.18
++ gtk_scrolled_window_set_hadjustment@Base 3.0.0
++ gtk_scrolled_window_set_kinetic_scrolling@Base 3.3.18
++ gtk_scrolled_window_set_max_content_height@Base 3.21.4
++ gtk_scrolled_window_set_max_content_width@Base 3.21.4
++ gtk_scrolled_window_set_min_content_height@Base 3.0.0
++ gtk_scrolled_window_set_min_content_width@Base 3.0.0
++ gtk_scrolled_window_set_overlay_scrolling@Base 3.16.2
++ gtk_scrolled_window_set_placement@Base 3.0.0
++ gtk_scrolled_window_set_policy@Base 3.0.0
++ gtk_scrolled_window_set_propagate_natural_height@Base 3.21.6
++ gtk_scrolled_window_set_propagate_natural_width@Base 3.21.6
++ gtk_scrolled_window_set_shadow_type@Base 3.0.0
++ gtk_scrolled_window_set_vadjustment@Base 3.0.0
++ gtk_scrolled_window_unset_placement@Base 3.0.0
++ gtk_search_bar_connect_entry@Base 3.9.10
++ gtk_search_bar_get_search_mode@Base 3.9.10
++ gtk_search_bar_get_show_close_button@Base 3.9.10
++ gtk_search_bar_get_type@Base 3.9.10
++ gtk_search_bar_handle_event@Base 3.9.10
++ gtk_search_bar_new@Base 3.9.10
++ gtk_search_bar_set_search_mode@Base 3.9.10
++ gtk_search_bar_set_show_close_button@Base 3.9.10
++ gtk_search_entry_get_type@Base 3.5.6
++ gtk_search_entry_handle_event@Base 3.16.2
++ gtk_search_entry_new@Base 3.5.6
++ gtk_selection_add_target@Base 3.0.0
++ gtk_selection_add_targets@Base 3.0.0
++ gtk_selection_clear_targets@Base 3.0.0
++ gtk_selection_convert@Base 3.0.0
++ gtk_selection_data_copy@Base 3.0.0
++ gtk_selection_data_free@Base 3.0.0
++ gtk_selection_data_get_data@Base 3.0.0
++ gtk_selection_data_get_data_type@Base 3.0.0
++ gtk_selection_data_get_data_with_length@Base 3.0.0
++ gtk_selection_data_get_display@Base 3.0.0
++ gtk_selection_data_get_format@Base 3.0.0
++ gtk_selection_data_get_length@Base 3.0.0
++ gtk_selection_data_get_pixbuf@Base 3.0.0
++ gtk_selection_data_get_selection@Base 3.0.0
++ gtk_selection_data_get_target@Base 3.0.0
++ gtk_selection_data_get_targets@Base 3.0.0
++ gtk_selection_data_get_text@Base 3.0.0
++ gtk_selection_data_get_type@Base 3.0.0
++ gtk_selection_data_get_uris@Base 3.0.0
++ gtk_selection_data_set@Base 3.0.0
++ gtk_selection_data_set_pixbuf@Base 3.0.0
++ gtk_selection_data_set_text@Base 3.0.0
++ gtk_selection_data_set_uris@Base 3.0.0
++ gtk_selection_data_targets_include_image@Base 3.0.0
++ gtk_selection_data_targets_include_rich_text@Base 3.0.0
++ gtk_selection_data_targets_include_text@Base 3.0.0
++ gtk_selection_data_targets_include_uri@Base 3.0.0
++ gtk_selection_mode_get_type@Base 3.0.0
++ gtk_selection_owner_set@Base 3.0.0
++ gtk_selection_owner_set_for_display@Base 3.0.0
++ gtk_selection_remove_all@Base 3.0.0
++ gtk_sensitivity_type_get_type@Base 3.0.0
++ gtk_separator_get_type@Base 3.0.0
++ gtk_separator_menu_item_get_type@Base 3.0.0
++ gtk_separator_menu_item_new@Base 3.0.0
++ gtk_separator_new@Base 3.0.0
++ gtk_separator_tool_item_get_draw@Base 3.0.0
++ gtk_separator_tool_item_get_type@Base 3.0.0
++ gtk_separator_tool_item_new@Base 3.0.0
++ gtk_separator_tool_item_set_draw@Base 3.0.0
++ gtk_set_debug_flags@Base 3.0.0
++ gtk_settings_get_default@Base 3.0.0
++ gtk_settings_get_for_screen@Base 3.0.0
++ gtk_settings_get_type@Base 3.0.0
++ gtk_settings_install_property@Base 3.0.0
++ gtk_settings_install_property_parser@Base 3.0.0
++ gtk_settings_reset_property@Base 3.19.12
++ gtk_settings_set_double_property@Base 3.0.0
++ gtk_settings_set_long_property@Base 3.0.0
++ gtk_settings_set_property_value@Base 3.0.0
++ gtk_settings_set_string_property@Base 3.0.0
++ gtk_shadow_type_get_type@Base 3.0.0
++ gtk_shortcut_label_get_accelerator@Base 3.21.5
++ gtk_shortcut_label_get_disabled_text@Base 3.21.5
++ gtk_shortcut_label_get_type@Base 3.21.5
++ gtk_shortcut_label_new@Base 3.21.5
++ gtk_shortcut_label_set_accelerator@Base 3.21.5
++ gtk_shortcut_label_set_disabled_text@Base 3.21.5
++ gtk_shortcut_type_get_type@Base 3.19.12
++ gtk_shortcuts_group_get_type@Base 3.19.12
++ gtk_shortcuts_section_get_type@Base 3.19.12
++ gtk_shortcuts_shortcut_get_type@Base 3.19.12
++ gtk_shortcuts_window_get_type@Base 3.19.12
++ gtk_show_about_dialog@Base 3.0.0
++ gtk_show_uri@Base 3.0.0
++ gtk_show_uri_on_window@Base 3.21.4
++ gtk_size_group_add_widget@Base 3.0.0
++ gtk_size_group_get_ignore_hidden@Base 3.0.0
++ gtk_size_group_get_mode@Base 3.0.0
++ gtk_size_group_get_type@Base 3.0.0
++ gtk_size_group_get_widgets@Base 3.0.0
++ gtk_size_group_mode_get_type@Base 3.0.0
++ gtk_size_group_new@Base 3.0.0
++ gtk_size_group_remove_widget@Base 3.0.0
++ gtk_size_group_set_ignore_hidden@Base 3.0.0
++ gtk_size_group_set_mode@Base 3.0.0
++ gtk_size_request_mode_get_type@Base 3.0.0
++ gtk_socket_add_id@Base 3.0.0
++ gtk_socket_get_id@Base 3.0.0
++ gtk_socket_get_plug_window@Base 3.0.0
++ gtk_socket_get_type@Base 3.0.0
++ gtk_socket_new@Base 3.0.0
++ gtk_sort_type_get_type@Base 3.0.0
++ gtk_spin_button_accessible_get_type@Base 3.7.10
++ gtk_spin_button_configure@Base 3.0.0
++ gtk_spin_button_get_adjustment@Base 3.0.0
++ gtk_spin_button_get_digits@Base 3.0.0
++ gtk_spin_button_get_increments@Base 3.0.0
++ gtk_spin_button_get_numeric@Base 3.0.0
++ gtk_spin_button_get_range@Base 3.0.0
++ gtk_spin_button_get_snap_to_ticks@Base 3.0.0
++ gtk_spin_button_get_type@Base 3.0.0
++ gtk_spin_button_get_update_policy@Base 3.0.0
++ gtk_spin_button_get_value@Base 3.0.0
++ gtk_spin_button_get_value_as_int@Base 3.0.0
++ gtk_spin_button_get_wrap@Base 3.0.0
++ gtk_spin_button_new@Base 3.0.0
++ gtk_spin_button_new_with_range@Base 3.0.0
++ gtk_spin_button_set_adjustment@Base 3.0.0
++ gtk_spin_button_set_digits@Base 3.0.0
++ gtk_spin_button_set_increments@Base 3.0.0
++ gtk_spin_button_set_numeric@Base 3.0.0
++ gtk_spin_button_set_range@Base 3.0.0
++ gtk_spin_button_set_snap_to_ticks@Base 3.0.0
++ gtk_spin_button_set_update_policy@Base 3.0.0
++ gtk_spin_button_set_value@Base 3.0.0
++ gtk_spin_button_set_wrap@Base 3.0.0
++ gtk_spin_button_spin@Base 3.0.0
++ gtk_spin_button_update@Base 3.0.0
++ gtk_spin_button_update_policy_get_type@Base 3.0.0
++ gtk_spin_type_get_type@Base 3.0.0
++ gtk_spinner_accessible_get_type@Base 3.7.10
++ gtk_spinner_get_type@Base 3.0.0
++ gtk_spinner_new@Base 3.0.0
++ gtk_spinner_start@Base 3.0.0
++ gtk_spinner_stop@Base 3.0.0
++ gtk_stack_accessible_get_type@Base 3.21.4
++ gtk_stack_add_named@Base 3.9.10
++ gtk_stack_add_titled@Base 3.9.10
++ gtk_stack_get_child_by_name@Base 3.11.5
++ gtk_stack_get_hhomogeneous@Base 3.16.2
++ gtk_stack_get_homogeneous@Base 3.9.10
++ gtk_stack_get_interpolate_size@Base 3.17.9
++ gtk_stack_get_transition_duration@Base 3.9.10
++ gtk_stack_get_transition_running@Base 3.11.5
++ gtk_stack_get_transition_type@Base 3.9.10
++ gtk_stack_get_type@Base 3.9.10
++ gtk_stack_get_vhomogeneous@Base 3.16.2
++ gtk_stack_get_visible_child@Base 3.9.10
++ gtk_stack_get_visible_child_name@Base 3.9.10
++ gtk_stack_new@Base 3.9.10
++ gtk_stack_set_hhomogeneous@Base 3.16.2
++ gtk_stack_set_homogeneous@Base 3.9.10
++ gtk_stack_set_interpolate_size@Base 3.17.9
++ gtk_stack_set_transition_duration@Base 3.9.10
++ gtk_stack_set_transition_type@Base 3.9.10
++ gtk_stack_set_vhomogeneous@Base 3.16.2
++ gtk_stack_set_visible_child@Base 3.9.10
++ gtk_stack_set_visible_child_full@Base 3.9.10
++ gtk_stack_set_visible_child_name@Base 3.9.10
++ gtk_stack_sidebar_get_stack@Base 3.16.2
++ gtk_stack_sidebar_get_type@Base 3.16.2
++ gtk_stack_sidebar_new@Base 3.16.2
++ gtk_stack_sidebar_set_stack@Base 3.16.2
++ gtk_stack_switcher_get_stack@Base 3.9.10
++ gtk_stack_switcher_get_type@Base 3.9.10
++ gtk_stack_switcher_new@Base 3.9.10
++ gtk_stack_switcher_set_stack@Base 3.9.10
++ gtk_stack_transition_type_get_type@Base 3.9.10
++ gtk_state_flags_get_type@Base 3.0.0
++ gtk_state_type_get_type@Base 3.0.0
++ gtk_status_icon_get_geometry@Base 3.0.0
++ gtk_status_icon_get_gicon@Base 3.0.0
++ gtk_status_icon_get_has_tooltip@Base 3.0.0
++ gtk_status_icon_get_icon_name@Base 3.0.0
++ gtk_status_icon_get_pixbuf@Base 3.0.0
++ gtk_status_icon_get_screen@Base 3.0.0
++ gtk_status_icon_get_size@Base 3.0.0
++ gtk_status_icon_get_stock@Base 3.0.0
++ gtk_status_icon_get_storage_type@Base 3.0.0
++ gtk_status_icon_get_title@Base 3.0.0
++ gtk_status_icon_get_tooltip_markup@Base 3.0.0
++ gtk_status_icon_get_tooltip_text@Base 3.0.0
++ gtk_status_icon_get_type@Base 3.0.0
++ gtk_status_icon_get_visible@Base 3.0.0
++ gtk_status_icon_get_x11_window_id@Base 3.0.0
++ gtk_status_icon_is_embedded@Base 3.0.0
++ gtk_status_icon_new@Base 3.0.0
++ gtk_status_icon_new_from_file@Base 3.0.0
++ gtk_status_icon_new_from_gicon@Base 3.0.0
++ gtk_status_icon_new_from_icon_name@Base 3.0.0
++ gtk_status_icon_new_from_pixbuf@Base 3.0.0
++ gtk_status_icon_new_from_stock@Base 3.0.0
++ gtk_status_icon_position_menu@Base 3.0.0
++ gtk_status_icon_set_from_file@Base 3.0.0
++ gtk_status_icon_set_from_gicon@Base 3.0.0
++ gtk_status_icon_set_from_icon_name@Base 3.0.0
++ gtk_status_icon_set_from_pixbuf@Base 3.0.0
++ gtk_status_icon_set_from_stock@Base 3.0.0
++ gtk_status_icon_set_has_tooltip@Base 3.0.0
++ gtk_status_icon_set_name@Base 3.0.0
++ gtk_status_icon_set_screen@Base 3.0.0
++ gtk_status_icon_set_title@Base 3.0.0
++ gtk_status_icon_set_tooltip_markup@Base 3.0.0
++ gtk_status_icon_set_tooltip_text@Base 3.0.0
++ gtk_status_icon_set_visible@Base 3.0.0
++ gtk_statusbar_accessible_get_type@Base 3.7.10
++ gtk_statusbar_get_context_id@Base 3.0.0
++ gtk_statusbar_get_message_area@Base 3.0.0
++ gtk_statusbar_get_type@Base 3.0.0
++ gtk_statusbar_new@Base 3.0.0
++ gtk_statusbar_pop@Base 3.0.0
++ gtk_statusbar_push@Base 3.0.0
++ gtk_statusbar_remove@Base 3.0.0
++ gtk_statusbar_remove_all@Base 3.0.0
++ gtk_stock_add@Base 3.0.0
++ gtk_stock_add_static@Base 3.0.0
++ gtk_stock_item_copy@Base 3.0.0
++ gtk_stock_item_free@Base 3.0.0
++ gtk_stock_list_ids@Base 3.0.0
++ gtk_stock_lookup@Base 3.0.0
++ gtk_stock_set_translate_func@Base 3.0.0
++ gtk_style_apply_default_background@Base 3.0.0
++ gtk_style_attach@Base 3.0.0
++ gtk_style_context_add_class@Base 3.0.0
++ gtk_style_context_add_provider@Base 3.0.0
++ gtk_style_context_add_provider_for_screen@Base 3.0.0
++ gtk_style_context_add_region@Base 3.0.0
++ gtk_style_context_cancel_animations@Base 3.0.0
++ gtk_style_context_get@Base 3.0.0
++ gtk_style_context_get_background_color@Base 3.0.0
++ gtk_style_context_get_border@Base 3.0.0
++ gtk_style_context_get_border_color@Base 3.0.0
++ gtk_style_context_get_color@Base 3.0.0
++ gtk_style_context_get_direction@Base 3.0.0
++ gtk_style_context_get_font@Base 3.0.0
++ gtk_style_context_get_frame_clock@Base 3.7.10
++ gtk_style_context_get_junction_sides@Base 3.0.0
++ gtk_style_context_get_margin@Base 3.0.0
++ gtk_style_context_get_padding@Base 3.0.0
++ gtk_style_context_get_parent@Base 3.3.16
++ gtk_style_context_get_path@Base 3.0.0
++ gtk_style_context_get_property@Base 3.0.0
++ gtk_style_context_get_scale@Base 3.9.10
++ gtk_style_context_get_screen@Base 3.0.0
++ gtk_style_context_get_section@Base 3.3.16
++ gtk_style_context_get_state@Base 3.0.0
++ gtk_style_context_get_style@Base 3.0.0
++ gtk_style_context_get_style_property@Base 3.0.0
++ gtk_style_context_get_style_valist@Base 3.0.0
++ gtk_style_context_get_type@Base 3.0.0
++ gtk_style_context_get_valist@Base 3.0.0
++ gtk_style_context_has_class@Base 3.0.0
++ gtk_style_context_has_region@Base 3.0.0
++ gtk_style_context_invalidate@Base 3.0.0
++ gtk_style_context_list_classes@Base 3.0.0
++ gtk_style_context_list_regions@Base 3.0.0
++ gtk_style_context_lookup_color@Base 3.0.0
++ gtk_style_context_lookup_icon_set@Base 3.0.0
++ gtk_style_context_new@Base 3.0.0
++ gtk_style_context_notify_state_change@Base 3.0.0
++ gtk_style_context_pop_animatable_region@Base 3.0.0
++ gtk_style_context_print_flags_get_type@Base 3.19.12
++ gtk_style_context_push_animatable_region@Base 3.0.0
++ gtk_style_context_remove_class@Base 3.0.0
++ gtk_style_context_remove_provider@Base 3.0.0
++ gtk_style_context_remove_provider_for_screen@Base 3.0.0
++ gtk_style_context_remove_region@Base 3.0.0
++ gtk_style_context_reset_widgets@Base 3.0.0
++ gtk_style_context_restore@Base 3.0.0
++ gtk_style_context_save@Base 3.0.0
++ gtk_style_context_scroll_animations@Base 3.0.0
++ gtk_style_context_set_background@Base 3.0.0
++ gtk_style_context_set_direction@Base 3.0.0
++ gtk_style_context_set_frame_clock@Base 3.7.10
++ gtk_style_context_set_junction_sides@Base 3.0.0
++ gtk_style_context_set_parent@Base 3.3.16
++ gtk_style_context_set_path@Base 3.0.0
++ gtk_style_context_set_scale@Base 3.9.10
++ gtk_style_context_set_screen@Base 3.0.0
++ gtk_style_context_set_state@Base 3.0.0
++ gtk_style_context_state_is_running@Base 3.0.0
++ gtk_style_context_to_string@Base 3.19.12
++ gtk_style_copy@Base 3.0.0
++ gtk_style_detach@Base 3.0.0
++ gtk_style_get@Base 3.0.0
++ gtk_style_get_style_property@Base 3.0.0
++ gtk_style_get_type@Base 3.0.0
++ gtk_style_get_valist@Base 3.0.0
++ gtk_style_has_context@Base 3.0.0
++ gtk_style_lookup_color@Base 3.0.0
++ gtk_style_lookup_icon_set@Base 3.0.0
++ gtk_style_new@Base 3.0.0
++ gtk_style_properties_clear@Base 3.0.0
++ gtk_style_properties_get@Base 3.0.0
++ gtk_style_properties_get_property@Base 3.0.0
++ gtk_style_properties_get_type@Base 3.0.0
++ gtk_style_properties_get_valist@Base 3.0.0
++ gtk_style_properties_lookup_color@Base 3.0.0
++ gtk_style_properties_lookup_property@Base 3.0.0
++ gtk_style_properties_map_color@Base 3.0.0
++ gtk_style_properties_merge@Base 3.0.0
++ gtk_style_properties_new@Base 3.0.0
++ gtk_style_properties_register_property@Base 3.0.0
++ gtk_style_properties_set@Base 3.0.0
++ gtk_style_properties_set_property@Base 3.0.0
++ gtk_style_properties_set_valist@Base 3.0.0
++ gtk_style_properties_unset_property@Base 3.0.0
++ gtk_style_provider_get_icon_factory@Base 3.0.0
++ gtk_style_provider_get_style@Base 3.0.0
++ gtk_style_provider_get_style_property@Base 3.0.0
++ gtk_style_provider_get_type@Base 3.0.0
++ gtk_style_render_icon@Base 3.0.0
++ gtk_style_set_background@Base 3.0.0
++ gtk_switch_accessible_get_type@Base 3.7.10
++ gtk_switch_get_active@Base 3.0.0
++ gtk_switch_get_state@Base 3.13.7
++ gtk_switch_get_type@Base 3.0.0
++ gtk_switch_new@Base 3.0.0
++ gtk_switch_set_active@Base 3.0.0
++ gtk_switch_set_state@Base 3.13.7
++ gtk_symbolic_color_get_type@Base 3.0.0
++ gtk_symbolic_color_new_alpha@Base 3.0.0
++ gtk_symbolic_color_new_literal@Base 3.0.0
++ gtk_symbolic_color_new_mix@Base 3.0.0
++ gtk_symbolic_color_new_name@Base 3.0.0
++ gtk_symbolic_color_new_shade@Base 3.0.0
++ gtk_symbolic_color_new_win32@Base 3.3.16
++ gtk_symbolic_color_ref@Base 3.0.0
++ gtk_symbolic_color_resolve@Base 3.0.0
++ gtk_symbolic_color_to_string@Base 3.1.6
++ gtk_symbolic_color_unref@Base 3.0.0
++ gtk_table_attach@Base 3.0.0
++ gtk_table_attach_defaults@Base 3.0.0
++ gtk_table_get_col_spacing@Base 3.0.0
++ gtk_table_get_default_col_spacing@Base 3.0.0
++ gtk_table_get_default_row_spacing@Base 3.0.0
++ gtk_table_get_homogeneous@Base 3.0.0
++ gtk_table_get_row_spacing@Base 3.0.0
++ gtk_table_get_size@Base 3.0.0
++ gtk_table_get_type@Base 3.0.0
++ gtk_table_new@Base 3.0.0
++ gtk_table_resize@Base 3.0.0
++ gtk_table_set_col_spacing@Base 3.0.0
++ gtk_table_set_col_spacings@Base 3.0.0
++ gtk_table_set_homogeneous@Base 3.0.0
++ gtk_table_set_row_spacing@Base 3.0.0
++ gtk_table_set_row_spacings@Base 3.0.0
++ gtk_target_entry_copy@Base 3.0.0
++ gtk_target_entry_free@Base 3.0.0
++ gtk_target_entry_get_type@Base 3.0.0
++ gtk_target_entry_new@Base 3.0.0
++ gtk_target_flags_get_type@Base 3.0.0
++ gtk_target_list_add@Base 3.0.0
++ gtk_target_list_add_image_targets@Base 3.0.0
++ gtk_target_list_add_rich_text_targets@Base 3.0.0
++ gtk_target_list_add_table@Base 3.0.0
++ gtk_target_list_add_text_targets@Base 3.0.0
++ gtk_target_list_add_uri_targets@Base 3.0.0
++ gtk_target_list_find@Base 3.0.0
++ gtk_target_list_get_type@Base 3.0.0
++ gtk_target_list_new@Base 3.0.0
++ gtk_target_list_ref@Base 3.0.0
++ gtk_target_list_remove@Base 3.0.0
++ gtk_target_list_unref@Base 3.0.0
++ gtk_target_table_free@Base 3.0.0
++ gtk_target_table_new_from_list@Base 3.0.0
++ gtk_targets_include_image@Base 3.0.0
++ gtk_targets_include_rich_text@Base 3.0.0
++ gtk_targets_include_text@Base 3.0.0
++ gtk_targets_include_uri@Base 3.0.0
++ gtk_tearoff_menu_item_get_type@Base 3.0.0
++ gtk_tearoff_menu_item_new@Base 3.0.0
++ gtk_test_create_simple_window@Base 3.0.0
++ gtk_test_create_widget@Base 3.0.0
++ gtk_test_display_button_window@Base 3.0.0
++ gtk_test_find_label@Base 3.0.0
++ gtk_test_find_sibling@Base 3.0.0
++ gtk_test_find_widget@Base 3.0.0
++ gtk_test_init@Base 3.0.0
++ gtk_test_list_all_types@Base 3.0.0
++ gtk_test_register_all_types@Base 3.0.0
++ gtk_test_slider_get_value@Base 3.0.0
++ gtk_test_slider_set_perc@Base 3.0.0
++ gtk_test_spin_button_click@Base 3.0.0
++ gtk_test_text_get@Base 3.0.0
++ gtk_test_text_set@Base 3.0.0
++ gtk_test_widget_click@Base 3.0.0
++ gtk_test_widget_send_key@Base 3.0.0
++ gtk_test_widget_wait_for_draw@Base 3.9.10
++ gtk_text_anchored_child_set_layout@Base 3.0.0
++ gtk_text_attributes_copy@Base 3.0.0
++ gtk_text_attributes_copy_values@Base 3.0.0
++ gtk_text_attributes_get_type@Base 3.0.0
++ gtk_text_attributes_new@Base 3.0.0
++ gtk_text_attributes_ref@Base 3.0.0
++ gtk_text_attributes_unref@Base 3.0.0
++ gtk_text_buffer_add_mark@Base 3.0.0
++ gtk_text_buffer_add_selection_clipboard@Base 3.0.0
++ gtk_text_buffer_apply_tag@Base 3.0.0
++ gtk_text_buffer_apply_tag_by_name@Base 3.0.0
++ gtk_text_buffer_backspace@Base 3.0.0
++ gtk_text_buffer_begin_user_action@Base 3.0.0
++ gtk_text_buffer_copy_clipboard@Base 3.0.0
++ gtk_text_buffer_create_child_anchor@Base 3.0.0
++ gtk_text_buffer_create_mark@Base 3.0.0
++ gtk_text_buffer_create_tag@Base 3.0.0
++ gtk_text_buffer_cut_clipboard@Base 3.0.0
++ gtk_text_buffer_delete@Base 3.0.0
++ gtk_text_buffer_delete_interactive@Base 3.0.0
++ gtk_text_buffer_delete_mark@Base 3.0.0
++ gtk_text_buffer_delete_mark_by_name@Base 3.0.0
++ gtk_text_buffer_delete_selection@Base 3.0.0
++ gtk_text_buffer_deserialize@Base 3.0.0
++ gtk_text_buffer_deserialize_get_can_create_tags@Base 3.0.0
++ gtk_text_buffer_deserialize_set_can_create_tags@Base 3.0.0
++ gtk_text_buffer_end_user_action@Base 3.0.0
++ gtk_text_buffer_get_bounds@Base 3.0.0
++ gtk_text_buffer_get_char_count@Base 3.0.0
++ gtk_text_buffer_get_copy_target_list@Base 3.0.0
++ gtk_text_buffer_get_deserialize_formats@Base 3.0.0
++ gtk_text_buffer_get_end_iter@Base 3.0.0
++ gtk_text_buffer_get_has_selection@Base 3.0.0
++ gtk_text_buffer_get_insert@Base 3.0.0
++ gtk_text_buffer_get_iter_at_child_anchor@Base 3.0.0
++ gtk_text_buffer_get_iter_at_line@Base 3.0.0
++ gtk_text_buffer_get_iter_at_line_index@Base 3.0.0
++ gtk_text_buffer_get_iter_at_line_offset@Base 3.0.0
++ gtk_text_buffer_get_iter_at_mark@Base 3.0.0
++ gtk_text_buffer_get_iter_at_offset@Base 3.0.0
++ gtk_text_buffer_get_line_count@Base 3.0.0
++ gtk_text_buffer_get_mark@Base 3.0.0
++ gtk_text_buffer_get_modified@Base 3.0.0
++ gtk_text_buffer_get_paste_target_list@Base 3.0.0
++ gtk_text_buffer_get_selection_bound@Base 3.0.0
++ gtk_text_buffer_get_selection_bounds@Base 3.0.0
++ gtk_text_buffer_get_serialize_formats@Base 3.0.0
++ gtk_text_buffer_get_slice@Base 3.0.0
++ gtk_text_buffer_get_start_iter@Base 3.0.0
++ gtk_text_buffer_get_tag_table@Base 3.0.0
++ gtk_text_buffer_get_text@Base 3.0.0
++ gtk_text_buffer_get_type@Base 3.0.0
++ gtk_text_buffer_insert@Base 3.0.0
++ gtk_text_buffer_insert_at_cursor@Base 3.0.0
++ gtk_text_buffer_insert_child_anchor@Base 3.0.0
++ gtk_text_buffer_insert_interactive@Base 3.0.0
++ gtk_text_buffer_insert_interactive_at_cursor@Base 3.0.0
++ gtk_text_buffer_insert_markup@Base 3.16.2
++ gtk_text_buffer_insert_pixbuf@Base 3.0.0
++ gtk_text_buffer_insert_range@Base 3.0.0
++ gtk_text_buffer_insert_range_interactive@Base 3.0.0
++ gtk_text_buffer_insert_with_tags@Base 3.0.0
++ gtk_text_buffer_insert_with_tags_by_name@Base 3.0.0
++ gtk_text_buffer_move_mark@Base 3.0.0
++ gtk_text_buffer_move_mark_by_name@Base 3.0.0
++ gtk_text_buffer_new@Base 3.0.0
++ gtk_text_buffer_paste_clipboard@Base 3.0.0
++ gtk_text_buffer_place_cursor@Base 3.0.0
++ gtk_text_buffer_register_deserialize_format@Base 3.0.0
++ gtk_text_buffer_register_deserialize_tagset@Base 3.0.0
++ gtk_text_buffer_register_serialize_format@Base 3.0.0
++ gtk_text_buffer_register_serialize_tagset@Base 3.0.0
++ gtk_text_buffer_remove_all_tags@Base 3.0.0
++ gtk_text_buffer_remove_selection_clipboard@Base 3.0.0
++ gtk_text_buffer_remove_tag@Base 3.0.0
++ gtk_text_buffer_remove_tag_by_name@Base 3.0.0
++ gtk_text_buffer_select_range@Base 3.0.0
++ gtk_text_buffer_serialize@Base 3.0.0
++ gtk_text_buffer_set_modified@Base 3.0.0
++ gtk_text_buffer_set_text@Base 3.0.0
++ gtk_text_buffer_target_info_get_type@Base 3.0.0
++ gtk_text_buffer_unregister_deserialize_format@Base 3.0.0
++ gtk_text_buffer_unregister_serialize_format@Base 3.0.0
++ gtk_text_byte_begins_utf8_char@Base 3.0.0
++ gtk_text_cell_accessible_get_type@Base 3.7.10
++ gtk_text_child_anchor_get_deleted@Base 3.0.0
++ gtk_text_child_anchor_get_type@Base 3.0.0
++ gtk_text_child_anchor_get_widgets@Base 3.0.0
++ gtk_text_child_anchor_new@Base 3.0.0
++ gtk_text_child_anchor_queue_resize@Base 3.0.0
++ gtk_text_child_anchor_register_child@Base 3.0.0
++ gtk_text_child_anchor_unregister_child@Base 3.0.0
++ gtk_text_direction_get_type@Base 3.0.0
++ gtk_text_extend_selection_get_type@Base 3.16.2
++ gtk_text_iter_assign@Base 3.2.1
++ gtk_text_iter_backward_char@Base 3.0.0
++ gtk_text_iter_backward_chars@Base 3.0.0
++ gtk_text_iter_backward_cursor_position@Base 3.0.0
++ gtk_text_iter_backward_cursor_positions@Base 3.0.0
++ gtk_text_iter_backward_find_char@Base 3.0.0
++ gtk_text_iter_backward_line@Base 3.0.0
++ gtk_text_iter_backward_lines@Base 3.0.0
++ gtk_text_iter_backward_search@Base 3.0.0
++ gtk_text_iter_backward_sentence_start@Base 3.0.0
++ gtk_text_iter_backward_sentence_starts@Base 3.0.0
++ gtk_text_iter_backward_to_tag_toggle@Base 3.0.0
++ gtk_text_iter_backward_visible_cursor_position@Base 3.0.0
++ gtk_text_iter_backward_visible_cursor_positions@Base 3.0.0
++ gtk_text_iter_backward_visible_line@Base 3.0.0
++ gtk_text_iter_backward_visible_lines@Base 3.0.0
++ gtk_text_iter_backward_visible_word_start@Base 3.0.0
++ gtk_text_iter_backward_visible_word_starts@Base 3.0.0
++ gtk_text_iter_backward_word_start@Base 3.0.0
++ gtk_text_iter_backward_word_starts@Base 3.0.0
++ gtk_text_iter_begins_tag@Base 3.0.0
++ gtk_text_iter_can_insert@Base 3.0.0
++ gtk_text_iter_compare@Base 3.0.0
++ gtk_text_iter_copy@Base 3.0.0
++ gtk_text_iter_editable@Base 3.0.0
++ gtk_text_iter_ends_line@Base 3.0.0
++ gtk_text_iter_ends_sentence@Base 3.0.0
++ gtk_text_iter_ends_tag@Base 3.0.0
++ gtk_text_iter_ends_word@Base 3.0.0
++ gtk_text_iter_equal@Base 3.0.0
++ gtk_text_iter_forward_char@Base 3.0.0
++ gtk_text_iter_forward_chars@Base 3.0.0
++ gtk_text_iter_forward_cursor_position@Base 3.0.0
++ gtk_text_iter_forward_cursor_positions@Base 3.0.0
++ gtk_text_iter_forward_find_char@Base 3.0.0
++ gtk_text_iter_forward_line@Base 3.0.0
++ gtk_text_iter_forward_lines@Base 3.0.0
++ gtk_text_iter_forward_search@Base 3.0.0
++ gtk_text_iter_forward_sentence_end@Base 3.0.0
++ gtk_text_iter_forward_sentence_ends@Base 3.0.0
++ gtk_text_iter_forward_to_end@Base 3.0.0
++ gtk_text_iter_forward_to_line_end@Base 3.0.0
++ gtk_text_iter_forward_to_tag_toggle@Base 3.0.0
++ gtk_text_iter_forward_visible_cursor_position@Base 3.0.0
++ gtk_text_iter_forward_visible_cursor_positions@Base 3.0.0
++ gtk_text_iter_forward_visible_line@Base 3.0.0
++ gtk_text_iter_forward_visible_lines@Base 3.0.0
++ gtk_text_iter_forward_visible_word_end@Base 3.0.0
++ gtk_text_iter_forward_visible_word_ends@Base 3.0.0
++ gtk_text_iter_forward_word_end@Base 3.0.0
++ gtk_text_iter_forward_word_ends@Base 3.0.0
++ gtk_text_iter_free@Base 3.0.0
++ gtk_text_iter_get_attributes@Base 3.0.0
++ gtk_text_iter_get_buffer@Base 3.0.0
++ gtk_text_iter_get_bytes_in_line@Base 3.0.0
++ gtk_text_iter_get_char@Base 3.0.0
++ gtk_text_iter_get_chars_in_line@Base 3.0.0
++ gtk_text_iter_get_child_anchor@Base 3.0.0
++ gtk_text_iter_get_language@Base 3.0.0
++ gtk_text_iter_get_line@Base 3.0.0
++ gtk_text_iter_get_line_index@Base 3.0.0
++ gtk_text_iter_get_line_offset@Base 3.0.0
++ gtk_text_iter_get_marks@Base 3.0.0
++ gtk_text_iter_get_offset@Base 3.0.0
++ gtk_text_iter_get_pixbuf@Base 3.0.0
++ gtk_text_iter_get_slice@Base 3.0.0
++ gtk_text_iter_get_tags@Base 3.0.0
++ gtk_text_iter_get_text@Base 3.0.0
++ gtk_text_iter_get_toggled_tags@Base 3.0.0
++ gtk_text_iter_get_type@Base 3.0.0
++ gtk_text_iter_get_visible_line_index@Base 3.0.0
++ gtk_text_iter_get_visible_line_offset@Base 3.0.0
++ gtk_text_iter_get_visible_slice@Base 3.0.0
++ gtk_text_iter_get_visible_text@Base 3.0.0
++ gtk_text_iter_has_tag@Base 3.0.0
++ gtk_text_iter_in_range@Base 3.0.0
++ gtk_text_iter_inside_sentence@Base 3.0.0
++ gtk_text_iter_inside_word@Base 3.0.0
++ gtk_text_iter_is_cursor_position@Base 3.0.0
++ gtk_text_iter_is_end@Base 3.0.0
++ gtk_text_iter_is_start@Base 3.0.0
++ gtk_text_iter_order@Base 3.0.0
++ gtk_text_iter_set_line@Base 3.0.0
++ gtk_text_iter_set_line_index@Base 3.0.0
++ gtk_text_iter_set_line_offset@Base 3.0.0
++ gtk_text_iter_set_offset@Base 3.0.0
++ gtk_text_iter_set_visible_line_index@Base 3.0.0
++ gtk_text_iter_set_visible_line_offset@Base 3.0.0
++ gtk_text_iter_starts_line@Base 3.0.0
++ gtk_text_iter_starts_sentence@Base 3.0.0
++ gtk_text_iter_starts_tag@Base 3.19.12
++ gtk_text_iter_starts_word@Base 3.0.0
++ gtk_text_iter_toggles_tag@Base 3.0.0
++ gtk_text_layout_changed@Base 3.0.0
++ gtk_text_layout_clamp_iter_to_vrange@Base 3.0.0
++ gtk_text_layout_cursors_changed@Base 3.0.0
++ gtk_text_layout_default_style_changed@Base 3.0.0
++ gtk_text_layout_draw@Base 3.0.0
++ gtk_text_layout_free_line_data@Base 3.0.0
++ gtk_text_layout_free_line_display@Base 3.0.0
++ gtk_text_layout_get_buffer@Base 3.0.0
++ gtk_text_layout_get_cursor_locations@Base 3.0.0
++ gtk_text_layout_get_cursor_visible@Base 3.0.0
++ gtk_text_layout_get_iter_at_line@Base 3.0.0
++ gtk_text_layout_get_iter_at_pixel@Base 3.0.0
++ gtk_text_layout_get_iter_at_position@Base 3.0.0
++ gtk_text_layout_get_iter_location@Base 3.0.0
++ gtk_text_layout_get_line_at_y@Base 3.0.0
++ gtk_text_layout_get_line_display@Base 3.0.0
++ gtk_text_layout_get_line_yrange@Base 3.0.0
++ gtk_text_layout_get_lines@Base 3.0.0
++ gtk_text_layout_get_size@Base 3.0.0
++ gtk_text_layout_get_type@Base 3.0.0
++ gtk_text_layout_invalidate@Base 3.0.0
++ gtk_text_layout_invalidate_cursors@Base 3.0.0
++ gtk_text_layout_is_valid@Base 3.0.0
++ gtk_text_layout_iter_starts_line@Base 3.0.0
++ gtk_text_layout_move_iter_to_line_end@Base 3.0.0
++ gtk_text_layout_move_iter_to_next_line@Base 3.0.0
++ gtk_text_layout_move_iter_to_previous_line@Base 3.0.0
++ gtk_text_layout_move_iter_to_x@Base 3.0.0
++ gtk_text_layout_move_iter_visually@Base 3.0.0
++ gtk_text_layout_new@Base 3.0.0
++ gtk_text_layout_set_buffer@Base 3.0.0
++ gtk_text_layout_set_contexts@Base 3.0.0
++ gtk_text_layout_set_cursor_direction@Base 3.0.0
++ gtk_text_layout_set_cursor_visible@Base 3.0.0
++ gtk_text_layout_set_default_style@Base 3.0.0
++ gtk_text_layout_set_keyboard_direction@Base 3.0.0
++ gtk_text_layout_set_overwrite_mode@Base 3.0.0
++ gtk_text_layout_set_preedit_string@Base 3.0.0
++ gtk_text_layout_set_screen_width@Base 3.0.0
++ gtk_text_layout_spew@Base 3.0.0
++ gtk_text_layout_validate@Base 3.0.0
++ gtk_text_layout_validate_yrange@Base 3.0.0
++ gtk_text_layout_wrap@Base 3.0.0
++ gtk_text_layout_wrap_loop_end@Base 3.0.0
++ gtk_text_layout_wrap_loop_start@Base 3.0.0
++ gtk_text_line_segment_split@Base 3.0.0
++ gtk_text_mark_get_buffer@Base 3.0.0
++ gtk_text_mark_get_deleted@Base 3.0.0
++ gtk_text_mark_get_left_gravity@Base 3.0.0
++ gtk_text_mark_get_name@Base 3.0.0
++ gtk_text_mark_get_type@Base 3.0.0
++ gtk_text_mark_get_visible@Base 3.0.0
++ gtk_text_mark_new@Base 3.0.0
++ gtk_text_mark_set_visible@Base 3.0.0
++ gtk_text_search_flags_get_type@Base 3.0.0
++ gtk_text_tag_changed@Base 3.19.12
++ gtk_text_tag_event@Base 3.0.0
++ gtk_text_tag_get_priority@Base 3.0.0
++ gtk_text_tag_get_type@Base 3.0.0
++ gtk_text_tag_new@Base 3.0.0
++ gtk_text_tag_set_priority@Base 3.0.0
++ gtk_text_tag_table_add@Base 3.0.0
++ gtk_text_tag_table_foreach@Base 3.0.0
++ gtk_text_tag_table_get_size@Base 3.0.0
++ gtk_text_tag_table_get_type@Base 3.0.0
++ gtk_text_tag_table_lookup@Base 3.0.0
++ gtk_text_tag_table_new@Base 3.0.0
++ gtk_text_tag_table_remove@Base 3.0.0
++ gtk_text_unknown_char_utf8_gtk_tests_only@Base 3.0.0
++ gtk_text_view_accessible_get_type@Base 3.7.10
++ gtk_text_view_add_child_at_anchor@Base 3.0.0
++ gtk_text_view_add_child_in_window@Base 3.0.0
++ gtk_text_view_backward_display_line@Base 3.0.0
++ gtk_text_view_backward_display_line_start@Base 3.0.0
++ gtk_text_view_buffer_to_window_coords@Base 3.0.0
++ gtk_text_view_forward_display_line@Base 3.0.0
++ gtk_text_view_forward_display_line_end@Base 3.0.0
++ gtk_text_view_get_accepts_tab@Base 3.0.0
++ gtk_text_view_get_border_window_size@Base 3.0.0
++ gtk_text_view_get_bottom_margin@Base 3.17.9
++ gtk_text_view_get_buffer@Base 3.0.0
++ gtk_text_view_get_cursor_locations@Base 3.0.0
++ gtk_text_view_get_cursor_visible@Base 3.0.0
++ gtk_text_view_get_default_attributes@Base 3.0.0
++ gtk_text_view_get_editable@Base 3.0.0
++ gtk_text_view_get_hadjustment@Base 3.0.0
++ gtk_text_view_get_indent@Base 3.0.0
++ gtk_text_view_get_input_hints@Base 3.5.12
++ gtk_text_view_get_input_purpose@Base 3.5.12
++ gtk_text_view_get_iter_at_location@Base 3.0.0
++ gtk_text_view_get_iter_at_position@Base 3.0.0
++ gtk_text_view_get_iter_location@Base 3.0.0
++ gtk_text_view_get_justification@Base 3.0.0
++ gtk_text_view_get_left_margin@Base 3.0.0
++ gtk_text_view_get_line_at_y@Base 3.0.0
++ gtk_text_view_get_line_yrange@Base 3.0.0
++ gtk_text_view_get_monospace@Base 3.16.2
++ gtk_text_view_get_overwrite@Base 3.0.0
++ gtk_text_view_get_pixels_above_lines@Base 3.0.0
++ gtk_text_view_get_pixels_below_lines@Base 3.0.0
++ gtk_text_view_get_pixels_inside_wrap@Base 3.0.0
++ gtk_text_view_get_right_margin@Base 3.0.0
++ gtk_text_view_get_tabs@Base 3.0.0
++ gtk_text_view_get_top_margin@Base 3.17.9
++ gtk_text_view_get_type@Base 3.0.0
++ gtk_text_view_get_vadjustment@Base 3.0.0
++ gtk_text_view_get_visible_rect@Base 3.0.0
++ gtk_text_view_get_window@Base 3.0.0
++ gtk_text_view_get_window_type@Base 3.0.0
++ gtk_text_view_get_wrap_mode@Base 3.0.0
++ gtk_text_view_im_context_filter_keypress@Base 3.0.0
++ gtk_text_view_layer_get_type@Base 3.13.7
++ gtk_text_view_move_child@Base 3.0.0
++ gtk_text_view_move_mark_onscreen@Base 3.0.0
++ gtk_text_view_move_visually@Base 3.0.0
++ gtk_text_view_new@Base 3.0.0
++ gtk_text_view_new_with_buffer@Base 3.0.0
++ gtk_text_view_place_cursor_onscreen@Base 3.0.0
++ gtk_text_view_reset_cursor_blink@Base 3.19.12
++ gtk_text_view_reset_im_context@Base 3.0.0
++ gtk_text_view_scroll_mark_onscreen@Base 3.0.0
++ gtk_text_view_scroll_to_iter@Base 3.0.0
++ gtk_text_view_scroll_to_mark@Base 3.0.0
++ gtk_text_view_set_accepts_tab@Base 3.0.0
++ gtk_text_view_set_border_window_size@Base 3.0.0
++ gtk_text_view_set_bottom_margin@Base 3.17.9
++ gtk_text_view_set_buffer@Base 3.0.0
++ gtk_text_view_set_cursor_visible@Base 3.0.0
++ gtk_text_view_set_editable@Base 3.0.0
++ gtk_text_view_set_indent@Base 3.0.0
++ gtk_text_view_set_input_hints@Base 3.5.12
++ gtk_text_view_set_input_purpose@Base 3.5.12
++ gtk_text_view_set_justification@Base 3.0.0
++ gtk_text_view_set_left_margin@Base 3.0.0
++ gtk_text_view_set_monospace@Base 3.16.2
++ gtk_text_view_set_overwrite@Base 3.0.0
++ gtk_text_view_set_pixels_above_lines@Base 3.0.0
++ gtk_text_view_set_pixels_below_lines@Base 3.0.0
++ gtk_text_view_set_pixels_inside_wrap@Base 3.0.0
++ gtk_text_view_set_right_margin@Base 3.0.0
++ gtk_text_view_set_tabs@Base 3.0.0
++ gtk_text_view_set_top_margin@Base 3.17.9
++ gtk_text_view_set_wrap_mode@Base 3.0.0
++ gtk_text_view_starts_display_line@Base 3.0.0
++ gtk_text_view_window_to_buffer_coords@Base 3.0.0
++ gtk_text_window_type_get_type@Base 3.0.0
++ gtk_theming_engine_get@Base 3.0.0
++ gtk_theming_engine_get_background_color@Base 3.0.0
++ gtk_theming_engine_get_border@Base 3.0.0
++ gtk_theming_engine_get_border_color@Base 3.0.0
++ gtk_theming_engine_get_color@Base 3.0.0
++ gtk_theming_engine_get_direction@Base 3.0.0
++ gtk_theming_engine_get_font@Base 3.0.0
++ gtk_theming_engine_get_junction_sides@Base 3.0.0
++ gtk_theming_engine_get_margin@Base 3.0.0
++ gtk_theming_engine_get_padding@Base 3.0.0
++ gtk_theming_engine_get_path@Base 3.0.0
++ gtk_theming_engine_get_property@Base 3.0.0
++ gtk_theming_engine_get_screen@Base 3.0.0
++ gtk_theming_engine_get_state@Base 3.0.0
++ gtk_theming_engine_get_style@Base 3.0.0
++ gtk_theming_engine_get_style_property@Base 3.0.0
++ gtk_theming_engine_get_style_valist@Base 3.0.0
++ gtk_theming_engine_get_type@Base 3.0.0
++ gtk_theming_engine_get_valist@Base 3.0.0
++ gtk_theming_engine_has_class@Base 3.0.0
++ gtk_theming_engine_has_region@Base 3.0.0
++ gtk_theming_engine_load@Base 3.0.0
++ gtk_theming_engine_lookup_color@Base 3.0.0
++ gtk_theming_engine_register_property@Base 3.0.0
++ gtk_theming_engine_state_is_running@Base 3.0.0
++ gtk_theming_module_get_type@Base 3.0.0
++ gtk_toggle_action_get_active@Base 3.0.0
++ gtk_toggle_action_get_draw_as_radio@Base 3.0.0
++ gtk_toggle_action_get_type@Base 3.0.0
++ gtk_toggle_action_new@Base 3.0.0
++ gtk_toggle_action_set_active@Base 3.0.0
++ gtk_toggle_action_set_draw_as_radio@Base 3.0.0
++ gtk_toggle_action_toggled@Base 3.0.0
++ gtk_toggle_button_accessible_get_type@Base 3.7.10
++ gtk_toggle_button_get_active@Base 3.0.0
++ gtk_toggle_button_get_inconsistent@Base 3.0.0
++ gtk_toggle_button_get_mode@Base 3.0.0
++ gtk_toggle_button_get_type@Base 3.0.0
++ gtk_toggle_button_new@Base 3.0.0
++ gtk_toggle_button_new_with_label@Base 3.0.0
++ gtk_toggle_button_new_with_mnemonic@Base 3.0.0
++ gtk_toggle_button_set_active@Base 3.0.0
++ gtk_toggle_button_set_inconsistent@Base 3.0.0
++ gtk_toggle_button_set_mode@Base 3.0.0
++ gtk_toggle_button_toggled@Base 3.0.0
++ gtk_toggle_tool_button_get_active@Base 3.0.0
++ gtk_toggle_tool_button_get_type@Base 3.0.0
++ gtk_toggle_tool_button_new@Base 3.0.0
++ gtk_toggle_tool_button_new_from_stock@Base 3.0.0
++ gtk_toggle_tool_button_set_active@Base 3.0.0
++ gtk_tool_button_get_icon_name@Base 3.0.0
++ gtk_tool_button_get_icon_widget@Base 3.0.0
++ gtk_tool_button_get_label@Base 3.0.0
++ gtk_tool_button_get_label_widget@Base 3.0.0
++ gtk_tool_button_get_stock_id@Base 3.0.0
++ gtk_tool_button_get_type@Base 3.0.0
++ gtk_tool_button_get_use_underline@Base 3.0.0
++ gtk_tool_button_new@Base 3.0.0
++ gtk_tool_button_new_from_stock@Base 3.0.0
++ gtk_tool_button_set_icon_name@Base 3.0.0
++ gtk_tool_button_set_icon_widget@Base 3.0.0
++ gtk_tool_button_set_label@Base 3.0.0
++ gtk_tool_button_set_label_widget@Base 3.0.0
++ gtk_tool_button_set_stock_id@Base 3.0.0
++ gtk_tool_button_set_use_underline@Base 3.0.0
++ gtk_tool_item_get_ellipsize_mode@Base 3.0.0
++ gtk_tool_item_get_expand@Base 3.0.0
++ gtk_tool_item_get_homogeneous@Base 3.0.0
++ gtk_tool_item_get_icon_size@Base 3.0.0
++ gtk_tool_item_get_is_important@Base 3.0.0
++ gtk_tool_item_get_orientation@Base 3.0.0
++ gtk_tool_item_get_proxy_menu_item@Base 3.0.0
++ gtk_tool_item_get_relief_style@Base 3.0.0
++ gtk_tool_item_get_text_alignment@Base 3.0.0
++ gtk_tool_item_get_text_orientation@Base 3.0.0
++ gtk_tool_item_get_text_size_group@Base 3.0.0
++ gtk_tool_item_get_toolbar_style@Base 3.0.0
++ gtk_tool_item_get_type@Base 3.0.0
++ gtk_tool_item_get_use_drag_window@Base 3.0.0
++ gtk_tool_item_get_visible_horizontal@Base 3.0.0
++ gtk_tool_item_get_visible_vertical@Base 3.0.0
++ gtk_tool_item_group_get_collapsed@Base 3.0.0
++ gtk_tool_item_group_get_drop_item@Base 3.0.0
++ gtk_tool_item_group_get_ellipsize@Base 3.0.0
++ gtk_tool_item_group_get_header_relief@Base 3.0.0
++ gtk_tool_item_group_get_item_position@Base 3.0.0
++ gtk_tool_item_group_get_label@Base 3.0.0
++ gtk_tool_item_group_get_label_widget@Base 3.0.0
++ gtk_tool_item_group_get_n_items@Base 3.0.0
++ gtk_tool_item_group_get_nth_item@Base 3.0.0
++ gtk_tool_item_group_get_type@Base 3.0.0
++ gtk_tool_item_group_insert@Base 3.0.0
++ gtk_tool_item_group_new@Base 3.0.0
++ gtk_tool_item_group_set_collapsed@Base 3.0.0
++ gtk_tool_item_group_set_ellipsize@Base 3.0.0
++ gtk_tool_item_group_set_header_relief@Base 3.0.0
++ gtk_tool_item_group_set_item_position@Base 3.0.0
++ gtk_tool_item_group_set_label@Base 3.0.0
++ gtk_tool_item_group_set_label_widget@Base 3.0.0
++ gtk_tool_item_new@Base 3.0.0
++ gtk_tool_item_rebuild_menu@Base 3.0.0
++ gtk_tool_item_retrieve_proxy_menu_item@Base 3.0.0
++ gtk_tool_item_set_expand@Base 3.0.0
++ gtk_tool_item_set_homogeneous@Base 3.0.0
++ gtk_tool_item_set_is_important@Base 3.0.0
++ gtk_tool_item_set_proxy_menu_item@Base 3.0.0
++ gtk_tool_item_set_tooltip_markup@Base 3.0.0
++ gtk_tool_item_set_tooltip_text@Base 3.0.0
++ gtk_tool_item_set_use_drag_window@Base 3.0.0
++ gtk_tool_item_set_visible_horizontal@Base 3.0.0
++ gtk_tool_item_set_visible_vertical@Base 3.0.0
++ gtk_tool_item_toolbar_reconfigured@Base 3.0.0
++ gtk_tool_palette_add_drag_dest@Base 3.0.0
++ gtk_tool_palette_drag_targets_get_type@Base 3.0.0
++ gtk_tool_palette_get_drag_item@Base 3.0.0
++ gtk_tool_palette_get_drag_target_group@Base 3.0.0
++ gtk_tool_palette_get_drag_target_item@Base 3.0.0
++ gtk_tool_palette_get_drop_group@Base 3.0.0
++ gtk_tool_palette_get_drop_item@Base 3.0.0
++ gtk_tool_palette_get_exclusive@Base 3.0.0
++ gtk_tool_palette_get_expand@Base 3.0.0
++ gtk_tool_palette_get_group_position@Base 3.0.0
++ gtk_tool_palette_get_hadjustment@Base 3.0.0
++ gtk_tool_palette_get_icon_size@Base 3.0.0
++ gtk_tool_palette_get_style@Base 3.0.0
++ gtk_tool_palette_get_type@Base 3.0.0
++ gtk_tool_palette_get_vadjustment@Base 3.0.0
++ gtk_tool_palette_new@Base 3.0.0
++ gtk_tool_palette_set_drag_source@Base 3.0.0
++ gtk_tool_palette_set_exclusive@Base 3.0.0
++ gtk_tool_palette_set_expand@Base 3.0.0
++ gtk_tool_palette_set_group_position@Base 3.0.0
++ gtk_tool_palette_set_icon_size@Base 3.0.0
++ gtk_tool_palette_set_style@Base 3.0.0
++ gtk_tool_palette_unset_icon_size@Base 3.0.0
++ gtk_tool_palette_unset_style@Base 3.0.0
++ gtk_tool_shell_get_ellipsize_mode@Base 3.0.0
++ gtk_tool_shell_get_icon_size@Base 3.0.0
++ gtk_tool_shell_get_orientation@Base 3.0.0
++ gtk_tool_shell_get_relief_style@Base 3.0.0
++ gtk_tool_shell_get_style@Base 3.0.0
++ gtk_tool_shell_get_text_alignment@Base 3.0.0
++ gtk_tool_shell_get_text_orientation@Base 3.0.0
++ gtk_tool_shell_get_text_size_group@Base 3.0.0
++ gtk_tool_shell_get_type@Base 3.0.0
++ gtk_tool_shell_rebuild_menu@Base 3.0.0
++ gtk_toolbar_get_drop_index@Base 3.0.0
++ gtk_toolbar_get_icon_size@Base 3.0.0
++ gtk_toolbar_get_item_index@Base 3.0.0
++ gtk_toolbar_get_n_items@Base 3.0.0
++ gtk_toolbar_get_nth_item@Base 3.0.0
++ gtk_toolbar_get_relief_style@Base 3.0.0
++ gtk_toolbar_get_show_arrow@Base 3.0.0
++ gtk_toolbar_get_style@Base 3.0.0
++ gtk_toolbar_get_type@Base 3.0.0
++ gtk_toolbar_insert@Base 3.0.0
++ gtk_toolbar_new@Base 3.0.0
++ gtk_toolbar_set_drop_highlight_item@Base 3.0.0
++ gtk_toolbar_set_icon_size@Base 3.0.0
++ gtk_toolbar_set_show_arrow@Base 3.0.0
++ gtk_toolbar_set_style@Base 3.0.0
++ gtk_toolbar_space_style_get_type@Base 3.0.0
++ gtk_toolbar_style_get_type@Base 3.0.0
++ gtk_toolbar_unset_icon_size@Base 3.0.0
++ gtk_toolbar_unset_style@Base 3.0.0
++ gtk_tooltip_get_type@Base 3.0.0
++ gtk_tooltip_set_custom@Base 3.0.0
++ gtk_tooltip_set_icon@Base 3.0.0
++ gtk_tooltip_set_icon_from_gicon@Base 3.0.0
++ gtk_tooltip_set_icon_from_icon_name@Base 3.0.0
++ gtk_tooltip_set_icon_from_stock@Base 3.0.0
++ gtk_tooltip_set_markup@Base 3.0.0
++ gtk_tooltip_set_text@Base 3.0.0
++ gtk_tooltip_set_tip_area@Base 3.0.0
++ gtk_tooltip_trigger_tooltip_query@Base 3.0.0
++ gtk_toplevel_accessible_get_children@Base 3.7.10
++ gtk_toplevel_accessible_get_type@Base 3.7.10
++ gtk_tray_icon_get_type@Base 3.0.0
++ gtk_tree_drag_dest_drag_data_received@Base 3.0.0
++ gtk_tree_drag_dest_get_type@Base 3.0.0
++ gtk_tree_drag_dest_row_drop_possible@Base 3.0.0
++ gtk_tree_drag_source_drag_data_delete@Base 3.0.0
++ gtk_tree_drag_source_drag_data_get@Base 3.0.0
++ gtk_tree_drag_source_get_type@Base 3.0.0
++ gtk_tree_drag_source_row_draggable@Base 3.0.0
++ gtk_tree_get_row_drag_data@Base 3.0.0
++ gtk_tree_iter_copy@Base 3.0.0
++ gtk_tree_iter_free@Base 3.0.0
++ gtk_tree_iter_get_type@Base 3.0.0
++ gtk_tree_model_filter_clear_cache@Base 3.0.0
++ gtk_tree_model_filter_convert_child_iter_to_iter@Base 3.0.0
++ gtk_tree_model_filter_convert_child_path_to_path@Base 3.0.0
++ gtk_tree_model_filter_convert_iter_to_child_iter@Base 3.0.0
++ gtk_tree_model_filter_convert_path_to_child_path@Base 3.0.0
++ gtk_tree_model_filter_get_model@Base 3.0.0
++ gtk_tree_model_filter_get_type@Base 3.0.0
++ gtk_tree_model_filter_new@Base 3.0.0
++ gtk_tree_model_filter_refilter@Base 3.0.0
++ gtk_tree_model_filter_set_modify_func@Base 3.0.0
++ gtk_tree_model_filter_set_visible_column@Base 3.0.0
++ gtk_tree_model_filter_set_visible_func@Base 3.0.0
++ gtk_tree_model_flags_get_type@Base 3.0.0
++ gtk_tree_model_foreach@Base 3.0.0
++ gtk_tree_model_get@Base 3.0.0
++ gtk_tree_model_get_column_type@Base 3.0.0
++ gtk_tree_model_get_flags@Base 3.0.0
++ gtk_tree_model_get_iter@Base 3.0.0
++ gtk_tree_model_get_iter_first@Base 3.0.0
++ gtk_tree_model_get_iter_from_string@Base 3.0.0
++ gtk_tree_model_get_n_columns@Base 3.0.0
++ gtk_tree_model_get_path@Base 3.0.0
++ gtk_tree_model_get_string_from_iter@Base 3.0.0
++ gtk_tree_model_get_type@Base 3.0.0
++ gtk_tree_model_get_valist@Base 3.0.0
++ gtk_tree_model_get_value@Base 3.0.0
++ gtk_tree_model_iter_children@Base 3.0.0
++ gtk_tree_model_iter_has_child@Base 3.0.0
++ gtk_tree_model_iter_n_children@Base 3.0.0
++ gtk_tree_model_iter_next@Base 3.0.0
++ gtk_tree_model_iter_nth_child@Base 3.0.0
++ gtk_tree_model_iter_parent@Base 3.0.0
++ gtk_tree_model_iter_previous@Base 3.0.0
++ gtk_tree_model_ref_node@Base 3.0.0
++ gtk_tree_model_row_changed@Base 3.0.0
++ gtk_tree_model_row_deleted@Base 3.0.0
++ gtk_tree_model_row_has_child_toggled@Base 3.0.0
++ gtk_tree_model_row_inserted@Base 3.0.0
++ gtk_tree_model_rows_reordered@Base 3.0.0
++ gtk_tree_model_rows_reordered_with_length@Base 3.9.10
++ gtk_tree_model_sort_clear_cache@Base 3.0.0
++ gtk_tree_model_sort_convert_child_iter_to_iter@Base 3.0.0
++ gtk_tree_model_sort_convert_child_path_to_path@Base 3.0.0
++ gtk_tree_model_sort_convert_iter_to_child_iter@Base 3.0.0
++ gtk_tree_model_sort_convert_path_to_child_path@Base 3.0.0
++ gtk_tree_model_sort_get_model@Base 3.0.0
++ gtk_tree_model_sort_get_type@Base 3.0.0
++ gtk_tree_model_sort_iter_is_valid@Base 3.0.0
++ gtk_tree_model_sort_new_with_model@Base 3.0.0
++ gtk_tree_model_sort_reset_default_sort_func@Base 3.0.0
++ gtk_tree_model_unref_node@Base 3.0.0
++ gtk_tree_path_append_index@Base 3.0.0
++ gtk_tree_path_compare@Base 3.0.0
++ gtk_tree_path_copy@Base 3.0.0
++ gtk_tree_path_down@Base 3.0.0
++ gtk_tree_path_free@Base 3.0.0
++ gtk_tree_path_get_depth@Base 3.0.0
++ gtk_tree_path_get_indices@Base 3.0.0
++ gtk_tree_path_get_indices_with_depth@Base 3.0.0
++ gtk_tree_path_get_type@Base 3.0.0
++ gtk_tree_path_is_ancestor@Base 3.0.0
++ gtk_tree_path_is_descendant@Base 3.0.0
++ gtk_tree_path_new@Base 3.0.0
++ gtk_tree_path_new_first@Base 3.0.0
++ gtk_tree_path_new_from_indices@Base 3.0.0
++ gtk_tree_path_new_from_indicesv@Base 3.11.5
++ gtk_tree_path_new_from_string@Base 3.0.0
++ gtk_tree_path_next@Base 3.0.0
++ gtk_tree_path_prepend_index@Base 3.0.0
++ gtk_tree_path_prev@Base 3.0.0
++ gtk_tree_path_to_string@Base 3.0.0
++ gtk_tree_path_up@Base 3.0.0
++ gtk_tree_row_reference_copy@Base 3.0.0
++ gtk_tree_row_reference_deleted@Base 3.0.0
++ gtk_tree_row_reference_free@Base 3.0.0
++ gtk_tree_row_reference_get_model@Base 3.0.0
++ gtk_tree_row_reference_get_path@Base 3.0.0
++ gtk_tree_row_reference_get_type@Base 3.0.0
++ gtk_tree_row_reference_inserted@Base 3.0.0
++ gtk_tree_row_reference_new@Base 3.0.0
++ gtk_tree_row_reference_new_proxy@Base 3.0.0
++ gtk_tree_row_reference_reordered@Base 3.0.0
++ gtk_tree_row_reference_valid@Base 3.0.0
++ gtk_tree_selection_count_selected_rows@Base 3.0.0
++ gtk_tree_selection_get_mode@Base 3.0.0
++ gtk_tree_selection_get_select_function@Base 3.0.0
++ gtk_tree_selection_get_selected@Base 3.0.0
++ gtk_tree_selection_get_selected_rows@Base 3.0.0
++ gtk_tree_selection_get_tree_view@Base 3.0.0
++ gtk_tree_selection_get_type@Base 3.0.0
++ gtk_tree_selection_get_user_data@Base 3.0.0
++ gtk_tree_selection_iter_is_selected@Base 3.0.0
++ gtk_tree_selection_path_is_selected@Base 3.0.0
++ gtk_tree_selection_select_all@Base 3.0.0
++ gtk_tree_selection_select_iter@Base 3.0.0
++ gtk_tree_selection_select_path@Base 3.0.0
++ gtk_tree_selection_select_range@Base 3.0.0
++ gtk_tree_selection_selected_foreach@Base 3.0.0
++ gtk_tree_selection_set_mode@Base 3.0.0
++ gtk_tree_selection_set_select_function@Base 3.0.0
++ gtk_tree_selection_unselect_all@Base 3.0.0
++ gtk_tree_selection_unselect_iter@Base 3.0.0
++ gtk_tree_selection_unselect_path@Base 3.0.0
++ gtk_tree_selection_unselect_range@Base 3.0.0
++ gtk_tree_set_row_drag_data@Base 3.0.0
++ gtk_tree_sortable_get_sort_column_id@Base 3.0.0
++ gtk_tree_sortable_get_type@Base 3.0.0
++ gtk_tree_sortable_has_default_sort_func@Base 3.0.0
++ gtk_tree_sortable_set_default_sort_func@Base 3.0.0
++ gtk_tree_sortable_set_sort_column_id@Base 3.0.0
++ gtk_tree_sortable_set_sort_func@Base 3.0.0
++ gtk_tree_sortable_sort_column_changed@Base 3.0.0
++ gtk_tree_store_append@Base 3.0.0
++ gtk_tree_store_clear@Base 3.0.0
++ gtk_tree_store_get_type@Base 3.0.0
++ gtk_tree_store_insert@Base 3.0.0
++ gtk_tree_store_insert_after@Base 3.0.0
++ gtk_tree_store_insert_before@Base 3.0.0
++ gtk_tree_store_insert_with_values@Base 3.0.0
++ gtk_tree_store_insert_with_valuesv@Base 3.0.0
++ gtk_tree_store_is_ancestor@Base 3.0.0
++ gtk_tree_store_iter_depth@Base 3.0.0
++ gtk_tree_store_iter_is_valid@Base 3.0.0
++ gtk_tree_store_move_after@Base 3.0.0
++ gtk_tree_store_move_before@Base 3.0.0
++ gtk_tree_store_new@Base 3.0.0
++ gtk_tree_store_newv@Base 3.0.0
++ gtk_tree_store_prepend@Base 3.0.0
++ gtk_tree_store_remove@Base 3.0.0
++ gtk_tree_store_reorder@Base 3.0.0
++ gtk_tree_store_set@Base 3.0.0
++ gtk_tree_store_set_column_types@Base 3.0.0
++ gtk_tree_store_set_valist@Base 3.0.0
++ gtk_tree_store_set_value@Base 3.0.0
++ gtk_tree_store_set_valuesv@Base 3.0.0
++ gtk_tree_store_swap@Base 3.0.0
++ gtk_tree_view_accessible_get_type@Base 3.7.10
++ gtk_tree_view_append_column@Base 3.0.0
++ gtk_tree_view_collapse_all@Base 3.0.0
++ gtk_tree_view_collapse_row@Base 3.0.0
++ gtk_tree_view_column_add_attribute@Base 3.0.0
++ gtk_tree_view_column_cell_get_position@Base 3.0.0
++ gtk_tree_view_column_cell_get_size@Base 3.0.0
++ gtk_tree_view_column_cell_is_visible@Base 3.0.0
++ gtk_tree_view_column_cell_set_cell_data@Base 3.0.0
++ gtk_tree_view_column_clear@Base 3.0.0
++ gtk_tree_view_column_clear_attributes@Base 3.0.0
++ gtk_tree_view_column_clicked@Base 3.0.0
++ gtk_tree_view_column_focus_cell@Base 3.0.0
++ gtk_tree_view_column_get_alignment@Base 3.0.0
++ gtk_tree_view_column_get_button@Base 3.0.0
++ gtk_tree_view_column_get_clickable@Base 3.0.0
++ gtk_tree_view_column_get_expand@Base 3.0.0
++ gtk_tree_view_column_get_fixed_width@Base 3.0.0
++ gtk_tree_view_column_get_max_width@Base 3.0.0
++ gtk_tree_view_column_get_min_width@Base 3.0.0
++ gtk_tree_view_column_get_reorderable@Base 3.0.0
++ gtk_tree_view_column_get_resizable@Base 3.0.0
++ gtk_tree_view_column_get_sizing@Base 3.0.0
++ gtk_tree_view_column_get_sort_column_id@Base 3.0.0
++ gtk_tree_view_column_get_sort_indicator@Base 3.0.0
++ gtk_tree_view_column_get_sort_order@Base 3.0.0
++ gtk_tree_view_column_get_spacing@Base 3.0.0
++ gtk_tree_view_column_get_title@Base 3.0.0
++ gtk_tree_view_column_get_tree_view@Base 3.0.0
++ gtk_tree_view_column_get_type@Base 3.0.0
++ gtk_tree_view_column_get_visible@Base 3.0.0
++ gtk_tree_view_column_get_widget@Base 3.0.0
++ gtk_tree_view_column_get_width@Base 3.0.0
++ gtk_tree_view_column_get_x_offset@Base 3.1.6
++ gtk_tree_view_column_new@Base 3.0.0
++ gtk_tree_view_column_new_with_area@Base 3.0.0
++ gtk_tree_view_column_new_with_attributes@Base 3.0.0
++ gtk_tree_view_column_pack_end@Base 3.0.0
++ gtk_tree_view_column_pack_start@Base 3.0.0
++ gtk_tree_view_column_queue_resize@Base 3.0.0
++ gtk_tree_view_column_set_alignment@Base 3.0.0
++ gtk_tree_view_column_set_attributes@Base 3.0.0
++ gtk_tree_view_column_set_cell_data_func@Base 3.0.0
++ gtk_tree_view_column_set_clickable@Base 3.0.0
++ gtk_tree_view_column_set_expand@Base 3.0.0
++ gtk_tree_view_column_set_fixed_width@Base 3.0.0
++ gtk_tree_view_column_set_max_width@Base 3.0.0
++ gtk_tree_view_column_set_min_width@Base 3.0.0
++ gtk_tree_view_column_set_reorderable@Base 3.0.0
++ gtk_tree_view_column_set_resizable@Base 3.0.0
++ gtk_tree_view_column_set_sizing@Base 3.0.0
++ gtk_tree_view_column_set_sort_column_id@Base 3.0.0
++ gtk_tree_view_column_set_sort_indicator@Base 3.0.0
++ gtk_tree_view_column_set_sort_order@Base 3.0.0
++ gtk_tree_view_column_set_spacing@Base 3.0.0
++ gtk_tree_view_column_set_title@Base 3.0.0
++ gtk_tree_view_column_set_visible@Base 3.0.0
++ gtk_tree_view_column_set_widget@Base 3.0.0
++ gtk_tree_view_column_sizing_get_type@Base 3.0.0
++ gtk_tree_view_columns_autosize@Base 3.0.0
++ gtk_tree_view_convert_bin_window_to_tree_coords@Base 3.0.0
++ gtk_tree_view_convert_bin_window_to_widget_coords@Base 3.0.0
++ gtk_tree_view_convert_tree_to_bin_window_coords@Base 3.0.0
++ gtk_tree_view_convert_tree_to_widget_coords@Base 3.0.0
++ gtk_tree_view_convert_widget_to_bin_window_coords@Base 3.0.0
++ gtk_tree_view_convert_widget_to_tree_coords@Base 3.0.0
++ gtk_tree_view_create_row_drag_icon@Base 3.0.0
++ gtk_tree_view_drop_position_get_type@Base 3.0.0
++ gtk_tree_view_enable_model_drag_dest@Base 3.0.0
++ gtk_tree_view_enable_model_drag_source@Base 3.0.0
++ gtk_tree_view_expand_all@Base 3.0.0
++ gtk_tree_view_expand_row@Base 3.0.0
++ gtk_tree_view_expand_to_path@Base 3.0.0
++ gtk_tree_view_get_activate_on_single_click@Base 3.7.10
++ gtk_tree_view_get_background_area@Base 3.0.0
++ gtk_tree_view_get_bin_window@Base 3.0.0
++ gtk_tree_view_get_cell_area@Base 3.0.0
++ gtk_tree_view_get_column@Base 3.0.0
++ gtk_tree_view_get_columns@Base 3.0.0
++ gtk_tree_view_get_cursor@Base 3.0.0
++ gtk_tree_view_get_dest_row_at_pos@Base 3.0.0
++ gtk_tree_view_get_drag_dest_row@Base 3.0.0
++ gtk_tree_view_get_enable_search@Base 3.0.0
++ gtk_tree_view_get_enable_tree_lines@Base 3.0.0
++ gtk_tree_view_get_expander_column@Base 3.0.0
++ gtk_tree_view_get_fixed_height_mode@Base 3.0.0
++ gtk_tree_view_get_grid_lines@Base 3.0.0
++ gtk_tree_view_get_hadjustment@Base 3.0.0
++ gtk_tree_view_get_headers_clickable@Base 3.0.0
++ gtk_tree_view_get_headers_visible@Base 3.0.0
++ gtk_tree_view_get_hover_expand@Base 3.0.0
++ gtk_tree_view_get_hover_selection@Base 3.0.0
++ gtk_tree_view_get_level_indentation@Base 3.0.0
++ gtk_tree_view_get_model@Base 3.0.0
++ gtk_tree_view_get_n_columns@Base 3.3.16
++ gtk_tree_view_get_path_at_pos@Base 3.0.0
++ gtk_tree_view_get_reorderable@Base 3.0.0
++ gtk_tree_view_get_row_separator_func@Base 3.0.0
++ gtk_tree_view_get_rubber_banding@Base 3.0.0
++ gtk_tree_view_get_rules_hint@Base 3.0.0
++ gtk_tree_view_get_search_column@Base 3.0.0
++ gtk_tree_view_get_search_entry@Base 3.0.0
++ gtk_tree_view_get_search_equal_func@Base 3.0.0
++ gtk_tree_view_get_search_position_func@Base 3.0.0
++ gtk_tree_view_get_selection@Base 3.0.0
++ gtk_tree_view_get_show_expanders@Base 3.0.0
++ gtk_tree_view_get_tooltip_column@Base 3.0.0
++ gtk_tree_view_get_tooltip_context@Base 3.0.0
++ gtk_tree_view_get_type@Base 3.0.0
++ gtk_tree_view_get_vadjustment@Base 3.0.0
++ gtk_tree_view_get_visible_range@Base 3.0.0
++ gtk_tree_view_get_visible_rect@Base 3.0.0
++ gtk_tree_view_grid_lines_get_type@Base 3.0.0
++ gtk_tree_view_insert_column@Base 3.0.0
++ gtk_tree_view_insert_column_with_attributes@Base 3.0.0
++ gtk_tree_view_insert_column_with_data_func@Base 3.0.0
++ gtk_tree_view_is_blank_at_pos@Base 3.0.0
++ gtk_tree_view_is_rubber_banding_active@Base 3.0.0
++ gtk_tree_view_map_expanded_rows@Base 3.0.0
++ gtk_tree_view_move_column_after@Base 3.0.0
++ gtk_tree_view_new@Base 3.0.0
++ gtk_tree_view_new_with_model@Base 3.0.0
++ gtk_tree_view_remove_column@Base 3.0.0
++ gtk_tree_view_row_activated@Base 3.0.0
++ gtk_tree_view_row_expanded@Base 3.0.0
++ gtk_tree_view_scroll_to_cell@Base 3.0.0
++ gtk_tree_view_scroll_to_point@Base 3.0.0
++ gtk_tree_view_set_activate_on_single_click@Base 3.7.10
++ gtk_tree_view_set_column_drag_function@Base 3.0.0
++ gtk_tree_view_set_cursor@Base 3.0.0
++ gtk_tree_view_set_cursor_on_cell@Base 3.0.0
++ gtk_tree_view_set_destroy_count_func@Base 3.0.0
++ gtk_tree_view_set_drag_dest_row@Base 3.0.0
++ gtk_tree_view_set_enable_search@Base 3.0.0
++ gtk_tree_view_set_enable_tree_lines@Base 3.0.0
++ gtk_tree_view_set_expander_column@Base 3.0.0
++ gtk_tree_view_set_fixed_height_mode@Base 3.0.0
++ gtk_tree_view_set_grid_lines@Base 3.0.0
++ gtk_tree_view_set_hadjustment@Base 3.3.16
++ gtk_tree_view_set_headers_clickable@Base 3.0.0
++ gtk_tree_view_set_headers_visible@Base 3.0.0
++ gtk_tree_view_set_hover_expand@Base 3.0.0
++ gtk_tree_view_set_hover_selection@Base 3.0.0
++ gtk_tree_view_set_level_indentation@Base 3.0.0
++ gtk_tree_view_set_model@Base 3.0.0
++ gtk_tree_view_set_reorderable@Base 3.0.0
++ gtk_tree_view_set_row_separator_func@Base 3.0.0
++ gtk_tree_view_set_rubber_banding@Base 3.0.0
++ gtk_tree_view_set_rules_hint@Base 3.0.0
++ gtk_tree_view_set_search_column@Base 3.0.0
++ gtk_tree_view_set_search_entry@Base 3.0.0
++ gtk_tree_view_set_search_equal_func@Base 3.0.0
++ gtk_tree_view_set_search_position_func@Base 3.0.0
++ gtk_tree_view_set_show_expanders@Base 3.0.0
++ gtk_tree_view_set_tooltip_cell@Base 3.0.0
++ gtk_tree_view_set_tooltip_column@Base 3.0.0
++ gtk_tree_view_set_tooltip_row@Base 3.0.0
++ gtk_tree_view_set_vadjustment@Base 3.3.16
++ gtk_tree_view_unset_rows_drag_dest@Base 3.0.0
++ gtk_tree_view_unset_rows_drag_source@Base 3.0.0
++ gtk_true@Base 3.0.0
++ gtk_ui_manager_add_ui@Base 3.0.0
++ gtk_ui_manager_add_ui_from_file@Base 3.0.0
++ gtk_ui_manager_add_ui_from_resource@Base 3.3.16
++ gtk_ui_manager_add_ui_from_string@Base 3.0.0
++ gtk_ui_manager_ensure_update@Base 3.0.0
++ gtk_ui_manager_get_accel_group@Base 3.0.0
++ gtk_ui_manager_get_action@Base 3.0.0
++ gtk_ui_manager_get_action_groups@Base 3.0.0
++ gtk_ui_manager_get_add_tearoffs@Base 3.0.0
++ gtk_ui_manager_get_toplevels@Base 3.0.0
++ gtk_ui_manager_get_type@Base 3.0.0
++ gtk_ui_manager_get_ui@Base 3.0.0
++ gtk_ui_manager_get_widget@Base 3.0.0
++ gtk_ui_manager_insert_action_group@Base 3.0.0
++ gtk_ui_manager_item_type_get_type@Base 3.0.0
++ gtk_ui_manager_new@Base 3.0.0
++ gtk_ui_manager_new_merge_id@Base 3.0.0
++ gtk_ui_manager_remove_action_group@Base 3.0.0
++ gtk_ui_manager_remove_ui@Base 3.0.0
++ gtk_ui_manager_set_add_tearoffs@Base 3.0.0
++ gtk_unit_get_type@Base 3.0.0
++ gtk_vbox_get_type@Base 3.0.0
++ gtk_vbox_new@Base 3.0.0
++ gtk_vbutton_box_get_type@Base 3.0.0
++ gtk_vbutton_box_new@Base 3.0.0
++ gtk_viewport_get_bin_window@Base 3.0.0
++ gtk_viewport_get_hadjustment@Base 3.0.0
++ gtk_viewport_get_shadow_type@Base 3.0.0
++ gtk_viewport_get_type@Base 3.0.0
++ gtk_viewport_get_vadjustment@Base 3.0.0
++ gtk_viewport_get_view_window@Base 3.0.0
++ gtk_viewport_new@Base 3.0.0
++ gtk_viewport_set_hadjustment@Base 3.0.0
++ gtk_viewport_set_shadow_type@Base 3.0.0
++ gtk_viewport_set_vadjustment@Base 3.0.0
++ gtk_volume_button_get_type@Base 3.0.0
++ gtk_volume_button_new@Base 3.0.0
++ gtk_vpaned_get_type@Base 3.0.0
++ gtk_vpaned_new@Base 3.0.0
++ gtk_vscale_get_type@Base 3.0.0
++ gtk_vscale_new@Base 3.0.0
++ gtk_vscale_new_with_range@Base 3.0.0
++ gtk_vscrollbar_get_type@Base 3.0.0
++ gtk_vscrollbar_new@Base 3.0.0
++ gtk_vseparator_get_type@Base 3.0.0
++ gtk_vseparator_new@Base 3.0.0
++ gtk_widget_accessible_get_type@Base 3.7.10
++ gtk_widget_activate@Base 3.0.0
++ gtk_widget_add_accelerator@Base 3.0.0
++ gtk_widget_add_device_events@Base 3.0.0
++ gtk_widget_add_events@Base 3.0.0
++ gtk_widget_add_mnemonic_label@Base 3.0.0
++ gtk_widget_add_tick_callback@Base 3.7.10
++ gtk_widget_can_activate_accel@Base 3.0.0
++ gtk_widget_child_focus@Base 3.0.0
++ gtk_widget_child_notify@Base 3.0.0
++ gtk_widget_class_bind_template_callback_full@Base 3.9.10
++ gtk_widget_class_bind_template_child_full@Base 3.9.10
++ gtk_widget_class_find_style_property@Base 3.0.0
++ gtk_widget_class_get_css_name@Base 3.19.12
++ gtk_widget_class_install_style_property@Base 3.0.0
++ gtk_widget_class_install_style_property_parser@Base 3.0.0
++ gtk_widget_class_list_style_properties@Base 3.0.0
++ gtk_widget_class_path@Base 3.0.0
++ gtk_widget_class_set_accessible_role@Base 3.2.1
++ gtk_widget_class_set_accessible_type@Base 3.2.1
++ gtk_widget_class_set_connect_func@Base 3.9.10
++ gtk_widget_class_set_css_name@Base 3.19.12
++ gtk_widget_class_set_template@Base 3.9.10
++ gtk_widget_class_set_template_from_resource@Base 3.9.10
++ gtk_widget_compute_expand@Base 3.0.0
++ gtk_widget_create_pango_context@Base 3.0.0
++ gtk_widget_create_pango_layout@Base 3.0.0
++ gtk_widget_destroy@Base 3.0.0
++ gtk_widget_destroyed@Base 3.0.0
++ gtk_widget_device_is_shadowed@Base 3.0.0
++ gtk_widget_draw@Base 3.0.0
++ gtk_widget_ensure_style@Base 3.0.0
++ gtk_widget_error_bell@Base 3.0.0
++ gtk_widget_event@Base 3.0.0
++ gtk_widget_freeze_child_notify@Base 3.0.0
++ gtk_widget_get_accessible@Base 3.0.0
++ gtk_widget_get_action_group@Base 3.16.2
++ gtk_widget_get_allocated_baseline@Base 3.9.10
++ gtk_widget_get_allocated_height@Base 3.0.0
++ gtk_widget_get_allocated_size@Base 3.19.12
++ gtk_widget_get_allocated_width@Base 3.0.0
++ gtk_widget_get_allocation@Base 3.0.0
++ gtk_widget_get_ancestor@Base 3.0.0
++ gtk_widget_get_app_paintable@Base 3.0.0
++ gtk_widget_get_can_default@Base 3.0.0
++ gtk_widget_get_can_focus@Base 3.0.0
++ gtk_widget_get_child_requisition@Base 3.0.0
++ gtk_widget_get_child_visible@Base 3.0.0
++ gtk_widget_get_clip@Base 3.13.7
++ gtk_widget_get_clipboard@Base 3.0.0
++ gtk_widget_get_composite_name@Base 3.0.0
++ gtk_widget_get_default_direction@Base 3.0.0
++ gtk_widget_get_default_style@Base 3.0.0
++ gtk_widget_get_device_enabled@Base 3.0.0
++ gtk_widget_get_device_events@Base 3.0.0
++ gtk_widget_get_direction@Base 3.0.0
++ gtk_widget_get_display@Base 3.0.0
++ gtk_widget_get_double_buffered@Base 3.0.0
++ gtk_widget_get_events@Base 3.0.0
++ gtk_widget_get_focus_on_click@Base 3.19.12
++ gtk_widget_get_font_map@Base 3.17.9
++ gtk_widget_get_font_options@Base 3.17.9
++ gtk_widget_get_frame_clock@Base 3.7.10
++ gtk_widget_get_halign@Base 3.0.0
++ gtk_widget_get_has_tooltip@Base 3.0.0
++ gtk_widget_get_has_window@Base 3.0.0
++ gtk_widget_get_hexpand@Base 3.0.0
++ gtk_widget_get_hexpand_set@Base 3.0.0
++ gtk_widget_get_mapped@Base 3.0.0
++ gtk_widget_get_margin_bottom@Base 3.0.0
++ gtk_widget_get_margin_end@Base 3.11.5
++ gtk_widget_get_margin_left@Base 3.0.0
++ gtk_widget_get_margin_right@Base 3.0.0
++ gtk_widget_get_margin_start@Base 3.11.5
++ gtk_widget_get_margin_top@Base 3.0.0
++ gtk_widget_get_modifier_mask@Base 3.3.16
++ gtk_widget_get_modifier_style@Base 3.0.0
++ gtk_widget_get_name@Base 3.0.0
++ gtk_widget_get_no_show_all@Base 3.0.0
++ gtk_widget_get_opacity@Base 3.7.10
++ gtk_widget_get_pango_context@Base 3.0.0
++ gtk_widget_get_parent@Base 3.0.0
++ gtk_widget_get_parent_window@Base 3.0.0
++ gtk_widget_get_path@Base 3.0.0
++ gtk_widget_get_pointer@Base 3.0.0
++ gtk_widget_get_preferred_height@Base 3.0.0
++ gtk_widget_get_preferred_height_and_baseline_for_width@Base 3.9.10
++ gtk_widget_get_preferred_height_for_width@Base 3.0.0
++ gtk_widget_get_preferred_size@Base 3.0.0
++ gtk_widget_get_preferred_width@Base 3.0.0
++ gtk_widget_get_preferred_width_for_height@Base 3.0.0
++ gtk_widget_get_realized@Base 3.0.0
++ gtk_widget_get_receives_default@Base 3.0.0
++ gtk_widget_get_request_mode@Base 3.0.0
++ gtk_widget_get_requisition@Base 3.0.0
++ gtk_widget_get_root_window@Base 3.0.0
++ gtk_widget_get_scale_factor@Base 3.9.10
++ gtk_widget_get_screen@Base 3.0.0
++ gtk_widget_get_sensitive@Base 3.0.0
++ gtk_widget_get_settings@Base 3.0.0
++ gtk_widget_get_size_request@Base 3.0.0
++ gtk_widget_get_state@Base 3.0.0
++ gtk_widget_get_state_flags@Base 3.0.0
++ gtk_widget_get_style@Base 3.0.0
++ gtk_widget_get_style_context@Base 3.0.0
++ gtk_widget_get_support_multidevice@Base 3.0.0
++ gtk_widget_get_template_child@Base 3.9.10
++ gtk_widget_get_tooltip_markup@Base 3.0.0
++ gtk_widget_get_tooltip_text@Base 3.0.0
++ gtk_widget_get_tooltip_window@Base 3.0.0
++ gtk_widget_get_toplevel@Base 3.0.0
++ gtk_widget_get_type@Base 3.0.0
++ gtk_widget_get_valign@Base 3.0.0
++ gtk_widget_get_valign_with_baseline@Base 3.9.10
++ gtk_widget_get_vexpand@Base 3.0.0
++ gtk_widget_get_vexpand_set@Base 3.0.0
++ gtk_widget_get_visible@Base 3.0.0
++ gtk_widget_get_visual@Base 3.0.0
++ gtk_widget_get_window@Base 3.0.0
++ gtk_widget_grab_default@Base 3.0.0
++ gtk_widget_grab_focus@Base 3.0.0
++ gtk_widget_has_default@Base 3.0.0
++ gtk_widget_has_focus@Base 3.0.0
++ gtk_widget_has_grab@Base 3.0.0
++ gtk_widget_has_rc_style@Base 3.0.0
++ gtk_widget_has_screen@Base 3.0.0
++ gtk_widget_has_visible_focus@Base 3.2.1
++ gtk_widget_help_type_get_type@Base 3.0.0
++ gtk_widget_hide@Base 3.0.0
++ gtk_widget_hide_on_delete@Base 3.0.0
++ gtk_widget_in_destruction@Base 3.0.0
++ gtk_widget_init_template@Base 3.9.10
++ gtk_widget_input_shape_combine_region@Base 3.0.0
++ gtk_widget_insert_action_group@Base 3.5.12
++ gtk_widget_intersect@Base 3.0.0
++ gtk_widget_is_ancestor@Base 3.0.0
++ gtk_widget_is_composited@Base 3.0.0
++ gtk_widget_is_drawable@Base 3.0.0
++ gtk_widget_is_focus@Base 3.0.0
++ gtk_widget_is_sensitive@Base 3.0.0
++ gtk_widget_is_toplevel@Base 3.0.0
++ gtk_widget_is_visible@Base 3.7.10
++ gtk_widget_keynav_failed@Base 3.0.0
++ gtk_widget_list_accel_closures@Base 3.0.0
++ gtk_widget_list_action_prefixes@Base 3.16.2
++ gtk_widget_list_mnemonic_labels@Base 3.0.0
++ gtk_widget_map@Base 3.0.0
++ gtk_widget_mnemonic_activate@Base 3.0.0
++ gtk_widget_modify_base@Base 3.0.0
++ gtk_widget_modify_bg@Base 3.0.0
++ gtk_widget_modify_cursor@Base 3.0.0
++ gtk_widget_modify_fg@Base 3.0.0
++ gtk_widget_modify_font@Base 3.0.0
++ gtk_widget_modify_style@Base 3.0.0
++ gtk_widget_modify_text@Base 3.0.0
++ gtk_widget_new@Base 3.0.0
++ gtk_widget_override_background_color@Base 3.0.0
++ gtk_widget_override_color@Base 3.0.0
++ gtk_widget_override_cursor@Base 3.0.0
++ gtk_widget_override_font@Base 3.0.0
++ gtk_widget_override_symbolic_color@Base 3.0.0
++ gtk_widget_path@Base 3.0.0
++ gtk_widget_path_append_for_widget@Base 3.1.6
++ gtk_widget_path_append_type@Base 3.0.0
++ gtk_widget_path_append_with_siblings@Base 3.1.6
++ gtk_widget_path_copy@Base 3.0.0
++ gtk_widget_path_free@Base 3.0.0
++ gtk_widget_path_get_object_type@Base 3.0.0
++ gtk_widget_path_get_type@Base 3.0.0
++ gtk_widget_path_has_parent@Base 3.0.0
++ gtk_widget_path_is_type@Base 3.0.0
++ gtk_widget_path_iter_add_class@Base 3.0.0
++ gtk_widget_path_iter_add_region@Base 3.0.0
++ gtk_widget_path_iter_clear_classes@Base 3.0.0
++ gtk_widget_path_iter_clear_regions@Base 3.0.0
++ gtk_widget_path_iter_get_name@Base 3.0.0
++ gtk_widget_path_iter_get_object_name@Base 3.19.12
++ gtk_widget_path_iter_get_object_type@Base 3.0.0
++ gtk_widget_path_iter_get_sibling_index@Base 3.1.6
++ gtk_widget_path_iter_get_siblings@Base 3.1.6
++ gtk_widget_path_iter_get_state@Base 3.13.7
++ gtk_widget_path_iter_has_class@Base 3.0.0
++ gtk_widget_path_iter_has_name@Base 3.0.0
++ gtk_widget_path_iter_has_qclass@Base 3.0.0
++ gtk_widget_path_iter_has_qname@Base 3.0.0
++ gtk_widget_path_iter_has_qregion@Base 3.0.0
++ gtk_widget_path_iter_has_region@Base 3.0.0
++ gtk_widget_path_iter_list_classes@Base 3.0.0
++ gtk_widget_path_iter_list_regions@Base 3.0.0
++ gtk_widget_path_iter_remove_class@Base 3.0.0
++ gtk_widget_path_iter_remove_region@Base 3.0.0
++ gtk_widget_path_iter_set_name@Base 3.0.0
++ gtk_widget_path_iter_set_object_name@Base 3.19.12
++ gtk_widget_path_iter_set_object_type@Base 3.0.0
++ gtk_widget_path_iter_set_state@Base 3.13.7
++ gtk_widget_path_length@Base 3.0.0
++ gtk_widget_path_new@Base 3.0.0
++ gtk_widget_path_prepend_type@Base 3.0.0
++ gtk_widget_path_ref@Base 3.1.6
++ gtk_widget_path_to_string@Base 3.1.4
++ gtk_widget_path_unref@Base 3.1.6
++ gtk_widget_pop_composite_child@Base 3.0.0
++ gtk_widget_push_composite_child@Base 3.0.0
++ gtk_widget_queue_allocate@Base 3.19.12
++ gtk_widget_queue_compute_expand@Base 3.0.0
++ gtk_widget_queue_draw@Base 3.0.0
++ gtk_widget_queue_draw_area@Base 3.0.0
++ gtk_widget_queue_draw_region@Base 3.0.0
++ gtk_widget_queue_resize@Base 3.0.0
++ gtk_widget_queue_resize_no_redraw@Base 3.0.0
++ gtk_widget_realize@Base 3.0.0
++ gtk_widget_region_intersect@Base 3.0.0
++ gtk_widget_register_window@Base 3.7.10
++ gtk_widget_remove_accelerator@Base 3.0.0
++ gtk_widget_remove_mnemonic_label@Base 3.0.0
++ gtk_widget_remove_tick_callback@Base 3.7.10
++ gtk_widget_render_icon@Base 3.0.0
++ gtk_widget_render_icon_pixbuf@Base 3.0.0
++ gtk_widget_reparent@Base 3.0.0
++ gtk_widget_reset_rc_styles@Base 3.0.0
++ gtk_widget_reset_style@Base 3.0.0
++ gtk_widget_send_expose@Base 3.0.0
++ gtk_widget_send_focus_change@Base 3.0.0
++ gtk_widget_set_accel_path@Base 3.0.0
++ gtk_widget_set_allocation@Base 3.0.0
++ gtk_widget_set_app_paintable@Base 3.0.0
++ gtk_widget_set_can_default@Base 3.0.0
++ gtk_widget_set_can_focus@Base 3.0.0
++ gtk_widget_set_child_visible@Base 3.0.0
++ gtk_widget_set_clip@Base 3.13.7
++ gtk_widget_set_composite_name@Base 3.0.0
++ gtk_widget_set_default_direction@Base 3.0.0
++ gtk_widget_set_device_enabled@Base 3.0.0
++ gtk_widget_set_device_events@Base 3.0.0
++ gtk_widget_set_direction@Base 3.0.0
++ gtk_widget_set_double_buffered@Base 3.0.0
++ gtk_widget_set_events@Base 3.0.0
++ gtk_widget_set_focus_on_click@Base 3.19.12
++ gtk_widget_set_font_map@Base 3.17.9
++ gtk_widget_set_font_options@Base 3.17.9
++ gtk_widget_set_halign@Base 3.0.0
++ gtk_widget_set_has_tooltip@Base 3.0.0
++ gtk_widget_set_has_window@Base 3.0.0
++ gtk_widget_set_hexpand@Base 3.0.0
++ gtk_widget_set_hexpand_set@Base 3.0.0
++ gtk_widget_set_mapped@Base 3.0.0
++ gtk_widget_set_margin_bottom@Base 3.0.0
++ gtk_widget_set_margin_end@Base 3.11.5
++ gtk_widget_set_margin_left@Base 3.0.0
++ gtk_widget_set_margin_right@Base 3.0.0
++ gtk_widget_set_margin_start@Base 3.11.5
++ gtk_widget_set_margin_top@Base 3.0.0
++ gtk_widget_set_name@Base 3.0.0
++ gtk_widget_set_no_show_all@Base 3.0.0
++ gtk_widget_set_opacity@Base 3.7.10
++ gtk_widget_set_parent@Base 3.0.0
++ gtk_widget_set_parent_window@Base 3.0.0
++ gtk_widget_set_realized@Base 3.0.0
++ gtk_widget_set_receives_default@Base 3.0.0
++ gtk_widget_set_redraw_on_allocate@Base 3.0.0
++ gtk_widget_set_sensitive@Base 3.0.0
++ gtk_widget_set_size_request@Base 3.0.0
++ gtk_widget_set_state@Base 3.0.0
++ gtk_widget_set_state_flags@Base 3.0.0
++ gtk_widget_set_style@Base 3.0.0
++ gtk_widget_set_support_multidevice@Base 3.0.0
++ gtk_widget_set_tooltip_markup@Base 3.0.0
++ gtk_widget_set_tooltip_text@Base 3.0.0
++ gtk_widget_set_tooltip_window@Base 3.0.0
++ gtk_widget_set_valign@Base 3.0.0
++ gtk_widget_set_vexpand@Base 3.0.0
++ gtk_widget_set_vexpand_set@Base 3.0.0
++ gtk_widget_set_visible@Base 3.0.0
++ gtk_widget_set_visual@Base 3.0.0
++ gtk_widget_set_window@Base 3.0.0
++ gtk_widget_shape_combine_region@Base 3.0.0
++ gtk_widget_show@Base 3.0.0
++ gtk_widget_show_all@Base 3.0.0
++ gtk_widget_show_now@Base 3.0.0
++ gtk_widget_size_allocate@Base 3.0.0
++ gtk_widget_size_allocate_with_baseline@Base 3.9.10
++ gtk_widget_size_request@Base 3.0.0
++ gtk_widget_style_attach@Base 3.0.0
++ gtk_widget_style_get@Base 3.0.0
++ gtk_widget_style_get_property@Base 3.0.0
++ gtk_widget_style_get_valist@Base 3.0.0
++ gtk_widget_thaw_child_notify@Base 3.0.0
++ gtk_widget_translate_coordinates@Base 3.0.0
++ gtk_widget_trigger_tooltip_query@Base 3.0.0
++ gtk_widget_unmap@Base 3.0.0
++ gtk_widget_unparent@Base 3.0.0
++ gtk_widget_unrealize@Base 3.0.0
++ gtk_widget_unregister_window@Base 3.7.10
++ gtk_widget_unset_state_flags@Base 3.0.0
++ gtk_window_accessible_get_type@Base 3.7.10
++ gtk_window_activate_default@Base 3.0.0
++ gtk_window_activate_focus@Base 3.0.0
++ gtk_window_activate_key@Base 3.0.0
++ gtk_window_add_accel_group@Base 3.0.0
++ gtk_window_add_mnemonic@Base 3.0.0
++ gtk_window_begin_move_drag@Base 3.0.0
++ gtk_window_begin_resize_drag@Base 3.0.0
++ gtk_window_close@Base 3.9.10
++ gtk_window_deiconify@Base 3.0.0
++ gtk_window_fullscreen@Base 3.0.0
++ gtk_window_fullscreen_on_monitor@Base 3.17.9
++ gtk_window_get_accept_focus@Base 3.0.0
++ gtk_window_get_application@Base 3.0.0
++ gtk_window_get_attached_to@Base 3.3.16
++ gtk_window_get_decorated@Base 3.0.0
++ gtk_window_get_default_icon_list@Base 3.0.0
++ gtk_window_get_default_icon_name@Base 3.0.0
++ gtk_window_get_default_size@Base 3.0.0
++ gtk_window_get_default_widget@Base 3.0.0
++ gtk_window_get_deletable@Base 3.0.0
++ gtk_window_get_destroy_with_parent@Base 3.0.0
++ gtk_window_get_focus@Base 3.0.0
++ gtk_window_get_focus_on_map@Base 3.0.0
++ gtk_window_get_focus_visible@Base 3.2.1
++ gtk_window_get_gravity@Base 3.0.0
++ gtk_window_get_group@Base 3.0.0
++ gtk_window_get_has_resize_grip@Base 3.0.0
++ gtk_window_get_hide_titlebar_when_maximized@Base 3.3.16
++ gtk_window_get_icon@Base 3.0.0
++ gtk_window_get_icon_list@Base 3.0.0
++ gtk_window_get_icon_name@Base 3.0.0
++ gtk_window_get_mnemonic_modifier@Base 3.0.0
++ gtk_window_get_mnemonics_visible@Base 3.0.0
++ gtk_window_get_modal@Base 3.0.0
++ gtk_window_get_opacity@Base 3.0.0
++ gtk_window_get_position@Base 3.0.0
++ gtk_window_get_resizable@Base 3.0.0
++ gtk_window_get_resize_grip_area@Base 3.0.0
++ gtk_window_get_role@Base 3.0.0
++ gtk_window_get_screen@Base 3.0.0
++ gtk_window_get_size@Base 3.0.0
++ gtk_window_get_skip_pager_hint@Base 3.0.0
++ gtk_window_get_skip_taskbar_hint@Base 3.0.0
++ gtk_window_get_title@Base 3.0.0
++ gtk_window_get_titlebar@Base 3.16.2
++ gtk_window_get_transient_for@Base 3.0.0
++ gtk_window_get_type@Base 3.0.0
++ gtk_window_get_type_hint@Base 3.0.0
++ gtk_window_get_urgency_hint@Base 3.0.0
++ gtk_window_get_window_type@Base 3.0.0
++ gtk_window_group_add_window@Base 3.0.0
++ gtk_window_group_get_current_device_grab@Base 3.0.0
++ gtk_window_group_get_current_grab@Base 3.0.0
++ gtk_window_group_get_type@Base 3.0.0
++ gtk_window_group_list_windows@Base 3.0.0
++ gtk_window_group_new@Base 3.0.0
++ gtk_window_group_remove_window@Base 3.0.0
++ gtk_window_has_group@Base 3.0.0
++ gtk_window_has_toplevel_focus@Base 3.0.0
++ gtk_window_iconify@Base 3.0.0
++ gtk_window_is_active@Base 3.0.0
++ gtk_window_is_maximized@Base 3.11.5
++ gtk_window_list_toplevels@Base 3.0.0
++ gtk_window_maximize@Base 3.0.0
++ gtk_window_mnemonic_activate@Base 3.0.0
++ gtk_window_move@Base 3.0.0
++ gtk_window_new@Base 3.0.0
++ gtk_window_parse_geometry@Base 3.0.0
++ gtk_window_position_get_type@Base 3.0.0
++ gtk_window_present@Base 3.0.0
++ gtk_window_present_with_time@Base 3.0.0
++ gtk_window_propagate_key_event@Base 3.0.0
++ gtk_window_remove_accel_group@Base 3.0.0
++ gtk_window_remove_mnemonic@Base 3.0.0
++ gtk_window_reshow_with_initial_size@Base 3.0.0
++ gtk_window_resize@Base 3.0.0
++ gtk_window_resize_grip_is_visible@Base 3.0.0
++ gtk_window_resize_to_geometry@Base 3.0.0
++ gtk_window_set_accept_focus@Base 3.0.0
++ gtk_window_set_application@Base 3.0.0
++ gtk_window_set_attached_to@Base 3.3.16
++ gtk_window_set_auto_startup_notification@Base 3.0.0
++ gtk_window_set_decorated@Base 3.0.0
++ gtk_window_set_default@Base 3.0.0
++ gtk_window_set_default_geometry@Base 3.0.0
++ gtk_window_set_default_icon@Base 3.0.0
++ gtk_window_set_default_icon_from_file@Base 3.0.0
++ gtk_window_set_default_icon_list@Base 3.0.0
++ gtk_window_set_default_icon_name@Base 3.0.0
++ gtk_window_set_default_size@Base 3.0.0
++ gtk_window_set_deletable@Base 3.0.0
++ gtk_window_set_destroy_with_parent@Base 3.0.0
++ gtk_window_set_focus@Base 3.0.0
++ gtk_window_set_focus_on_map@Base 3.0.0
++ gtk_window_set_focus_visible@Base 3.2.1
++ gtk_window_set_geometry_hints@Base 3.0.0
++ gtk_window_set_gravity@Base 3.0.0
++ gtk_window_set_has_resize_grip@Base 3.0.0
++ gtk_window_set_has_user_ref_count@Base 3.0.0
++ gtk_window_set_hide_titlebar_when_maximized@Base 3.3.16
++ gtk_window_set_icon@Base 3.0.0
++ gtk_window_set_icon_from_file@Base 3.0.0
++ gtk_window_set_icon_list@Base 3.0.0
++ gtk_window_set_icon_name@Base 3.0.0
++ gtk_window_set_interactive_debugging@Base 3.13.7
++ gtk_window_set_keep_above@Base 3.0.0
++ gtk_window_set_keep_below@Base 3.0.0
++ gtk_window_set_mnemonic_modifier@Base 3.0.0
++ gtk_window_set_mnemonics_visible@Base 3.0.0
++ gtk_window_set_modal@Base 3.0.0
++ gtk_window_set_opacity@Base 3.0.0
++ gtk_window_set_position@Base 3.0.0
++ gtk_window_set_resizable@Base 3.0.0
++ gtk_window_set_role@Base 3.0.0
++ gtk_window_set_screen@Base 3.0.0
++ gtk_window_set_skip_pager_hint@Base 3.0.0
++ gtk_window_set_skip_taskbar_hint@Base 3.0.0
++ gtk_window_set_startup_id@Base 3.0.0
++ gtk_window_set_title@Base 3.0.0
++ gtk_window_set_titlebar@Base 3.9.10
++ gtk_window_set_transient_for@Base 3.0.0
++ gtk_window_set_type_hint@Base 3.0.0
++ gtk_window_set_urgency_hint@Base 3.0.0
++ gtk_window_set_wmclass@Base 3.0.0
++ gtk_window_stick@Base 3.0.0
++ gtk_window_type_get_type@Base 3.0.0
++ gtk_window_unfullscreen@Base 3.0.0
++ gtk_window_unmaximize@Base 3.0.0
++ gtk_window_unstick@Base 3.0.0
++ gtk_wrap_mode_get_type@Base 3.0.0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..85a23ca09712c4b9239142d493b4624bffa98778
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++interest-noawait /@MODULES_BASE_PATH@/immodules
++interest-noawait /@OLD_MODULES_BASE_PATH@/immodules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1edd79618eb3062d731156b691647556c84243c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++usr/bin/broadwayd
++usr/bin/gtk-builder-tool
++usr/bin/gtk-launch
++usr/bin/gtk-query-settings
++usr/share/gettext/its/gtkbuilder.its
++usr/share/gettext/its/gtkbuilder.loc
++usr/share/man/man1/broadwayd.1
++usr/share/man/man1/gtk-builder-tool.1
++usr/share/man/man1/gtk-launch.1
++usr/share/man/man1/gtk-query-immodules-3.0.1
++usr/share/man/man1/gtk-query-settings.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..54bf0ae8dd6590a06d0acf2327aa2fa8bdef1071
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/share/doc/@COMMON_PKG@/@NEWS@ usr/share/doc/@BIN_PKG@/@NEWS@
++usr/share/doc/@COMMON_PKG@/@README@ usr/share/doc/@BIN_PKG@/@README@
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0b8c13d3510a885d8774e4321885d06cf278fb5c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++@CONFDIR@/im-multipress.conf
++usr/share/locale
++usr/share/themes
++usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
++usr/share/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..baa3843f17afac850d0b01c2a7eef086c470447a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++usr/include/gtk*
++usr/lib/*/libg?k*.so
++usr/lib/*/pkgconfig/g?k*
++usr/share/aclocal
++usr/share/gir-1.0
++usr/share/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml
++usr/share/gtk-3.0/gtkbuilder.rng
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..907fd969c22af13caa007b0e28a3b5ff697e6aa0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/share/doc/@COMMON_PKG@/@NEWS@ usr/share/doc/@DEV_PKG@/@NEWS@
++usr/share/doc/@COMMON_PKG@/@README@ usr/share/doc/@DEV_PKG@/@README@
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..916b5adced3731068367f43403ffaf3397eb5a8d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++Document: gdk3
++Title: GDK Reference Manual
++Author: Damon Chaplin et al.
++Abstract: The GDK library provides an OS-independant wrapper around the
++ most fundamental graphical user interface functions.  This allows
++ GTK+ to be ported to non-X11 systems, as long as GDK is ported first.
++ .
++ This document covers programming in GDK.
++Section: Programming/C
++
++Format: HTML
++Index: /usr/share/doc/@DOC_PKG@/gdk3/index.html
++Files: /usr/share/doc/@DOC_PKG@/gdk3/*.html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..75354cb98ea203a70dca21d7131bc4a5c8241211
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++Document: gtk3
++Title: GTK+ Reference Manual
++Author: Damon Chaplin et al.
++Abstract: The GTK+ library provides a graphical user interface for
++ C programs, and is used in projects such as GIMP, GNOME, and Mozilla.
++ This document covers programming using the GTK+ library.
++Section: Programming/C
++
++Format: HTML
++Index: /usr/share/doc/@DOC_PKG@/gtk3/index.html
++Files: /usr/share/doc/@DOC_PKG@/gtk3/*.html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bf4cbd5a4e1168336e4bed9cdd276a49c482415b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++docs/*.txt
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1811c0857e8787c4b527b3b7f91f77751db92e36
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/share/gtk-doc/html/gtk* usr/share/doc/@DOC_PKG@
++usr/share/gtk-doc/html/gdk* usr/share/doc/@DOC_PKG@
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..441d08c6c50faf5d7692a130bd03f3e4fa359cc8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++usr/share/doc/@DOC_PKG@/gdk3 usr/share/gtk-doc/html/gdk3
++usr/share/doc/@DOC_PKG@/gtk3 usr/share/gtk-doc/html/gtk3
++usr/share/doc/libatk1.0-doc/atk usr/share/doc/@DOC_PKG@/atk
++usr/share/doc/libglib2.0-doc/glib usr/share/doc/@DOC_PKG@/glib
++usr/share/doc/libglib2.0-doc/gobject usr/share/doc/@DOC_PKG@/gobject
++usr/share/doc/libpango1.0-doc/pango usr/share/doc/@DOC_PKG@/pango
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..778e6e6a584f809ad994f8e53ba331247cf3b1b6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,39 @@@
++Missing sources from gtk+3.0
++============================
++
++zlib.js-0.1.6
++-------------
++
++Source for: gdk/broadway/rawinflate.min.js
++Obtained from: <https://github.com/imaya/zlib.js> tag "0.1.6"
++Files removed:
++    bin/* except for rawinflate.min.js* (precompiled, not needed here)
++    .travis/, .travis.yml (regression tests, not needed here)
++    test/ (regression tests, not needed here)
++    vendor/google-closure-compiler/ (third-party, source not included)
++    vendor/mt.js/ (third-party, only needed for tests)
++
++gdk/broadway/rawinflate.min.js is identical to bin/rawinflate.min.js.
++
++Debian's closure-compiler_20130227+dfsg1-6 is not identical to the one
++originally distributed with zlib.js, but produces output closely resembling
++bin/rawinflate.min.js when invoked like this (command line adapted from
++build.xml, using bin/rawinflate.min.js.map to determine minimal sources):
++
++    cat LICENSE_min
++    echo -n '(function() {'
++    closure-compiler --compilation_level=ADVANCED_OPTIMIZATIONS \
++        --warning_level=VERBOSE \
++        --define=goog.DEBUG=false \
++        --summary_detail_level=3 \
++        --language_in=ECMASCRIPT5_STRICT \
++        --source_map_format=V3 \
++        --process_closure_primitives \
++        --js closure-primitives/base.js \
++        --js define/typedarray/hybrid.js \
++        --js=src/export_object.js \
++        --js=src/huffman.js \
++        --js=src/rawinflate.js \
++        --js=src/zlib.js \
++        --js=export/rawinflate.js
++    echo -n '}).call(this); //@ sourceMappingURL=rawinflate.min.js.map'
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..98a73f52a6181e737bbc793fe91bfc3c2ee07af1
new file mode 120000 (symlink)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++zlib.js-0.1.6/src/rawinflate.js
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6d15ba0f83a88fc0cc4c994b1a12d3ea4c0d9dcd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,133 @@@
++
++# Change Log
++
++
++## 0.1.6: 2013/05/10
++
++https://github.com/imaya/zlib.js/compare/0.1.5...0.1.6
++
++
++### compression
++
++- export raw deflate
++
++
++### decompression
++
++- export raw inflate
++- fix inflate stream exporting
++
++
++### etc
++
++- export crc-32
++- add pretty print build
++- optimize compile settings
++- add english document
++- support source maps
++- support Travis CI
++- refactor unit test
++- update closure compiler (custom version)
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.5: 2013/02/10
++
++https://github.com/imaya/zlib.js/compare/0.1.4...0.1.5
++
++
++### compression
++
++- fix PKZIP CRC-32 bug
++
++
++### etc
++
++- update PKZIP unit test
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.4: 2013/02/10
++
++https://github.com/imaya/zlib.js/compare/0.1.3...0.1.4
++
++
++### compression
++
++- add PKZIP compression (basic support)
++
++
++### decompression
++
++- add PKZIP decompression (basic support)
++
++
++### etc
++
++- refactor build environment (use export js file)
++- remove license comment in source code
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.3: 2012/12/21
++
++https://github.com/imaya/zlib.js/compare/0.1.2...0.1.3
++
++
++### compression
++
++- fix rare case bug
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.2: 2012/12/17
++
++https://github.com/imaya/zlib.js/compare/0.1.1...0.1.2
++
++
++### compression
++
++- fix adler-32 bug (byte order)
++- refactor raw deflate code
++
++### decompression
++
++- refactor inflate stream code
++
++### etc
++
++- update closure compiler (custom version)
++- update inflate unit test (enable adler-32 verification)
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.1: 2012/11/15
++
++https://github.com/imaya/zlib.js/compare/0.1.0...0.1.1
++
++
++### compression
++
++- fix huffman coding (add reverse package merge algorithm)
++
++### etc
++
++- fix gunzip unit test
++
++
++-------------------------------------------------------------------------------
++
++
++## 0.1.0: 2012/09/24
++
++- first release
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..489fd6451c24e2b680fc7f7ebd4e1babc6f1ac57
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,28 @@@
++/**
++ * @license
++ * zlib.js
++ * JavaScript Zlib Library
++ * https://github.com/imaya/zlib.js
++ *
++ * The MIT License
++ *
++ * Copyright (c) 2012 imaya
++ *
++ * 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.
++ */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0694e7c0488b739157a657c53431d87bbb0210c4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..60341241e8a955afe3c5dd8d934c574b9f0934b9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,285 @@@
++zlib.js
++=======
++
++[![Build Status](https://travis-ci.org/imaya/zlib.js.png?branch=master)](https://travis-ci.org/imaya/zlib.js)
++
++[Japanese version](./README.md)
++
++zlib.js is ZLIB(RFC1950), DEFLATE(RFC1951), GZIP(RFC1952) and PKZIP implementation in JavaScript.
++
++
++Usage
++------
++
++Use one in "bin" directory.
++
++- zlib_and_gzip.min.js: ZLIB + GZIP
++    + (Raw)
++        * rawdeflate.js: Raw Deflate
++        * rawinflate.js: Raw Inflate
++    + zlib.min.js: ZLIB Inflate + Deflate
++        * inflate.min.js: ZLIB Inflate
++        * deflate.min.js: ZLIB Deflate
++        * inflate_stream.min.js: ZLIB Inflate (stream mode)
++    + (GZIP)
++        * gzip.min.js: GZIP
++        * gunzip.min.js: GUNZIP
++    + (PKZIP)
++        * zip.min.js ZIP
++        * unzip.min.js UNZIP
++- node-zlib.js: (ZLIB + GZIP for node.js)
++
++
++### Compression
++
++#### Raw Deflate
++
++```js
++// plain = Array.<number> or Uint8Array
++var defalte = new Zlib.RawDeflate(plain);
++var compressed = deflate.compress();
++```
++
++#### Raw Deflate Option
++
++See ZLIB Option.
++
++#### ZLIB
++
++```js
++// plain = Array.<number> or Uint8Array
++var defalte = new Zlib.Deflate(plain);
++var compressed = deflate.compress();
++```
++
++##### ZLIB Option
++
++Second argument of Zlib.Deflate constructor
++
++```js
++{
++    compressionType: Zlib.Deflate.CompressionType, // compression type
++    lazy: number // lazy matching parameter
++}
++```
++
++<code>Zlib.Deflate.CompressionType</code> is enumerable,
++Choose one in <code>NONE</code> (Store), <code>FIXED</code> (Fixed Huffman Coding), <code>DYNAMIC</code> (Dynamic Huffman Coding).
++Default value is <code>DYNAMIC</code>.
++
++<code>lazy</code> is Lazy Matching length.
++This parameter is deprecated.
++
++
++#### GZIP
++
++GZIP implementation is imcompleted.
++However no problem in usual use. 
++
++```js
++// plain = Array.<number> or Uint8Array
++var gzip = new Zlib.Gzip(plain);
++var compressed = gzip.compress();
++```
++
++
++##### GZIP Option
++
++```js
++{
++    deflateOptions: Object, // see: deflate option (ZLIB Option)
++    flags: {
++        fname: boolean, // use filename?
++        comment: boolean, // use comment?
++        fhcrc: boolean // use file checksum?
++    },
++    filename: string, // filename
++    comment: string // comment
++}
++```
++
++
++#### PKZIP
++
++```js
++var zip = new Zlib.Zip();
++// plainData1
++zip.addFile(plainData1, {
++    filename: stringToByteArray('foo.txt')
++});
++zip.addFile(plainData2, {
++    filename: stringToByteArray('bar.txt')
++});
++zip.addFile(plainData3, {
++    filename: stringToByteArray('baz.txt')
++});
++var compressed = zip.compress();
++
++function stringToByteArray(str) {
++    var array = new (window.Uint8Array !== void 0 ? Uint8Array : Array)(str.length);
++    var i;
++    var il;
++
++    for (i = 0, il = str.length; i < il; ++i) {
++        array[i] = str.charCodeAt(i) & 0xff;
++    }
++
++    return array;
++}
++```
++
++##### PKZIP Option
++
++filename, comment, extraField are must use Uint8Array if enabled Typed Array.
++
++```js
++{
++    filename: (Array.<number>|Uint8Array), // filename
++    comment: (Array.<number>|Uint8Array), //comment
++    extraField: (Array.<number>|Uint8Array), // extra field
++    compress: boolean, // compress when called "addFile" method.
++    compressionMethod: Zlib.Zip.CompressionMethod, // STORE or DEFLATE
++    os: Zlib.Zip.OperatingSystem, // MSDOS or UNIX or MACINTOSH
++    deflateOption: Object // see: ZLIB Option
++}
++```
++
++### Decompression
++
++#### Raw Deflate
++
++```js
++// compressed = Array.<number> or Uint8Array
++var inflate = new Zlib.RawInflate(compressed);
++var plain = inflate.decompress();
++```
++
++#### Raw Deflate Option
++
++See ZLIB Option.
++
++#### ZLIB
++
++```js
++// compressed = Array.<number> or Uint8Array
++var inflate = new Zlib.Inflate(compressed);
++var plain = inflate.decompress();
++```
++
++##### ZLIB Option
++
++Second argument of Zlib.Inflate constructor
++
++```js
++{
++    'index': number, // start position in input buffer 
++    'bufferSize': number, // initial output buffer size
++    'bufferType': Zlib.Inflate.BufferType, // buffer expantion type
++    'resize': boolean, // resize buffer(ArrayBuffer) when end of decompression (default: false)
++    'verify': boolean  // verify decompression result (default: false)
++}
++```
++
++<code>Zlib.Inflate.BufferType</code> is enumerable.
++Choose one <code>ADAPTIVE</code>(default) and <code>BLOCK</code>.
++
++- <code>ADAPTIVE</code>: buffer expansion based on compression ratio in filled buffer.
++- <code>BLOCK</code>: buffer expansion based on <code>BufferSize</code>.
++
++
++#### GZIP
++
++```js
++// compressed = Array.<number> or Uint8Array
++var gunzip = new Zlib.Gunzip(compressed);
++var plain = gunzip.decompress();
++```
++
++
++#### PKZIP
++
++
++```js
++// compressed = Array.<number> or Uint8Array
++var unzip = new Zlib.Unzip(compressed);
++var filenames = unzip.getFilenames();
++var plain = unzip.decompress(filenames[0]);
++```
++
++
++### Node.js
++
++see unit tests.
++<https://github.com/imaya/zlib.js/blob/master/test/node-test.js>
++
++
++## Debug
++
++If you want to know the code before compile, SourceMaps and PrettyPrint can be used.
++
++
++### SourceMaps
++
++If you want to enable the SourceMaps if, you can use the `src` directory and *.min.js.map.
++
++    - inflate.min.js
++    - inflate.min.js.map
++    - [src]
++      - (source files)
++
++`[src]` is zlib.js source code directory.
++
++
++### Pretty Print
++
++`zlib.pretty.js` is not renamed symbol.
++
++
++How to build
++------------
++
++Build using Ant and Closure Compiler.
++
++### Requirement
++
++- Ant 1.8+
++- JRE 1.6+
++- Python
++
++### Build
++
++Use "ant" command.
++
++```
++$ ant [target]
++```
++
++#### Build target
++
++target         | generate file        | implementation
++---------------|----------------------|-------------
++deps           | deps.js              | (dependency: deps.js)
++deflate        | deflate.min.js       | ZLIB Deflate
++inflate        | inflate.min.js       | ZLIB Inflate
++inflate_stream | inlate_stream.min.js | ZLIB Inlate (stream)
++zlib           | zlib.min.js          | ZLIB Deflate + Inflate
++gzip           | gzip.min.js          | GZIP Compression
++gunzip         | gunzip.min.js        | GZIP Decompression
++zlib_and_gzip  | zlib_and_gzip.min.js | ZLIB + GZIP
++node           | node-zlib.js         | ZLIB + GZIP for node.js
++zip            | zip.min.js           | PKZIP Compression
++unzip          | unzip.min.js         | PKZIP Decompression
++all            | *                    | default target
++
++
++Issue
++-----
++
++Preset dictionary is not implemented.
++
++
++License
++--------
++
++Copyright &copy; 2012 imaya.
++Licensed under the MIT License.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ad18e41d19ec19e3ea109101b47b924ad2725ea3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,307 @@@
++zlib.js
++=======
++
++[![Build Status](https://travis-ci.org/imaya/zlib.js.png?branch=master)](https://travis-ci.org/imaya/zlib.js)
++
++[English version](./README.en.md)
++
++zlib.js は ZLIB(RFC1950), DEFLATE(RFC1951), GZIP(RFC1952), PKZIP の JavaScript 実装です。
++
++
++使い方
++------
++
++zlib.js は必要な機能ごとに分割されています。
++bin ディレクトリから必要なものを利用してください。
++
++- zlib_and_gzip.min.js: ZLIB + GZIP
++    + (Raw)
++        * rawdeflate.js: Raw Deflate
++        * rawinflate.js: Raw Inflate
++    + zlib.min.js: ZLIB Inflate + Deflate
++        * inflate.min.js: ZLIB Inflate
++        * deflate.min.js: ZLIB Deflate
++        * inflate_stream.min.js: ZLIB Inflate (stream mode)
++    + (GZIP)
++        * gzip.min.js: GZIP
++        * gunzip.min.js: GUNZIP
++    + (PKZIP)
++        * zip.min.js ZIP
++        * unzip.min.js UNZIP
++- node-zlib.js: (ZLIB + GZIP for node.js)
++
++
++### 圧縮 (Compress)
++
++#### Raw Deflate
++
++```js
++// plain = Array.<number> or Uint8Array
++var defalte = new Zlib.RawDeflate(plain);
++var compressed = deflate.compress();
++```
++
++#### Raw Deflate Option
++
++ZLIB Option を参照してください。
++
++
++#### ZLIB
++
++```js
++// plain = Array.<number> or Uint8Array
++var defalte = new Zlib.Deflate(plain);
++var compressed = deflate.compress();
++```
++
++##### ZLIB Option
++
++<code>Zlib.Deflate</code> の第二引数にオブジェクトを渡す事で圧縮オプションを指定する事が出来ます。
++
++```js
++{
++    compressionType: Zlib.Deflate.CompressionType, // 圧縮タイプ
++    lazy: number // lazy matching の閾値
++}
++```
++
++<code>Zlib.Deflate.CompressionType</code> は
++<code>NONE</code>(無圧縮), <code>FIXED</code>(固定ハフマン符号), <code>DYNAMIC</code>(動的ハフマン符号) から選択する事ができます。
++default は <code>DYNAMIC</code> です。
++
++<code>lazy</code> は Lazy Matching の閾値を指定します。
++Lazy Matching とは、LZSS のマッチ長が閾値より低かった場合、次の Byte から LZSS の最長一致を試み、マッチ長の長い方を選択する手法です。
++
++
++#### GZIP
++
++GZIP の実装は現在不完全ですが、ただの圧縮コンテナとして使用する場合には特に問題はありません。
++zlib.js を用いて作成された GZIP の OS は、自動的に UNKNOWN に設定されます。
++
++```js
++// plain = Array.<number> or Uint8Array
++var gzip = new Zlib.Gzip(plain);
++var compressed = gzip.compress();
++```
++
++
++##### GZIP Option
++
++```js
++{
++    deflateOptions: Object, // deflate option (ZLIB Option 参照)
++    flags: {
++        fname: boolean, // ファイル名を使用するか
++        comment: boolean, // コメントを使用するか
++        fhcrc: boolean // FHCRC を使用するか
++    },
++    filename: string, // flags.fname が true のときに書き込むファイル名
++    comment: string // flags.comment が true のときに書き込むコメント
++}
++```
++
++
++#### PKZIP
++
++PKZIP では複数のファイルを扱うため、他のものとは少し使い方が異なります。
++
++```js
++var zip = new Zlib.Zip();
++// plainData1
++zip.addFile(plainData1, {
++    filename: stringToByteArray('foo.txt')
++});
++zip.addFile(plainData2, {
++    filename: stringToByteArray('bar.txt')
++});
++zip.addFile(plainData3, {
++    filename: stringToByteArray('baz.txt')
++});
++var compressed = zip.compress();
++
++function stringToByteArray(str) {
++    var array = new (window.Uint8Array !== void 0 ? Uint8Array : Array)(str.length);
++    var i;
++    var il;
++
++    for (i = 0, il = str.length; i < il; ++i) {
++        array[i] = str.charCodeAt(i) & 0xff;
++    }
++
++    return array;
++}
++```
++
++##### PKZIP Option
++
++filename, comment, extraField は Typed Array が使用可能な場合は必ず Uint8Array を使用してください。
++
++```js
++{
++    filename: (Array.<number>|Uint8Array), // ファイル名
++    comment: (Array.<number>|Uint8Array), // コメント
++    extraField: (Array.<number>|Uint8Array), // その他の領域
++    compress: boolean, // addFile メソッドを呼んだときに圧縮するか (通常は compress メソッドの呼び出し時に圧縮)
++    compressionMethod: Zlib.Zip.CompressionMethod, // STORE or DEFLATE
++    os: Zlib.Zip.OperatingSystem, // MSDOS or UNIX or MACINTOSH
++    deflateOption: Object // see: ZLIB Option
++}
++```
++
++### 伸張 (Decompress)
++
++圧縮されたデータの伸張は、基本的に各コンストラクタに圧縮されたデータを渡し、
++それの <code>decompress</code> メソッドを呼ぶ事で伸張処理を開始する事が出来ます。
++
++#### Raw Deflate
++
++```js
++// compressed = Array.<number> or Uint8Array
++var inflate = new Zlib.RawInflate(compressed);
++var plain = inflate.decompress();
++```
++
++#### Raw Deflate Option
++
++ZLIB Option を参照してください。
++
++#### ZLIB
++
++```js
++// compressed = Array.<number> or Uint8Array
++var inflate = new Zlib.Inflate(compressed);
++var plain = inflate.decompress();
++```
++
++##### ZLIB Option
++
++<code>Zlib.Inflate</code> の第二引数にオブジェクトを渡す事で伸張オプションを指定する事ができます。
++
++```js
++{
++    'index': number, // 入力バッファの開始位置
++    'bufferSize': number, // 出力バッファの初期サイズ
++    'bufferType': Zlib.Inflate.BufferType, // バッファの管理方法
++    'resize': boolean, // 出力バッファのリサイズ
++    'verify': boolean  // 伸張結果の検証を行うか
++}
++```
++
++<code>Zlib.Inflate.BufferType</code> は <code>ADAPTIVE</code>(default) か <code>BLOCK</code> を選択する事ができます。
++
++- <code>ADAPTIVE</code> はバッファを伸張後のサイズを予測して一気に拡張しますが、データによっては余分にメモリを使用しすぎる事があります。
++- <code>BLOCK</code> では <code>BufferSize</code> ずつ拡張していきますが、動作はあまり速くありません。
++
++<code>resize</code> オプションは Typed Array 利用可能時
++<code>decompress</code> メソッドで返却する値の <code>ArrayBuffer</code> を <code>Uint8Array</code> の長さまで縮小させます。
++default は <code>false</code> です。
++
++<code>verify</code> オプションは Adler-32 Checksum の検証を行うかを指定します。
++default は <code>false</code> です。
++
++
++#### GZIP
++
++```js
++// compressed = Array.<number> or Uint8Array
++var gunzip = new Zlib.Gunzip(compressed);
++var plain = gunzip.decompress();
++```
++
++Gunzip のオプションは現在ありません。
++
++
++#### PKZIP
++
++PKZIP の構築と同様に複数ファイルを扱うため、他のものとは少し使い方が異なります。
++
++```js
++// compressed = Array.<number> or Uint8Array
++var unzip = new Zlib.Unzip(compressed);
++var filenames = unzip.getFilenames();
++var plain = unzip.decompress(filenames[0]);
++```
++
++Unzip のオプションは現在ありません。
++
++
++### Node.js
++
++Node.js で使用する場合はユニットテストを参照してください。
++<https://github.com/imaya/zlib.js/blob/master/test/node-test.js>
++
++
++## Debug
++
++zlib.js では JavaScript ファイルを minify された形で提供していますが、開発中やデバッグ時に minify する前の状態が知りたい事があります。
++そういった時のために SourceMaps ファイルや Pretty Print されたファイルも提供しています。
++
++
++### SourceMaps
++
++SourceMaps を有効にするには以下のように対象となるファイルに `.map` を付けたファイルと、変換前のソースコードである `src` ディレクトリを配置します。
++
++    - inflate.min.js
++    - inflate.min.js.map
++    - [src]
++      - (source files)
++
++なお、ここに書いてある `[src]` は zlib.js のリポジトリの `src` ディレクトリをコピーしてください。
++
++
++### Pretty Print
++
++SourceMaps とは異なりますが、minify の変数名の短縮のみ避けられれば良いという場合には、 Closure Compiler で読みやすくしたファイルを利用することも可能です。
++`zlib.pretty.js` というファイル名で全ての実装がはいっていますので、minify されたものをこのファイルに置き換えるだけで使用できます。
++
++
++
++How to build
++------------
++
++ビルドは Ant と Closure Compiler を使用して行います。
++
++### 必要な環境
++
++- Ant 1.8+
++- JRE 1.6+
++- Python
++
++### ビルド
++
++Ant を使ってビルドを行います。
++
++```
++$ ant [target]
++```
++
++#### ビルドターゲット
++
++target         | ファイル名            | 含まれる実装
++---------------|----------------------|-------------
++deps           | deps.js              | 依存関係の解決
++deflate        | deflate.min.js       | ZLIB Deflate
++inflate        | inflate.min.js       | ZLIB Inflate
++inflate_stream | inlate_stream.min.js | ZLIB Inlate (stream)
++zlib           | zlib.min.js          | ZLIB Deflate + Inflate
++gzip           | gzip.min.js          | GZIP Compression
++gunzip         | gunzip.min.js        | GZIP Decompression
++zlib_and_gzip  | zlib_and_gzip.min.js | ZLIB + GZIP
++node           | node-zlib.js         | ZLIB + GZIP for node.js
++zip            | zip.min.js           | PKZIP Compression
++unzip          | unzip.min.js         | PKZIP Decompression
++all            | *                    | default target
++
++
++Issue
++-----
++
++現在プリセット辞書を用いた圧縮形式には対応していません。
++プリセット辞書は通常の圧縮では利用されないため、影響は少ないと思います。
++
++
++ライセンス
++-----------
++
++Copyright &copy; 2012 imaya.
++Licensed under the MIT License.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f9c7f87ecd07fc2a55b22be1d414b80f3aed1760
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';var l=void 0,p=this;function q(c,d){var a=c.split("."),b=p;!(a[0]in b)&&b.execScript&&b.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)!a.length&&d!==l?b[e]=d:b=b[e]?b[e]:b[e]={}};var r="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function u(c){var d=c.length,a=0,b=Number.POSITIVE_INFINITY,e,f,g,h,k,m,s,n,t;for(n=0;n<d;++n)c[n]>a&&(a=c[n]),c[n]<b&&(b=c[n]);e=1<<a;f=new (r?Uint32Array:Array)(e);g=1;h=0;for(k=2;g<=a;){for(n=0;n<d;++n)if(c[n]===g){m=0;s=h;for(t=0;t<g;++t)m=m<<1|s&1,s>>=1;for(t=m;t<e;t+=k)f[t]=g<<16|n;++h}++g;h<<=1;k<<=1}return[f,a,b]};function v(c,d){this.g=[];this.h=32768;this.c=this.f=this.d=this.k=0;this.input=r?new Uint8Array(c):c;this.l=!1;this.i=w;this.p=!1;if(d||!(d={}))d.index&&(this.d=d.index),d.bufferSize&&(this.h=d.bufferSize),d.bufferType&&(this.i=d.bufferType),d.resize&&(this.p=d.resize);switch(this.i){case x:this.a=32768;this.b=new (r?Uint8Array:Array)(32768+this.h+258);break;case w:this.a=0;this.b=new (r?Uint8Array:Array)(this.h);this.e=this.u;this.m=this.r;this.j=this.s;break;default:throw Error("invalid inflate mode");
++}}var x=0,w=1;
++v.prototype.t=function(){for(;!this.l;){var c=y(this,3);c&1&&(this.l=!0);c>>>=1;switch(c){case 0:var d=this.input,a=this.d,b=this.b,e=this.a,f=l,g=l,h=l,k=b.length,m=l;this.c=this.f=0;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: LEN (first byte)");g=f;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: LEN (second byte)");g|=f<<8;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: NLEN (first byte)");h=f;f=d[a++];if(f===l)throw Error("invalid uncompressed block header: NLEN (second byte)");h|=
++f<<8;if(g===~h)throw Error("invalid uncompressed block header: length verify");if(a+g>d.length)throw Error("input buffer is broken");switch(this.i){case x:for(;e+g>b.length;){m=k-e;g-=m;if(r)b.set(d.subarray(a,a+m),e),e+=m,a+=m;else for(;m--;)b[e++]=d[a++];this.a=e;b=this.e();e=this.a}break;case w:for(;e+g>b.length;)b=this.e({o:2});break;default:throw Error("invalid inflate mode");}if(r)b.set(d.subarray(a,a+g),e),e+=g,a+=g;else for(;g--;)b[e++]=d[a++];this.d=a;this.a=e;this.b=b;break;case 1:this.j(z,
++A);break;case 2:B(this);break;default:throw Error("unknown BTYPE: "+c);}}return this.m()};
++var C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],D=r?new Uint16Array(C):C,E=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],F=r?new Uint16Array(E):E,G=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],H=r?new Uint8Array(G):G,I=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],J=r?new Uint16Array(I):I,K=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,
++13],L=r?new Uint8Array(K):K,M=new (r?Uint8Array:Array)(288),N,O;N=0;for(O=M.length;N<O;++N)M[N]=143>=N?8:255>=N?9:279>=N?7:8;var z=u(M),P=new (r?Uint8Array:Array)(30),Q,R;Q=0;for(R=P.length;Q<R;++Q)P[Q]=5;var A=u(P);function y(c,d){for(var a=c.f,b=c.c,e=c.input,f=c.d,g;b<d;){g=e[f++];if(g===l)throw Error("input buffer is broken");a|=g<<b;b+=8}g=a&(1<<d)-1;c.f=a>>>d;c.c=b-d;c.d=f;return g}
++function S(c,d){for(var a=c.f,b=c.c,e=c.input,f=c.d,g=d[0],h=d[1],k,m,s;b<h;){k=e[f++];if(k===l)break;a|=k<<b;b+=8}m=g[a&(1<<h)-1];s=m>>>16;c.f=a>>s;c.c=b-s;c.d=f;return m&65535}
++function B(c){function d(a,c,b){var d,f,e,g;for(g=0;g<a;)switch(d=S(this,c),d){case 16:for(e=3+y(this,2);e--;)b[g++]=f;break;case 17:for(e=3+y(this,3);e--;)b[g++]=0;f=0;break;case 18:for(e=11+y(this,7);e--;)b[g++]=0;f=0;break;default:f=b[g++]=d}return b}var a=y(c,5)+257,b=y(c,5)+1,e=y(c,4)+4,f=new (r?Uint8Array:Array)(D.length),g,h,k,m;for(m=0;m<e;++m)f[D[m]]=y(c,3);g=u(f);h=new (r?Uint8Array:Array)(a);k=new (r?Uint8Array:Array)(b);c.j(u(d.call(c,a,g,h)),u(d.call(c,b,g,k)))}
++v.prototype.j=function(c,d){var a=this.b,b=this.a;this.n=c;for(var e=a.length-258,f,g,h,k;256!==(f=S(this,c));)if(256>f)b>=e&&(this.a=b,a=this.e(),b=this.a),a[b++]=f;else{g=f-257;k=F[g];0<H[g]&&(k+=y(this,H[g]));f=S(this,d);h=J[f];0<L[f]&&(h+=y(this,L[f]));b>=e&&(this.a=b,a=this.e(),b=this.a);for(;k--;)a[b]=a[b++-h]}for(;8<=this.c;)this.c-=8,this.d--;this.a=b};
++v.prototype.s=function(c,d){var a=this.b,b=this.a;this.n=c;for(var e=a.length,f,g,h,k;256!==(f=S(this,c));)if(256>f)b>=e&&(a=this.e(),e=a.length),a[b++]=f;else{g=f-257;k=F[g];0<H[g]&&(k+=y(this,H[g]));f=S(this,d);h=J[f];0<L[f]&&(h+=y(this,L[f]));b+k>e&&(a=this.e(),e=a.length);for(;k--;)a[b]=a[b++-h]}for(;8<=this.c;)this.c-=8,this.d--;this.a=b};
++v.prototype.e=function(){var c=new (r?Uint8Array:Array)(this.a-32768),d=this.a-32768,a,b,e=this.b;if(r)c.set(e.subarray(32768,c.length));else{a=0;for(b=c.length;a<b;++a)c[a]=e[a+32768]}this.g.push(c);this.k+=c.length;if(r)e.set(e.subarray(d,d+32768));else for(a=0;32768>a;++a)e[a]=e[d+a];this.a=32768;return e};
++v.prototype.u=function(c){var d,a=this.input.length/this.d+1|0,b,e,f,g=this.input,h=this.b;c&&("number"===typeof c.o&&(a=c.o),"number"===typeof c.q&&(a+=c.q));2>a?(b=(g.length-this.d)/this.n[2],f=258*(b/2)|0,e=f<h.length?h.length+f:h.length<<1):e=h.length*a;r?(d=new Uint8Array(e),d.set(h)):d=h;return this.b=d};
++v.prototype.m=function(){var c=0,d=this.b,a=this.g,b,e=new (r?Uint8Array:Array)(this.k+(this.a-32768)),f,g,h,k;if(0===a.length)return r?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);f=0;for(g=a.length;f<g;++f){b=a[f];h=0;for(k=b.length;h<k;++h)e[c++]=b[h]}f=32768;for(g=this.a;f<g;++f)e[c++]=d[f];this.g=[];return this.buffer=e};
++v.prototype.r=function(){var c,d=this.a;r?this.p?(c=new Uint8Array(d),c.set(this.b.subarray(0,d))):c=this.b.subarray(0,d):(this.b.length>d&&(this.b.length=d),c=this.b);return this.buffer=c};q("Zlib.RawInflate",v);q("Zlib.RawInflate.prototype.decompress",v.prototype.t);var T={ADAPTIVE:w,BLOCK:x},U,V,W,X;if(Object.keys)U=Object.keys(T);else for(V in U=[],W=0,T)U[W++]=V;W=0;for(X=U.length;W<X;++W)V=U[W],q("Zlib.RawInflate.BufferType."+V,T[V]);}).call(this); //@ sourceMappingURL=rawinflate.min.js.map
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0465ceadf2fb73a9cc0b6d485dab11faa6c1b17c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++{
++"version":3,
++"file":"./bin/rawinflate.min.js",
++"lineCount":15,
++"mappings":"A,mHAAA,aA4CAA,EAAc,IA0HKC,SAAQ,EAAA,CAACC,CAAD,CAAOC,CAAP,CAAyC,CAClE,IAAIC,EAAQF,CAAAG,MAAA,CAAW,GAAX,CAAZ,CACIC,EAA8BN,CAK9B,GAAEI,CAAA,CAAM,CAAN,CAAF,EAAcE,EAAd,CAAJ,EAA0BA,CAAAC,WAA1B,EACED,CAAAC,WAAA,CAAe,MAAf,CAAwBH,CAAA,CAAM,CAAN,CAAxB,CASF,KAAK,IAAII,CAAT,CAAeJ,CAAAK,OAAf,GAAgCD,CAAhC,CAAuCJ,CAAAM,MAAA,EAAvC,EAAA,CACM,CAACN,CAAAK,OAAL,EAAgCN,CAAhC,GAyjBaQ,CAzjBb,CAEEL,CAAA,CAAIE,CAAJ,CAFF,CAEcL,CAFd,CAIEG,CAJF,CAGWA,CAAA,CAAIE,CAAJ,CAAJ,CACCF,CAAA,CAAIE,CAAJ,CADD,CAGCF,CAAA,CAAIE,CAAJ,CAHD,CAGa,EAxB4C,C,CC5JpE,IAAII,EACqB,WADrBA,GACD,MAAOC,WADND,EAEsB,WAFtBA,GAED,MAAOE,YAFNF,EAGsB,WAHtBA,GAGD,MAAOG,Y,CCFuBC,QAAQ,EAAA,CAACC,CAAD,CAAU,CAEjD,IAAIC,EAAWD,CAAAR,OAAf,CAEIU,EAAgB,CAFpB,CAIIC,EAAgBC,MAAAC,kBAJpB,CAMIC,CANJ,CAQIC,CARJ,CAUIC,CAVJ,CAYIC,CAZJ,CAiBIC,CAjBJ,CAmBIC,CAnBJ,CAqBIC,CArBJ,CAuBIC,CAvBJ,CA2BIC,CAKJ,KAAKD,CAAL,CAAS,CAAT,CAA2BA,CAA3B,CAAiBZ,CAAjB,CAAmC,EAAEY,CAArC,CACMb,CAAA,CAAQa,CAAR,CAGJ,CAHiBX,CAGjB,GAFEA,CAEF,CAFkBF,CAAA,CAAQa,CAAR,CAElB,EAAIb,CAAA,CAAQa,CAAR,CAAJ,CAAiBV,CAAjB,GACEA,CADF,CACkBH,CAAA,CAAQa,CAAR,CADlB,CAKFP,EAAA,CAAO,CAAP,EAAYJ,CACZK,EAAA,CAAQ,KAAKZ,CAAA,CAAiBG,WAAjB,CAA+BiB,KAApC,EAA2CT,CAA3C,CAGHE,EAAA,CAAY,CAAGC,EAAf,CAAsB,CAA3B,KAA8BC,CAA9B,CAAqC,CAArC,CAAwCF,CAAxC,EAAqDN,CAArD,CAAA,CAAqE,CACnE,IAAKW,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBZ,CAAhB,CAA0B,EAAEY,CAA5B,CACE,GAAIb,CAAA,CAAQa,CAAR,CAAJ,GAAmBL,CAAnB,CAA8B,CAEvBG,CAAA,CAAW,CAAGC,EAAd,CAAsBH,CAA3B,KAAiCK,CAAjC,CAAqC,CAArC,CAAwCA,CAAxC,CAA4CN,CAA5C,CAAuD,EAAEM,CAAzD,CACEH,CACA,CADYA,CACZ,EADwB,CACxB,CAD8BC,CAC9B,CADsC,CACtC,CAAAA,CAAA,GAAU,CAOZ,KAAKE,CAAL,CAASH,CAAT,CAAmBG,CAAnB,CAAuBR,CAAvB,CAA6BQ,CAA7B,EAAkCJ,CAAlC,CACEH,CAAA,CAAMO,CAAN,CAAA,CAAYN,CAAZ,EAAyB,EAAzB,CAA+BK,CAGjC,GAAEJ,CAf0B,CAoBhC,EAAED,CACFC,EAAA,GAAS,CACTC,EAAA,GAAS,CAxB0D,CA2BrE,MAAO,CAACH,CAAD,CAAQL,CAAR,CAAuBC,CAAvB,CA1E0C,C,CCgBjCa,QAAQ,EAAA,CAACC,CAAD,CAAQC,CAAR,CAAoB,CAI5C,IAAAC,EAAA,CAAc,EAEd,KAAAC,EAAA,CAzBiCC,KAiCjC,KAAAC,EAAA,CAFA,IAAAC,EAEA,CAJA,IAAAC,EAIA,CANA,IAAAC,EAMA,CANgB,CAQhB,KAAAR,MAAA,CAAatB,CAAA,CAAiB,IAAIC,UAAJ,CAAeqB,CAAf,CAAjB,CAAyCA,CAMtD,KAAAS,EAAA,CAAc,CAAA,CAEd,KAAAC,EAAA,CAAkBC,CAElB,KAAAC,EAAA,CAAc,CAAA,CAGd,IAAIX,CAAJ,EAAkB,EAAEA,CAAF,CAAe,EAAf,CAAlB,CACMA,CAAA,MASJ,GARE,IAAAM,EAQF,CARYN,CAAA,MAQZ,EANIA,CAAA,WAMJ,GALE,IAAAE,EAKF,CALoBF,CAAA,WAKpB,EAHIA,CAAA,WAGJ,GAFE,IAAAS,EAEF,CAFoBT,CAAA,WAEpB,EAAIA,CAAA,OAAJ,GACE,IAAAW,EADF,CACgBX,CAAA,OADhB,CAMF,QAAQ,IAAAS,EAAR,EACE,KAAKG,CAAL,CACE,IAAAC,EAAA,CA4C8BC,KA3C9B,KAAAC,EAAA,CACE,KAAKtC,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EA0C4BiB,KA1C5B,CAEE,IAAAZ,EAFF,CAgDwBc,GAhDxB,CAKF,MACF,MAAKN,CAAL,CACE,IAAAG,EAAA,CAAU,CACV,KAAAE,EAAA,CAAc,KAAKtC,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0C,IAAAK,EAA1C,CACd,KAAAe,EAAA,CAAoB,IAAAC,EACpB,KAAAC,EAAA,CAAoB,IAAAC,EACpB,KAAAC,EAAA,CAAqB,IAAAC,EACrB,MACF,SACE,KAAUC,MAAJ,CAAU,sBAAV,CAAN;AAlBJ,CA7C4C,CAuE5CC,IAAAA,EAAOA,CAAPA,CACAC,EAAUA,CAOZ3B;CAAA4B,UAAAC,EAAA,CAAuCC,QAAQ,EAAG,CAChD,IAAA,CAAO,CAAC,IAAApB,EAAR,CAAA,CAAqB,CA6HrB,IAAIqB,EAAMC,CAAA,CA5HRC,IA4HQ,CAAc,CAAd,CAGNF,EAAJ,CAAU,CAAV,GA/HEE,IAgIAvB,EADF,CACgB,CAAA,CADhB,CAKAqB,EAAA,IAAS,CACT,QAAQA,CAAR,EAEE,KAAK,CAAL,CAuGF,IAAI9B,EA9OFgC,IA8OUhC,MAAZ,CACIO,EA/OFyB,IA+OOzB,EADT,CAEIS,EAhPFgB,IAgPWhB,EAFb,CAGIF,EAjPFkB,IAiPOlB,EAHT,CAMImB,EAAAxD,CANJ,CAQIyD,EAAAzD,CARJ,CAUI0D,EAAA1D,CAVJ,CAYI2D,EAAUpB,CAAAzC,OAZd,CAcI8D,EAAA5D,CA5PFuD,KAgQF3B,EAAA,CAhQE2B,IA+PF1B,EACA,CADe,CAIf2B,EAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAAU+C,MAAJ,CAAU,qDAAV,CAAN,CAEFU,CAAA,CAAMD,CAGNA,EAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAAU+C,MAAJ,CAAU,sDAAV,CAAN,CAEFU,CAAA,EAAOD,CAAP,EAAgB,CAGhBA,EAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAAU+C,MAAJ,CAAU,sDAAV,CAAN,CAEFW,CAAA,CAAOF,CAGPA,EAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAAU+C,MAAJ,CAAU,uDAAV,CAAN,CAEFW,CAAA;AAAQF,CAAR,EAAiB,CAGjB,IAAIC,CAAJ,GAAY,CAACC,CAAb,CACE,KAAUX,MAAJ,CAAU,kDAAV,CAAN,CAIF,GAAIjB,CAAJ,CAAS2B,CAAT,CAAelC,CAAAzB,OAAf,CAA+B,KAAUiD,MAAJ,CAAU,wBAAV,CAAN,CAG/B,OAvSEQ,IAuSMtB,EAAR,EACE,KAAKG,CAAL,CAEE,IAAA,CAAOC,CAAP,CAAYoB,CAAZ,CAAkBlB,CAAAzC,OAAlB,CAAA,CAAiC,CAC/B8D,CAAA,CAAUD,CAAV,CAAoBtB,CACpBoB,EAAA,EAAOG,CACP,IAAI3D,CAAJ,CACEsC,CAAAsB,IAAA,CAAWtC,CAAAuC,SAAA,CAAehC,CAAf,CAAmBA,CAAnB,CAAwB8B,CAAxB,CAAX,CAA6CvB,CAA7C,CAEA,CADAA,CACA,EADMuB,CACN,CAAA9B,CAAA,EAAM8B,CAHR,KAKE,KAAA,CAAOA,CAAA,EAAP,CAAA,CACErB,CAAA,CAAOF,CAAA,EAAP,CAAA,CAAed,CAAA,CAAMO,CAAA,EAAN,CAnTvByB,KAsTIlB,EAAA,CAAUA,CACVE,EAAA,CAvTJgB,IAuTad,EAAA,EACTJ,EAAA,CAxTJkB,IAwTSlB,EAd0B,CAgBjC,KACF,MAAKH,CAAL,CACE,IAAA,CAAOG,CAAP,CAAYoB,CAAZ,CAAkBlB,CAAAzC,OAAlB,CAAA,CACEyC,CAAA,CA7TJgB,IA6Tad,EAAA,CAAkB,GAAW,CAAX,CAAlB,CAEX,MACF,SACE,KAAUM,MAAJ,CAAU,sBAAV,CAAN,CA1BJ,CA8BA,GAAI9C,CAAJ,CACEsC,CAAAsB,IAAA,CAAWtC,CAAAuC,SAAA,CAAehC,CAAf,CAAmBA,CAAnB,CAAwB2B,CAAxB,CAAX,CAAyCpB,CAAzC,CAEA,CADAA,CACA,EADMoB,CACN,CAAA3B,CAAA,EAAM2B,CAHR,KAKE,KAAA,CAAOA,CAAA,EAAP,CAAA,CACElB,CAAA,CAAOF,CAAA,EAAP,CAAA,CAAed,CAAA,CAAMO,CAAA,EAAN,CA3UjByB,KA+UFzB,EAAA,CAAUA,CA/URyB,KAgVFlB,EAAA,CAAUA,CAhVRkB,KAiVFhB,EAAA,CAAcA,CAxMV,MAEF,MAAK,CAAL,CA3IAgB,IAwVFV,EAAA,CACEkB,CADF;AAEEC,CAFF,CA3MI,MAEF,MAAK,CAAL,CACEC,CAAA,CAhJFV,IAgJE,CACA,MAEF,SACE,KAAUR,MAAJ,CAAU,iBAAV,CAA8BM,CAA9B,CAAN,CAfJ,CAtIqB,CAIrB,MAAO,KAAAV,EAAA,EALyC,CA2B/C;IAAA,EAAA,CAAC,EAAD,CAAK,EAAL,CAAS,EAAT,CAAa,CAAb,CAAgB,CAAhB,CAAmB,CAAnB,CAAsB,CAAtB,CAAyB,CAAzB,CAA4B,EAA5B,CAAgC,CAAhC,CAAmC,EAAnC,CAAuC,CAAvC,CAA0C,EAA1C,CAA8C,CAA9C,CAAiD,EAAjD,CAAqD,CAArD,CAAwD,EAAxD,CAA4D,CAA5D,CAA+D,EAA/D,CAAA,CAFHuB,EACSjE,CAAA,CAAiB,IAAIE,WAAJ,CAAgBU,CAAhB,CAAjB,CAA0CA,CAChD,CASA,EAAA,CACD,CADC,CACO,CADP,CACe,CADf,CACuB,CADvB,CAC+B,CAD/B,CACuC,CADvC,CAC+C,CAD/C,CACuD,EADvD,CAC+D,EAD/D,CAED,EAFC,CAEO,EAFP,CAEe,EAFf,CAEuB,EAFvB,CAE+B,EAF/B,CAEuC,EAFvC,CAE+C,EAF/C,CAEuD,EAFvD,CAE+D,EAF/D,CAGD,EAHC,CAGO,EAHP,CAGe,EAHf,CAGuB,EAHvB,CAG+B,EAH/B,CAGuC,GAHvC,CAG+C,GAH/C,CAGuD,GAHvD,CAG+D,GAH/D,CAID,GAJC,CAIO,GAJP,CAIe,GAJf,CAIuB,GAJvB,CATA,CAOHsD,EACSlE,CAAA,CAAiB,IAAIE,WAAJ,CAAgBU,CAAhB,CAAjB,CAA0CA,CARhD,CAuBA,EAAA,CACD,CADC,CACE,CADF,CACK,CADL,CACQ,CADR,CACW,CADX,CACc,CADd,CACiB,CADjB,CACoB,CADpB,CACuB,CADvB,CAC0B,CAD1B,CAC6B,CAD7B,CACgC,CADhC,CACmC,CADnC,CACsC,CADtC,CACyC,CADzC,CAC4C,CAD5C,CAC+C,CAD/C,CACkD,CADlD,CACqD,CADrD,CACwD,CADxD,CAC2D,CAD3D,CAC8D,CAD9D,CACiE,CADjE,CACoE,CADpE,CACuE,CADvE,CAC0E,CAD1E,CAED,CAFC,CAEE,CAFF,CAEK,CAFL,CAEQ,CAFR,CAEW,CAFX,CAvBA,CAqBHuD,EACSnE,CAAA,CAAiB,IAAIC,UAAJ,CAAeW,CAAf,CAAjB,CAAyCA,CAtB/C,CAmCA,EAAA,CACD,CADC,CACO,CADP,CACe,CADf,CACuB,CADvB,CAC+B,CAD/B,CACuC,CADvC,CAC+C,CAD/C,CACuD,EADvD,CAC+D,EAD/D,CAED,EAFC,CAEO,EAFP,CAEe,EAFf,CAEuB,EAFvB,CAE+B,EAF/B,CAEuC,GAFvC,CAE+C,GAF/C,CAEuD,GAFvD,CAE+D,GAF/D,CAGD,GAHC,CAGO,GAHP,CAGe,IAHf,CAGuB,IAHvB,CAG+B,IAH/B,CAGuC,IAHvC,CAG+C,IAH/C,CAGuD,IAHvD,CAG+D,IAH/D,CAID,KAJC,CAIO,KAJP,CAIe,KAJf,CAnCA,CAiCHwD,EACSpE,CAAA,CAAiB,IAAIE,WAAJ,CAAgBU,CAAhB,CAAjB,CAA0CA,CAlChD,CAiDA,EAAA,CACD,CADC,CACE,CADF,CACK,CADL,CACQ,CADR,CACW,CADX,CACc,CADd,CACiB,CADjB,CACoB,CADpB,CACuB,CADvB,CAC0B,CAD1B,CAC6B,CAD7B,CACgC,CADhC,CACmC,CADnC,CACsC,CADtC,CACyC,CADzC,CAC4C,CAD5C,CAC+C,CAD/C,CACkD,CADlD,CACqD,CADrD,CACwD,CADxD,CAC2D,CAD3D,CAC8D,CAD9D,CACiE,EADjE,CACqE,EADrE,CACyE,EADzE,CAED,EAFC,CAEG,EAFH,CAEO,EAFP,CAEW,EAFX;AAEe,EAFf,CAjDA,CA+CHyD,EACSrE,CAAA,CAAiB,IAAIC,UAAJ,CAAeW,CAAf,CAAjB,CAAyCA,CAhD/C,CA8DGP,EAAU,KAAKL,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0C,GAA1C,CA9Db,CA+DGF,CA/DH,CA+DMoD,CAEFpD,EAAA,CAAI,CAAT,KAAYoD,CAAZ,CAAiBjE,CAAAR,OAAjB,CAAiCqB,CAAjC,CAAqCoD,CAArC,CAAyC,EAAEpD,CAA3C,CACEb,CAAA,CAAQa,CAAR,CAAA,CACQ,GAAL,EAAAA,CAAA,CAAY,CAAZ,CACK,GAAL,EAAAA,CAAA,CAAY,CAAZ,CACK,GAAL,EAAAA,CAAA,CAAY,CAAZ,CACD,CAXN,KAAA4C,EAlLwB1D,CAgMfQ,CAAkBP,CAAlBO,CAdT,CAyBMP,EAAU,KAAKL,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0C,EAA1C,CAzBhB,CA0BMF,CA1BN,CA0BSoD,CAEFpD,EAAA,CAAI,CAAT,KAAYoD,CAAZ,CAAiBjE,CAAAR,OAAjB,CAAiCqB,CAAjC,CAAqCoD,CAArC,CAAyC,EAAEpD,CAA3C,CACEb,CAAA,CAAQa,CAAR,CAAA,CAAa,CAPjB,KAAA6C,EAxMwB3D,CAkNfQ,CAAkBP,CAAlBO,CAyC4B2D,SAAQ,EAAA,CAARA,CAAQ,CAAC1E,CAAD,CAAS,CAUpD,IATA,IAAI+B,EAAU,CAAAA,EAAd,CACID,EAAa,CAAAA,EADjB,CAEIL,EAAQ,CAAAA,MAFZ,CAGIO,EAAK,CAAAA,EAHT,CAMI0B,CAGJ,CAAO5B,CAAP,CAAoB9B,CAApB,CAAA,CAA4B,CAE1B0D,CAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAAU+C,MAAJ,CAAU,wBAAV,CAAN,CAIFlB,CAAA,EAAW2B,CAAX,EAAoB5B,CACpBA,EAAA,EAAc,CATY,CAa5B4B,CAAA,CAAQ3B,CAAR,EAA+B,CAA/B,EAAoC/B,CAApC,EAA8C,CAI9C,EAAA+B,EAAA,CAHAA,CAGA,GAHa/B,CAIb,EAAA8B,EAAA,CAHAA,CAGA,CAHc9B,CAId,EAAAgC,EAAA,CAAUA,CAEV,OAAO0B,EA/B6C;AAuCViB,QAAQ,EAAA,CAARA,CAAQ,CAAC5D,CAAD,CAAQ,CAkB1D,IAjBA,IAAIgB,EAAU,CAAAA,EAAd,CACID,EAAa,CAAAA,EADjB,CAEIL,EAAQ,CAAAA,MAFZ,CAGIO,EAAK,CAAAA,EAHT,CAMI4C,EAAY7D,CAAA,CAAM,CAAN,CANhB,CAQIL,EAAgBK,CAAA,CAAM,CAAN,CARpB,CAUI2C,CAVJ,CAYImB,CAZJ,CAcIC,CAGJ,CAAOhD,CAAP,CAAoBpB,CAApB,CAAA,CAAmC,CACjCgD,CAAA,CAAQjC,CAAA,CAAMO,CAAA,EAAN,CACR,IAAI0B,CAAJ,GAAcxD,CAAd,CACE,KAEF6B,EAAA,EAAW2B,CAAX,EAAoB5B,CACpBA,EAAA,EAAc,CANmB,CAUnC+C,CAAA,CAAiBD,CAAA,CAAU7C,CAAV,EAAsB,CAAtB,EAA2BrB,CAA3B,EAA4C,CAA5C,CACjBoE,EAAA,CAAaD,CAAb,GAAgC,EAEhC,EAAA9C,EAAA,CAAeA,CAAf,EAA0B+C,CAC1B,EAAAhD,EAAA,CAAkBA,CAAlB,CAA+BgD,CAC/B,EAAA9C,EAAA,CAAUA,CAEV,OAAO6C,EAAP,CAAwB,KAnCkC;AA6JPE,QAAQ,EAAA,CAARA,CAAQ,CAAG,CAgC9DC,QAASA,EAAM,CAACC,CAAD,CAAMlE,CAAN,CAAaP,CAAb,CAAsB,CAEnC,IAAIS,CAAJ,CAEIiE,CAFJ,CAIIC,CAJJ,CAMI9D,CAEJ,KAAKA,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgB4D,CAAhB,CAAA,CAEE,OADAhE,CACQA,CADDmE,CAAA,CAAAA,IAAA,CAAqBrE,CAArB,CACCE,CAAAA,CAAR,EACE,KAAK,EAAL,CAEE,IADAkE,CACA,CADS,CACT,CADa3B,CAAA,CAAAA,IAAA,CAAc,CAAd,CACb,CAAO2B,CAAA,EAAP,CAAA,CAAmB3E,CAAA,CAAQa,CAAA,EAAR,CAAA,CAAe6D,CAClC,MACF,MAAK,EAAL,CAEE,IADAC,CACA,CADS,CACT,CADa3B,CAAA,CAAAA,IAAA,CAAc,CAAd,CACb,CAAO2B,CAAA,EAAP,CAAA,CAAmB3E,CAAA,CAAQa,CAAA,EAAR,CAAA,CAAe,CAClC6D,EAAA,CAAO,CACP,MACF,MAAK,EAAL,CAEE,IADAC,CACA,CADS,EACT,CADc3B,CAAA,CAAAA,IAAA,CAAc,CAAd,CACd,CAAO2B,CAAA,EAAP,CAAA,CAAmB3E,CAAA,CAAQa,CAAA,EAAR,CAAA,CAAe,CAClC6D,EAAA,CAAO,CACP,MACF,SAEEA,CAAA,CADA1E,CAAA,CAAQa,CAAA,EAAR,CACA,CADeJ,CAhBnB,CAsBF,MAAOT,EAlC4B,CA9BrC,IAAI6E,EAAO7B,CAAA,CAAAA,CAAA,CAAc,CAAd,CAAP6B,CAA0B,GAA9B,CAEIC,EAAQ9B,CAAA,CAAAA,CAAA,CAAc,CAAd,CAAR8B,CAA2B,CAF/B,CAIIC,EAAQ/B,CAAA,CAAAA,CAAA,CAAc,CAAd,CAAR+B,CAA2B,CAJ/B,CAMIC,EACF,KAAKrF,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0CkE,CAAAzF,OAA1C,CAPF,CASI0F,CATJ,CAWIC,CAXJ,CAaIC,CAbJ,CAeIvE,CAGJ,KAAKA,CAAL,CAAS,CAAT,CAAYA,CAAZ,CAAgBkE,CAAhB,CAAuB,EAAElE,CAAzB,CACEmE,CAAA,CAAYpB,CAAA,CAAsB/C,CAAtB,CAAZ,CAAA,CAAwCmC,CAAA,CAAAA,CAAA,CAAc,CAAd,CAE1CkC,EAAA,CAtdsBnF,CAsdH,CAAkBiF,CAAlB,CA+CnBG,EAAA,CAAgB,KAAKxF,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0C8D,CAA1C,CAGhBO,EAAA,CAAc,KAAKzF,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EAA0C+D,CAA1C,CAGd,EAAAvC,EAAA,CA3gBsBxC,CA4gBpB,CAAkByE,CAAAa,KAAA,CAAY,CAAZ,CAAkBR,CAAlB,CAAwBK,CAAxB,CAA0CC,CAA1C,CAAlB,CADF,CA3gBsBpF,CA6gBpB,CAAkByE,CAAAa,KAAA,CAAY,CAAZ,CAAkBP,CAAlB,CAAyBI,CAAzB,CAA2CE,CAA3C,CAAlB,CAFF,CA5E8D;AAuFhEpE,CAAA4B,UAAAL,EAAA,CAA0C+C,QAAQ,CAACC,CAAD,CAASC,CAAT,CAAe,CAC/D,IAAIvD,EAAS,IAAAA,EAAb,CACIF,EAAK,IAAAA,EAET,KAAA0D,EAAA,CAA0BF,CAa1B,KAVA,IAAIlC,EAAUpB,CAAAzC,OAAV6D,CA/a0BnB,GA+a9B,CAEIzB,CAFJ,CAIIiF,CAJJ,CAMIC,CANJ,CAQIrB,CAEJ,CAAiD,GAAjD,IAAQ7D,CAAR,CAAemE,CAAA,CAAAA,IAAA,CAAqBW,CAArB,CAAf,EAAA,CAEE,GAAW,GAAX,CAAI9E,CAAJ,CACMsB,CAKJ,EALUsB,CAKV,GAJE,IAAAtB,EAEA,CAFUA,CAEV,CADAE,CACA,CADS,IAAAE,EAAA,EACT,CAAAJ,CAAA,CAAK,IAAAA,EAEP,EAAAE,CAAA,CAAOF,CAAA,EAAP,CAAA,CAAetB,CANjB,KAAA,CAYAiF,CAAA,CAAKjF,CAAL,CAAY,GACZ6D,EAAA,CAAaT,CAAA,CAAgC6B,CAAhC,CAC8B,EAA3C,CAAI5B,CAAA,CAAiC4B,CAAjC,CAAJ,GACEpB,CADF,EACgBtB,CAAA,CAAAA,IAAA,CAAcc,CAAA,CAAiC4B,CAAjC,CAAd,CADhB,CAKAjF,EAAA,CAAOmE,CAAA,CAAAA,IAAA,CAAqBY,CAArB,CACPG,EAAA,CAAW5B,CAAA,CAA8BtD,CAA9B,CACgC,EAA3C,CAAIuD,CAAA,CAA+BvD,CAA/B,CAAJ,GACEkF,CADF,EACc3C,CAAA,CAAAA,IAAA,CAAcgB,CAAA,CAA+BvD,CAA/B,CAAd,CADd,CAKIsB,EAAJ,EAAUsB,CAAV,GACE,IAAAtB,EAEA,CAFUA,CAEV,CADAE,CACA,CADS,IAAAE,EAAA,EACT,CAAAJ,CAAA,CAAK,IAAAA,EAHP,CAKA,KAAA,CAAOuC,CAAA,EAAP,CAAA,CACErC,CAAA,CAAOF,CAAP,CAAA,CAAaE,CAAA,CAAQF,CAAA,EAAR,CAAgB4D,CAAhB,CAhCf,CAoCF,IAAA,CAA0B,CAA1B,EAAO,IAAArE,EAAP,CAAA,CACE,IAAAA,EACA,EADmB,CACnB,CAAA,IAAAE,EAAA,EAEF,KAAAO,EAAA,CAAUA,CA3DqD,CAmEjEf;CAAA4B,UAAAJ,EAAA,CAAkDoD,QAAQ,CAACL,CAAD,CAASC,CAAT,CAAe,CACvE,IAAIvD,EAAS,IAAAA,EAAb,CACIF,EAAK,IAAAA,EAET,KAAA0D,EAAA,CAA0BF,CAa1B,KAVA,IAAIlC,EAAUpB,CAAAzC,OAAd,CAEIiB,CAFJ,CAIIiF,CAJJ,CAMIC,CANJ,CAQIrB,CAEJ,CAAiD,GAAjD,IAAQ7D,CAAR,CAAemE,CAAA,CAAAA,IAAA,CAAqBW,CAArB,CAAf,EAAA,CAEE,GAAW,GAAX,CAAI9E,CAAJ,CACMsB,CAIJ,EAJUsB,CAIV,GAHEpB,CACA,CADS,IAAAE,EAAA,EACT,CAAAkB,CAAA,CAAUpB,CAAAzC,OAEZ,EAAAyC,CAAA,CAAOF,CAAA,EAAP,CAAA,CAAetB,CALjB,KAAA,CAWAiF,CAAA,CAAKjF,CAAL,CAAY,GACZ6D,EAAA,CAAaT,CAAA,CAAgC6B,CAAhC,CAC8B,EAA3C,CAAI5B,CAAA,CAAiC4B,CAAjC,CAAJ,GACEpB,CADF,EACgBtB,CAAA,CAAAA,IAAA,CAAcc,CAAA,CAAiC4B,CAAjC,CAAd,CADhB,CAKAjF,EAAA,CAAOmE,CAAA,CAAAA,IAAA,CAAqBY,CAArB,CACPG,EAAA,CAAW5B,CAAA,CAA8BtD,CAA9B,CACgC,EAA3C,CAAIuD,CAAA,CAA+BvD,CAA/B,CAAJ,GACEkF,CADF,EACc3C,CAAA,CAAAA,IAAA,CAAcgB,CAAA,CAA+BvD,CAA/B,CAAd,CADd,CAKIsB,EAAJ,CAASuC,CAAT,CAAsBjB,CAAtB,GACEpB,CACA,CADS,IAAAE,EAAA,EACT,CAAAkB,CAAA,CAAUpB,CAAAzC,OAFZ,CAIA,KAAA,CAAO8E,CAAA,EAAP,CAAA,CACErC,CAAA,CAAOF,CAAP,CAAA,CAAaE,CAAA,CAAQF,CAAA,EAAR,CAAgB4D,CAAhB,CA9Bf,CAkCF,IAAA,CAA0B,CAA1B,EAAO,IAAArE,EAAP,CAAA,CACE,IAAAA,EACA,EADmB,CACnB,CAAA,IAAAE,EAAA,EAEF,KAAAO,EAAA,CAAUA,CAzD6D,CAiEzEf;CAAA4B,UAAAT,EAAA,CAAyC0D,QAAQ,EAAY,CAE3D,IAAIC,EACF,KAAKnG,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EACI,IAAAgB,EADJ,CArjBgCC,KAqjBhC,CADF,CAKI+D,EAAW,IAAAhE,EAAXgE,CAzjB8B/D,KAojBlC,CAOInB,CAPJ,CASIoD,CATJ,CAWIhC,EAAS,IAAAA,EAGb,IAAItC,CAAJ,CACEmG,CAAAvC,IAAA,CAAWtB,CAAAuB,SAAA,CAnkBqBxB,KAmkBrB,CAAmD8D,CAAAtG,OAAnD,CAAX,CADF,KAEO,CACAqB,CAAA,CAAI,CAAT,KAAYoD,CAAZ,CAAiB6B,CAAAtG,OAAjB,CAAgCqB,CAAhC,CAAoCoD,CAApC,CAAwC,EAAEpD,CAA1C,CACEiF,CAAA,CAAOjF,CAAP,CAAA,CAAYoB,CAAA,CAAOpB,CAAP,CAtkBkBmB,KAskBlB,CAFT,CAMP,IAAAb,EAAA6E,KAAA,CAAiBF,CAAjB,CACA,KAAArE,EAAA,EAAiBqE,CAAAtG,OAGjB,IAAIG,CAAJ,CACEsC,CAAAsB,IAAA,CACEtB,CAAAuB,SAAA,CAAgBuC,CAAhB,CAA0BA,CAA1B,CAhlB8B/D,KAglB9B,CADF,CADF,KAKE,KAAKnB,CAAL,CAAS,CAAT,CAnlBgCmB,KAmlBhC,CAAYnB,CAAZ,CAAmD,EAAEA,CAArD,CACEoB,CAAA,CAAOpB,CAAP,CAAA,CAAYoB,CAAA,CAAO8D,CAAP,CAAkBlF,CAAlB,CAIhB,KAAAkB,EAAA,CAxlBkCC,KA0lBlC,OAAOC,EAxCoD,CAgD7DjB;CAAA4B,UAAAR,EAAA,CAAiD6D,QAAQ,CAACC,CAAD,CAAY,CAEnE,IAAIJ,CAAJ,CAEIK,EAAS,IAAAlF,MAAAzB,OAAT2G,CAA6B,IAAA3E,EAA7B2E,CAAuC,CAAvCA,CAA4C,CAFhD,CAIIC,CAJJ,CAMIC,CANJ,CAQIC,CARJ,CAUIrF,EAAQ,IAAAA,MAVZ,CAWIgB,EAAS,IAAAA,EAETiE,EAAJ,GACoC,QAGlC,GAHI,MAAOA,EAAAK,EAGX,GAFEJ,CAEF,CAFUD,CAAAK,EAEV,EAAkC,QAAlC,GAAI,MAAOL,EAAAM,EAAX,GACEL,CADF,EACWD,CAAAM,EADX,CAJF,CAUY,EAAZ,CAAIL,CAAJ,EACEC,CAGA,EAFGnF,CAAAzB,OAEH,CAFkB,IAAAgC,EAElB,EAF6B,IAAAiE,EAAA,CAAwB,CAAxB,CAE7B,CADAa,CACA,CADoC,GACpC,EADkBF,CAClB,CADgC,CAChC,EAD2C,CAC3C,CAAAC,CAAA,CAAUC,CAAA,CAAiBrE,CAAAzC,OAAjB,CACRyC,CAAAzC,OADQ,CACQ8G,CADR,CAERrE,CAAAzC,OAFQ,EAES,CANrB,EAQE6G,CARF,CAQYpE,CAAAzC,OARZ,CAQ4B2G,CAIxBxG,EAAJ,EACEmG,CACA,CADS,IAAIlG,UAAJ,CAAeyG,CAAf,CACT,CAAAP,CAAAvC,IAAA,CAAWtB,CAAX,CAFF,EAIE6D,CAJF,CAIW7D,CAKX,OAFA,KAAAA,EAEA,CAFc6D,CA5CqD,CAqDrE9E;CAAA4B,UAAAP,EAAA,CAAyCoE,QAAQ,EAAG,CAElD,IAAIC,EAAM,CAAV,CAIIzE,EAAS,IAAAA,EAJb,CAMId,EAAS,IAAAA,EANb,CAQIwF,CARJ,CAUIb,EAAS,KAAKnG,CAAA,CAAiBC,UAAjB,CAA8BmB,KAAnC,EARD,IAAAU,EAQC,EARgB,IAAAM,EAQhB,CAnqBqBC,KAmqBrB,EAVb,CAYInB,CAZJ,CAcIoD,CAdJ,CAgBInD,CAhBJ,CAkBI8F,CAGJ,IAAsB,CAAtB,GAAIzF,CAAA3B,OAAJ,CACE,MAAOG,EAAA,CACL,IAAAsC,EAAAuB,SAAA,CAhrB8BxB,KAgrB9B,CAAwD,IAAAD,EAAxD,CADK,CAEL,IAAAE,EAAA4E,MAAA,CAjrB8B7E,KAirB9B,CAAqD,IAAAD,EAArD,CAIClB,EAAA,CAAI,CAAT,KAAYoD,CAAZ,CAAiB9C,CAAA3B,OAAjB,CAAgCqB,CAAhC,CAAoCoD,CAApC,CAAwC,EAAEpD,CAA1C,CAA6C,CAC3C8F,CAAA,CAAQxF,CAAA,CAAON,CAAP,CACHC,EAAA,CAAI,CAAT,KAAY8F,CAAZ,CAAiBD,CAAAnH,OAAjB,CAA+BsB,CAA/B,CAAmC8F,CAAnC,CAAuC,EAAE9F,CAAzC,CACEgF,CAAA,CAAOY,CAAA,EAAP,CAAA,CAAgBC,CAAA,CAAM7F,CAAN,CAHyB,CAQxCD,CAAA,CA7rB6BmB,KA6rBlC,KAA4CiC,CAA5C,CAAiD,IAAAlC,EAAjD,CAA0DlB,CAA1D,CAA8DoD,CAA9D,CAAkE,EAAEpD,CAApE,CACEiF,CAAA,CAAOY,CAAA,EAAP,CAAA,CAAgBzE,CAAA,CAAOpB,CAAP,CAGlB,KAAAM,EAAA,CAAc,EAGd,OAFA,KAAA2E,OAEA,CAFcA,CA3CoC,CAoDpD9E;CAAA4B,UAAAN,EAAA,CAAgDwE,QAAQ,EAAG,CAEzD,IAAIhB,CAAJ,CACI/D,EAAK,IAAAA,EAELpC,EAAJ,CACM,IAAAkC,EAAJ,EACEiE,CACA,CADS,IAAIlG,UAAJ,CAAemC,CAAf,CACT,CAAA+D,CAAAvC,IAAA,CAAW,IAAAtB,EAAAuB,SAAA,CAAqB,CAArB,CAAwBzB,CAAxB,CAAX,CAFF,EAIE+D,CAJF,CAIW,IAAA7D,EAAAuB,SAAA,CAAqB,CAArB,CAAwBzB,CAAxB,CALb,EAQM,IAAAE,EAAAzC,OAGJ,CAHyBuC,CAGzB,GAFE,IAAAE,EAAAzC,OAEF,CAFuBuC,CAEvB,EAAA+D,CAAA,CAAS,IAAA7D,EAXX,CAgBA,OAFA,KAAA6D,OAEA,CAFcA,CAnB2C,C,CHwhBzD9G,CAAA,CIt1CgB+H,iBJs1ChB,CIt1CmC/F,CJs1CnC,CAAAhC,EAAA,CIp1CA+H,sCJo1CA,CIn1CA/F,CAAA4B,UAAAC,EJm1CA,CIj1C8C,KAAA,EAAA,UAClCjB,CADkC,OAErCE,CAFqC,CAAA,CCA1CkF,CDA0C,CCE1CC,CDF0C,CCI1CpG,CDJ0C,CCM1CoD,CAEJ,IAAIiD,MAAAF,KAAJ,CACEA,CAAA,CAAOE,MAAAF,KAAA,CAAYG,CAAZ,CADT,KAKE,KAAKF,CAAL,GAFAD,EAEYG,CAFL,EAEKA,CADZtG,CACYsG,CADR,CACQA,CAAAA,CAAZ,CACEH,CAAA,CAAKnG,CAAA,EAAL,CAAA,CAAYoG,CAIXpG,EAAA,CAAI,CAAT,KAAYoD,CAAZ,CAAiB+C,CAAAxH,OAAjB,CAA8BqB,CAA9B,CAAkCoD,CAAlC,CAAsC,EAAEpD,CAAxC,CACEoG,CL8zCF,CK9zCQD,CAAA,CAAKnG,CAAL,CL8zCR,CAAA7B,CAAA,CK7zCoB,6BL6zCpB,CK7zCuCiI,CL6zCvC,CK7zC4CE,CAAAC,CAAeH,CAAfG,CL6zC5C;",
++"sources":["closure-primitives/base.js","./define/typedarray/hybrid.js","./src/huffman.js","./src/rawinflate.js","./export/rawinflate.js","./src/export_object.js"],
++"names":["goog.global","goog.exportPath_","name","opt_object","parts","split","cur","execScript","part","length","shift","JSCompiler_alias_VOID","USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","Zlib.Huffman.buildHuffmanTable","lengths","listSize","maxCodeLength","minCodeLength","Number","POSITIVE_INFINITY","size","table","bitLength","code","skip","reversed","rtemp","i","j","Array","Zlib.RawInflate","input","opt_params","blocks","bufferSize","ZLIB_RAW_INFLATE_BUFFER_SIZE","bitsbuflen","bitsbuf","ip","totalpos","bfinal","bufferType","Zlib.RawInflate.BufferType.ADAPTIVE","resize","Zlib.RawInflate.BufferType.BLOCK","op","Zlib.RawInflate.MaxBackwardLength","output","Zlib.RawInflate.MaxCopyLength","expandBuffer","expandBufferAdaptive","concatBuffer","concatBufferDynamic","decodeHuffman","decodeHuffmanAdaptive","Error","BLOCK","ADAPTIVE","prototype","decompress","Zlib.RawInflate.prototype.decompress","hdr","readBits","parseBlock","octet","len","nlen","olength","preCopy","set","subarray","Zlib.RawInflate.FixedLiteralLengthTable","Zlib.RawInflate.FixedDistanceTable","parseDynamicHuffmanBlock","Zlib.RawInflate.Order","Zlib.RawInflate.LengthCodeTable","Zlib.RawInflate.LengthExtraTable","Zlib.RawInflate.DistCodeTable","Zlib.RawInflate.DistExtraTable","il","Zlib.RawInflate.prototype.readBits","Zlib.RawInflate.prototype.readCodeByTable","codeTable","codeWithLength","codeLength","Zlib.RawInflate.prototype.parseDynamicHuffmanBlock","decode","num","prev","repeat","readCodeByTable","hlit","hdist","hclen","codeLengths","Zlib.RawInflate.Order.length","codeLengthsTable","litlenLengths","distLengths","call","Zlib.RawInflate.prototype.decodeHuffman","litlen","dist","currentLitlenTable","ti","codeDist","Zlib.RawInflate.prototype.decodeHuffmanAdaptive","Zlib.RawInflate.prototype.expandBuffer","buffer","backward","push","Zlib.RawInflate.prototype.expandBufferAdaptive","opt_param","ratio","maxHuffCode","newSize","maxInflateSize","fixRatio","addRatio","Zlib.RawInflate.prototype.concatBuffer","pos","block","jl","slice","Zlib.RawInflate.prototype.concatBufferDynamic","publicPath","keys","key","Object","exportKeyValue","object"]
++}
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8dfa1a9870ff903554b6265d0b6a6aa0578092d0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,451 @@@
++<?xml version="1.0" encoding="utf-8"?>
++<project name="project" default="all">
++  <!--
++  <property name="level" value="ADVANCED_OPTIMIZATIONS"/>
++  -->
++  <property name="level" value="PERFORMANCE_OPTIMIZATIONS"/>
++  <property name="src" value="./src"/>
++  <property name="def" value="./define"/>
++  <property name="vendor" value="./vendor"/>
++  <property name="bin" value="./bin"/>
++  <property name="compiler" value="${vendor}/google-closure-compiler/compiler.jar"/>
++  <property name="closure_primitives" value="closure-primitives/base.js"/>
++  <property name="depswriter" value="closure-primitives/depswriter.py"/>
++  <property name="depend" value="deps.js"/>
++  <property name="export" value="./export"/>
++  <property name="basedir" location="."/>
++
++  <!-- ライセンスとビルドされたファイルをプロパティとして読み込む -->
++  <loadfile property="license" srcfile="./LICENSE_min"/>
++
++  <!-- ビルドの事前準備 -->
++  <target name="prebuild" description="ビルドの事前準備を行う">
++     <mkdir dir="${bin}"/>
++  </target>
++
++  <!-- 依存関係を解決する -->
++  <target name="deps" description="依存関係を解決する">
++    <exec executable="python" failonerror="true">
++      <arg line="${depswriter}"/>
++      <arg line="--root_with_prefix=&quot;. ..&quot;"/>
++      <arg line="--output_file=${depend}"/>
++    </exec>
++    <pathconvert property="srcfiles" pathsep=" ">
++      <map from="${basedir}" to="--js ."/>
++      <fileset dir="${src}" includes="*.js"/>
++    </pathconvert>
++    <echo message="${srcfiles}"/>
++
++    <pathconvert property="exportfiles" pathsep=" ">
++      <map from="${basedir}" to="--js ."/>
++      <fileset dir="${export}" includes="*.js"/>
++    </pathconvert>
++    <echo message="${exportfiles}"/>
++  </target>
++
++  <!-- RawInflate の単体ビルド -->
++  <target name="raw_inflate" depends="deps,prebuild" description="Inflate の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="rawinflate.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++      <arg line="--js=${export}/rawinflate.js"/>
++    </java>
++  </target>
++
++  <!-- RawInflate の単体ビルド -->
++  <target name="raw_deflate" depends="deps,prebuild" description="Deflate の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="rawdeflate.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/rawdeflate.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Inflate の単体ビルド -->
++  <target name="inflate" depends="deps,prebuild" description="Inflate の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="inflate.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/inflate.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Inflate(Stream版) の単体ビルド -->
++  <target name="inflate_stream" depends="deps,prebuild" description="Inflate(Stream版) の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="inflate_stream.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/inflate_stream.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Gzip の単体ビルド -->
++  <target name="gzip" depends="deps,prebuild" description="Gzip の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="gzip.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='(function() {%output%}).call(this);'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/gzip.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Gunzip の単体ビルド -->
++  <target name="gunzip" depends="deps,prebuild" description="Inflate の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="gunzip.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/gunzip.js"/>
++      <arg line="--js=${export}/gunzip_member.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Deflate の単体ビルド -->
++  <target name="deflate" depends="deps,prebuild" description="Deflate の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="deflate.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/deflate.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Zlib のビルド -->
++  <target name="zlib" depends="deps,prebuild" description="リリース版のファイル zlib.min.js を作成する">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="zlib.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/inflate.js"/>
++      <arg line="--js=${export}/deflate.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Zlib のビルド -->
++  <target name="zlib_and_gzip" depends="deps,prebuild" description="リリース版のファイル zlib_and_gzip.min.js を作成する">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="zlib_and_gzip.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${export}/inflate.js"/>
++      <arg line="--js=${export}/deflate.js"/>
++      <arg line="--js=${export}/gunzip.js"/>
++      <arg line="--js=${export}/gunzip_member.js"/>
++      <arg line="--js=${export}/gzip.js"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Node.js 版 Zlib のビルド -->
++  <target name="node" depends="deps,prebuild" description="create node.js version">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="node-zlib.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--externs=node/externs.js"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=node/exports.js"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Unzip の単体ビルド -->
++  <target name="unzip" depends="deps,prebuild" description="Unzip の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="unzip.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${export}/unzip.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- Zip の単体ビルド -->
++  <target name="zip" depends="deps,prebuild" description="Zip の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="zip.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${export}/zip.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- CRC32 の単体ビルド -->
++  <target name="crc32" depends="deps,prebuild" description="CRC32 の独立ビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="crc32.min.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=${level}"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${export}/crc32.js"/>
++      <arg line="${srcfiles}"/>
++    </java>
++  </target>
++
++  <!-- 全てのビルド(デバッグ) -->
++  <target name="pretty" depends="deps,prebuild" description="デバッグ用に pretty print したもののビルドを行う">
++    <!-- 出力ファイル名 -->
++    <local name="basename"/>
++    <property name="basename" value="zlib.pretty.js"/>
++    <local name="outfile"/>
++    <property name="outfile" value="${bin}/${basename}"/>
++    <!-- ビルド(出力先は一時ファイル) -->
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--compilation_level=WHITESPACE_ONLY"/>
++      <arg line="--formatting PRETTY_PRINT"/>
++      <arg line="--warning_level=VERBOSE"/>
++      <arg line="--define=goog.DEBUG=false"/>
++      <arg line="--summary_detail_level=3"/>
++      <arg line="--language_in=ECMASCRIPT5_STRICT"/>
++      <arg line="--source_map_format=V3"/>
++      <arg line="--output_wrapper='${license}(function() {%output%}).call(this); //@ sourceMappingURL=${basename}.map'"/>
++      <arg line="--js_output_file=${outfile}"/>
++      <arg line="--create_source_map=${outfile}.map"/>
++      <arg line="--manage_closure_dependencies"/>
++      <arg line="--js=${closure_primitives}"/>
++      <arg line="--js=${depend}"/>
++      <arg line="--js=${def}/typedarray/hybrid.js"/>
++      <arg line="${srcfiles}"/>
++      <arg line="${exportfiles}"/>
++    </java>
++  </target>
++
++  <!-- compiler help -->
++  <target name="help">
++    <java jar="${compiler}" fork="true" failonerror="true">
++      <arg line="--help"/>
++    </java>
++  </target>
++
++  <!-- 全て作成 -->
++  <target name="all" depends="raw_deflate,raw_inflate,zlib,zlib_and_gzip,inflate,inflate_stream,deflate,gzip,gunzip,zip,unzip,node" />
++
++  <!--  削除 -->
++  <target name="clean">
++    <delete file="${depend}"/>
++    <delete dir="${bin}"/>
++  </target>
++
++  <!-- リビルド -->
++  <target name="rebuild" depends="clean,all"/>
++</project>
++<!-- vim: set expandtab ts=2 sw=2: -->
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..40483dc18adb7c07445bb6810b18f04ea45d76f1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1498 @@@
++// Copyright 2006 The Closure Library Authors. All Rights Reserved.
++//
++// Licensed under the Apache License, Version 2.0 (the "License");
++// you may not use this file except in compliance with the License.
++// You may obtain a copy of the License at
++//
++//      http://www.apache.org/licenses/LICENSE-2.0
++//
++// Unless required by applicable law or agreed to in writing, software
++// distributed under the License is distributed on an "AS-IS" BASIS,
++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++// See the License for the specific language governing permissions and
++// limitations under the License.
++
++/**
++ * @fileoverview Bootstrap for the Google JS Library (Closure).
++ *
++ * In uncompiled mode base.js will write out Closure's deps file, unless the
++ * global <code>CLOSURE_NO_DEPS</code> is set to true.  This allows projects to
++ * include their own deps file(s) from different locations.
++ *
++ */
++
++
++/**
++ * @define {boolean} Overridden to true by the compiler when --closure_pass
++ *     or --mark_as_compiled is specified.
++ */
++var COMPILED = false;
++
++
++/**
++ * Base namespace for the Closure library.  Checks to see goog is
++ * already defined in the current scope before assigning to prevent
++ * clobbering if base.js is loaded more than once.
++ *
++ * @const
++ */
++var goog = goog || {}; // Identifies this file as the Closure base.
++
++
++/**
++ * Reference to the global context.  In most cases this will be 'window'.
++ */
++goog.global = this;
++
++
++/**
++ * @define {boolean} DEBUG is provided as a convenience so that debugging code
++ * that should not be included in a production js_binary can be easily stripped
++ * by specifying --define goog.DEBUG=false to the JSCompiler. For example, most
++ * toString() methods should be declared inside an "if (goog.DEBUG)" conditional
++ * because they are generally used for debugging purposes and it is difficult
++ * for the JSCompiler to statically determine whether they are used.
++ */
++goog.DEBUG = true;
++
++
++/**
++ * @define {string} LOCALE defines the locale being used for compilation. It is
++ * used to select locale specific data to be compiled in js binary. BUILD rule
++ * can specify this value by "--define goog.LOCALE=<locale_name>" as JSCompiler
++ * option.
++ *
++ * Take into account that the locale code format is important. You should use
++ * the canonical Unicode format with hyphen as a delimiter. Language must be
++ * lowercase, Language Script - Capitalized, Region - UPPERCASE.
++ * There are few examples: pt-BR, en, en-US, sr-Latin-BO, zh-Hans-CN.
++ *
++ * See more info about locale codes here:
++ * http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers
++ *
++ * For language codes you should use values defined by ISO 693-1. See it here
++ * http://www.w3.org/WAI/ER/IG/ert/iso639.htm. There is only one exception from
++ * this rule: the Hebrew language. For legacy reasons the old code (iw) should
++ * be used instead of the new code (he), see http://wiki/Main/IIISynonyms.
++ */
++goog.LOCALE = 'en';  // default to en
++
++
++/**
++ * Creates object stubs for a namespace.  The presence of one or more
++ * goog.provide() calls indicate that the file defines the given
++ * objects/namespaces.  Build tools also scan for provide/require statements
++ * to discern dependencies, build dependency files (see deps.js), etc.
++ * @see goog.require
++ * @param {string} name Namespace provided by this file in the form
++ *     "goog.package.part".
++ */
++goog.provide = function(name) {
++  if (!COMPILED) {
++    // Ensure that the same namespace isn't provided twice. This is intended
++    // to teach new developers that 'goog.provide' is effectively a variable
++    // declaration. And when JSCompiler transforms goog.provide into a real
++    // variable declaration, the compiled JS should work the same as the raw
++    // JS--even when the raw JS uses goog.provide incorrectly.
++    if (goog.isProvided_(name)) {
++      throw Error('Namespace "' + name + '" already declared.');
++    }
++    delete goog.implicitNamespaces_[name];
++
++    var namespace = name;
++    while ((namespace = namespace.substring(0, namespace.lastIndexOf('.')))) {
++      if (goog.getObjectByName(namespace)) {
++        break;
++      }
++      goog.implicitNamespaces_[namespace] = true;
++    }
++  }
++
++  goog.exportPath_(name);
++};
++
++
++/**
++ * Marks that the current file should only be used for testing, and never for
++ * live code in production.
++ * @param {string=} opt_message Optional message to add to the error that's
++ *     raised when used in production code.
++ */
++goog.setTestOnly = function(opt_message) {
++  if (COMPILED && !goog.DEBUG) {
++    opt_message = opt_message || '';
++    throw Error('Importing test-only code into non-debug environment' +
++                opt_message ? ': ' + opt_message : '.');
++  }
++};
++
++
++if (!COMPILED) {
++
++  /**
++   * Check if the given name has been goog.provided. This will return false for
++   * names that are available only as implicit namespaces.
++   * @param {string} name name of the object to look for.
++   * @return {boolean} Whether the name has been provided.
++   * @private
++   */
++  goog.isProvided_ = function(name) {
++    return !goog.implicitNamespaces_[name] && !!goog.getObjectByName(name);
++  };
++
++  /**
++   * Namespaces implicitly defined by goog.provide. For example,
++   * goog.provide('goog.events.Event') implicitly declares
++   * that 'goog' and 'goog.events' must be namespaces.
++   *
++   * @type {Object}
++   * @private
++   */
++  goog.implicitNamespaces_ = {};
++}
++
++
++/**
++ * Builds an object structure for the provided namespace path,
++ * ensuring that names that already exist are not overwritten. For
++ * example:
++ * "a.b.c" -> a = {};a.b={};a.b.c={};
++ * Used by goog.provide and goog.exportSymbol.
++ * @param {string} name name of the object that this file defines.
++ * @param {*=} opt_object the object to expose at the end of the path.
++ * @param {Object=} opt_objectToExportTo The object to add the path to; default
++ *     is |goog.global|.
++ * @private
++ */
++goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) {
++  var parts = name.split('.');
++  var cur = opt_objectToExportTo || goog.global;
++
++  // Internet Explorer exhibits strange behavior when throwing errors from
++  // methods externed in this manner.  See the testExportSymbolExceptions in
++  // base_test.html for an example.
++  if (!(parts[0] in cur) && cur.execScript) {
++    cur.execScript('var ' + parts[0]);
++  }
++
++  // Certain browsers cannot parse code in the form for((a in b); c;);
++  // This pattern is produced by the JSCompiler when it collapses the
++  // statement above into the conditional loop below. To prevent this from
++  // happening, use a for-loop and reserve the init logic as below.
++
++  // Parentheses added to eliminate strict JS warning in Firefox.
++  for (var part; parts.length && (part = parts.shift());) {
++    if (!parts.length && goog.isDef(opt_object)) {
++      // last part and we have an object; use it
++      cur[part] = opt_object;
++    } else if (cur[part]) {
++      cur = cur[part];
++    } else {
++      cur = cur[part] = {};
++    }
++  }
++};
++
++
++/**
++ * Returns an object based on its fully qualified external name.  If you are
++ * using a compilation pass that renames property names beware that using this
++ * function will not find renamed properties.
++ *
++ * @param {string} name The fully qualified name.
++ * @param {Object=} opt_obj The object within which to look; default is
++ *     |goog.global|.
++ * @return {?} The value (object or primitive) or, if not found, null.
++ */
++goog.getObjectByName = function(name, opt_obj) {
++  var parts = name.split('.');
++  var cur = opt_obj || goog.global;
++  for (var part; part = parts.shift(); ) {
++    if (goog.isDefAndNotNull(cur[part])) {
++      cur = cur[part];
++    } else {
++      return null;
++    }
++  }
++  return cur;
++};
++
++
++/**
++ * Globalizes a whole namespace, such as goog or goog.lang.
++ *
++ * @param {Object} obj The namespace to globalize.
++ * @param {Object=} opt_global The object to add the properties to.
++ * @deprecated Properties may be explicitly exported to the global scope, but
++ *     this should no longer be done in bulk.
++ */
++goog.globalize = function(obj, opt_global) {
++  var global = opt_global || goog.global;
++  for (var x in obj) {
++    global[x] = obj[x];
++  }
++};
++
++
++/**
++ * Adds a dependency from a file to the files it requires.
++ * @param {string} relPath The path to the js file.
++ * @param {Array} provides An array of strings with the names of the objects
++ *                         this file provides.
++ * @param {Array} requires An array of strings with the names of the objects
++ *                         this file requires.
++ */
++goog.addDependency = function(relPath, provides, requires) {
++  if (!COMPILED) {
++    var provide, require;
++    var path = relPath.replace(/\\/g, '/');
++    var deps = goog.dependencies_;
++    for (var i = 0; provide = provides[i]; i++) {
++      deps.nameToPath[provide] = path;
++      if (!(path in deps.pathToNames)) {
++        deps.pathToNames[path] = {};
++      }
++      deps.pathToNames[path][provide] = true;
++    }
++    for (var j = 0; require = requires[j]; j++) {
++      if (!(path in deps.requires)) {
++        deps.requires[path] = {};
++      }
++      deps.requires[path][require] = true;
++    }
++  }
++};
++
++
++
++
++// NOTE(nnaze): The debug DOM loader was included in base.js as an orignal
++// way to do "debug-mode" development.  The dependency system can sometimes
++// be confusing, as can the debug DOM loader's asyncronous nature.
++//
++// With the DOM loader, a call to goog.require() is not blocking -- the
++// script will not load until some point after the current script.  If a
++// namespace is needed at runtime, it needs to be defined in a previous
++// script, or loaded via require() with its registered dependencies.
++// User-defined namespaces may need their own deps file.  See http://go/js_deps,
++// http://go/genjsdeps, or, externally, DepsWriter.
++// http://code.google.com/closure/library/docs/depswriter.html
++//
++// Because of legacy clients, the DOM loader can't be easily removed from
++// base.js.  Work is being done to make it disableable or replaceable for
++// different environments (DOM-less JavaScript interpreters like Rhino or V8,
++// for example). See bootstrap/ for more information.
++
++
++/**
++ * @define {boolean} Whether to enable the debug loader.
++ *
++ * If enabled, a call to goog.require() will attempt to load the namespace by
++ * appending a script tag to the DOM (if the namespace has been registered).
++ *
++ * If disabled, goog.require() will simply assert that the namespace has been
++ * provided (and depend on the fact that some outside tool correctly ordered
++ * the script).
++ */
++goog.ENABLE_DEBUG_LOADER = true;
++
++
++/**
++ * Implements a system for the dynamic resolution of dependencies
++ * that works in parallel with the BUILD system. Note that all calls
++ * to goog.require will be stripped by the JSCompiler when the
++ * --closure_pass option is used.
++ * @see goog.provide
++ * @param {string} name Namespace to include (as was given in goog.provide())
++ *     in the form "goog.package.part".
++ */
++goog.require = function(name) {
++
++  // if the object already exists we do not need do do anything
++  // TODO(arv): If we start to support require based on file name this has
++  //            to change
++  // TODO(arv): If we allow goog.foo.* this has to change
++  // TODO(arv): If we implement dynamic load after page load we should probably
++  //            not remove this code for the compiled output
++  if (!COMPILED) {
++    if (goog.isProvided_(name)) {
++      return;
++    }
++
++    if (goog.ENABLE_DEBUG_LOADER) {
++      var path = goog.getPathFromDeps_(name);
++      if (path) {
++        goog.included_[path] = true;
++        goog.writeScripts_();
++        return;
++      }
++    }
++
++    var errorMessage = 'goog.require could not find: ' + name;
++    if (goog.global.console) {
++      goog.global.console['error'](errorMessage);
++    }
++
++
++      throw Error(errorMessage);
++
++  }
++};
++
++
++/**
++ * Path for included scripts
++ * @type {string}
++ */
++goog.basePath = '';
++
++
++/**
++ * A hook for overriding the base path.
++ * @type {string|undefined}
++ */
++goog.global.CLOSURE_BASE_PATH;
++
++
++/**
++ * Whether to write out Closure's deps file. By default,
++ * the deps are written.
++ * @type {boolean|undefined}
++ */
++goog.global.CLOSURE_NO_DEPS;
++
++
++/**
++ * A function to import a single script. This is meant to be overridden when
++ * Closure is being run in non-HTML contexts, such as web workers. It's defined
++ * in the global scope so that it can be set before base.js is loaded, which
++ * allows deps.js to be imported properly.
++ *
++ * The function is passed the script source, which is a relative URI. It should
++ * return true if the script was imported, false otherwise.
++ */
++goog.global.CLOSURE_IMPORT_SCRIPT;
++
++
++/**
++ * Null function used for default values of callbacks, etc.
++ * @return {void} Nothing.
++ */
++goog.nullFunction = function() {};
++
++
++/**
++ * The identity function. Returns its first argument.
++ *
++ * @param {*=} opt_returnValue The single value that will be returned.
++ * @param {...*} var_args Optional trailing arguments. These are ignored.
++ * @return {?} The first argument. We can't know the type -- just pass it along
++ *      without type.
++ * @deprecated Use goog.functions.identity instead.
++ */
++goog.identityFunction = function(opt_returnValue, var_args) {
++  return opt_returnValue;
++};
++
++
++/**
++ * When defining a class Foo with an abstract method bar(), you can do:
++ *
++ * Foo.prototype.bar = goog.abstractMethod
++ *
++ * Now if a subclass of Foo fails to override bar(), an error
++ * will be thrown when bar() is invoked.
++ *
++ * Note: This does not take the name of the function to override as
++ * an argument because that would make it more difficult to obfuscate
++ * our JavaScript code.
++ *
++ * @type {!Function}
++ * @throws {Error} when invoked to indicate the method should be
++ *   overridden.
++ */
++goog.abstractMethod = function() {
++  throw Error('unimplemented abstract method');
++};
++
++
++/**
++ * Adds a {@code getInstance} static method that always return the same instance
++ * object.
++ * @param {!Function} ctor The constructor for the class to add the static
++ *     method to.
++ */
++goog.addSingletonGetter = function(ctor) {
++  ctor.getInstance = function() {
++    if (ctor.instance_) {
++      return ctor.instance_;
++    }
++    if (goog.DEBUG) {
++      // NOTE: JSCompiler can't optimize away Array#push.
++      goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor;
++    }
++    return ctor.instance_ = new ctor;
++  };
++};
++
++
++/**
++ * All singleton classes that have been instantiated, for testing. Don't read
++ * it directly, use the {@code goog.testing.singleton} module. The compiler
++ * removes this variable if unused.
++ * @type {!Array.<!Function>}
++ * @private
++ */
++goog.instantiatedSingletons_ = [];
++
++
++if (!COMPILED && goog.ENABLE_DEBUG_LOADER) {
++  /**
++   * Object used to keep track of urls that have already been added. This
++   * record allows the prevention of circular dependencies.
++   * @type {Object}
++   * @private
++   */
++  goog.included_ = {};
++
++
++  /**
++   * This object is used to keep track of dependencies and other data that is
++   * used for loading scripts
++   * @private
++   * @type {Object}
++   */
++  goog.dependencies_ = {
++    pathToNames: {}, // 1 to many
++    nameToPath: {}, // 1 to 1
++    requires: {}, // 1 to many
++    // used when resolving dependencies to prevent us from
++    // visiting the file twice
++    visited: {},
++    written: {} // used to keep track of script files we have written
++  };
++
++
++  /**
++   * Tries to detect whether is in the context of an HTML document.
++   * @return {boolean} True if it looks like HTML document.
++   * @private
++   */
++  goog.inHtmlDocument_ = function() {
++    var doc = goog.global.document;
++    return typeof doc != 'undefined' &&
++           'write' in doc;  // XULDocument misses write.
++  };
++
++
++  /**
++   * Tries to detect the base path of the base.js script that bootstraps Closure
++   * @private
++   */
++  goog.findBasePath_ = function() {
++    if (goog.global.CLOSURE_BASE_PATH) {
++      goog.basePath = goog.global.CLOSURE_BASE_PATH;
++      return;
++    } else if (!goog.inHtmlDocument_()) {
++      return;
++    }
++    var doc = goog.global.document;
++    var scripts = doc.getElementsByTagName('script');
++    // Search backwards since the current script is in almost all cases the one
++    // that has base.js.
++    for (var i = scripts.length - 1; i >= 0; --i) {
++      var src = scripts[i].src;
++      var qmark = src.lastIndexOf('?');
++      var l = qmark == -1 ? src.length : qmark;
++      if (src.substr(l - 7, 7) == 'base.js') {
++        goog.basePath = src.substr(0, l - 7);
++        return;
++      }
++    }
++  };
++
++
++  /**
++   * Imports a script if, and only if, that script hasn't already been imported.
++   * (Must be called at execution time)
++   * @param {string} src Script source.
++   * @private
++   */
++  goog.importScript_ = function(src) {
++    var importScript = goog.global.CLOSURE_IMPORT_SCRIPT ||
++        goog.writeScriptTag_;
++    if (!goog.dependencies_.written[src] && importScript(src)) {
++      goog.dependencies_.written[src] = true;
++    }
++  };
++
++
++  /**
++   * The default implementation of the import function. Writes a script tag to
++   * import the script.
++   *
++   * @param {string} src The script source.
++   * @return {boolean} True if the script was imported, false otherwise.
++   * @private
++   */
++  goog.writeScriptTag_ = function(src) {
++    if (goog.inHtmlDocument_()) {
++      var doc = goog.global.document;
++      doc.write(
++          '<script type="text/javascript" src="' + src + '"></' + 'script>');
++      return true;
++    } else {
++      return false;
++    }
++  };
++
++
++  /**
++   * Resolves dependencies based on the dependencies added using addDependency
++   * and calls importScript_ in the correct order.
++   * @private
++   */
++  goog.writeScripts_ = function() {
++    // the scripts we need to write this time
++    var scripts = [];
++    var seenScript = {};
++    var deps = goog.dependencies_;
++
++    function visitNode(path) {
++      if (path in deps.written) {
++        return;
++      }
++
++      // we have already visited this one. We can get here if we have cyclic
++      // dependencies
++      if (path in deps.visited) {
++        if (!(path in seenScript)) {
++          seenScript[path] = true;
++          scripts.push(path);
++        }
++        return;
++      }
++
++      deps.visited[path] = true;
++
++      if (path in deps.requires) {
++        for (var requireName in deps.requires[path]) {
++          // If the required name is defined, we assume that it was already
++          // bootstrapped by other means.
++          if (!goog.isProvided_(requireName)) {
++            if (requireName in deps.nameToPath) {
++              visitNode(deps.nameToPath[requireName]);
++            } else {
++              throw Error('Undefined nameToPath for ' + requireName);
++            }
++          }
++        }
++      }
++
++      if (!(path in seenScript)) {
++        seenScript[path] = true;
++        scripts.push(path);
++      }
++    }
++
++    for (var path in goog.included_) {
++      if (!deps.written[path]) {
++        visitNode(path);
++      }
++    }
++
++    for (var i = 0; i < scripts.length; i++) {
++      if (scripts[i]) {
++        goog.importScript_(goog.basePath + scripts[i]);
++      } else {
++        throw Error('Undefined script input');
++      }
++    }
++  };
++
++
++  /**
++   * Looks at the dependency rules and tries to determine the script file that
++   * fulfills a particular rule.
++   * @param {string} rule In the form goog.namespace.Class or project.script.
++   * @return {?string} Url corresponding to the rule, or null.
++   * @private
++   */
++  goog.getPathFromDeps_ = function(rule) {
++    if (rule in goog.dependencies_.nameToPath) {
++      return goog.dependencies_.nameToPath[rule];
++    } else {
++      return null;
++    }
++  };
++
++  goog.findBasePath_();
++
++  // Allow projects to manage the deps files themselves.
++  if (!goog.global.CLOSURE_NO_DEPS) {
++    goog.importScript_(goog.basePath + 'deps.js');
++  }
++}
++
++
++
++//==============================================================================
++// Language Enhancements
++//==============================================================================
++
++
++/**
++ * This is a "fixed" version of the typeof operator.  It differs from the typeof
++ * operator in such a way that null returns 'null' and arrays return 'array'.
++ * @param {*} value The value to get the type of.
++ * @return {string} The name of the type.
++ */
++goog.typeOf = function(value) {
++  var s = typeof value;
++  if (s == 'object') {
++    if (value) {
++      // Check these first, so we can avoid calling Object.prototype.toString if
++      // possible.
++      //
++      // IE improperly marshals tyepof across execution contexts, but a
++      // cross-context object will still return false for "instanceof Object".
++      if (value instanceof Array) {
++        return 'array';
++      } else if (value instanceof Object) {
++        return s;
++      }
++
++      // HACK: In order to use an Object prototype method on the arbitrary
++      //   value, the compiler requires the value be cast to type Object,
++      //   even though the ECMA spec explicitly allows it.
++      var className = Object.prototype.toString.call(
++          /** @type {Object} */ (value));
++      // In Firefox 3.6, attempting to access iframe window objects' length
++      // property throws an NS_ERROR_FAILURE, so we need to special-case it
++      // here.
++      if (className == '[object Window]') {
++        return 'object';
++      }
++
++      // We cannot always use constructor == Array or instanceof Array because
++      // different frames have different Array objects. In IE6, if the iframe
++      // where the array was created is destroyed, the array loses its
++      // prototype. Then dereferencing val.splice here throws an exception, so
++      // we can't use goog.isFunction. Calling typeof directly returns 'unknown'
++      // so that will work. In this case, this function will return false and
++      // most array functions will still work because the array is still
++      // array-like (supports length and []) even though it has lost its
++      // prototype.
++      // Mark Miller noticed that Object.prototype.toString
++      // allows access to the unforgeable [[Class]] property.
++      //  15.2.4.2 Object.prototype.toString ( )
++      //  When the toString method is called, the following steps are taken:
++      //      1. Get the [[Class]] property of this object.
++      //      2. Compute a string value by concatenating the three strings
++      //         "[object ", Result(1), and "]".
++      //      3. Return Result(2).
++      // and this behavior survives the destruction of the execution context.
++      if ((className == '[object Array]' ||
++           // In IE all non value types are wrapped as objects across window
++           // boundaries (not iframe though) so we have to do object detection
++           // for this edge case
++           typeof value.length == 'number' &&
++           typeof value.splice != 'undefined' &&
++           typeof value.propertyIsEnumerable != 'undefined' &&
++           !value.propertyIsEnumerable('splice')
++
++          )) {
++        return 'array';
++      }
++      // HACK: There is still an array case that fails.
++      //     function ArrayImpostor() {}
++      //     ArrayImpostor.prototype = [];
++      //     var impostor = new ArrayImpostor;
++      // this can be fixed by getting rid of the fast path
++      // (value instanceof Array) and solely relying on
++      // (value && Object.prototype.toString.vall(value) === '[object Array]')
++      // but that would require many more function calls and is not warranted
++      // unless closure code is receiving objects from untrusted sources.
++
++      // IE in cross-window calls does not correctly marshal the function type
++      // (it appears just as an object) so we cannot use just typeof val ==
++      // 'function'. However, if the object has a call property, it is a
++      // function.
++      if ((className == '[object Function]' ||
++          typeof value.call != 'undefined' &&
++          typeof value.propertyIsEnumerable != 'undefined' &&
++          !value.propertyIsEnumerable('call'))) {
++        return 'function';
++      }
++
++
++    } else {
++      return 'null';
++    }
++
++  } else if (s == 'function' && typeof value.call == 'undefined') {
++    // In Safari typeof nodeList returns 'function', and on Firefox
++    // typeof behaves similarly for HTML{Applet,Embed,Object}Elements
++    // and RegExps.  We would like to return object for those and we can
++    // detect an invalid function by making sure that the function
++    // object has a call method.
++    return 'object';
++  }
++  return s;
++};
++
++
++/**
++ * Returns true if the specified value is not |undefined|.
++ * WARNING: Do not use this to test if an object has a property. Use the in
++ * operator instead.  Additionally, this function assumes that the global
++ * undefined variable has not been redefined.
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is defined.
++ */
++goog.isDef = function(val) {
++  return val !== undefined;
++};
++
++
++/**
++ * Returns true if the specified value is |null|
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is null.
++ */
++goog.isNull = function(val) {
++  return val === null;
++};
++
++
++/**
++ * Returns true if the specified value is defined and not null
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is defined and not null.
++ */
++goog.isDefAndNotNull = function(val) {
++  // Note that undefined == null.
++  return val != null;
++};
++
++
++/**
++ * Returns true if the specified value is an array
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is an array.
++ */
++goog.isArray = function(val) {
++  return goog.typeOf(val) == 'array';
++};
++
++
++/**
++ * Returns true if the object looks like an array. To qualify as array like
++ * the value needs to be either a NodeList or an object with a Number length
++ * property.
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is an array.
++ */
++goog.isArrayLike = function(val) {
++  var type = goog.typeOf(val);
++  return type == 'array' || type == 'object' && typeof val.length == 'number';
++};
++
++
++/**
++ * Returns true if the object looks like a Date. To qualify as Date-like
++ * the value needs to be an object and have a getFullYear() function.
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is a like a Date.
++ */
++goog.isDateLike = function(val) {
++  return goog.isObject(val) && typeof val.getFullYear == 'function';
++};
++
++
++/**
++ * Returns true if the specified value is a string
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is a string.
++ */
++goog.isString = function(val) {
++  return typeof val == 'string';
++};
++
++
++/**
++ * Returns true if the specified value is a boolean
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is boolean.
++ */
++goog.isBoolean = function(val) {
++  return typeof val == 'boolean';
++};
++
++
++/**
++ * Returns true if the specified value is a number
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is a number.
++ */
++goog.isNumber = function(val) {
++  return typeof val == 'number';
++};
++
++
++/**
++ * Returns true if the specified value is a function
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is a function.
++ */
++goog.isFunction = function(val) {
++  return goog.typeOf(val) == 'function';
++};
++
++
++/**
++ * Returns true if the specified value is an object.  This includes arrays
++ * and functions.
++ * @param {*} val Variable to test.
++ * @return {boolean} Whether variable is an object.
++ */
++goog.isObject = function(val) {
++  var type = typeof val;
++  return type == 'object' && val != null || type == 'function';
++  // return Object(val) === val also works, but is slower, especially if val is
++  // not an object.
++};
++
++
++/**
++ * Gets a unique ID for an object. This mutates the object so that further
++ * calls with the same object as a parameter returns the same value. The unique
++ * ID is guaranteed to be unique across the current session amongst objects that
++ * are passed into {@code getUid}. There is no guarantee that the ID is unique
++ * or consistent across sessions. It is unsafe to generate unique ID for
++ * function prototypes.
++ *
++ * @param {Object} obj The object to get the unique ID for.
++ * @return {number} The unique ID for the object.
++ */
++goog.getUid = function(obj) {
++  // TODO(arv): Make the type stricter, do not accept null.
++
++  // In Opera window.hasOwnProperty exists but always returns false so we avoid
++  // using it. As a consequence the unique ID generated for BaseClass.prototype
++  // and SubClass.prototype will be the same.
++  return obj[goog.UID_PROPERTY_] ||
++      (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_);
++};
++
++
++/**
++ * Removes the unique ID from an object. This is useful if the object was
++ * previously mutated using {@code goog.getUid} in which case the mutation is
++ * undone.
++ * @param {Object} obj The object to remove the unique ID field from.
++ */
++goog.removeUid = function(obj) {
++  // TODO(arv): Make the type stricter, do not accept null.
++
++  // DOM nodes in IE are not instance of Object and throws exception
++  // for delete. Instead we try to use removeAttribute
++  if ('removeAttribute' in obj) {
++    obj.removeAttribute(goog.UID_PROPERTY_);
++  }
++  /** @preserveTry */
++  try {
++    delete obj[goog.UID_PROPERTY_];
++  } catch (ex) {
++  }
++};
++
++
++/**
++ * Name for unique ID property. Initialized in a way to help avoid collisions
++ * with other closure javascript on the same page.
++ * @type {string}
++ * @private
++ */
++goog.UID_PROPERTY_ = 'closure_uid_' +
++    Math.floor(Math.random() * 2147483648).toString(36);
++
++
++/**
++ * Counter for UID.
++ * @type {number}
++ * @private
++ */
++goog.uidCounter_ = 0;
++
++
++/**
++ * Adds a hash code field to an object. The hash code is unique for the
++ * given object.
++ * @param {Object} obj The object to get the hash code for.
++ * @return {number} The hash code for the object.
++ * @deprecated Use goog.getUid instead.
++ */
++goog.getHashCode = goog.getUid;
++
++
++/**
++ * Removes the hash code field from an object.
++ * @param {Object} obj The object to remove the field from.
++ * @deprecated Use goog.removeUid instead.
++ */
++goog.removeHashCode = goog.removeUid;
++
++
++/**
++ * Clones a value. The input may be an Object, Array, or basic type. Objects and
++ * arrays will be cloned recursively.
++ *
++ * WARNINGS:
++ * <code>goog.cloneObject</code> does not detect reference loops. Objects that
++ * refer to themselves will cause infinite recursion.
++ *
++ * <code>goog.cloneObject</code> is unaware of unique identifiers, and copies
++ * UIDs created by <code>getUid</code> into cloned results.
++ *
++ * @param {*} obj The value to clone.
++ * @return {*} A clone of the input value.
++ * @deprecated goog.cloneObject is unsafe. Prefer the goog.object methods.
++ */
++goog.cloneObject = function(obj) {
++  var type = goog.typeOf(obj);
++  if (type == 'object' || type == 'array') {
++    if (obj.clone) {
++      return obj.clone();
++    }
++    var clone = type == 'array' ? [] : {};
++    for (var key in obj) {
++      clone[key] = goog.cloneObject(obj[key]);
++    }
++    return clone;
++  }
++
++  return obj;
++};
++
++
++/**
++ * Forward declaration for the clone method. This is necessary until the
++ * compiler can better support duck-typing constructs as used in
++ * goog.cloneObject.
++ *
++ * TODO(brenneman): Remove once the JSCompiler can infer that the check for
++ * proto.clone is safe in goog.cloneObject.
++ *
++ * @type {Function}
++ */
++Object.prototype.clone;
++
++
++/**
++ * A native implementation of goog.bind.
++ * @param {Function} fn A function to partially apply.
++ * @param {Object|undefined} selfObj Specifies the object which |this| should
++ *     point to when the function is run.
++ * @param {...*} var_args Additional arguments that are partially
++ *     applied to the function.
++ * @return {!Function} A partially-applied form of the function bind() was
++ *     invoked as a method of.
++ * @private
++ * @suppress {deprecated} The compiler thinks that Function.prototype.bind
++ *     is deprecated because some people have declared a pure-JS version.
++ *     Only the pure-JS version is truly deprecated.
++ */
++goog.bindNative_ = function(fn, selfObj, var_args) {
++  return /** @type {!Function} */ (fn.call.apply(fn.bind, arguments));
++};
++
++
++/**
++ * A pure-JS implementation of goog.bind.
++ * @param {Function} fn A function to partially apply.
++ * @param {Object|undefined} selfObj Specifies the object which |this| should
++ *     point to when the function is run.
++ * @param {...*} var_args Additional arguments that are partially
++ *     applied to the function.
++ * @return {!Function} A partially-applied form of the function bind() was
++ *     invoked as a method of.
++ * @private
++ */
++goog.bindJs_ = function(fn, selfObj, var_args) {
++  if (!fn) {
++    throw new Error();
++  }
++
++  if (arguments.length > 2) {
++    var boundArgs = Array.prototype.slice.call(arguments, 2);
++    return function() {
++      // Prepend the bound arguments to the current arguments.
++      var newArgs = Array.prototype.slice.call(arguments);
++      Array.prototype.unshift.apply(newArgs, boundArgs);
++      return fn.apply(selfObj, newArgs);
++    };
++
++  } else {
++    return function() {
++      return fn.apply(selfObj, arguments);
++    };
++  }
++};
++
++
++/**
++ * Partially applies this function to a particular 'this object' and zero or
++ * more arguments. The result is a new function with some arguments of the first
++ * function pre-filled and the value of |this| 'pre-specified'.<br><br>
++ *
++ * Remaining arguments specified at call-time are appended to the pre-
++ * specified ones.<br><br>
++ *
++ * Also see: {@link #partial}.<br><br>
++ *
++ * Usage:
++ * <pre>var barMethBound = bind(myFunction, myObj, 'arg1', 'arg2');
++ * barMethBound('arg3', 'arg4');</pre>
++ *
++ * @param {Function} fn A function to partially apply.
++ * @param {Object|undefined} selfObj Specifies the object which |this| should
++ *     point to when the function is run.
++ * @param {...*} var_args Additional arguments that are partially
++ *     applied to the function.
++ * @return {!Function} A partially-applied form of the function bind() was
++ *     invoked as a method of.
++ * @suppress {deprecated} See above.
++ */
++goog.bind = function(fn, selfObj, var_args) {
++  // TODO(nicksantos): narrow the type signature.
++  if (Function.prototype.bind &&
++      // NOTE(nicksantos): Somebody pulled base.js into the default
++      // Chrome extension environment. This means that for Chrome extensions,
++      // they get the implementation of Function.prototype.bind that
++      // calls goog.bind instead of the native one. Even worse, we don't want
++      // to introduce a circular dependency between goog.bind and
++      // Function.prototype.bind, so we have to hack this to make sure it
++      // works correctly.
++      Function.prototype.bind.toString().indexOf('native code') != -1) {
++    goog.bind = goog.bindNative_;
++  } else {
++    goog.bind = goog.bindJs_;
++  }
++  return goog.bind.apply(null, arguments);
++};
++
++
++/**
++ * Like bind(), except that a 'this object' is not required. Useful when the
++ * target function is already bound.
++ *
++ * Usage:
++ * var g = partial(f, arg1, arg2);
++ * g(arg3, arg4);
++ *
++ * @param {Function} fn A function to partially apply.
++ * @param {...*} var_args Additional arguments that are partially
++ *     applied to fn.
++ * @return {!Function} A partially-applied form of the function bind() was
++ *     invoked as a method of.
++ */
++goog.partial = function(fn, var_args) {
++  var args = Array.prototype.slice.call(arguments, 1);
++  return function() {
++    // Prepend the bound arguments to the current arguments.
++    var newArgs = Array.prototype.slice.call(arguments);
++    newArgs.unshift.apply(newArgs, args);
++    return fn.apply(this, newArgs);
++  };
++};
++
++
++/**
++ * Copies all the members of a source object to a target object. This method
++ * does not work on all browsers for all objects that contain keys such as
++ * toString or hasOwnProperty. Use goog.object.extend for this purpose.
++ * @param {Object} target Target.
++ * @param {Object} source Source.
++ */
++goog.mixin = function(target, source) {
++  for (var x in source) {
++    target[x] = source[x];
++  }
++
++  // For IE7 or lower, the for-in-loop does not contain any properties that are
++  // not enumerable on the prototype object (for example, isPrototypeOf from
++  // Object.prototype) but also it will not include 'replace' on objects that
++  // extend String and change 'replace' (not that it is common for anyone to
++  // extend anything except Object).
++};
++
++
++/**
++ * @return {number} An integer value representing the number of milliseconds
++ *     between midnight, January 1, 1970 and the current time.
++ */
++goog.now = Date.now || (function() {
++  // Unary plus operator converts its operand to a number which in the case of
++  // a date is done by calling getTime().
++  return +new Date();
++});
++
++
++/**
++ * Evals javascript in the global scope.  In IE this uses execScript, other
++ * browsers use goog.global.eval. If goog.global.eval does not evaluate in the
++ * global scope (for example, in Safari), appends a script tag instead.
++ * Throws an exception if neither execScript or eval is defined.
++ * @param {string} script JavaScript string.
++ */
++goog.globalEval = function(script) {
++  if (goog.global.execScript) {
++    goog.global.execScript(script, 'JavaScript');
++  } else if (goog.global.eval) {
++    // Test to see if eval works
++    if (goog.evalWorksForGlobals_ == null) {
++      goog.global.eval('var _et_ = 1;');
++      if (typeof goog.global['_et_'] != 'undefined') {
++        delete goog.global['_et_'];
++        goog.evalWorksForGlobals_ = true;
++      } else {
++        goog.evalWorksForGlobals_ = false;
++      }
++    }
++
++    if (goog.evalWorksForGlobals_) {
++      goog.global.eval(script);
++    } else {
++      var doc = goog.global.document;
++      var scriptElt = doc.createElement('script');
++      scriptElt.type = 'text/javascript';
++      scriptElt.defer = false;
++      // Note(user): can't use .innerHTML since "t('<test>')" will fail and
++      // .text doesn't work in Safari 2.  Therefore we append a text node.
++      scriptElt.appendChild(doc.createTextNode(script));
++      doc.body.appendChild(scriptElt);
++      doc.body.removeChild(scriptElt);
++    }
++  } else {
++    throw Error('goog.globalEval not available');
++  }
++};
++
++
++/**
++ * Indicates whether or not we can call 'eval' directly to eval code in the
++ * global scope. Set to a Boolean by the first call to goog.globalEval (which
++ * empirically tests whether eval works for globals). @see goog.globalEval
++ * @type {?boolean}
++ * @private
++ */
++goog.evalWorksForGlobals_ = null;
++
++
++/**
++ * Optional map of CSS class names to obfuscated names used with
++ * goog.getCssName().
++ * @type {Object|undefined}
++ * @private
++ * @see goog.setCssNameMapping
++ */
++goog.cssNameMapping_;
++
++
++/**
++ * Optional obfuscation style for CSS class names. Should be set to either
++ * 'BY_WHOLE' or 'BY_PART' if defined.
++ * @type {string|undefined}
++ * @private
++ * @see goog.setCssNameMapping
++ */
++goog.cssNameMappingStyle_;
++
++
++/**
++ * Handles strings that are intended to be used as CSS class names.
++ *
++ * This function works in tandem with @see goog.setCssNameMapping.
++ *
++ * Without any mapping set, the arguments are simple joined with a
++ * hyphen and passed through unaltered.
++ *
++ * When there is a mapping, there are two possible styles in which
++ * these mappings are used. In the BY_PART style, each part (i.e. in
++ * between hyphens) of the passed in css name is rewritten according
++ * to the map. In the BY_WHOLE style, the full css name is looked up in
++ * the map directly. If a rewrite is not specified by the map, the
++ * compiler will output a warning.
++ *
++ * When the mapping is passed to the compiler, it will replace calls
++ * to goog.getCssName with the strings from the mapping, e.g.
++ *     var x = goog.getCssName('foo');
++ *     var y = goog.getCssName(this.baseClass, 'active');
++ *  becomes:
++ *     var x= 'foo';
++ *     var y = this.baseClass + '-active';
++ *
++ * If one argument is passed it will be processed, if two are passed
++ * only the modifier will be processed, as it is assumed the first
++ * argument was generated as a result of calling goog.getCssName.
++ *
++ * @param {string} className The class name.
++ * @param {string=} opt_modifier A modifier to be appended to the class name.
++ * @return {string} The class name or the concatenation of the class name and
++ *     the modifier.
++ */
++goog.getCssName = function(className, opt_modifier) {
++  var getMapping = function(cssName) {
++    return goog.cssNameMapping_[cssName] || cssName;
++  };
++
++  var renameByParts = function(cssName) {
++    // Remap all the parts individually.
++    var parts = cssName.split('-');
++    var mapped = [];
++    for (var i = 0; i < parts.length; i++) {
++      mapped.push(getMapping(parts[i]));
++    }
++    return mapped.join('-');
++  };
++
++  var rename;
++  if (goog.cssNameMapping_) {
++    rename = goog.cssNameMappingStyle_ == 'BY_WHOLE' ?
++        getMapping : renameByParts;
++  } else {
++    rename = function(a) {
++      return a;
++    };
++  }
++
++  if (opt_modifier) {
++    return className + '-' + rename(opt_modifier);
++  } else {
++    return rename(className);
++  }
++};
++
++
++/**
++ * Sets the map to check when returning a value from goog.getCssName(). Example:
++ * <pre>
++ * goog.setCssNameMapping({
++ *   "goog": "a",
++ *   "disabled": "b",
++ * });
++ *
++ * var x = goog.getCssName('goog');
++ * // The following evaluates to: "a a-b".
++ * goog.getCssName('goog') + ' ' + goog.getCssName(x, 'disabled')
++ * </pre>
++ * When declared as a map of string literals to string literals, the JSCompiler
++ * will replace all calls to goog.getCssName() using the supplied map if the
++ * --closure_pass flag is set.
++ *
++ * @param {!Object} mapping A map of strings to strings where keys are possible
++ *     arguments to goog.getCssName() and values are the corresponding values
++ *     that should be returned.
++ * @param {string=} opt_style The style of css name mapping. There are two valid
++ *     options: 'BY_PART', and 'BY_WHOLE'.
++ * @see goog.getCssName for a description.
++ */
++goog.setCssNameMapping = function(mapping, opt_style) {
++  goog.cssNameMapping_ = mapping;
++  goog.cssNameMappingStyle_ = opt_style;
++};
++
++
++/**
++ * To use CSS renaming in compiled mode, one of the input files should have a
++ * call to goog.setCssNameMapping() with an object literal that the JSCompiler
++ * can extract and use to replace all calls to goog.getCssName(). In uncompiled
++ * mode, JavaScript code should be loaded before this base.js file that declares
++ * a global variable, CLOSURE_CSS_NAME_MAPPING, which is used below. This is
++ * to ensure that the mapping is loaded before any calls to goog.getCssName()
++ * are made in uncompiled mode.
++ *
++ * A hook for overriding the CSS name mapping.
++ * @type {Object|undefined}
++ */
++goog.global.CLOSURE_CSS_NAME_MAPPING;
++
++
++if (!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) {
++  // This does not call goog.setCssNameMapping() because the JSCompiler
++  // requires that goog.setCssNameMapping() be called with an object literal.
++  goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING;
++}
++
++
++/**
++ * Abstract implementation of goog.getMsg for use with localized messages.
++ * @param {string} str Translatable string, places holders in the form {$foo}.
++ * @param {Object=} opt_values Map of place holder name to value.
++ * @return {string} message with placeholders filled.
++ */
++goog.getMsg = function(str, opt_values) {
++  var values = opt_values || {};
++  for (var key in values) {
++    var value = ('' + values[key]).replace(/\$/g, '$$$$');
++    str = str.replace(new RegExp('\\{\\$' + key + '\\}', 'gi'), value);
++  }
++  return str;
++};
++
++
++/**
++ * Exposes an unobfuscated global namespace path for the given object.
++ * Note that fields of the exported object *will* be obfuscated,
++ * unless they are exported in turn via this function or
++ * goog.exportProperty
++ *
++ * <p>Also handy for making public items that are defined in anonymous
++ * closures.
++ *
++ * ex. goog.exportSymbol('public.path.Foo', Foo);
++ *
++ * ex. goog.exportSymbol('public.path.Foo.staticFunction',
++ *                       Foo.staticFunction);
++ *     public.path.Foo.staticFunction();
++ *
++ * ex. goog.exportSymbol('public.path.Foo.prototype.myMethod',
++ *                       Foo.prototype.myMethod);
++ *     new public.path.Foo().myMethod();
++ *
++ * @param {string} publicPath Unobfuscated name to export.
++ * @param {*} object Object the name should point to.
++ * @param {Object=} opt_objectToExportTo The object to add the path to; default
++ *     is |goog.global|.
++ */
++goog.exportSymbol = function(publicPath, object, opt_objectToExportTo) {
++  goog.exportPath_(publicPath, object, opt_objectToExportTo);
++};
++
++
++/**
++ * Exports a property unobfuscated into the object's namespace.
++ * ex. goog.exportProperty(Foo, 'staticFunction', Foo.staticFunction);
++ * ex. goog.exportProperty(Foo.prototype, 'myMethod', Foo.prototype.myMethod);
++ * @param {Object} object Object whose static property is being exported.
++ * @param {string} publicName Unobfuscated name to export.
++ * @param {*} symbol Object the name should point to.
++ */
++goog.exportProperty = function(object, publicName, symbol) {
++  object[publicName] = symbol;
++};
++
++
++/**
++ * Inherit the prototype methods from one constructor into another.
++ *
++ * Usage:
++ * <pre>
++ * function ParentClass(a, b) { }
++ * ParentClass.prototype.foo = function(a) { }
++ *
++ * function ChildClass(a, b, c) {
++ *   goog.base(this, a, b);
++ * }
++ * goog.inherits(ChildClass, ParentClass);
++ *
++ * var child = new ChildClass('a', 'b', 'see');
++ * child.foo(); // works
++ * </pre>
++ *
++ * In addition, a superclass' implementation of a method can be invoked
++ * as follows:
++ *
++ * <pre>
++ * ChildClass.prototype.foo = function(a) {
++ *   ChildClass.superClass_.foo.call(this, a);
++ *   // other code
++ * };
++ * </pre>
++ *
++ * @param {Function} childCtor Child class.
++ * @param {Function} parentCtor Parent class.
++ */
++goog.inherits = function(childCtor, parentCtor) {
++  /** @constructor */
++  function tempCtor() {};
++  tempCtor.prototype = parentCtor.prototype;
++  childCtor.superClass_ = parentCtor.prototype;
++  childCtor.prototype = new tempCtor();
++  childCtor.prototype.constructor = childCtor;
++};
++
++
++/**
++ * Call up to the superclass.
++ *
++ * If this is called from a constructor, then this calls the superclass
++ * contructor with arguments 1-N.
++ *
++ * If this is called from a prototype method, then you must pass
++ * the name of the method as the second argument to this function. If
++ * you do not, you will get a runtime error. This calls the superclass'
++ * method with arguments 2-N.
++ *
++ * This function only works if you use goog.inherits to express
++ * inheritance relationships between your classes.
++ *
++ * This function is a compiler primitive. At compile-time, the
++ * compiler will do macro expansion to remove a lot of
++ * the extra overhead that this function introduces. The compiler
++ * will also enforce a lot of the assumptions that this function
++ * makes, and treat it as a compiler error if you break them.
++ *
++ * @param {!Object} me Should always be "this".
++ * @param {*=} opt_methodName The method name if calling a super method.
++ * @param {...*} var_args The rest of the arguments.
++ * @return {*} The return value of the superclass method.
++ */
++goog.base = function(me, opt_methodName, var_args) {
++  var caller = arguments.callee.caller;
++  if (caller.superClass_) {
++    // This is a constructor. Call the superclass constructor.
++    return caller.superClass_.constructor.apply(
++        me, Array.prototype.slice.call(arguments, 1));
++  }
++
++  var args = Array.prototype.slice.call(arguments, 2);
++  var foundCaller = false;
++  for (var ctor = me.constructor;
++       ctor; ctor = ctor.superClass_ && ctor.superClass_.constructor) {
++    if (ctor.prototype[opt_methodName] === caller) {
++      foundCaller = true;
++    } else if (foundCaller) {
++      return ctor.prototype[opt_methodName].apply(me, args);
++    }
++  }
++
++  // If we did not find the caller in the prototype chain,
++  // then one of two things happened:
++  // 1) The caller is an instance method.
++  // 2) This method was not called by the right caller.
++  if (me[opt_methodName] === caller) {
++    return me.constructor.prototype[opt_methodName].apply(me, args);
++  } else {
++    throw Error(
++        'goog.base called from a method of one name ' +
++        'to a method of a different name');
++  }
++};
++
++
++/**
++ * Allow for aliasing within scope functions.  This function exists for
++ * uncompiled code - in compiled code the calls will be inlined and the
++ * aliases applied.  In uncompiled code the function is simply run since the
++ * aliases as written are valid JavaScript.
++ * @param {function()} fn Function to call.  This function can contain aliases
++ *     to namespaces (e.g. "var dom = goog.dom") or classes
++ *    (e.g. "var Timer = goog.Timer").
++ */
++goog.scope = function(fn) {
++  fn.call(goog.global);
++};
++
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dfecc4bf74502f3770e55c5b3215481b694e3a51
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,202 @@@
++#!/usr/bin/env python
++#
++# Copyright 2009 The Closure Library Authors. All Rights Reserved.
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++#      http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS-IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++
++"""Generates out a Closure deps.js file given a list of JavaScript sources.
++
++Paths can be specified as arguments or (more commonly) specifying trees
++with the flags (call with --help for descriptions).
++
++Usage: depswriter.py [path/to/js1.js [path/to/js2.js] ...]
++"""
++
++import logging
++import optparse
++import os
++import posixpath
++import shlex
++import sys
++
++import source
++import treescan
++
++
++__author__ = 'nnaze@google.com (Nathan Naze)'
++
++
++def MakeDepsFile(source_map):
++  """Make a generated deps file.
++
++  Args:
++    source_map: A dict map of the source path to source.Source object.
++
++  Returns:
++    str, A generated deps file source.
++  """
++
++  # Write in path alphabetical order
++  paths = sorted(source_map.keys())
++
++  lines = []
++
++  for path in paths:
++    js_source = source_map[path]
++
++    # We don't need to add entries that don't provide anything.
++    if js_source.provides:
++      lines.append(_GetDepsLine(path, js_source))
++
++  return ''.join(lines)
++
++
++def _GetDepsLine(path, js_source):
++  """Get a deps.js file string for a source."""
++
++  provides = sorted(js_source.provides)
++  requires = sorted(js_source.requires)
++
++  return 'goog.addDependency(\'%s\', %s, %s);\n' % (path, provides, requires)
++
++
++def _GetOptionsParser():
++  """Get the options parser."""
++
++  parser = optparse.OptionParser(__doc__)
++
++  parser.add_option('--output_file',
++                    dest='output_file',
++                    action='store',
++                    help=('If specified, write output to this path instead of '
++                          'writing to standard output.'))
++  parser.add_option('--root',
++                    dest='roots',
++                    default=[],
++                    action='append',
++                    help='A root directory to scan for JS source files. '
++                    'Paths of JS files in generated deps file will be '
++                    'relative to this path.  This flag may be specified '
++                    'multiple times.')
++  parser.add_option('--root_with_prefix',
++                    dest='roots_with_prefix',
++                    default=[],
++                    action='append',
++                    help='A root directory to scan for JS source files, plus '
++                    'a prefix (if either contains a space, surround with '
++                    'quotes).  Paths in generated deps file will be relative '
++                    'to the root, but preceded by the prefix.  This flag '
++                    'may be specified multiple times.')
++  parser.add_option('--path_with_depspath',
++                    dest='paths_with_depspath',
++                    default=[],
++                    action='append',
++                    help='A path to a source file and an alternate path to '
++                    'the file in the generated deps file (if either contains '
++                    'a space, surround with whitespace). This flag may be '
++                    'specified multiple times.')
++  return parser
++
++
++def _NormalizePathSeparators(path):
++  """Replaces OS-specific path separators with POSIX-style slashes.
++
++  Args:
++    path: str, A file path.
++
++  Returns:
++    str, The path with any OS-specific path separators (such as backslash on
++      Windows) replaced with URL-compatible forward slashes. A no-op on systems
++      that use POSIX paths.
++  """
++  return path.replace(os.sep, posixpath.sep)
++
++
++def _GetRelativePathToSourceDict(root, prefix=''):
++  """Scans a top root directory for .js sources.
++
++  Args:
++    root: str, Root directory.
++    prefix: str, Prefix for returned paths.
++
++  Returns:
++    dict, A map of relative paths (with prefix, if given), to source.Source
++      objects.
++  """
++  # Remember and restore the cwd when we're done. We work from the root so
++  # that paths are relative from the root.
++  start_wd = os.getcwd()
++  os.chdir(root)
++
++  path_to_source = {}
++  for path in treescan.ScanTreeForJsFiles('.'):
++    prefixed_path = _NormalizePathSeparators(os.path.join(prefix, path))
++    path_to_source[prefixed_path] = source.Source(source.GetFileContents(path))
++
++  os.chdir(start_wd)
++
++  return path_to_source
++
++
++def _GetPair(s):
++  """Return a string as a shell-parsed tuple.  Two values expected."""
++  try:
++    # shlex uses '\' as an escape character, so they must be escaped.
++    s = s.replace('\\', '\\\\')
++    first, second = shlex.split(s)
++    return (first, second)
++  except:
++    raise Exception('Unable to parse input line as a pair: %s' % s)
++
++
++def main():
++  """CLI frontend to MakeDepsFile."""
++  logging.basicConfig(format=(sys.argv[0] + ': %(message)s'),
++                      level=logging.INFO)
++  options, args = _GetOptionsParser().parse_args()
++
++  path_to_source = {}
++
++  # Roots without prefixes
++  for root in options.roots:
++    path_to_source.update(_GetRelativePathToSourceDict(root))
++
++  # Roots with prefixes
++  for root_and_prefix in options.roots_with_prefix:
++    root, prefix = _GetPair(root_and_prefix)
++    path_to_source.update(_GetRelativePathToSourceDict(root, prefix=prefix))
++
++  # Source paths
++  for path in args:
++    path_to_source[path] = source.Source(source.GetFileContents(path))
++
++  # Source paths with alternate deps paths
++  for path_with_depspath in options.paths_with_depspath:
++    srcpath, depspath = _GetPair(path_with_depspath)
++    path_to_source[depspath] = source.Source(source.GetFileContents(srcpath))
++
++  # Make our output pipe.
++  if options.output_file:
++    out = open(options.output_file, 'w')
++  else:
++    out = sys.stdout
++
++  out.write('// This file was autogenerated by %s.\n' % sys.argv[0])
++  out.write('// Please do not edit.\n')
++
++  out.write(MakeDepsFile(path_to_source))
++
++
++if __name__ == '__main__':
++  main()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c2ee1fbb26f618df41637900effa2c47b356ca34
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,114 @@@
++# Copyright 2009 The Closure Library Authors. All Rights Reserved.
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++#      http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS-IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++
++"""Scans a source JS file for its provided and required namespaces.
++
++Simple class to scan a JavaScript file and express its dependencies.
++"""
++
++__author__ = 'nnaze@google.com'
++
++
++import re
++
++_BASE_REGEX_STRING = '^\s*goog\.%s\(\s*[\'"](.+)[\'"]\s*\)'
++_PROVIDE_REGEX = re.compile(_BASE_REGEX_STRING % 'provide')
++_REQUIRES_REGEX = re.compile(_BASE_REGEX_STRING % 'require')
++
++# This line identifies base.js and should match the line in that file.
++_GOOG_BASE_LINE = (
++    'var goog = goog || {}; // Identifies this file as the Closure base.')
++
++
++class Source(object):
++  """Scans a JavaScript source for its provided and required namespaces."""
++
++  # Matches a "/* ... */" comment.
++  # Note: We can't definitively distinguish a "/*" in a string literal without a
++  # state machine tokenizer. We'll assume that a line starting with whitespace
++  # and "/*" is a comment.
++  _COMMENT_REGEX = re.compile(
++      r"""
++      ^\s*   # Start of a new line and whitespace
++      /\*    # Opening "/*"
++      .*?    # Non greedy match of any characters (including newlines)
++      \*/    # Closing "*/""",
++      re.MULTILINE | re.DOTALL | re.VERBOSE)
++
++  def __init__(self, source):
++    """Initialize a source.
++
++    Args:
++      source: str, The JavaScript source.
++    """
++
++    self.provides = set()
++    self.requires = set()
++
++    self._source = source
++    self._ScanSource()
++
++  def __str__(self):
++    return 'Source %s' % self._path
++
++  def GetSource(self):
++    """Get the source as a string."""
++    return self._source
++
++  @classmethod
++  def _StripComments(cls, source):
++    return cls._COMMENT_REGEX.sub('', source)
++
++  def _ScanSource(self):
++    """Fill in provides and requires by scanning the source."""
++
++    source = self._StripComments(self.GetSource())
++
++    source_lines = source.splitlines()
++    for line in source_lines:
++      match = _PROVIDE_REGEX.match(line)
++      if match:
++        self.provides.add(match.group(1))
++      match = _REQUIRES_REGEX.match(line)
++      if match:
++        self.requires.add(match.group(1))
++
++    # Closure's base file implicitly provides 'goog'.
++    for line in source_lines:
++      if line == _GOOG_BASE_LINE:
++        if len(self.provides) or len(self.requires):
++          raise Exception(
++              'Base files should not provide or require namespaces.')
++        self.provides.add('goog')
++
++
++def GetFileContents(path):
++  """Get a file's contents as a string.
++
++  Args:
++    path: str, Path to file.
++
++  Returns:
++    str, Contents of file.
++
++  Raises:
++    IOError: An error occurred opening or reading the file.
++
++  """
++  fileobj = open(path)
++  try:
++    return fileobj.read()
++  finally:
++    fileobj.close()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6694593aab0a3ae36a45429f9ca9dead2920b999
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,78 @@@
++#!/usr/bin/env python
++#
++# Copyright 2010 The Closure Library Authors. All Rights Reserved.
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++#      http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS-IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++
++"""Shared utility functions for scanning directory trees."""
++
++import os
++import re
++
++
++__author__ = 'nnaze@google.com (Nathan Naze)'
++
++
++# Matches a .js file path.
++_JS_FILE_REGEX = re.compile(r'^.+\.js$')
++
++
++def ScanTreeForJsFiles(root):
++  """Scans a directory tree for JavaScript files.
++
++  Args:
++    root: str, Path to a root directory.
++
++  Returns:
++    An iterable of paths to JS files, relative to cwd.
++  """
++  return ScanTree(root, path_filter=_JS_FILE_REGEX)
++
++
++def ScanTree(root, path_filter=None, ignore_hidden=True):
++  """Scans a directory tree for files.
++
++  Args:
++    root: str, Path to a root directory.
++    path_filter: A regular expression filter.  If set, only paths matching
++      the path_filter are returned.
++    ignore_hidden: If True, do not follow or return hidden directories or files
++      (those starting with a '.' character).
++
++  Yields:
++    A string path to files, relative to cwd.
++  """
++
++  def OnError(os_error):
++    raise os_error
++
++  for dirpath, dirnames, filenames in os.walk(root, onerror=OnError):
++    # os.walk allows us to modify dirnames to prevent decent into particular
++    # directories.  Avoid hidden directories.
++    for dirname in dirnames:
++      if ignore_hidden and dirname.startswith('.'):
++        dirnames.remove(dirname)
++
++    for filename in filenames:
++
++      # nothing that starts with '.'
++      if ignore_hidden and filename.startswith('.'):
++        continue
++
++      fullpath = os.path.join(dirpath, filename)
++
++      if path_filter and not path_filter.match(fullpath):
++        continue
++
++      yield os.path.normpath(fullpath)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2254e823e9682f73b8095705464886ca51912162
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++/**
++ * defines
++ */
++
++goog.provide('USE_TYPEDARRAY');
++
++// Safari が typeof Uint8Array === 'object' になるため、
++// 未定義か否かで Typed Array の使用を決定する
++
++/** @const {boolean} use typed array flag. */
++var USE_TYPEDARRAY =
++  (typeof Uint8Array !== 'undefined') &&
++  (typeof Uint16Array !== 'undefined') &&
++  (typeof Uint32Array !== 'undefined');
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..70c390b6927a5352c8ee471607d776d6943879d9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++/**
++ * typed array defines
++ */
++
++goog.provide('USE_TYPEDARRAY');
++
++/** @define {boolean} use typed array flag. */
++var USE_TYPEDARRAY = true;
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8c6756f6d9624c98fa6b4ce09d91d828a20bac73
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++// This file was autogenerated by closure-primitives/depswriter.py.
++// Please do not edit.
++goog.addDependency('../bin/zlib.pretty.js', ['USE_TYPEDARRAY', 'Zlib', 'Zlib.Adler32', 'Zlib.BitStream', 'Zlib.CRC32', 'Zlib.Deflate', 'Zlib.Gunzip', 'Zlib.GunzipMember', 'Zlib.Gzip', 'Zlib.Heap', 'Zlib.Huffman', 'Zlib.Inflate', 'Zlib.InflateStream', 'Zlib.RawDeflate', 'Zlib.RawInflate', 'Zlib.RawInflateStream', 'Zlib.Unzip', 'Zlib.Util', 'Zlib.Zip', 'Zlib.exportObject'], ['USE_TYPEDARRAY', 'Zlib', 'Zlib.Adler32', 'Zlib.BitStream', 'Zlib.CRC32', 'Zlib.Deflate', 'Zlib.Gunzip', 'Zlib.GunzipMember', 'Zlib.Gzip', 'Zlib.Heap', 'Zlib.Huffman', 'Zlib.Inflate', 'Zlib.InflateStream', 'Zlib.RawDeflate', 'Zlib.RawInflate', 'Zlib.RawInflateStream', 'Zlib.Unzip', 'Zlib.Util', 'Zlib.Zip', 'Zlib.exportObject']);
++goog.addDependency('../closure-primitives/base.js', ['goog'], []);
++goog.addDependency('../define/typedarray/hybrid.js', ['USE_TYPEDARRAY'], []);
++goog.addDependency('../define/typedarray/use.js', ['USE_TYPEDARRAY'], []);
++goog.addDependency('../src/adler32.js', ['Zlib.Adler32'], ['USE_TYPEDARRAY', 'Zlib.Util']);
++goog.addDependency('../src/bitstream.js', ['Zlib.BitStream'], ['USE_TYPEDARRAY']);
++goog.addDependency('../src/crc32.js', ['Zlib.CRC32'], ['USE_TYPEDARRAY']);
++goog.addDependency('../src/deflate.js', ['Zlib.Deflate'], ['USE_TYPEDARRAY', 'Zlib', 'Zlib.Adler32', 'Zlib.RawDeflate']);
++goog.addDependency('../src/export_object.js', ['Zlib.exportObject'], ['Zlib']);
++goog.addDependency('../src/gunzip.js', ['Zlib.Gunzip'], ['USE_TYPEDARRAY', 'Zlib.CRC32', 'Zlib.GunzipMember', 'Zlib.Gzip', 'Zlib.RawInflate']);
++goog.addDependency('../src/gunzip_member.js', ['Zlib.GunzipMember'], []);
++goog.addDependency('../src/gzip.js', ['Zlib.Gzip'], ['USE_TYPEDARRAY', 'Zlib.CRC32', 'Zlib.RawDeflate']);
++goog.addDependency('../src/heap.js', ['Zlib.Heap'], ['USE_TYPEDARRAY']);
++goog.addDependency('../src/huffman.js', ['Zlib.Huffman'], ['USE_TYPEDARRAY']);
++goog.addDependency('../src/inflate.js', ['Zlib.Inflate'], ['USE_TYPEDARRAY', 'Zlib.Adler32', 'Zlib.RawInflate']);
++goog.addDependency('../src/inflate_stream.js', ['Zlib.InflateStream'], ['USE_TYPEDARRAY', 'Zlib', 'Zlib.RawInflateStream']);
++goog.addDependency('../src/rawdeflate.js', ['Zlib.RawDeflate'], ['USE_TYPEDARRAY', 'Zlib.BitStream', 'Zlib.Heap']);
++goog.addDependency('../src/rawinflate.js', ['Zlib.RawInflate'], ['USE_TYPEDARRAY', 'Zlib.Huffman']);
++goog.addDependency('../src/rawinflate_stream.js', ['Zlib.RawInflateStream'], ['USE_TYPEDARRAY', 'Zlib.Huffman']);
++goog.addDependency('../src/unzip.js', ['Zlib.Unzip'], ['USE_TYPEDARRAY', 'Zlib.CRC32', 'Zlib.RawInflate', 'Zlib.Zip']);
++goog.addDependency('../src/util.js', ['Zlib.Util'], []);
++goog.addDependency('../src/zip.js', ['Zlib.Zip'], ['USE_TYPEDARRAY', 'Zlib.CRC32', 'Zlib.RawDeflate']);
++goog.addDependency('../src/zlib.js', ['Zlib'], []);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..31cf7a9369b1f94851e4ae9e9cfa9e62a495cf28
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++goog.require('Zlib.Adler32');
++
++goog.exportSymbol('Zlib.Adler32', Zlib.Adler32);
++goog.exportSymbol('Zlib.Adler32.update', Zlib.Adler32.update);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ef9b5b98a39c3012a0d4f9fca38061be37b02b48
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++goog.require('Zlib.CRC32');
++
++goog.exportSymbol('Zlib.CRC32', Zlib.CRC32);
++goog.exportSymbol('Zlib.CRC32.calc', Zlib.CRC32.calc);
++goog.exportSymbol('Zlib.CRC32.update', Zlib.CRC32.update);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fe0080aaf721b9e90deba13d0314ffae578d73b3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,17 @@@
++goog.require('Zlib.Deflate');
++goog.require('Zlib.exportObject');
++
++goog.exportSymbol('Zlib.Deflate', Zlib.Deflate);
++goog.exportSymbol(
++  'Zlib.Deflate.compress',
++  Zlib.Deflate.compress
++);
++goog.exportSymbol(
++  'Zlib.Deflate.prototype.compress',
++  Zlib.Deflate.prototype.compress
++);
++Zlib.exportObject('Zlib.Deflate.CompressionType', {
++  'NONE': Zlib.Deflate.CompressionType.NONE,
++  'FIXED': Zlib.Deflate.CompressionType.FIXED,
++  'DYNAMIC': Zlib.Deflate.CompressionType.DYNAMIC
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a81a6356795f03f78b2f494eabc1f0a91f95bfb5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++goog.require('Zlib.Gunzip');
++
++goog.exportSymbol('Zlib.Gunzip', Zlib.Gunzip);
++goog.exportSymbol(
++  'Zlib.Gunzip.prototype.decompress',
++  Zlib.Gunzip.prototype.decompress
++);
++goog.exportSymbol(
++  'Zlib.Gunzip.prototype.getMembers',
++  Zlib.Gunzip.prototype.getMembers
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f0d7fdf0da1b4467a0f591708cf6a741c6412ba7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++goog.require('Zlib.GunzipMember');
++
++goog.exportSymbol('Zlib.GunzipMember', Zlib.GunzipMember);
++goog.exportSymbol(
++  'Zlib.GunzipMember.prototype.getName',
++  Zlib.GunzipMember.prototype.getName
++);
++goog.exportSymbol(
++  'Zlib.GunzipMember.prototype.getData',
++  Zlib.GunzipMember.prototype.getData
++);
++goog.exportSymbol(
++  'Zlib.GunzipMember.prototype.getMtime',
++  Zlib.GunzipMember.prototype.getMtime
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..69ff5fe9cec1d8cae177ccd02802bd96911b69df
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,7 @@@
++goog.require('Zlib.Gzip');
++
++goog.exportSymbol('Zlib.Gzip', Zlib.Gzip);
++goog.exportSymbol(
++  'Zlib.Gzip.prototype.compress',
++  Zlib.Gzip.prototype.compress
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..59b20da7c5a1d9e6820127b4f986f9178f4e2440
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++goog.require('Zlib.Inflate');
++goog.require('Zlib.exportObject');
++
++goog.exportSymbol('Zlib.Inflate', Zlib.Inflate);
++goog.exportSymbol(
++  'Zlib.Inflate.prototype.decompress',
++  Zlib.Inflate.prototype.decompress
++);
++Zlib.exportObject('Zlib.Inflate.BufferType', {
++  'ADAPTIVE': Zlib.Inflate.BufferType.ADAPTIVE,
++  'BLOCK': Zlib.Inflate.BufferType.BLOCK
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4f56de36808180f3df4db4c6235893425412f96e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++goog.require('Zlib.InflateStream');
++
++goog.exportSymbol('Zlib.InflateStream', Zlib.InflateStream);
++goog.exportSymbol(
++  'Zlib.InflateStream.prototype.decompress',
++  Zlib.InflateStream.prototype.decompress
++);
++goog.exportSymbol(
++  'Zlib.InflateStream.prototype.getBytes',
++  Zlib.InflateStream.prototype.getBytes
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..307786f4f532094bf5ebf082b4daa210352f81ca
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++goog.require('Zlib.RawDeflate');
++goog.require('Zlib.exportObject');
++
++goog.exportSymbol(
++  'Zlib.RawDeflate',
++  Zlib.RawDeflate
++);
++
++goog.exportSymbol(
++  'Zlib.RawDeflate.prototype.compress',
++  Zlib.RawDeflate.prototype.compress
++);
++
++Zlib.exportObject(
++  'Zlib.RawDeflate.CompressionType',
++  {
++    'NONE': Zlib.RawDeflate.CompressionType.NONE,
++    'FIXED': Zlib.RawDeflate.CompressionType.FIXED,
++    'DYNAMIC': Zlib.RawDeflate.CompressionType.DYNAMIC
++  }
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4451ad7c3c64ec4ae5bc9ae4116be7c82cf9f6ae
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++goog.require('Zlib.RawInflate');
++goog.require('Zlib.exportObject');
++
++goog.exportSymbol('Zlib.RawInflate', Zlib.RawInflate);
++goog.exportSymbol(
++  'Zlib.RawInflate.prototype.decompress',
++  Zlib.RawInflate.prototype.decompress
++);
++Zlib.exportObject('Zlib.RawInflate.BufferType', {
++  'ADAPTIVE': Zlib.RawInflate.BufferType.ADAPTIVE,
++  'BLOCK': Zlib.RawInflate.BufferType.BLOCK
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d56063944bb7b1d0df156863e99b1f911895e6c3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++goog.require('Zlib.RawInflateStream');
++
++goog.exportSymbol('Zlib.RawInflateStream', Zlib.RawInflateStream);
++goog.exportSymbol(
++  'Zlib.RawInflateStream.prototype.decompress',
++  Zlib.RawInflateStream.prototype.decompress
++);
++goog.exportSymbol(
++  'Zlib.RawInflateStream.prototype.getBytes',
++  Zlib.RawInflateStream.prototype.getBytes
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..5294b6ad375e8c86e92a24d4d658efb0e64cda48
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,15 @@@
++goog.require('Zlib.Unzip');
++
++goog.exportSymbol('Zlib.Unzip', Zlib.Unzip);
++goog.exportSymbol(
++  'Zlib.Unzip.prototype.decompress',
++  Zlib.Unzip.prototype.decompress
++);
++goog.exportSymbol(
++  'Zlib.Unzip.prototype.getFilenames',
++  Zlib.Unzip.prototype.getFilenames
++);
++goog.exportSymbol(
++  'Zlib.Unzip.prototype.setPassword',
++  Zlib.Unzip.prototype.setPassword
++);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..328b4d67f7e6768ba81616daf2de9ac95cd523ae
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,33 @@@
++goog.require('Zlib.Zip');
++goog.require('Zlib.exportObject');
++
++goog.exportSymbol(
++  'Zlib.Zip',
++  Zlib.Zip
++);
++goog.exportSymbol(
++  'Zlib.Zip.prototype.addFile',
++  Zlib.Zip.prototype.addFile
++);
++goog.exportSymbol(
++  'Zlib.Zip.prototype.compress',
++  Zlib.Zip.prototype.compress
++);
++goog.exportSymbol(
++  'Zlib.Zip.prototype.setPassword',
++  Zlib.Zip.prototype.setPassword
++);
++Zlib.exportObject(
++ 'Zlib.Zip.CompressionMethod', {
++    'STORE': Zlib.Zip.CompressionMethod.STORE,
++    'DEFLATE': Zlib.Zip.CompressionMethod.DEFLATE
++  }
++);
++Zlib.exportObject(
++  'Zlib.Zip.OperatingSystem', {
++    'MSDOS': Zlib.Zip.OperatingSystem.MSDOS,
++    'UNIX': Zlib.Zip.OperatingSystem.UNIX,
++    'MACINTOSH': Zlib.Zip.OperatingSystem.MACINTOSH
++  }
++);
++// TODO: Deflate Option
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d7ae3f6ea710f7ebe139dfa126abafe4ac338d5a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,230 @@@
++/**
++ * zlib.js wrapper for node.js
++ */
++goog.require('Zlib.Inflate');
++goog.require('Zlib.Deflate');
++goog.require('Zlib.Gunzip');
++
++//-----------------------------------------------------------------------------
++// exports methods
++//-----------------------------------------------------------------------------
++exports['deflate'] = deflate;
++exports['deflateSync'] = deflateSync;
++exports['inflate'] = inflate;
++exports['inflateSync'] = inflateSync;
++exports['gzip'] = gzip;
++exports['gzipSync'] = gzipSync;
++exports['gunzip'] = gunzip;
++exports['gunzipSync'] = gunzipSync;
++
++
++/**
++ * deflate async.
++ * @param {!(Buffer|Array.<number>|Uint8Array)} buffer plain data buffer.
++ * @param {function(Error, !(Buffer|Array.<number>|Uint8Array))} callback
++ *     error calllback function.
++ * @param {Object=} opt_params option parameters.
++ */
++function deflate(buffer, callback, opt_params) {
++  process.nextTick(function(){
++    /** @type {Error} error */
++    var error;
++    /** @type {!(Buffer|Array.<number>|Uint8Array)} deflated buffer. */
++    var deflated;
++
++    try {
++      deflated = deflateSync(buffer, opt_params);
++    } catch(e){
++      error = e;
++    }
++
++    callback(error, deflated);
++  });
++}
++
++
++/**
++ * deflate sync.
++ * @param {!(Buffer|Array.<number>|Uint8Array)} buffer plain data buffer.
++ * @param {Object=} opt_params option parameters.
++ * @return {!(Buffer|Array.<number>|Uint8Array)} deflated buffer.
++ */
++function deflateSync(buffer, opt_params) {
++  /** @type {Zlib.Deflate} deflate encoder. */
++  var deflate = new Zlib.Deflate(
++    /** @type {!(Array.<number>|Uint8Array)} */(buffer)
++  );
++  /** @type {!(Array.<number>|Uint8Array)} deflated buffer. */
++  var deflated;
++
++  deflated = deflate.compress();
++
++  if (!opt_params) {
++    opt_params = {};
++  }
++
++  return opt_params.noBuffer ? deflated : toBuffer(deflated);
++}
++
++
++/**
++ * inflate async.
++ * @param {!(Array.<number>|Uint8Array)} buffer deflated buffer.
++ * @param {function(Error, !(Buffer|Array.<number>|Uint8Array))} callback
++ *     error calllback function.
++ * @param {Object=} opt_params option parameters.
++ */
++function inflate(buffer, callback, opt_params) {
++  process.nextTick(function(){
++    /** @type {Error} error */
++    var error;
++    /** @type {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer. */
++    var inflated;
++
++    try {
++      inflated = inflateSync(buffer, opt_params);
++    } catch(e){
++      error = e;
++    }
++
++    callback(error, inflated);
++  });
++};
++
++
++/**
++ * inflate sync.
++ * @param {!(Array.<number>|Uint8Array)} buffer deflated buffer.
++ * @param {Object=} opt_params option parameters.
++ * @return {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer.
++ */
++function inflateSync(buffer, opt_params) {
++  /** @type {Zlib.Inflate} deflate decoder. */
++  var inflate;
++  /** @type {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer. */
++  var inflated;
++
++  buffer.subarray = buffer.slice;
++  inflate = new Zlib.Inflate(buffer);
++  inflated = inflate.decompress();
++
++  if (!opt_params) {
++    opt_params = {};
++  }
++
++  return opt_params['noBuffer'] ? inflated : toBuffer(inflated);
++}
++
++/**
++ * gunzip async.
++ * @param {!(Array.<number>|Uint8Array)} buffer inflated buffer.
++ * @param {function(Error, !(Buffer|Array.<number>|Uint8Array))} callback
++ *     error calllback function.
++ * @param {Object=} opt_params option parameters.
++ */
++function gzip(buffer, callback, opt_params) {
++  process.nextTick(function(){
++    /** @type {Error} error */
++    var error;
++    /** @type {!(Buffer|Array.<number>|Uint8Array)} deflated buffer. */
++    var deflated;
++
++    try {
++      deflated = gzipSync(buffer, opt_params);
++    } catch(e){
++      error = e;
++    }
++
++    callback(error, deflated);
++  });
++}
++
++/**
++ * deflate sync.
++ * @param {!(Array.<number>|Uint8Array)} buffer inflated buffer.
++ * @param {Object=} opt_params option parameters.
++ * @return {!(Buffer|Array.<number>|Uint8Array)} deflated buffer.
++ */
++function gzipSync(buffer, opt_params) {
++  /** @type {Zlib.Gzip} deflate compressor. */
++  var deflate;
++  /** @type {!(Buffer|Array.<number>|Uint8Array)} deflated buffer. */
++  var deflated;
++
++  buffer.subarray = buffer.slice;
++  deflate = new Zlib.Gzip(buffer);
++  deflated = deflate.compress();
++
++  if (!opt_params) {
++    opt_params = {};
++  }
++
++  return opt_params.noBuffer ? deflated : toBuffer(deflated);
++}
++
++/**
++ * gunzip async.
++ * @param {!(Array.<number>|Uint8Array)} buffer deflated buffer.
++ * @param {function(Error, !(Buffer|Array.<number>|Uint8Array))} callback
++ *     error calllback function.
++ * @param {Object=} opt_params option parameters.
++ */
++function gunzip(buffer, callback, opt_params) {
++  process.nextTick(function(){
++    /** @type {Error} error */
++    var error;
++    /** @type {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer. */
++    var inflated;
++
++    try {
++      inflated = gunzipSync(buffer, opt_params);
++    } catch(e){
++      error = e;
++    }
++
++    callback(error, inflated);
++  });
++}
++
++/**
++ * inflate sync.
++ * @param {!(Array.<number>|Uint8Array)} buffer deflated buffer.
++ * @param {Object=} opt_params option parameters.
++ * @return {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer.
++ */
++function gunzipSync(buffer, opt_params) {
++  /** @type {Zlib.Gunzip} deflate decompressor. */
++  var inflate;
++  /** @type {!(Buffer|Array.<number>|Uint8Array)} inflated plain buffer. */
++  var inflated;
++
++  buffer.subarray = buffer.slice;
++  inflate = new Zlib.Gunzip(buffer);
++  inflated = inflate.decompress();
++
++  if (!opt_params) {
++    opt_params = {};
++  }
++
++  return opt_params.noBuffer ? inflated : toBuffer(inflated);
++}
++
++
++/**
++ * convert to Buffer.
++ * @param {!(Array.<number>|Uint8Array)} array arraylike object.
++ * @return {!Buffer} Buffer object.
++ */
++function toBuffer(array) {
++  var buffer = new Buffer(array.length);
++  var i;
++  var il;
++
++  // TODO: loop unrolling for performance
++  for (i = 0, il = array.length; i < il; ++i) {
++    buffer[i] = array[i];
++  }
++
++  return buffer;
++}
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b385dca7a8911e83d9e26778dd67bf570eae67c6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++/** @type {Object} namespace. */
++var exports;
++
++/** @type {Object} namespace. */
++var process = {};
++/** @param {function()} func exec function. */
++process.nextTick = function(func) {};
++
++/** @constructor */
++var Buffer = function(arg){};
++
++var console = {};
++console.log = function(){};
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..97499004e084d59e2c94432c15c71124b9c9dcbb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++{
++  "author": {
++    "name": "Yuta Imaya"
++  },
++  "contributors": {
++    "name": "Yuta Imaya",
++    "email": "imaya.devel@gmail.com"
++  },
++  "name": "zlibjs",
++  "description": "zlib, gzip and zip implementation in JavaScript",
++  "version": "0.1.6",
++  "main": "./bin/node-zlib.js",
++  "homepage": "https://github.com/imaya/zlib.js",
++  "repository": {
++    "type": "git",
++    "url": "git://github.com/imaya/zlib.js.git"
++  },
++  "dependencies" : {
++    "buster" : ">=0.6.3"
++  },
++  "devDependencies": {},
++  "optionalDependencies": {},
++  "engines": {
++    "node": "*"
++  },
++  "scripts" : {
++    "test" : "node_modules/.bin/buster-test"
++  }
++}
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..026e79f7c583e69e9b30d4e3a2f85a6da6eba789
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,68 @@@
++/**
++ * @fileoverview Adler32 checksum 実装.
++ */
++goog.provide('Zlib.Adler32');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.Util');
++
++goog.scope(function() {
++
++/**
++ * Adler32 ハッシュ値の作成
++ * @param {!(Array|Uint8Array|string)} array 算出に使用する byte array.
++ * @return {number} Adler32 ハッシュ値.
++ */
++Zlib.Adler32 = function(array) {
++  if (typeof(array) === 'string') {
++    array = Zlib.Util.stringToByteArray(array);
++  }
++  return Zlib.Adler32.update(1, array);
++};
++
++/**
++ * Adler32 ハッシュ値の更新
++ * @param {number} adler 現在のハッシュ値.
++ * @param {!(Array|Uint8Array)} array 更新に使用する byte array.
++ * @return {number} Adler32 ハッシュ値.
++ */
++Zlib.Adler32.update = function(adler, array) {
++  /** @type {number} */
++  var s1 = adler & 0xffff;
++  /** @type {number} */
++  var s2 = (adler >>> 16) & 0xffff;
++  /** @type {number} array length */
++  var len = array.length;
++  /** @type {number} loop length (don't overflow) */
++  var tlen;
++  /** @type {number} array index */
++  var i = 0;
++
++  while (len > 0) {
++    tlen = len > Zlib.Adler32.OptimizationParameter ?
++      Zlib.Adler32.OptimizationParameter : len;
++    len -= tlen;
++    do {
++      s1 += array[i++];
++      s2 += s1;
++    } while (--tlen);
++
++    s1 %= 65521;
++    s2 %= 65521;
++  }
++
++  return ((s2 << 16) | s1) >>> 0;
++};
++
++/**
++ * Adler32 最適化パラメータ
++ * 現状では 1024 程度が最適.
++ * @see http://jsperf.com/adler-32-simple-vs-optimized/3
++ * @define {number}
++ */
++Zlib.Adler32.OptimizationParameter = 1024;
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..627f65d0372d19cf9313630df3b552c7c5c00a3b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,202 @@@
++/**
++ * @fileoverview bit 単位での書き込み実装.
++ */
++goog.provide('Zlib.BitStream');
++
++goog.require('USE_TYPEDARRAY');
++
++goog.scope(function() {
++
++/**
++ * ビットストリーム
++ * @constructor
++ * @param {!(Array|Uint8Array)=} buffer output buffer.
++ * @param {number=} bufferPosition start buffer pointer.
++ */
++Zlib.BitStream = function(buffer, bufferPosition) {
++  /** @type {number} buffer index. */
++  this.index = typeof bufferPosition === 'number' ? bufferPosition : 0;
++  /** @type {number} bit index. */
++  this.bitindex = 0;
++  /** @type {!(Array|Uint8Array)} bit-stream output buffer. */
++  this.buffer = buffer instanceof (USE_TYPEDARRAY ? Uint8Array : Array) ?
++    buffer :
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(Zlib.BitStream.DefaultBlockSize);
++
++  // 入力された index が足りなかったら拡張するが、倍にしてもダメなら不正とする
++  if (this.buffer.length * 2 <= this.index) {
++    throw new Error("invalid index");
++  } else if (this.buffer.length <= this.index) {
++    this.expandBuffer();
++  }
++};
++
++/**
++ * デフォルトブロックサイズ.
++ * @const
++ * @type {number}
++ */
++Zlib.BitStream.DefaultBlockSize = 0x8000;
++
++/**
++ * expand buffer.
++ * @return {!(Array|Uint8Array)} new buffer.
++ */
++Zlib.BitStream.prototype.expandBuffer = function() {
++  /** @type {!(Array|Uint8Array)} old buffer. */
++  var oldbuf = this.buffer;
++  /** @type {number} loop counter. */
++  var i;
++  /** @type {number} loop limiter. */
++  var il = oldbuf.length;
++  /** @type {!(Array|Uint8Array)} new buffer. */
++  var buffer =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(il << 1);
++
++  // copy buffer
++  if (USE_TYPEDARRAY) {
++    buffer.set(oldbuf);
++  } else {
++    // XXX: loop unrolling
++    for (i = 0; i < il; ++i) {
++      buffer[i] = oldbuf[i];
++    }
++  }
++
++  return (this.buffer = buffer);
++};
++
++
++/**
++ * 数値をビットで指定した数だけ書き込む.
++ * @param {number} number 書き込む数値.
++ * @param {number} n 書き込むビット数.
++ * @param {boolean=} reverse 逆順に書き込むならば true.
++ */
++Zlib.BitStream.prototype.writeBits = function(number, n, reverse) {
++  var buffer = this.buffer;
++  var index = this.index;
++  var bitindex = this.bitindex;
++
++  /** @type {number} current octet. */
++  var current = buffer[index];
++  /** @type {number} loop counter. */
++  var i;
++
++  /**
++   * 32-bit 整数のビット順を逆にする
++   * @param {number} n 32-bit integer.
++   * @return {number} reversed 32-bit integer.
++   * @private
++   */
++  function rev32_(n) {
++    return (Zlib.BitStream.ReverseTable[n & 0xFF] << 24) |
++      (Zlib.BitStream.ReverseTable[n >>> 8 & 0xFF] << 16) |
++      (Zlib.BitStream.ReverseTable[n >>> 16 & 0xFF] << 8) |
++      Zlib.BitStream.ReverseTable[n >>> 24 & 0xFF];
++  }
++
++  if (reverse && n > 1) {
++    number = n > 8 ?
++      rev32_(number) >> (32 - n) :
++      Zlib.BitStream.ReverseTable[number] >> (8 - n);
++  }
++
++  // Byte 境界を超えないとき
++  if (n + bitindex < 8) {
++    current = (current << n) | number;
++    bitindex += n;
++  // Byte 境界を超えるとき
++  } else {
++    for (i = 0; i < n; ++i) {
++      current = (current << 1) | ((number >> n - i - 1) & 1);
++
++      // next byte
++      if (++bitindex === 8) {
++        bitindex = 0;
++        buffer[index++] = Zlib.BitStream.ReverseTable[current];
++        current = 0;
++
++        // expand
++        if (index === buffer.length) {
++          buffer = this.expandBuffer();
++        }
++      }
++    }
++  }
++  buffer[index] = current;
++
++  this.buffer = buffer;
++  this.bitindex = bitindex;
++  this.index = index;
++};
++
++
++/**
++ * ストリームの終端処理を行う
++ * @return {!(Array|Uint8Array)} 終端処理後のバッファを byte array で返す.
++ */
++Zlib.BitStream.prototype.finish = function() {
++  var buffer = this.buffer;
++  var index = this.index;
++
++  /** @type {!(Array|Uint8Array)} output buffer. */
++  var output;
++
++  // bitindex が 0 の時は余分に index が進んでいる状態
++  if (this.bitindex > 0) {
++    buffer[index] <<= 8 - this.bitindex;
++    buffer[index] = Zlib.BitStream.ReverseTable[buffer[index]];
++    index++;
++  }
++
++  // array truncation
++  if (USE_TYPEDARRAY) {
++    output = buffer.subarray(0, index);
++  } else {
++    buffer.length = index;
++    output = buffer;
++  }
++
++  return output;
++};
++
++/**
++ * 0-255 のビット順を反転したテーブル
++ * @const
++ * @type {!(Uint8Array|Array.<number>)}
++ */
++Zlib.BitStream.ReverseTable = (function(table) {
++  return table;
++})((function() {
++  /** @type {!(Array|Uint8Array)} reverse table. */
++  var table = new (USE_TYPEDARRAY ? Uint8Array : Array)(256);
++  /** @type {number} loop counter. */
++  var i;
++  /** @type {number} loop limiter. */
++  var il;
++
++  // generate
++  for (i = 0; i < 256; ++i) {
++    table[i] = (function(n) {
++      var r = n;
++      var s = 7;
++
++      for (n >>>= 1; n; n >>>= 1) {
++        r <<= 1;
++        r |= n & 1;
++        --s;
++      }
++
++      return (r << s & 0xff) >>> 0;
++    })(i);
++  }
++
++  return table;
++})());
++
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cddef145bf29d1b784030bc05b10d990f38fd013
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,142 @@@
++/**
++ * @fileoverview CRC32 実装.
++ */
++goog.provide('Zlib.CRC32');
++
++goog.require('USE_TYPEDARRAY');
++
++/** @define {boolean} */
++var ZLIB_CRC32_COMPACT = false;
++
++goog.scope(function() {
++
++/**
++ * CRC32 ハッシュ値を取得
++ * @param {!(Array.<number>|Uint8Array)} data data byte array.
++ * @param {number=} pos data position.
++ * @param {number=} length data length.
++ * @return {number} CRC32.
++ */
++Zlib.CRC32.calc = function(data, pos, length) {
++  return Zlib.CRC32.update(data, 0, pos, length);
++};
++
++/**
++ * CRC32ハッシュ値を更新
++ * @param {!(Array.<number>|Uint8Array)} data data byte array.
++ * @param {number} crc CRC32.
++ * @param {number=} pos data position.
++ * @param {number=} length data length.
++ * @return {number} CRC32.
++ */
++Zlib.CRC32.update = function(data, crc, pos, length) {
++  var table = Zlib.CRC32.Table;
++  var i = (typeof pos === 'number') ? pos : (pos = 0);
++  var il = (typeof length === 'number') ? length : data.length;
++
++  crc ^= 0xffffffff;
++
++  // loop unrolling for performance
++  for (i = il & 7; i--; ++pos) {
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos]) & 0xff];
++  }
++  for (i = il >> 3; i--; pos += 8) {
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos    ]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 1]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 2]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 3]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 4]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 5]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 6]) & 0xff];
++    crc = (crc >>> 8) ^ table[(crc ^ data[pos + 7]) & 0xff];
++  }
++
++  return (crc ^ 0xffffffff) >>> 0;
++};
++
++/**
++ * @param {number} num
++ * @param {number} crc
++ * @returns {number}
++ */
++Zlib.CRC32.single = function(num, crc) {
++  return (Zlib.CRC32.Table[(num ^ crc) & 0xff] ^ (num >>> 8)) >>> 0;
++};
++
++/**
++ * @type {Array.<number>}
++ * @const
++ * @private
++ */
++Zlib.CRC32.Table_ = [
++  0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
++  0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
++  0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
++  0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
++  0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
++  0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
++  0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
++  0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
++  0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
++  0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
++  0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
++  0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
++  0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
++  0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
++  0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
++  0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
++  0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
++  0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
++  0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
++  0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
++  0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
++  0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
++  0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
++  0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
++  0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
++  0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
++  0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
++  0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
++  0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
++  0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
++  0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
++  0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
++  0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
++  0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
++  0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
++  0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
++  0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
++  0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
++  0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
++  0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
++  0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
++  0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
++  0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
++];
++
++/**
++ * @type {!(Array.<number>|Uint32Array)} CRC-32 Table.
++ * @const
++ */
++Zlib.CRC32.Table = ZLIB_CRC32_COMPACT ? (function() {
++  /** @type {!(Array.<number>|Uint32Array)} */
++  var table = new (USE_TYPEDARRAY ? Uint32Array : Array)(256);
++  /** @type {number} */
++  var c;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var j;
++
++  for (i = 0; i < 256; ++i) {
++    c = i;
++    for (j = 0; j < 8; ++j) {
++      c = (c & 1) ? (0xedB88320 ^ (c >>> 1)) : (c >>> 1);
++    }
++    table[i] = c >>> 0;
++  }
++
++  return table;
++})() : USE_TYPEDARRAY ? new Uint32Array(Zlib.CRC32.Table_) : Zlib.CRC32.Table_;
++
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9273371b8fec8a68313639c050952310dcf3b025
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,168 @@@
++/**
++ * @fileoverview Deflate (RFC1951) 実装.
++ * Deflateアルゴリズム本体は Zlib.RawDeflate で実装されている.
++ */
++goog.provide('Zlib.Deflate');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib');
++goog.require('Zlib.Adler32');
++goog.require('Zlib.RawDeflate');
++
++goog.scope(function() {
++
++/**
++ * Zlib Deflate
++ * @constructor
++ * @param {!(Array|Uint8Array)} input 符号化する対象の byte array.
++ * @param {Object=} opt_params option parameters.
++ */
++Zlib.Deflate = function(input, opt_params) {
++  /** @type {!(Array|Uint8Array)} */
++  this.input = input;
++  /** @type {!(Array|Uint8Array)} */
++  this.output =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(Zlib.Deflate.DefaultBufferSize);
++  /** @type {Zlib.Deflate.CompressionType} */
++  this.compressionType = Zlib.Deflate.CompressionType.DYNAMIC;
++  /** @type {Zlib.RawDeflate} */
++  this.rawDeflate;
++  /** @type {Object} */
++  var rawDeflateOption = {};
++  /** @type {string} */
++  var prop;
++
++  // option parameters
++  if (opt_params || !(opt_params = {})) {
++    if (typeof opt_params['compressionType'] === 'number') {
++      this.compressionType = opt_params['compressionType'];
++    }
++  }
++
++  // copy options
++  for (prop in opt_params) {
++    rawDeflateOption[prop] = opt_params[prop];
++  }
++
++  // set raw-deflate output buffer
++  rawDeflateOption['outputBuffer'] = this.output;
++
++  this.rawDeflate = new Zlib.RawDeflate(this.input, rawDeflateOption);
++};
++
++/**
++ * @const
++ * @type {number} デフォルトバッファサイズ.
++ */
++Zlib.Deflate.DefaultBufferSize = 0x8000;
++
++/**
++ * @enum {number}
++ */
++Zlib.Deflate.CompressionType = Zlib.RawDeflate.CompressionType;
++
++/**
++ * 直接圧縮に掛ける.
++ * @param {!(Array|Uint8Array)} input target buffer.
++ * @param {Object=} opt_params option parameters.
++ * @return {!(Array|Uint8Array)} compressed data byte array.
++ */
++Zlib.Deflate.compress = function(input, opt_params) {
++  return (new Zlib.Deflate(input, opt_params)).compress();
++};
++
++/**
++ * Deflate Compression.
++ * @return {!(Array|Uint8Array)} compressed data byte array.
++ */
++Zlib.Deflate.prototype.compress = function() {
++  /** @type {Zlib.CompressionMethod} */
++  var cm;
++  /** @type {number} */
++  var cinfo;
++  /** @type {number} */
++  var cmf;
++  /** @type {number} */
++  var flg;
++  /** @type {number} */
++  var fcheck;
++  /** @type {number} */
++  var fdict;
++  /** @type {number} */
++  var flevel;
++  /** @type {number} */
++  var clevel;
++  /** @type {number} */
++  var adler;
++  /** @type {boolean} */
++  var error = false;
++  /** @type {!(Array|Uint8Array)} */
++  var output;
++  /** @type {number} */
++  var pos = 0;
++
++  output = this.output;
++
++  // Compression Method and Flags
++  cm = Zlib.CompressionMethod.DEFLATE;
++  switch (cm) {
++    case Zlib.CompressionMethod.DEFLATE:
++      cinfo = Math.LOG2E * Math.log(Zlib.RawDeflate.WindowSize) - 8;
++      break;
++    default:
++      throw new Error('invalid compression method');
++  }
++  cmf = (cinfo << 4) | cm;
++  output[pos++] = cmf;
++
++  // Flags
++  fdict = 0;
++  switch (cm) {
++    case Zlib.CompressionMethod.DEFLATE:
++      switch (this.compressionType) {
++        case Zlib.Deflate.CompressionType.NONE: flevel = 0; break;
++        case Zlib.Deflate.CompressionType.FIXED: flevel = 1; break;
++        case Zlib.Deflate.CompressionType.DYNAMIC: flevel = 2; break;
++        default: throw new Error('unsupported compression type');
++      }
++      break;
++    default:
++      throw new Error('invalid compression method');
++  }
++  flg = (flevel << 6) | (fdict << 5);
++  fcheck = 31 - (cmf * 256 + flg) % 31;
++  flg |= fcheck;
++  output[pos++] = flg;
++
++  // Adler-32 checksum
++  adler = Zlib.Adler32(this.input);
++
++  this.rawDeflate.op = pos;
++  output = this.rawDeflate.compress();
++  pos = output.length;
++
++  if (USE_TYPEDARRAY) {
++    // subarray 分を元にもどす
++    output = new Uint8Array(output.buffer);
++    // expand buffer
++    if (output.length <= pos + 4) {
++      this.output = new Uint8Array(output.length + 4);
++      this.output.set(output);
++      output = this.output;
++    }
++    output = output.subarray(0, pos + 4);
++  }
++
++  // adler32
++  output[pos++] = (adler >> 24) & 0xff;
++  output[pos++] = (adler >> 16) & 0xff;
++  output[pos++] = (adler >>  8) & 0xff;
++  output[pos++] = (adler      ) & 0xff;
++
++  return output;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0bbde11db6c9652ee0288a44348f59891d8b35c1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,33 @@@
++goog.provide('Zlib.exportObject');
++
++goog.require('Zlib');
++
++goog.scope(function() {
++
++Zlib.exportObject = function(enumString, exportKeyValue) {
++  /** @type {Array.<string>} */
++  var keys;
++  /** @type {string} */
++  var key;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  if (Object.keys) {
++    keys = Object.keys(exportKeyValue);
++  } else {
++    keys = [];
++    i = 0;
++    for (key in exportKeyValue) {
++      keys[i++] = key;
++    }
++  }
++
++  for (i = 0, il = keys.length; i < il; ++i) {
++    key = keys[i];
++    goog.exportSymbol(enumString + '.' + key, exportKeyValue[key])
++  }
++};
++
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c3c3c8ddb35e1b1d091e742c6067633a42d9512c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,238 @@@
++/**
++ * @fileoverview GZIP (RFC1952) 展開コンテナ実装.
++ */
++goog.provide('Zlib.Gunzip');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.CRC32');
++goog.require('Zlib.Gzip');
++goog.require('Zlib.RawInflate');
++goog.require('Zlib.GunzipMember');
++
++goog.scope(function() {
++
++/**
++ * @constructor
++ * @param {!(Array|Uint8Array)} input input buffer.
++ * @param {Object=} opt_params option parameters.
++ */
++Zlib.Gunzip = function(input, opt_params) {
++  /** @type {!(Array.<number>|Uint8Array)} input buffer. */
++  this.input = input;
++  /** @type {number} input buffer pointer. */
++  this.ip = 0;
++  /** @type {Array.<Zlib.GunzipMember>} */
++  this.member = [];
++  /** @type {boolean} */
++  this.decompressed = false;
++};
++
++/**
++ * @return {Array.<Zlib.GunzipMember>}
++ */
++Zlib.Gunzip.prototype.getMembers = function() {
++  if (!this.decompressed) {
++    this.decompress();
++  }
++
++  return this.member.slice();
++};
++
++/**
++ * inflate gzip data.
++ * @return {!(Array.<number>|Uint8Array)} inflated buffer.
++ */
++Zlib.Gunzip.prototype.decompress = function() {
++  /** @type {number} input length. */
++  var il = this.input.length;
++
++  while (this.ip < il) {
++    this.decodeMember();
++  }
++
++  this.decompressed = true;
++
++  return this.concatMember();
++};
++
++/**
++ * decode gzip member.
++ */
++Zlib.Gunzip.prototype.decodeMember = function() {
++  /** @type {Zlib.GunzipMember} */
++  var member = new Zlib.GunzipMember();
++  /** @type {number} */
++  var isize;
++  /** @type {Zlib.RawInflate} RawInflate implementation. */
++  var rawinflate;
++  /** @type {!(Array.<number>|Uint8Array)} inflated data. */
++  var inflated;
++  /** @type {number} inflate size */
++  var inflen;
++  /** @type {number} character code */
++  var c;
++  /** @type {number} character index in string. */
++  var ci;
++  /** @type {Array.<string>} character array. */
++  var str;
++  /** @type {number} modification time. */
++  var mtime;
++  /** @type {number} */
++  var crc32;
++
++  var input = this.input;
++  var ip = this.ip;
++
++  member.id1 = input[ip++];
++  member.id2 = input[ip++];
++
++  // check signature
++  if (member.id1 !== 0x1f || member.id2 !== 0x8b) {
++    throw new Error('invalid file signature:' + member.id1 + ',' + member.id2);
++  }
++
++  // check compression method
++  member.cm = input[ip++];
++  switch (member.cm) {
++    case 8: /* XXX: use Zlib const */
++      break;
++    default:
++      throw new Error('unknown compression method: ' + member.cm);
++  }
++
++  // flags
++  member.flg = input[ip++];
++
++  // modification time
++  mtime = (input[ip++])       |
++          (input[ip++] << 8)  |
++          (input[ip++] << 16) |
++          (input[ip++] << 24);
++  member.mtime = new Date(mtime * 1000);
++
++  // extra flags
++  member.xfl = input[ip++];
++
++  // operating system
++  member.os = input[ip++];
++
++  // extra
++  if ((member.flg & Zlib.Gzip.FlagsMask.FEXTRA) > 0) {
++    member.xlen = input[ip++] | (input[ip++] << 8);
++    ip = this.decodeSubField(ip, member.xlen);
++  }
++
++  // fname
++  if ((member.flg & Zlib.Gzip.FlagsMask.FNAME) > 0) {
++    for(str = [], ci = 0; (c = input[ip++]) > 0;) {
++      str[ci++] = String.fromCharCode(c);
++    }
++    member.name = str.join('');
++  }
++
++  // fcomment
++  if ((member.flg & Zlib.Gzip.FlagsMask.FCOMMENT) > 0) {
++    for(str = [], ci = 0; (c = input[ip++]) > 0;) {
++      str[ci++] = String.fromCharCode(c);
++    }
++    member.comment = str.join('');
++  }
++
++  // fhcrc
++  if ((member.flg & Zlib.Gzip.FlagsMask.FHCRC) > 0) {
++    member.crc16 = Zlib.CRC32.calc(input, 0, ip) & 0xffff;
++    if (member.crc16 !== (input[ip++] | (input[ip++] << 8))) {
++      throw new Error('invalid header crc16');
++    }
++  }
++
++  // isize を事前に取得すると展開後のサイズが分かるため、
++  // inflate処理のバッファサイズが事前に分かり、高速になる
++  isize = (input[input.length - 4])       | (input[input.length - 3] << 8) |
++          (input[input.length - 2] << 16) | (input[input.length - 1] << 24);
++
++  // isize の妥当性チェック
++  // ハフマン符号では最小 2-bit のため、最大で 1/4 になる
++  // LZ77 符号では 長さと距離 2-Byte で最大 258-Byte を表現できるため、
++  // 1/128 になるとする
++  // ここから入力バッファの残りが isize の 512 倍以上だったら
++  // サイズ指定のバッファ確保は行わない事とする
++  if (input.length - ip - /* CRC-32 */4 - /* ISIZE */4 < isize * 512) {
++    inflen = isize;
++  }
++
++  // compressed block
++  rawinflate = new Zlib.RawInflate(input, {'index': ip, 'bufferSize': inflen});
++  member.data = inflated = rawinflate.decompress();
++  ip = rawinflate.ip;
++
++  // crc32
++  member.crc32 = crc32 =
++    ((input[ip++])       | (input[ip++] << 8) |
++     (input[ip++] << 16) | (input[ip++] << 24)) >>> 0;
++  if (Zlib.CRC32.calc(inflated) !== crc32) {
++    throw new Error('invalid CRC-32 checksum: 0x' +
++        Zlib.CRC32.calc(inflated).toString(16) + ' / 0x' + crc32.toString(16));
++  }
++
++  // input size
++  member.isize = isize =
++    ((input[ip++])       | (input[ip++] << 8) |
++     (input[ip++] << 16) | (input[ip++] << 24)) >>> 0;
++  if ((inflated.length & 0xffffffff) !== isize) {
++    throw new Error('invalid input size: ' +
++        (inflated.length & 0xffffffff) + ' / ' + isize);
++  }
++
++  this.member.push(member);
++  this.ip = ip;
++};
++
++/**
++ * サブフィールドのデコード
++ * XXX: 現在は何もせずスキップする
++ */
++Zlib.Gunzip.prototype.decodeSubField = function(ip, length) {
++  return ip + length;
++};
++
++/**
++ * @return {!(Array.<number>|Uint8Array)}
++ */
++Zlib.Gunzip.prototype.concatMember = function() {
++  /** @type {Array.<Zlib.GunzipMember>} */
++  var member = this.member;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++  /** @type {number} */
++  var p = 0;
++  /** @type {number} */
++  var size = 0;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var buffer;
++
++  for (i = 0, il = member.length; i < il; ++i) {
++    size += member[i].data.length;
++  }
++
++  if (USE_TYPEDARRAY) {
++    buffer = new Uint8Array(size);
++    for (i = 0; i < il; ++i) {
++      buffer.set(member[i].data, p);
++      p += member[i].data.length;
++    }
++  } else {
++    buffer = [];
++    for (i = 0; i < il; ++i) {
++      buffer[i] = member[i].data;
++    }
++    buffer = Array.prototype.concat.apply([], buffer);
++  }
++
++  return buffer;
++};
++
++});
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..73a4a491b82f78229430e09e4856edfa25a41f00
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,51 @@@
++goog.provide('Zlib.GunzipMember');
++
++goog.scope(function() {
++
++/**
++ * @constructor
++ */
++Zlib.GunzipMember = function() {
++  /** @type {number} signature first byte. */
++  this.id1;
++  /** @type {number} signature second byte. */
++  this.id2;
++  /** @type {number} compression method. */
++  this.cm;
++  /** @type {number} flags. */
++  this.flg;
++  /** @type {Date} modification time. */
++  this.mtime;
++  /** @type {number} extra flags. */
++  this.xfl;
++  /** @type {number} operating system number. */
++  this.os;
++  /** @type {number} CRC-16 value for FHCRC flag. */
++  this.crc16;
++  /** @type {number} extra length. */
++  this.xlen;
++  /** @type {number} CRC-32 value for verification. */
++  this.crc32;
++  /** @type {number} input size modulo 32 value. */
++  this.isize;
++  /** @type {string} filename. */
++  this.name;
++  /** @type {string} comment. */
++  this.comment;
++  /** @type {!(Uint8Array|Array.<number>)} */
++  this.data;
++};
++
++Zlib.GunzipMember.prototype.getName = function() {
++  return this.name;
++};
++
++Zlib.GunzipMember.prototype.getData = function() {
++  return this.data;
++};
++
++Zlib.GunzipMember.prototype.getMtime = function() {
++  return this.mtime;
++}
++
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1cdd561c7f3dee3498f16367f255c5a8638d5577
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,225 @@@
++/**
++ * @fileoverview GZIP (RFC1952) 実装.
++ */
++goog.provide('Zlib.Gzip');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.CRC32');
++goog.require('Zlib.RawDeflate');
++
++goog.scope(function() {
++
++/**
++ * @constructor
++ * @param {!(Array|Uint8Array)} input input buffer.
++ * @param {Object=} opt_params option parameters.
++ */
++Zlib.Gzip = function(input, opt_params) {
++  /** @type {!(Array.<number>|Uint8Array)} input buffer. */
++  this.input = input;
++  /** @type {number} input buffer pointer. */
++  this.ip = 0;
++  /** @type {!(Array.<number>|Uint8Array)} output buffer. */
++  this.output;
++  /** @type {number} output buffer. */
++  this.op = 0;
++  /** @type {!Object} flags option flags. */
++  this.flags = {};
++  /** @type {!string} filename. */
++  this.filename;
++  /** @type {!string} comment. */
++  this.comment;
++  /** @type {!Object} deflate options. */
++  this.deflateOptions;
++
++  // option parameters
++  if (opt_params) {
++    if (opt_params['flags']) {
++      this.flags = opt_params['flags'];
++    }
++    if (typeof opt_params['filename'] === 'string') {
++      this.filename = opt_params['filename'];
++    }
++    if (typeof opt_params['comment'] === 'string') {
++      this.comment = opt_params['comment'];
++    }
++    if (opt_params['deflateOptions']) {
++      this.deflateOptions = opt_params['deflateOptions'];
++    }
++  }
++
++  if (!this.deflateOptions) {
++    this.deflateOptions = {};
++  }
++};
++
++/**
++ * @type {number}
++ * @const
++ */
++Zlib.Gzip.DefaultBufferSize = 0x8000;
++
++/**
++ * encode gzip members.
++ * @return {!(Array|Uint8Array)} gzip binary array.
++ */
++Zlib.Gzip.prototype.compress = function() {
++  /** @type {number} flags. */
++  var flg;
++  /** @type {number} modification time. */
++  var mtime;
++  /** @type {number} CRC-16 value for FHCRC flag. */
++  var crc16;
++  /** @type {number} CRC-32 value for verification. */
++  var crc32;
++  /** @type {!Zlib.RawDeflate} raw deflate object. */
++  var rawdeflate;
++  /** @type {number} character code */
++  var c;
++  /** @type {number} loop counter. */
++  var i;
++  /** @type {number} loop limiter. */
++  var il;
++  /** @type {!(Array|Uint8Array)} output buffer. */
++  var output =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(Zlib.Gzip.DefaultBufferSize);
++  /** @type {number} output buffer pointer. */
++  var op = 0;
++
++  var input = this.input;
++  var ip = this.ip;
++  var filename = this.filename;
++  var comment = this.comment;
++
++  // check signature
++  output[op++] = 0x1f;
++  output[op++] = 0x8b;
++
++  // check compression method
++  output[op++] = 8; /* XXX: use Zlib const */
++
++  // flags
++  flg = 0;
++  if (this.flags['fname'])    flg |= Zlib.Gzip.FlagsMask.FNAME;
++  if (this.flags['fcomment']) flg |= Zlib.Gzip.FlagsMask.FCOMMENT;
++  if (this.flags['fhcrc'])    flg |= Zlib.Gzip.FlagsMask.FHCRC;
++  // XXX: FTEXT
++  // XXX: FEXTRA
++  output[op++] = flg;
++
++  // modification time
++  mtime = (Date.now ? Date.now() : +new Date()) / 1000 | 0;
++  output[op++] = mtime        & 0xff;
++  output[op++] = mtime >>>  8 & 0xff;
++  output[op++] = mtime >>> 16 & 0xff;
++  output[op++] = mtime >>> 24 & 0xff;
++
++  // extra flags
++  output[op++] = 0;
++
++  // operating system
++  output[op++] = Zlib.Gzip.OperatingSystem.UNKNOWN;
++
++  // extra
++  /* NOP */
++
++  // fname
++  if (this.flags['fname'] !== void 0) {
++    for (i = 0, il = filename.length; i < il; ++i) {
++      c = filename.charCodeAt(i);
++      if (c > 0xff) { output[op++] = (c >>> 8) & 0xff; }
++      output[op++] = c & 0xff;
++    }
++    output[op++] = 0; // null termination
++  }
++
++  // fcomment
++  if (this.flags['comment']) {
++    for (i = 0, il = comment.length; i < il; ++i) {
++      c = comment.charCodeAt(i);
++      if (c > 0xff) { output[op++] = (c >>> 8) & 0xff; }
++      output[op++] = c & 0xff;
++    }
++    output[op++] = 0; // null termination
++  }
++
++  // fhcrc
++  if (this.flags['fhcrc']) {
++    crc16 = Zlib.CRC32.calc(output, 0, op) & 0xffff;
++    output[op++] = (crc16      ) & 0xff;
++    output[op++] = (crc16 >>> 8) & 0xff;
++  }
++
++  // add compress option
++  this.deflateOptions['outputBuffer'] = output;
++  this.deflateOptions['outputIndex'] = op;
++
++  // compress
++  rawdeflate = new Zlib.RawDeflate(input, this.deflateOptions);
++  output = rawdeflate.compress();
++  op = rawdeflate.op;
++
++  // expand buffer
++  if (USE_TYPEDARRAY) {
++    if (op + 8 > output.buffer.byteLength) {
++      this.output = new Uint8Array(op + 8);
++      this.output.set(new Uint8Array(output.buffer));
++      output = this.output;
++    } else {
++      output = new Uint8Array(output.buffer);
++    }
++  }
++
++  // crc32
++  crc32 = Zlib.CRC32.calc(input);
++  output[op++] = (crc32       ) & 0xff;
++  output[op++] = (crc32 >>>  8) & 0xff;
++  output[op++] = (crc32 >>> 16) & 0xff;
++  output[op++] = (crc32 >>> 24) & 0xff;
++
++  // input size
++  il = input.length;
++  output[op++] = (il       ) & 0xff;
++  output[op++] = (il >>>  8) & 0xff;
++  output[op++] = (il >>> 16) & 0xff;
++  output[op++] = (il >>> 24) & 0xff;
++
++  this.ip = ip;
++
++  if (USE_TYPEDARRAY && op < output.length) {
++    this.output = output = output.subarray(0, op);
++  }
++
++  return output;
++};
++
++/** @enum {number} */
++Zlib.Gzip.OperatingSystem = {
++  FAT: 0,
++  AMIGA: 1,
++  VMS: 2,
++  UNIX: 3,
++  VM_CMS: 4,
++  ATARI_TOS: 5,
++  HPFS: 6,
++  MACINTOSH: 7,
++  Z_SYSTEM: 8,
++  CP_M: 9,
++  TOPS_20: 10,
++  NTFS: 11,
++  QDOS: 12,
++  ACORN_RISCOS: 13,
++  UNKNOWN: 255
++};
++
++/** @enum {number} */
++Zlib.Gzip.FlagsMask = {
++  FTEXT: 0x01,
++  FHCRC: 0x02,
++  FEXTRA: 0x04,
++  FNAME: 0x08,
++  FCOMMENT: 0x10
++};
++
++});
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..70397e595875c14e1270a084e7f961f4b4845f92
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,135 @@@
++/**
++ * @fileoverview Heap Sort 実装. ハフマン符号化で使用する.
++ */
++
++goog.provide('Zlib.Heap');
++
++goog.require('USE_TYPEDARRAY');
++
++goog.scope(function() {
++
++/**
++ * カスタムハフマン符号で使用するヒープ実装
++ * @param {number} length ヒープサイズ.
++ * @constructor
++ */
++Zlib.Heap = function(length) {
++  this.buffer = new (USE_TYPEDARRAY ? Uint16Array : Array)(length * 2);
++  this.length = 0;
++};
++
++/**
++ * 親ノードの index 取得
++ * @param {number} index 子ノードの index.
++ * @return {number} 親ノードの index.
++ *
++ */
++Zlib.Heap.prototype.getParent = function(index) {
++  return ((index - 2) / 4 | 0) * 2;
++};
++
++/**
++ * 子ノードの index 取得
++ * @param {number} index 親ノードの index.
++ * @return {number} 子ノードの index.
++ */
++Zlib.Heap.prototype.getChild = function(index) {
++  return 2 * index + 2;
++};
++
++/**
++ * Heap に値を追加する
++ * @param {number} index キー index.
++ * @param {number} value 値.
++ * @return {number} 現在のヒープ長.
++ */
++Zlib.Heap.prototype.push = function(index, value) {
++  var current, parent,
++      heap = this.buffer,
++      swap;
++
++  current = this.length;
++  heap[this.length++] = value;
++  heap[this.length++] = index;
++
++  // ルートノードにたどり着くまで入れ替えを試みる
++  while (current > 0) {
++    parent = this.getParent(current);
++
++    // 親ノードと比較して親の方が小さければ入れ替える
++    if (heap[current] > heap[parent]) {
++      swap = heap[current];
++      heap[current] = heap[parent];
++      heap[parent] = swap;
++
++      swap = heap[current + 1];
++      heap[current + 1] = heap[parent + 1];
++      heap[parent + 1] = swap;
++
++      current = parent;
++    // 入れ替えが必要なくなったらそこで抜ける
++    } else {
++      break;
++    }
++  }
++
++  return this.length;
++};
++
++/**
++ * Heapから一番大きい値を返す
++ * @return {{index: number, value: number, length: number}} {index: キーindex,
++ *     value: 値, length: ヒープ長} の Object.
++ */
++Zlib.Heap.prototype.pop = function() {
++  var index, value,
++      heap = this.buffer, swap,
++      current, parent;
++
++  value = heap[0];
++  index = heap[1];
++
++  // 後ろから値を取る
++  this.length -= 2;
++  heap[0] = heap[this.length];
++  heap[1] = heap[this.length + 1];
++
++  parent = 0;
++  // ルートノードから下がっていく
++  while (true) {
++    current = this.getChild(parent);
++
++    // 範囲チェック
++    if (current >= this.length) {
++      break;
++    }
++
++    // 隣のノードと比較して、隣の方が値が大きければ隣を現在ノードとして選択
++    if (current + 2 < this.length && heap[current + 2] > heap[current]) {
++      current += 2;
++    }
++
++    // 親ノードと比較して親の方が小さい場合は入れ替える
++    if (heap[current] > heap[parent]) {
++      swap = heap[parent];
++      heap[parent] = heap[current];
++      heap[current] = swap;
++
++      swap = heap[parent + 1];
++      heap[parent + 1] = heap[current + 1];
++      heap[current + 1] = swap;
++    } else {
++      break;
++    }
++
++    parent = current;
++  }
++
++  return {index: index, value: value, length: this.length};
++};
++
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f29092678541c7e35ee8af6523a23de54b344db0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,93 @@@
++goog.provide('Zlib.Huffman');
++
++goog.require('USE_TYPEDARRAY');
++
++goog.scope(function() {
++
++/**
++ * build huffman table from length list.
++ * @param {!(Array.<number>|Uint8Array)} lengths length list.
++ * @return {!Array} huffman table.
++ */
++Zlib.Huffman.buildHuffmanTable = function(lengths) {
++  /** @type {number} length list size. */
++  var listSize = lengths.length;
++  /** @type {number} max code length for table size. */
++  var maxCodeLength = 0;
++  /** @type {number} min code length for table size. */
++  var minCodeLength = Number.POSITIVE_INFINITY;
++  /** @type {number} table size. */
++  var size;
++  /** @type {!(Array|Uint8Array)} huffman code table. */
++  var table;
++  /** @type {number} bit length. */
++  var bitLength;
++  /** @type {number} huffman code. */
++  var code;
++  /**
++   * サイズが 2^maxlength 個のテーブルを埋めるためのスキップ長.
++   * @type {number} skip length for table filling.
++   */
++  var skip;
++  /** @type {number} reversed code. */
++  var reversed;
++  /** @type {number} reverse temp. */
++  var rtemp;
++  /** @type {number} loop counter. */
++  var i;
++  /** @type {number} loop limit. */
++  var il;
++  /** @type {number} loop counter. */
++  var j;
++  /** @type {number} loop limit. */
++  var jl;
++
++  // Math.max は遅いので最長の値は for-loop で取得する
++  for (i = 0, il = listSize; i < il; ++i) {
++    if (lengths[i] > maxCodeLength) {
++      maxCodeLength = lengths[i];
++    }
++    if (lengths[i] < minCodeLength) {
++      minCodeLength = lengths[i];
++    }
++  }
++
++  size = 1 << maxCodeLength;
++  table = new (USE_TYPEDARRAY ? Uint32Array : Array)(size);
++
++  // ビット長の短い順からハフマン符号を割り当てる
++  for (bitLength = 1, code = 0, skip = 2; bitLength <= maxCodeLength;) {
++    for (i = 0; i < listSize; ++i) {
++      if (lengths[i] === bitLength) {
++        // ビットオーダーが逆になるためビット長分並びを反転する
++        for (reversed = 0, rtemp = code, j = 0; j < bitLength; ++j) {
++          reversed = (reversed << 1) | (rtemp & 1);
++          rtemp >>= 1;
++        }
++
++        // 最大ビット長をもとにテーブルを作るため、
++        // 最大ビット長以外では 0 / 1 どちらでも良い箇所ができる
++        // そのどちらでも良い場所は同じ値で埋めることで
++        // 本来のビット長以上のビット数取得しても問題が起こらないようにする
++        for (j = reversed; j < size; j += skip) {
++          table[j] = (bitLength << 16) | i;
++        }
++
++        ++code;
++      }
++    }
++
++    // 次のビット長へ
++    ++bitLength;
++    code <<= 1;
++    skip <<= 1;
++  }
++
++  return [table, maxCodeLength, minCodeLength];
++};
++
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..28d3919e37be45b3975bda474c5ec9fe642f9fd8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,120 @@@
++goog.provide('Zlib.Inflate');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.Adler32');
++goog.require('Zlib.RawInflate');
++
++goog.scope(function() {
++
++/**
++ * @constructor
++ * @param {!(Uint8Array|Array)} input deflated buffer.
++ * @param {Object=} opt_params option parameters.
++ *
++ * opt_params は以下のプロパティを指定する事ができます。
++ *   - index: input buffer の deflate コンテナの開始位置.
++ *   - blockSize: バッファのブロックサイズ.
++ *   - verify: 伸張が終わった後 adler-32 checksum の検証を行うか.
++ *   - bufferType: Zlib.Inflate.BufferType の値によってバッファの管理方法を指定する.
++ *       Zlib.Inflate.BufferType は Zlib.RawInflate.BufferType のエイリアス.
++ */
++Zlib.Inflate = function(input, opt_params) {
++  /** @type {number} */
++  var bufferSize;
++  /** @type {Zlib.Inflate.BufferType} */
++  var bufferType;
++  /** @type {number} */
++  var cmf;
++  /** @type {number} */
++  var flg;
++
++  /** @type {!(Uint8Array|Array)} */
++  this.input = input;
++  /** @type {number} */
++  this.ip = 0;
++  /** @type {Zlib.RawInflate} */
++  this.rawinflate;
++  /** @type {(boolean|undefined)} verify flag. */
++  this.verify;
++
++  // option parameters
++  if (opt_params || !(opt_params = {})) {
++    if (opt_params['index']) {
++      this.ip = opt_params['index'];
++    }
++    if (opt_params['verify']) {
++      this.verify = opt_params['verify'];
++    }
++  }
++
++  // Compression Method and Flags
++  cmf = input[this.ip++];
++  flg = input[this.ip++];
++
++  // compression method
++  switch (cmf & 0x0f) {
++    case Zlib.CompressionMethod.DEFLATE:
++      this.method = Zlib.CompressionMethod.DEFLATE;
++      break;
++    default:
++      throw new Error('unsupported compression method');
++  }
++
++  // fcheck
++  if (((cmf << 8) + flg) % 31 !== 0) {
++    throw new Error('invalid fcheck flag:' + ((cmf << 8) + flg) % 31);
++  }
++
++  // fdict (not supported)
++  if (flg & 0x20) {
++    throw new Error('fdict flag is not supported');
++  }
++
++  // RawInflate
++  this.rawinflate = new Zlib.RawInflate(input, {
++    'index': this.ip,
++    'bufferSize': opt_params['bufferSize'],
++    'bufferType': opt_params['bufferType'],
++    'resize': opt_params['resize']
++  });
++}
++
++/**
++ * @enum {number}
++ */
++Zlib.Inflate.BufferType = Zlib.RawInflate.BufferType;
++
++/**
++ * decompress.
++ * @return {!(Uint8Array|Array)} inflated buffer.
++ */
++Zlib.Inflate.prototype.decompress = function() {
++  /** @type {!(Array|Uint8Array)} input buffer. */
++  var input = this.input;
++  /** @type {!(Uint8Array|Array)} inflated buffer. */
++  var buffer;
++  /** @type {number} adler-32 checksum */
++  var adler32;
++
++  buffer = this.rawinflate.decompress();
++  this.ip = this.rawinflate.ip;
++
++  // verify adler-32
++  if (this.verify) {
++    adler32 = (
++      input[this.ip++] << 24 | input[this.ip++] << 16 |
++      input[this.ip++] << 8 | input[this.ip++]
++    ) >>> 0;
++
++    if (adler32 !== Zlib.Adler32(buffer)) {
++      throw new Error('invalid adler-32 checksum');
++    }
++  }
++
++  return buffer;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3b700e5feb810e132c7ec94e71f38ef2320d6cd0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,119 @@@
++goog.provide('Zlib.InflateStream');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib');
++//goog.require('Zlib.Adler32');
++goog.require('Zlib.RawInflateStream');
++
++goog.scope(function() {
++
++/**
++ * @param {!(Uint8Array|Array)} input deflated buffer.
++ * @constructor
++ */
++Zlib.InflateStream = function(input) {
++  /** @type {!(Uint8Array|Array)} */
++  this.input = input === void 0 ? new (USE_TYPEDARRAY ? Uint8Array : Array)() : input;
++  /** @type {number} */
++  this.ip = 0;
++  /** @type {Zlib.RawInflateStream} */
++  this.rawinflate = new Zlib.RawInflateStream(this.input, this.ip);
++  /** @type {Zlib.CompressionMethod} */
++  this.method;
++  /** @type {!(Array|Uint8Array)} */
++  this.output = this.rawinflate.output;
++};
++
++/**
++ * decompress.
++ * @return {!(Uint8Array|Array)} inflated buffer.
++ */
++Zlib.InflateStream.prototype.decompress = function(input) {
++  /** @type {!(Uint8Array|Array)} inflated buffer. */
++  var buffer;
++  /** @type {number} adler-32 checksum */
++  var adler32;
++
++  // 新しい入力を入力バッファに結合する
++  // XXX Array, Uint8Array のチェックを行うか確認する
++  if (input !== void 0) {
++    if (USE_TYPEDARRAY) {
++      var tmp = new Uint8Array(this.input.length + input.length);
++      tmp.set(this.input, 0);
++      tmp.set(input, this.input.length);
++      this.input = tmp;
++    } else {
++      this.input = this.input.concat(input);
++    }
++  }
++
++  if (this.method === void 0) {
++    if(this.readHeader() < 0) {
++      return new (USE_TYPEDARRAY ? Uint8Array : Array)();
++    }
++  }
++
++  buffer = this.rawinflate.decompress(this.input, this.ip);
++  this.ip = this.rawinflate.ip;
++
++  // verify adler-32
++  /*
++  if (this.verify) {
++    adler32 =
++      input[this.ip++] << 24 | input[this.ip++] << 16 |
++      input[this.ip++] << 8 | input[this.ip++];
++
++    if (adler32 !== Zlib.Adler32(buffer)) {
++      throw new Error('invalid adler-32 checksum');
++    }
++  }
++  */
++
++  return buffer;
++};
++
++/**
++ * @return {!(Uint8Array|Array)} current output buffer.
++ */
++Zlib.InflateStream.prototype.getBytes = function() {
++  return this.rawinflate.getBytes();
++};
++
++Zlib.InflateStream.prototype.readHeader = function() {
++  var ip = this.ip;
++  var input = this.input;
++
++  // Compression Method and Flags
++  var cmf = input[ip++];
++  var flg = input[ip++];
++
++  if (cmf === void 0 || flg === void 0) {
++    return -1;
++  }
++
++  // compression method
++  switch (cmf & 0x0f) {
++    case Zlib.CompressionMethod.DEFLATE:
++      this.method = Zlib.CompressionMethod.DEFLATE;
++      break;
++    default:
++      throw new Error('unsupported compression method');
++  }
++
++  // fcheck
++  if (((cmf << 8) + flg) % 31 !== 0) {
++    throw new Error('invalid fcheck flag:' + ((cmf << 8) + flg) % 31);
++  }
++
++  // fdict (not supported)
++  if (flg & 0x20) {
++    throw new Error('fdict flag is not supported');
++  }
++
++  this.ip = ip;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c5c05f2c3dafc718705d9f1202d2567f4f4267f7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1195 @@@
++/**
++ * @fileoverview Deflate (RFC1951) 符号化アルゴリズム実装.
++ */
++
++goog.provide('Zlib.RawDeflate');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.BitStream');
++goog.require('Zlib.Heap');
++
++goog.scope(function() {
++
++/**
++ * Raw Deflate 実装
++ *
++ * @constructor
++ * @param {!(Array.<number>|Uint8Array)} input 符号化する対象のバッファ.
++ * @param {Object=} opt_params option parameters.
++ *
++ * typed array が使用可能なとき、outputBuffer が Array は自動的に Uint8Array に
++ * 変換されます.
++ * 別のオブジェクトになるため出力バッファを参照している変数などは
++ * 更新する必要があります.
++ */
++Zlib.RawDeflate = function(input, opt_params) {
++  /** @type {Zlib.RawDeflate.CompressionType} */
++  this.compressionType = Zlib.RawDeflate.CompressionType.DYNAMIC;
++  /** @type {number} */
++  this.lazy = 0;
++  /** @type {!(Array.<number>|Uint32Array)} */
++  this.freqsLitLen;
++  /** @type {!(Array.<number>|Uint32Array)} */
++  this.freqsDist;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.input =
++    (USE_TYPEDARRAY && input instanceof Array) ? new Uint8Array(input) : input;
++  /** @type {!(Array.<number>|Uint8Array)} output output buffer. */
++  this.output;
++  /** @type {number} pos output buffer position. */
++  this.op = 0;
++
++  // option parameters
++  if (opt_params) {
++    if (opt_params['lazy']) {
++      this.lazy = opt_params['lazy'];
++    }
++    if (typeof opt_params['compressionType'] === 'number') {
++      this.compressionType = opt_params['compressionType'];
++    }
++    if (opt_params['outputBuffer']) {
++      this.output =
++        (USE_TYPEDARRAY && opt_params['outputBuffer'] instanceof Array) ?
++        new Uint8Array(opt_params['outputBuffer']) : opt_params['outputBuffer'];
++    }
++    if (typeof opt_params['outputIndex'] === 'number') {
++      this.op = opt_params['outputIndex'];
++    }
++  }
++
++  if (!this.output) {
++    this.output = new (USE_TYPEDARRAY ? Uint8Array : Array)(0x8000);
++  }
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.RawDeflate.CompressionType = {
++  NONE: 0,
++  FIXED: 1,
++  DYNAMIC: 2,
++  RESERVED: 3
++};
++
++
++/**
++ * LZ77 の最小マッチ長
++ * @const
++ * @type {number}
++ */
++Zlib.RawDeflate.Lz77MinLength = 3;
++
++/**
++ * LZ77 の最大マッチ長
++ * @const
++ * @type {number}
++ */
++Zlib.RawDeflate.Lz77MaxLength = 258;
++
++/**
++ * LZ77 のウィンドウサイズ
++ * @const
++ * @type {number}
++ */
++Zlib.RawDeflate.WindowSize = 0x8000;
++
++/**
++ * 最長の符号長
++ * @const
++ * @type {number}
++ */
++Zlib.RawDeflate.MaxCodeLength = 16;
++
++/**
++ * ハフマン符号の最大数値
++ * @const
++ * @type {number}
++ */
++Zlib.RawDeflate.HUFMAX = 286;
++
++/**
++ * 固定ハフマン符号の符号化テーブル
++ * @const
++ * @type {Array.<Array.<number, number>>}
++ */
++Zlib.RawDeflate.FixedHuffmanTable = (function() {
++  var table = [], i;
++
++  for (i = 0; i < 288; i++) {
++    switch (true) {
++      case (i <= 143): table.push([i       + 0x030, 8]); break;
++      case (i <= 255): table.push([i - 144 + 0x190, 9]); break;
++      case (i <= 279): table.push([i - 256 + 0x000, 7]); break;
++      case (i <= 287): table.push([i - 280 + 0x0C0, 8]); break;
++      default:
++        throw 'invalid literal: ' + i;
++    }
++  }
++
++  return table;
++})();
++
++/**
++ * DEFLATE ブロックの作成
++ * @return {!(Array.<number>|Uint8Array)} 圧縮済み byte array.
++ */
++Zlib.RawDeflate.prototype.compress = function() {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var blockArray;
++  /** @type {number} */
++  var position;
++  /** @type {number} */
++  var length;
++
++  var input = this.input;
++
++  // compression
++  switch (this.compressionType) {
++    case Zlib.RawDeflate.CompressionType.NONE:
++      // each 65535-Byte (length header: 16-bit)
++      for (position = 0, length = input.length; position < length;) {
++        blockArray = USE_TYPEDARRAY ?
++          input.subarray(position, position + 0xffff) :
++          input.slice(position, position + 0xffff);
++        position += blockArray.length;
++        this.makeNocompressBlock(blockArray, (position === length));
++      }
++      break;
++    case Zlib.RawDeflate.CompressionType.FIXED:
++      this.output = this.makeFixedHuffmanBlock(input, true);
++      this.op = this.output.length;
++      break;
++    case Zlib.RawDeflate.CompressionType.DYNAMIC:
++      this.output = this.makeDynamicHuffmanBlock(input, true);
++      this.op = this.output.length;
++      break;
++    default:
++      throw 'invalid compression type';
++  }
++
++  return this.output;
++};
++
++/**
++ * 非圧縮ブロックの作成
++ * @param {!(Array.<number>|Uint8Array)} blockArray ブロックデータ byte array.
++ * @param {!boolean} isFinalBlock 最後のブロックならばtrue.
++ * @return {!(Array.<number>|Uint8Array)} 非圧縮ブロック byte array.
++ */
++Zlib.RawDeflate.prototype.makeNocompressBlock =
++function(blockArray, isFinalBlock) {
++  /** @type {number} */
++  var bfinal;
++  /** @type {Zlib.RawDeflate.CompressionType} */
++  var btype;
++  /** @type {number} */
++  var len;
++  /** @type {number} */
++  var nlen;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  var output = this.output;
++  var op = this.op;
++
++  // expand buffer
++  if (USE_TYPEDARRAY) {
++    output = new Uint8Array(this.output.buffer);
++    while (output.length <= op + blockArray.length + 5) {
++      output = new Uint8Array(output.length << 1);
++    }
++    output.set(this.output);
++  }
++
++  // header
++  bfinal = isFinalBlock ? 1 : 0;
++  btype = Zlib.RawDeflate.CompressionType.NONE;
++  output[op++] = (bfinal) | (btype << 1);
++
++  // length
++  len = blockArray.length;
++  nlen = (~len + 0x10000) & 0xffff;
++  output[op++] =          len & 0xff;
++  output[op++] =  (len >>> 8) & 0xff;
++  output[op++] =         nlen & 0xff;
++  output[op++] = (nlen >>> 8) & 0xff;
++
++  // copy buffer
++  if (USE_TYPEDARRAY) {
++     output.set(blockArray, op);
++     op += blockArray.length;
++     output = output.subarray(0, op);
++  } else {
++    for (i = 0, il = blockArray.length; i < il; ++i) {
++      output[op++] = blockArray[i];
++    }
++    output.length = op;
++  }
++
++  this.op = op;
++  this.output = output;
++
++  return output;
++};
++
++/**
++ * 固定ハフマンブロックの作成
++ * @param {!(Array.<number>|Uint8Array)} blockArray ブロックデータ byte array.
++ * @param {!boolean} isFinalBlock 最後のブロックならばtrue.
++ * @return {!(Array.<number>|Uint8Array)} 固定ハフマン符号化ブロック byte array.
++ */
++Zlib.RawDeflate.prototype.makeFixedHuffmanBlock =
++function(blockArray, isFinalBlock) {
++  /** @type {Zlib.BitStream} */
++  var stream = new Zlib.BitStream(USE_TYPEDARRAY ?
++    new Uint8Array(this.output.buffer) : this.output, this.op);
++  /** @type {number} */
++  var bfinal;
++  /** @type {Zlib.RawDeflate.CompressionType} */
++  var btype;
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var data;
++
++  // header
++  bfinal = isFinalBlock ? 1 : 0;
++  btype = Zlib.RawDeflate.CompressionType.FIXED;
++
++  stream.writeBits(bfinal, 1, true);
++  stream.writeBits(btype, 2, true);
++
++  data = this.lz77(blockArray);
++  this.fixedHuffman(data, stream);
++
++  return stream.finish();
++};
++
++/**
++ * 動的ハフマンブロックの作成
++ * @param {!(Array.<number>|Uint8Array)} blockArray ブロックデータ byte array.
++ * @param {!boolean} isFinalBlock 最後のブロックならばtrue.
++ * @return {!(Array.<number>|Uint8Array)} 動的ハフマン符号ブロック byte array.
++ */
++Zlib.RawDeflate.prototype.makeDynamicHuffmanBlock =
++function(blockArray, isFinalBlock) {
++  /** @type {Zlib.BitStream} */
++  var stream = new Zlib.BitStream(USE_TYPEDARRAY ?
++    new Uint8Array(this.output.buffer) : this.output, this.op);
++  /** @type {number} */
++  var bfinal;
++  /** @type {Zlib.RawDeflate.CompressionType} */
++  var btype;
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var data;
++  /** @type {number} */
++  var hlit;
++  /** @type {number} */
++  var hdist;
++  /** @type {number} */
++  var hclen;
++  /** @const @type {Array.<number>} */
++  var hclenOrder =
++        [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var litLenLengths;
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var litLenCodes;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var distLengths;
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var distCodes;
++  /** @type {{
++   *   codes: !(Array.<number>|Uint32Array),
++   *   freqs: !(Array.<number>|Uint32Array)
++   * }} */
++  var treeSymbols;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var treeLengths;
++  /** @type {Array} */
++  var transLengths = new Array(19);
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var treeCodes;
++  /** @type {number} */
++  var code;
++  /** @type {number} */
++  var bitlen;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  // header
++  bfinal = isFinalBlock ? 1 : 0;
++  btype = Zlib.RawDeflate.CompressionType.DYNAMIC;
++
++  stream.writeBits(bfinal, 1, true);
++  stream.writeBits(btype, 2, true);
++
++  data = this.lz77(blockArray);
++
++  // リテラル・長さ, 距離のハフマン符号と符号長の算出
++  litLenLengths = this.getLengths_(this.freqsLitLen, 15);
++  litLenCodes = this.getCodesFromLengths_(litLenLengths);
++  distLengths = this.getLengths_(this.freqsDist, 7);
++  distCodes = this.getCodesFromLengths_(distLengths);
++
++  // HLIT, HDIST の決定
++  for (hlit = 286; hlit > 257 && litLenLengths[hlit - 1] === 0; hlit--) {}
++  for (hdist = 30; hdist > 1 && distLengths[hdist - 1] === 0; hdist--) {}
++
++  // HCLEN
++  treeSymbols =
++    this.getTreeSymbols_(hlit, litLenLengths, hdist, distLengths);
++  treeLengths = this.getLengths_(treeSymbols.freqs, 7);
++  for (i = 0; i < 19; i++) {
++    transLengths[i] = treeLengths[hclenOrder[i]];
++  }
++  for (hclen = 19; hclen > 4 && transLengths[hclen - 1] === 0; hclen--) {}
++
++  treeCodes = this.getCodesFromLengths_(treeLengths);
++
++  // 出力
++  stream.writeBits(hlit - 257, 5, true);
++  stream.writeBits(hdist - 1, 5, true);
++  stream.writeBits(hclen - 4, 4, true);
++  for (i = 0; i < hclen; i++) {
++    stream.writeBits(transLengths[i], 3, true);
++  }
++
++  // ツリーの出力
++  for (i = 0, il = treeSymbols.codes.length; i < il; i++) {
++    code = treeSymbols.codes[i];
++
++    stream.writeBits(treeCodes[code], treeLengths[code], true);
++
++    // extra bits
++    if (code >= 16) {
++      i++;
++      switch (code) {
++        case 16: bitlen = 2; break;
++        case 17: bitlen = 3; break;
++        case 18: bitlen = 7; break;
++        default:
++          throw 'invalid code: ' + code;
++      }
++
++      stream.writeBits(treeSymbols.codes[i], bitlen, true);
++    }
++  }
++
++  this.dynamicHuffman(
++    data,
++    [litLenCodes, litLenLengths],
++    [distCodes, distLengths],
++    stream
++  );
++
++  return stream.finish();
++};
++
++
++/**
++ * 動的ハフマン符号化(カスタムハフマンテーブル)
++ * @param {!(Array.<number>|Uint16Array)} dataArray LZ77 符号化済み byte array.
++ * @param {!Zlib.BitStream} stream 書き込み用ビットストリーム.
++ * @return {!Zlib.BitStream} ハフマン符号化済みビットストリームオブジェクト.
++ */
++Zlib.RawDeflate.prototype.dynamicHuffman =
++function(dataArray, litLen, dist, stream) {
++  /** @type {number} */
++  var index;
++  /** @type {number} */
++  var length;
++  /** @type {number} */
++  var literal;
++  /** @type {number} */
++  var code;
++  /** @type {number} */
++  var litLenCodes;
++  /** @type {number} */
++  var litLenLengths;
++  /** @type {number} */
++  var distCodes;
++  /** @type {number} */
++  var distLengths;
++
++  litLenCodes = litLen[0];
++  litLenLengths = litLen[1];
++  distCodes = dist[0];
++  distLengths = dist[1];
++
++  // 符号を BitStream に書き込んでいく
++  for (index = 0, length = dataArray.length; index < length; ++index) {
++    literal = dataArray[index];
++
++    // literal or length
++    stream.writeBits(litLenCodes[literal], litLenLengths[literal], true);
++
++    // 長さ・距離符号
++    if (literal > 256) {
++      // length extra
++      stream.writeBits(dataArray[++index], dataArray[++index], true);
++      // distance
++      code = dataArray[++index];
++      stream.writeBits(distCodes[code], distLengths[code], true);
++      // distance extra
++      stream.writeBits(dataArray[++index], dataArray[++index], true);
++    // 終端
++    } else if (literal === 256) {
++      break;
++    }
++  }
++
++  return stream;
++};
++
++/**
++ * 固定ハフマン符号化
++ * @param {!(Array.<number>|Uint16Array)} dataArray LZ77 符号化済み byte array.
++ * @param {!Zlib.BitStream} stream 書き込み用ビットストリーム.
++ * @return {!Zlib.BitStream} ハフマン符号化済みビットストリームオブジェクト.
++ */
++Zlib.RawDeflate.prototype.fixedHuffman = function(dataArray, stream) {
++  /** @type {number} */
++  var index;
++  /** @type {number} */
++  var length;
++  /** @type {number} */
++  var literal;
++
++  // 符号を BitStream に書き込んでいく
++  for (index = 0, length = dataArray.length; index < length; index++) {
++    literal = dataArray[index];
++
++    // 符号の書き込み
++    Zlib.BitStream.prototype.writeBits.apply(
++      stream,
++      Zlib.RawDeflate.FixedHuffmanTable[literal]
++    );
++
++    // 長さ・距離符号
++    if (literal > 0x100) {
++      // length extra
++      stream.writeBits(dataArray[++index], dataArray[++index], true);
++      // distance
++      stream.writeBits(dataArray[++index], 5);
++      // distance extra
++      stream.writeBits(dataArray[++index], dataArray[++index], true);
++    // 終端
++    } else if (literal === 0x100) {
++      break;
++    }
++  }
++
++  return stream;
++};
++
++/**
++ * マッチ情報
++ * @param {!number} length マッチした長さ.
++ * @param {!number} backwardDistance マッチ位置との距離.
++ * @constructor
++ */
++Zlib.RawDeflate.Lz77Match = function(length, backwardDistance) {
++  /** @type {number} match length. */
++  this.length = length;
++  /** @type {number} backward distance. */
++  this.backwardDistance = backwardDistance;
++};
++
++/**
++ * 長さ符号テーブル.
++ * [コード, 拡張ビット, 拡張ビット長] の配列となっている.
++ * @const
++ * @type {!(Array.<number>|Uint32Array)}
++ */
++Zlib.RawDeflate.Lz77Match.LengthCodeTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint32Array(table) : table;
++})((function() {
++  /** @type {!Array} */
++  var table = [];
++  /** @type {number} */
++  var i;
++  /** @type {!Array.<number>} */
++  var c;
++
++  for (i = 3; i <= 258; i++) {
++    c = code(i);
++    table[i] = (c[2] << 24) | (c[1] << 16) | c[0];
++  }
++
++  /**
++   * @param {number} length lz77 length.
++   * @return {!Array.<number>} lz77 codes.
++   */
++  function code(length) {
++    switch (true) {
++      case (length === 3): return [257, length - 3, 0]; break;
++      case (length === 4): return [258, length - 4, 0]; break;
++      case (length === 5): return [259, length - 5, 0]; break;
++      case (length === 6): return [260, length - 6, 0]; break;
++      case (length === 7): return [261, length - 7, 0]; break;
++      case (length === 8): return [262, length - 8, 0]; break;
++      case (length === 9): return [263, length - 9, 0]; break;
++      case (length === 10): return [264, length - 10, 0]; break;
++      case (length <= 12): return [265, length - 11, 1]; break;
++      case (length <= 14): return [266, length - 13, 1]; break;
++      case (length <= 16): return [267, length - 15, 1]; break;
++      case (length <= 18): return [268, length - 17, 1]; break;
++      case (length <= 22): return [269, length - 19, 2]; break;
++      case (length <= 26): return [270, length - 23, 2]; break;
++      case (length <= 30): return [271, length - 27, 2]; break;
++      case (length <= 34): return [272, length - 31, 2]; break;
++      case (length <= 42): return [273, length - 35, 3]; break;
++      case (length <= 50): return [274, length - 43, 3]; break;
++      case (length <= 58): return [275, length - 51, 3]; break;
++      case (length <= 66): return [276, length - 59, 3]; break;
++      case (length <= 82): return [277, length - 67, 4]; break;
++      case (length <= 98): return [278, length - 83, 4]; break;
++      case (length <= 114): return [279, length - 99, 4]; break;
++      case (length <= 130): return [280, length - 115, 4]; break;
++      case (length <= 162): return [281, length - 131, 5]; break;
++      case (length <= 194): return [282, length - 163, 5]; break;
++      case (length <= 226): return [283, length - 195, 5]; break;
++      case (length <= 257): return [284, length - 227, 5]; break;
++      case (length === 258): return [285, length - 258, 0]; break;
++      default: throw 'invalid length: ' + length;
++    }
++  };
++
++  return table;
++})());
++
++/**
++ * 距離符号テーブル
++ * @param {!number} dist 距離.
++ * @return {!Array.<number>} コード、拡張ビット、拡張ビット長の配列.
++ * @private
++ */
++Zlib.RawDeflate.Lz77Match.prototype.getDistanceCode_ = function(dist) {
++  /** @type {!Array.<number>} distance code table. */
++  var r;
++
++  switch (true) {
++    case (dist === 1): r = [0, dist - 1, 0]; break;
++    case (dist === 2): r = [1, dist - 2, 0]; break;
++    case (dist === 3): r = [2, dist - 3, 0]; break;
++    case (dist === 4): r = [3, dist - 4, 0]; break;
++    case (dist <= 6): r = [4, dist - 5, 1]; break;
++    case (dist <= 8): r = [5, dist - 7, 1]; break;
++    case (dist <= 12): r = [6, dist - 9, 2]; break;
++    case (dist <= 16): r = [7, dist - 13, 2]; break;
++    case (dist <= 24): r = [8, dist - 17, 3]; break;
++    case (dist <= 32): r = [9, dist - 25, 3]; break;
++    case (dist <= 48): r = [10, dist - 33, 4]; break;
++    case (dist <= 64): r = [11, dist - 49, 4]; break;
++    case (dist <= 96): r = [12, dist - 65, 5]; break;
++    case (dist <= 128): r = [13, dist - 97, 5]; break;
++    case (dist <= 192): r = [14, dist - 129, 6]; break;
++    case (dist <= 256): r = [15, dist - 193, 6]; break;
++    case (dist <= 384): r = [16, dist - 257, 7]; break;
++    case (dist <= 512): r = [17, dist - 385, 7]; break;
++    case (dist <= 768): r = [18, dist - 513, 8]; break;
++    case (dist <= 1024): r = [19, dist - 769, 8]; break;
++    case (dist <= 1536): r = [20, dist - 1025, 9]; break;
++    case (dist <= 2048): r = [21, dist - 1537, 9]; break;
++    case (dist <= 3072): r = [22, dist - 2049, 10]; break;
++    case (dist <= 4096): r = [23, dist - 3073, 10]; break;
++    case (dist <= 6144): r = [24, dist - 4097, 11]; break;
++    case (dist <= 8192): r = [25, dist - 6145, 11]; break;
++    case (dist <= 12288): r = [26, dist - 8193, 12]; break;
++    case (dist <= 16384): r = [27, dist - 12289, 12]; break;
++    case (dist <= 24576): r = [28, dist - 16385, 13]; break;
++    case (dist <= 32768): r = [29, dist - 24577, 13]; break;
++    default: throw 'invalid distance';
++  }
++
++  return r;
++};
++
++/**
++ * マッチ情報を LZ77 符号化配列で返す.
++ * なお、ここでは以下の内部仕様で符号化している
++ * [ CODE, EXTRA-BIT-LEN, EXTRA, CODE, EXTRA-BIT-LEN, EXTRA ]
++ * @return {!Array.<number>} LZ77 符号化 byte array.
++ */
++Zlib.RawDeflate.Lz77Match.prototype.toLz77Array = function() {
++  /** @type {number} */
++  var length = this.length;
++  /** @type {number} */
++  var dist = this.backwardDistance;
++  /** @type {Array} */
++  var codeArray = [];
++  /** @type {number} */
++  var pos = 0;
++  /** @type {!Array.<number>} */
++  var code;
++
++  // length
++  code = Zlib.RawDeflate.Lz77Match.LengthCodeTable[length];
++  codeArray[pos++] = code & 0xffff;
++  codeArray[pos++] = (code >> 16) & 0xff;
++  codeArray[pos++] = code >> 24;
++
++  // distance
++  code = this.getDistanceCode_(dist);
++  codeArray[pos++] = code[0];
++  codeArray[pos++] = code[1];
++  codeArray[pos++] = code[2];
++
++  return codeArray;
++};
++
++/**
++ * LZ77 実装
++ * @param {!(Array.<number>|Uint8Array)} dataArray LZ77 符号化するバイト配列.
++ * @return {!(Array.<number>|Uint16Array)} LZ77 符号化した配列.
++ */
++Zlib.RawDeflate.prototype.lz77 = function(dataArray) {
++  /** @type {number} input position */
++  var position;
++  /** @type {number} input length */
++  var length;
++  /** @type {number} loop counter */
++  var i;
++  /** @type {number} loop limiter */
++  var il;
++  /** @type {number} chained-hash-table key */
++  var matchKey;
++  /** @type {Object.<number, Array.<number>>} chained-hash-table */
++  var table = {};
++  /** @const @type {number} */
++  var windowSize = Zlib.RawDeflate.WindowSize;
++  /** @type {Array.<number>} match list */
++  var matchList;
++  /** @type {Zlib.RawDeflate.Lz77Match} longest match */
++  var longestMatch;
++  /** @type {Zlib.RawDeflate.Lz77Match} previous longest match */
++  var prevMatch;
++  /** @type {!(Array.<number>|Uint16Array)} lz77 buffer */
++  var lz77buf = USE_TYPEDARRAY ?
++    new Uint16Array(dataArray.length * 2) : new Array();
++  /** @type {number} lz77 output buffer pointer */
++  var pos = 0;
++  /** @type {number} lz77 skip length */
++  var skipLength = 0;
++  /** @type {!(Array.<number>|Uint32Array)} */
++  var freqsLitLen = new (USE_TYPEDARRAY ? Uint32Array : Array)(286);
++  /** @type {!(Array.<number>|Uint32Array)} */
++  var freqsDist = new (USE_TYPEDARRAY ? Uint32Array : Array)(30);
++  /** @type {number} */
++  var lazy = this.lazy;
++  /** @type {*} temporary variable */
++  var tmp;
++
++  // 初期化
++  if (!USE_TYPEDARRAY) {
++    for (i = 0; i <= 285;) { freqsLitLen[i++] = 0; }
++    for (i = 0; i <= 29;) { freqsDist[i++] = 0; }
++  }
++  freqsLitLen[256] = 1; // EOB の最低出現回数は 1
++
++  /**
++   * マッチデータの書き込み
++   * @param {Zlib.RawDeflate.Lz77Match} match LZ77 Match data.
++   * @param {!number} offset スキップ開始位置(相対指定).
++   * @private
++   */
++  function writeMatch(match, offset) {
++    /** @type {Array.<number>} */
++    var lz77Array = match.toLz77Array();
++    /** @type {number} */
++    var i;
++    /** @type {number} */
++    var il;
++
++    for (i = 0, il = lz77Array.length; i < il; ++i) {
++      lz77buf[pos++] = lz77Array[i];
++    }
++    freqsLitLen[lz77Array[0]]++;
++    freqsDist[lz77Array[3]]++;
++    skipLength = match.length + offset - 1;
++    prevMatch = null;
++  }
++
++  // LZ77 符号化
++  for (position = 0, length = dataArray.length; position < length; ++position) {
++    // ハッシュキーの作成
++    for (matchKey = 0, i = 0, il = Zlib.RawDeflate.Lz77MinLength; i < il; ++i) {
++      if (position + i === length) {
++        break;
++      }
++      matchKey = (matchKey << 8) | dataArray[position + i];
++    }
++
++    // テーブルが未定義だったら作成する
++    if (table[matchKey] === void 0) { table[matchKey] = []; }
++    matchList = table[matchKey];
++
++    // skip
++    if (skipLength-- > 0) {
++      matchList.push(position);
++      continue;
++    }
++
++    // マッチテーブルの更新 (最大戻り距離を超えているものを削除する)
++    while (matchList.length > 0 && position - matchList[0] > windowSize) {
++      matchList.shift();
++    }
++
++    // データ末尾でマッチしようがない場合はそのまま流しこむ
++    if (position + Zlib.RawDeflate.Lz77MinLength >= length) {
++      if (prevMatch) {
++        writeMatch(prevMatch, -1);
++      }
++
++      for (i = 0, il = length - position; i < il; ++i) {
++        tmp = dataArray[position + i];
++        lz77buf[pos++] = tmp;
++        ++freqsLitLen[tmp];
++      }
++      break;
++    }
++
++    // マッチ候補から最長のものを探す
++    if (matchList.length > 0) {
++      longestMatch = this.searchLongestMatch_(dataArray, position, matchList);
++
++      if (prevMatch) {
++        // 現在のマッチの方が前回のマッチよりも長い
++        if (prevMatch.length < longestMatch.length) {
++          // write previous literal
++          tmp = dataArray[position - 1];
++          lz77buf[pos++] = tmp;
++          ++freqsLitLen[tmp];
++
++          // write current match
++          writeMatch(longestMatch, 0);
++        } else {
++          // write previous match
++          writeMatch(prevMatch, -1);
++        }
++      } else if (longestMatch.length < lazy) {
++        prevMatch = longestMatch;
++      } else {
++        writeMatch(longestMatch, 0);
++      }
++    // 前回マッチしていて今回マッチがなかったら前回のを採用
++    } else if (prevMatch) {
++      writeMatch(prevMatch, -1);
++    } else {
++      tmp = dataArray[position];
++      lz77buf[pos++] = tmp;
++      ++freqsLitLen[tmp];
++    }
++
++    matchList.push(position); // マッチテーブルに現在の位置を保存
++  }
++
++  // 終端処理
++  lz77buf[pos++] = 256;
++  freqsLitLen[256]++;
++  this.freqsLitLen = freqsLitLen;
++  this.freqsDist = freqsDist;
++
++  return /** @type {!(Uint16Array|Array.<number>)} */ (
++    USE_TYPEDARRAY ?  lz77buf.subarray(0, pos) : lz77buf
++  );
++};
++
++/**
++ * マッチした候補の中から最長一致を探す
++ * @param {!Object} data plain data byte array.
++ * @param {!number} position plain data byte array position.
++ * @param {!Array.<number>} matchList 候補となる位置の配列.
++ * @return {!Zlib.RawDeflate.Lz77Match} 最長かつ最短距離のマッチオブジェクト.
++ * @private
++ */
++Zlib.RawDeflate.prototype.searchLongestMatch_ =
++function(data, position, matchList) {
++  var match,
++      currentMatch,
++      matchMax = 0, matchLength,
++      i, j, l, dl = data.length;
++
++  // 候補を後ろから 1 つずつ絞り込んでゆく
++  permatch:
++  for (i = 0, l = matchList.length; i < l; i++) {
++    match = matchList[l - i - 1];
++    matchLength = Zlib.RawDeflate.Lz77MinLength;
++
++    // 前回までの最長一致を末尾から一致検索する
++    if (matchMax > Zlib.RawDeflate.Lz77MinLength) {
++      for (j = matchMax; j > Zlib.RawDeflate.Lz77MinLength; j--) {
++        if (data[match + j - 1] !== data[position + j - 1]) {
++          continue permatch;
++        }
++      }
++      matchLength = matchMax;
++    }
++
++    // 最長一致探索
++    while (matchLength < Zlib.RawDeflate.Lz77MaxLength &&
++           position + matchLength < dl &&
++           data[match + matchLength] === data[position + matchLength]) {
++      ++matchLength;
++    }
++
++    // マッチ長が同じ場合は後方を優先
++    if (matchLength > matchMax) {
++      currentMatch = match;
++      matchMax = matchLength;
++    }
++
++    // 最長が確定したら後の処理は省略
++    if (matchLength === Zlib.RawDeflate.Lz77MaxLength) {
++      break;
++    }
++  }
++
++  return new Zlib.RawDeflate.Lz77Match(matchMax, position - currentMatch);
++};
++
++/**
++ * Tree-Transmit Symbols の算出
++ * reference: PuTTY Deflate implementation
++ * @param {number} hlit HLIT.
++ * @param {!(Array.<number>|Uint8Array)} litlenLengths リテラルと長さ符号の符号長配列.
++ * @param {number} hdist HDIST.
++ * @param {!(Array.<number>|Uint8Array)} distLengths 距離符号の符号長配列.
++ * @return {{
++ *   codes: !(Array.<number>|Uint32Array),
++ *   freqs: !(Array.<number>|Uint32Array)
++ * }} Tree-Transmit Symbols.
++ */
++Zlib.RawDeflate.prototype.getTreeSymbols_ =
++function(hlit, litlenLengths, hdist, distLengths) {
++  var src = new (USE_TYPEDARRAY ? Uint32Array : Array)(hlit + hdist),
++      i, j, runLength, l, length,
++      result = new (USE_TYPEDARRAY ? Uint32Array : Array)(286 + 30),
++      nResult,
++      rpt,
++      freqs = new (USE_TYPEDARRAY ? Uint8Array : Array)(19);
++
++  j = 0;
++  for (i = 0; i < hlit; i++) {
++    src[j++] = litlenLengths[i];
++  }
++  for (i = 0; i < hdist; i++) {
++    src[j++] = distLengths[i];
++  }
++
++  // 初期化
++  if (!USE_TYPEDARRAY) {
++    for (i = 0, l = freqs.length; i < l; ++i) {
++      freqs[i] = 0;
++    }
++  }
++
++  // 符号化
++  nResult = 0;
++  for (i = 0, l = src.length; i < l; i += j) {
++    // Run Length Encoding
++    for (j = 1; i + j < l && src[i + j] === src[i]; ++j) {}
++
++    runLength = j;
++
++    if (src[i] === 0) {
++      // 0 の繰り返しが 3 回未満ならばそのまま
++      if (runLength < 3) {
++        while (runLength-- > 0) {
++          result[nResult++] = 0;
++          freqs[0]++;
++        }
++      } else {
++        while (runLength > 0) {
++          // 繰り返しは最大 138 までなので切り詰める
++          rpt = (runLength < 138 ? runLength : 138);
++
++          if (rpt > runLength - 3 && rpt < runLength) {
++            rpt = runLength - 3;
++          }
++
++          // 3-10 回 -> 17
++          if (rpt <= 10) {
++            result[nResult++] = 17;
++            result[nResult++] = rpt - 3;
++            freqs[17]++;
++          // 11-138 回 -> 18
++          } else {
++            result[nResult++] = 18;
++            result[nResult++] = rpt - 11;
++            freqs[18]++;
++          }
++
++          runLength -= rpt;
++        }
++      }
++    } else {
++      result[nResult++] = src[i];
++      freqs[src[i]]++;
++      runLength--;
++
++      // 繰り返し回数が3回未満ならばランレングス符号は要らない
++      if (runLength < 3) {
++        while (runLength-- > 0) {
++          result[nResult++] = src[i];
++          freqs[src[i]]++;
++        }
++      // 3 回以上ならばランレングス符号化
++      } else {
++        while (runLength > 0) {
++          // runLengthを 3-6 で分割
++          rpt = (runLength < 6 ? runLength : 6);
++
++          if (rpt > runLength - 3 && rpt < runLength) {
++            rpt = runLength - 3;
++          }
++
++          result[nResult++] = 16;
++          result[nResult++] = rpt - 3;
++          freqs[16]++;
++
++          runLength -= rpt;
++        }
++      }
++    }
++  }
++
++  return {
++    codes:
++      USE_TYPEDARRAY ? result.subarray(0, nResult) : result.slice(0, nResult),
++    freqs: freqs
++  };
++};
++
++/**
++ * ハフマン符号の長さを取得する
++ * @param {!(Array.<number>|Uint32Array)} freqs 出現カウント.
++ * @param {number} limit 符号長の制限.
++ * @return {!(Array.<number>|Uint8Array)} 符号長配列.
++ * @private
++ */
++Zlib.RawDeflate.prototype.getLengths_ = function(freqs, limit) {
++  /** @type {number} */
++  var nSymbols = freqs.length;
++  /** @type {Zlib.Heap} */
++  var heap = new Zlib.Heap(2 * Zlib.RawDeflate.HUFMAX);
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var length = new (USE_TYPEDARRAY ? Uint8Array : Array)(nSymbols);
++  /** @type {Array} */
++  var nodes;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var values;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var codeLength;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++  /** @type {Array.<number>} */
++  var freqsZero = [];
++
++  // 配列の初期化
++  if (!USE_TYPEDARRAY) {
++    for (i = 0; i < nSymbols; i++) {
++      length[i] = 0;
++    }
++  }
++
++  // ヒープの構築
++  for (i = 0; i < nSymbols; ++i) {
++    if (freqs[i] > 0) {
++      heap.push(i, freqs[i]);
++    }
++  }
++  nodes = new Array(heap.length / 2);
++  values = new (USE_TYPEDARRAY ? Uint32Array : Array)(heap.length / 2);
++
++  // 非 0 の要素が一つだけだった場合は、そのシンボルに符号長 1 を割り当てて終了
++  if (nodes.length === 1) {
++    length[heap.pop().index] = 1;
++    return length;
++  }
++
++  // Reverse Package Merge Algorithm による Canonical Huffman Code の符号長決定
++  for (i = 0, il = heap.length / 2; i < il; ++i) {
++    nodes[i] = heap.pop();
++    values[i] = nodes[i].value;
++  }
++  codeLength = this.reversePackageMerge_(values, values.length, limit);
++
++  for (i = 0, il = nodes.length; i < il; ++i) {
++    length[nodes[i].index] = codeLength[i];
++  }
++
++  return length;
++};
++
++/**
++ * Reverse Package Merge Algorithm.
++ * @param {!(Array.<number>|Uint32Array)} freqs sorted probability.
++ * @param {number} symbols number of symbols.
++ * @param {number} limit code length limit.
++ * @return {!(Array.<number>|Uint8Array)} code lengths.
++ */
++Zlib.RawDeflate.prototype.reversePackageMerge_ = function(freqs, symbols, limit) {
++  /** @type {!(Array.<number>|Uint16Array)} */
++  var minimumCost = new (USE_TYPEDARRAY ? Uint16Array : Array)(limit);
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var flag = new (USE_TYPEDARRAY ? Uint8Array : Array)(limit);
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var codeLength = new (USE_TYPEDARRAY ? Uint8Array : Array)(symbols);
++  /** @type {Array} */
++  var value = new Array(limit);
++  /** @type {Array} */
++  var type  = new Array(limit);
++  /** @type {Array.<number>} */
++  var currentPosition = new Array(limit);
++  /** @type {number} */
++  var excess = (1 << limit) - symbols;
++  /** @type {number} */
++  var half = (1 << (limit - 1));
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var j;
++  /** @type {number} */
++  var t;
++  /** @type {number} */
++  var weight;
++  /** @type {number} */
++  var next;
++
++  /**
++   * @param {number} j
++   */
++  function takePackage(j) {
++    /** @type {number} */
++    var x = type[j][currentPosition[j]];
++
++    if (x === symbols) {
++      takePackage(j+1);
++      takePackage(j+1);
++    } else {
++      --codeLength[x];
++    }
++
++    ++currentPosition[j];
++  }
++
++  minimumCost[limit-1] = symbols;
++
++  for (j = 0; j < limit; ++j) {
++    if (excess < half) {
++      flag[j] = 0;
++    } else {
++      flag[j] = 1;
++      excess -= half;
++    }
++    excess <<= 1;
++    minimumCost[limit-2-j] = (minimumCost[limit-1-j] / 2 | 0) + symbols;
++  }
++  minimumCost[0] = flag[0];
++
++  value[0] = new Array(minimumCost[0]);
++  type[0]  = new Array(minimumCost[0]);
++  for (j = 1; j < limit; ++j) {
++    if (minimumCost[j] > 2 * minimumCost[j-1] + flag[j]) {
++      minimumCost[j] = 2 * minimumCost[j-1] + flag[j];
++    }
++    value[j] = new Array(minimumCost[j]);
++    type[j]  = new Array(minimumCost[j]);
++  }
++
++  for (i = 0; i < symbols; ++i) {
++    codeLength[i] = limit;
++  }
++
++  for (t = 0; t < minimumCost[limit-1]; ++t) {
++    value[limit-1][t] = freqs[t];
++    type[limit-1][t]  = t;
++  }
++
++  for (i = 0; i < limit; ++i) {
++    currentPosition[i] = 0;
++  }
++  if (flag[limit-1] === 1) {
++    --codeLength[0];
++    ++currentPosition[limit-1];
++  }
++
++  for (j = limit-2; j >= 0; --j) {
++    i = 0;
++    weight = 0;
++    next = currentPosition[j+1];
++
++    for (t = 0; t < minimumCost[j]; t++) {
++      weight = value[j+1][next] + value[j+1][next+1];
++
++      if (weight > freqs[i]) {
++        value[j][t] = weight;
++        type[j][t] = symbols;
++        next += 2;
++      } else {
++        value[j][t] = freqs[i];
++        type[j][t] = i;
++        ++i;
++      }
++    }
++
++    currentPosition[j] = 0;
++    if (flag[j] === 1) {
++      takePackage(j);
++    }
++  }
++
++  return codeLength;
++};
++
++/**
++ * 符号長配列からハフマン符号を取得する
++ * reference: PuTTY Deflate implementation
++ * @param {!(Array.<number>|Uint8Array)} lengths 符号長配列.
++ * @return {!(Array.<number>|Uint16Array)} ハフマン符号配列.
++ * @private
++ */
++Zlib.RawDeflate.prototype.getCodesFromLengths_ = function(lengths) {
++  var codes = new (USE_TYPEDARRAY ? Uint16Array : Array)(lengths.length),
++      count = [],
++      startCode = [],
++      code = 0, i, il, j, m;
++
++  // Count the codes of each length.
++  for (i = 0, il = lengths.length; i < il; i++) {
++    count[lengths[i]] = (count[lengths[i]] | 0) + 1;
++  }
++
++  // Determine the starting code for each length block.
++  for (i = 1, il = Zlib.RawDeflate.MaxCodeLength; i <= il; i++) {
++    startCode[i] = code;
++    code += count[i] | 0;
++    code <<= 1;
++  }
++
++  // Determine the code for each symbol. Mirrored, of course.
++  for (i = 0, il = lengths.length; i < il; i++) {
++    code = startCode[lengths[i]];
++    startCode[lengths[i]] += 1;
++    codes[i] = 0;
++
++    for (j = 0, m = lengths[i]; j < m; j++) {
++      codes[i] = (codes[i] << 1) | (code & 1);
++      code >>>= 1;
++    }
++  }
++
++  return codes;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..07cb6a5eb634612281cc35da9d6690a8ad0a1cf6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,861 @@@
++goog.provide('Zlib.RawInflate');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.Huffman');
++
++//-----------------------------------------------------------------------------
++
++/** @define {number} buffer block size. */
++var ZLIB_RAW_INFLATE_BUFFER_SIZE = 0x8000; // [ 0x8000 >= ZLIB_BUFFER_BLOCK_SIZE ]
++
++//-----------------------------------------------------------------------------
++
++goog.scope(function() {
++
++var buildHuffmanTable = Zlib.Huffman.buildHuffmanTable;
++
++/**
++ * @constructor
++ * @param {!(Uint8Array|Array.<number>)} input input buffer.
++ * @param {Object} opt_params option parameter.
++ *
++ * opt_params は以下のプロパティを指定する事ができます。
++ *   - index: input buffer の deflate コンテナの開始位置.
++ *   - blockSize: バッファのブロックサイズ.
++ *   - bufferType: Zlib.RawInflate.BufferType の値によってバッファの管理方法を指定する.
++ *   - resize: 確保したバッファが実際の大きさより大きかった場合に切り詰める.
++ */
++Zlib.RawInflate = function(input, opt_params) {
++  /** @type {!(Array.<number>|Uint8Array)} inflated buffer */
++  this.buffer;
++  /** @type {!Array.<(Array.<number>|Uint8Array)>} */
++  this.blocks = [];
++  /** @type {number} block size. */
++  this.bufferSize = ZLIB_RAW_INFLATE_BUFFER_SIZE;
++  /** @type {!number} total output buffer pointer. */
++  this.totalpos = 0;
++  /** @type {!number} input buffer pointer. */
++  this.ip = 0;
++  /** @type {!number} bit stream reader buffer. */
++  this.bitsbuf = 0;
++  /** @type {!number} bit stream reader buffer size. */
++  this.bitsbuflen = 0;
++  /** @type {!(Array.<number>|Uint8Array)} input buffer. */
++  this.input = USE_TYPEDARRAY ? new Uint8Array(input) : input;
++  /** @type {!(Uint8Array|Array.<number>)} output buffer. */
++  this.output;
++  /** @type {!number} output buffer pointer. */
++  this.op;
++  /** @type {boolean} is final block flag. */
++  this.bfinal = false;
++  /** @type {Zlib.RawInflate.BufferType} buffer management. */
++  this.bufferType = Zlib.RawInflate.BufferType.ADAPTIVE;
++  /** @type {boolean} resize flag for memory size optimization. */
++  this.resize = false;
++
++  // option parameters
++  if (opt_params || !(opt_params = {})) {
++    if (opt_params['index']) {
++      this.ip = opt_params['index'];
++    }
++    if (opt_params['bufferSize']) {
++      this.bufferSize = opt_params['bufferSize'];
++    }
++    if (opt_params['bufferType']) {
++      this.bufferType = opt_params['bufferType'];
++    }
++    if (opt_params['resize']) {
++      this.resize = opt_params['resize'];
++    }
++  }
++
++  // initialize
++  switch (this.bufferType) {
++    case Zlib.RawInflate.BufferType.BLOCK:
++      this.op = Zlib.RawInflate.MaxBackwardLength;
++      this.output =
++        new (USE_TYPEDARRAY ? Uint8Array : Array)(
++          Zlib.RawInflate.MaxBackwardLength +
++          this.bufferSize +
++          Zlib.RawInflate.MaxCopyLength
++        );
++      break;
++    case Zlib.RawInflate.BufferType.ADAPTIVE:
++      this.op = 0;
++      this.output = new (USE_TYPEDARRAY ? Uint8Array : Array)(this.bufferSize);
++      this.expandBuffer = this.expandBufferAdaptive;
++      this.concatBuffer = this.concatBufferDynamic;
++      this.decodeHuffman = this.decodeHuffmanAdaptive;
++      break;
++    default:
++      throw new Error('invalid inflate mode');
++  }
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.RawInflate.BufferType = {
++  BLOCK: 0,
++  ADAPTIVE: 1
++};
++
++/**
++ * decompress.
++ * @return {!(Uint8Array|Array.<number>)} inflated buffer.
++ */
++Zlib.RawInflate.prototype.decompress = function() {
++  while (!this.bfinal) {
++    this.parseBlock();
++  }
++
++  return this.concatBuffer();
++};
++
++/**
++ * @const
++ * @type {number} max backward length for LZ77.
++ */
++Zlib.RawInflate.MaxBackwardLength = 32768;
++
++/**
++ * @const
++ * @type {number} max copy length for LZ77.
++ */
++Zlib.RawInflate.MaxCopyLength = 258;
++
++/**
++ * huffman order
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflate.Order = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
++
++/**
++ * huffman length code table.
++ * @const
++ * @type {!(Array.<number>|Uint16Array)}
++ */
++Zlib.RawInflate.LengthCodeTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([
++  0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b,
++  0x000d, 0x000f, 0x0011, 0x0013, 0x0017, 0x001b, 0x001f, 0x0023, 0x002b,
++  0x0033, 0x003b, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083, 0x00a3, 0x00c3,
++  0x00e3, 0x0102, 0x0102, 0x0102
++]);
++
++/**
++ * huffman length extra-bits table.
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflate.LengthExtraTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint8Array(table) : table;
++})([
++  0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5,
++  5, 5, 0, 0, 0
++]);
++
++/**
++ * huffman dist code table.
++ * @const
++ * @type {!(Array.<number>|Uint16Array)}
++ */
++Zlib.RawInflate.DistCodeTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([
++  0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0009, 0x000d, 0x0011,
++  0x0019, 0x0021, 0x0031, 0x0041, 0x0061, 0x0081, 0x00c1, 0x0101, 0x0181,
++  0x0201, 0x0301, 0x0401, 0x0601, 0x0801, 0x0c01, 0x1001, 0x1801, 0x2001,
++  0x3001, 0x4001, 0x6001
++]);
++
++/**
++ * huffman dist extra-bits table.
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflate.DistExtraTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint8Array(table) : table;
++})([
++  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11,
++  11, 12, 12, 13, 13
++]);
++
++/**
++ * fixed huffman length code table
++ * @const
++ * @type {!Array}
++ */
++Zlib.RawInflate.FixedLiteralLengthTable = (function(table) {
++  return table;
++})((function() {
++  var lengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(288);
++  var i, il;
++
++  for (i = 0, il = lengths.length; i < il; ++i) {
++    lengths[i] =
++      (i <= 143) ? 8 :
++      (i <= 255) ? 9 :
++      (i <= 279) ? 7 :
++      8;
++  }
++
++  return buildHuffmanTable(lengths);
++})());
++
++/**
++ * fixed huffman distance code table
++ * @const
++ * @type {!Array}
++ */
++Zlib.RawInflate.FixedDistanceTable = (function(table) {
++  return table;
++})((function() {
++  var lengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(30);
++  var i, il;
++
++  for (i = 0, il = lengths.length; i < il; ++i) {
++    lengths[i] = 5;
++  }
++
++  return buildHuffmanTable(lengths);
++})());
++
++/**
++ * parse deflated block.
++ */
++Zlib.RawInflate.prototype.parseBlock = function() {
++  /** @type {number} header */
++  var hdr = this.readBits(3);
++
++  // BFINAL
++  if (hdr & 0x1) {
++    this.bfinal = true;
++  }
++
++  // BTYPE
++  hdr >>>= 1;
++  switch (hdr) {
++    // uncompressed
++    case 0:
++      this.parseUncompressedBlock();
++      break;
++    // fixed huffman
++    case 1:
++      this.parseFixedHuffmanBlock();
++      break;
++    // dynamic huffman
++    case 2:
++      this.parseDynamicHuffmanBlock();
++      break;
++    // reserved or other
++    default:
++      throw new Error('unknown BTYPE: ' + hdr);
++  }
++};
++
++/**
++ * read inflate bits
++ * @param {number} length bits length.
++ * @return {number} read bits.
++ */
++Zlib.RawInflate.prototype.readBits = function(length) {
++  var bitsbuf = this.bitsbuf;
++  var bitsbuflen = this.bitsbuflen;
++  var input = this.input;
++  var ip = this.ip;
++
++  /** @type {number} input and output byte. */
++  var octet;
++
++  // not enough buffer
++  while (bitsbuflen < length) {
++    // input byte
++    octet = input[ip++];
++    if (octet === void 0) {
++      throw new Error('input buffer is broken');
++    }
++
++    // concat octet
++    bitsbuf |= octet << bitsbuflen;
++    bitsbuflen += 8;
++  }
++
++  // output byte
++  octet = bitsbuf & /* MASK */ ((1 << length) - 1);
++  bitsbuf >>>= length;
++  bitsbuflen -= length;
++
++  this.bitsbuf = bitsbuf;
++  this.bitsbuflen = bitsbuflen;
++  this.ip = ip;
++
++  return octet;
++};
++
++/**
++ * read huffman code using table
++ * @param {Array} table huffman code table.
++ * @return {number} huffman code.
++ */
++Zlib.RawInflate.prototype.readCodeByTable = function(table) {
++  var bitsbuf = this.bitsbuf;
++  var bitsbuflen = this.bitsbuflen;
++  var input = this.input;
++  var ip = this.ip;
++
++  /** @type {!(Array.<number>|Uint8Array)} huffman code table */
++  var codeTable = table[0];
++  /** @type {number} */
++  var maxCodeLength = table[1];
++  /** @type {number} input byte */
++  var octet;
++  /** @type {number} code length & code (16bit, 16bit) */
++  var codeWithLength;
++  /** @type {number} code bits length */
++  var codeLength;
++
++  // not enough buffer
++  while (bitsbuflen < maxCodeLength) {
++    octet = input[ip++];
++    if (octet === void 0) {
++      break;
++    }
++    bitsbuf |= octet << bitsbuflen;
++    bitsbuflen += 8;
++  }
++
++  // read max length
++  codeWithLength = codeTable[bitsbuf & ((1 << maxCodeLength) - 1)];
++  codeLength = codeWithLength >>> 16;
++
++  this.bitsbuf = bitsbuf >> codeLength;
++  this.bitsbuflen = bitsbuflen - codeLength;
++  this.ip = ip;
++
++  return codeWithLength & 0xffff;
++};
++
++/**
++ * parse uncompressed block.
++ */
++Zlib.RawInflate.prototype.parseUncompressedBlock = function() {
++  var input = this.input;
++  var ip = this.ip;
++  var output = this.output;
++  var op = this.op;
++
++  /** @type {number} input byte. */
++  var octet;
++  /** @type {number} block length */
++  var len;
++  /** @type {number} number for check block length */
++  var nlen;
++  /** @type {number} output buffer length */
++  var olength = output.length;
++  /** @type {number} copy counter */
++  var preCopy;
++
++  // skip buffered header bits
++  this.bitsbuf = 0;
++  this.bitsbuflen = 0;
++
++  // len (1st)
++  octet = input[ip++];
++  if (octet === void 0) {
++    throw new Error('invalid uncompressed block header: LEN (first byte)');
++  }
++  len = octet;
++
++  // len (2nd)
++  octet = input[ip++];
++  if (octet === void 0) {
++    throw new Error('invalid uncompressed block header: LEN (second byte)');
++  }
++  len |= octet << 8;
++
++  // nlen (1st)
++  octet = input[ip++];
++  if (octet === void 0) {
++    throw new Error('invalid uncompressed block header: NLEN (first byte)');
++  }
++  nlen = octet;
++
++  // nlen (2nd)
++  octet = input[ip++];
++  if (octet === void 0) {
++    throw new Error('invalid uncompressed block header: NLEN (second byte)');
++  }
++  nlen |= octet << 8;
++
++  // check len & nlen
++  if (len === ~nlen) {
++    throw new Error('invalid uncompressed block header: length verify');
++  }
++
++  // check size
++  if (ip + len > input.length) { throw new Error('input buffer is broken'); }
++
++  // expand buffer
++  switch (this.bufferType) {
++    case Zlib.RawInflate.BufferType.BLOCK:
++      // pre copy
++      while (op + len > output.length) {
++        preCopy = olength - op;
++        len -= preCopy;
++        if (USE_TYPEDARRAY) {
++          output.set(input.subarray(ip, ip + preCopy), op);
++          op += preCopy;
++          ip += preCopy;
++        } else {
++          while (preCopy--) {
++            output[op++] = input[ip++];
++          }
++        }
++        this.op = op;
++        output = this.expandBuffer();
++        op = this.op;
++      }
++      break;
++    case Zlib.RawInflate.BufferType.ADAPTIVE:
++      while (op + len > output.length) {
++        output = this.expandBuffer({fixRatio: 2});
++      }
++      break;
++    default:
++      throw new Error('invalid inflate mode');
++  }
++
++  // copy
++  if (USE_TYPEDARRAY) {
++    output.set(input.subarray(ip, ip + len), op);
++    op += len;
++    ip += len;
++  } else {
++    while (len--) {
++      output[op++] = input[ip++];
++    }
++  }
++
++  this.ip = ip;
++  this.op = op;
++  this.output = output;
++};
++
++/**
++ * parse fixed huffman block.
++ */
++Zlib.RawInflate.prototype.parseFixedHuffmanBlock = function() {
++  this.decodeHuffman(
++    Zlib.RawInflate.FixedLiteralLengthTable,
++    Zlib.RawInflate.FixedDistanceTable
++  );
++};
++
++/**
++ * parse dynamic huffman block.
++ */
++Zlib.RawInflate.prototype.parseDynamicHuffmanBlock = function() {
++  /** @type {number} number of literal and length codes. */
++  var hlit = this.readBits(5) + 257;
++  /** @type {number} number of distance codes. */
++  var hdist = this.readBits(5) + 1;
++  /** @type {number} number of code lengths. */
++  var hclen = this.readBits(4) + 4;
++  /** @type {!(Uint8Array|Array.<number>)} code lengths. */
++  var codeLengths =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(Zlib.RawInflate.Order.length);
++  /** @type {!Array} code lengths table. */
++  var codeLengthsTable;
++  /** @type {!(Uint8Array|Array.<number>)} literal and length code lengths. */
++  var litlenLengths;
++  /** @type {!(Uint8Array|Array.<number>)} distance code lengths. */
++  var distLengths;
++  /** @type {number} loop counter. */
++  var i;
++
++  // decode code lengths
++  for (i = 0; i < hclen; ++i) {
++    codeLengths[Zlib.RawInflate.Order[i]] = this.readBits(3);
++  }
++  codeLengthsTable = buildHuffmanTable(codeLengths);
++
++  /**
++   * decode function
++   * @param {number} num number of lengths.
++   * @param {!Array} table code lengths table.
++   * @param {!(Uint8Array|Array.<number>)} lengths code lengths buffer.
++   * @return {!(Uint8Array|Array.<number>)} code lengths buffer.
++   */
++  function decode(num, table, lengths) {
++    /** @type {number} */
++    var code;
++    /** @type {number} */
++    var prev;
++    /** @type {number} */
++    var repeat;
++    /** @type {number} */
++    var i;
++
++    for (i = 0; i < num;) {
++      code = this.readCodeByTable(table);
++      switch (code) {
++        case 16:
++          repeat = 3 + this.readBits(2);
++          while (repeat--) { lengths[i++] = prev; }
++          break;
++        case 17:
++          repeat = 3 + this.readBits(3);
++          while (repeat--) { lengths[i++] = 0; }
++          prev = 0;
++          break;
++        case 18:
++          repeat = 11 + this.readBits(7);
++          while (repeat--) { lengths[i++] = 0; }
++          prev = 0;
++          break;
++        default:
++          lengths[i++] = code;
++          prev = code;
++          break;
++      }
++    }
++
++    return lengths;
++  }
++
++  // literal and length code
++  litlenLengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(hlit);
++
++  // distance code
++  distLengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(hdist);
++
++  //return;
++  this.decodeHuffman(
++    buildHuffmanTable(decode.call(this, hlit, codeLengthsTable, litlenLengths)),
++    buildHuffmanTable(decode.call(this, hdist, codeLengthsTable, distLengths))
++  );
++};
++
++/**
++ * decode huffman code
++ * @param {!Array} litlen literal and length code table.
++ * @param {!Array} dist distination code table.
++ */
++Zlib.RawInflate.prototype.decodeHuffman = function(litlen, dist) {
++  var output = this.output;
++  var op = this.op;
++
++  this.currentLitlenTable = litlen;
++
++  /** @type {number} output position limit. */
++  var olength = output.length - Zlib.RawInflate.MaxCopyLength;
++  /** @type {number} huffman code. */
++  var code;
++  /** @type {number} table index. */
++  var ti;
++  /** @type {number} huffman code distination. */
++  var codeDist;
++  /** @type {number} huffman code length. */
++  var codeLength;
++
++  while ((code = this.readCodeByTable(litlen)) !== 256) {
++    // literal
++    if (code < 256) {
++      if (op >= olength) {
++        this.op = op;
++        output = this.expandBuffer();
++        op = this.op;
++      }
++      output[op++] = code;
++
++      continue;
++    }
++
++    // length code
++    ti = code - 257;
++    codeLength = Zlib.RawInflate.LengthCodeTable[ti];
++    if (Zlib.RawInflate.LengthExtraTable[ti] > 0) {
++      codeLength += this.readBits(Zlib.RawInflate.LengthExtraTable[ti]);
++    }
++
++    // dist code
++    code = this.readCodeByTable(dist);
++    codeDist = Zlib.RawInflate.DistCodeTable[code];
++    if (Zlib.RawInflate.DistExtraTable[code] > 0) {
++      codeDist += this.readBits(Zlib.RawInflate.DistExtraTable[code]);
++    }
++
++    // lz77 decode
++    if (op >= olength) {
++      this.op = op;
++      output = this.expandBuffer();
++      op = this.op;
++    }
++    while (codeLength--) {
++      output[op] = output[(op++) - codeDist];
++    }
++  }
++
++  while (this.bitsbuflen >= 8) {
++    this.bitsbuflen -= 8;
++    this.ip--;
++  }
++  this.op = op;
++};
++
++/**
++ * decode huffman code (adaptive)
++ * @param {!Array} litlen literal and length code table.
++ * @param {!Array} dist distination code table.
++ */
++Zlib.RawInflate.prototype.decodeHuffmanAdaptive = function(litlen, dist) {
++  var output = this.output;
++  var op = this.op;
++
++  this.currentLitlenTable = litlen;
++
++  /** @type {number} output position limit. */
++  var olength = output.length;
++  /** @type {number} huffman code. */
++  var code;
++  /** @type {number} table index. */
++  var ti;
++  /** @type {number} huffman code distination. */
++  var codeDist;
++  /** @type {number} huffman code length. */
++  var codeLength;
++
++  while ((code = this.readCodeByTable(litlen)) !== 256) {
++    // literal
++    if (code < 256) {
++      if (op >= olength) {
++        output = this.expandBuffer();
++        olength = output.length;
++      }
++      output[op++] = code;
++
++      continue;
++    }
++
++    // length code
++    ti = code - 257;
++    codeLength = Zlib.RawInflate.LengthCodeTable[ti];
++    if (Zlib.RawInflate.LengthExtraTable[ti] > 0) {
++      codeLength += this.readBits(Zlib.RawInflate.LengthExtraTable[ti]);
++    }
++
++    // dist code
++    code = this.readCodeByTable(dist);
++    codeDist = Zlib.RawInflate.DistCodeTable[code];
++    if (Zlib.RawInflate.DistExtraTable[code] > 0) {
++      codeDist += this.readBits(Zlib.RawInflate.DistExtraTable[code]);
++    }
++
++    // lz77 decode
++    if (op + codeLength > olength) {
++      output = this.expandBuffer();
++      olength = output.length;
++    }
++    while (codeLength--) {
++      output[op] = output[(op++) - codeDist];
++    }
++  }
++
++  while (this.bitsbuflen >= 8) {
++    this.bitsbuflen -= 8;
++    this.ip--;
++  }
++  this.op = op;
++};
++
++/**
++ * expand output buffer.
++ * @param {Object=} opt_param option parameters.
++ * @return {!(Array.<number>|Uint8Array)} output buffer.
++ */
++Zlib.RawInflate.prototype.expandBuffer = function(opt_param) {
++  /** @type {!(Array.<number>|Uint8Array)} store buffer. */
++  var buffer =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(
++        this.op - Zlib.RawInflate.MaxBackwardLength
++    );
++  /** @type {number} backward base point */
++  var backward = this.op - Zlib.RawInflate.MaxBackwardLength;
++  /** @type {number} copy index. */
++  var i;
++  /** @type {number} copy limit */
++  var il;
++
++  var output = this.output;
++
++  // copy to output buffer
++  if (USE_TYPEDARRAY) {
++    buffer.set(output.subarray(Zlib.RawInflate.MaxBackwardLength, buffer.length));
++  } else {
++    for (i = 0, il = buffer.length; i < il; ++i) {
++      buffer[i] = output[i + Zlib.RawInflate.MaxBackwardLength];
++    }
++  }
++
++  this.blocks.push(buffer);
++  this.totalpos += buffer.length;
++
++  // copy to backward buffer
++  if (USE_TYPEDARRAY) {
++    output.set(
++      output.subarray(backward, backward + Zlib.RawInflate.MaxBackwardLength)
++    );
++  } else {
++    for (i = 0; i < Zlib.RawInflate.MaxBackwardLength; ++i) {
++      output[i] = output[backward + i];
++    }
++  }
++
++  this.op = Zlib.RawInflate.MaxBackwardLength;
++
++  return output;
++};
++
++/**
++ * expand output buffer. (adaptive)
++ * @param {Object=} opt_param option parameters.
++ * @return {!(Array.<number>|Uint8Array)} output buffer pointer.
++ */
++Zlib.RawInflate.prototype.expandBufferAdaptive = function(opt_param) {
++  /** @type {!(Array.<number>|Uint8Array)} store buffer. */
++  var buffer;
++  /** @type {number} expantion ratio. */
++  var ratio = (this.input.length / this.ip + 1) | 0;
++  /** @type {number} maximum number of huffman code. */
++  var maxHuffCode;
++  /** @type {number} new output buffer size. */
++  var newSize;
++  /** @type {number} max inflate size. */
++  var maxInflateSize;
++
++  var input = this.input;
++  var output = this.output;
++
++  if (opt_param) {
++    if (typeof opt_param.fixRatio === 'number') {
++      ratio = opt_param.fixRatio;
++    }
++    if (typeof opt_param.addRatio === 'number') {
++      ratio += opt_param.addRatio;
++    }
++  }
++
++  // calculate new buffer size
++  if (ratio < 2) {
++    maxHuffCode =
++      (input.length - this.ip) / this.currentLitlenTable[2];
++    maxInflateSize = (maxHuffCode / 2 * 258) | 0;
++    newSize = maxInflateSize < output.length ?
++      output.length + maxInflateSize :
++      output.length << 1;
++  } else {
++    newSize = output.length * ratio;
++  }
++
++  // buffer expantion
++  if (USE_TYPEDARRAY) {
++    buffer = new Uint8Array(newSize);
++    buffer.set(output);
++  } else {
++    buffer = output;
++  }
++
++  this.output = buffer;
++
++  return this.output;
++};
++
++/**
++ * concat output buffer.
++ * @return {!(Array.<number>|Uint8Array)} output buffer.
++ */
++Zlib.RawInflate.prototype.concatBuffer = function() {
++  /** @type {number} buffer pointer. */
++  var pos = 0;
++  /** @type {number} buffer pointer. */
++  var limit = this.totalpos + (this.op - Zlib.RawInflate.MaxBackwardLength);
++  /** @type {!(Array.<number>|Uint8Array)} output block array. */
++  var output = this.output;
++  /** @type {!Array} blocks array. */
++  var blocks = this.blocks;
++  /** @type {!(Array.<number>|Uint8Array)} output block array. */
++  var block;
++  /** @type {!(Array.<number>|Uint8Array)} output buffer. */
++  var buffer = new (USE_TYPEDARRAY ? Uint8Array : Array)(limit);
++  /** @type {number} loop counter. */
++  var i;
++  /** @type {number} loop limiter. */
++  var il;
++  /** @type {number} loop counter. */
++  var j;
++  /** @type {number} loop limiter. */
++  var jl;
++
++  // single buffer
++  if (blocks.length === 0) {
++    return USE_TYPEDARRAY ?
++      this.output.subarray(Zlib.RawInflate.MaxBackwardLength, this.op) :
++      this.output.slice(Zlib.RawInflate.MaxBackwardLength, this.op);
++  }
++
++  // copy to buffer
++  for (i = 0, il = blocks.length; i < il; ++i) {
++    block = blocks[i];
++    for (j = 0, jl = block.length; j < jl; ++j) {
++      buffer[pos++] = block[j];
++    }
++  }
++
++  // current buffer
++  for (i = Zlib.RawInflate.MaxBackwardLength, il = this.op; i < il; ++i) {
++    buffer[pos++] = output[i];
++  }
++
++  this.blocks = [];
++  this.buffer = buffer;
++
++  return this.buffer;
++};
++
++/**
++ * concat output buffer. (dynamic)
++ * @return {!(Array.<number>|Uint8Array)} output buffer.
++ */
++Zlib.RawInflate.prototype.concatBufferDynamic = function() {
++  /** @type {Array.<number>|Uint8Array} output buffer. */
++  var buffer;
++  var op = this.op;
++
++  if (USE_TYPEDARRAY) {
++    if (this.resize) {
++      buffer = new Uint8Array(op);
++      buffer.set(this.output.subarray(0, op));
++    } else {
++      buffer = this.output.subarray(0, op);
++    }
++  } else {
++    if (this.output.length > op) {
++      this.output.length = op;
++    }
++    buffer = this.output;
++  }
++
++  this.buffer = buffer;
++
++  return this.buffer;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a2ec209bc5a0e240bd6bc2040b93733417331192
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,862 @@@
++goog.provide('Zlib.RawInflateStream');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.Huffman');
++
++//-----------------------------------------------------------------------------
++
++/** @define {number} buffer block size. */
++var ZLIB_STREAM_RAW_INFLATE_BUFFER_SIZE = 0x8000;
++
++//-----------------------------------------------------------------------------
++
++goog.scope(function() {
++
++var buildHuffmanTable = Zlib.Huffman.buildHuffmanTable;
++
++/**
++ * @param {!(Uint8Array|Array.<number>)} input input buffer.
++ * @param {number} ip input buffer pointer.
++ * @param {number=} opt_buffersize buffer block size.
++ * @constructor
++ */
++Zlib.RawInflateStream = function(input, ip, opt_buffersize) {
++  /** @type {!(Array|Uint8Array)} inflated buffer */
++  this.buffer;
++  /** @type {!Array.<(Array|Uint8Array)>} */
++  this.blocks = [];
++  /** @type {number} block size. */
++  this.bufferSize =
++    opt_buffersize ? opt_buffersize : ZLIB_STREAM_RAW_INFLATE_BUFFER_SIZE;
++  /** @type {!number} total output buffer pointer. */
++  this.totalpos = 0;
++  /** @type {!number} input buffer pointer. */
++  this.ip = ip === void 0 ? 0 : ip;
++  /** @type {!number} bit stream reader buffer. */
++  this.bitsbuf = 0;
++  /** @type {!number} bit stream reader buffer size. */
++  this.bitsbuflen = 0;
++  /** @type {!(Array|Uint8Array)} input buffer. */
++  this.input = USE_TYPEDARRAY ? new Uint8Array(input) : input;
++  /** @type {!(Uint8Array|Array)} output buffer. */
++  this.output = new (USE_TYPEDARRAY ? Uint8Array : Array)(this.bufferSize);
++  /** @type {!number} output buffer pointer. */
++  this.op = 0;
++  /** @type {boolean} is final block flag. */
++  this.bfinal = false;
++  /** @type {number} uncompressed block length. */
++  this.blockLength;
++  /** @type {boolean} resize flag for memory size optimization. */
++  this.resize = false;
++  /** @type {Array} */
++  this.litlenTable;
++  /** @type {Array} */
++  this.distTable;
++  /** @type {number} */
++  this.sp = 0; // stream pointer
++  /** @type {Zlib.RawInflateStream.Status} */
++  this.status = Zlib.RawInflateStream.Status.INITIALIZED;
++
++  //
++  // backup
++  //
++  /** @type {!number} */
++  this.ip_;
++  /** @type {!number} */
++  this.bitsbuflen_;
++  /** @type {!number} */
++  this.bitsbuf_;
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.RawInflateStream.BlockType = {
++  UNCOMPRESSED: 0,
++  FIXED: 1,
++  DYNAMIC: 2
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.RawInflateStream.Status = {
++  INITIALIZED: 0,
++  BLOCK_HEADER_START: 1,
++  BLOCK_HEADER_END: 2,
++  BLOCK_BODY_START: 3,
++  BLOCK_BODY_END: 4,
++  DECODE_BLOCK_START: 5,
++  DECODE_BLOCK_END: 6
++};
++
++/**
++ * decompress.
++ * @return {!(Uint8Array|Array)} inflated buffer.
++ */
++Zlib.RawInflateStream.prototype.decompress = function(newInput, ip) {
++  /** @type {boolean} */
++  var stop = false;
++
++  if (newInput !== void 0) {
++    this.input = newInput;
++  }
++
++  if (ip !== void 0) {
++    this.ip = ip;
++  }
++
++  // decompress
++  while (!stop) {
++    switch (this.status) {
++      // block header
++      case Zlib.RawInflateStream.Status.INITIALIZED:
++      case Zlib.RawInflateStream.Status.BLOCK_HEADER_START:
++        if (this.readBlockHeader() < 0) {
++          stop = true;
++        }
++        break;
++      // block body
++      case Zlib.RawInflateStream.Status.BLOCK_HEADER_END: /* FALLTHROUGH */
++      case Zlib.RawInflateStream.Status.BLOCK_BODY_START:
++        switch(this.currentBlockType) {
++          case Zlib.RawInflateStream.BlockType.UNCOMPRESSED:
++            if (this.readUncompressedBlockHeader() < 0) {
++              stop = true;
++            }
++            break;
++          case Zlib.RawInflateStream.BlockType.FIXED:
++            if (this.parseFixedHuffmanBlock() < 0) {
++              stop = true;
++            }
++            break;
++          case Zlib.RawInflateStream.BlockType.DYNAMIC:
++            if (this.parseDynamicHuffmanBlock() < 0) {
++              stop = true;
++            }
++            break;
++        }
++        break;
++      // decode data
++      case Zlib.RawInflateStream.Status.BLOCK_BODY_END:
++      case Zlib.RawInflateStream.Status.DECODE_BLOCK_START:
++        switch(this.currentBlockType) {
++          case Zlib.RawInflateStream.BlockType.UNCOMPRESSED:
++            if (this.parseUncompressedBlock() < 0) {
++              stop = true;
++            }
++            break;
++          case Zlib.RawInflateStream.BlockType.FIXED: /* FALLTHROUGH */
++          case Zlib.RawInflateStream.BlockType.DYNAMIC:
++            if (this.decodeHuffman() < 0) {
++              stop = true;
++            }
++            break;
++        }
++        break;
++      case Zlib.RawInflateStream.Status.DECODE_BLOCK_END:
++        if (this.bfinal) {
++          stop = true;
++        } else {
++          this.status = Zlib.RawInflateStream.Status.INITIALIZED;
++        }
++        break;
++    }
++  }
++
++  return this.concatBuffer();
++};
++
++/**
++ * @const
++ * @type {number} max backward length for LZ77.
++ */
++Zlib.RawInflateStream.MaxBackwardLength = 32768;
++
++/**
++ * @const
++ * @type {number} max copy length for LZ77.
++ */
++Zlib.RawInflateStream.MaxCopyLength = 258;
++
++/**
++ * huffman order
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflateStream.Order = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
++
++/**
++ * huffman length code table.
++ * @const
++ * @type {!(Array.<number>|Uint16Array)}
++ */
++Zlib.RawInflateStream.LengthCodeTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([
++  0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b,
++  0x000d, 0x000f, 0x0011, 0x0013, 0x0017, 0x001b, 0x001f, 0x0023, 0x002b,
++  0x0033, 0x003b, 0x0043, 0x0053, 0x0063, 0x0073, 0x0083, 0x00a3, 0x00c3,
++  0x00e3, 0x0102, 0x0102, 0x0102
++]);
++
++/**
++ * huffman length extra-bits table.
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflateStream.LengthExtraTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint8Array(table) : table;
++})([
++  0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5,
++  5, 5, 0, 0, 0
++]);
++
++/**
++ * huffman dist code table.
++ * @const
++ * @type {!(Array.<number>|Uint16Array)}
++ */
++Zlib.RawInflateStream.DistCodeTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint16Array(table) : table;
++})([
++  0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0009, 0x000d, 0x0011,
++  0x0019, 0x0021, 0x0031, 0x0041, 0x0061, 0x0081, 0x00c1, 0x0101, 0x0181,
++  0x0201, 0x0301, 0x0401, 0x0601, 0x0801, 0x0c01, 0x1001, 0x1801, 0x2001,
++  0x3001, 0x4001, 0x6001
++]);
++
++/**
++ * huffman dist extra-bits table.
++ * @const
++ * @type {!(Array.<number>|Uint8Array)}
++ */
++Zlib.RawInflateStream.DistExtraTable = (function(table) {
++  return USE_TYPEDARRAY ? new Uint8Array(table) : table;
++})([
++  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11,
++  11, 12, 12, 13, 13
++]);
++
++/**
++ * fixed huffman length code table
++ * @const
++ * @type {!Array}
++ */
++Zlib.RawInflateStream.FixedLiteralLengthTable = (function(table) {
++  return table;
++})((function() {
++  var lengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(288);
++  var i, il;
++
++  for (i = 0, il = lengths.length; i < il; ++i) {
++    lengths[i] =
++      (i <= 143) ? 8 :
++      (i <= 255) ? 9 :
++      (i <= 279) ? 7 :
++      8;
++  }
++
++  return buildHuffmanTable(lengths);
++})());
++
++/**
++ * fixed huffman distance code table
++ * @const
++ * @type {!Array}
++ */
++Zlib.RawInflateStream.FixedDistanceTable = (function(table) {
++  return table;
++})((function() {
++  var lengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(30);
++  var i, il;
++
++  for (i = 0, il = lengths.length; i < il; ++i) {
++    lengths[i] = 5;
++  }
++
++  return buildHuffmanTable(lengths);
++})());
++
++/**
++ * parse deflated block.
++ */
++Zlib.RawInflateStream.prototype.readBlockHeader = function() {
++  /** @type {number} header */
++  var hdr;
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_HEADER_START;
++
++  this.save_();
++  if ((hdr = this.readBits(3)) < 0) {
++    this.restore_();
++    return -1;
++  }
++
++  // BFINAL
++  if (hdr & 0x1) {
++    this.bfinal = true;
++  }
++
++  // BTYPE
++  hdr >>>= 1;
++  switch (hdr) {
++    case 0: // uncompressed
++      this.currentBlockType = Zlib.RawInflateStream.BlockType.UNCOMPRESSED;
++      break;
++    case 1: // fixed huffman
++      this.currentBlockType = Zlib.RawInflateStream.BlockType.FIXED;
++      break;
++    case 2: // dynamic huffman
++      this.currentBlockType = Zlib.RawInflateStream.BlockType.DYNAMIC;
++      break;
++    default: // reserved or other
++      throw new Error('unknown BTYPE: ' + hdr);
++  }
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_HEADER_END;
++};
++
++/**
++ * read inflate bits
++ * @param {number} length bits length.
++ * @return {number} read bits.
++ */
++Zlib.RawInflateStream.prototype.readBits = function(length) {
++  var bitsbuf = this.bitsbuf;
++  var bitsbuflen = this.bitsbuflen;
++  var input = this.input;
++  var ip = this.ip;
++
++  /** @type {number} input and output byte. */
++  var octet;
++
++  // not enough buffer
++  while (bitsbuflen < length) {
++    // input byte
++    octet = input[ip++];
++    if (octet === void 0) {
++      return -1;
++    }
++
++    // concat octet
++    bitsbuf |= octet << bitsbuflen;
++    bitsbuflen += 8;
++  }
++
++  // output byte
++  octet = bitsbuf & /* MASK */ ((1 << length) - 1);
++  bitsbuf >>>= length;
++  bitsbuflen -= length;
++
++  this.bitsbuf = bitsbuf;
++  this.bitsbuflen = bitsbuflen;
++  this.ip = ip;
++
++  return octet;
++};
++
++/**
++ * read huffman code using table
++ * @param {Array} table huffman code table.
++ * @return {number} huffman code.
++ */
++Zlib.RawInflateStream.prototype.readCodeByTable = function(table) {
++  var bitsbuf = this.bitsbuf;
++  var bitsbuflen = this.bitsbuflen;
++  var input = this.input;
++  var ip = this.ip;
++
++  /** @type {!(Array|Uint8Array)} huffman code table */
++  var codeTable = table[0];
++  /** @type {number} */
++  var maxCodeLength = table[1];
++  /** @type {number} input byte */
++  var octet;
++  /** @type {number} code */
++  var code;
++  /** @type {number} code length & code (16bit, 16bit) */
++  var codeWithLength;
++  /** @type {number} code bits length */
++  var codeLength;
++
++  // not enough buffer
++  while (bitsbuflen < maxCodeLength) {
++    octet = input[ip++];
++    if (octet === void 0) {
++      return -1;
++    }
++    bitsbuf |= octet << bitsbuflen;
++    bitsbuflen += 8;
++  }
++
++  // read max length
++  codeWithLength = codeTable[bitsbuf & ((1 << maxCodeLength) - 1)];
++  codeLength = codeWithLength >>> 16;
++
++  this.bitsbuf = bitsbuf >> codeLength;
++  this.bitsbuflen = bitsbuflen - codeLength;
++  this.ip = ip;
++
++  return codeWithLength & 0xffff;
++};
++
++/**
++ * read uncompressed block header
++ */
++Zlib.RawInflateStream.prototype.readUncompressedBlockHeader = function() {
++  /** @type {number} input byte. */
++  var octet;
++  /** @type {number} block length */
++  var len;
++  /** @type {number} number for check block length */
++  var nlen;
++
++  var input = this.input;
++  var ip = this.ip;
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_START;
++
++  // len (1st)
++  octet = input[ip++];
++  if (octet === void 0) {
++    return -1;
++  }
++  len = octet;
++
++  // len (2nd)
++  octet = input[ip++];
++  if (octet === void 0) {
++    return -1;
++  }
++  len |= octet << 8;
++
++  // nlen (1st)
++  octet = input[ip++];
++  if (octet === void 0) {
++    return -1;
++  }
++  nlen = octet;
++
++  // nlen (2nd)
++  octet = input[ip++];
++  if (octet === void 0) {
++    return -1;
++  }
++  nlen |= octet << 8;
++
++  // check len & nlen
++  if (len === ~nlen) {
++    throw new Error('invalid uncompressed block header: length verify');
++  }
++
++  // skip buffered header bits
++  this.bitsbuf = 0;
++  this.bitsbuflen = 0;
++
++  this.ip = ip;
++  this.blockLength = len;
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_END;
++}
++
++/**
++ * parse uncompressed block.
++ */
++Zlib.RawInflateStream.prototype.parseUncompressedBlock = function() {
++  var input = this.input;
++  var ip = this.ip;
++  var output = this.output;
++  var op = this.op;
++  var len = this.blockLength;
++
++  this.status = Zlib.RawInflateStream.Status.DECODE_BLOCK_START;
++
++  // copy
++  // XXX: とりあえず素直にコピー
++  while (len--) {
++    if (op === output.length) {
++      output = this.expandBuffer();
++    }
++
++    // not enough input buffer
++    if (input[ip] === void 0) {
++      this.ip = ip;
++      this.op = op;
++      this.blockLength = len + 1; // コピーしてないので戻す
++      return -1;
++    }
++
++    output[op++] = input[ip++];
++  }
++
++  if (len < 0) {
++    this.status = Zlib.RawInflateStream.Status.DECODE_BLOCK_END;
++  }
++
++  this.ip = ip;
++  this.op = op;
++
++  return 0;
++};
++
++/**
++ * parse fixed huffman block.
++ */
++Zlib.RawInflateStream.prototype.parseFixedHuffmanBlock = function() {
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_START;
++
++  this.litlenTable = Zlib.RawInflateStream.FixedLiteralLengthTable;
++  this.distTable = Zlib.RawInflateStream.FixedDistanceTable;
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_END;
++
++  return 0;
++};
++
++/**
++ * オブジェクトのコンテキストを別のプロパティに退避する.
++ * @private
++ */
++Zlib.RawInflateStream.prototype.save_ = function() {
++  this.ip_ = this.ip;
++  this.bitsbuflen_ = this.bitsbuflen;
++  this.bitsbuf_ = this.bitsbuf;
++};
++
++/**
++ * 別のプロパティに退避したコンテキストを復元する.
++ * @private
++ */
++Zlib.RawInflateStream.prototype.restore_ = function() {
++  this.ip = this.ip_;
++  this.bitsbuflen = this.bitsbuflen_;
++  this.bitsbuf = this.bitsbuf_;
++};
++
++/**
++ * parse dynamic huffman block.
++ */
++Zlib.RawInflateStream.prototype.parseDynamicHuffmanBlock = function() {
++  /** @type {number} number of literal and length codes. */
++  var hlit;
++  /** @type {number} number of distance codes. */
++  var hdist;
++  /** @type {number} number of code lengths. */
++  var hclen;
++  /** @type {!(Uint8Array|Array)} code lengths. */
++  var codeLengths =
++    new (USE_TYPEDARRAY ? Uint8Array : Array)(Zlib.RawInflateStream.Order.length);
++  /** @type {!Array} code lengths table. */
++  var codeLengthsTable;
++  /** @type {!(Uint32Array|Array)} literal and length code lengths. */
++  var litlenLengths;
++  /** @type {!(Uint32Array|Array)} distance code lengths. */
++  var distLengths;
++  /** @type {number} loop counter. */
++  var i = 0;
++  /** @type {number} loop counter. */
++  var j = 0;
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_START;
++
++  this.save_();
++  hlit = this.readBits(5) + 257;
++  hdist = this.readBits(5) + 1;
++  hclen = this.readBits(4) + 4;
++  if (hlit < 0 || hdist < 0 || hclen < 0) {
++    this.restore_();
++    return -1;
++  }
++
++  try {
++    parseDynamicHuffmanBlockImpl.call(this);
++  } catch(e) {
++    this.restore_();
++    return -1;
++  }
++
++  function parseDynamicHuffmanBlockImpl() {
++    /** @type {number} */
++    var bits;
++
++    // decode code lengths
++    for (i = 0; i < hclen; ++i) {
++      if ((bits = this.readBits(3)) < 0) {
++        throw new Error('not enough input');
++      }
++      codeLengths[Zlib.RawInflateStream.Order[i]] = bits;
++    }
++    codeLengthsTable = buildHuffmanTable(codeLengths);
++
++    // decode function
++    function decode(num, table, lengths) {
++      var code;
++      var prev;
++      var repeat;
++      var i = 0;
++      var bits;
++
++      for (i = 0; i < num;) {
++        code = this.readCodeByTable(table);
++        if (code < 0) {
++          throw new Error('not enough input');
++        }
++        switch (code) {
++          case 16:
++            if ((bits = this.readBits(2)) < 0) {
++              throw new Error('not enough input');
++            };
++            repeat = 3 + bits;
++            while (repeat--) { lengths[i++] = prev; }
++            break;
++          case 17:
++            if ((bits = this.readBits(3)) < 0) {
++              throw new Error('not enough input');
++            };
++            repeat = 3 + bits;
++            while (repeat--) { lengths[i++] = 0; }
++            prev = 0;
++            break;
++          case 18:
++            if ((bits = this.readBits(7)) < 0) {
++              throw new Error('not enough input');
++            };
++            repeat = 11 + bits;
++            while (repeat--) { lengths[i++] = 0; }
++            prev = 0;
++            break;
++          default:
++            lengths[i++] = code;
++            prev = code;
++            break;
++        }
++      }
++
++      return lengths;
++    }
++
++    // literal and length code
++    litlenLengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(hlit);
++
++    // distance code
++    distLengths = new (USE_TYPEDARRAY ? Uint8Array : Array)(hdist);
++
++    this.litlenTable = buildHuffmanTable(decode.call(this, hlit, codeLengthsTable, litlenLengths));
++    this.distTable = buildHuffmanTable(decode.call(this, hdist, codeLengthsTable, distLengths));
++  }
++
++  this.status = Zlib.RawInflateStream.Status.BLOCK_BODY_END;
++
++  return 0;
++};
++
++/**
++ * decode huffman code (dynamic)
++ * @return {(number|undefined)} -1 is error.
++ */
++Zlib.RawInflateStream.prototype.decodeHuffman = function() {
++  var output = this.output;
++  var op = this.op;
++
++  /** @type {number} huffman code. */
++  var code;
++  /** @type {number} table index. */
++  var ti;
++  /** @type {number} huffman code distination. */
++  var codeDist;
++  /** @type {number} huffman code length. */
++  var codeLength;
++  /** @type {number} buffer position. */
++  var bpos;
++  /** @type {number} pre-copy counter. */
++  var preCopy;
++
++  var litlen = this.litlenTable;
++  var dist = this.distTable;
++
++  var olength = output.length;
++  var bits;
++
++  this.status = Zlib.RawInflateStream.Status.DECODE_BLOCK_START;
++
++  while (true) {
++    this.save_();
++
++    code = this.readCodeByTable(litlen);
++    if (code < 0) {
++      this.op = op;
++      this.restore_();
++      return -1;
++    }
++
++    if (code === 256) {
++      break;
++    }
++
++    // literal
++    if (code < 256) {
++      if (op === olength) {
++        output = this.expandBuffer();
++        olength = output.length;
++      }
++      output[op++] = code;
++
++      continue;
++    }
++
++    // length code
++    ti = code - 257;
++    codeLength = Zlib.RawInflateStream.LengthCodeTable[ti];
++    if (Zlib.RawInflateStream.LengthExtraTable[ti] > 0) {
++      bits = this.readBits(Zlib.RawInflateStream.LengthExtraTable[ti]);
++      if (bits < 0) {
++        this.op = op;
++        this.restore_();
++        return -1;
++      }
++      codeLength += bits;
++    }
++
++    // dist code
++    code = this.readCodeByTable(dist);
++    if (code < 0) {
++      this.op = op;
++      this.restore_();
++      return -1;
++    }
++    codeDist = Zlib.RawInflateStream.DistCodeTable[code];
++    if (Zlib.RawInflateStream.DistExtraTable[code] > 0) {
++      bits = this.readBits(Zlib.RawInflateStream.DistExtraTable[code]);
++      if (bits < 0) {
++        this.op = op;
++        this.restore_();
++        return -1;
++      }
++      codeDist += bits;
++    }
++
++    // lz77 decode
++    if (op + codeLength >= olength) {
++      output = this.expandBuffer();
++      olength = output.length;
++    }
++
++    while (codeLength--) {
++      output[op] = output[(op++) - codeDist];
++    }
++
++    // break
++    if (this.ip === this.input.length) {
++      this.op = op;
++      return -1;
++    }
++  }
++
++  while (this.bitsbuflen >= 8) {
++    this.bitsbuflen -= 8;
++    this.ip--;
++  }
++
++  this.op = op;
++  this.status = Zlib.RawInflateStream.Status.DECODE_BLOCK_END;
++};
++
++/**
++ * expand output buffer. (dynamic)
++ * @param {Object=} opt_param option parameters.
++ * @return {!(Array|Uint8Array)} output buffer pointer.
++ */
++Zlib.RawInflateStream.prototype.expandBuffer = function(opt_param) {
++  /** @type {!(Array|Uint8Array)} store buffer. */
++  var buffer;
++  /** @type {number} expantion ratio. */
++  var ratio = (this.input.length / this.ip + 1) | 0;
++  /** @type {number} maximum number of huffman code. */
++  var maxHuffCode;
++  /** @type {number} new output buffer size. */
++  var newSize;
++  /** @type {number} max inflate size. */
++  var maxInflateSize;
++
++  var input = this.input;
++  var output = this.output;
++
++  if (opt_param) {
++    if (typeof opt_param.fixRatio === 'number') {
++      ratio = opt_param.fixRatio;
++    }
++    if (typeof opt_param.addRatio === 'number') {
++      ratio += opt_param.addRatio;
++    }
++  }
++
++  // calculate new buffer size
++  if (ratio < 2) {
++    maxHuffCode =
++      (input.length - this.ip) / this.litlenTable[2];
++    maxInflateSize = (maxHuffCode / 2 * 258) | 0;
++    newSize = maxInflateSize < output.length ?
++      output.length + maxInflateSize :
++      output.length << 1;
++  } else {
++    newSize = output.length * ratio;
++  }
++
++  // buffer expantion
++  if (USE_TYPEDARRAY) {
++    buffer = new Uint8Array(newSize);
++    buffer.set(output);
++  } else {
++    buffer = output;
++  }
++
++  this.output = buffer;
++
++  return this.output;
++};
++
++/**
++ * concat output buffer. (dynamic)
++ * @return {!(Array|Uint8Array)} output buffer.
++ */
++Zlib.RawInflateStream.prototype.concatBuffer = function() {
++  /** @type {!(Array|Uint8Array)} output buffer. */
++  var buffer;
++
++  var resize = this.resize;
++
++  var op = this.op;
++
++  if (resize) {
++    if (USE_TYPEDARRAY) {
++      buffer = new Uint8Array(op);
++      buffer.set(this.output.subarray(this.sp, op));
++    } else {
++      buffer = this.output.slice(this.sp, op);
++    }
++  } else {
++    buffer =
++      USE_TYPEDARRAY ? this.output.subarray(this.sp, op) : this.output.slice(this.sp, op);
++  }
++
++
++  this.buffer = buffer;
++  this.sp = op;
++
++  return this.buffer;
++};
++
++/**
++ * @return {!(Array|Uint8Array)} current output buffer.
++ */
++Zlib.RawInflateStream.prototype.getBytes = function() {
++  return USE_TYPEDARRAY ?
++    this.output.subarray(0, this.op) : this.output.slice(0, this.op);
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6edad85a08e1cb37b3c695b968b1bb84b8d3a2d9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,565 @@@
++goog.provide('Zlib.Unzip');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.RawInflate');
++goog.require('Zlib.CRC32');
++goog.require('Zlib.Zip');
++
++goog.scope(function() {
++
++/**
++ * @param {!(Array.<number>|Uint8Array)} input input buffer.
++ * @param {Object=} opt_params options.
++ * @constructor
++ */
++Zlib.Unzip = function(input, opt_params) {
++  opt_params = opt_params || {};
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.input =
++    (USE_TYPEDARRAY && (input instanceof Array)) ?
++    new Uint8Array(input) : input;
++  /** @type {number} */
++  this.ip = 0;
++  /** @type {number} */
++  this.eocdrOffset;
++  /** @type {number} */
++  this.numberOfThisDisk;
++  /** @type {number} */
++  this.startDisk;
++  /** @type {number} */
++  this.totalEntriesThisDisk;
++  /** @type {number} */
++  this.totalEntries;
++  /** @type {number} */
++  this.centralDirectorySize;
++  /** @type {number} */
++  this.centralDirectoryOffset;
++  /** @type {number} */
++  this.commentLength;
++  /** @type {(Array.<number>|Uint8Array)} */
++  this.comment;
++  /** @type {Array.<Zlib.Unzip.FileHeader>} */
++  this.fileHeaderList;
++  /** @type {Object.<string, number>} */
++  this.filenameToIndex;
++  /** @type {boolean} */
++  this.verify = opt_params['verify'] || false;
++  /** @type {(Array.<number>|Uint8Array)} */
++  this.password = opt_params['password'];
++};
++
++Zlib.Unzip.CompressionMethod = Zlib.Zip.CompressionMethod;
++
++/**
++ * @param {!(Array.<number>|Uint8Array)} input input buffer.
++ * @param {number} ip input position.
++ * @constructor
++ */
++Zlib.Unzip.FileHeader = function(input, ip) {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.input = input;
++  /** @type {number} */
++  this.offset = ip;
++  /** @type {number} */
++  this.length;
++  /** @type {number} */
++  this.version;
++  /** @type {number} */
++  this.os;
++  /** @type {number} */
++  this.needVersion;
++  /** @type {number} */
++  this.flags;
++  /** @type {number} */
++  this.compression;
++  /** @type {number} */
++  this.time;
++  /** @type {number} */
++  this.date;
++  /** @type {number} */
++  this.crc32;
++  /** @type {number} */
++  this.compressedSize;
++  /** @type {number} */
++  this.plainSize;
++  /** @type {number} */
++  this.fileNameLength;
++  /** @type {number} */
++  this.extraFieldLength;
++  /** @type {number} */
++  this.fileCommentLength;
++  /** @type {number} */
++  this.diskNumberStart;
++  /** @type {number} */
++  this.internalFileAttributes;
++  /** @type {number} */
++  this.externalFileAttributes;
++  /** @type {number} */
++  this.relativeOffset;
++  /** @type {string} */
++  this.filename;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.extraField;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.comment;
++};
++
++Zlib.Unzip.FileHeader.prototype.parse = function() {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var input = this.input;
++  /** @type {number} */
++  var ip = this.offset;
++
++  // central file header signature
++  if (input[ip++] !== 0x50 || input[ip++] !== 0x4b ||
++      input[ip++] !== 0x01 || input[ip++] !== 0x02) {
++    throw new Error('invalid file header signature');
++  }
++
++  // version made by
++  this.version = input[ip++];
++  this.os = input[ip++];
++
++  // version needed to extract
++  this.needVersion = input[ip++] | (input[ip++] << 8);
++
++  // general purpose bit flag
++  this.flags = input[ip++] | (input[ip++] << 8);
++
++  // compression method
++  this.compression = input[ip++] | (input[ip++] << 8);
++
++  // last mod file time
++  this.time = input[ip++] | (input[ip++] << 8);
++
++  //last mod file date
++  this.date = input[ip++] | (input[ip++] << 8);
++
++  // crc-32
++  this.crc32 = (
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24)
++  ) >>> 0;
++
++  // compressed size
++  this.compressedSize =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // uncompressed size
++  this.plainSize =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // file name length
++  this.fileNameLength = input[ip++] | (input[ip++] << 8);
++
++  // extra field length
++  this.extraFieldLength = input[ip++] | (input[ip++] << 8);
++
++  // file comment length
++  this.fileCommentLength = input[ip++] | (input[ip++] << 8);
++
++  // disk number start
++  this.diskNumberStart = input[ip++] | (input[ip++] << 8);
++
++  // internal file attributes
++  this.internalFileAttributes = input[ip++] | (input[ip++] << 8);
++
++  // external file attributes
++  this.externalFileAttributes =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // relative offset of local header
++  this.relativeOffset =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // file name
++  this.filename = String.fromCharCode.apply(null, USE_TYPEDARRAY ?
++    input.subarray(ip, ip += this.fileNameLength) :
++    input.slice(ip, ip += this.fileNameLength)
++  );
++
++  // extra field
++  this.extraField = USE_TYPEDARRAY ?
++    input.subarray(ip, ip += this.extraFieldLength) :
++    input.slice(ip, ip += this.extraFieldLength);
++
++  // file comment
++  this.comment = USE_TYPEDARRAY ?
++    input.subarray(ip, ip + this.fileCommentLength) :
++    input.slice(ip, ip + this.fileCommentLength);
++
++  this.length = ip - this.offset;
++};
++
++/**
++ * @param {!(Array.<number>|Uint8Array)} input input buffer.
++ * @param {number} ip input position.
++ * @constructor
++ */
++Zlib.Unzip.LocalFileHeader = function(input, ip) {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.input = input;
++  /** @type {number} */
++  this.offset = ip;
++  /** @type {number} */
++  this.length;
++  /** @type {number} */
++  this.needVersion;
++  /** @type {number} */
++  this.flags;
++  /** @type {number} */
++  this.compression;
++  /** @type {number} */
++  this.time;
++  /** @type {number} */
++  this.date;
++  /** @type {number} */
++  this.crc32;
++  /** @type {number} */
++  this.compressedSize;
++  /** @type {number} */
++  this.plainSize;
++  /** @type {number} */
++  this.fileNameLength;
++  /** @type {number} */
++  this.extraFieldLength;
++  /** @type {string} */
++  this.filename;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  this.extraField;
++};
++
++Zlib.Unzip.LocalFileHeader.Flags = Zlib.Zip.Flags;
++
++Zlib.Unzip.LocalFileHeader.prototype.parse = function() {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var input = this.input;
++  /** @type {number} */
++  var ip = this.offset;
++
++  // local file header signature
++  if (input[ip++] !== 0x50 || input[ip++] !== 0x4b ||
++      input[ip++] !== 0x03 || input[ip++] !== 0x04) {
++    throw new Error('invalid local file header signature');
++  }
++
++  // version needed to extract
++  this.needVersion = input[ip++] | (input[ip++] << 8);
++
++  // general purpose bit flag
++  this.flags = input[ip++] | (input[ip++] << 8);
++
++  // compression method
++  this.compression = input[ip++] | (input[ip++] << 8);
++
++  // last mod file time
++  this.time = input[ip++] | (input[ip++] << 8);
++
++  //last mod file date
++  this.date = input[ip++] | (input[ip++] << 8);
++
++  // crc-32
++  this.crc32 = (
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24)
++  ) >>> 0;
++
++  // compressed size
++  this.compressedSize =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // uncompressed size
++  this.plainSize =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // file name length
++  this.fileNameLength = input[ip++] | (input[ip++] << 8);
++
++  // extra field length
++  this.extraFieldLength = input[ip++] | (input[ip++] << 8);
++
++  // file name
++  this.filename = String.fromCharCode.apply(null, USE_TYPEDARRAY ?
++    input.subarray(ip, ip += this.fileNameLength) :
++    input.slice(ip, ip += this.fileNameLength)
++  );
++
++  // extra field
++  this.extraField = USE_TYPEDARRAY ?
++    input.subarray(ip, ip += this.extraFieldLength) :
++    input.slice(ip, ip += this.extraFieldLength);
++
++  this.length = ip - this.offset;
++};
++
++
++Zlib.Unzip.prototype.searchEndOfCentralDirectoryRecord = function() {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var input = this.input;
++  /** @type {number} */
++  var ip;
++
++  for (ip = input.length - 12; ip > 0; --ip) {
++    if (input[ip  ] === 0x50 && input[ip+1] === 0x4b &&
++        input[ip+2] === 0x05 && input[ip+3] === 0x06) {
++      this.eocdrOffset = ip;
++      return;
++    }
++  }
++
++  throw new Error('End of Central Directory Record not found');
++};
++
++Zlib.Unzip.prototype.parseEndOfCentralDirectoryRecord = function() {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var input = this.input;
++  /** @type {number} */
++  var ip;
++
++  if (!this.eocdrOffset) {
++    this.searchEndOfCentralDirectoryRecord();
++  }
++  ip = this.eocdrOffset;
++
++  // signature
++  if (input[ip++] !== 0x50 || input[ip++] !== 0x4b ||
++      input[ip++] !== 0x05 || input[ip++] !== 0x06) {
++    throw new Error('invalid signature');
++  }
++
++  // number of this disk
++  this.numberOfThisDisk = input[ip++] | (input[ip++] << 8);
++
++  // number of the disk with the start of the central directory
++  this.startDisk = input[ip++] | (input[ip++] << 8);
++
++  // total number of entries in the central directory on this disk
++  this.totalEntriesThisDisk = input[ip++] | (input[ip++] << 8);
++
++  // total number of entries in the central directory
++  this.totalEntries = input[ip++] | (input[ip++] << 8);
++
++  // size of the central directory
++  this.centralDirectorySize =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // offset of start of central directory with respect to the starting disk number
++  this.centralDirectoryOffset =
++    (input[ip++]      ) | (input[ip++] <<  8) |
++    (input[ip++] << 16) | (input[ip++] << 24);
++
++  // .ZIP file comment length
++  this.commentLength = input[ip++] | (input[ip++] << 8);
++
++  // .ZIP file comment
++  this.comment = USE_TYPEDARRAY ?
++    input.subarray(ip, ip + this.commentLength) :
++    input.slice(ip, ip + this.commentLength);
++};
++
++Zlib.Unzip.prototype.parseFileHeader = function() {
++  /** @type {Array.<Zlib.Unzip.FileHeader>} */
++  var filelist = [];
++  /** @type {Object.<string, number>} */
++  var filetable = {};
++  /** @type {number} */
++  var ip;
++  /** @type {Zlib.Unzip.FileHeader} */
++  var fileHeader;
++  /*: @type {number} */
++  var i;
++  /*: @type {number} */
++  var il;
++
++  if (this.fileHeaderList) {
++    return;
++  }
++
++  if (this.centralDirectoryOffset === void 0) {
++    this.parseEndOfCentralDirectoryRecord();
++  }
++  ip = this.centralDirectoryOffset;
++
++  for (i = 0, il = this.totalEntries; i < il; ++i) {
++    fileHeader = new Zlib.Unzip.FileHeader(this.input, ip);
++    fileHeader.parse();
++    ip += fileHeader.length;
++    filelist[i] = fileHeader;
++    filetable[fileHeader.filename] = i;
++  }
++
++  if (this.centralDirectorySize < ip - this.centralDirectoryOffset) {
++    throw new Error('invalid file header size');
++  }
++
++  this.fileHeaderList = filelist;
++  this.filenameToIndex = filetable;
++};
++
++/**
++ * @param {number} index file header index.
++ * @return {!(Array.<number>|Uint8Array)} file data.
++ */
++Zlib.Unzip.prototype.getFileData = function(index) {
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var input = this.input;
++  /** @type {Array.<Zlib.Unzip.FileHeader>} */
++  var fileHeaderList = this.fileHeaderList;
++  /** @type {Zlib.Unzip.LocalFileHeader} */
++  var localFileHeader;
++  /** @type {number} */
++  var offset;
++  /** @type {number} */
++  var length;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var buffer;
++  /** @type {number} */
++  var crc32;
++  /** @type {Array.<number>|Uint32Array} */
++  var key;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  if (!fileHeaderList) {
++    this.parseFileHeader();
++  }
++
++  if (fileHeaderList[index] === void 0) {
++    throw new Error('wrong index');
++  }
++
++  offset = fileHeaderList[index].relativeOffset;
++  localFileHeader = new Zlib.Unzip.LocalFileHeader(this.input, offset);
++  localFileHeader.parse();
++  offset += localFileHeader.length;
++  length = localFileHeader.compressedSize;
++
++  // decryption
++  if ((localFileHeader.flags & Zlib.Unzip.LocalFileHeader.Flags.ENCRYPT) !== 0) {
++    if (!this.password) {
++      throw new Error('please set password');
++    }
++    key =  this.createDecryptionKey(this.password);
++
++    // encryption header
++    for(i = offset, il = offset + 12; i < il; ++i) {
++      this.decode(key, input[i]);
++    }
++    offset += 12;
++    length -= 12;
++
++    // decryption
++    for (i = offset, il = offset + length; i < il; ++i) {
++      input[i] = this.decode(key, input[i]);
++    }
++  }
++
++  switch (localFileHeader.compression) {
++    case Zlib.Unzip.CompressionMethod.STORE:
++      buffer = USE_TYPEDARRAY ?
++        this.input.subarray(offset, offset + length) :
++        this.input.slice(offset, offset + length);
++      break;
++    case Zlib.Unzip.CompressionMethod.DEFLATE:
++      buffer = new Zlib.RawInflate(this.input, {
++        'index': offset,
++        'bufferSize': localFileHeader.plainSize
++      }).decompress();
++      break;
++    default:
++      throw new Error('unknown compression type');
++  }
++
++  if (this.verify) {
++    crc32 = Zlib.CRC32.calc(buffer);
++    if (localFileHeader.crc32 !== crc32) {
++      throw new Error(
++        'wrong crc: file=0x' + localFileHeader.crc32.toString(16) +
++        ', data=0x' + crc32.toString(16)
++      );
++    }
++  }
++
++  return buffer;
++};
++
++/**
++ * @return {Array.<string>}
++ */
++Zlib.Unzip.prototype.getFilenames = function() {
++  /** @type {Array.<string>} */
++  var filenameList = [];
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++  /** @type {Array.<Zlib.Unzip.FileHeader>} */
++  var fileHeaderList;
++
++  if (!this.fileHeaderList) {
++    this.parseFileHeader();
++  }
++  fileHeaderList = this.fileHeaderList;
++
++  for (i = 0, il = fileHeaderList.length; i < il; ++i) {
++    filenameList[i] = fileHeaderList[i].filename;
++  }
++
++  return filenameList;
++};
++
++/**
++ * @param {string} filename extract filename.
++ * @return {!(Array.<number>|Uint8Array)} decompressed data.
++ */
++Zlib.Unzip.prototype.decompress = function(filename) {
++  /** @type {number} */
++  var index;
++
++  if (!this.filenameToIndex) {
++    this.parseFileHeader();
++  }
++  index = this.filenameToIndex[filename];
++
++  if (index === void 0) {
++    throw new Error(filename + ' not found');
++  }
++
++  return this.getFileData(index);
++};
++
++/**
++ * @param {(Array.<number>|Uint8Array)} password
++ */
++Zlib.Unzip.prototype.setPassword = function(password) {
++  this.password = password;
++};
++
++/**
++ * @param {(Array.<number>|Uint32Array)} key
++ * @param {number} n
++ * @returns {number}
++ */
++Zlib.Unzip.prototype.decode = function(key, n) {
++  n ^= this.getByte(key);
++  this.updateKeys(key, n);
++
++  return n;
++};
++
++// common method
++Zlib.Unzip.prototype.updateKeys = Zlib.Zip.prototype.updateKeys;
++Zlib.Unzip.prototype.createDecryptionKey = Zlib.Zip.prototype.createEncryptionKey;
++Zlib.Unzip.prototype.getByte = Zlib.Zip.prototype.getByte;
++
++// end of scope
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fb0670ed309abfeb712da4e1713022644a3963f1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,31 @@@
++/**
++ * @fileoverview 雑多な関数群をまとめたモジュール実装.
++ */
++goog.provide('Zlib.Util');
++
++goog.scope(function() {
++
++/**
++ * Byte String から Byte Array に変換.
++ * @param {!string} str byte string.
++ * @return {!Array.<number>} byte array.
++ */
++Zlib.Util.stringToByteArray = function(str) {
++  /** @type {!Array.<(string|number)>} */
++  var tmp = str.split('');
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  for (i = 0, il = tmp.length; i < il; i++) {
++    tmp[i] = (tmp[i].charCodeAt(0) & 0xff) >>> 0;
++  }
++
++  return tmp;
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8a94260a1ef6cbeb794ad7de7b52ebbf96668bf8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,571 @@@
++goog.provide('Zlib.Zip');
++
++goog.require('USE_TYPEDARRAY');
++goog.require('Zlib.RawDeflate');
++goog.require('Zlib.CRC32');
++
++goog.scope(function() {
++
++/**
++ * @param {Object=} opt_params options.
++ * @constructor
++ */
++Zlib.Zip = function(opt_params) {
++  opt_params = opt_params || {};
++  /** @type {Array.<{
++   *   buffer: !(Array.<number>|Uint8Array),
++   *   option: Object,
++   *   compressed: boolean,
++   *   encrypted: boolean,
++   *   size: number,
++   *   crc32: number
++   * }>} */
++  this.files = [];
++  /** @type {(Array.<number>|Uint8Array)} */
++  this.comment = opt_params['comment'];
++  /** @type {(Array.<number>|Uint8Array)} */
++  this.password;
++};
++
++
++/**
++ * @enum {number}
++ */
++Zlib.Zip.CompressionMethod = {
++  STORE: 0,
++  DEFLATE: 8
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.Zip.OperatingSystem = {
++  MSDOS: 0,
++  UNIX: 3,
++  MACINTOSH: 7
++};
++
++/**
++ * @enum {number}
++ */
++Zlib.Zip.Flags = {
++  ENCRYPT:    0x0001,
++  DESCRIPTER: 0x0008,
++  UTF8:       0x0800
++};
++
++/**
++ * @param {Array.<number>|Uint8Array} input
++ * @param {Object=} opt_params options.
++ */
++Zlib.Zip.prototype.addFile = function(input, opt_params) {
++  opt_params = opt_params || {};
++  /** @type {string} */
++  var filename = '' || opt_params['filename'];
++  /** @type {boolean} */
++  var compressed;
++  /** @type {number} */
++  var size = input.length;
++  /** @type {number} */
++  var crc32 = 0;
++
++  if (USE_TYPEDARRAY && input instanceof Array) {
++    input = new Uint8Array(input);
++  }
++
++  // default
++  if (typeof opt_params['compressionMethod'] !== 'number') {
++    opt_params['compressionMethod'] = Zlib.Zip.CompressionMethod.DEFLATE;
++  }
++
++  // その場で圧縮する場合
++  if (opt_params['compress']) {
++    switch (opt_params['compressionMethod']) {
++      case Zlib.Zip.CompressionMethod.STORE:
++        break;
++      case Zlib.Zip.CompressionMethod.DEFLATE:
++        crc32 = Zlib.CRC32.calc(input);
++        input = this.deflateWithOption(input, opt_params);
++        compressed = true;
++        break;
++      default:
++        throw new Error('unknown compression method:' + opt_params['compressionMethod']);
++    }
++  }
++
++  this.files.push({
++    buffer: input,
++    option: opt_params,
++    compressed: compressed,
++    encrypted: false,
++    size: size,
++    crc32: crc32
++  });
++};
++
++/**
++ * @param {(Array.<number>|Uint8Array)} password
++ */
++Zlib.Zip.prototype.setPassword = function(password) {
++  this.password = password;
++};
++
++Zlib.Zip.prototype.compress = function() {
++  /** @type {Array.<{
++   *   buffer: !(Array.<number>|Uint8Array),
++   *   option: Object,
++   *   compressed: boolean,
++   *   encrypted: boolean,
++   *   size: number,
++   *   crc32: number
++   * }>} */
++  var files = this.files;
++  /** @type {{
++   *   buffer: !(Array.<number>|Uint8Array),
++   *   option: Object,
++   *   compressed: boolean,
++   *   encrypted: boolean,
++   *   size: number,
++   *   crc32: number
++   * }} */
++  var file;
++  /** @type {!(Array.<number>|Uint8Array)} */
++  var output;
++  /** @type {number} */
++  var op1;
++  /** @type {number} */
++  var op2;
++  /** @type {number} */
++  var op3;
++  /** @type {number} */
++  var localFileSize = 0;
++  /** @type {number} */
++  var centralDirectorySize = 0;
++  /** @type {number} */
++  var endOfCentralDirectorySize;
++  /** @type {number} */
++  var offset;
++  /** @type {number} */
++  var needVersion;
++  /** @type {number} */
++  var flags;
++  /** @type {Zlib.Zip.CompressionMethod} */
++  var compressionMethod;
++  /** @type {Date} */
++  var date;
++  /** @type {number} */
++  var crc32;
++  /** @type {number} */
++  var size;
++  /** @type {number} */
++  var plainSize;
++  /** @type {number} */
++  var filenameLength;
++  /** @type {number} */
++  var extraFieldLength;
++  /** @type {number} */
++  var commentLength;
++  /** @type {(Array.<number>|Uint8Array)} */
++  var filename;
++  /** @type {(Array.<number>|Uint8Array)} */
++  var extraField;
++  /** @type {(Array.<number>|Uint8Array)} */
++  var comment;
++  /** @type {(Array.<number>|Uint8Array)} */
++  var buffer;
++  /** @type {*} */
++  var tmp;
++  /** @type {Array.<number>|Uint32Array} */
++  var key;
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++  /** @type {number} */
++  var j;
++  /** @type {number} */
++  var jl;
++
++  // ファイルの圧縮
++  for (i = 0, il = files.length; i < il; ++i) {
++    file = files[i];
++    filenameLength =
++      (file.option['filename']) ? file.option['filename'].length : 0;
++    extraFieldLength =
++      (file.option['extraField']) ? file.option['extraField'].length : 0;
++    commentLength =
++      (file.option['comment']) ? file.option['comment'].length : 0;
++
++    // 圧縮されていなかったら圧縮
++    if (!file.compressed) {
++      // 圧縮前に CRC32 の計算をしておく
++      file.crc32 = Zlib.CRC32.calc(file.buffer);
++
++      switch (file.option['compressionMethod']) {
++        case Zlib.Zip.CompressionMethod.STORE:
++          break;
++        case Zlib.Zip.CompressionMethod.DEFLATE:
++          file.buffer = this.deflateWithOption(file.buffer, file.option);
++          file.compressed = true;
++          break;
++        default:
++          throw new Error('unknown compression method:' + file.option['compressionMethod']);
++      }
++    }
++
++    // encryption
++    if (this.password !== void 0) {
++      // init encryption
++      key = this.createEncryptionKey(this.password);
++
++      // add header
++      buffer = file.buffer;
++      if (USE_TYPEDARRAY) {
++        tmp = new Uint8Array(buffer.length + 12);
++        tmp.set(buffer, 12);
++        buffer = tmp;
++      } else {
++        buffer.unshift(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
++      }
++
++      for (j = 0; j < 12; ++j) {
++        buffer[j] = this.encode(
++          key,
++          i === 11 ? (file.crc32 & 0xff) : (Math.random() * 256 | 0)
++        );
++      }
++
++      // data encryption
++      for (jl = buffer.length; j < jl; ++j) {
++        buffer[j] = this.encode(key, buffer[j]);
++      }
++      file.buffer = buffer;
++    }
++
++    // 必要バッファサイズの計算
++    localFileSize +=
++      // local file header
++      30 + filenameLength +
++      // file data
++      file.buffer.length;
++
++    centralDirectorySize +=
++      // file header
++      46 + filenameLength + commentLength;
++  }
++
++  // end of central directory
++  endOfCentralDirectorySize = 46 + (this.comment ? this.comment.length : 0);
++  output = new (USE_TYPEDARRAY ? Uint8Array : Array)(
++    localFileSize + centralDirectorySize + endOfCentralDirectorySize
++  );
++  op1 = 0;
++  op2 = localFileSize;
++  op3 = op2 + centralDirectorySize;
++
++  // ファイルの圧縮
++  for (i = 0, il = files.length; i < il; ++i) {
++    file = files[i];
++    filenameLength =
++      file.option['filename'] ? file.option['filename'].length :  0;
++    extraFieldLength = 0; // TODO
++    commentLength =
++      file.option['comment'] ? file.option['comment'].length : 0;
++
++    //-------------------------------------------------------------------------
++    // local file header & file header
++    //-------------------------------------------------------------------------
++
++    offset = op1;
++
++    // signature
++    output[op1++] = output[op2++] = 0x50;
++    output[op1++] = output[op2++] = 0x4b;
++    output[op1++] = 0x03; // local file header
++    output[op1++] = 0x04;
++    output[op2++] = 0x01; // file header
++    output[op2++] = 0x02;
++
++    // compressor info
++    needVersion = 20;
++    output[op2++] = needVersion & 0xff;
++    output[op2++] =
++      /** @type {Zlib.Zip.OperatingSystem} */
++      (file.option['os']) ||
++      Zlib.Zip.OperatingSystem.MSDOS;
++
++    // need version
++    output[op1++] = output[op2++] =  needVersion       & 0xff;
++    output[op1++] = output[op2++] = (needVersion >> 8) & 0xff;
++
++    // general purpose bit flag
++    flags = 0;
++    if (this.password) {
++      flags |= Zlib.Zip.Flags.ENCRYPT;
++    }
++    output[op1++] = output[op2++] =  flags       & 0xff;
++    output[op1++] = output[op2++] = (flags >> 8) & 0xff;
++
++    // compression method
++    compressionMethod =
++      /** @type {Zlib.Zip.CompressionMethod} */
++      (file.option['compressionMethod']);
++    output[op1++] = output[op2++] =  compressionMethod       & 0xff;
++    output[op1++] = output[op2++] = (compressionMethod >> 8) & 0xff;
++
++    // date
++    date = /** @type {(Date|undefined)} */(file.option['date']) || new Date();
++    output[op1++] = output[op2++] =
++      ((date.getMinutes() & 0x7) << 5) |
++      (date.getSeconds() / 2 | 0);
++    output[op1++] = output[op2++] =
++      (date.getHours()   << 3) |
++      (date.getMinutes() >> 3);
++    //
++    output[op1++] = output[op2++] =
++      ((date.getMonth() + 1 & 0x7) << 5) |
++      (date.getDate());
++    output[op1++] = output[op2++] =
++      ((date.getFullYear() - 1980 & 0x7f) << 1) |
++      (date.getMonth() + 1 >> 3);
++
++    // CRC-32
++    crc32 = file.crc32;
++    output[op1++] = output[op2++] =  crc32        & 0xff;
++    output[op1++] = output[op2++] = (crc32 >>  8) & 0xff;
++    output[op1++] = output[op2++] = (crc32 >> 16) & 0xff;
++    output[op1++] = output[op2++] = (crc32 >> 24) & 0xff;
++
++    // compressed size
++    size = file.buffer.length;
++    output[op1++] = output[op2++] =  size        & 0xff;
++    output[op1++] = output[op2++] = (size >>  8) & 0xff;
++    output[op1++] = output[op2++] = (size >> 16) & 0xff;
++    output[op1++] = output[op2++] = (size >> 24) & 0xff;
++
++    // uncompressed size
++    plainSize = file.size;
++    output[op1++] = output[op2++] =  plainSize        & 0xff;
++    output[op1++] = output[op2++] = (plainSize >>  8) & 0xff;
++    output[op1++] = output[op2++] = (plainSize >> 16) & 0xff;
++    output[op1++] = output[op2++] = (plainSize >> 24) & 0xff;
++
++    // filename length
++    output[op1++] = output[op2++] =  filenameLength       & 0xff;
++    output[op1++] = output[op2++] = (filenameLength >> 8) & 0xff;
++
++    // extra field length
++    output[op1++] = output[op2++] =  extraFieldLength       & 0xff;
++    output[op1++] = output[op2++] = (extraFieldLength >> 8) & 0xff;
++
++    // file comment length
++    output[op2++] =  commentLength       & 0xff;
++    output[op2++] = (commentLength >> 8) & 0xff;
++
++    // disk number start
++    output[op2++] = 0;
++    output[op2++] = 0;
++
++    // internal file attributes
++    output[op2++] = 0;
++    output[op2++] = 0;
++
++    // external file attributes
++    output[op2++] = 0;
++    output[op2++] = 0;
++    output[op2++] = 0;
++    output[op2++] = 0;
++
++    // relative offset of local header
++    output[op2++] =  offset        & 0xff;
++    output[op2++] = (offset >>  8) & 0xff;
++    output[op2++] = (offset >> 16) & 0xff;
++    output[op2++] = (offset >> 24) & 0xff;
++
++    // filename
++    filename = file.option['filename'];
++    if (filename) {
++      if (USE_TYPEDARRAY) {
++        output.set(filename, op1);
++        output.set(filename, op2);
++        op1 += filenameLength;
++        op2 += filenameLength;
++      } else {
++        for (j = 0; j < filenameLength; ++j) {
++          output[op1++] = output[op2++] = filename[j];
++        }
++      }
++    }
++
++    // extra field
++    extraField = file.option['extraField'];
++    if (extraField) {
++      if (USE_TYPEDARRAY) {
++        output.set(extraField, op1);
++        output.set(extraField, op2);
++        op1 += extraFieldLength;
++        op2 += extraFieldLength;
++      } else {
++        for (j = 0; j < commentLength; ++j) {
++          output[op1++] = output[op2++] = extraField[j];
++        }
++      }
++    }
++
++    // comment
++    comment = file.option['comment'];
++    if (comment) {
++      if (USE_TYPEDARRAY) {
++        output.set(comment, op2);
++        op2 += commentLength;
++      } else {
++        for (j = 0; j < commentLength; ++j) {
++          output[op2++] = comment[j];
++        }
++      }
++    }
++
++    //-------------------------------------------------------------------------
++    // file data
++    //-------------------------------------------------------------------------
++
++    if (USE_TYPEDARRAY) {
++      output.set(file.buffer, op1);
++      op1 += file.buffer.length;
++    } else {
++      for (j = 0, jl = file.buffer.length; j < jl; ++j) {
++        output[op1++] = file.buffer[j];
++      }
++    }
++  }
++
++  //-------------------------------------------------------------------------
++  // end of central directory
++  //-------------------------------------------------------------------------
++
++  // signature
++  output[op3++] = 0x50;
++  output[op3++] = 0x4b;
++  output[op3++] = 0x05;
++  output[op3++] = 0x06;
++
++  // number of this disk
++  output[op3++] = 0;
++  output[op3++] = 0;
++
++  // number of the disk with the start of the central directory
++  output[op3++] = 0;
++  output[op3++] = 0;
++
++  // total number of entries in the central directory on this disk
++  output[op3++] =  il       & 0xff;
++  output[op3++] = (il >> 8) & 0xff;
++
++  // total number of entries in the central directory
++  output[op3++] =  il       & 0xff;
++  output[op3++] = (il >> 8) & 0xff;
++
++  // size of the central directory
++  output[op3++] =  centralDirectorySize        & 0xff;
++  output[op3++] = (centralDirectorySize >>  8) & 0xff;
++  output[op3++] = (centralDirectorySize >> 16) & 0xff;
++  output[op3++] = (centralDirectorySize >> 24) & 0xff;
++
++  // offset of start of central directory with respect to the starting disk number
++  output[op3++] =  localFileSize        & 0xff;
++  output[op3++] = (localFileSize >>  8) & 0xff;
++  output[op3++] = (localFileSize >> 16) & 0xff;
++  output[op3++] = (localFileSize >> 24) & 0xff;
++
++  // .ZIP file comment length
++  commentLength = this.comment ? this.comment.length : 0;
++  output[op3++] =  commentLength       & 0xff;
++  output[op3++] = (commentLength >> 8) & 0xff;
++
++  // .ZIP file comment
++  if (this.comment) {
++    if (USE_TYPEDARRAY) {
++      output.set(this.comment, op3);
++      op3 += commentLength;
++    } else {
++      for (j = 0, jl = commentLength; j < jl; ++j) {
++        output[op3++] = this.comment[j];
++      }
++    }
++  }
++
++  return output;
++};
++
++/**
++ * @param {!(Array.<number>|Uint8Array)} input
++ * @param {Object=} opt_params options.
++ * @return {!(Array.<number>|Uint8Array)}
++ */
++Zlib.Zip.prototype.deflateWithOption = function(input, opt_params) {
++  /** @type {Zlib.RawDeflate} */
++  var deflator = new Zlib.RawDeflate(input, opt_params['deflateOption']);
++
++  return deflator.compress();
++};
++
++/**
++ * @param {(Array.<number>|Uint32Array)} key
++ * @returns {number}
++ */
++Zlib.Zip.prototype.getByte = function(key) {
++  /** @type {number} */
++  var tmp = ((key[2] & 0xffff) | 2);
++
++  return ((tmp * (tmp ^ 1)) >> 8) & 0xff;
++};
++
++/**
++ * @param {(Array.<number>|Uint32Array)} key
++ * @param {number} n
++ * @returns {number}
++ */
++Zlib.Zip.prototype.encode = function(key, n) {
++  /** @type {number} */
++  var tmp = this.getByte(key);
++
++  this.updateKeys(key, n);
++
++  return tmp ^ n;
++};
++
++/**
++ * @param {(Array.<number>|Uint32Array)} key
++ * @param {number} n
++ */
++Zlib.Zip.prototype.updateKeys = function(key, n) {
++  key[0] = Zlib.CRC32.single(key[0], n);
++  key[1] =
++    (((((key[1] + (key[0] & 0xff)) * 20173 >>> 0) * 6681) >>> 0) + 1) >>> 0;
++  key[2] = Zlib.CRC32.single(key[2], key[1] >>> 24);
++};
++
++/**
++ * @param {(Array.<number>|Uint8Array)}password
++ * @returns {Array.<number>|Uint32Array}
++ */
++Zlib.Zip.prototype.createEncryptionKey = function(password) {
++  /** @type {(Array.<number>|Uint32Array)} */
++  var key = [305419896, 591751049, 878082192];
++  /** @type {number} */
++  var i;
++  /** @type {number} */
++  var il;
++
++  if (USE_TYPEDARRAY) {
++    key = new Uint32Array(key);
++  }
++
++  for (i = 0, il = password.length; i < il; ++i) {
++    this.updateKeys(key, password[i] & 0xff);
++  }
++
++  return key;
++};
++
++});
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e7d289abdde15c2d56178d2b2e1ea9905fab1b7f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++/**
++ * @fileoverview Zlib namespace. Zlib の仕様に準拠した圧縮は Zlib.Deflate で実装
++ * されている. これは Inflate との共存を考慮している為.
++ */
++
++goog.provide('Zlib');
++
++//-----------------------------------------------------------------------------
++
++goog.scope(function() {
++
++/**
++ * Compression Method
++ * @enum {number}
++ */
++Zlib.CompressionMethod = {
++  DEFLATE: 8,
++  RESERVED: 15
++};
++
++// end of scope
++});
++
++/* vim:set expandtab ts=2 sw=2 tw=80: */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..78048612c89f83f382f185da09fd10dfb8ab3d4d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++Description: Don't let offscreen widget do grabbing
++Author: Cody Russell <bratsche@gnome.org>
++Bug: https://bugzilla.gnome.org/show_bug.cgi?id=607668
++Bug-Ubuntu: https://bugs.launchpad.net/bugs/512427
++
++Index: b/gtk/gtkmain.c
++===================================================================
++--- a/gtk/gtkmain.c
+++++ b/gtk/gtkmain.c
++@@ -2214,9 +2214,14 @@
++ {
++   GtkWindowGroup *group;
++   GtkWidget *old_grab_widget;
+++  GtkWidget *toplevel;
++ 
++   g_return_if_fail (widget != NULL);
++ 
+++  toplevel = gtk_widget_get_toplevel (widget);
+++  if (toplevel && gdk_window_get_window_type (gtk_widget_get_window (toplevel)) == GDK_WINDOW_OFFSCREEN)
+++    return;
+++
++   if (!gtk_widget_has_grab (widget) && gtk_widget_is_sensitive (widget))
++     {
++       _gtk_widget_set_has_grab (widget, TRUE);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c1c5fd32a7ae75bbfccb271dceb3824cfa4f09bf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++Description: Do not allow devices in an offscreen hierarchy to take grabs.
++Author: Robert Carr <racarr@canonical.com>
++Bug: https://bugzilla.gnome.org/show_bug.cgi?id=658563
++Bug-Ubuntu: https://launchpad.net/bugs/804009
++
++Index: b/gtk/gtkmain.c
++===================================================================
++--- a/gtk/gtkmain.c
+++++ b/gtk/gtkmain.c
++@@ -2307,9 +2307,14 @@
++ {
++   GtkWindowGroup *group;
++   GtkWidget *old_grab_widget;
+++  GdkWindow *toplevel;
++ 
++   g_return_if_fail (GTK_IS_WIDGET (widget));
++   g_return_if_fail (GDK_IS_DEVICE (device));
+++  
+++  toplevel = gdk_window_get_toplevel (gtk_widget_get_window (widget));
+++  if (toplevel && gdk_window_get_window_type (toplevel) == GDK_WINDOW_OFFSCREEN)
+++    return;
++ 
++   group = gtk_main_get_window_group (widget);
++   old_grab_widget = gtk_window_group_get_current_device_grab (group, device);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2a1c7379f88ba17365e72c765dc84600306c2d33
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,67 @@@
++From 7785c99603e754d6c20a7923450d7a19eed0cd07 Mon Sep 17 00:00:00 2001
++From: Martin Pitt <martin.pitt@ubuntu.com>
++Date: Thu, 8 Sep 2011 09:14:02 +0200
++Subject: [PATCH] Consistently treat gdkenumtypes.[hc] as source files
++
++Always generate gdk/gdkenumtypes.c in the source tree, and fix path in the
++introspection sources. With this, gdkenumtypes.c is correctly included with
++separate build trees, too. This fixes missing GTypes in the .gir when using a
++separate build tree.
++
++Also remove the gdk/stamp-gdkenumtypes.h target. It was forcing the
++regeneration of gdk/gdkenumtypes.h even if it was already present and current
++in the source tree.
++
++Bug: https://bugzilla.gnome.org/show_bug.cgi?id=647729
++Bug-Ubuntu: https://launchpad.net/bugs/769256
++---
++ gdk/Makefile.am |   17 +++++++----------
++ 1 files changed, 7 insertions(+), 10 deletions(-)
++
++Index: gtk+-3.21.6/gdk/Makefile.am
++===================================================================
++--- gtk+-3.21.6.orig/gdk/Makefile.am  2016-09-14 04:19:48.808467198 +0200
+++++ gtk+-3.21.6/gdk/Makefile.am       2016-09-14 04:19:48.804467138 +0200
++@@ -243,8 +243,8 @@
++ introspection_files =                \
++      $(filter-out gdkkeysyms-compat.h, $(gdk_h_sources))     \
++      $(gdk_c_sources)        \
++-        gdkenumtypes.c               \
++-        gdkenumtypes.h
+++        $(srcdir)/gdkenumtypes.c     \
+++        $(srcdir)/gdkenumtypes.h
++ 
++ Gdk-3.0.gir: libgdk-3.la Makefile
++ Gdk_3_0_gir_SCANNERFLAGS =   \
++@@ -408,7 +408,7 @@
++ 
++ lib_LTLIBRARIES = libgdk-3.la
++ 
++-MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
+++MAINTAINERCLEANFILES = $(gdk_built_sources)
++ EXTRA_DIST += \
++      $(gdk_built_sources)    \
++      fallback-c89.c
++@@ -422,18 +422,15 @@
++      $(gdk_built_sources)                    \
++      gdkconfig.h
++ 
++-gdkenumtypes.h: stamp-gdkenumtypes.h
++-     @true
++-stamp-gdkenumtypes.h: $(gdk_h_sources) gdkenumtypes.h.template
+++gdkenumtypes.h: $(gdk_public_h_sources) $(srcdir)/gdkenumtypes.h.template
++      $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
++              $(gdk_h_sources) ) >> xgen-geth \
++-     && (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
++-     && rm -f xgen-geth \
++-     && echo timestamp > $(@F)
+++     && (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth $(srcdir)/gdkenumtypes.h ) \
+++     && rm -f xgen-geth 
++ gdkenumtypes.c: $(gdk_h_sources) gdkenumtypes.c.template
++      $(AM_V_GEN) ( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
++              $(gdk_h_sources) ) > xgen-getc \
++-     && cp xgen-getc gdkenumtypes.c  \
+++     && cp xgen-getc $(srcdir)/gdkenumtypes.c  \
++      && rm -f xgen-getc
++ 
++ #
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c9f1dab29c2331f699106903933e9571588a4dbb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,11 @@@
++--- a/modules/input/imviqr.c
+++++ b/modules/input/imviqr.c
++@@ -242,7 +242,7 @@
++   NC_("input method menu", "Vietnamese (VIQR)"), /* Human readable name */
++   GETTEXT_PACKAGE,      /* Translation domain */
++    GTK_LOCALEDIR,       /* Dir for bindtextdomain (not strictly needed for "gtk+") */
++-  "vi"                          /* Languages for which this module is the default */
+++  ""                    /* Languages for which this module is the default */
++ };
++ 
++ static const GtkIMContextInfo *info_list[] = {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7511a60e0e8104382666ce05ba9367b0866ed46a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,13 @@@
++Index: gtk+-3.18.1/gtk/updateiconcache.c
++===================================================================
++--- gtk+-3.18.1.orig/gtk/updateiconcache.c    2015-10-08 00:19:36.650119362 +0200
+++++ gtk+-3.18.1/gtk/updateiconcache.c 2015-10-08 00:19:36.646119308 +0200
++@@ -678,7 +678,7 @@
++                    directories = g_list_append (directories, g_strdup (subdir));
++                  }
++                else
++-                 dir_index = 0xffff;
+++                 continue;
++              }
++ 
++            image = g_new0 (Image, 1);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6562031507d6d856cba421149c897c7b5c4babe9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,58 @@@
++From 1fb5f0aed9976437d8c9c82071efe9a447d73de1 Mon Sep 17 00:00:00 2001
++From: Emmanuele Bassi <ebassi@gnome.org>
++Date: Fri, 20 Jan 2017 18:07:01 +0000
++Subject: [PATCH] gdk/x11: Check if we have access to GL before using GLX API
++
++If the platform does not have access to libGL then any call to GL and
++GLX API through libepoxy will fail with an assertion. Until such time
++that libepoxy exposes API for us to use, we can simply dlopen libGL
++ourselves and do a symbol check.
++
++[smcv: fix typo]
++
++Bug: https://bugzilla.gnome.org/show_bug.cgi?id=775279
++Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847366
++---
++ gdk/x11/gdkglcontext-x11.c | 26 ++++++++++++++++++++++++++
++ 1 file changed, 26 insertions(+)
++
++diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
++index 0819f89648..d8ddf0fe19 100644
++--- a/gdk/x11/gdkglcontext-x11.c
+++++ b/gdk/x11/gdkglcontext-x11.c
++@@ -854,6 +854,32 @@ gdk_x11_screen_init_gl (GdkScreen *screen)
++   if (_gdk_gl_flags & GDK_GL_DISABLE)
++     return FALSE;
++ 
+++  /* This is an ad hoc check that bypasses libepoxy to check if libGL.so is
+++   * unavailable, and disables GL support if that's the case
+++   *
+++   * Ideally, libepoxy should do this for us, but that would require adding
+++   * new API, and we'd need a fallback anyway.
+++   */
+++  {
+++    Bool (* fp_glXQueryExtension) (Display *dpy, int *err_base, int *ev_base);
+++    GModule *module = g_module_open ("libGL.so.1", 0);
+++
+++    if (module == NULL)
+++      {
+++        GDK_NOTE (OPENGL, g_message ("No libGL.so found"));
+++        return FALSE;
+++      }
+++
+++    if (!g_module_symbol (module, "glXQueryExtension", (gpointer *) &fp_glXQueryExtension))
+++      {
+++        GDK_NOTE (OPENGL, g_message ("No glXQueryExtension symbol found"));
+++        g_module_close (module);
+++        return FALSE;
+++      }
+++
+++    g_module_close (module);
+++  }
+++
++   dpy = gdk_x11_display_get_xdisplay (display);
++ 
++   if (!glXQueryExtension (dpy, &error_base, &event_base))
++-- 
++2.11.0
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..74e4f7c98602226e87783fd8101fbfd31edcb171
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,21 @@@
++From: Andreas Henriksson <andreas@fatal.se>
++Subject: disable a11y test accessibility-dump
++
++Temporarily disable this test until someone figures out how
++to make it run with GTK_CSD=1 properly so it gives output
++matching the expected test data in all cases, not just
++for installed-tests.
++
++Index: gtk+-3.21.6/testsuite/a11y/Makefile.am
++===================================================================
++--- gtk+-3.21.6.orig/testsuite/a11y/Makefile.am       2016-09-14 04:19:54.932561342 +0200
+++++ gtk+-3.21.6/testsuite/a11y/Makefile.am    2016-09-14 04:19:54.928561280 +0200
++@@ -28,7 +28,7 @@
++      GTK_CSD=1                       \
++      G_ENABLE_DIAGNOSTIC=0
++ 
++-TEST_PROGS += accessibility-dump
+++#TEST_PROGS += accessibility-dump
++ 
++ TEST_PROGS += tree-performance
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9225fecf386002666dc7f5fbc44b5264f2c7e2ac
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,40 @@@
++Index: gtk+-3.21.6/testsuite/reftests/gtk-reftest.c
++===================================================================
++--- gtk+-3.21.6.orig/testsuite/reftests/gtk-reftest.c 2016-09-14 04:19:58.524616584 +0200
+++++ gtk+-3.21.6/testsuite/reftests/gtk-reftest.c      2016-09-14 04:19:58.524616584 +0200
++@@ -253,6 +253,20 @@
++   g_free (filename);
++ }
++ 
+++static gboolean
+++known_fail(const char *test_name)
+++{
+++  char *filename = get_test_file (test_name, ".ui.known_fail", TRUE);
+++
+++  if (filename)
+++    {
+++      g_free (filename);
+++      return TRUE;
+++    }
+++
+++  return FALSE;
+++}
+++
++ static void
++ test_ui_file (GFile *file)
++ {
++@@ -285,7 +299,13 @@
++   if (diff_image)
++     {
++       save_image (diff_image, ui_file, ".diff.png");
++-      g_test_fail ();
+++      if (known_fail(ui_file))
+++        {
+++          printf("KNOWN FAIL: ");
+++          g_test_message ("KNOWN FAIL: %s", ui_file);
+++        }
+++      else
+++        g_test_fail ();
++     }
++ 
++   remove_extra_css (provider);
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7d510f5526cd7f1edcfd692850e689bcafd3aa33
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,8 @@@
++016_no_offscreen_widgets_grabbing.patch
++017_no_offscreen_device_grabbing.patch
++018_gdkenumtypes.c_location.patch
++022_disable-viqr-im-for-vi-locale.patch
++060_ignore-random-icons.patch
++no-accessibility-dump.patch
++reftest-known-fail.patch
++gdk-x11-Check-if-we-have-access-to-GL-before-using-G.patch
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6ba7a4c78149a358f3531a5c308b5c1129123e3e
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,179 @@@
++#!/usr/bin/make -f
++
++DEB_BUILDDIR = debian/build
++DEB_MAKE_DESTDIRSKEL = $(CURDIR)/debian/install/@FLAVOR@
++DEB_MAKE_FLAVORS = shared shared_udeb
++DISABLE_UPDATE_UPLOADERS = 1
++
++include /usr/share/cdbs/1/rules/autoreconf.mk
++include /usr/share/cdbs/1/rules/debhelper.mk
++include /usr/share/cdbs/1/rules/utils.mk
++include /usr/share/cdbs/1/class/gnome.mk
++include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk
++include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk
++include /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk
++
++GNOME_MODULE = gtk+
++
++# Enable parallel build support
++DEB_BUILD_PARALLEL = 1
++
++# Ensure the build aborts when there are still references to undefined symbols
++# currently fails at least in the im-multipress im module
++#LDFLAGS += -Wl,-z,defs
++
++# Make the linker work a bit harder so dynamic loading can be done faster
++LDFLAGS += -Wl,-O1
++
++APIVER := 3
++SONAME := 0
++
++LIBDIR := usr/lib/$(DEB_HOST_MULTIARCH)
++
++# earliest version that this release has backwards binary compatibility for
++GTK_BINARY_VERSION := 3.0.0
++
++# Gtk binary version virtual Provide
++GTK_BINVER_DEP := gtk$(APIVER)-binver-$(GTK_BINARY_VERSION)
++
++# relative base directory for configuration
++CONFDIR := etc/gtk-3.0
++
++# relative base directory for all types of modules
++MODULES_BASE_PATH := $(LIBDIR)/gtk-3.0/$(GTK_BINARY_VERSION)
++OLD_MODULES_BASE_PATH := usr/lib/gtk-3.0/$(GTK_BINARY_VERSION)
++
++# package names
++SHARED_PKG := libgtk-$(APIVER)-$(SONAME)
++COMMON_PKG := libgtk-$(APIVER)-common
++DEV_PKG := libgtk-$(APIVER)-dev
++UDEB_PKG := $(SHARED_PKG)-udeb
++DOC_PKG := libgtk-$(APIVER)-doc
++BIN_PKG := libgtk-$(APIVER)-bin
++EXAMPLES_PKG := gtk-$(APIVER)-examples
++
++# files larger than 4k in size will be compressed by dh_compress
++# so append a .gz suffix to avoid dangling symlinks
++NEWS := NEWS$(shell find -maxdepth 1 -size +4k -name NEWS -exec echo ".gz" \;)
++README := README$(shell find -maxdepth 1 -size +4k -name README -exec echo ".gz" \;)
++
++FAIL_MISSING :=
++
++# When building all packages, run dh_install with --fail-missing
++binary: FAIL_MISSING=--fail-missing
++
++DEB_DH_INSTALL_ARGS += --sourcedir=debian/install/shared $(FAIL_MISSING) -X.la
++DEB_DH_INSTALL_ARGS_$(UDEB_PKG) += --sourcedir=debian/install/shared_udeb
++
++DEB_DH_AUTORECONF_ARGS = "NOCONFIGURE=true ./autogen.sh"
++
++DEB_CONFIGURE_EXTRA_FLAGS = \
++                      --libdir=/$(LIBDIR) \
++                      --enable-test-print-backend
++
++DEB_CONFIGURE_FLAGS_shared = \
++                      --enable-broadway-backend \
++                      --enable-x11-backend \
++                      --enable-gtk-doc \
++                      --enable-man \
++                      --enable-shared \
++                      --enable-introspection \
++                      --enable-cloudprint \
++                      --disable-static
++
++ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES)))
++DEB_CONFIGURE_FLAGS_shared += --enable-colord
++else
++DEB_CONFIGURE_FLAGS_shared += --disable-colord
++endif
++
++ifeq (linux,$(DEB_HOST_ARCH_OS))
++DEB_CONFIGURE_FLAGS_shared += --enable-wayland-backend
++else
++DEB_CONFIGURE_FLAGS_shared += --disable-wayland-backend
++endif
++
++DEB_CONFIGURE_FLAGS_shared_udeb = \
++                      --disable-broadway-backend \
++                      --disable-wayland-backend \
++                      --enable-x11-backend \
++                      --disable-introspection \
++                      --disable-cloudprint \
++                      --disable-colord \
++                      --disable-xcomposite \
++                      --disable-xdamage \
++                      --disable-xfixes \
++                      --disable-xrandr
++
++# Avoid test failures on buildd environments
++export HOME=$(CURDIR)/debian/build
++export XDG_RUNTIME_DIR=$(HOME)
++# So that gsettings can find the (uninstalled) gtk schemas
++export XDG_DATA_DIRS=/usr/share:$(CURDIR)/debian/build
++# Put these back to their defaults if we are not running with a clean
++# environment, so that they are based on the temporary $HOME above
++unexport XDG_CACHE_HOME
++unexport XDG_CONFIG_DIRS
++unexport XDG_CONFIG_HOME
++unexport XDG_DATA_HOME
++# Get failing tests' stdout/err so we have some information when a build fails
++export VERBOSE=1
++
++DEB_MAKE_CHECK_TARGET = -k check
++DEB_INSTALL_DOCS_ALL = AUTHORS
++DEB_INSTALL_DOCS_$(COMMON_PKG) = README NEWS
++DEB_INSTALL_DOCS_$(DOC_PKG) += -X.in
++DEB_DH_MAKESHLIBS_ARGS_ALL += -X$(MODULES_BASE_PATH)
++DEB_DH_MAKESHLIBS_ARGS_$(SHARED_PKG) += -V --add-udeb=$(UDEB_PKG) -- -c4
++DEB_DH_MAKESHLIBS_ARGS_libgail-3-0 += -V -- -c4
++DEB_DH_FIXPERMS_ARGS_ALL += -X$(LIBDIR)/$(SHARED_PKG)
++
++# macro computing the list of 'debian/<pkg>.*" files which have a
++# corresponding ".in" file; pass the list of packages in $(1)
++dh_subst_files = $(patsubst %.in,%,$(wildcard $(addprefix debian/, $(addsuffix *.in, $(1)))))
++
++debian/%: debian/%.in
++      dh_testdir
++      sed \
++              -e "s#@SONAME@#$(SONAME)#g" \
++              -e "s#@APIVER@#$(APIVER)#g" \
++              -e "s#@VERSION@#$(DEB_UPSTREAM_VERSION)#g" \
++              -e "s#@GTK_BINVER_DEP@#$(GTK_BINVER_DEP)#g" \
++              -e "s#@SHARED_PKG@#$(SHARED_PKG)#g" \
++              -e "s#@COMMON_PKG@#$(COMMON_PKG)#g" \
++              -e "s#@DEV_PKG@#$(DEV_PKG)#g" \
++              -e "s#@UDEB_PKG@#$(UDEB_PKG)#g" \
++              -e "s#@DOC_PKG@#$(DOC_PKG)#g" \
++              -e "s#@BIN_PKG@#$(BIN_PKG)#g" \
++              -e "s#@EXAMPLES_PKG@#$(EXAMPLES_PKG)#g" \
++              -e "s#@GNOME_TEAM@#$(UPLOADERS)#g" \
++              -e "s#@GTK_BINARY_VERSION@#$(GTK_BINARY_VERSION)#g" \
++              -e "s#@LIBDIR@#$(LIBDIR)#g" \
++              -e 's#@CONFDIR@#$(CONFDIR)#g' \
++              -e "s#@MODULES_BASE_PATH@#$(MODULES_BASE_PATH)#g" \
++              -e "s#@OLD_MODULES_BASE_PATH@#$(OLD_MODULES_BASE_PATH)#g" \
++              -e "s#@NEWS@#$(NEWS)#g" \
++              -e "s#@README@#$(README)#g" \
++              $@.in > $@
++
++clean:: debian/control
++      # gross kludge to force control generation with the %.in target
++      touch debian/control.in
++      rm -f $(call dh_subst_files,$(DEB_ALL_PACKAGES))
++      rm -f testsuite/reftests/*.ui.known_fail
++      rm -rf debian/build debian/install
++
++pre-build::
++      # Mark reftests with known failures as non-fatal
++      touch testsuite/reftests/nonresizable-size.ui.known_fail
++      touch testsuite/reftests/window-show-contents-on-map.ui.known_fail
++      touch testsuite/reftests/inherit-and-initial.ui.known_fail
++      touch testsuite/reftests/textview-margins.ui.known_fail
++      # So that gsettings can find the (uninstalled) gtk schemas
++      mkdir -p debian/build/glib-2.0/schemas/
++      cp gtk/org.gtk.* debian/build/glib-2.0/schemas/
++      glib-compile-schemas debian/build/glib-2.0/schemas/
++
++# Add dependencies to generate files from the debian/*.in ones
++build-indep: $(call dh_subst_files,$(DEB_INDEP_PACKAGES))
++build-arch: $(call dh_subst_files,$(DEB_ARCH_PACKAGES))
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c8fd039534fb93b8aa23c19e50829dc3d6d253c6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# Generated file, but its source is also present
++source-is-missing debian/missing-sources/zlib.js-0.1.6/deps.js *
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2b84dceff91c47054625e3f83d629647b6cf29ee
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,42 @@@
++#!/bin/sh
++# autopkgtest check: Build and run a program against GTK, to verify that the
++# headers and pkg-config file are installed correctly
++# (C) 2012 Canonical Ltd.
++# Author: Martin Pitt <martin.pitt@ubuntu.com>
++
++set -e
++
++WORKDIR=$(mktemp -d)
++trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
++cd $WORKDIR
++cat <<EOF > gtktest.c
++#include <glib.h>
++#include <gtk/gtk.h>
++
++static gboolean
++do_quit (gpointer user_data)
++{   
++    gtk_main_quit ();
++}
++
++int main(int argc, char **argv)
++{
++    GtkWidget *dialog;
++
++    gtk_init (&argc, &argv);
++    dialog = gtk_dialog_new_with_buttons ("Test dialog", NULL,
++                                          GTK_DIALOG_MODAL, 
++                                          "OK", GTK_RESPONSE_ACCEPT, 
++                                          NULL);
++    gtk_widget_show_all (dialog);
++    g_timeout_add_seconds (1, do_quit, NULL);
++    gtk_main();
++    return 0;
++}
++EOF
++
++gcc -o gtktest gtktest.c `pkg-config --cflags --libs gtk+-3.0`
++echo "build: OK"
++[ -x gtktest ]
++xvfb-run ./gtktest
++echo "run: OK"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..43ae60469c317a7324a03b95856daee363641449
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++Tests: build python3-gi
++Depends: libgtk-3-dev, build-essential, xauth, xvfb, python3-gi, gir1.2-gtk-3.0, dbus
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a503b2508797a23bc2677917876b1ebac917af0b
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++#!/bin/sh
++
++xvfb-run python3 <<EOF
++from gi.repository import GLib, Gtk
++
++def do_quit(user_data):
++    Gtk.main_quit()
++
++dialog = Gtk.Dialog()
++dialog.set_title('Test dialog')
++dialog.add_button(Gtk.STOCK_OK, Gtk.ResponseType.ACCEPT)
++dialog.show_all()
++GLib.timeout_add_seconds(1, do_quit, None)
++Gtk.main()
++EOF
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2accbe0adc6cfea53cb95edf3773974f5d5bb8d0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,26 @@@
++#!/bin/sh
++
++case "$1" in
++    ""|-h|--help)
++        echo "Usage: $0 directory [ ... ]"
++        exit 1
++        ;;
++esac
++
++for dir in "$@"; do
++    if [ ! -d "$dir" ]; then
++        continue
++    fi
++    if [ -f "$dir"/index.theme ]; then
++        # Generate or regenerate the cache    
++        if ! gtk-update-icon-cache --force --quiet "$dir"; then
++            echo "WARNING: icon cache generation failed for $dir"
++        fi
++    else
++        # No more index.theme, remove the cache if it exists
++        rm -f "$dir"/icon-theme.cache
++        rmdir -p --ignore-fail-on-non-empty "$dir"
++    fi
++done
++
++exit 0
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..03105e7c6ad9abeba0f7cf1fb10cd664d6b4611e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,19 @@@
++.TH UPDATE-ICON-CACHES 8 "13 July 2007"
++.SH NAME
++update-icon-caches \- Update wrapper script for the icon caches
++.SH SYNOPSIS
++\fBupdate-icon-caches\fP \fIdirectory\fP [ \fI...\fP ]
++.SH DESCRIPTION
++\fBupdate-icon-caches\fP is a wrapper script for updating the icon
++caches in a list of directories.
++.P
++In each of the directories passed as arguments, the icon cache is
++updated if it is already present. It is not created if it does not
++already exist.
++.P
++If the theme index file is not present, the icon cache is removed.
++.SH SEE ALSO
++.BR gtk-update-icon-cache (1)
++.SH AUTHOR
++This manual page was written by Josselin Mouette <joss@debian.org>,
++for the Debian GNU/Linux system.
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..69d05cfa93e12145bd81162348513fe362752fab
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=4
++https://download.gnome.org/sources/gtk+/(3\.2[02468])/ \
++      gtk\+@ANY_VERSION@\.tar\.xz