[pygtk] (no subject)

Julio Carlos Menéndez juliocarlos at uh.cu
Fri Nov 16 08:09:42 WST 2007


VGhpcyBjb2RlIGlzIHdvcmtpbmcgcHJvcGVydGx5LCBpIHVzZSBwcmVzZW50IHRvIGJyaW5nIGJh
Y2sgdGhlIHdpbmRvdwpiZWNhdXNlIGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiBw
eWd0azoKCiJUaGUgcHJlc2VudCgpIG1ldGhvZCBwcmVzZW50cyBhIHdpbmRvdyB0byB0aGUgdXNl
ci4gVGhpcyBtYXkgbWVhbgpyYWlzaW5nIHRoZSB3aW5kb3cgaW4gdGhlIHN0YWNraW5nIG9yZGVy
LCBkZWljb25pZnlpbmcgaXQsIG1vdmluZyBpdCB0bwp0aGUgY3VycmVudCBkZXNrdG9wLCBhbmQv
b3IgZ2l2aW5nIGl0IHRoZSBrZXlib2FyZCBmb2N1cywgcG9zc2libHkKZGVwZW5kZW50IG9uIHRo
ZSB1c2VyJ3MgcGxhdGZvcm0sIHdpbmRvdyBtYW5hZ2VyLCBhbmQgcHJlZmVyZW5jZXMuIElmCnRo
ZSB3aW5kb3cgaXMgaGlkZGVuLCB0aGlzIG1ldGhvZCBjYWxscyB0aGUgdGhlIGd0ay5XaWRnZXQu
c2hvdygpCm1ldGhvZCBhcyB3ZWxsLiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgdXNlZCB3aGVuIHRo
ZSB1c2VyIHRyaWVzIHRvIG9wZW4KYSB3aW5kb3cgdGhhdCdzIGFscmVhZHkgb3Blbi4gU2F5IGZv
ciBleGFtcGxlIHRoZSBwcmVmZXJlbmNlcyBkaWFsb2cgaXMKY3VycmVudGx5IG9wZW4sIGFuZCB0
aGUgdXNlciBjaG9vc2VzIFByZWZlcmVuY2VzIGZyb20gdGhlIG1lbnUgYSBzZWNvbmQKdGltZTsg
dXNlIHRoZSBwcmVzZW50KCkgbWV0aG9kIHRvIG1vdmUgdGhlIGFscmVhZHktb3BlbiBkaWFsb2cg
d2hlcmUKdGhlIHVzZXIgY2FuIHNlZSBpdC4iCgpTbywgaGVyZSBpcyB0aGUgY29kZSBmb3Igd2hh
dCBJIGd1ZXNzIHlvdSB3YW50OgoKaW1wb3J0IHB5Z3RrCnB5Z3RrLnJlcXVpcmUoJzIuMCcpCmlt
cG9ydCBndGsKCmNsYXNzIEFwcGxpY2F0aW9uKG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2Vs
Zik6CiAgICAgICAgc2VsZi5zdGF0dXNpY29uID0gZ3RrLnN0YXR1c19pY29uX25ld19mcm9tX3N0
b2NrKCdndGstYWJvdXQnKQogICAgICAgIHNlbGYuc3RhdHVzaWNvbi5zZXRfdmlzaWJsZShUcnVl
KQogICAgICAgIHNlbGYuc3RhdHVzaWNvbi5jb25uZWN0KCdhY3RpdmF0ZScsIHNlbGYub25fYWN0
aXZhdGUpCiAgICAgICAgc2VsZi53aW5kb3cgPSBndGsuV2luZG93KCkKICAgICAgICBzZWxmLndp
bmRvdy5jb25uZWN0KCdkZWxldGUtZXZlbnQnLCBzZWxmLm9uX2RlbGV0ZV9ldmVudCkKICAgICAg
ICBzZWxmLndpbmRvdy5zaG93X2FsbCgpCgogICAgZGVmIG9uX2FjdGl2YXRlKHNlbGYsIHdpZGdl
dCwgZGF0YT1Ob25lKToKICAgICAgICBpZiBzZWxmLndpbmRvdy5nZXRfcHJvcGVydHkoJ3Zpc2li
bGUnKToKICAgICAgICAgICAgc2VsZi53aW5kb3cuaGlkZSgpCiAgICAgICAgZWxzZToKICAgICAg
ICAgICAgc2VsZi53aW5kb3cucHJlc2VudCgpCgogICAgZGVmIG9uX2RlbGV0ZV9ldmVudChzZWxm
LCB3aWRnZXQsIGRhdGE9Tm9uZSk6CiAgICAgICAgc2VsZi5zdGF0dXNpY29uLnNldF92aXNpYmxl
KEZhbHNlKQogICAgICAgIGd0ay5tYWluX3F1aXQoKQoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9f
JzoKICAgIGFwcCA9IEFwcGxpY2F0aW9uKCkKICAgIGd0ay5tYWluKCkKCkdyZWV0aW5ncy4KCk9u
IFRodSwgMTUgTm92IDIwMDcgMTc6MjE6NDEgLTA1MDAKIk1jQnJpZGUsIE5hdGhhbiIgPE5NY2Jy
aWRlQGdlaWNvLmNvbT4gd3JvdGU6Cgo+IEFjdHVhbGx5LCBpdCBkb2Vzbid0IHNlZW0gdG8gYmUg
cmUtY3JlYXRpbmcgdGhlIHdpbmRvdyBhZnRlciBhbGwuCj4gSG93ZXZlciwgSSBjYW4ndCBzZWVt
IHRvIGZpZ3VyZSBvdXQgaG93IHRvIGJyaW5nIHRoZSB3aW5kb3cgYmFjay4KPiAKPiBJIGhhdmUg
dHJpZWQ6Cj4gCj4gc2VsZi53aW5kb3cuc2hvdygpCj4gc2VsZi53aW5kb3cuZGVpY29uaWZ5KCkK
PiBzZWxmLndpbmRvdy5haG93X2FsbCgpCj4gCj4gV2hhdCBpcyB0aGUgY29ycmVjdCB3YXkgdG8g
ZG8gdGhpcz8KPiAKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHB5Z3RrLWJv
dW5jZXNAZGFhLmNvbS5hdSBbbWFpbHRvOnB5Z3RrLWJvdW5jZXNAZGFhLmNvbS5hdV0gT24KPiBC
ZWhhbGYgT2YgSnVsaW8gQ2FybG9zIE1lbsOpbmRleiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIg
MTUsIDIwMDcKPiA0OjA4IFBNIFRvOiBweWd0a0BkYWEuY29tLmF1Cj4gU3ViamVjdDogUmU6IFtw
eWd0a10gKG5vIHN1YmplY3QpCj4gCj4gSWYgeW91IHB1dCBhbGwgdGhpcyBjb2RlOgo+ICAgCj4g
ICAgIHN0YXR1c0ljb24gPSBndGsuU3RhdHVzSWNvbigpCj4gCj4gICAgIG1lbnUgPSBndGsuTWVu
dSgpCj4gICAgIG1lbnVJdGVtID0gZ3RrLkltYWdlTWVudUl0ZW0oZ3RrLlNUT0NLX0FCT1VUKQo+
ICAgICBtZW51SXRlbS5jb25uZWN0KCdhY3RpdmF0ZScsIGljb25fc2hvd19hYm91dCkKPiAgICAg
bWVudS5hcHBlbmQobWVudUl0ZW0pCj4gICAgIG1lbnVJdGVtID0gZ3RrLlNlcGFyYXRvck1lbnVJ
dGVtKCkKPiAgICAgbWVudS5hcHBlbmQobWVudUl0ZW0pCj4gICAgIG1lbnVJdGVtID0gZ3RrLklt
YWdlTWVudUl0ZW0oZ3RrLlNUT0NLX1FVSVQpCj4gICAgIG1lbnVJdGVtLmNvbm5lY3QoJ2FjdGl2
YXRlJywgcXVpdF9jYiwgc3RhdHVzSWNvbikKPiAgICAgbWVudS5hcHBlbmQobWVudUl0ZW0pCj4g
Cj4gICAgICMgc3RhdHVzSWNvbi5zZXRfZnJvbV9zdG9jayhndGsuU1RPQ0tfSE9NRSkKPiAgICAg
c3RhdHVzSWNvbi5zZXRfZnJvbV9maWxlKCJwaXhtYXBzL2RtY2FsLnBuZyIpCj4gICAgIHN0YXR1
c0ljb24uc2V0X3Rvb2x0aXAoIkRNLUNyeXB0ICYgTFVLUyBFbmNyeXB0aW9uIFN1aXRlIikKPiAg
ICAgc3RhdHVzSWNvbi5jb25uZWN0KCdhY3RpdmF0ZScsIGFjdGl2YXRlX2ljb25fY2IpCj4gICAg
IHN0YXR1c0ljb24uY29ubmVjdCgncG9wdXAtbWVudScsIHBvcHVwX21lbnVfY2IsIG1lbnUpCj4g
ICAgIHN0YXR1c0ljb24uc2V0X3Zpc2libGUoVHJ1ZSkKPiAKPiBpbnNpZGUgdGhlIF9faW5pdF9f
IG1ldGhvZCBhbmQgZXZlcnkgbWV0aG9kIHlvdSBjcmVhdGUgc2hvdWxkIGhhdmUKPiB0aGUgc3lu
dGF4ICc8bWV0aG9kX25hbWU+KHNlbGYsPHBhcmFtZXRlcnM+KScgdG8gbWFrZSBpdCBhbiBpbnN0
YW5jZQo+IG1ldGhvZC4gRG9pbmcgYWxsIHRoYXQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHVzZSBh
bnkKPiBzZWxmLjx3aGF0ZXZlcl95b3Vfd2FudD4KPiAKPiBUaGUgbWV0aG9kIHNob3VsZCBiZSBs
aWtlIHRoaXM6Cj4gZGVmIGFjdGl2YXRlX2ljb25fY2Ioc2VsZiwgd2lkZ2V0KToKPiAgICAgaWYg
c2VsZi53aW5kb3cudmlzaWJsZSgpOgo+IAlzZWxmLndpbmRvdy5oaWRlKCkKPiAgICAgZWxzZToK
PiAgICAgICAgIHNlbGYuLndpbmRvdy5zaG93KCkKPiAKPiBIb3BlIHRoaXMgd29ya3MgZm9yIHlv
dS4KPiAKPiBPbiBUaHUsIDE1IE5vdiAyMDA3IDEzOjE1OjM1IC0wNTAwCj4gIk1jQnJpZGUsIE5h
dGhhbiIgPE5NY2JyaWRlQGdlaWNvLmNvbT4gd3JvdGU6Cj4gCj4gPiBydW4gdGhlIHByb2dyYW0g
YW5kIHRoZSBtYWluIHdpbmRvdyBjb21lcyB1cCB3aXRoIHRoZSBzdGF0dXMgaWNvbi4KPiA+IFdo
ZW4gSSBtaW5pbWl6ZSB0aGUgd2luZG93LCBpbnN0ZWFkIG9mIG1pbmltaXppbmcgaXQsIGl0IGhp
ZGVzIGl0Lgo+ID4gU28gdGhlIHdpbmRvdyBpcyBnb25lIGJ1dCB0aGUgaWNvbiBpcyBzdGlsbCBp
biB0aGUgdGFza3RyYXkuCj4gPiAobWluaW1pemluZyB0byB0YXNrdHJheSkgV2hhdCBJIGFtIHRy
eWluZyB0byBhY2NvbXBsaXNoIGlzIHRoYXQKPiA+IHdoZW4geW91IGNsaWNrIHRoZSB0YXNrdHJh
eSBpY29uIHRoZW4gdGhlIHdpbmRvdyB1bmhpZGVzIGFuZCBjb21lcwo+ID4gYmFjay4KPiA+IAo+
ID4gZXZlcnl0aGluZyB3b3JrcyBmbGF3bGVzc2x5IGV4Y2VwdCBpIGNhbid0IGdldDoKPiA+IAo+
ID4gZGVmIGFjdGl2YXRlX2ljb25fY2Iod2lkZ2V0LCBkYXRhID0gTm9uZSk6Cj4gPiAgICAgICAg
IHBhc3MKPiA+IAo+ID4gdG8gaGF2ZSBhY2Nlc3MgdG8gc2VsZi53aW5kb3cgZnJvbSB0aGUgX19p
bml0X18gdG8gcnVuIHRoZSAKPiA+IHNlbGYud2luZG93LnNob3coKS4gSSdoYXZlIHRyaWVkIHNl
dHRpbmcgaXQgdXAgbGlrZToKPiA+IAo+ID4gZGVmIGFjdGl2YXRlX2ljb25fY2Ioc2VsZiwgd2lk
Z2V0LCBkYXRhID0gTm9uZSk6Cj4gPiAgICAgICAgIHBhc3MKPiA+IAo+ID4gIyBzdGF0dXNJY29u
LnNldF9mcm9tX3N0b2NrKGd0ay5TVE9DS19IT01FKQo+ID4gc3RhdHVzSWNvbi5zZXRfZnJvbV9m
aWxlKCJwaXhtYXBzL2RtY2FsLnBuZyIpCj4gPiBzdGF0dXNJY29uLnNldF90b29sdGlwKCJETS1D
cnlwdCAmIExVS1MgRW5jcnlwdGlvbiBTdWl0ZSIpIAo+ID4gc3RhdHVzSWNvbi5jb25uZWN0KCdh
Y3RpdmF0ZScsIGFjdGl2YXRlX2ljb25fY2Ioc2VsZikpIAo+ID4gc3RhdHVzSWNvbi5jb25uZWN0
KCdwb3B1cC1tZW51JywgcG9wdXBfbWVudV9jYiwgbWVudSkKPiA+IHN0YXR1c0ljb24uc2V0X3Zp
c2libGUoVHJ1ZSkKPiA+IAo+ID4gYnV0IGl0IHNheXMgc2VsZiBpc24ndCBkZWZpbmVkLiBXaGVu
IEkgdHJpZWQgcmVjYWxsaW5nIHRoZSB3aWRnZXQKPiA+IGZyb20gdGhlIGdsYWRlIGZpbGUgYW5k
IHNob3dpbmcgaXQgdGhhdCB3YXkgaW5zdGVhZCBvZiBzaG93aW5nIGl0Cj4gPiBpdCBqdXN0IG1h
ZGUgYW5vdGhlci4gQnV0IEkgaGF2ZSB0byBicmluZyB0aGUgZmlyc3Qgb24gYmFjayB1cCBub3QK
PiA+IG1ha2UgYSBuZXcgb25lLgo+ID4gCj4gPiBUaGFua3MgZm9yIGhlbHBpbmcgbWUgd2l0aCB0
aGlzLgo+ID4gCj4gPiBOYXRlCj4gPiAKPiA+IEhlcmUgaXMgdGhlIG1ham9yaXR5IG9mIHRoZSBj
b2RlOgo+ID4gCj4gPiBjbGFzcyBkbWNhbEdUSzoKPiA+ICAgICAiIiJUaGUgRE1DYWwgQXBwbGlj
YXRpb24iIiIKPiA+IAo+ID4gICAgIGRlZiBfX2luaXRfXyhzZWxmKToKPiA+IAo+ID4gCSAgICAj
U2V0IHRoZSBnbGFkZSBmaWxlCj4gPiAJICAgIHNlbGYuZ2xhZGVmaWxlID0gImRtY2FsLmdsYWRl
Igo+ID4gCSAgICBzZWxmLndUcmVlID0gZ3RrLmdsYWRlLlhNTChzZWxmLmdsYWRlZmlsZSwgImRt
Y2FsTWFpbiIpCj4gPiAKPiA+IAkgICAgc2VsZi53aW5kb3cgPSBzZWxmLndUcmVlLmdldF93aWRn
ZXQoImRtY2FsTWFpbiIpCj4gPiAJICAgIHNlbGYud2luZG93LmNvbm5lY3QoJ3dpbmRvdy1zdGF0
ZS1ldmVudCcsCj4gPiBzZWxmLndpbmRvd19ldmVudCkKPiA+IAo+ID4gCSAgICAjQ3JlYXRlIG91
ciBkaWN0aW9uYXJ5IGFuZCBjb25uZWN0IGl0Cj4gPiAJICAgIGRpYyA9IHsib25fY3JlYXRlX2Nv
bnRhaW5lcl9hY3RpdmF0ZSIgOgo+ID4gc2VsZi5jcmVhdGVfY29udGFpbmVyX2FjdGl2YXRlLAo+
ID4gCSAgICAgICAgICAgIm9uX2RtY2FsTWFpbl9kZXN0cm95IiA6IHNlbGYuZG1jYWxNYWluX2Rl
c3Ryb3ksCj4gPiAJICAgICAgICAgICAib25fYWJvdXRNZW51SXRlbV9hY3RpdmF0ZSIgOiBzZWxm
LnNob3dBYm91dCwKPiA+ICAgICAgICAgICAgICAgICAgICAib25fcXVpdEJ1dHRvbl9jbGlja2Vk
IiA6IHNlbGYuZG1jYWxNYWluX2Rlc3Ryb3ksCj4gPiAgICAgICAgICAgICAgICAgICAgIm9uX25l
d0J1dHRvbl9jbGlja2VkIiA6Cj4gPiBzZWxmLmNyZWF0ZV9jb250YWluZXJfYWN0aXZhdGUsCj4g
PiAgICAgICAgICAgICAgICAgICAgIm9uX2FkZEJ1dHRvbl9jbGlja2VkIiA6IHNlbGYuc2hvd0Zp
bGVTZWxlY3Rpb24sCj4gPiAgICAgICAgICAgICAgICAgICAgIm9uX3F1aXRtZW51aXRlbV9hY3Rp
dmF0ZSIgOgo+ID4gc2VsZi5kbWNhbE1haW5fZGVzdHJveSwgIm9uX3JlbW92ZUJ1dHRvbl9jbGlj
a2VkIiA6Cj4gPiBzZWxmLnJlbW92ZWNvbnRhaW5lciwgIm9uX3NhdmVNZW51SXRlbV9hY3RpdmF0
ZSIgOiBzZWxmLnNhdmVsaXN0fQo+ID4gCSAgICBzZWxmLndUcmVlLnNpZ25hbF9hdXRvY29ubmVj
dChkaWMpCj4gPiAKPiA+IAkgICAgcHJlZmVyZW5jZXNNSSA9Cj4gPiBzZWxmLndUcmVlLmdldF93
aWRnZXQoInByZWZlcmVuY2VzTWVudUl0ZW0iKQo+ID4gcHJlZmVyZW5jZXNNSS5zZXRfc2Vuc2l0
aXZlKDApCj4gPiAKPiA+IAkgICAgI1NldHVwIHRoZSB0cmVldmlldwo+ID4gCSAgICBzZWxmLnRy
ZWV2aWV3ID0gc2VsZi53VHJlZS5nZXRfd2lkZ2V0KCd0cmVldmlldzInKQo+ID4gCSAgICAKPiA+
IAkgICAgI0NyZWF0ZSB0aGUgbGlzdHN0b3JlIG1vZGVsIHRvIHVzZSB3aXRoIHRoZSB0cmVldmll
dwo+ID4gCSAgICAjUGF0dGVybjogSUNPTiwgTkFNRSBURVhULCBQQVRIIFRFWFQKPiA+IAkgICAg
c2VsZi50cmVlbGlzdCA9IGd0ay5MaXN0U3RvcmUoZ3RrLmdkay5QaXhidWYsIHN0ciwgc3RyLAo+
ID4gc3RyKSAKPiA+IAkgICAgI0F0dGF0Y2ggdGhlIGxpc3RzdG9yZSBtb2RlbCB0byB0aGUgdHJl
ZXZpZXcKPiA+IAkgICAgc2VsZi50cmVldmlldy5zZXRfbW9kZWwoc2VsZi50cmVlbGlzdCkKPiA+
IAkgICAgCj4gPiAJICAgICNHZXQgdGhlIGljb25zCj4gPiAJICAgIHNlbGYueWVzID0gc2VsZi50
cmVldmlldy5yZW5kZXJfaWNvbignZ3RrLXllcycsCj4gPiBndGsuSUNPTl9TSVpFX1NNQUxMX1RP
T0xCQVIpCj4gPiAJICAgIHNlbGYubm8gPSBzZWxmLnRyZWV2aWV3LnJlbmRlcl9pY29uKCdndGst
bm8nLAo+ID4gZ3RrLklDT05fU0laRV9TTUFMTF9UT09MQkFSKQo+ID4gCSAgICAKPiA+IAkgICAg
I1NldHVwIHRoZSBjb2x1bW5zIG9uIHRoZSBsaXN0dmlldwo+ID4gCSAgICAKPiA+IAkgICAgY29s
dW1uID0gZ3RrLlRyZWVWaWV3Q29sdW1uKCcnLAo+ID4gZ3RrLkNlbGxSZW5kZXJlclBpeGJ1Zigp
LCBwaXhidWY9MCkKPiA+IAkgICAgc2VsZi50cmVldmlldy5hcHBlbmRfY29sdW1uKGNvbHVtbikK
PiA+IAkgICAgY29sdW1uID0gZ3RrLlRyZWVWaWV3Q29sdW1uKCdOYW1lJywKPiA+IGd0ay5DZWxs
UmVuZGVyZXJUZXh0KCksIHRleHQ9MSkKPiA+IAkgICAgc2VsZi50cmVldmlldy5hcHBlbmRfY29s
dW1uKGNvbHVtbikKPiA+IAkgICAgY29sdW1uID0gZ3RrLlRyZWVWaWV3Q29sdW1uKCdMb2NhdGlv
bicsCj4gPiBndGsuQ2VsbFJlbmRlcmVyVGV4dCgpLCB0ZXh0PTIpCj4gPiAJICAgIHNlbGYudHJl
ZXZpZXcuYXBwZW5kX2NvbHVtbihjb2x1bW4pCj4gPiAJICAgIGNvbHVtbiA9IGd0ay5UcmVlVmll
d0NvbHVtbignTW91bnQgUG9pbnQnLCAKPiA+IGd0ay5DZWxsUmVuZGVyZXJUZXh0KCksIHRleHQ9
MykKPiA+IAkgICAgc2VsZi50cmVldmlldy5hcHBlbmRfY29sdW1uKGNvbHVtbikKPiA+IAo+ID4g
CSAgICBzZWxmLnRyZWVsaXN0LmFwcGVuZChbc2VsZi55ZXMsICdjb250YWluZXIuZW5jJywgCj4g
PiAnL2hvbWUvbm9tYi9jb250YWluZXIuZW5jJywgJy9tZWRpYS9lbmMnXSkKPiA+IAo+ID4gCSAg
ICBzZWxmLnRyZWVzZWxlY3Rpb24gPSBzZWxmLnRyZWV2aWV3LmdldF9zZWxlY3Rpb24oKQo+ID4g
CSAgICBzZWxmLnRyZWVzZWxlY3Rpb24uc2VsZWN0X3BhdGgoMCkKPiA+ICAgICAKPiA+ICAgICAg
ICAgICAgIGlmIGNvbW1hbmRzLmdldG91dHB1dCgid2hvYW1pIikgIT0gInJvb3QiOgo+ID4gICAg
ICAgICAgICAgICAgIHByaW50ICJOb24tUm9vdCAtIExpbWl0ZWQgZnVuY3Rpb25hbGl0eS4uLiIK
PiA+IAo+ID4gCSAgICAgICAgI0Rpc2FibGUgY3JlYXRlIG5ldyBjb250YWluZXIgbWVudSBlbnRy
eQo+ID4gCSAgICAgICAgbmV3Y29udGFpbmVyTWVudUl0ZW0gPQo+ID4gc2VsZi53VHJlZS5nZXRf
d2lkZ2V0KCJjcmVhdGVfY29udGFpbmVyIikKPiA+IAkgICAgICAgIG5ld2NvbnRhaW5lck1lbnVJ
dGVtLnNldF9zZW5zaXRpdmUoMCkKPiA+IAo+ID4gICAgICAgICAgICAgICAgICNEaXNhYmxlIGNy
ZWF0ZSBuZXcgY29udGFpbmVyIGJ1dHRvbgo+ID4gCSAgICAgICAgbmV3Y29udGFpbmVyQnV0dG9u
ID0KPiA+IHNlbGYud1RyZWUuZ2V0X3dpZGdldCgibmV3QnV0dG9uIikKPiA+IG5ld2NvbnRhaW5l
ckJ1dHRvbi5zZXRfc2Vuc2l0aXZlKDApCj4gPiAKPiA+ICAgICAgICAgICAgICAgICAjRGlzYWJs
ZSBtb3VudCBidXR0b24KPiA+ICAgICAgICAgICAgICAgICBtbnRCdXR0b24gPSBzZWxmLndUcmVl
LmdldF93aWRnZXQoIm1vdW50QnV0dG9uIikKPiA+ICAgICAgICAgICAgICAgICBtbnRCdXR0b24u
c2V0X3NlbnNpdGl2ZSgwKQo+ID4gCj4gPiAgICAgICAgICAgICAgICAgI0Rpc2FibGUgdW4tbW91
bnQgYnV0dG9uCj4gPiAgICAgICAgICAgICAgICAgdW5tbnRCdXR0b24gPSBzZWxmLndUcmVlLmdl
dF93aWRnZXQoInVubW91bnRCdXR0b24iKQo+ID4gICAgICAgICAgICAgICAgIHVubW50QnV0dG9u
LnNldF9zZW5zaXRpdmUoMCkKPiA+IAkgICAgCj4gPiAJICAgICAgICAjU2V0IGFsZXJ0IG1lc3Nh
Z2UgdG8gc3RhdHVzIGJhcgo+ID4gCSAgICAgICAgc3RhdHVzYmFyID0gc2VsZi53VHJlZS5nZXRf
d2lkZ2V0KCJzdGF0dXNiYXIxIikKPiA+IAkgICAgICAgIHN0YXR1c2JhcmlkID0gc3RhdHVzYmFy
LmdldF9jb250ZXh0X2lkKCJuZWVkIHJvb3QiKQo+ID4gCSAgICAgICAgc3RhdHVzYmFyLnB1c2go
c3RhdHVzYmFyaWQsICJTb21lIGZ1bmN0aW9ucyByZXF1aXJlCj4gPiByb290IHBlcm1pc3Npb25z
IGFuZCBwYXRoLi4uIChzdSAtKSIpCj4gPiAKPiA+IAo+ID4gICAgIGRlZiBxdWl0X2NiKHdpZGdl
dCwgZGF0YSA9IE5vbmUpOgo+ID4gCWlmIGRhdGE6Cj4gPiAJICAgIGRhdGEuc2V0X3Zpc2libGUo
RmFsc2UpCj4gPiAJZ3RrLm1haW5fcXVpdCgpCj4gPiAKPiA+ICAgICBkZWYgcG9wdXBfbWVudV9j
Yih3aWRnZXQsIGJ1dHRvbiwgdGltZSwgZGF0YSA9IE5vbmUpOgo+ID4gCWlmIGJ1dHRvbiA9PSAz
Ogo+ID4gCSAgICBpZiBkYXRhOgo+ID4gCQlkYXRhLnNob3dfYWxsKCkKPiA+IAkJZGF0YS5wb3B1
cChOb25lLCBOb25lLCBOb25lLCAzLCB0aW1lKQo+ID4gCXBhc3MgICAgCj4gPiAKPiA+ICAgICBk
ZWYgYWN0aXZhdGVfaWNvbl9jYih3aWRnZXQsIGRhdGEgPSBOb25lKToKPiA+ICAgICAgICAgcGFz
cwo+ID4gCj4gPiAgICAgZGVmIGljb25fc2hvd19hYm91dCh3aWRnZXQsIGRhdGEgPSBOb25lKToK
PiA+IAlkbWNhbERpYWxvZyA9IGRtY2FsQWJvdXQoKQo+ID4gCXJlc3VsdCA9IGRtY2FsRGlhbG9n
LnJ1bigpCj4gPiAKPiA+ICAgICBzdGF0dXNJY29uID0gZ3RrLlN0YXR1c0ljb24oKQo+ID4gCj4g
PiAgICAgbWVudSA9IGd0ay5NZW51KCkKPiA+ICAgICBtZW51SXRlbSA9IGd0ay5JbWFnZU1lbnVJ
dGVtKGd0ay5TVE9DS19BQk9VVCkKPiA+ICAgICBtZW51SXRlbS5jb25uZWN0KCdhY3RpdmF0ZScs
IGljb25fc2hvd19hYm91dCkKPiA+ICAgICBtZW51LmFwcGVuZChtZW51SXRlbSkKPiA+ICAgICBt
ZW51SXRlbSA9IGd0ay5TZXBhcmF0b3JNZW51SXRlbSgpCj4gPiAgICAgbWVudS5hcHBlbmQobWVu
dUl0ZW0pCj4gPiAgICAgbWVudUl0ZW0gPSBndGsuSW1hZ2VNZW51SXRlbShndGsuU1RPQ0tfUVVJ
VCkKPiA+ICAgICBtZW51SXRlbS5jb25uZWN0KCdhY3RpdmF0ZScsIHF1aXRfY2IsIHN0YXR1c0lj
b24pCj4gPiAgICAgbWVudS5hcHBlbmQobWVudUl0ZW0pCj4gPiAKPiA+ICAgICAjIHN0YXR1c0lj
b24uc2V0X2Zyb21fc3RvY2soZ3RrLlNUT0NLX0hPTUUpCj4gPiAgICAgc3RhdHVzSWNvbi5zZXRf
ZnJvbV9maWxlKCJwaXhtYXBzL2RtY2FsLnBuZyIpCj4gPiAgICAgc3RhdHVzSWNvbi5zZXRfdG9v
bHRpcCgiRE0tQ3J5cHQgJiBMVUtTIEVuY3J5cHRpb24gU3VpdGUiKQo+ID4gICAgIHN0YXR1c0lj
b24uY29ubmVjdCgnYWN0aXZhdGUnLCBhY3RpdmF0ZV9pY29uX2NiKQo+ID4gICAgIHN0YXR1c0lj
b24uY29ubmVjdCgncG9wdXAtbWVudScsIHBvcHVwX21lbnVfY2IsIG1lbnUpCj4gPiAgICAgc3Rh
dHVzSWNvbi5zZXRfdmlzaWJsZShUcnVlKQo+ID4gCj4gPiAgICAgZGVmIHdpbmRvd19ldmVudChz
ZWxmLCB3aWRnZXQsIGV2ZW50KToKPiA+IAkjcHJpbnQgZXZlbnQubmV3X3dpbmRvd19zdGF0ZQo+
ID4gCWlmIGV2ZW50Lm5ld193aW5kb3dfc3RhdGUgPT0gZ3RrLmdkay5XSU5ET1dfU1RBVEVfSUNP
TklGSUVEOgo+ID4gCSAgICBzZWxmLndpbmRvdy5oaWRlKCkKPiA+IAo+ID4gPT09PT09PT09PT09
PT09PT09PT0KPiA+IFRoaXMgZW1haWwvZmF4IG1lc3NhZ2UgaXMgZm9yIHRoZSBzb2xlIHVzZSBv
ZiB0aGUgaW50ZW5kZWQKPiA+IHJlY2lwaWVudChzKSBhbmQgbWF5IGNvbnRhaW4gY29uZmlkZW50
aWFsIGFuZCBwcml2aWxlZ2VkCj4gPiBpbmZvcm1hdGlvbi4gQW55IHVuYXV0aG9yaXplZCByZXZp
ZXcsIHVzZSwgZGlzY2xvc3VyZSBvcgo+ID4gZGlzdHJpYnV0aW9uIG9mIHRoaXMgZW1haWwvZmF4
IGlzIHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZQo+ID4gaW50ZW5kZWQgcmVjaXBpZW50
LCBwbGVhc2UgZGVzdHJveSBhbGwgcGFwZXIgYW5kIGVsZWN0cm9uaWMgY29waWVzCj4gPiBvZiB0
aGUgb3JpZ2luYWwgbWVzc2FnZS4KPiAKPiAKPiAtLQo+IEp1bGlvIENhcmxvcyBNZW7DqW5kZXoK
PiBHTlUvTGludXggVXNlciAjNDAzNTUxCj4gaHR0cDovL2RlbHRoYS51aC5jdS9+anVsaW9jYXJs
b3MKPiA9PT09PT09PT09PT09PT09PT09PQo+IFRoaXMgZW1haWwvZmF4IG1lc3NhZ2UgaXMgZm9y
IHRoZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQKPiByZWNpcGllbnQocykgYW5kIG1heSBjb250
YWluIGNvbmZpZGVudGlhbCBhbmQgcHJpdmlsZWdlZCBpbmZvcm1hdGlvbi4KPiBBbnkgdW5hdXRo
b3JpemVkIHJldmlldywgdXNlLCBkaXNjbG9zdXJlIG9yIGRpc3RyaWJ1dGlvbiBvZiB0aGlzCj4g
ZW1haWwvZmF4IGlzIHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNp
cGllbnQsIHBsZWFzZQo+IGRlc3Ryb3kgYWxsIHBhcGVyIGFuZCBlbGVjdHJvbmljIGNvcGllcyBv
ZiB0aGUgb3JpZ2luYWwgbWVzc2FnZS4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwo+IHB5Z3RrIG1haWxpbmcgbGlzdCAgIHB5Z3RrQGRhYS5jb20uYXUK
PiBodHRwOi8vd3d3LmRhYS5jb20uYXUvbWFpbG1hbi9saXN0aW5mby9weWd0awo+IFJlYWQgdGhl
IFB5R1RLIEZBUTogaHR0cDovL3d3dy5hc3luYy5jb20uYnIvZmFxL3B5Z3RrLwoKCi0tIApKdWxp
byBDYXJsb3MgTWVuw6luZGV6CkdOVS9MaW51eCBVc2VyICM0MDM1NTEKaHR0cDovL2RlbHRoYS51
aC5jdS9+anVsaW9jYXJsb3MKLS0tLS0tLS0tLS0tLS0gbmV4dCBwYXJ0IC0tLS0tLS0tLS0tLS0t
CkEgbm9uLXRleHQgYXR0YWNobWVudCB3YXMgc2NydWJiZWQuLi4KTmFtZTogc2lnbmF0dXJlLmFz
YwpUeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlClNpemU6IDE4OSBieXRlcwpEZXNjOiBu
b3QgYXZhaWxhYmxlClVybCA6IGh0dHA6Ly93d3cuZGFhLmNvbS5hdS9waXBlcm1haWwvcHlndGsv
YXR0YWNobWVudHMvMjAwNzExMTUvMmRmNDM0MjUvc2lnbmF0dXJlLTAwMDEucGdwCg==


More information about the pygtk mailing list