Compare commits

..

154 Commits

Author SHA1 Message Date
Matthias Clasen
2dd3317522 More distcheck fixes 2010-10-15 21:55:17 -04:00
Matthias Clasen
c6c1871734 Add filechooser settings gschema to EXTRA_DIST 2010-10-15 21:20:13 -04:00
Matthias Clasen
bd7e3852ac More examples removal 2010-10-15 20:59:38 -04:00
Matthias Clasen
9ae2c1fcf9 Drop crazy listing of all example files
This will likely mean that the old examples will not appear in the
tarball until they have been integrated in the new 'getting started'
docs.
2010-10-15 20:53:07 -04:00
Matthias Clasen
39529dcfed Fix make distcheck 2010-10-15 20:48:37 -04:00
Matthias Clasen
4869aeb28d Update POTFILES.in 2010-10-15 20:20:25 -04:00
Matthias Clasen
a0aed8402b Remove a private symbol from gtk.symbols 2010-10-15 20:14:11 -04:00
Matthias Clasen
4f9175d7fc Temporarily disable test involving file choosers
After the filechooser got converted to use gsettings, it can no
longer be used uninstalled, breaking make distcheck here.

Also disable the treeview-scrolling tests, since they are failing
here.
2010-10-15 20:14:11 -04:00
Matthias Clasen
f87b26a653 Fix up symbol lists 2010-10-15 20:14:11 -04:00
Javier Jardón
45c463e376 GtkComboBoxText: Use gtk_combo_box_text_remove instead gtk_combo_box_text_remove_text 2010-10-16 02:07:38 +02:00
Matthias Clasen
2dbfca9d02 Update NEWS for 2.91.1 2010-10-15 19:01:36 -04:00
Matthias Clasen
88d74e23fa Remove tutorial from configure.ac 2010-10-15 18:18:58 -04:00
Marek Kasik
95e69afea8 Parse lpoptions correctly
Parse options job-sheets, job-hold-until and sides correctly.
Add get_lpoption_name() for translation of lpoption names to
gtk option names. Usable for options which values don't need
conversion (e.g. number-up, number-up-layout, job-billing
and job-priority).
Rename array option_names to ppd_option_names to reflect its
purpose better. Rename get_option_name() to get_ppd_option_name()
because of the same reason.
2010-10-15 17:01:16 -04:00
Christian Dywan
d70b7f49b6 Use property system to coerce model data to G_TYPE_STRING
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=423201
2010-10-15 17:00:13 -04:00
Matthias Clasen
50cbd23d5b docs: cross-reference to GtkComboBoxText 2010-10-15 16:58:28 -04:00
Matthias Clasen
3e9bdf6fd9 Add docs for GtkComboBoxText 2010-10-15 16:58:27 -04:00
Matthias Clasen
3e2a259a78 docs: fix a cross-reference 2010-10-15 16:58:27 -04:00
Matthias Clasen
43250e8faf Deprecate the old combobox text convenience api 2010-10-15 16:58:27 -04:00
Javier Jardón
e7f51ef6a4 Use the new GtkComboBoxText API
Also remove mentions of the old text convenience API from the docs,
and point to GtkComboBoxText instead.
2010-10-15 16:58:27 -04:00
Matthias Clasen
99cfbecf46 Add gtk_combo_box_text_new_with_entry
Also, make use of the configured entry_text_column.
2010-10-15 16:58:26 -04:00
Matthias Clasen
8353754c17 docs: adjust Since tags 2010-10-15 16:58:26 -04:00
Christian Dywan
a16722fc3a Use text column value in GtkComboBoxText 2010-10-15 16:58:26 -04:00
Christian Dywan
7a5a5e9c5d Added GtkComboBoxText api
This is a derived class of GtkComboBox to replace the
gtk_combo_box_*_text() convenience API.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=612396

Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-10-15 16:58:26 -04:00
John Ralls
27ad64dccf Bug 631719 - Restore second, more important, call to set label from the menu item. 2010-10-15 13:14:19 -07:00
Javier Jardón
80d3f1fcda docs: update OSX port project page 2010-10-15 20:55:32 +02:00
Alberto Garcia
8d05e74212 Make gtk_accelerator_get_default_mod_mask() return a GdkModifierType
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=313350
2010-10-15 14:46:22 -04:00
Christian Persch
b5621b3c89 Take cursor hotspot from pixbuf if available
Allow -1 for the hotspot coordinates in gdk_cursor_new_from_pixbuf,
if the pixbuf contains the x_hot/y_hot options with appropriate values.

Bug #632140.
2010-10-15 14:38:21 -04:00
Javier Jardón
cbc358ead8 docs: Document GtkScrolledWindow's signals
Based on a patch by Björn Lindqvist
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=351247
2010-10-15 20:34:07 +02:00
Matthias Clasen
921fc8807c Deprecate gtk_init_add, gtk_remove_add and friends
This functions are going to be removed in GTK+ 3.

https://bugzilla.gnome.org/show_bug.cgi?id=629955
2010-10-15 14:13:32 -04:00
Colin Walters
18578b33c5 Add boxed type and constructor
This allows bindings to sanely construct these.

https://bugzilla.gnome.org/show_bug.cgi?id=632095
2010-10-15 13:54:37 -04:00
Matthias Clasen
f87023d8ee Forgotten file 2010-10-15 13:07:08 -04:00
Matthias Clasen
0ff28d72f6 examples: build examples that are included in the docs
We build the examples that are included in the 'getting started'
chapter of the docs to prevent them from bitrotting. Also
remove the awk scripts used to extract the old examples from
the tutorial, since the tutorial is gone. I'm still leaving
the examples themeselves in place, for possible inclusion in
'getting started' later on.
2010-10-15 13:02:50 -04:00
Matthias Clasen
ef7fddac3b docs: Drop the old tutorial
The tutorial is outdated, essentially stuck at GTK+ 2.0.
At this point, it is more misleading than helpful.
2010-10-15 13:02:50 -04:00
Matthias Clasen
28cb8583c3 docs: move some tutorial content to the reference
We add a "Getting started" chapter that will grow into a
(hopefully) non-outdated, maintained tutorial. For now, it
includes two minimal examples by xincluding them.
2010-10-15 13:02:50 -04:00
Emmanuele Bassi
f085c8b272 docs: Move the introduction of the tutorial in the reference
The tutorial should just go away, but some of its contents can be moved
to the API reference as chapters.

https://bugzilla.gnome.org/show_bug.cgi?id=632059
2010-10-15 13:02:50 -04:00
Benjamin Otte
22d28ef47d x11: Don't set ParentRelative if the parent's visual is different
It's like 82e6e32c, but when a pattern is given as argument.

https://bugzilla.gnome.org/show_bug.cgi?id=632218
2010-10-15 17:10:05 +02:00
Matthias Clasen
56e797397b Improve GtkBox and GtkTable docs a bit
This adds some details gleaned from the tutorial, before its
impending demise.
2010-10-15 10:58:35 -04:00
Emmanuele Bassi
17ffcb0cc6 link-button: Add ::activate-link signal
We cannot use the GtkButton::clicked signal to override the default
behavior of GtkLinkButton (i.e. call gtk_show_uri()), because
GtkButton::clicked is registered as a RUN_FIRST signal, which obviously
prevents any other signal handler connected to it to stop the
propagation before the class handler has a chance to run.

For this reason we can add a GtkLinkButton::activate-link signal, which
will be emitted by the default GtkButton::clicked signal handler; the
::activate-link signal has a boolean return value, which allows simpler
code for stopping the propagation to the next signal handler.

https://bugzilla.gnome.org/show_bug.cgi?id=632150
2010-10-15 10:36:01 +01:00
Tristan Van Berkom
d7c7f010b0 Removed screwy GtkScrolledWindow logic
Removed portion of scrolled-window that observes user-set
size request data (aux_info->width/height) on the child directly
in order to derive it's minimum possible size... if the scrolled
window has (auto/always) scrollbars in a said orientation; only
request enough space for the scrollbars (bug 631976).
2010-10-15 14:14:14 +09:00
Matthias Clasen
479dc131ee Implement get_preferred_width/height in GtkEventBox
And drop size_request.
2010-10-14 23:04:24 -04:00
Matthias Clasen
aaf0f0f5c3 Use gtk_container_handle_border_width() in GtkEventBox 2010-10-14 22:34:39 -04:00
Matthias Clasen
bda1f35585 Inclusion cleanups in sources
Try to do inclusions in the same sequence, more or less.
2010-10-14 22:09:36 -04:00
Matthias Clasen
88ef199ed7 Inclusion cleanups in headers 2010-10-14 22:08:53 -04:00
Matthias Clasen
9d644e9d2d Make gdk.h an include-only header
Move declarations to other headers, and introduce some new ones:
gdkmain.h, gdkrectangle.h, gdkthreads.h.
2010-10-14 22:08:48 -04:00
Matthias Clasen
e613d26448 Drop dead gxid_proto.h header
This header is no longer used.
2010-10-14 22:08:26 -04:00
Matthias Clasen
9ff4f0819f Some GDK documentation fixes 2010-10-14 21:45:56 -04:00
Fridrich Štrba
733f1710c6 Enable the build of MS Windows engine again
The MS Windows engine compiles anew, so enable it so that one can fix remaining issues
2010-10-14 20:56:30 +02:00
Federico Mena Quintero
85e47b5c4e Part of bgo#613728 - [GtkTreeView] Focus the list, not the headers, when Tab-focusing
The idea is that it is way more common to want to manipulate the
actual list, rather than the headers.  Once you Tab into the treeview
(and the list part gets the focus), you can use Shift-Tab to focus
the headers.

This means that some hysteresis is added to the focus chain, but
it makes the treeview a lot more convenient to focus with the keyboard.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
2010-10-14 13:17:46 -05:00
Kristian Rietveld
5cbb309841 Initialize device_cursor hash table before creating impl window 2010-10-14 18:01:51 +02:00
Kristian Rietveld
aeec832f0e Do not call validate_visible_area() from the draw method
Because validate_visible_area() can modify the window size (and thus
the underlying surface), it should not be called from within the draw
method.  Given that the presize handler is run with a higher priority
than redraw, and the presize handler will validate the visible area,
there should not be cases wherein the draw method is called and
validate_visible_area() has not been run yet.

However, one such a case was gdk_window_process_updates(), which would
trigger the draw method at some point.  We now work around this
by factoring this in a new gtk_tree_view_bin_process_updates() function
that will run the presize handler first if needed.

Note: for other platforms, it might still be the case that the draw
method is called and validate_visible_area() has not been run yet.
(For example the Mac backend calls gdk_window_process_updates() from
the drawRect method, and the redraw-in-idle handling thus works
differently).  This does not seem to be a problem now, if
it will be in the future we need to take care of that then.
2010-10-14 17:26:17 +02:00
Kristian Rietveld
4fc31dd87a Add test for bug 163214 2010-10-14 16:47:00 +02:00
Kristian Rietveld
51820d3e34 Add test for bug 111500
This test is constructed in such a way that it breaks when you
(currently!) do not trigger a size-request from validate_visible_area.
Especially row expansion appears to have a need for this currently.
2010-10-14 16:47:00 +02:00
Kristian Rietveld
e774e235d7 Add unit test for bug 93584 2010-10-14 16:47:00 +02:00
Kristian Rietveld
359818d6b7 Also test scrolling to a new row in a mixed height model 2010-10-14 16:47:00 +02:00
Martin Schlemmer
3d31254fd9 Trying to fix MS Windows engine 2010-10-14 14:20:04 +02:00
Matthias Clasen
34b117865a Initialize variables
valgrind was complaining about uninitialized values here, and
sure enough, gdkdevice-xi.c doesn't set device position.
2010-10-14 08:14:33 -04:00
Benjamin Otte
407b73dd80 build: Require cairo-gobject for GDK
With the new signal added, GDK now also requires cairo-gobject.
2010-10-14 13:53:23 +02:00
Michael Natterer
4ca2632d42 gdk: add slots for all GdkWindowObject signals
Also add padding for future extension.
2010-10-14 13:43:08 +02:00
Michael Natterer
9d9742f1e5 Bug 631599 - Allow to use arbitrary surfaces for offscreen windows
Add signal GdkWindow::create-surface which allows to use any
surface type as storage for offscreen windows.

Test the new signal in tests/gdkoffscreenbox.c
2010-10-14 13:25:23 +02:00
Michael Natterer
10c76c1c95 gtk: add cast to fix warning in my last commit 2010-10-14 11:35:30 +02:00
Cody Russell
44cb3bcfed Implement style_set() for GtkWindow to resize window grips when the style changes. 2010-10-13 23:04:11 -05:00
Tristan Van Berkom
9612c64817 Deprecate GtkComboBoxEntry in favor of added properties to GtkComboBox
GtkComboBox now sports a construct-only "has-entry" property which
decides if it uses a GtkEntry to allow additional user input. Also
it has a new "entry-text-column" to fetch strings for the entry
from the model.

This patch deprecates the GtkComboBoxEntry and updates the rest of GTK+
to use the new semantics on GtkComboBox instead.

GtkComboBoxEntry will be removed altogether before GTK+ 3, in a
later commit.
2010-10-13 21:52:27 -04:00
Matthias Clasen
7c8ee80c5a Add new API to docs and symbol list 2010-10-13 11:24:56 -04:00
Matthias Clasen
7791013754 Support GtkWidget expand properties in GtkNotebook
We expand a tab if either tab-expand is set, or the generic widget
expand property in the correct direction is set. And we do not
propagate expand flags from tab labels to the notebook, only
the expand flags from the pages.
2010-10-13 10:49:06 -04:00
Matthias Clasen
48de50df89 Support GtkWidget expand properties in GtkTable
We expand a child when it either has the table-specific expand flag
or the generic expand property set. Override compute_expand so that
it also takes the table-specific expand flags of children into
account.

https://bugzilla.gnome.org/show_bug.cgi?id=628902
2010-10-13 10:49:06 -04:00
Matthias Clasen
29ce9e679a Add a GtkTable testcase 2010-10-13 10:49:06 -04:00
Havoc Pennington
8abb18f910 Support GtkWidget expand properties in GtkBox
This consists of:
* expand a child if either child->expand || gtk_widget_get_expand(child)
* override compute_expand so that child->expand will cause us to
  return TRUE for gtk_widget_get_expand()

https://bugzilla.gnome.org/show_bug.cgi?id=628902
2010-10-13 10:49:06 -04:00
Havoc Pennington
7597a35477 add tests/testexpand.c used to test the expand props on GtkWidget
There are two colored boxes with toggle buttons nested
inside several GtkBox. Toggling these to expand mode
should automatically propagate expansion up through
the several GtkBox such that resizing the window
results in resizing the colored boxes.

https://bugzilla.gnome.org/show_bug.cgi?id=628902
2010-10-13 10:49:04 -04:00
Havoc Pennington
031856eb33 Add horizontal and vertical expand flags, compute_expand() to GtkWidget
GtkWidget now has flags for horizontal and vertical expand, and
a compute_expand() method. compute_expand() is used by containers
to set a default expand flag. (If a widget has expand set explicitly,
it always overrides the results of compute_expand.)

GtkContainer has a default implementation of compute_expand which
simply walks over all child widgets and sets expand=TRUE
if any child is expanding.

The overall effect is that you only have to set expand on
leaf nodes in the widget tree, while previously you had to
set expand all the way up the tree as you packed every
container. Also, now containers need not have their own child
properties for expand.

For old containers which do have "expand" child properties,
they should override compute_expand and include the child
properties in whether the container is expand=TRUE.
Also, the old container should use
"child_prop_expand || gtk_widget_compute_expand()" everywhere
it previously used simply "child_prop_expand"

https://bugzilla.gnome.org/show_bug.cgi?id=628902
2010-10-13 10:40:07 -04:00
Matthias Clasen
7d5a85c3ad Some more resize grip cleanups
Don't recompute hints whenever we determine the drag edge, and
take the drag edge into account when deciding whether to show
the grip.
2010-10-13 10:39:09 -04:00
Matthias Clasen
9e661ed0e9 Unify handling of GtkWindow::resizable property 2010-10-13 10:23:51 -04:00
Matthias Clasen
b36819957f Remove GtkWrapBox from the docs, too 2010-10-13 10:21:04 -04:00
Matthias Clasen
dbdc9c99e5 Make GtkRecentManager use standard icon names for themed icons 2010-10-13 10:18:03 -04:00
Matthias Clasen
f8b8c95f45 Some resize grip cleanups
Safe space in the private struct, always set the cursor when we
update visibility, since the cursor depends on resizability conditions
too. And don't set the shape needlessly.
2010-10-13 09:51:54 -04:00
Tristan Van Berkom
e3cc39cb98 Removed all traces of GtkWrapBox from GTK+. 2010-10-13 22:26:44 +09:00
Matthias Clasen
5e1d8814ca Don't start a drag if we are not resizable
This was caused by get_drag_edge() returning -1 to mean 'no drag',
but callers didn't really pay attention. Change get_drag_edge()
to return a boolean instead.
2010-10-13 08:31:06 -04:00
Christian Persch
803233cc14 Use GSettings for the filechooser settings
Bug #630850.
2010-10-13 14:31:07 +02:00
Jorge González
a2e88f9b80 Updated Spanish translation 2010-10-13 14:26:30 +02:00
Jorge González
3b7cbaa47f Updated Spanish translation 2010-10-13 01:25:28 +02:00
Jorge González
af31afb906 Updated Spanish translation 2010-10-12 21:56:42 +02:00
Michael Natterer
6bdc9b7f8a Bug 563002 - Doesn't call 'update-preview' on set_filename
Call gtk_tree_view_set_cursor() in addition to
gtk_tree_selection_select_iter() when selecting the file in
show_and_select_files() so the preview update machinery gets
triggered.
(cherry picked from commit 795c8070db)
2010-10-12 21:27:21 +02:00
Matej Urbančič
4469d2cde1 Updated Slovenian translation 2010-10-12 20:09:27 +02:00
Kristian Rietveld
25bf8ba4de Don't check resize-grip-visible in default values unit test
The value for this property is determined at runtime.
2010-10-12 19:12:44 +02:00
Kristian Rietveld
d7c3d378eb Disable resize grip on spin button test
Otherwise, the resize grip obscures the decrement button causing the
test to fail.
2010-10-12 19:12:44 +02:00
Kristian Rietveld
c143105ae9 Fix scrolled window policy so the size allocation does not "flap" 2010-10-12 19:12:44 +02:00
Kristian Rietveld
65c3fc9953 Handle off-by-one errors due to rounding 2010-10-12 19:12:44 +02:00
Kristian Rietveld
b58e3bb30c Use double iso. float since that is what GtkAdjustment uses 2010-10-12 19:12:44 +02:00
Kristian Rietveld
e732c16aab Use GtkAdjustment accessors to properly compress changed signals 2010-10-12 19:12:44 +02:00
Matthias Clasen
c7e024d160 Rework GdkPangoRenderer example to use existing api 2010-10-12 11:29:56 -04:00
Matthias Clasen
abb25b7895 docs: add a longdesc for X-specifics 2010-10-12 11:29:56 -04:00
Matthias Clasen
0a8abdcdf6 docs: Update cairo-related docs 2010-10-12 11:29:55 -04:00
Matthias Clasen
d8700a02f1 docs: Remove mentions of GdkPixmap from cursor docs 2010-10-12 11:29:55 -04:00
Matthias Clasen
ec7c2acf7b Move GdkVisualType docs inline 2010-10-12 11:29:55 -04:00
Matthias Clasen
4d63d96762 docs: Correct some link targets 2010-10-12 11:29:55 -04:00
Jorge González
2853db41f8 Updated Spanish translation 2010-10-12 17:16:12 +02:00
Tor Lillqvist
eae3183f1c Add two new functions to gtk.symbols 2010-10-12 14:39:30 +03:00
Michael Natterer
bef6c0a4a3 Bug 631599 - Allow to use arbitrary surfaces for offscreen windows
As a first step, create surfaces lazily and factor surface creation
out to a single function.
2010-10-12 11:34:20 +02:00
Tristan Van Berkom
e85dad38e2 Added logic to GtkScrolledWindow when allocating height-for-width children.
This patch makes the scrolled window reconsider allocating the child
the full width or height (depending on the child's request mode) without
a scrollbar. For instance when the child is height-for-width; the child
will first be tested if the content's height for full allocated width
(without a vscrollbar) will allow the contents height for that width
to fit the allocated height.

Patch is a simplified version of code inspected in st-scroll-view.c.
Note that this patch assumes children will begin to scroll only after
reaching their minimum size; adding a property to the future
GtkScrollableIface to decide whether to scroll-to-minimum or scroll-to-natural
will effect this code (it should then reconsider whether the child
will scroll below the natural size instead of the minimum).

Patch addresses bug 629778.
2010-10-12 17:16:32 +09:00
Tristan Van Berkom
0e0d938cc3 Make GtkScrolledWindow offload border-width calculations to GtkContainerClass. 2010-10-12 17:10:55 +09:00
Matthias Clasen
f106d369a7 Don't link to old stuff 2010-10-12 01:10:32 -04:00
Matthias Clasen
5a6ea62125 Add a missing close tag 2010-10-12 01:05:39 -04:00
Matthias Clasen
b23dc8477f Remove a note about GTK 1.2 api 2010-10-12 00:57:13 -04:00
Matthias Clasen
36f1d08bce Fix a trivial typo 2010-10-12 00:50:18 -04:00
Matthias Clasen
6899956770 Reorder some sections 2010-10-12 00:47:49 -04:00
Matthias Clasen
cf1745a935 Remove mentions of dialog separator from the docs 2010-10-12 00:38:04 -04:00
Matthias Clasen
82712a150a Some documentation updates 2010-10-12 00:33:38 -04:00
Matthias Clasen
e0c2a4e10f Inspect geometry when setting resize grip cursors
We want to use the same cursor as metacity when the window is only
resizable in one dimension.
2010-10-11 23:26:58 -04:00
Owen W. Taylor
a4a7a611f2 GtkWindow: Allow setting size from geometry
If you set a geometry widget via gtk_window_set_geometry_hints() it
becomes very hard to compute appropriate toplevel sizes in pixels
to make the window a particular size. Synthesizing strings and passing
them to gtk_window_parse_geometry() is possible, but to avoid
avoid such ugliness, add functions:

 gtk_window_set_default_geometry()
 gtk_window_resize_to_geometry()

That act like gtk_window_set_default_size() and
gtk_window_resize() but are in terms of the resize increments of the
geometry widget.

https://bugzilla.gnome.org/show_bug.cgi?id=631796
2010-10-11 14:06:16 -04:00
Owen W. Taylor
519d758711 Warn when calling gtk_window_parse_geometry() on an empty window
gtk_window_parse_geometry() gets the size of the window in order
to interpret the position of the window; calling it before, say,
calling gtk_widget_show_all() on a window is a subtle trap, so
add a warning in the case we can easily detect.

https://bugzilla.gnome.org/show_bug.cgi?id=631794
2010-10-11 14:06:03 -04:00
Owen W. Taylor
88cf547029 Fix handling of the geometry widget
The geometry widget feature of gtk_window_set_geometry_hints() has
never really worked right because the calculation that GTK+ did to
compute the base size of the window only worked when the geometry
widget had a larger minimum size than anything else in the window.

Setup:
* Move the GtkSizeGroup private functions to a new private header
  gtksizegroup-private.h
* Add the possibilty to pass flags to _gtk_size_group_queue_resize(),
  with the flag GTK_QUEUE_RESIZE_INVALIDATE_ONLY to suppress adding
  the widget's toplevel to the resize queue.
* _gtk_container_resize_invalidate() is added to implement that feature
* _gtk_widget_override_size_request()/_gtk_widget_restore_size_request()
  allow temporarily forcing a large minimum size on the geometry
  widget without creating resize loops.

GtkWindow:
* Compute the extra width/height around the geometry widget
  correctly; print a warning if the computation fails.
* Always make the minimum size at least the natural minimum
  size of the toplevel; GTK+ now fails badly with underallocation.
* Always set the base size hint; we were failing to set it
  properly when the specified minimum size was overriden, but
  it's harmless to always set it.

Tests:
* New test 'testgeometry' that replaces the 'gridded geometry' test
  from testgtk. The new test is roughly similar but creates a bunch
  of windows showing different possibilities.
* The testgtk test is removed. No need to have both.

https://bugzilla.gnome.org/show_bug.cgi?id=68668
2010-10-11 14:05:29 -04:00
Tristan Van Berkom
c250a7e673 Added documentation to GtkContainer about implementing containers using height-for-width apis. 2010-10-12 00:47:43 +09:00
Vincent Untz
4490aeddf7 build: Distribute README.multipress
https://bugzilla.gnome.org/show_bug.cgi?id=631872
2010-10-11 15:21:56 +02:00
Fran Diéguez
70228649ee Updated Galician translations 2010-10-11 10:22:04 +02:00
Ivar Smolin
4588408268 [l10n] Updated Estonian translation 2010-10-11 09:40:35 +03:00
Javier Jardón
c2ab54a31f docs: Move documentation do inline comments: GtkContainer 2010-10-11 05:13:45 +02:00
Javier Jardón
cabc386252 docs: Improve reference crossing in GtkWidget docs 2010-10-11 05:04:20 +02:00
Xan Lopez
71b4d83144 Plug memory leak in GtkWindow
1,936 (112 direct, 1,824 indirect) bytes in 4 blocks are definitely lost in loss record 13,453 of 13,673
    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    by 0x69615A1: cairo_region_create (cairo-region.c:196)
    by 0x683BFBF: gdk_cairo_region_create_from_surface (gdkcairo.c:455)
    by 0x670C882: set_grip_shape (gtkwindow.c:5020)
    by 0x670CFBF: resize_grip_create_window (gtkwindow.c:5271)
    by 0x670C466: gtk_window_realize (gtkwindow.c:4902)

Signed-off-by: Benjamin Otte <otte@redhat.com>
2010-10-11 02:33:25 +02:00
Xan Lopez
3f3d33ee6c Plug leak in gdkcairo.c
1,968 (1,236 direct, 732 indirect) bytes in 1 blocks are definitely lost in loss record 11,816 of 11,947
   at 0x4025BDC: malloc (vg_replace_malloc.c:195)
   by 0x6950676: _context_get (cairo.c:250)
   by 0x6950940: cairo_create (cairo.c:370)
   by 0x685CD1E: _gdk_cairo_surface_extents (gdkcairo.c:381)
   by 0x685CEDA: gdk_cairo_region_create_from_surface (gdkcairo.c:433)

Signed-off-by: Benjamin Otte <otte@redhat.com>
2010-10-11 02:33:09 +02:00
Javier Jardón
ee58c6c37d docs: Move documentation to inline comments: GtkScrolledWindow 2010-10-11 02:17:08 +02:00
Javier Jardón
9009683247 docs: Region returned by gdk_cairo_region_create_from_surface() should be freed 2010-10-11 02:17:08 +02:00
Gil Forcada
0afd8be7ef Updated Catalan translation 2010-10-10 23:22:40 +02:00
Simos Xenitellis
120a1006da l10n: Updated Greek translation for gtk+ properties 2010-10-10 21:18:39 +03:00
Jorge González
6c258b863d Updated Spanish translation 2010-10-09 14:26:20 +02:00
A S Alam
ff2476152b updating translation for Punjabi 2010-10-09 08:27:32 +05:30
Matthias Clasen
9d750ad13e Fix a problem with 'resize grip avoidance' in scrollbars
We need to be a little more careful when determining the overlap
between the new allocation and the grip area. This was causing
vertical scrollbars in evince to overlap with the grip.
2010-10-08 22:04:33 -04:00
Matthias Clasen
2f8f0d8eab Check for grip_window != NULL in gtk_window_draw
This is safer, since GtkWindow subclasses may override realize
and end up with has_resize_grip == TRUE, but grip_window still
being NULL - as is the case with GtkPlug.
2010-10-08 20:19:24 -04:00
William Jon McCann
de3e703444 gail: GtkTreeViewColumn doesn't have a destroy signal anymore
Replace with g_object_set_qdata_full usage.
2010-10-08 19:57:06 -04:00
William Jon McCann
f8b573766d Don't assume widgets are containers when walking the focus tree
This causes problems for links in labels.
2010-10-08 19:27:35 -04:00
Colin Walters
6c537bd0bf autogen: Explicitly allow libtool > 2.2
Apparently 2.4 is out, I'm not aware of a reason we shouldn't
allow it.
2010-10-08 16:46:50 -04:00
Matthias Clasen
31a45c957c Fix grip window positioning
We need to position the grip window in size_allocate after all,
otherwise the grip ends up in the wrong place when the window
is realized early.

Also, avoid shadowing a variable.
2010-10-08 14:21:11 -04:00
Matthias Clasen
0ebf090d9e Don't show resize grips on override-redirect window 2010-10-08 14:01:46 -04:00
Matthias Clasen
9b9ccb56b1 Make GtkPaned use gtk_container_class_handle_border_width 2010-10-08 11:11:33 -04:00
Matthias Clasen
f7418b1652 Make GtkPaned use gtk_container_class_handle_border_width 2010-10-08 10:45:24 -04:00
Matthias Clasen
c113b8e229 Make GtkPathBar use gtk_container_class_handle_border_width 2010-10-08 10:27:00 -04:00
Tristan Van Berkom
5a7cfa7fb9 Migrated old GtkSizeRequestIface documentation to GtkWidget and added notes to gtk_widget_get_preferred_size(). 2010-10-08 23:18:05 +09:00
Christian Dywan
e9a7a2104b Use and print note for key only if there are credentials
Otherwise key might be printed uninitialized.
2010-10-08 16:03:49 +02:00
Tristan Van Berkom
3267cd08e9 Removed call to get_preferred_size (widget, NULL, NULL);
This was another case of making sure size-request was called
before other code was doing get_child_requisition(), now caching
is done via the same api so no need for that line.
2010-10-08 22:33:21 +09:00
Tristan Van Berkom
480b9f6b11 Removed needless initial size request of children
Old code was probably doing size-request on all children initially,
and then calling get_child_requisition() in other passes, now these
are cached after the first request anyway.
2010-10-08 22:33:21 +09:00
Tristan Van Berkom
c1e9f4a798 Removed needless size-requesting of children (child sizes are ignored at request time). 2010-10-08 22:33:21 +09:00
Matthias Clasen
2e98e37fe4 Make GtkTable use gtk_container_handle_border_width 2010-10-08 09:28:00 -04:00
Matthias Clasen
f8490e425f Add a migration guide section about resize grips 2010-10-08 02:18:15 -04:00
Matthias Clasen
8ed725bad8 Get scrollbars out of the way of the window's resize grip
If there are both horizontal and vertical scrollbars, there is
an unused 'corner' into which the resize grip fits. Individual
scrollbars need to be shortened and moved to make room for the
resize grip.
2010-10-08 02:14:19 -04:00
Matthias Clasen
b04bceb47e Remove resize grip handling from GtkStatusbar
We remove the resize grip from GtkStatusbar, but keep the code
that makes the content avoid the grip, and adapt it to GtkWindow
grips.

The gtk_status_bar_set/get_has_resize_grip() functions and related
properties are removed.
2010-10-08 02:14:19 -04:00
Cody Russell
fe9a45c413 Remove uses of gtk_statusbar_set_has_resize_grip()
This function is going away.
2010-10-08 02:14:19 -04:00
Matthias Clasen
f9265ea3b8 Fix resize grip drawing in GtkAssistant
Chain up in the draw() implementation of GtkAssistant to let
GtkWindow draw the resize grip. This avoids black resize grips
in GtkAssistant windows.
2010-10-08 02:14:19 -04:00
Matthias Clasen
f6347baf64 Add resize grips to GtkWindow
Allow any window to display a resize grip, in the south-east or
south-west corner, depending on text direction. This is implemented
as a shaped window that gets overlayed on top of whatever content
is there. We add api that allows widgets to avoid the resize grip,
if desired.

The ::has-resize-grip property controls if a window may display
a resize grip. It will only be displayed if the window is resizable
and not maximized.

The size and visual appearance of the resize grip is under theme
control, using the resize-grip-width/height style properties and
the paint_resize_grip style function.
2010-10-08 02:14:10 -04:00
Matthias Clasen
368f0d0843 Fix export of a few (currently unused) configure variables
Turns out that autoconf eats all the m4_define magic before
AC_INIT.
2010-10-07 07:50:30 -04:00
William Jon McCann
cadbdd32ba gail: don't try to get stock id from images that aren't stock
Fixes assertion caused by 41d2a4d059
2010-10-07 02:52:35 -04:00
Tor Lillqvist
bbf189ca0d Gail needs _gtk_cell_renderer_calc_offset 2010-10-07 01:28:48 +03:00
Tor Lillqvist
3c4d1cc856 Bypass the ms-windows engine for now
It requires massive changes to build again. I started, but gave
up. More insight is needed.
2010-10-07 01:28:47 +03:00
Tor Lillqvist
e346d26f70 Make it compile again for Windows 2010-10-07 01:28:47 +03:00
Stef Walter
4196f56de9 Remove reference to hooks in gtk_about_dialog_set_website() docs.
Signed-off-by: Javier Jardón <jjardon@gnome.org>
2010-10-06 23:54:35 +02:00
Federico Mena Quintero
e17b9ae8ba Filechooser - In OPEN or SAVE mode, typing a plain folder name should switch to it
If you type 'subfolder/' and hit Enter, the file chooser will switch you to
it.  But if you type just 'subfolder' without the trailing slash, apps would
receive *that* filename (e.g. file:///foo/bar/subfolder) as the response, and
they would likely print an error that they can't open that file (as it is
a folder).  So, we change the file chooser's current folder to that subfolder
in this case.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
2010-10-06 13:10:16 -05:00
Benjamin Otte
e3e243688a widget: Fix GtkWidget::draw docs
width and height have been gone for a while...
2010-10-06 12:53:33 +02:00
295 changed files with 19820 additions and 199177 deletions

View File

@@ -1,7 +1,7 @@
## Makefile.am for GTK+
include $(top_srcdir)/Makefile.decl
SRC_SUBDIRS = gdk gtk modules demos tests perf
SRC_SUBDIRS = gdk gtk modules demos tests perf examples
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
@@ -31,80 +31,8 @@ EXTRA_DIST += \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/Makefile \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/arrow/Makefile \
examples/arrow/arrow.c \
examples/base/Makefile \
examples/base/base.c \
examples/buttonbox/Makefile \
examples/buttonbox/buttonbox.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/calendar/Makefile \
examples/calendar/calendar.c \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
examples/eventbox/eventbox.c \
examples/gtkdial/Makefile \
examples/gtkdial/dial_test.c \
examples/gtkdial/gtkdial.c \
examples/gtkdial/gtkdial.h \
examples/helloworld/Makefile \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/label/Makefile \
examples/label/label.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/progressbar/Makefile \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rangewidgets/Makefile \
examples/rangewidgets/rangewidgets.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scribble-xinput/Makefile \
examples/scribble-xinput/scribble-xinput.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
examples/selection/gettargets.c \
examples/selection/setselection.c \
examples/statusbar/Makefile \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/fixed/fixed.c \
examples/fixed/Makefile \
examples/frame/frame.c \
examples/frame/Makefile \
examples/spinbutton/spinbutton.c \
examples/spinbutton/Makefile \
examples/find-examples.sh
po/po2tbl.sed.in
MAINTAINERCLEANFILES = \
$(srcdir)/INSTALL \
$(srcdir)/README \

76
NEWS
View File

@@ -1,3 +1,79 @@
Overview of Changes from GTK+ 2.91.0 to 2.91.1
==============================================
* GTK+ can now add a resize grip to any window. The resize
grip functionality in GtkStatusbar has been removed.
* A very old bug in the handling of geometry widgets has
been fixed, and a way to set geometry in terms of the
geometry widget has been added: gtk_window_resize_to_geometry()
* The GtkFileChooser now uses GSettings to store its settings
instead of the keyfile ~/.config/gtk-2.0/gtkfilechooser.ini
* GtkWrapBox has been dropped from GTK+ again. The widget
will be available in libegg until clear use cases have
been established.
* GtkWidget now has horizontal and vertical expand flags, in
the form of ::hexpand and ::vexpand properties. These flags
are intended to obsolete most custom container-specific
expand child properties, over time.
Expandability is inherited up the widget hierarchy.
* GtkComboBoxEntry has been deprecated in favor of a
::has-entry property on GtkComboBox.
* The GtkComboBox text convenience API (gtk_combo_box_new_text(), etc)
has been deprecated in favor of a new GtkComboBoxText class.
* GtkLinkButton has gained a ::activate-link signal that
can be used to suppress the default behavior.
* The very outdated tutorial has been dropped from the GTK+ distribution,
and a new 'Getting started' section has been added to the API
documentation that will accumulate tutorial material over time.
* Bugs fixed:
68668 Fix handling of geometry widget
313350 Return type of gtk_accelerator_get_default_mod_mask...
351247 GtkScrolledWindow is mis documented
423201 gtk_combo_box_entry_active_changed does not transform...
563002 Doesn't call 'update-preview' on set_filename
612396 Implement GtkComboBoxText subclass to supersede "text"...
613728 Rationalize GtkTreeView focus
628902 use expand flags to determine window resizability
629722 save_entry_get_info_cb() doesn't behave correctly
629778 Scrolled window does not behave properly with height-for...
629955 Deprecate / remove gtk_main and gtk_init_add / remove* API
630850 Use GSettings for the filechooser settings
630900 GtkCellRendererClass: unify const of GdkRectangle args
631203 Scrolling in GtkTextView can use 100% cpu
631311 Obvious fix for nasty crash in menu code
631473 Fix GTK+3 documentation
631475 Two old GDK_foo key macros left in gdk/quartz/gdkkeys-quartz.c
631599 Allow to use arbitrary surfaces for offscreen windows
631719 Action-based menu accelerators don't synch with GtkMenuItem
631794 Warn when calling gtk_window_parse_geometry() on an empty...
631976 Remove GtkWidgetAuxInfo from GtkScrolledWindow
632059 Move the introduction of the tutorial in the reference
632095 GtkTargetEntry: Add boxed type and constructor
632140 optionally take hotspot coordinates from the pixbuf...
632218 BadMatch when starting gnome-shell
* New or updated translations:
Catalan
Estonian
Galician
Greek
Kazakh
Kikongo
Lithuanian
Punjabi
Slovenian
Spanish
Overview of Changes from GTK+ 2.90.7 to 2.91.0
==============================================

View File

@@ -19,7 +19,7 @@ if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
sed -e 's/^\(.*\)([^)]*)\(.*\)$/\1\2/g' \
-e 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $libtool_version in
2.2*)
2.*)
have_libtool=true
;;
esac

View File

@@ -2,6 +2,14 @@
# require autoconf 2.54
AC_PREREQ([2.62])
AC_INIT([gtk+], [gtk_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
[gtk+])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
AC_CONFIG_MACRO_DIR([m4])
# Making releases:
# GTK_MICRO_VERSION += 1;
# GTK_INTERFACE_AGE += 1;
@@ -48,14 +56,6 @@ AC_SUBST(CAIRO_REQUIRED_VERSION)
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
AC_INIT([gtk+], [gtk_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
[gtk+])
AC_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
AC_CONFIG_MACRO_DIR([m4])
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
@@ -1225,9 +1225,9 @@ LDFLAGS="$saved_ldflags"
# Pull in gio-unix for GDesktopAppInfo usage, see at least gdkapplaunchcontext-x11.c
if test "x$gdktarget" = "xx11"; then
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend"
GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
else
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend cairo-gobject"
fi
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PACKAGES`"
@@ -1477,6 +1477,12 @@ if test -n "$export_dynamic"; then
GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
fi
#############
# GSettings #
#############
GLIB_GSETTINGS
##################################################
# GObject introspection
##################################################
@@ -1634,6 +1640,7 @@ po-properties/Makefile.in
demos/Makefile
demos/gtk-demo/Makefile
demos/gtk-demo/geninclude.pl
examples/Makefile
tests/Makefile
docs/Makefile
docs/reference/Makefile
@@ -1644,7 +1651,6 @@ docs/reference/gtk/version.xml
docs/reference/libgail-util/Makefile
docs/faq/Makefile
docs/tools/Makefile
docs/tutorial/Makefile
build/Makefile
build/win32/Makefile
build/win32/vs9/Makefile

View File

@@ -384,23 +384,6 @@ mark_set_callback (GtkTextBuffer *buffer,
update_statusbar (buffer, GTK_STATUSBAR (data));
}
static void
update_resize_grip (GtkWidget *widget,
GdkEventWindowState *event,
GtkStatusbar *statusbar)
{
if (event->changed_mask & (GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_FULLSCREEN))
{
gboolean maximized;
maximized = event->new_window_state & (GDK_WINDOW_STATE_MAXIMIZED |
GDK_WINDOW_STATE_FULLSCREEN);
gtk_statusbar_set_has_resize_grip (statusbar, !maximized);
}
}
GtkWidget *
do_appwindow (GtkWidget *do_widget)
{
@@ -569,12 +552,6 @@ do_appwindow (GtkWidget *do_widget)
statusbar,
0);
g_signal_connect_object (window,
"window_state_event",
G_CALLBACK (update_resize_grip),
statusbar,
0);
update_statusbar (buffer, GTK_STATUSBAR (statusbar));
}

View File

@@ -428,7 +428,14 @@ do_combobox (GtkWidget *do_widget)
gtk_container_set_border_width (GTK_CONTAINER (box), 5);
gtk_container_add (GTK_CONTAINER (frame), box);
combo = gtk_combo_box_entry_new_text ();
model = (GtkTreeModel *)gtk_list_store_new (1, G_TYPE_STRING);
combo = g_object_new (GTK_TYPE_COMBO_BOX,
"has-entry", TRUE,
"model", model,
"entry-text-column", 0,
NULL);
g_object_unref (model);
fill_combo_entry (combo);
gtk_container_add (GTK_CONTAINER (box), combo);

View File

@@ -25,10 +25,10 @@ create_combo_box (const char **strings)
GtkWidget *combo_box;
const char **str;
combo_box = gtk_combo_box_new_text ();
combo_box = gtk_combo_box_text_new ();
for (str = strings; *str; str++)
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), *str);
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str);
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0);

View File

@@ -371,11 +371,11 @@ attach_widgets (GtkTextView *text_view)
}
else if (i == 1)
{
widget = gtk_combo_box_new_text ();
widget = gtk_combo_box_text_new ();
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 1");
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 2");
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Option 3");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3");
}
else if (i == 2)
{

View File

@@ -101,12 +101,12 @@ main(int argc, char **argv)
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
combo_box = gtk_combo_box_new_text ();
combo_box = gtk_combo_box_text_new ();
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "NEAREST");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "BILINEAR");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "TILES");
gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "HYPER");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "NEAREST");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "BILINEAR");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "TILES");
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), "HYPER");
gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 1);

View File

@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
include $(top_srcdir)/Makefile.decl
SUBDIRS = tutorial faq reference tools
SUBDIRS = faq reference tools
EXTRA_DIST += \
CODING-STYLE \

View File

@@ -17,44 +17,28 @@
<reference id="reference">
<title>API Reference</title>
<xi:include href="xml/general.xml" />
<xi:include href="multihead.sgml" />
<xi:include href="xml/gdkdisplay.xml" />
<xi:include href="xml/gdkdisplaymanager.xml" />
<xi:include href="xml/gdkscreen.xml" />
<xi:include href="xml/regions.xml" />
<xi:include href="xml/drawing.xml" />
<xi:include href="xml/colors.xml" />
<xi:include href="xml/visuals.xml" />
<xi:include href="xml/fonts.xml" />
<xi:include href="xml/cursors.xml" />
<xi:include href="xml/windows.xml" />
<xi:include href="xml/events.xml" />
<xi:include href="xml/event_structs.xml" />
<xi:include href="xml/keys.xml" />
<xi:include href="xml/selections.xml" />
<xi:include href="xml/dnd.xml" />
<xi:include href="xml/properties.xml" />
<xi:include href="xml/threads.xml" />
<xi:include href="xml/input.xml" />
<xi:include href="xml/gdkdevicemanager.xml" />
<xi:include href="xml/pango_interaction.xml" />
<xi:include href="xml/cairo_interaction.xml" />
<xi:include href="xml/x_interaction.xml" />
<xi:include href="xml/gdkapplaunchcontext.xml" />
<xi:include href="xml/gdktesting.xml" />
</reference>

View File

@@ -106,12 +106,12 @@ gtk_window_set_screen (window, second_screen);<!--
<para>
<variablelist>
<varlistentry>
<term><link linkend="gdk-GdkDisplay">GdkDisplay</link></term>
<term><link linkend="GdkDisplay">GdkDisplay</link></term>
<listitem><para>the GDK Object used to represent and manipulate display
related data</para></listitem>
</varlistentry>
<varlistentry>
<term><link linkend="gdk-GdkScreen">GdkScreen</link></term>
<term><link linkend="GdkScreen">GdkScreen</link></term>
<listitem><para>the GDK Object used to represent and query screen related
data</para></listitem>
</varlistentry>

View File

@@ -8,10 +8,10 @@ Standard and pixmap cursors
<para>
These functions are used to create and destroy cursors.
There is a number of standard cursors, but it is also
possible to construct new cursors from pixmaps and
pixbufs. There may be limitations as to what kinds of
cursors can be constructed on a given display, see
gdk_display_supports_cursor_alpha(),
possible to construct new cursors from pixbufs. There
may be limitations as to what kinds of cursors can be
constructed on a given display, see
gdk_display_supports_cursor_alpha(),
gdk_display_supports_cursor_color(),
gdk_display_get_default_cursor_size() and
gdk_display_get_maximal_cursor_size().

View File

@@ -326,6 +326,30 @@ available.
@void:
<!-- ##### FUNCTION gdk_error_trap_push ##### -->
<para>
</para>
@void:
<!-- ##### MACRO gdk_error_trap_pop ##### -->
<para>
</para>
<!-- ##### FUNCTION gdk_error_trap_pop_ignored ##### -->
<para>
</para>
@void:
<!-- ##### MACRO GDK_WINDOWING_X11 ##### -->
<para>
This macro is defined if GDK is configured to use the X11 backend.
@@ -340,3 +364,10 @@ This macro is defined if GDK is configured to use the win32 backend.
<!-- ##### MACRO GDK_WINDOWING_QUARTZ ##### -->
<para>
This macro is defined if GDK is configured to use the Quartz backend.
</para>

View File

@@ -7,9 +7,9 @@ Using Pango in GDK
<!-- ##### SECTION Long_Description ##### -->
<para>
Pango is the text layout system used by GDK and GTK+. The functions
and types in this section are used to render Pango objects to GDK.
drawables, and also extend the set of Pango attributes to include
stippling and embossing.
and types in this section are used to obtain clip regions for
#PangoLayouts, and to get #PangoContexts that can be used with
GDK.
</para>
<para>
Creating a #PangoLayout object is the first step in rendering text,
@@ -24,51 +24,38 @@ between Pango units and pixels using <link
linkend="PANGO-SCALE-CAPS">PANGO_SCALE</link> or the PANGO_PIXELS() macro.)
</para>
<para>
Rendering a Pango layout is done most simply with gdk_draw_layout();
you can also draw pieces of the layout with gdk_draw_layout().
#GdkPangoRenderer is a subclass of #PangoRenderer that is used internally
to implement these functions. Using it directly or subclassing it can be
useful in some cases. See the #GdkPangoRenderer documentation for details.
Rendering a Pango layout is done most simply with pango_cairo_show_layout();
you can also draw pieces of the layout with pango_cairo_show_layout_line().
</para>
<example id="rotated-example">
<title>Using #GdkPangoRenderer to draw transformed text</title>
<title>Draw transformed text with Pango and cairo</title>
<!-- Note that this example is basically the same as
demos/gtk-demo/rotated_text.c -->
<programlisting>
#define RADIUS 100
#define N_WORDS 10
#define FONT "Sans Bold 18"
GdkScreen *screen = gdk_drawable_get_screen (drawable);
PangoRenderer *renderer;
GdkGC *gc;
PangoMatrix matrix = PANGO_MATRIX_INIT;
PangoContext *context;
PangoLayout *layout;
PangoFontDescription *desc;
double device_radius;
double radius;
int width, height;
int i;
/* Get the default renderer for the screen, and set it up for drawing */
renderer = gdk_pango_renderer_get_default (screen);
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), drawable);
gc = gdk_gc_new (drawable);
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), gc);
/* Set up a transformation matrix so that the user space coordinates for
* where we are drawing are [-RADIUS, RADIUS], [-RADIUS, RADIUS]
* We first center, then change the scale */
gdk_drawable_get_size (drawable, &amp;width, &amp;height);
device_radius = MIN (width, height) / 2.;
pango_matrix_translate (&amp;matrix,
device_radius + (width - 2 * device_radius) / 2,
device_radius + (height - 2 * device_radius) / 2);
pango_matrix_scale (&amp;matrix, device_radius / RADIUS, device_radius / RADIUS);
width = gdk_window_get_width (window);
height = gdk_window_get_height (window);
radius = MIN (width, height) / 2.;
cairo_translate (cr,
radius + (width - 2 * radius) / 2,
radius + (height - 2 * radius) / 2);
cairo_scale (cr, radius / RADIUS, radius / RADIUS);
/* Create a PangoLayout, set the font and text */
context = gdk_pango_context_get_for_screen (screen);
@@ -81,41 +68,32 @@ pango_font_description_free (desc);
/* Draw the layout N_WORDS times in a circle */
for (i = 0; i &lt; N_WORDS; i++)
{
GdkColor color;
PangoMatrix rotated_matrix = matrix;
int width, height;
double angle = (360. * i) / N_WORDS;
double red, green, blue;
double angle = 2 * G_PI * i / n_words;
cairo_save (cr);
/* Gradient from red at angle == 60 to blue at angle == 300 */
color.red = 65535 * (1 + cos ((angle - 60) * M_PI / 180.)) / 2;
color.green = 0;
color.blue = 65535 - color.red;
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
PANGO_RENDER_PART_FOREGROUND, &amp;color);
pango_matrix_rotate (&amp;rotated_matrix, angle);
red = (1 + cos (angle - 60)) / 2;
green = 0;
blue = 1 - red;
cairo_set_source_rgb (cr, red, green, blue);
cairo_rotate (cr, angle);
pango_context_set_matrix (context, &amp;rotated_matrix);
/* Inform Pango to re-layout the text with the new transformation matrix */
pango_layout_context_changed (layout);
pango_cairo_update_layout (cr, layout);
pango_layout_get_size (layout, &amp;width, &amp;height);
pango_renderer_draw_layout (renderer, layout,
- width / 2, - RADIUS * PANGO_SCALE);
cairo_move_to (cr, - width / 2 / PANGO_SCALE, - DEFAULT_TEXT_RADIUS);
pango_cairo_show_layout (cr, layout);
cairo_restore (cr);
}
/* Clean up default renderer, since it is shared */
gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer),
PANGO_RENDER_PART_FOREGROUND, NULL);
gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), NULL);
gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), NULL);
/* free the objects we created */
g_object_unref (layout);
g_object_unref (context);
g_object_unref (gc);
</programlisting>
</example>
<figure>
@@ -160,3 +138,21 @@ g_object_unref (gc);
@Returns:
<!-- ##### FUNCTION gdk_pango_context_get ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION gdk_pango_context_get_for_screen ##### -->
<para>
</para>
@screen:
@Returns:

View File

@@ -36,7 +36,7 @@ then %GDK_VISUAL_STATIC_GRAY.
<!-- ##### SECTION See_Also ##### -->
<para>
#GdkColormap
</para>
<!-- ##### SECTION Stability_Level ##### -->

View File

@@ -6,7 +6,17 @@ X backend-specific functions
<!-- ##### SECTION Long_Description ##### -->
<para>
The functions in this section are specific to the GDK X11 backend.
To use them, you need to include the <literal>&lt;gdk/gdkx.h&gt;</literal>
header and use the X11-specific pkg-config files to build your application
(either <literal>gdk-x11-3.0</literal> or <literal>gtk+-x11-3.0</literal>.
To make your code compile with other GDK backends, guard backend-specific
calls by an ifdef as follows:
<informalexample><programlisting>
#ifdef GDK_WINDOWING_X11
/* X11-specific calls here... */
#endif
</programlisting></informalexample>
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -27,14 +37,6 @@ Obtains the Xlib window id of the root window of the current screen.
<!-- ##### MACRO GDK_DISPLAY ##### -->
<para>
The current display.
</para>
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_WINDOW_XDISPLAY ##### -->
<para>
Returns the display of a #GdkWindow.
@@ -53,24 +55,6 @@ Returns the X window belonging to a #GdkWindow.
@Returns: the Xlib <type>Window</type> of @win.
<!-- ##### MACRO GDK_PIXMAP_XDISPLAY ##### -->
<para>
Returns the display of a #GdkPixmap.
</para>
@pix: a #GdkPixmap.
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_PIXMAP_XID ##### -->
<para>
Returns the X pixmap belonging to a #GdkPixmap.
</para>
@pix: a #GdkPixmap.
@Returns: the Xlib <type>XPixmap</type> of @win.
<!-- ##### MACRO GDK_DISPLAY_XDISPLAY ##### -->
<para>
Returns the display of a #GdkDisplay.
@@ -97,24 +81,6 @@ Returns the X resource (window or pixmap) belonging to a #GdkDrawable.
@Returns: the ID of @win's X resource.
<!-- ##### MACRO GDK_COLORMAP_XDISPLAY ##### -->
<para>
Returns the display of a #GdkColormap.
</para>
@cmap: a #GdkColormap.
@Returns: an Xlib <type>Display*</type>.
<!-- ##### MACRO GDK_COLORMAP_XCOLORMAP ##### -->
<para>
Returns the X colormap belonging to a #GdkColormap.
</para>
@cmap: a #GdkColormap.
@Returns: an Xlib <type>Colormap</type>.
<!-- ##### MACRO GDK_SCREEN_XDISPLAY ##### -->
<para>
Returns the display of a #GdkScreen.
@@ -143,15 +109,6 @@ Returns the screen of a #GdkScreen.
@Returns: an Xlib <type>Screen*</type>.
<!-- ##### MACRO GDK_VISUAL_XVISUAL ##### -->
<para>
Returns the X visual belonging to a #GdkVisual.
</para>
@vis: a #GdkVisual.
@Returns: an Xlib <type>Visual*</type>.
<!-- ##### MACRO GDK_CURSOR_XCURSOR ##### -->
<para>
Returns the X cursor belonging to a #GdkCursor.
@@ -186,38 +143,6 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new ##### -->
<para>
</para>
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_display ##### -->
<para>
</para>
@display:
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_foreign_new_for_screen ##### -->
<para>
</para>
@screen:
@anid:
@width:
@height:
@depth:
@Returns:
<!-- ##### FUNCTION gdk_window_foreign_new ##### -->
<para>
@@ -274,24 +199,6 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_pixmap_lookup ##### -->
<para>
</para>
@anid:
@Returns:
<!-- ##### FUNCTION gdk_pixmap_lookup_for_display ##### -->
<para>
</para>
@display:
@anid:
@Returns:
<!-- ##### FUNCTION gdk_x11_lookup_xdisplay ##### -->
<para>
@@ -384,34 +291,6 @@ Another name for GDK_DRAWABLE_XID().
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_foreign_new ##### -->
<para>
</para>
@visual:
@xcolormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_get_xcolormap ##### -->
<para>
</para>
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_colormap_get_xdisplay ##### -->
<para>
</para>
@colormap:
@Returns:
<!-- ##### FUNCTION gdk_x11_cursor_get_xcursor ##### -->
<para>
@@ -474,6 +353,22 @@ Another name for GDK_DRAWABLE_XID().
@display:
<!-- ##### FUNCTION gdk_x11_display_error_trap_push ##### -->
<para>
</para>
@display:
<!-- ##### FUNCTION gdk_x11_display_error_trap_pop_ignored ##### -->
<para>
</para>
@display:
<!-- ##### FUNCTION gdk_x11_display_set_cursor_theme ##### -->
<para>

View File

@@ -132,16 +132,19 @@ content_files = \
gtk-query-immodules-3.0.xml \
gtk-update-icon-cache-3.0.xml \
gtk-builder-convert-3.0.xml \
visual_index.xml
visual_index.xml \
getting_started.xml \
overview.xml
expand_content_files = \
drawing-model.xml \
getting_started.xml \
glossary.xml \
migrating-2to3.xml \
migrating-checklist.sgml \
tree_widget.sgml \
question_index.sgml \
text_widget.sgml \
question_index.sgml
tree_widget.sgml
# Images to copy into HTML directory
HTML_IMAGES = \
@@ -315,7 +318,9 @@ HTML_IMAGES = \
$(srcdir)/images/layout-rlbt.png \
$(srcdir)/images/layout-rltb.png \
$(srcdir)/images/layout-tblr.png \
$(srcdir)/images/layout-tbrl.png
$(srcdir)/images/layout-tbrl.png \
$(srcdir)/images/window-default.png \
$(srcdir)/images/hello-world.png
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=--extra-dir=../gdk/html \

View File

@@ -333,10 +333,6 @@ How to compile GTK+ itself
<arg>--disable-Bsymbolic</arg>
<arg>--enable-Bsymbolic</arg>
</group>
<group>
<arg>--disable-shm</arg>
<arg>--enable-shm</arg>
</group>
<group>
<arg>--disable-xkb</arg>
<arg>--enable-xkb</arg>
@@ -448,17 +444,6 @@ How to compile GTK+ itself
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-shm</systemitem> and
<systemitem>--enable-shm</systemitem></title>
<para>
These options can be used to control whether GTK+ will use shared
memory to communicate with the X server when possible.
The default is 'yes'.
</para>
</formalpara>
<formalpara>
<title><systemitem>--disable-xkb</systemitem> and
<systemitem>--enable-xkb</systemitem></title>

View File

@@ -0,0 +1,108 @@
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
<chapter id="gtk-getting-started" xmlns:xi="http://www.w3.org/2003/XInclude">
<title>Getting Started with GTK+</title>
<para>This chapter is contains some tutorial information to get you
started with GTK+ programming. It assumes that you have GTK+, its
dependencies and a C compiler installed and ready to use. If you
need to build GTK+ itself first, refer to the
<link linkend="gtk-compiling">Compiling the GTK+ libraries</link>
section in this reference.</para>
<para>To begin our introduction to GTK, we'll start with the simplest
program possible. This program will create an empty 200x200 pixel
window:</para>
<para>
<inlinegraphic fileref="window-default.png" format="PNG"></inlinegraphic>
</para>
<informalexample><programlisting>
<xi:include href="../../../../examples/window-default.c" parse="text">
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
</xi:include>
</programlisting></informalexample>
<para>You can compile the program above with GCC using:</para>
<para><literallayout>
<literal>gcc `pkg-config --cflags gtk+-3.0` -o window-default window-default.c `pkg-config --libs gtk+-3.0`</literal>
</literallayout></para>
<note><para>For more information on how to compile a GTK+ application, please
refer to the <link linkend="gtk-compiling">Compiling GTK+ Applications</link>
section in this reference.</para></note>
<para>All GTK+ applications will, of course, include
<filename>gtk/gtk.h</filename>, which declares functions, types and
macros required by GTK+ applications.</para>
<warning><para>Even if GTK+ installs multiple header files, only the
top-level <filename>gtk/gtk.h</filename> header can be directly included
by third party code. The compiler will abort with an error if any other
header will be included.</para></warning>
<para>We then proceed into the <function>main</function>() function of the
application, and we declare a <varname>window</varname> variable as a pointer
of type #GtkWidget.</para>
<para>The following line will call gtk_init(), which
is the initialization function for GTK+; this function will set up GTK+,
the type system, the connection to the windowing environment, etc. The
gtk_init() takes as arguments the pointers to the command line arguments
counter and string array; this allows GTK+ to parse specific command line
arguments that control the behavior of GTK+ itself. The parsed arguments
will be removed from the array, leaving the unrecognized ones for your
application to parse.</para>
<note><para>For more information on which command line arguments GTK+
recognizes, please refer to the <link linkend="gtk-running">Running GTK+
Applications</link> section in this reference.</para></note>
<para>The call to gtk_window_new() will create a new #GtkWindow and store
it inside the <varname>window</varname> variable. The type of the window
is %GTK_WINDOW_TOPLEVEL, which means that the #GtkWindow will be managed
by the windowing system: it will have a frame, a title bar and window
controls, depending on the platform.</para>
<para>In order to terminate the application when the #GtkWindow is
destroyed, we connect the #GtkWidget::destroy signal to the gtk_main_quit()
function. This function will terminate the GTK+ main loop started by calling
gtk_main() later. The #GtkWidget::destroy signal is emitted when a widget is
destroyed, either by explicitly calling gtk_widget_destroy() or when the
widget is unparented. Top-level #GtkWindow<!-- -->s are also destroyed when
the Close window control button is clicked.</para>
<para>#GtkWidget<!-- -->s are hidden by default. By calling gtk_widget_show()
on a #GtkWidget we are asking GTK+ to set the visibility attribute so that it
can be displayed. All this work is done after the main loop has been
started.</para>
<para>The last line of interest is the call to gtk_main(). This function will
start the GTK+ main loop and will block the control flow of the
<function>main</function>() until the gtk_main_quit() function is
called.</para>
<para>The following example is slightly more complex, and tries to
showcase some of the capabilities of GTK+.</para>
<para>In the long tradition of programming languages and libraries,
it is called <emphasis>Hello, World</emphasis>.</para>
<para>
<inlinegraphic fileref="hello-world.png" format="PNG"></inlinegraphic>
</para>
<example id="gtk-getting-started-hello-world">
<title>Hello World in GTK+</title>
<programlisting>
<xi:include href="../../../../examples/hello-world.c" parse="text">
<xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
</xi:include>
</programlisting>
</example>
</chapter>

View File

@@ -16,102 +16,8 @@
<part id="gtk">
<title>GTK+ Overview</title>
<partintro>
<para>
GTK+ is a library for creating graphical user interfaces. It
works on many UNIX-like platforms, Windows, and on framebuffer
devices. GTK+ is released under the GNU Library General Public License
(GNU LGPL), which allows for flexible licensing of client
applications. GTK+ has a C-based object-oriented architecture that
allows for maximum flexibility. Bindings for other languages have
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
TOM, Ada95, Free Pascal, and Eiffel.
</para>
<para>
GTK+ depends on the following libraries:
<variablelist>
<varlistentry>
<term>GLib</term>
<listitem><para>
A general-purpose utility library, not specific to graphical user interfaces.
GLib provides many useful data types, macros, type conversions,
string utilities, file utilities, a main loop abstraction, and so on.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GObject</term>
<listitem><para>A library that provides a type system, a collection of
fundamental types including an object type, a signal system.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GIO</term>
<listitem><para>A modern, easy-to-use VFS API including abstractions for
files, drives, volumes, stream IO, as well as network programming and
DBus communication.
</para></listitem>
</varlistentry>
<varlistentry>
<term>cairo</term>
<listitem><para>Cairo is a 2D graphics library with support for multiple
output devices.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Pango</term>
<listitem><para>
Pango is a library for internationalized text handling. It centers
around the #PangoLayout object, representing a paragraph of text.
Pango provides the engine for #GtkTextView, #GtkLabel, #GtkEntry, and
other widgets that display text.
</para></listitem>
</varlistentry>
<varlistentry>
<term>ATK</term>
<listitem><para>
ATK is the Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies to interact with a
graphical user interface. For example, a screen reader uses ATK to
discover the text in an interface and read it to blind users. GTK+
widgets have built-in support for accessibility using the ATK
framework.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GdkPixbuf</term>
<listitem><para>
This is a small library which allows you to create #GdkPixbuf
("pixel buffer") objects from image data or image files.
Use a #GdkPixbuf in combination with #GtkImage to display images.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GDK</term>
<listitem><para>
GDK is the abstraction layer that allows GTK+ to support multiple
windowing systems. GDK provides drawing and window system facilities
on X11, Windows, and the Linux framebuffer device.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GTK+</term>
<listitem><para>
The GTK+ library itself contains <firstterm>widgets</firstterm>,
that is, GUI components such as #GtkButton or #GtkTextView.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</partintro>
<xi:include href="overview.xml"/>
<xi:include href="xml/getting_started.xml"/>
<xi:include href="building.sgml" />
<xi:include href="compiling.sgml" />
<xi:include href="running.sgml" />
@@ -127,6 +33,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<part id="gtkbase">
<title>GTK+ Core Reference</title>
<xi:include href="xml/gtkmain.xml" />
<xi:include href="xml/gtkfeatures.xml" />
<xi:include href="xml/gtkaccelgroup.xml" />
<xi:include href="xml/gtkaccelmap.xml" />
<xi:include href="xml/gtkclipboard.xml" />
@@ -140,7 +47,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<xi:include href="xml/gtkenums.xml" />
<xi:include href="xml/gtkstyle.xml" />
<xi:include href="xml/gtkselection.xml" />
<xi:include href="xml/gtkfeatures.xml" />
<xi:include href="xml/gtktesting.xml" />
<xi:include href="xml/filesystem.xml" />
</part>
@@ -247,6 +153,7 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<chapter id="MenusAndCombos">
<title>Menus, Combo Box, Toolbar</title>
<xi:include href="xml/gtkcombobox.xml" />
<xi:include href="xml/gtkcomboboxtext.xml" />
<xi:include href="xml/gtkcomboboxentry.xml" />
<xi:include href="xml/gtkmenu.xml" />
<xi:include href="xml/gtkmenubar.xml" />
@@ -305,7 +212,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<xi:include href="xml/gtkbbox.xml" />
<xi:include href="xml/gtkhbbox.xml" />
<xi:include href="xml/gtkvbbox.xml" />
<xi:include href="xml/gtkwrapbox.xml" />
<xi:include href="xml/gtkfixed.xml" />
<xi:include href="xml/gtkpaned.xml" />
<xi:include href="xml/gtkhpaned.xml" />
@@ -315,7 +221,6 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<xi:include href="xml/gtktable.xml" />
<xi:include href="xml/gtkexpander.xml" />
<xi:include href="xml/gtkorientable.xml" />
<xi:include href="xml/gtksizerequest.xml" />
</chapter>
<chapter id="Ornaments">
@@ -365,12 +270,12 @@ that is, GUI components such as #GtkButton or #GtkTextView.
<chapter id="AbstractObjects">
<title>Abstract Base Classes</title>
<xi:include href="xml/gtkbin.xml" />
<xi:include href="xml/gtkwidget.xml" />
<xi:include href="xml/gtkcontainer.xml" />
<xi:include href="xml/gtkbin.xml" />
<xi:include href="xml/gtkmenushell.xml" />
<xi:include href="xml/gtkmisc.xml" />
<xi:include href="xml/gtkrange.xml" />
<xi:include href="xml/gtkwidget.xml" />
<xi:include href="xml/gtkimcontext.xml" />
</chapter>

View File

@@ -767,6 +767,7 @@ gtk_color_selection_dialog_get_type
<TITLE>GtkComboBox</TITLE>
GtkComboBox
gtk_combo_box_new
gtk_combo_box_new_with_entry
gtk_combo_box_new_with_model
gtk_combo_box_get_wrap_width
gtk_combo_box_set_wrap_width
@@ -800,6 +801,9 @@ gtk_combo_box_set_focus_on_click
gtk_combo_box_get_focus_on_click
gtk_combo_box_set_button_sensitivity
gtk_combo_box_get_button_sensitivity
gtk_combo_box_get_has_entry
gtk_combo_box_set_entry_text_column
gtk_combo_box_get_entry_text_column
<SUBSECTION Standard>
GTK_TYPE_COMBO_BOX
GTK_COMBO_BOX
@@ -834,6 +838,30 @@ gtk_combo_box_entry_get_type
</SECTION>
<SECTION>
<FILE>gtkcomboboxtext</FILE>
<TITLE>GtkComboBoxText</TITLE>
GtkComboBoxText
gtk_combo_box_text_new
gtk_combo_box_text_new_with_entry
gtk_combo_box_text_append_text
gtk_combo_box_text_insert_text
gtk_combo_box_text_prepend_text
gtk_combo_box_text_remove
gtk_combo_box_text_get_active_text
<SUBSECTION Standard>
GTK_TYPE_COMBO_BOX_TEXT
GTK_COMBO_BOX_TEXT
GTK_IS_COMBO_BOX_TEXT
GTK_COMBO_BOX_TEXT_CLASS
GTK_IS_COMBO_BOX_TEXT_CLASS
GTK_COMBO_BOX_TEXT_GET_CLASS
<SUBSECTION Private>
GtkComboBoxTextPrivate
gtk_combo_box_text_get_type
</SECTION>
<FILE>gtkcontainer</FILE>
<TITLE>GtkContainer</TITLE>
GtkContainer
@@ -2970,8 +2998,6 @@ gtk_statusbar_push
gtk_statusbar_pop
gtk_statusbar_remove
gtk_statusbar_remove_all
gtk_statusbar_set_has_resize_grip
gtk_statusbar_get_has_resize_grip
gtk_statusbar_get_message_area
<SUBSECTION Standard>
GTK_STATUSBAR
@@ -4916,7 +4942,18 @@ gtk_requisition_new
gtk_requisition_copy
gtk_requisition_free
<SUBSECTION>
<SUBSECTION Width-for-Height>
GtkSizeRequestMode
GtkRequestedSize
gtk_widget_get_preferred_height
gtk_widget_get_preferred_width
gtk_widget_get_preferred_height_for_width
gtk_widget_get_preferred_width_for_height
gtk_widget_get_request_mode
gtk_widget_get_preferred_size
gtk_distribute_natural_allocation
<SUBSECTION Alignment and Margins>
GtkAlign
gtk_widget_get_halign
gtk_widget_set_halign
@@ -4931,6 +4968,18 @@ gtk_widget_set_margin_top
gtk_widget_get_margin_bottom
gtk_widget_set_margin_bottom
<SUBSECTION Expand>
gtk_widget_get_hexpand
gtk_widget_set_hexpand
gtk_widget_get_hexpand_set
gtk_widget_set_hexpand_set
gtk_widget_get_vexpand
gtk_widget_set_vexpand
gtk_widget_get_vexpand_set
gtk_widget_set_vexpand_set
gtk_widget_queue_compute_expand
gtk_widget_compute_expand
<SUBSECTION Standard>
GTK_WIDGET
GTK_IS_WIDGET
@@ -5051,6 +5100,11 @@ gtk_window_get_opacity
gtk_window_set_opacity
gtk_window_get_mnemonics_visible
gtk_window_set_mnemonics_visible
gtk_window_set_has_resize_grip
gtk_window_get_has_resize_grip
gtk_window_get_resize_grip_is_visible
gtk_window_get_resize_grip_area
<SUBSECTION Standard>
GTK_WINDOW
GTK_IS_WINDOW
@@ -5289,6 +5343,9 @@ GtkRcContext
GtkTargetEntry
GtkTargetList
GtkTargetPair
gtk_target_entry_new
gtk_target_entry_copy
gtk_target_entry_free
gtk_target_list_new
gtk_target_list_ref
gtk_target_list_unref
@@ -5483,8 +5540,6 @@ GtkScrollType
GtkSelectionMode
GtkShadowType
GtkStateType
GtkSubmenuDirection
GtkSubmenuPlacement
GtkToolbarStyle
GtkUpdateType
GtkWindowPosition
@@ -6265,30 +6320,6 @@ GTK_TYPE_ORIENTABLE
gtk_orientable_get_type
</SECTION>
<SECTION>
<FILE>gtksizerequest</FILE>
<TITLE>GtkSizeRequest</TITLE>
GtkSizeRequestMode
GtkRequestedSize
gtk_widget_get_preferred_height
gtk_widget_get_preferred_width
gtk_widget_get_preferred_height_for_width
gtk_widget_get_preferred_width_for_height
gtk_widget_get_request_mode
gtk_widget_get_preferred_size
gtk_distribute_natural_allocation
<SUBSECTION Standard>
GTK_SIZE_REQUEST
GTK_SIZE_REQUEST_CLASS
GTK_SIZE_REQUEST_GET_IFACE
GTK_IS_SIZE_REQUEST
GTK_TYPE_SIZE_REQUEST
<SUBSECTION Private>
gtk_widget_get_type
</SECTION>
<SECTION>
<FILE>gtkapplication</FILE>
<TITLE>GtkApplication</TITLE>
@@ -6315,42 +6346,3 @@ GTK_APPLICATION_GET_CLASS
gtk_application_get_type
GtkApplicationPrivate
</SECTION>
<SECTION>
<FILE>gtkwrapbox</FILE>
<TITLE>GtkWrapBox</TITLE>
GtkWrapBox
gtk_wrap_box_new
GtkWrapBoxPacking
gtk_wrap_box_insert_child
gtk_wrap_box_reorder_child
GtkWrapAllocationMode
gtk_wrap_box_set_allocation_mode
gtk_wrap_box_get_allocation_mode
GtkWrapBoxSpreading
gtk_wrap_box_set_vertical_spreading
gtk_wrap_box_get_vertical_spreading
gtk_wrap_box_set_horizontal_spreading
gtk_wrap_box_get_horizontal_spreading
gtk_wrap_box_set_vertical_spacing
gtk_wrap_box_get_vertical_spacing
gtk_wrap_box_set_horizontal_spacing
gtk_wrap_box_get_horizontal_spacing
gtk_wrap_box_set_minimum_line_children
gtk_wrap_box_get_minimum_line_children
gtk_wrap_box_set_natural_line_children
gtk_wrap_box_get_natural_line_children
<SUBSECTION Standard>
GtkWrapBoxClass
GTK_TYPE_WRAP_BOX
GTK_WRAP_BOX
GTK_WRAP_BOX_CLASS
GTK_IS_WRAP_BOX
GTK_IS_WRAP_BOX_CLASS
GTK_WRAP_BOX_GET_CLASS
<SUBSECTION Private>
gtk_wrap_box_get_type
GtkWrapBoxPrivate
</SECTION>

View File

@@ -42,6 +42,7 @@ gtk_color_selection_dialog_get_type
gtk_color_selection_get_type
gtk_combo_box_entry_get_type
gtk_combo_box_get_type
gtk_combo_box_text_get_type
gtk_container_get_type
gtk_dialog_get_type
gtk_drawing_area_get_type
@@ -176,4 +177,3 @@ gtk_vseparator_get_type
gtk_widget_get_type
gtk_window_get_type
gtk_window_group_get_type
gtk_wrap_box_get_type

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -662,6 +662,19 @@ gtk_arrow_draw (GtkWidget *widget,
</para>
</section>
<section>
<title>Resize grips</title>
<para>
The resize grip functionality has been moved from #GtkStatusbar
to #GtkWindow. Any window can now have resize grips, regardless whether
it has a statusbar or not. The functions
gtk_statusbar_set_has_resize_grip() and gtk_statusbar_get_has_resize_grip()
have disappeared, and instead there are now
gtk_window_set_has_resize_grip() and gtk_window_get_has_resize_grip().
</para>
</section>
<section>
<title>Prevent mixed linkage</title>
<para>

View File

@@ -265,7 +265,7 @@ my_widget_expose_event_handler (GtkWidget *widget, GdkEventExpose *event)
static gboolean
my_widget_key_press_event_handler (GtkWidget *widget, GdkEventKey *event)
{
guint modifiers;
GdkModifierType modifiers;
modifiers = gtk_accelerator_get_default_mod_mask (<!-- -->);

View File

@@ -31,7 +31,7 @@ or environment variables.
<para>
For up-to-date information about the current status of this port, see the
<ulink url="http://developer.imendio.com/wiki/Gtk_Mac_OS_X">project page</ulink>.
<ulink url="http://live.gnome.org/GTK+/OSX">project page</ulink>.
</para>
</refsect1>

View File

@@ -0,0 +1,100 @@
<?xml version="1.0"?>
<!DOCTYPE partintro PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
<partintro>
<para>
GTK+ is a library for creating graphical user interfaces. It
works on many UNIX-like platforms, Windows, and OS X.
GTK+ is released under the GNU Library General Public License
(GNU LGPL), which allows for flexible licensing of client
applications. GTK+ has a C-based object-oriented architecture that
allows for maximum flexibility. Bindings for many other languages have
been written, including C++, Objective-C, Guile/Scheme, Perl, Python,
TOM, Ada95, Free Pascal, and Eiffel.
</para>
<para>
GTK+ depends on the following libraries:
<variablelist>
<varlistentry>
<term>GLib</term>
<listitem><para>
A general-purpose utility library, not specific to graphical user interfaces.
GLib provides many useful data types, macros, type conversions,
string utilities, file utilities, a main loop abstraction, and so on.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GObject</term>
<listitem><para>A library that provides a type system, a collection of
fundamental types including an object type, a signal system.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GIO</term>
<listitem><para>A modern, easy-to-use VFS API including abstractions for
files, drives, volumes, stream IO, as well as network programming and
DBus communication.
</para></listitem>
</varlistentry>
<varlistentry>
<term>cairo</term>
<listitem><para>Cairo is a 2D graphics library with support for multiple
output devices.
</para></listitem>
</varlistentry>
<varlistentry>
<term>Pango</term>
<listitem><para>
Pango is a library for internationalized text handling. It centers
around the PangoLayout object, representing a paragraph of text.
Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and
other widgets that display text.
</para></listitem>
</varlistentry>
<varlistentry>
<term>ATK</term>
<listitem><para>
ATK is the Accessibility Toolkit. It provides a set of generic
interfaces allowing accessibility technologies to interact with a
graphical user interface. For example, a screen reader uses ATK to
discover the text in an interface and read it to blind users. GTK+
widgets have built-in support for accessibility using the ATK
framework.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GdkPixbuf</term>
<listitem><para>
This is a small library which allows you to create GdkPixbuf
("pixel buffer") objects from image data or image files.
Use a GdkPixbuf in combination with GtkImage to display images.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GDK</term>
<listitem><para>
GDK is the abstraction layer that allows GTK+ to support multiple
windowing systems. GDK provides window system facilities on X11, Windows,
and OS X.
</para></listitem>
</varlistentry>
<varlistentry>
<term>GTK+</term>
<listitem><para>
The GTK+ library itself contains <firstterm>widgets</firstterm>,
that is, GUI components such as GtkButton or GtkTextView.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</partintro>

View File

@@ -9,6 +9,7 @@ gtkcalendar.sgml
gtkcelleditable.sgml
gtkcombobox.sgml
gtkcomboboxentry.sgml
gtkcontainer.sgml
gtkeditable.sgml
gtkentrybuffer.sgml
gtkhbox.sgml
@@ -34,6 +35,7 @@ gtkrecentchooserwidget.sgml
gtkrecentmanager.sgml
gtkscale.sgml
gtkscalebutton.sgml
gtkscrolledwindow.sgml
gtkseparator.sgml
gtkseparatormenuitem.sgml
gtkseparatortoolitem.sgml

View File

@@ -1,539 +0,0 @@
<!-- ##### SECTION Title ##### -->
GtkContainer
<!-- ##### SECTION Short_Description ##### -->
Base class for widgets which contain other widgets
<!-- ##### SECTION Long_Description ##### -->
<para>
A GTK+ user interface is constructed by nesting widgets inside widgets.
Container widgets are the inner nodes in the resulting tree of widgets:
they contain other widgets. So, for example, you might have a #GtkWindow
containing a #GtkFrame containing a GtkLabel. If you wanted an image instead
of a textual label inside the frame, you might replace the #GtkLabel widget
with a #GtkImage widget.
</para>
<para>
There are two major kinds of container widgets in GTK+. Both are subclasses
of the abstract #GtkContainer base class.
</para>
<para>
The first type of container widget has a single child widget and derives
from #GtkBin. These containers are <firstterm>decorators</firstterm>, which
add some kind of functionality to the child. For example, a #GtkButton makes
its child into a clickable button; a #GtkFrame draws a frame around its child
and a #GtkWindow places its child widget inside a top-level window.
</para>
<para>
The second type of container can have more than one child; its purpose is to
manage <firstterm>layout</firstterm>. This means that these containers assign
sizes and positions to their children. For example, a #GtkHBox arranges its
children in a horizontal row, and a #GtkTable arranges the widgets it contains
in a two-dimensional grid.
</para>
<para>
To fulfill its task, a layout container must negotiate the size requirements
with its parent and its children. The basic form of this negotiation is
carried out in two phases, <firstterm>size requisition</firstterm> and
<firstterm>size allocation</firstterm>, which are implemented by the
size_request() and size_allocate() virtual functions in #GtkWidget.
</para>
<para>
GTK+ also supports a more complicated form of size negotiation called
<firstterm>width-for-height</firstterm> (and its dual
<firstterm>height-for-width</firstterm>). See #GtkExtendedLayout
to learn more about width-for-height geometry management.
</para>
<refsect2 id="size-requisition"><title>Size Requisition</title>
<para>
The size requisition of a widget is it's desired width and height.
This is represented by a #GtkRequisition.
</para>
<para>
How a widget determines its desired size depends on the widget.
A #GtkLabel, for example, requests enough space to display all its text.
Container widgets generally base their size request on the requisitions
of their children.
</para>
<para>
The size requisition phase of the widget layout process operates top-down.
It starts at a top-level widget, typically a #GtkWindow. The top-level widget
asks its child for its size requisition by calling gtk_widget_get_preferred_size().
To determine its requisition, the child asks its own children for their
requisitions and so on. Finally, the top-level widget will get a requisition
back from its child.
</para>
</refsect2>
<refsect2 id="size-allocation"><title>Size Allocation</title>
<para>
When the top-level widget has determined how much space its child would like
to have, the second phase of the size negotiation, size allocation, begins.
Depending on its configuration (see gtk_window_set_resizable()), the top-level
widget may be able to expand in order to satisfy the size request or it may
have to ignore the size request and keep its fixed size. It then tells its
child widget how much space it gets by calling gtk_widget_size_allocate().
The child widget divides the space among its children and tells each child
how much space it got, and so on. Under normal circumstances, a #GtkWindow
will always give its child the amount of space the child requested.
</para>
<para>
A child's size allocation is represented by a #GtkAllocation. This struct
contains not only a width and height, but also a position (i.e. X and Y
coordinates), so that containers can tell their children not only how much
space they have gotten, but also where they are positioned inside the space
available to the container.
</para>
<para>
Widgets are required to honor the size allocation they receive; a size
request is only a request, and widgets must be able to cope with any size.
</para>
</refsect2>
<refsect2 id="child-properties"><title>Child properties</title>
<para>
<structname>GtkContainer</structname> introduces <firstterm>child
properties</firstterm> - these are object properties that are not specific
to either the container or the contained widget, but rather to their relation.
Typical examples of child properties are the position or pack-type of a widget
which is contained in a #GtkBox.</para>
<para>
Use gtk_container_class_install_child_property() to install child properties
for a container class and gtk_container_class_find_child_property() or
gtk_container_class_list_child_properties() to get information about existing
child properties.
</para>
<para>
To set the value of a child property, use gtk_container_child_set_property(),
gtk_container_child_set() or gtk_container_child_set_valist().
To obtain the value of a child property, use
gtk_container_child_get_property(), gtk_container_child_get() or
gtk_container_child_get_valist(). To emit notification about child property
changes, use gtk_widget_child_notify().
</para>
</refsect2>
<refsect2 id="GtkContainer-BUILDER-UI">
<title>GtkContainer as GtkBuildable</title>
<para>
The GtkContainer implementation of the GtkBuildable interface
supports a &lt;packing&gt; element for children, which can
contain multiple &lt;property&gt; elements that specify
child properties for the child.
</para>
<example>
<title>Child properties in UI definitions</title>
<programlisting><![CDATA[
<object class="GtkVBox">
<child>
<object class="GtkLabel"/>
<packing>
<property name="pack-type">start</property>
</packing>
</child>
</object>
]]></programlisting>
</example>
<para>
Since 2.16, child properties can also be marked as translatable using
the same "translatable", "comments" and "context" attributes that are used
for regular properties.
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkContainer ##### -->
<para>
</para>
<!-- ##### SIGNAL GtkContainer::add ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### SIGNAL GtkContainer::check-resize ##### -->
<para>
</para>
@container: the object which received the signal.
<!-- ##### SIGNAL GtkContainer::remove ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### SIGNAL GtkContainer::set-focus-child ##### -->
<para>
</para>
@container: the object which received the signal.
@widget:
<!-- ##### ARG GtkContainer:border-width ##### -->
<para>
</para>
<!-- ##### ARG GtkContainer:child ##### -->
<para>
</para>
<!-- ##### ARG GtkContainer:resize-mode ##### -->
<para>
</para>
<!-- ##### MACRO GTK_IS_RESIZE_CONTAINER ##### -->
<para>
</para>
@widget:
<!-- ##### MACRO GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID ##### -->
<para>
This macro should be used to emit a standard warning about unexpected
properties in set_child_property() and get_child_property() implementations.
</para>
@object: the #GObject on which set_child_property() or get_child_property()
was called
@property_id: the numeric id of the property
@pspec: the #GParamSpec of the property
<!-- ##### FUNCTION gtk_container_add ##### -->
<para>
</para>
@container:
@widget:
<!-- ##### FUNCTION gtk_container_remove ##### -->
<para>
</para>
@container:
@widget:
<!-- ##### FUNCTION gtk_container_add_with_properties ##### -->
<para>
</para>
@container:
@widget:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_get_resize_mode ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_resize_mode ##### -->
<para>
</para>
@container:
@resize_mode:
<!-- ##### FUNCTION gtk_container_check_resize ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_foreach ##### -->
<para>
</para>
@container:
@callback:
@callback_data:
<!-- ##### FUNCTION gtk_container_get_children ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_reallocate_redraws ##### -->
<para>
</para>
@container:
@needs_redraws:
<!-- ##### FUNCTION gtk_container_get_focus_child ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_child ##### -->
<para>
</para>
@container:
@child:
<!-- ##### FUNCTION gtk_container_get_focus_vadjustment ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_vadjustment ##### -->
<para>
</para>
@container:
@adjustment:
<!-- ##### FUNCTION gtk_container_get_focus_hadjustment ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_hadjustment ##### -->
<para>
</para>
@container:
@adjustment:
<!-- ##### FUNCTION gtk_container_resize_children ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_child_type ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_child_get ##### -->
<para>
</para>
@container:
@child:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_child_set ##### -->
<para>
</para>
@container:
@child:
@first_prop_name:
@Varargs:
<!-- ##### FUNCTION gtk_container_child_get_property ##### -->
<para>
</para>
@container:
@child:
@property_name:
@value:
<!-- ##### FUNCTION gtk_container_child_set_property ##### -->
<para>
</para>
@container:
@child:
@property_name:
@value:
<!-- ##### FUNCTION gtk_container_child_get_valist ##### -->
<para>
</para>
@container:
@child:
@first_property_name:
@var_args:
<!-- ##### FUNCTION gtk_container_child_set_valist ##### -->
<para>
</para>
@container:
@child:
@first_property_name:
@var_args:
<!-- ##### FUNCTION gtk_container_forall ##### -->
<para>
</para>
@container:
@callback:
@callback_data:
<!-- ##### FUNCTION gtk_container_get_border_width ##### -->
<para>
</para>
@container:
@Returns:
<!-- ##### FUNCTION gtk_container_set_border_width ##### -->
<para>
</para>
@container:
@border_width:
<!-- ##### FUNCTION gtk_container_propagate_expose ##### -->
<para>
</para>
@container:
@child:
@event:
<!-- ##### FUNCTION gtk_container_get_focus_chain ##### -->
<para>
</para>
@container:
@focusable_widgets:
@Returns:
<!-- ##### FUNCTION gtk_container_set_focus_chain ##### -->
<para>
</para>
@container:
@focusable_widgets:
<!-- ##### FUNCTION gtk_container_unset_focus_chain ##### -->
<para>
</para>
@container:
<!-- ##### FUNCTION gtk_container_class_find_child_property ##### -->
<para>
</para>
@cclass:
@property_name:
@Returns:
<!-- ##### FUNCTION gtk_container_class_install_child_property ##### -->
<para>
</para>
@cclass:
@property_id:
@pspec:
<!-- ##### FUNCTION gtk_container_class_list_child_properties ##### -->
<para>
</para>
@cclass:
@n_properties:
@Returns:

View File

@@ -14,22 +14,22 @@ not require extensive effort on the user's part.
<para>
GTK+ treats a dialog as a window split vertically. The top section is a
#GtkVBox, and is where widgets such as a #GtkLabel or a #GtkEntry should
be packed. The bottom area is known as the
<structfield>action_area</structfield>. This is generally used for
packing buttons into the dialog which may perform functions such as
cancel, ok, or apply. The two areas are separated by a #GtkHSeparator.
#GtkVBox known as the <structfield>content_area</structfield>, and is
where widgets such as a #GtkLabel or a #GtkEntry should be packed.
The bottom area is known as the <structfield>action_area</structfield>.
This is generally used for packing buttons into the dialog which may
perform functions such as cancel, ok, or apply.
</para>
<para>
#GtkDialog boxes are created with a call to gtk_dialog_new() or
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended; it
allows you to set the dialog title, some convenient flags, and add simple
GtkDialog boxes are created with a call to gtk_dialog_new() or
gtk_dialog_new_with_buttons(). gtk_dialog_new_with_buttons() is recommended;
it allows you to set the dialog title, some convenient flags, and add simple
buttons.
</para>
<para>
If 'dialog' is a newly created dialog, the two primary areas of the window
If 'dialog' is a newly created dialog, the two primary areas of the window
can be accessed through gtk_dialog_get_content_area() and
gtk_dialog_get_action_area(), as can be seen from the example, below.
</para>
@@ -196,11 +196,6 @@ as any other #GtkHButtonBox.
@dialog:
@arg1:
<!-- ##### ARG GtkDialog:has-separator ##### -->
<para>
</para>
<!-- ##### ARG GtkDialog:action-area-border ##### -->
<para>
@@ -230,8 +225,6 @@ Flags used to influence dialog construction.
see gtk_window_set_modal().
@GTK_DIALOG_DESTROY_WITH_PARENT: Destroy the dialog when its
parent is destroyed, see gtk_window_set_destroy_with_parent().
@GTK_DIALOG_NO_SEPARATOR: Don't put a separator between the
action area and the dialog content.
<!-- ##### ENUM GtkResponseType ##### -->
<para>
@@ -325,15 +318,6 @@ directly, but into the @vbox and @action_area, as described above.
@response_id:
<!-- ##### FUNCTION gtk_dialog_get_has_separator ##### -->
<para>
</para>
@dialog:
@Returns:
<!-- ##### FUNCTION gtk_dialog_set_default_response ##### -->
<para>
@@ -343,15 +327,6 @@ directly, but into the @vbox and @action_area, as described above.
@response_id:
<!-- ##### FUNCTION gtk_dialog_set_has_separator ##### -->
<para>
</para>
@dialog:
@setting:
<!-- ##### FUNCTION gtk_dialog_set_response_sensitive ##### -->
<para>

View File

@@ -437,7 +437,7 @@ Registers a function to be called when the mainloop is started.
@function: Function to invoke when gtk_main() is called next.
@data: Data to pass to that function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_add_destroy ##### -->
<para>
@@ -447,6 +447,7 @@ is quit.
@main_level: Level of the mainloop which shall trigger the destruction.
@object: Object to be destroyed.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_add ##### -->
@@ -462,6 +463,7 @@ Registers a function to be called when an instance of the mainloop is left.
@data: Pointer to pass when calling @function.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a %NULL pointer in @function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_add_full ##### -->
@@ -488,6 +490,7 @@ used by GTK+ wrappers for languages other than C.
@destroy: Function to call to destruct @data. Gets @data as argument.
@Returns: A handle for this quit handler (you need this for gtk_quit_remove())
or 0 if you passed a %NULL pointer in @function.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_remove ##### -->
@@ -496,6 +499,7 @@ Removes a quit handler by its identifier.
</para>
@quit_handler_id: Identifier for the handler returned when installing it.
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### FUNCTION gtk_quit_remove_by_data ##### -->
@@ -504,6 +508,7 @@ Removes a quit handler identified by its @data field.
</para>
@data: The pointer passed as @data to gtk_quit_add() or gtk_quit_add_full().
@Deprecated: This function is going to be removed in GTK+ 3.0
<!-- ##### MACRO GTK_PRIORITY_RESIZE ##### -->

View File

@@ -36,21 +36,6 @@ orientation of the bar, optional text can be displayed along with
the bar, and the step size used in activity mode can be set.
</para>
<note>
<para>
The #GtkProgressBar/#GtkProgress API in GTK 1.2 was bloated, needlessly complex
and hard to use properly. Therefore #GtkProgress has been deprecated
completely and the #GtkProgressBar API has been reduced to the following 10
functions: gtk_progress_bar_new(), gtk_progress_bar_pulse(),
gtk_progress_bar_set_text(), gtk_progress_bar_set_fraction(),
gtk_progress_bar_set_pulse_step(), gtk_progress_bar_set_orientation(),
gtk_progress_bar_get_text(), gtk_progress_bar_get_fraction(),
gtk_progress_bar_get_pulse_step(), gtk_progress_bar_get_orientation().
These have been grouped at the beginning of this section, followed by
a large chunk of deprecated 1.2 compatibility functions.
</para>
</note>
<!-- ##### SECTION See_Also ##### -->
<para>
@@ -79,7 +64,7 @@ and should be accessed using the functions below.
</para>
<!-- ##### ARG GtkProgressBar:orientation ##### -->
<!-- ##### ARG GtkProgressBar:inverted ##### -->
<para>
</para>
@@ -164,27 +149,16 @@ Creates a new #GtkProgressBar.
@Returns:
<!-- ##### ENUM GtkProgressBarOrientation ##### -->
<para>
An enumeration representing possible orientations and growth
directions for the visible progress bar.
</para>
@GTK_PROGRESS_LEFT_TO_RIGHT: A horizontal progress bar growing from left to right.
@GTK_PROGRESS_RIGHT_TO_LEFT: A horizontal progress bar growing from right to left.
@GTK_PROGRESS_BOTTOM_TO_TOP: A vertical progress bar growing from bottom to top.
@GTK_PROGRESS_TOP_TO_BOTTOM: A vertical progress bar growing from top to bottom.
<!-- ##### FUNCTION gtk_progress_bar_set_orientation ##### -->
<!-- ##### FUNCTION gtk_progress_bar_set_inverted ##### -->
<para>
</para>
@pbar:
@orientation:
@inverted:
<!-- ##### FUNCTION gtk_progress_bar_get_orientation ##### -->
<!-- ##### FUNCTION gtk_progress_bar_get_inverted ##### -->
<para>
</para>
@@ -263,5 +237,3 @@ directions for the visible progress bar.
@pbar:
@Returns:

View File

@@ -1,282 +0,0 @@
<!-- ##### SECTION Title ##### -->
GtkScrolledWindow
<!-- ##### SECTION Short_Description ##### -->
Adds scrollbars to its child widget
<!-- ##### SECTION Long_Description ##### -->
<para>
#GtkScrolledWindow is a #GtkBin subclass: it's a container
the accepts a single child widget. #GtkScrolledWindow adds scrollbars
to the child widget and optionally draws a beveled frame around the
child widget.
</para>
<para>
The scrolled window can work in two ways. Some widgets have native
scrolling support; these widgets have "slots" for #GtkAdjustment
objects.
<footnote><para>The scrolled window installs #GtkAdjustment objects in
the child window's slots using the set_scroll_adjustments_signal,
found in #GtkWidgetClass. (Conceptually, these widgets implement a
"Scrollable" interface; because GTK+ 1.2 lacked interface support in
the object system, this interface is hackily implemented as a signal
in #GtkWidgetClass. The GTK+ 2.0 object system would allow a clean
implementation, but it wasn't worth breaking the
API.)</para></footnote>
Widgets with native scroll support include #GtkTreeView, #GtkTextView,
and #GtkLayout.
</para>
<para>
For widgets that lack native scrolling support, the #GtkViewport
widget acts as an adaptor class, implementing scrollability for child
widgets that lack their own scrolling capabilities. Use #GtkViewport
to scroll child widgets such as #GtkTable, #GtkBox, and so on.
</para>
<para>
If a widget has native scrolling abilities, it can be added to the
#GtkScrolledWindow with gtk_container_add(). If a widget does not, you
must first add the widget to a #GtkViewport, then add the #GtkViewport
to the scrolled window. The convenience function
gtk_scrolled_window_add_with_viewport() does exactly this, so you can
ignore the presence of the viewport.
</para>
<para>
The position of the scrollbars is controlled by the scroll
adjustments. See #GtkAdjustment for the fields in an adjustment - for
#GtkScrollbar, used by #GtkScrolledWindow, the "value" field
represents the position of the scrollbar, which must be between the
"lower" field and "upper - page_size." The "page_size" field
represents the size of the visible scrollable area. The
"step_increment" and "page_increment" fields are used when the user
asks to step down (using the small stepper arrows) or page down (using
for example the PageDown key).
</para>
<para>
If a #GtkScrolledWindow doesn't behave quite as you would like, or
doesn't have exactly the right layout, it's very possible to set up
your own scrolling with #GtkScrollbar and for example a #GtkTable.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkViewport, #GtkAdjustment, #GtkWidgetClass
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkScrolledWindow ##### -->
<para>
There are no public fields in the #GtkScrolledWindow struct; it should
only be accessed using the functions below.
</para>
<!-- ##### SIGNAL GtkScrolledWindow::move-focus-out ##### -->
<para>
</para>
@scrolledwindow:
@arg1:
<!-- ##### SIGNAL GtkScrolledWindow::scroll-child ##### -->
<para>
</para>
@scrolledwindow:
@arg1:
@arg2:
@Returns:
<!-- ##### ARG GtkScrolledWindow:hadjustment ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:hscrollbar-policy ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:shadow-type ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:vadjustment ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:vscrollbar-policy ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:window-placement ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:window-placement-set ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:scrollbar-spacing ##### -->
<para>
</para>
<!-- ##### ARG GtkScrolledWindow:scrollbars-within-bevel ##### -->
<para>
</para>
<!-- ##### FUNCTION gtk_scrolled_window_new ##### -->
<para>
</para>
@hadjustment:
@vadjustment:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_hadjustment ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_vadjustment ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_hscrollbar ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_vscrollbar ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_set_policy ##### -->
<para>
</para>
@scrolled_window:
@hscrollbar_policy:
@vscrollbar_policy:
<!-- ##### FUNCTION gtk_scrolled_window_add_with_viewport ##### -->
<para>
</para>
@scrolled_window:
@child:
<!-- ##### FUNCTION gtk_scrolled_window_set_placement ##### -->
<para>
</para>
@scrolled_window:
@window_placement:
<!-- ##### FUNCTION gtk_scrolled_window_unset_placement ##### -->
<para>
</para>
@scrolled_window:
<!-- ##### FUNCTION gtk_scrolled_window_set_shadow_type ##### -->
<para>
</para>
@scrolled_window:
@type:
<!-- ##### FUNCTION gtk_scrolled_window_set_hadjustment ##### -->
<para>
</para>
@scrolled_window:
@hadjustment:
<!-- ##### FUNCTION gtk_scrolled_window_set_vadjustment ##### -->
<para>
</para>
@scrolled_window:
@vadjustment:
<!-- ##### FUNCTION gtk_scrolled_window_get_placement ##### -->
<para>
</para>
@scrolled_window:
@Returns:
<!-- ##### FUNCTION gtk_scrolled_window_get_policy ##### -->
<para>
</para>
@scrolled_window:
@hscrollbar_policy:
@vscrollbar_policy:
<!-- ##### FUNCTION gtk_scrolled_window_get_shadow_type ##### -->
<para>
</para>
@scrolled_window:
@Returns:

View File

@@ -22,8 +22,11 @@ convenient (but slightly less flexible) gtk_table_attach_defaults().
To alter the space next to a specific row, use gtk_table_set_row_spacing(),
and for a column, gtk_table_set_col_spacing().</para>
<para>
The gaps between <emphasis>all</emphasis> rows or columns can be changed by calling
gtk_table_set_row_spacings() or gtk_table_set_col_spacings() respectively.
The gaps between <emphasis>all</emphasis> rows or columns can be changed by
calling gtk_table_set_row_spacings() or gtk_table_set_col_spacings()
respectively. Note that spacing is added <emphasis>between</emphasis> the
children, while padding added by gtk_table_atach() is added <emphasis>on
either side</emphasis> of the widget it belongs to.
</para>
<para>
gtk_table_set_homogeneous(), can be used to set whether all cells in the
@@ -169,6 +172,17 @@ specified by @left_attach, @right_attach, @top_attach and @bottom_attach.
These each represent the leftmost, rightmost, uppermost and lowest column
and row numbers of the table. (Columns and rows are indexed from zero).
</para>
<para>
To make a button occupy the lower right cell of a 2x2 table, use
<informalexample><programlisting>
gtk_table_attach (table, button,
1, 2, /* left, right attach */
1, 2, /* top, bottom attach */
xoptions, yoptions,
xpadding, ypadding);
</programlisting></informalexample>
If you want to make the button span the entire bottom row, use @left_attach == 0 and @right_attach = 2 instead.
</para>
@table: The #GtkTable to add a new widget to.
@child: The widget to add.

View File

@@ -282,12 +282,21 @@ create_combo_box_entry (void)
GtkWidget *widget;
GtkWidget *align;
GtkWidget *child;
GtkTreeModel *model;
gtk_rc_parse_string ("style \"combo-box-entry-style\" {\n"
" GtkComboBox::appears-as-list = 1\n"
"}\n"
"widget_class \"GtkComboBoxEntry\" style \"combo-box-entry-style\"\n" );
widget = gtk_combo_box_entry_new_text ();
model = (GtkTreeModel *)gtk_list_store_new (1, G_TYPE_STRING);
widget = g_object_new (GTK_TYPE_COMBO_BOX,
"has-entry", TRUE,
"model", model,
"entry-text-column", 0,
NULL);
g_object_unref (model);
child = gtk_bin_get_child (GTK_BIN (widget));
gtk_entry_set_text (GTK_ENTRY (child), "Combo Box Entry");
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
@@ -307,8 +316,8 @@ create_combo_box (void)
"}\n"
"widget_class \"GtkComboBox\" style \"combo-box-style\"\n" );
widget = gtk_combo_box_new_text ();
gtk_combo_box_append_text (GTK_COMBO_BOX (widget), "Combo Box");
widget = gtk_combo_box_text_new ();
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Combo Box");
gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
@@ -919,7 +928,6 @@ create_statusbar (void)
widget = gtk_statusbar_new ();
align = gtk_alignment_new (0.5, 1.0, 1.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), widget);
gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (widget), TRUE);
gtk_statusbar_push (GTK_STATUSBAR (widget), 0, "Hold on...");
gtk_box_pack_end (GTK_BOX (vbox), align, FALSE, FALSE, 0);

View File

@@ -1,78 +0,0 @@
include $(top_srcdir)/Makefile.decl
.PHONY: html pdf
EXTRA_DIST += \
gtk-tut.sgml \
images/arrow.png \
images/aspectframe.png \
images/base.png \
images/buttonbox.png \
images/buttons.png \
images/calendar.png \
images/colorsel.png \
images/entry.png \
images/eventbox.png \
images/filesel.png \
images/fixed.png \
images/frame.png \
images/gtkdial.png \
images/helloworld.png \
images/helloworld2.png \
images/label.png \
images/menu.png \
images/notebook.png \
images/packbox1.png \
images/packbox2.png \
images/paned.png \
images/progressbar.png \
images/radiobuttons.png \
images/rangewidgets.png \
images/rulers.png \
images/scribble.png \
images/scrolledwin.png \
images/spinbutton.png \
images/statusbar.png \
images/table.png \
images/tictactoe.png
if HAVE_DOCBOOK
html: gtk-tut.sgml
if test -w $(srcdir); then \
(cd $(srcdir); \
db2html gtk-tut.sgml; \
test -d html && rm -r html; \
mv gtk-tut html; \
mkdir html/images; \
cp images/*.png html/images); \
fi
pdf: gtk-tut.sgml
if test -w $(srcdir); then \
(cd $(srcdir); db2pdf gtk-tut.sgml); \
fi
all-local: html
dist-hook: html
cp -Rp $(srcdir)/html $(distdir)
else
html:
echo "***"
echo "*** Warning: Tutorial not built"
echo "***"
pdf:
echo "***"
echo "*** Warning: Tutorial not built"
echo "***"
dist-hook:
echo "***"
echo "*** Warning: Tutorial not built"
echo "*** DISTRIBUTION IS INCOMPLETE"
echo "***"
endif
-include $(top_srcdir)/git.mk

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -1,914 +0,0 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: (ImageMagick)
%%Title: (helloworld.eps)
%%CreationDate: (Sat Aug 24 13:30:10 2002)
%%BoundingBox: 0 0 106 72
%%DocumentData: Clean7Bit
%%LanguageLevel: 1
%%Pages: 1
%%EndComments
%%BeginDefaults
%%EndDefaults
%%BeginProlog
%
% Display a color image. The image is displayed in color on
% Postscript viewers or printers that support color, otherwise
% it is displayed as grayscale.
%
/DirectClassPacket
{
%
% Get a DirectClass packet.
%
% Parameters:
% red.
% green.
% blue.
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/DirectClassImage
{
%
% Display a DirectClass image.
%
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ DirectClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayDirectClassPacket } image
} ifelse
} bind def
/GrayDirectClassPacket
{
%
% Get a DirectClass packet; convert to grayscale.
%
% Parameters:
% red
% green
% blue
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/GrayPseudoClassPacket
{
%
% Get a PseudoClass packet; convert to grayscale.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassPacket
{
%
% Get a PseudoClass packet.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassImage
{
%
% Display a PseudoClass image.
%
% Parameters:
% class: 0-PseudoClass or 1-Grayscale.
%
currentfile buffer readline pop
token pop /class exch def pop
class 0 gt
{
currentfile buffer readline pop
token pop /depth exch def pop
/grays columns 8 add depth sub depth mul 8 idiv string def
columns rows depth
[
columns 0 0
rows neg 0 rows
]
{ currentfile grays readhexstring pop } image
}
{
%
% Parameters:
% colors: number of colors in the colormap.
% colormap: red, green, blue color packets.
%
currentfile buffer readline pop
token pop /colors exch def pop
/colors colors 3 mul def
/colormap colors string def
currentfile colormap readhexstring pop pop
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ PseudoClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayPseudoClassPacket } image
} ifelse
} ifelse
} bind def
/DisplayImage
{
%
% Display a DirectClass or PseudoClass image.
%
% Parameters:
% x & y translation.
% x & y scale.
% label pointsize.
% image label.
% image columns & rows.
% class: 0-DirectClass or 1-PseudoClass.
% compression: 0-none or 1-RunlengthEncoded.
% hex color packets.
%
gsave
/buffer 512 string def
/byte 1 string def
/color_packet 3 string def
/pixels 768 string def
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
x y translate
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
currentfile buffer readline pop
token pop /pointsize exch def pop
/Times-Roman findfont pointsize scalefont setfont
x y scale
currentfile buffer readline pop
token pop /columns exch def
token pop /rows exch def pop
currentfile buffer readline pop
token pop /class exch def pop
currentfile buffer readline pop
token pop /compression exch def pop
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
grestore
} bind def
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 106 72
userdict begin
DisplayImage
0 0
106 72
12.000000
106 72
0
0
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000094857b000000c5c2ee
9495d57b79cd6a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc56a6dc5
6a6dc56a6dc5dedadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadededadededadededadededadecdcecd0000000000000000009495d53134b43134b4
3134b43134b43130ac3130ac3130ac292cac292cac292cac292cac292cac292cac292cac
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededededededededededededededededededededededededededededede
dededededededededee6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6dededededede
dededededededededededededededededededededededededededededededededededede
dededee6e2e6e6e2e6cdcacd0000000000000000007b79cd3134b43130ac3130ac292cac
2024ac181cac1818a41818a41818a41818a41818a41818a41818a41818a41818a41818a4
181cac2024aceeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeaeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaeeeeeaeee6e2e6dededededade
dedadededadededadededadededadededadededadededadededadedededee6e2e6eeeeee
eeeeeeeeeaeeeeeaeee6e2e6dededededadededadededadededadededadededadededade
dedadededadededadedededee6e2e6eeeeeeeeeeeeeeeaeeeeeaeee6e2e6dededededade
dedadededadededadededadededadededadededadededadededadedededee6e2e6eeeaee
eeeeeec5c2c50000000000000000006265c5292cac2928ac2024ac00005200005200004a
00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a080ca4
e6e2e6dededededadededadededadedededee6e2e6eeeaeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6e6e67371736a696a6265626261625a5d5a5a5d5a
5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a626162626562d5d6d5eeeeeeeeeeeee6e6e6
7371736a696a6265626261625a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a
626162626562d5d6d5eeeeeeeeeeeee6e6e67371736a696a6265626261625a5d5a5a5d5a
5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a5a5d5a626162626562d5d6d5e6e2e6eeeaeebdbabd
0000000000000000005a5dc52024ac2020ac1818a400004abdbae68385d56265c55250bd
5250bd5250bd5250bd5250bd5250bd5250bd5250bd2024ac00004100009400007b000073
00007300006a000073000073cdcacdd5d6d5dededee6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6e6e2e6
e6e2e6e6e2e6e6e2e6d5d6d5626562ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffcdcecd525052b4b6b4e6e2e6e6e2e6d5d6d5626562ffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcdcecd525052
b4b6b4e6e2e6e6e2e6d5d6d5626562ffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffcdcecd525052b4b6b4cdcacdd5d6d5b4aeac000000000000
0000005a59bd181cac1818a40808a400004a8381cd181ca4181cac181cac181cac181cac
181ca4181cac181cac181cac181cac00006200003100007bbdbae68b89d56a69c55a59bd
181ca4000062acaeacc5c2c5cdcecdd5d6d5dedadededadededadededadededadededade
dedadededadededadededadededadededadededadededadededadededadededadededade
dedadec5c6c55a5d5affffffdededededededededededededededededededededededede
dededededede7b7d7b4140419c9d9cdedadededadec5c6c55a5d5affffffdededededede
dededededededededededededededededededededededede7b7d7b4140419c9d9cdedade
dedadec5c6c55a5d5affffffdededededededededededededededededededededededede
dededededede7b7d7b4140419c9d9cbdbabdcdcacda4a5a40000000000000000005250bd
1014a4080ca400009c0000415255bd1014a41014a40000001014a41014a41010a41014a4
0000001014a41014a40000620000290000738381cd1014a41014a41014a400007300004a
9c999cb4b6b4c5c6c5d5d2d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5bdbebd
525552ffffffdedadededadededadededadededadededadededadededadededadededade
7b7d7b3938398b8d8bd5d6d5d5d6d5bdbebd525552ffffffdedadededadededadededade
dedadededadededadededadededadededade7b7d7b3938398b8d8bd5d6d5d5d6d5bdbebd
525552ffffffdedadededadededadededadededadededadededadededadededadededade
7b7d7b3938398b8d8bacaeacc5c6c59c999c0000000000000000004a48bd080ca400049c
000094000041393cb40808a4000000000000000000080ca40808a4000000000000000000
080ca400005a00002000006a5a5dc5080ca4080ca40808a400006a0000418b8d8bacaaac
bdbebdcdcecdd5d2d5d5d2d5d5d2d5d5d2d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5bdbebd525552ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d57b7d7b313031
838583d5d6d5d5d6d5bdbebd525552ffffffd5d6d5d5d6d5000000000000000000000000
000000000000d5d6d5d5d6d57b7d7b313031838583d5d6d5d5d6d5bdbebd525552ffffff
d5d6d5d5d6d5000000000000000000000000000000000000d5d6d5d5d6d57b7d7b313031
838583acaaacc5c2c59491940000000000000000004140b400009c00009c00008b000039
3134b400009c00009c00000000000000000000000000000000000000009c00009c00005a
0000200000624140b400009c00009c00009c00006a0000397b7d7b9c999cacaeacbdbebd
c5c2c5c5c6c5cdcecdd5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5
d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5bdbabd525052ffffffd5d2d5d5d2d5
d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d5d5d2d57b7d7b313031838583d5d2d5
d5d2d5bdbabd525052ffffffd5d2d5d5d2d5000000000000000000000000000000000000
d5d2d5d5d2d57b7d7b313031838583d5d2d5d5d2d5bdbabd525052ffffffd5d2d5d5d2d5
000000000000000000000000000000000000d5d2d5d5d2d57b7d7b313031838583a4a5a4
bdbebd8b898b0000000000000000004140b400009400009400008b000039292cac000094
00009400009400000000000000000000000000009400009400009400005200002000005a
00009400006200006200006200006200003900004100005200005a00006200006abdbabd
c5c2c5cdcacdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdb4b6b4525052ffffffcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecd7b7d7b313031838183cdcecdcdcecdb4b6b4
525052ffffffcdcecdcdcecd000000000000000000000000000000000000cdcecdcdcecd
7b7d7b313031838183cdcecdcdcecdb4b6b4525052ffffffcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecd7b7d7b313031838183a4a5a4bdbebd838183
0000000000000000004140b400009400008b0000830000392024ac00008b00008b00008b
00000000000000000000000000008b00008b00008b00005200002000005a000039000039
000039000031000039acaede7371c54a48bd3134b400008b00005aa4a5a4b4b6b4c5c2c5
cdcacdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdb4b6b4525052ffffffcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdcdcacdcdcacdcdcacd7b7d7b292c29838183cdcecdcdcecdb4b6b4525052ffffff
cdcacdcdcacd000000cdcacdcdcacdcdcacdcdcacd000000cdcacdcdcacd7b7d7b292c29
838183cdcecdcdcecdb4b6b4525052ffffffcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdcdcacdcdcacdcdcacd7b7d7b292c29838183a4a1a4bdbebd7b7d7b000000000000
0000004140b400009400008300007b000031181cac00008b00008b000000000000000000
00000000000000000000008b00008b0000520000200000520000396265626a6d6a737173
0000416a69c500008b00008b00008b00006200004a949194acaaacbdbabdc5c6c5cdcacd
cdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacdcdcacd
cdcacdb4b2b44a4c4affffffc5c6c5c5c6c5000000000000000000000000000000000000
c5c6c5c5c6c57b7d7b292c297b7d7bcdcacdcdcacdb4b2b44a4c4affffffc5c6c5c5c6c5
000000c5c6c5c5c6c5c5c6c5c5c6c5000000c5c6c5c5c6c57b7d7b292c297b7d7bcdcacd
cdcacdb4b2b44a4c4affffffc5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5c5c6c5
c5c6c5c5c6c57b7d7b292c297b7d7b9c9d9cbdbebd7b7d7b0000000000000000004140b4
0000940000830000730000311014a4000083000000000000000000000083000083000000
00000000000000008300004a0000180000520000316a696a7b797b83818300004a3938b4
00008300008300008300005a0000398381839c999cacaeacbdbabdbdbebdbdbebdc5c2c5
c5c2c5c5c2c5bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdc5c2c5c5c2c5c5c2c5acaeac
4a4c4affffffc5c2c5c5c2c5000000000000000000000000000000000000c5c2c5c5c2c5
7b7d7b292c297b797bc5c2c5c5c2c5acaeac4a4c4affffffc5c2c5c5c2c5000000000000
000000000000000000000000c5c2c5c5c2c57b7d7b292c297b797bc5c2c5c5c2c5acaeac
4a4c4affffffc5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5c5c2c5
7b7d7b292c297b797b9c999cbdbebd7b7d7b0000000000000000004140b400009400007b
0000730000311010a400007b000083000000000083000083000083000083000000000083
00007b00004a0000180000520000316a696a7b797b83818300004a181ca400008300007b
00008300005a0000317371738b898b9c9d9cacaaacacaeacb4b2b4b4b6b4b4b6b4b4b6b4
b4b2b4acaeacacaeacacaeacacaeacacaeacbdbebdbdbebdbdbebda4a5a44a484affffff
bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd7b7d7b292829
737573bdbebdbdbebda4a5a44a484affffffbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd
bdbebdbdbebdbdbebdbdbebd7b7d7b292829737573bdbebdbdbebda4a5a44a484affffff
bdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebdbdbebd7b7d7b292829
7375739c999cbdbebd7b7d7b0000000000000000004140b400009400007300006a000031
08089c00007b00007b00007b00007b00007b00007b00007b00007b00007b00007b000041
00001800004a00002900003900004100004a00004100007b000052000052000052000052
00003100003900004a00005200005a00005aa4a1a4acaaacacaaac00006200006200005a
00005a00005a00005a00005ab4b6b4b4b6b4b4b6b4a4a1a44a484affffffbdbabdbdbabd
bdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd7b7d7b292829737173b4b6b4
b4b6b4a4a1a44a484affffffbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd
bdbabdbdbabd7b7d7b292829737173b4b6b4b4b6b4a4a1a44a484affffffbdbabdbdbabd
bdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabdbdbabd7b7d7b2928297371739c9d9c
bdbebd7b7d7b0000000000000000004140b400009400007300006a000031000073000041
00004100004100004100004100004100004100004100004100004100004100001800004a
080ca4080ca4080ca4080ca40000730000310000310000310000290000319c9dde5255bd
2024ac080ca400007300004a8b898b9495949c999c00005a9c9dde5255bd2024ac080ca4
00007300004aacaeacacaeacacaeac9c999c414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b292c29737173acaeacacaeac9c999c
414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b292c29737173acaeacacaeac9c999c414441cdcecd7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b292c29737173a4a5a4bdbebd7b7d7b
0000000000000000004140b400009400007300006a000031000029000020000018000018
000018000018000018000018000018000018000018000018000020000052000073000073
0000730000730000520000315255525a595a5a5d5a0000315255bd000073000073000073
0000520000397b797b8b898b8b8d8b0000525255bd000073000073000073000052000039
a4a5a4a4a5a4a4a5a4949594414441393c39313031292829202420202420202420202420
2024202024202024202024202928293130317b797ba4a5a4a4a5a4949594414441393c39
313031292829202420202420202420202420202420202420202420202420292829313031
7b797ba4a5a4a4a5a4949594414441393c39313031292829202420202420202420202420
2024202024202024202024202928293130317b797bb4b6b4c5c2c57b7d7b000000000000
0000004140b400009400006a00006a00006200005a00005200004a000041000041000041
00004100004100004100004100004100004a00005200005a000073000073000073000073
00004a0000295a595a6265626a696a000039181ca400007300007300007300004a000031
6a696a7b7d7b83818300004a181ca400007300007300007300004a0000319c9d9c9c9d9c
9c9d9c9495948b8d8b7b7d7b7371736a696a626562626162626162626162626162626162
6261626265626a696a7371737b7d7b9c9d9c9c9d9c9495948b8d8b7b7d7b7371736a696a
6265626261626261626261626261626261626261626265626a696a7371737b7d7b9c9d9c
9c9d9c9495948b8d8b7b7d7b7371736a696a626562626162626162626162626162626162
6261626265626a696a7371737b7d7bc5c6c5c5c6c57b7d7b0000000000000000004140b4
00009400006a94897b00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00004a000029
5a5d5a6a6d6a73717300004100009c00006a00006a00006a00004a000029626162737573
7b7d7b00004a00009c00006a00006a00006a00004a000029949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594d5d6d5cdcacd7b7d7b0000000000000000004140b400009400006a
94897b00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a00004a
00004a00004a00004a00004a00004a00004a00004a00004a00004a000029525552626562
6a696a00003900006a00004a00004a00004a00004a0000295a595a6265626a696a000039
00006a00004a00004a00004a00004a0000297b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7be6e6e6cdcecd7b7d7b0000000000000000004140b400009400006a948d7b000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000eeeeee
cdcecd7b7d7b0000000000000000004140b4000094000073000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b4000094000073000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b4000094000073000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5
000000d5d6d5000000d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000d5d6d5
d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000000000
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000000000000000000000000000
000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5000000000000000000000000000000d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5
d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5000000000000d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000000000
d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000000000000000d5d6d5
d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5000000000000
d5d6d5000000d5d6d5d5d6d5000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffffd5d6d5d5d6d5000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffff
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000d5d6d5949594000000
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5000000
d5d6d5000000d5d6d5000000d5d6d5000000d5d6d5d5d6d5949594000000d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5ffffffd5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5949594000000d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5ffffffd5d6d5949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594949594949594949594949594949594949594949594
949594949594949594949594949594000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5ffffff000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b4
00009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a
000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
000000eeeeeecdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeee
cdcecd7b7d7b0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b
0000000000000000004140b400009400006a000000d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5
d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5d5d6d5000000eeeeeecdcecd7b7d7b000000000000
0000004140b400009400006a000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000eeeeeecdcecd7b7d7b0000000000000000004140b4
0000940000944140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b44140b4
4140b44140b44140b44140b400009400004a8b8d8bb4b6b4d5d6d500004a4140b44140b4
00009400004a8b8d8bb4b6b4d5d6d500004a4140b44140b400009400004a8b8d8bb4b6b4
d5d6d5e6e6e6eeeaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeecdcecd7b7d7b0000000000000000004140b4000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
000094000094000094000094000094000094000094000094000094000094000094000094
00009400009400006a0000397b797b9c9d9cb4b6b40000394140b400009400006a000039
7b797b9c9d9cb4b6b40000394140b400009400006a0000397b797b9c9d9cb4b6b4c5c6c5
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecdcdcecd
cdcecdcdcecdcdcecd7b7d7b00000000000000000000009400006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a00006a
00006a0000204a484a62616273717300002000009400006a00006a0000204a484a626162
73717300002000009400006a00006a0000204a484a6261627371737b797b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b7b7d7b
7b7d7b7b7d7b000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
00000000000094897b000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
end
%%PageTrailer
%%Trailer
%%EOF

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More