From kwin Thu Apr 25 00:14:57 2002 From: Keunwoo Lee Date: Thu, 25 Apr 2002 00:14:57 +0000 To: kwin Subject: [Kwin] Re: PATCH: KStep titlebar button placement X-MARC-Message: https://marc.info/?l=kwin&m=101969370607244 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--1602254595-1692615222-1019693697=:5216" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --1602254595-1692615222-1019693697=:5216 Content-Type: TEXT/PLAIN; charset=US-ASCII My prior patch had a small bug (fallthrough in the big switch statement---typical...). Please note the attached fix, which hides the minimize and maximize buttons when appropriate in addition to the other changes. ~k.lee --1602254595-1692615222-1019693697=:5216 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="kstep-window-buttons.diff" Content-Transfer-Encoding: BASE64 Content-ID: <20020424171457.H5216@argon.cs.washington.edu> Content-Description: Content-Disposition: attachment; filename="kstep-window-buttons.diff" PyBkZWJ1Zy5sb2cNCj8ga3N0ZXAtd2luZG93LWJ1dHRvbnMuZGlmZg0KPyBu ZXh0Y2xpZW50LWtsZWUuY3BwDQo/IG5leHRjbGllbnQta2xlZS5oDQpJbmRl eDogbmV4dGNsaWVudC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJD UyBmaWxlOiAvaG9tZS9rZGUva2RlYmFzZS9rd2luL2NsaWVudHMva3N0ZXAv bmV4dGNsaWVudC5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE4DQpk aWZmIC11IC0zIC1wIC1jIC1yMS4xOCBuZXh0Y2xpZW50LmNwcA0KKioqIG5l eHRjbGllbnQuY3BwCTMwIFNlcCAyMDAxIDIwOjU0OjM1IC0wMDAwCTEuMTgN Ci0tLSBuZXh0Y2xpZW50LmNwcAkyNSBBcHIgMjAwMiAwMDowMjo1NCAtMDAw MA0KKioqKioqKioqKioqKioqDQoqKiogMSwxMSAqKioqDQogICNpbmNsdWRl ICJuZXh0Y2xpZW50LmgiDQogICNpbmNsdWRlIDxxYWJzdHJhY3RsYXlvdXQu aD4NCiEgI2luY2x1ZGUgPHFsYXlvdXQuaD4NCiAgI2luY2x1ZGUgPHFkcmF3 dXRpbC5oPg0KICAjaW5jbHVkZSA8cXBhaW50ZXIuaD4NCi0gI2luY2x1ZGUg PGtwaXhtYXBlZmZlY3QuaD4NCi0gI2luY2x1ZGUgPGtsb2NhbGUuaD4NCiAg I2luY2x1ZGUgPHFiaXRtYXAuaD4NCiAgI2luY2x1ZGUgIi4uLy4uL3dvcmtz cGFjZS5oIg0KICAjaW5jbHVkZSAiLi4vLi4vb3B0aW9ucy5oIg0KICANCi0t LSAxLDEzIC0tLS0NCiAgI2luY2x1ZGUgIm5leHRjbGllbnQuaCINCiAgI2lu Y2x1ZGUgPHFhYnN0cmFjdGxheW91dC5oPg0KISAjaW5jbHVkZSA8cWRhdGV0 aW1lLmg+DQogICNpbmNsdWRlIDxxZHJhd3V0aWwuaD4NCisgI2luY2x1ZGUg PHFsYXlvdXQuaD4NCiAgI2luY2x1ZGUgPHFwYWludGVyLmg+DQogICNpbmNs dWRlIDxxYml0bWFwLmg+DQorICNpbmNsdWRlIDxrZGVidWcuaD4NCisgI2lu Y2x1ZGUgPGtsb2NhbGUuaD4NCisgI2luY2x1ZGUgPGtwaXhtYXBlZmZlY3Qu aD4NCiAgI2luY2x1ZGUgIi4uLy4uL3dvcmtzcGFjZS5oIg0KICAjaW5jbHVk ZSAiLi4vLi4vb3B0aW9ucy5oIg0KICANCioqKioqKioqKioqKioqKiBzdGF0 aWMgdW5zaWduZWQgY2hhciBpY29uaWZ5X2JpdHNbXSA9IHsNCioqKiAyMSwy NiAqKioqDQotLS0gMjMsMzIgLS0tLQ0KICAgIDB4ZmYsIDB4MDMsIDB4ZmYs IDB4MDMsIDB4ZmYsIDB4MDMsIDB4ZmYsIDB4MDMsIDB4MDMsIDB4MDMsIDB4 MDMsIDB4MDMsDQogICAgMHgwMywgMHgwMywgMHgwMywgMHgwMywgMHhmZiwg MHgwMywgMHhmZiwgMHgwM307DQogIA0KKyBzdGF0aWMgdW5zaWduZWQgY2hh ciBxdWVzdGlvbl9iaXRzW10gPSB7DQorICAgMHgwMCwgMHgwMCwgMHg3OCwg MHgwMCwgMHhjYywgMHgwMCwgMHhjMCwgMHgwMCwgMHg2MCwgMHgwMCwgMHgz MCwgMHgwMCwNCisgICAweDAwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAw eDAwLCAweDAwLCAweDAwfTsNCisgDQogIHN0YXRpYyB1bnNpZ25lZCBjaGFy IHN0aWNreV9iaXRzW10gPSB7DQogICAgMHgwMCwgMHgwMCwgMHgzMCwgMHgw MCwgMHgzMCwgMHgwMCwgMHgzMCwgMHgwMCwgMHhmZSwgMHgwMSwgMHhmZSwg MHgwMSwNCiAgICAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAw LCAweDAwLCAweDAwfTsNCioqKioqKioqKioqKioqKiBzdGF0aWMgdW5zaWdu ZWQgY2hhciB1bnN0aWNreV9iaXRzW10gPSB7DQoqKiogMjksMzQgKioqKg0K LS0tIDM1LDcxIC0tLS0NCiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweGZlLCAweDAxLCAweGZlLCAweDAx LA0KICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDB9Ow0KICANCisgc3RhdGljIHVuc2lnbmVkIGNoYXIgbWF4aW1p emVfYml0c1tdID0gew0KKyAgICAweDMwLCAweDAwLCAweDc4LCAweDAwLCAw eGZjLCAweDAwLCAweGZlLCAweDAxLCAweDAwLCAweDAwLCAweGZlLCAweDAx LA0KKyAgICAweDAyLCAweDAxLCAweDg0LCAweDAwLCAweDQ4LCAweDAwLCAw eDMwLCAweDAwIH07DQorIA0KKyAvLyBJZiB0aGUgbWF4aW1pemUgZ3JhcGhp YyBhYm92ZSAod2hpY2ggSSBkaWQgcXVpY2tseSBpbiBhYm91dCBhDQorIC8v IG1pbnV0ZSwganVzdCBzbyBJIGNvdWxkIGhhdmUgc29tZXRoaW5nKSBkb2Vz bid0IHBsZWFzZSwgbWF5YmUgb25lDQorIC8vIG9mIHRoZSBmb2xsb3dpbmcg d291bGQgYmUgYmV0dGVyLiAgSU1PIGl0IGRvZXNuJ3QgbWF0dGVyLCBhcyBs b25nDQorIC8vIGFzIGl0J3Mgbm90IG9mZmVuc2l2ZS0tLXBlb3BsZSB3aWxs IGdldCB1c2VkIHRvIHdoYXRldmVyIHlvdSB1c2UuDQorIC8vIFRydWUgTmVY VCBmYW5zIHdvbid0IHR1cm4gb24gdGhlIG1heGltaXplIGJ1dHRvbiBhbnl3 YXkuDQorIC8vDQorIC8vIHN0YXRpYyB1bnNpZ25lZCBjaGFyIG1heGltaXpl X2JpdHNbXSA9IHsNCisgLy8gICAgMHhjZiwgMHgwMywgMHg4NywgMHgwMywg MHhjZiwgMHgwMywgMHhmZCwgMHgwMiwgMHg0OCwgMHgwMCwgMHg0OCwgMHgw MCwNCisgLy8gICAgMHhmZCwgMHgwMiwgMHhjZiwgMHgwMywgMHg4NywgMHgw MywgMHhjZiwgMHgwMyB9Ow0KKyAvLw0KKyAvLyBzdGF0aWMgdW5zaWduZWQg Y2hhciBtYXhpbWl6ZV9iaXRzW10gPSB7DQorIC8vICAgIDB4Y2YsIDB4MDMs IDB4ODcsIDB4MDMsIDB4ODcsIDB4MDMsIDB4NzksIDB4MDIsIDB4NDgsIDB4 MDAsIDB4NDgsIDB4MDAsDQorIC8vICAgIDB4NzksIDB4MDIsIDB4ODcsIDB4 MDMsIDB4ODcsIDB4MDMsIDB4Y2YsIDB4MDMgfTsNCisgLy8NCisgLy8gc3Rh dGljIHVuc2lnbmVkIGNoYXIgbWF4aW1pemVfYml0c1tdID0gew0KKyAvLyAg ICAweDg3LCAweDAzLCAweDAzLCAweDAzLCAweGZkLCAweDAyLCAweDg0LCAw eDAwLCAweDg0LCAweDAwLCAweDg0LCAweDAwLA0KKyAvLyAgICAweDg0LCAw eDAwLCAweGZkLCAweDAyLCAweDAzLCAweDAzLCAweDg3LCAweDAzIH07DQor IC8vDQorIC8vIHN0YXRpYyB1bnNpZ25lZCBjaGFyIG1heGltaXplX2JpdHNb XSA9IHsNCisgLy8gICAgMHgzMCwgMHgwMCwgMHg3OCwgMHgwMCwgMHhjYywg MHgwMCwgMHg4NiwgMHgwMSwgMHgzMywgMHgwMywgMHg3OSwgMHgwMiwNCisg Ly8gICAgMHhjZCwgMHgwMiwgMHg4NywgMHgwMywgMHgwMywgMHgwMywgMHgw MSwgMHgwMiB9Ow0KKyAvLw0KKyAvLyBzdGF0aWMgdW5zaWduZWQgY2hhciBt YXhpbWl6ZV9iaXRzW10gPSB7DQorIC8vICAgIDB4MzAsIDB4MDAsIDB4Nzgs IDB4MDAsIDB4NzgsIDB4MDAsIDB4ZmMsIDB4MDAsIDB4ZmMsIDB4MDAsIDB4 ZmUsIDB4MDEsDQorIC8vICAgIDB4ZmUsIDB4MDEsIDB4ZmYsIDB4MDMsIDB4 ZmYsIDB4MDMsIDB4ZmYsIDB4MDMgfTsNCisgDQorIA0KICBzdGF0aWMgS1Bp eG1hcCAqYVRpdGxlUGl4PTA7DQogIHN0YXRpYyBLUGl4bWFwICppVGl0bGVQ aXg9MDsNCiAgc3RhdGljIEtQaXhtYXAgKmFGcmFtZVBpeD0wOw0KKioqKioq KioqKioqKioqIHN0YXRpYyB2b2lkIGRlbGV0ZV9waXhtYXBzKCkNCioqKiAx NjgsMTg3ICoqKioNCiAgICAgIHBpeG1hcHNfY3JlYXRlZCA9IGZhbHNlOw0K ICB9DQogIA0KLSB2b2lkIE5leHRDbGllbnQ6OnNsb3RSZXNldCgpDQotIHsN Ci0gICAgIGJ1dHRvblswXS0+cmVzZXQoKTsNCi0gICAgIGJ1dHRvblsxXS0+ cmVzZXQoKTsNCi0gICAgIGJ1dHRvblsyXS0+cmVzZXQoKTsNCi0gfQ0KLSAN CiAgTmV4dEJ1dHRvbjo6TmV4dEJ1dHRvbihDbGllbnQgKnBhcmVudCwgY29u c3QgY2hhciAqbmFtZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1bnNpZ25lZCBjaGFyICpiaXRtYXAsIGludCBidywgaW50IGJoLA0KICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcmIHRpcCkNCiEg ICAgIDogS1dpbkJ1dHRvbihwYXJlbnQsIG5hbWUsIHRpcCkNCiAgew0KICAg ICAgc2V0QmFja2dyb3VuZE1vZGUoIE5vQmFja2dyb3VuZCApOw0KLSAgICAg Y2xpZW50ID0gcGFyZW50Ow0KICAgICAgcmVzaXplKDE4LCAxOCk7DQogIA0K ICAgICAgaWYoYml0bWFwKQ0KLS0tIDIwNSwyMTcgLS0tLQ0KICAgICAgcGl4 bWFwc19jcmVhdGVkID0gZmFsc2U7DQogIH0NCiAgDQogIE5leHRCdXR0b246 Ok5leHRCdXR0b24oQ2xpZW50ICpwYXJlbnQsIGNvbnN0IGNoYXIgKm5hbWUs DQogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqYml0bWFwLCBpbnQgYncsIGludCBiaCwNCiAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBRU3RyaW5nJiB0aXApDQohICAgICA6IEtXaW5CdXR0 b24ocGFyZW50LCBuYW1lLCB0aXApLA0KISAgICAgICBkZWNvKE5VTEwpLCBj bGllbnQocGFyZW50KSwgbGFzdF9idXR0b24oTm9CdXR0b24pDQogIHsNCiAg ICAgIHNldEJhY2tncm91bmRNb2RlKCBOb0JhY2tncm91bmQgKTsNCiAgICAg IHJlc2l6ZSgxOCwgMTgpOw0KICANCiAgICAgIGlmKGJpdG1hcCkNCioqKioq KioqKioqKioqKiB2b2lkIE5leHRCdXR0b246OnJlc2V0KCkNCioqKiAxOTUs MjAyICoqKioNCiAgDQogIHZvaWQgTmV4dEJ1dHRvbjo6c2V0Qml0bWFwKGNv bnN0IHVuc2lnbmVkIGNoYXIgKmJpdG1hcCwgaW50IHcsIGludCBoKQ0KICB7 DQohICAgICBkZWNvID0gUUJpdG1hcCh3LCBoLCBiaXRtYXAsIHRydWUpOw0K ISAgICAgZGVjby5zZXRNYXNrKGRlY28pOw0KICAgICAgcmVwYWludCgpOw0K ICB9DQogIA0KLS0tIDIyNSwyMzIgLS0tLQ0KICANCiAgdm9pZCBOZXh0QnV0 dG9uOjpzZXRCaXRtYXAoY29uc3QgdW5zaWduZWQgY2hhciAqYml0bWFwLCBp bnQgdywgaW50IGgpDQogIHsNCiEgICAgIGRlY28gPSBuZXcgUUJpdG1hcCh3 LCBoLCBiaXRtYXAsIHRydWUpOw0KISAgICAgZGVjby0+c2V0TWFzaygqZGVj byk7DQogICAgICByZXBhaW50KCk7DQogIH0NCiAgDQoqKioqKioqKioqKioq Kiogdm9pZCBOZXh0QnV0dG9uOjpkcmF3QnV0dG9uKFFQYWludGVyICpwKQ0K KioqIDIwNywyMTYgKioqKg0KICAgICAgZWxzZQ0KICAgICAgICAgIHAtPmRy YXdQaXhtYXAoMCwgMCwgaXNEb3duKCkgPyAqaUJ0bkRvd24gOiAqaUJ0bik7 DQogIA0KISAgICAgcC0+c2V0UGVuKCpidG5Gb3JlZ3JvdW5kKTsNCiEgICAg IHAtPmRyYXdQaXhtYXAoaXNEb3duKCk/IDUgOiA0LCBpc0Rvd24oKSA/IDUg OiA0LCBkZWNvKTsNCiAgfQ0KICANCiAgTmV4dENsaWVudDo6TmV4dENsaWVu dCggV29ya3NwYWNlICp3cywgV0lkIHcsIFFXaWRnZXQgKnBhcmVudCwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUg KQ0KICAgICAgOiBDbGllbnQoIHdzLCB3LCBwYXJlbnQsIG5hbWUsIFdSZXNp emVOb0VyYXNlICkNCi0tLSAyMzcsMjcwIC0tLS0NCiAgICAgIGVsc2UNCiAg ICAgICAgICBwLT5kcmF3UGl4bWFwKDAsIDAsIGlzRG93bigpID8gKmlCdG5E b3duIDogKmlCdG4pOw0KICANCiEgICAgIC8vIElmIHdlIGhhdmUgYSBkZWNv cmF0aW9uLCBkcmF3IGl0OyBvdGhlcndpc2UsIHdlIGhhdmUgdGhlIG1lbnUN CiEgICAgIC8vIGJ1dHRvbiAocmVtZW1iZXIsIHdlIHNldCB0aGUgYml0bWFw IHRvIE5VTEwpLg0KISAgICAgaWYgKGRlY28pIHsNCiEgICAgICAgICBwLT5z ZXRQZW4oKmJ0bkZvcmVncm91bmQpOw0KISAgICAgICAgIHAtPmRyYXdQaXht YXAoaXNEb3duKCk/IDUgOiA0LCBpc0Rvd24oKSA/IDUgOiA0LCAqZGVjbyk7 DQohICAgICB9IGVsc2Ugew0KISAgICAgICAgIEtQaXhtYXAgYnRucGl4ID0g Y2xpZW50LT5taW5pSWNvbigpOw0KISAgICAgICAgIHAtPmRyYXdQaXhtYXAo IDAsIDAsIGJ0bnBpeCApOw0KISAgICAgfQ0KISB9DQohIA0KISB2b2lkIE5l eHRCdXR0b246Om1vdXNlUHJlc3NFdmVudCggUU1vdXNlRXZlbnQqIGUgKQ0K ISB7DQohICAgICBsYXN0X2J1dHRvbiA9IGUtPmJ1dHRvbigpOw0KISAgICAg UU1vdXNlRXZlbnQgbWUoIGUtPnR5cGUoKSwgZS0+cG9zKCksIGUtPmdsb2Jh bFBvcygpLA0KISAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIGUt PnN0YXRlKCkgKTsNCiEgICAgIEtXaW5CdXR0b246Om1vdXNlUHJlc3NFdmVu dCggJm1lICk7DQogIH0NCiAgDQorIHZvaWQgTmV4dEJ1dHRvbjo6bW91c2VS ZWxlYXNlRXZlbnQoIFFNb3VzZUV2ZW50KiBlICkNCisgew0KKyAgICAgbGFz dF9idXR0b24gPSBlLT5idXR0b24oKTsNCisgICAgIFFNb3VzZUV2ZW50IG1l KCBlLT50eXBlKCksIGUtPnBvcygpLCBlLT5nbG9iYWxQb3MoKSwNCisgICAg ICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBlLT5zdGF0ZSgpICk7DQor ICAgICBLV2luQnV0dG9uOjptb3VzZVJlbGVhc2VFdmVudCggJm1lICk7DQor IH0NCisgDQorIA0KICBOZXh0Q2xpZW50OjpOZXh0Q2xpZW50KCBXb3Jrc3Bh Y2UgKndzLCBXSWQgdywgUVdpZGdldCAqcGFyZW50LA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSApDQogICAgICA6 IENsaWVudCggd3MsIHcsIHBhcmVudCwgbmFtZSwgV1Jlc2l6ZU5vRXJhc2Ug KQ0KKioqKioqKioqKioqKioqIE5leHRDbGllbnQ6Ok5leHRDbGllbnQoIFdv cmtzcGFjZSAqd3MsIFcNCioqKiAyMzAsMjU1ICoqKioNCiAgICAgIHdpbmRv d0xheW91dC0+YWRkV2lkZ2V0KHdpbmRvd1dyYXBwZXIoKSwgMSk7DQogICAg ICB3aW5kb3dMYXlvdXQtPmFkZFNwYWNpbmcoMSk7DQogIA0KICANCiEgICAg IGJ1dHRvblswXSA9IG5ldyBOZXh0QnV0dG9uKHRoaXMsICJjbG9zZSIsIGNs b3NlX2JpdHMsIDEwLCAxMCwgaTE4bigiQ2xvc2UiKSk7DQohICAgICBidXR0 b25bMV0gPSBuZXcgTmV4dEJ1dHRvbih0aGlzLCAic3RpY2t5IiwgTlVMTCwg MCwgMCwgaTE4bigiU3RpY2t5IikpOw0KISAgICAgc3RpY2t5Q2hhbmdlKGlz U3RpY2t5KCkpOw0KISAgICAgYnV0dG9uWzJdID0gbmV3IE5leHRCdXR0b24o dGhpcywgImljb25pZnkiLCBpY29uaWZ5X2JpdHMsIDEwLCAxMCwgaTE4bigi TWluaW1pemUiKSk7DQohIA0KISAgICAgY29ubmVjdCggYnV0dG9uWzBdLCBT SUdOQUwoIGNsaWNrZWQoKSApLCB0aGlzLCAoIFNMT1QoIGNsb3NlV2luZG93 KCkgKSApICk7DQohICAgICBjb25uZWN0KCBidXR0b25bMV0sIFNJR05BTCgg Y2xpY2tlZCgpICksIHRoaXMsICggU0xPVCggdG9nZ2xlU3RpY2t5KCkgKSAp ICk7DQohICAgICBjb25uZWN0KCBidXR0b25bMl0sIFNJR05BTCggY2xpY2tl ZCgpICksIHRoaXMsICggU0xPVCggaWNvbmlmeSgpICkgKSApOw0KISAgICAg dGl0bGVMYXlvdXQtPmFkZFdpZGdldCggYnV0dG9uWzJdICk7DQogICAgICB0 aXRsZWJhciA9IG5ldyBRU3BhY2VySXRlbSgxMCwgMTYsIFFTaXplUG9saWN5 OjpFeHBhbmRpbmcsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRU2l6ZVBvbGljeTo6TWluaW11bSApOw0KICAgICAgdGl0bGVMYXlvdXQt PmFkZEl0ZW0odGl0bGViYXIpOw0KISAgICAgdGl0bGVMYXlvdXQtPmFkZFdp ZGdldCggYnV0dG9uWzFdICk7DQohICAgICB0aXRsZUxheW91dC0+YWRkV2lk Z2V0KCBidXR0b25bMF0gKTsNCiEgICAgIGZvciAoIGludCBpID0gMDsgaSA8 IDM7IGkrKykgew0KISAgICAgICAgIGJ1dHRvbltpXS0+c2V0TW91c2VUcmFj a2luZyggVFJVRSApOw0KISAgICAgICAgIGJ1dHRvbltpXS0+c2V0Rml4ZWRT aXplKCAxOCwgMTggKTsNCiAgICAgIH0NCiAgDQogIH0NCiAgDQogIHZvaWQg TmV4dENsaWVudDo6cmVzaXplRXZlbnQoIFFSZXNpemVFdmVudCogZSkNCi0t LSAyODQsNDU5IC0tLS0NCiAgICAgIHdpbmRvd0xheW91dC0+YWRkV2lkZ2V0 KHdpbmRvd1dyYXBwZXIoKSwgMSk7DQogICAgICB3aW5kb3dMYXlvdXQtPmFk ZFNwYWNpbmcoMSk7DQogIA0KKyAgICAgaW5pdGlhbGl6ZUJ1dHRvbnNBbmRU aXRsZWJhcih0aXRsZUxheW91dCk7DQorIH0NCiAgDQohIC8qKg0KISAgICBQ cmVjb25kaXRpb25zOg0KISAgICAgICAgKyB0aGlzLT5idXR0b24gaXMgYW4g YXJyYXkgb2YgbGVuZ3RoIE1BWF9OVU1fQlVUVE9OUw0KISANCiEgICAgUG9z dGNvbmRpdGlvbnM6DQohICAgICAgICArIFRpdGxlIGJhciBhbmQgYnV0dG9u cyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgYW5kIGxhaWQgb3V0DQohICAgICAg ICArIGZvciBhbGwgaSBpbiAwLi4oTUFYX05VTV9CVVRUT05TLTEpLCBidXR0 b25baV0gcG9pbnRzIHRvDQohICAgICAgICAgIGVpdGhlciAoMSkgYSB2YWxp ZCBOZXh0QnV0dG9uIGluc3RhbmNlLCBpZiB0aGUgY29ycmVzcG9uZGluZw0K ISAgICAgICAgICBidXR0b24gaXMgc2VsZWN0ZWQgaW4gdGhlIGN1cnJlbnQg YnV0dG9uIHNjaGVtZSwgb3IgKDIpIG51bGwNCiEgICAgICAgICAgb3RoZXJ3 aXNlLg0KISAgKi8NCiEgdm9pZCBOZXh0Q2xpZW50Ojppbml0aWFsaXplQnV0 dG9uc0FuZFRpdGxlYmFyKFFIQm94TGF5b3V0KiB0aXRsZUxheW91dCkNCiEg ew0KISAgICAgLy8gTnVsbCB0aGUgYnV0dG9ucyB0byBiZWdpbiB3aXRoICh0 aGV5IGFyZSBub3QgZ3VhcmFudGVlZCB0byBiZSBudWxsKS4NCiEgICAgIGZv ciAoaW50IGk9MDsgaTxNQVhfTlVNX0JVVFRPTlM7IGkrKykgew0KISAgICAg ICAgIGJ1dHRvbltpXSA9IE5VTEw7DQohICAgICB9DQohIA0KISAgICAgLy8g VGhlIGRlZmF1bHQgYnV0dG9uIHBvc2l0aW9ucyBmb3Igb3RoZXIgc3R5bGVz IGRvIG5vdCBtYXRjaCB0aGUNCiEgICAgIC8vIGJlaGF2aW9yIG9mIG9sZGVy IHZlcnNpb25zIG9mIEtTdGVwLCBzbyB3ZSBoYXZlIHRvIHNldCB0aGVzZQ0K ISAgICAgLy8gbWFudWFsbHkgd2hlbiBjdXN0b21CdXR0b25Qb3NpdGlvbnMg aXNuJ3QgZW5hYmxlZC4NCiEgICAgIFFTdHJpbmcgbGVmdCwgcmlnaHQ7DQoh ICAgICBpZiAob3B0aW9ucy0+Y3VzdG9tQnV0dG9uUG9zaXRpb25zKCkpIHsN CiEgICAgICAgICBsZWZ0ID0gb3B0aW9ucy0+dGl0bGVCdXR0b25zTGVmdCgp Ow0KISAgICAgICAgIHJpZ2h0ID0gb3B0aW9ucy0+dGl0bGVCdXR0b25zUmln aHQoKTsNCiEgICAgIH0gZWxzZSB7DQohICAgICAgICAgbGVmdCA9IFFTdHJp bmcoIkkiKTsNCiEgICAgICAgICByaWdodCA9IFFTdHJpbmcoIlNYIik7DQoh ICAgICB9DQohIA0KISAgICAgLy8gRG8gYWN0dWFsIGNyZWF0aW9uIGFuZCBh ZGRpdGlvbiB0byB0aXRsZUxheW91dA0KISAgICAgYWRkQnV0dG9ucyh0aXRs ZUxheW91dCwgbGVmdCk7DQogICAgICB0aXRsZWJhciA9IG5ldyBRU3BhY2Vy SXRlbSgxMCwgMTYsIFFTaXplUG9saWN5OjpFeHBhbmRpbmcsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRU2l6ZVBvbGljeTo6TWluaW11 bSApOw0KICAgICAgdGl0bGVMYXlvdXQtPmFkZEl0ZW0odGl0bGViYXIpOw0K ISAgICAgYWRkQnV0dG9ucyh0aXRsZUxheW91dCwgcmlnaHQpOw0KISANCiEg ICAgIC8vIEZpbmFsbHksIGFjdGl2YXRlIGFsbCBsaXZlIGJ1dHRvbnMNCiEg ICAgIGZvciAoIGludCBpID0gMDsgaSA8IE1BWF9OVU1fQlVUVE9OUzsgaSsr KSB7DQohICAgICAgICAgaWYgKGJ1dHRvbltpXSkgew0KISAgICAgICAgICAg ICBidXR0b25baV0tPnNldE1vdXNlVHJhY2tpbmcoIFRSVUUgKTsNCiEgICAg ICAgICAgICAgYnV0dG9uW2ldLT5zZXRGaXhlZFNpemUoIDE4LCAxOCApOw0K ISAgICAgICAgIH0NCiEgICAgIH0NCiEgfQ0KISANCiEgLyoqIEFkZHMgdGhl IGJ1dHRvbnMgZm9yIG9uZSBzaWRlIG9mIHRoZSB0aXRsZSBiYXIsIGJhc2Vk IG9uIHRoZSBzcGVjDQohICAqIHN0cmluZzsgc2VlIHRoZSBLV2luSW50ZXJu YWw6Ok9wdGlvbnMgY2xhc3MsIG1ldGhvZHMNCiEgICogdGl0bGVCdXR0b25z TGVmdCBhbmQgdGl0bGVCVXR0b25zUmlnaHQuICovDQohIHZvaWQgTmV4dENs aWVudDo6YWRkQnV0dG9ucyhRSEJveExheW91dCogdGl0bGVMYXlvdXQsIGNv bnN0IFFTdHJpbmcmIHNwZWMpDQohIHsNCiEgICAgIGZvciAodW5zaWduZWQg aW50IGk9MDsgaTxzcGVjLmxlbmd0aCgpOyBpKyspIHsNCiEgICAgICAgICBz d2l0Y2ggKHNwZWNbaV0ubGF0aW4xKCkpIHsNCiEgICAgICAgICBjYXNlICdB JzoNCiEgICAgICAgICAgICAgaWYgKGlzTWF4aW1pemFibGUoKSkgew0KISAg ICAgICAgICAgICAgICAgYnV0dG9uW01BWElNSVpFX0lEWF0gPQ0KISAgICAg ICAgICAgICAgICAgICAgIG5ldyBOZXh0QnV0dG9uKHRoaXMsICJtYXhpbWl6 ZSIsIG1heGltaXplX2JpdHMsIDEwLCAxMCwNCiEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpMThuKCJNYXhpbWl6ZSIpKTsNCiEgICAg ICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5hZGRXaWRnZXQoIGJ1dHRvbltN QVhJTUlaRV9JRFhdICk7DQohICAgICAgICAgICAgICAgICBjb25uZWN0KCBi dXR0b25bTUFYSU1JWkVfSURYXSwgU0lHTkFMKGNsaWNrZWQoKSksDQohICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKG1heGltaXplQnV0 dG9uQ2xpY2tlZCgpKSApOw0KISAgICAgICAgICAgICB9DQohICAgICAgICAg ICAgIGJyZWFrOw0KISANCiEgICAgICAgICBjYXNlICdIJzoNCiEgICAgICAg ICAgICAgYnV0dG9uW0hFTFBfSURYXSA9DQohICAgICAgICAgICAgICAgICBu ZXcgTmV4dEJ1dHRvbih0aGlzLCAiaGVscCIsIHF1ZXN0aW9uX2JpdHMsIDEw LCAxMCwNCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4o IkhlbHAiKSk7DQohICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5hZGRXaWRn ZXQoIGJ1dHRvbltIRUxQX0lEWF0gKTsNCiEgICAgICAgICAgICAgY29ubmVj dCggYnV0dG9uW0hFTFBfSURYXSwgU0lHTkFMKGNsaWNrZWQoKSksDQohICAg ICAgICAgICAgICAgICAgICAgIHRoaXMsIFNMT1QoY29udGV4dEhlbHAoKSkg KTsNCiEgICAgICAgICAgICAgYnJlYWs7DQohIA0KISAgICAgICAgIGNhc2Ug J0knOg0KISAgICAgICAgICAgICBpZiAoaXNNaW5pbWl6YWJsZSgpKSB7DQoh ICAgICAgICAgICAgICAgICBidXR0b25bSUNPTklGWV9JRFhdID0NCiEgICAg ICAgICAgICAgICAgICAgICBuZXcgTmV4dEJ1dHRvbih0aGlzLCAiaWNvbmlm eSIsIGljb25pZnlfYml0cywgMTAsIDEwLA0KISAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGkxOG4oIk1pbmltaXplIikpOw0KISAgICAg ICAgICAgICAgICAgdGl0bGVMYXlvdXQtPmFkZFdpZGdldCggYnV0dG9uW0lD T05JRllfSURYXSApOw0KISAgICAgICAgICAgICAgICAgY29ubmVjdCggYnV0 dG9uW0lDT05JRllfSURYXSwgU0lHTkFMKGNsaWNrZWQoKSksDQohICAgICAg ICAgICAgICAgICAgICAgICAgICB0aGlzLCBTTE9UKGljb25pZnkoKSkgKTsN CiEgICAgICAgICAgICAgfQ0KISAgICAgICAgICAgICBicmVhazsNCiEgICAg ICAgICAgICAgDQohICAgICAgICAgY2FzZSAnTSc6DQohICAgICAgICAgICAg IGJ1dHRvbltNRU5VX0lEWF0gPQ0KISAgICAgICAgICAgICAgICAgbmV3IE5l eHRCdXR0b24odGhpcywgIm1lbnUiLCBOVUxMLCAxMCwgMTAsIGkxOG4oIk1l bnUiKSk7DQohICAgICAgICAgICAgIHRpdGxlTGF5b3V0LT5hZGRXaWRnZXQo IGJ1dHRvbltNRU5VX0lEWF0gKTsNCiEgICAgICAgICAgICAgLy8gTk9URSBE SUZGRVJFTkNFOiBjYXB0dXJlIHByZXNzZWQoKSwgbm90IGNsaWNrZWQoKQ0K ISAgICAgICAgICAgICBjb25uZWN0KCBidXR0b25bTUVOVV9JRFhdLCBTSUdO QUwocHJlc3NlZCgpKSwNCiEgICAgICAgICAgICAgICAgICAgICAgdGhpcywg U0xPVChtZW51QnV0dG9uUHJlc3NlZCgpKSApOw0KISAgICAgICAgICAgICBi cmVhazsNCiEgDQohICAgICAgICAgY2FzZSAnUyc6DQohICAgICAgICAgICAg IGJ1dHRvbltTVElDS1lfSURYXSA9DQohICAgICAgICAgICAgICAgICBuZXcg TmV4dEJ1dHRvbih0aGlzLCAic3RpY2t5IiwgTlVMTCwgMCwgMCwgaTE4bigi U3RpY2t5IikpOw0KISAgICAgICAgICAgICB0aXRsZUxheW91dC0+YWRkV2lk Z2V0KCBidXR0b25bU1RJQ0tZX0lEWF0gKTsNCiEgICAgICAgICAgICAgY29u bmVjdCggYnV0dG9uW1NUSUNLWV9JRFhdLCBTSUdOQUwoY2xpY2tlZCgpKSwN CiEgICAgICAgICAgICAgICAgICAgICAgdGhpcywgU0xPVCh0b2dnbGVTdGlj a3koKSkgKTsNCiEgICAgICAgICAgICAgLy8gTk9URSBESUZGRVJFTkNFOiBz ZXQgdGhlIHBpeG1hcCBzZXBhcmF0ZWx5ICgyIHN0YXRlcykNCiEgICAgICAg ICAgICAgc3RpY2t5Q2hhbmdlKGlzU3RpY2t5KCkpOw0KISAgICAgICAgICAg ICBicmVhazsNCiEgDQohICAgICAgICAgY2FzZSAnWCc6DQohICAgICAgICAg ICAgIGJ1dHRvbltDTE9TRV9JRFhdID0NCiEgICAgICAgICAgICAgICAgIG5l dyBOZXh0QnV0dG9uKHRoaXMsICJjbG9zZSIsIGNsb3NlX2JpdHMsIDEwLCAx MCwNCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkxOG4oIkNs b3NlIikpOw0KISAgICAgICAgICAgICB0aXRsZUxheW91dC0+YWRkV2lkZ2V0 KCBidXR0b25bQ0xPU0VfSURYXSApOw0KISAgICAgICAgICAgICBjb25uZWN0 KCBidXR0b25bQ0xPU0VfSURYXSwgU0lHTkFMKGNsaWNrZWQoKSksDQohICAg ICAgICAgICAgICAgICAgICAgIHRoaXMsIFNMT1QoY2xvc2VXaW5kb3coKSkg KTsNCiEgICAgICAgICAgICAgYnJlYWs7DQohIA0KISAgICAgICAgIGNhc2Ug J18nOg0KISAgICAgICAgICAgICAvLyBUT0RPOiBBZGQgc3BhY2VyIGhhbmRs aW5nDQohICAgICAgICAgICAgIGJyZWFrOw0KISANCiEgICAgICAgICBkZWZh dWx0Og0KISAgICAgICAgICAgICBrZERlYnVnKCkgPDwgIiBDYW4ndCBoYXBw ZW46IHVua25vd24gYnV0dG9uIGNvZGUgIg0KISAgICAgICAgICAgICAgICAg ICAgICAgPDwgUVN0cmluZyhzcGVjW2ldKTsNCiEgICAgICAgICAgICAgYnJl YWs7DQohICAgICAgICAgfQ0KISAgICAgfQ0KISB9DQohIA0KISAvLyBNYWtl IHN1cmUgdGhlIG1lbnUgYnV0dG9uIGZvbGxvd3MgZG91YmxlIGNsaWNrIGNv bnZlbnRpb25zIHNldCBpbiBrY29udHJvbA0KISAvLyAoTm90ZTogdGhpcyB3 YXMgYWxtb3N0IHN0cmFpZ2h0IGNvcHkgYW5kIHBhc3RlIGZyb20gS0RFRGVm YXVsdENsaWVudC4pDQohIHZvaWQgTmV4dENsaWVudDo6bWVudUJ1dHRvblBy ZXNzZWQoKQ0KISB7DQohICAgICBzdGF0aWMgUVRpbWUqIHQgPSAwOw0KISAg ICAgc3RhdGljIE5leHRDbGllbnQqIHRjID0gMDsNCiEgICAgIGlmICggIXQg KSB7DQohICAgICAgICAgdCA9IG5ldyBRVGltZTsNCiEgICAgIH0NCiEgDQoh ICAgICBpZiAoIHRjICE9IHRoaXMgfHwgdC0+ZWxhcHNlZCgpID4gUUFwcGxp Y2F0aW9uOjpkb3VibGVDbGlja0ludGVydmFsKCkgKQ0KISAgICAgew0KISAg ICAgICAgIC8vIFByb2JhYmx5IGRvbid0IG5lZWQgdGhpcyBudWxsIGNoZWNr LCBidXQgd2UgbWlnaHQgYXMgd2VsbC4NCiEgICAgICAgICBpZiAoYnV0dG9u W01FTlVfSURYXSkgew0KISAgICAgICAgICAgICBRUG9pbnQgbWVudXBvaW50 ICggYnV0dG9uW01FTlVfSURYXS0+cmVjdCgpLmJvdHRvbUxlZnQoKS54KCkt MSwNCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbltN RU5VX0lEWF0tPnJlY3QoKS5ib3R0b21MZWZ0KCkueSgpKzIgKTsNCiEgICAg ICAgICAgICAgd29ya3NwYWNlKCktPmNsaWVudFBvcHVwKHRoaXMpLT5wb3B1 cCgNCiEgICAgICAgICAgICAgICAgIGJ1dHRvbltNRU5VX0lEWF0tPm1hcFRv R2xvYmFsKCBtZW51cG9pbnQgKSk7DQohICAgICAgICAgfQ0KISAgICAgfSBl bHNlIHsNCiEgICAgICAgICBjbG9zZVdpbmRvdygpOw0KICAgICAgfQ0KICAN CisgICAgIHQtPnN0YXJ0KCk7DQorICAgICB0YyA9IHRoaXM7DQorIH0NCisg DQorIC8vIENvcGllZCwgd2l0aCBtaW5vciBlZGl0cywgZnJvbSBLREVEZWZh dWx0Q2xpZW50OjpzbG90TWF4aW1pemUoKQ0KKyB2b2lkIE5leHRDbGllbnQ6 Om1heGltaXplQnV0dG9uQ2xpY2tlZCgpDQorIHsNCisgICAgIGlmIChidXR0 b25bTUFYSU1JWkVfSURYXSkgew0KKyAgICAgICAgIHN3aXRjaCAoYnV0dG9u W01BWElNSVpFX0lEWF0tPmxhc3RCdXR0b24oKSkgew0KKyAgICAgICAgIGNh c2UgTWlkQnV0dG9uOg0KKyAgICAgICAgICAgICBtYXhpbWl6ZSggTWF4aW1p emVWZXJ0aWNhbCApOw0KKyAgICAgICAgICAgICBicmVhazsNCisgICAgICAg ICBjYXNlIFJpZ2h0QnV0dG9uOg0KKyAgICAgICAgICAgICBtYXhpbWl6ZSgg TWF4aW1pemVIb3Jpem9udGFsICk7DQorICAgICAgICAgICAgIGJyZWFrOw0K KyAgICAgICAgIGRlZmF1bHQ6DQorICAgICAgICAgICAgIG1heGltaXplKCk7 DQorICAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgIH0NCisgICAgIH0N CiAgfQ0KICANCiAgdm9pZCBOZXh0Q2xpZW50OjpyZXNpemVFdmVudCggUVJl c2l6ZUV2ZW50KiBlKQ0KKioqKioqKioqKioqKioqIHZvaWQgTmV4dENsaWVu dDo6bW91c2VEb3VibGVDbGlja0V2ZW50KCANCioqKiAzMjUsMzMyICoqKioN CiAgDQogIHZvaWQgTmV4dENsaWVudDo6c3RpY2t5Q2hhbmdlKGJvb2wgb24p DQogIHsNCiEgICAgIGJ1dHRvblsxXS0+c2V0Qml0bWFwKCBvbiA/IHVuc3Rp Y2t5X2JpdHMgOiBzdGlja3lfYml0cywgMTAsIDEwKTsNCiEgICAgIGJ1dHRv blsxXS0+c2V0VGlwVGV4dCggb24gPyBpMThuKCJVbi1TdGlja3kiKSA6IGkx OG4oIlN0aWNreSIpICk7DQogIH0NCiAgDQogIA0KLS0tIDUyOSw1MzggLS0t LQ0KICANCiAgdm9pZCBOZXh0Q2xpZW50OjpzdGlja3lDaGFuZ2UoYm9vbCBv bikNCiAgew0KISAgICAgaWYgKE5leHRCdXR0b24gKiBiID0gYnV0dG9uW1NU SUNLWV9JRFhdKSB7DQohICAgICAgICAgYi0+c2V0Qml0bWFwKCBvbiA/IHVu c3RpY2t5X2JpdHMgOiBzdGlja3lfYml0cywgMTAsIDEwKTsNCiEgICAgICAg ICBiLT5zZXRUaXBUZXh0KCBvbiA/IGkxOG4oIlVuLVN0aWNreSIpIDogaTE4 bigiU3RpY2t5IikgKTsNCiEgICAgIH0NCiAgfQ0KICANCiAgDQoqKioqKioq KioqKioqKiogdm9pZCBOZXh0Q2xpZW50Ojppbml0KCkNCioqKiAzMzgsMzQ5 ICoqKioNCiAgdm9pZCBOZXh0Q2xpZW50OjphY3RpdmVDaGFuZ2UoYm9vbCkN CiAgew0KICAgICAgcmVwYWludChmYWxzZSk7DQohICAgICBidXR0b25bMF0t PnJlc2V0KCk7DQohICAgICBidXR0b25bMV0tPnJlc2V0KCk7DQohICAgICBi dXR0b25bMl0tPnJlc2V0KCk7DQogIH0NCiAgDQohICAgQ2xpZW50OjpNb3Vz ZVBvc2l0aW9uDQogIE5leHRDbGllbnQ6Om1vdXNlUG9zaXRpb24oIGNvbnN0 IFFQb2ludCYgcCApIGNvbnN0DQogIHsNCiAgICBNb3VzZVBvc2l0aW9uIG0g PSBOb3doZXJlOw0KLS0tIDU0NCw1NjIgLS0tLQ0KICB2b2lkIE5leHRDbGll bnQ6OmFjdGl2ZUNoYW5nZShib29sKQ0KICB7DQogICAgICByZXBhaW50KGZh bHNlKTsNCiEgICAgIHNsb3RSZXNldCgpOw0KISB9DQohIA0KISB2b2lkIE5l eHRDbGllbnQ6OnNsb3RSZXNldCgpDQohIHsNCiEgICAgIGZvciAoaW50IGk9 MDsgaTxNQVhfTlVNX0JVVFRPTlM7IGkrKykgew0KISAgICAgICAgIGlmIChi dXR0b25baV0pIHsNCiEgICAgICAgICAgICAgYnV0dG9uW2ldLT5yZXNldCgp Ow0KISAgICAgICAgIH0NCiEgICAgIH0NCiAgfQ0KICANCiEgQ2xpZW50OjpN b3VzZVBvc2l0aW9uDQogIE5leHRDbGllbnQ6Om1vdXNlUG9zaXRpb24oIGNv bnN0IFFQb2ludCYgcCApIGNvbnN0DQogIHsNCiAgICBNb3VzZVBvc2l0aW9u IG0gPSBOb3doZXJlOw0KSW5kZXg6IG5leHRjbGllbnQuaA0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGViYXNlL2t3 aW4vY2xpZW50cy9rc3RlcC9uZXh0Y2xpZW50Lmgsdg0KcmV0cmlldmluZyBy ZXZpc2lvbiAxLjkNCmRpZmYgLXUgLTMgLXAgLWMgLXIxLjkgbmV4dGNsaWVu dC5oDQoqKiogbmV4dGNsaWVudC5oCTE4IEF1ZyAyMDAxIDIzOjUxOjA4IC0w MDAwCTEuOQ0KLS0tIG5leHRjbGllbnQuaAkyNSBBcHIgMjAwMiAwMDowMjo1 NCAtMDAwMA0KKioqKioqKioqKioqKioqDQoqKiogNCw5ICoqKioNCi0tLSA0 LDEwIC0tLS0NCiAgI2luY2x1ZGUgPHF2YXJpYW50Lmg+DQogICNpbmNsdWRl IDxxYml0bWFwLmg+DQogICNpbmNsdWRlIDxrcGl4bWFwLmg+DQorICNpbmNs dWRlIDxxbGF5b3V0Lmg+DQogICNpbmNsdWRlICIuLi8uLi9jbGllbnQuaCIN CiAgI2luY2x1ZGUgIi4uLy4uL2t3aW5idXR0b24uaCINCiAgY2xhc3MgUUxh YmVsOw0KKioqKioqKioqKioqKioqIHB1YmxpYzoNCioqKiAxOSwzMCAqKioq DQogICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcmIHRpcD1OVUxMKTsN CiAgICAgIHZvaWQgc2V0Qml0bWFwKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJp dG1hcCwgaW50IGJ3LCBpbnQgYmgpOw0KICAgICAgdm9pZCByZXNldCgpOw0K ICBwcm90ZWN0ZWQ6DQogICAgICB2aXJ0dWFsIHZvaWQgZHJhd0J1dHRvbihR UGFpbnRlciAqcCk7DQogICAgICB2b2lkIGRyYXdCdXR0b25MYWJlbChRUGFp bnRlciAqKXs7fQ0KICAgICAgS1BpeG1hcCBhQmFja2dyb3VuZCwgaUJhY2tn cm91bmQ7DQohICAgICBRQml0bWFwIGRlY287DQogICAgICBDbGllbnQgKmNs aWVudDsNCiAgfTsNCiAgDQogIGNsYXNzIE5leHRDbGllbnQgOiBwdWJsaWMg S1dpbkludGVybmFsOjpDbGllbnQNCi0tLSAyMCwzNyAtLS0tDQogICAgICAg ICAgICAgICAgIGNvbnN0IFFTdHJpbmcmIHRpcD1OVUxMKTsNCiAgICAgIHZv aWQgc2V0Qml0bWFwKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJpdG1hcCwgaW50 IGJ3LCBpbnQgYmgpOw0KICAgICAgdm9pZCByZXNldCgpOw0KKyAgICAgQnV0 dG9uU3RhdGUgbGFzdEJ1dHRvbigpIHsgcmV0dXJuIGxhc3RfYnV0dG9uOyB9 DQorIA0KICBwcm90ZWN0ZWQ6DQorICAgICB2b2lkIG1vdXNlUHJlc3NFdmVu dCggUU1vdXNlRXZlbnQqIGUgKTsNCisgICAgIHZvaWQgbW91c2VSZWxlYXNl RXZlbnQoIFFNb3VzZUV2ZW50KiBlICk7DQogICAgICB2aXJ0dWFsIHZvaWQg ZHJhd0J1dHRvbihRUGFpbnRlciAqcCk7DQogICAgICB2b2lkIGRyYXdCdXR0 b25MYWJlbChRUGFpbnRlciAqKXs7fQ0KKyANCiAgICAgIEtQaXhtYXAgYUJh Y2tncm91bmQsIGlCYWNrZ3JvdW5kOw0KISAgICAgUUJpdG1hcCogZGVjbzsN CiAgICAgIENsaWVudCAqY2xpZW50Ow0KKyAgICAgQnV0dG9uU3RhdGUgbGFz dF9idXR0b247DQogIH07DQogIA0KICBjbGFzcyBOZXh0Q2xpZW50IDogcHVi bGljIEtXaW5JbnRlcm5hbDo6Q2xpZW50DQoqKioqKioqKioqKioqKiogY2xh c3MgTmV4dENsaWVudCA6IHB1YmxpYyBLV2luSW50ZXJuYWw6Og0KKioqIDMy LDM4ICoqKioNCiAgICAgIFFfT0JKRUNUDQogIHB1YmxpYzoNCiAgICAgIE5l eHRDbGllbnQoIFdvcmtzcGFjZSAqd3MsIFdJZCB3LCBRV2lkZ2V0ICpwYXJl bnQ9MCwgY29uc3QgY2hhciAqbmFtZT0wICk7DQohICAgICB+TmV4dENsaWVu dCgpezt9DQogIHByb3RlY3RlZDoNCiAgICAgIHZvaWQgcmVzaXplRXZlbnQo IFFSZXNpemVFdmVudCogKTsNCiAgICAgIHZvaWQgcGFpbnRFdmVudCggUVBh aW50RXZlbnQqICk7DQotLS0gMzksNDUgLS0tLQ0KICAgICAgUV9PQkpFQ1QN CiAgcHVibGljOg0KICAgICAgTmV4dENsaWVudCggV29ya3NwYWNlICp3cywg V0lkIHcsIFFXaWRnZXQgKnBhcmVudD0wLCBjb25zdCBjaGFyICpuYW1lPTAg KTsNCiEgICAgIH5OZXh0Q2xpZW50KCkgezt9DQogIHByb3RlY3RlZDoNCiAg ICAgIHZvaWQgcmVzaXplRXZlbnQoIFFSZXNpemVFdmVudCogKTsNCiAgICAg IHZvaWQgcGFpbnRFdmVudCggUVBhaW50RXZlbnQqICk7DQoqKioqKioqKioq KioqKiogcHJvdGVjdGVkOg0KKioqIDQ3LDU1ICoqKioNCiAgDQogIHByb3Rl Y3RlZCBzbG90czoNCiAgICAgIHZvaWQgc2xvdFJlc2V0KCk7DQogIHByaXZh dGU6DQohICAgICBOZXh0QnV0dG9uKiBidXR0b25bM107DQogICAgICBRU3Bh Y2VySXRlbSogdGl0bGViYXI7DQogIH07ICAgICAgICAgICAgICAgICAgICAg IA0KICANCiAgfTsNCi0tLSA1NCw4MCAtLS0tDQogIA0KICBwcm90ZWN0ZWQg c2xvdHM6DQogICAgICB2b2lkIHNsb3RSZXNldCgpOw0KKyAgICAgdm9pZCBt ZW51QnV0dG9uUHJlc3NlZCgpOw0KKyAgICAgdm9pZCBtYXhpbWl6ZUJ1dHRv bkNsaWNrZWQoKTsNCisgDQogIHByaXZhdGU6DQohICAgICB2b2lkIGluaXRp YWxpemVCdXR0b25zQW5kVGl0bGViYXIoUUhCb3hMYXlvdXQqIHRpdGxlTGF5 b3V0KTsNCiEgICAgIHZvaWQgYWRkQnV0dG9ucyhRSEJveExheW91dCogdGl0 bGVMYXlvdXQsIGNvbnN0IFFTdHJpbmcmIGJ1dHRvbnMpOw0KISANCiAgICAg IFFTcGFjZXJJdGVtKiB0aXRsZWJhcjsNCisgDQorICAgICAvLyBIZWxwZnVs IGNvbnN0YW50cyBmb3IgYnV0dG9ucyBpbiBhcnJheQ0KKyAgICAgc3RhdGlj IGNvbnN0IGludCBDTE9TRV9JRFggICAgPSAwOw0KKyAgICAgc3RhdGljIGNv bnN0IGludCBIRUxQX0lEWCAgICAgPSAxOw0KKyAgICAgc3RhdGljIGNvbnN0 IGludCBJQ09OSUZZX0lEWCAgPSAyOw0KKyAgICAgc3RhdGljIGNvbnN0IGlu dCBNQVhJTUlaRV9JRFggPSAzOw0KKyAgICAgc3RhdGljIGNvbnN0IGludCBN RU5VX0lEWCAgICAgPSA0Ow0KKyAgICAgc3RhdGljIGNvbnN0IGludCBTVElD S1lfSURYICAgPSA1Ow0KKyAgICAgc3RhdGljIGNvbnN0IGludCBNQVhfTlVN X0JVVFRPTlMgPSBTVElDS1lfSURYICsgMTsNCisgDQorICAgICAvLyBXQVJO SU5HOiBidXR0b25baV0gbWF5IGJlIG51bGwgZm9yIGFueSBnaXZlbiBpLiAg TWFrZSBzdXJlIHlvdQ0KKyAgICAgLy8gYWx3YXlzIGNoZWNrIGZvciBudWxs IGJlZm9yZSBkb2luZyBidXR0b25baV0tPmZvbygpLg0KKyAgICAgTmV4dEJ1 dHRvbiogYnV0dG9uW01BWF9OVU1fQlVUVE9OU107DQogIH07ICAgICAgICAg ICAgICAgICAgICAgIA0KICANCiAgfTsNCg== --1602254595-1692615222-1019693697=:5216-- _______________________________________________ Kwin mailing list Kwin@mail.kde.org http://mail.kde.org/mailman/listinfo/kwin