From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7406 invoked by alias); 2 Jun 2014 19:06:18 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 7392 invoked by uid 89); 2 Jun 2014 19:06:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f172.google.com Received: from mail-wi0-f172.google.com (HELO mail-wi0-f172.google.com) (209.85.212.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Mon, 02 Jun 2014 19:06:15 +0000 Received: by mail-wi0-f172.google.com with SMTP id hi2so5213946wib.5 for ; Mon, 02 Jun 2014 12:06:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=sgMi4obNV0v4en8YXMXX0FAsx1jHfQf7+sVWHXL+4I8=; b=QdtCuDDDaNKy9Ffh8BlEyA2mxDoOOthnBNx9pJSAgLbjRkXBp0K/QQdJkojoZbDn/E km1ZjFpRIIFlRZoj+TZ8IoqZH+nmS8paM+dMD4H0aWu0a87nd91iBqfHqmA+gxTsnUFd 234RYw8LjchI4oQN5rVp3JfaNMOLLxwHIRGTD/QpyD2fm1ZDuFHtbAtxLEkzU4Y2soVm 6rMRaIwVqIYG9tdfHIRCxo+efY5T8BpI5kDAAE+4IsnkugqHWYZBgiT5qcmG8allRb08 61PwNoCjr6dn1vJ/9n2ZsyWPq8sTCQ8yJMGRD95sFj9EjU6pNUbAVNur0yIEzMKGhtac zAdQ== X-Gm-Message-State: ALoCoQk4jps+wLVdfSf7VjiPQTZR0ZxZmzteJYd7rics6Wxwz3oYbiHkZP84NMQkIBmh1ebCQDDz MIME-Version: 1.0 X-Received: by 10.180.187.111 with SMTP id fr15mr24687204wic.57.1401735972512; Mon, 02 Jun 2014 12:06:12 -0700 (PDT) Received: by 10.217.51.7 with HTTP; Mon, 2 Jun 2014 12:06:12 -0700 (PDT) Date: Mon, 02 Jun 2014 19:06:00 -0000 Message-ID: Subject: [PATCH 1/4 v1] Add xmethod documentation and NEWS entry From: Siva Chandra To: gdb-patches Content-Type: multipart/mixed; boundary=001a11c265deb61d7104fadf165b X-IsSubscribed: yes X-SW-Source: 2014-06/txt/msg00038.txt.bz2 --001a11c265deb61d7104fadf165b Content-Type: text/plain; charset=UTF-8 Content-length: 566 The attached patch is almost the same as v19 except that it adds a small note about the xmethod example mentioning that xmethod in the example is slightly a different version of C++ operator+. ChangeLog 2014-05-06 Siva Chandra Reddy * NEWS (Python Scripting): Add entry about the new xmethods feature. doc/ * python.texi (Xmethods In Python, XMethod API) (Writing an Xmethod): New nodes. (Python API): New menu entries "Xmethods In Python", "Xmethod API", "Writing an Xmethod". --001a11c265deb61d7104fadf165b Content-Type: text/plain; charset=US-ASCII; name="xmethod_docs_v20.txt" Content-Disposition: attachment; filename="xmethod_docs_v20.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hvy5bfu70 Content-length: 19012 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggOGI1N2Jk OS4uMTM5N2U4YiAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTE1Myw2ICsxNTMsMTEgQEAgcVhmZXI6YnRyYWNlOnJlYWQncyBh bm5leAogICAqKiBWYWxpZCBQeXRob24gb3BlcmF0aW9ucyBvbiBnZGIuVmFs dWUgb2JqZWN0cyByZXByZXNlbnRpbmcKICAgICAgc3RydWN0cy9jbGFzc2Vz IGludm9rZSB0aGUgY29ycmVzcG9uZGluZyBvdmVybG9hZGVkIG9wZXJhdG9y cyBpZgogICAgICBhdmFpbGFibGUuCisgICoqIE5ldyBgWG1ldGhvZHMnIGZl YXR1cmUgaW4gdGhlIFB5dGhvbiBBUEkuICBYbWV0aG9kcyBhcmUKKyAgICAg YWRkaXRpb25hbCBtZXRob2RzIG9yIHJlcGxhY2VtZW50cyBmb3IgZXhpc3Rp bmcgbWV0aG9kcyBvZiBhIEMrKworICAgICBjbGFzcy4gIFRoaXMgZmVhdHVy ZSBpcyB1c2VmdWwgZm9yIHRob3NlIGNhc2VzIHdoZXJlIGEgbWV0aG9kCisg ICAgIGRlZmluZWQgaW4gQysrIHNvdXJjZSBjb2RlIGNvdWxkIGJlIGlubGlu ZWQgb3Igb3B0aW1pemVkIG91dCBieQorICAgICB0aGUgY29tcGlsZXIsIG1h a2luZyBpdCB1bmF2YWlsYWJsZSB0byBHREIuCiAKICogTmV3IHRhcmdldHMK IFBvd2VyUEM2NCBHTlUvTGludXggbGl0dGxlLWVuZGlhbglwb3dlcnBjNjRs ZS0qLWxpbnV4KgpkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9weXRob24udGV4aSBi L2dkYi9kb2MvcHl0aG9uLnRleGkKaW5kZXggMDA2Yjg3My4uMWJhMjQ4YiAx MDA2NDQKLS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQorKysgYi9nZGIvZG9j L3B5dGhvbi50ZXhpCkBAIC0xNDQsNiArMTQ0LDkgQEAgb3B0aW9uYWwgYXJn dW1lbnRzIHdoaWxlIHNraXBwaW5nIG90aGVycy4gIEV4YW1wbGU6CiAqIEZy YW1lIEZpbHRlciBBUEk6OiAgICAgICAgICAgIEZpbHRlcmluZyBGcmFtZXMu CiAqIEZyYW1lIERlY29yYXRvciBBUEk6OiAgICAgICAgIERlY29yYXRpbmcg RnJhbWVzLgogKiBXcml0aW5nIGEgRnJhbWUgRmlsdGVyOjogICAgICBXcml0 aW5nIGEgRnJhbWUgRmlsdGVyLgorKiBYbWV0aG9kcyBJbiBQeXRob246OiAg ICAgICAgICBBZGRpbmcgYW5kIHJlcGxhY2luZyBtZXRob2RzIG9mIEMrKyBj bGFzc2VzLgorKiBYbWV0aG9kIEFQSTo6ICAgICAgICAgICAgICAgICBYbWV0 aG9kIHR5cGVzLgorKiBXcml0aW5nIGFuIFhtZXRob2Q6OiAgICAgICAgICBX cml0aW5nIGFuIHhtZXRob2QuCiAqIEluZmVyaW9ycyBJbiBQeXRob246OiAg ICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiBpbmZlcmlvcnMgKHBy b2Nlc3NlcykKICogRXZlbnRzIEluIFB5dGhvbjo6ICAgICAgICAgICAgTGlz dGVuaW5nIGZvciBldmVudHMgZnJvbSBAdmFsdWV7R0RCTn0uCiAqIFRocmVh ZHMgSW4gUHl0aG9uOjogICAgICAgICAgIEFjY2Vzc2luZyBpbmZlcmlvciB0 aHJlYWRzIGZyb20gUHl0aG9uLgpAQCAtMjE3NCw2ICsyMTc3LDM0OCBAQCBw cmludGVkIGhpZXJhcmNoaWNhbGx5LiAgQW5vdGhlciBhcHByb2FjaCB3b3Vs ZCBiZSB0byBjb21iaW5lIHRoZQogbWFya2VyIGluIHRoZSBpbmxpbmVkIGZy YW1lLCBhbmQgYWxzbyBzaG93IHRoZSBoaWVyYXJjaGljYWwKIHJlbGF0aW9u c2hpcC4KIAorQG5vZGUgWG1ldGhvZHMgSW4gUHl0aG9uCitAc3Vic3Vic2Vj dGlvbiBYbWV0aG9kcyBJbiBQeXRob24KK0BjaW5kZXggeG1ldGhvZHMgaW4g UHl0aG9uCisKK0BkZm57WG1ldGhvZHN9IGFyZSBhZGRpdGlvbmFsIG1ldGhv ZHMgb3IgcmVwbGFjZW1lbnRzIGZvciBleGlzdGluZworbWV0aG9kcyBvZiBh IENAdHsrK30gY2xhc3MuICBUaGlzIGZlYXR1cmUgaXMgdXNlZnVsIGZvciB0 aG9zZSBjYXNlcword2hlcmUgYSBtZXRob2QgZGVmaW5lZCBpbiBDQHR7Kyt9 IHNvdXJjZSBjb2RlIGNvdWxkIGJlIGlubGluZWQgb3IKK29wdGltaXplZCBv dXQgYnkgdGhlIGNvbXBpbGVyLCBtYWtpbmcgaXQgdW5hdmFpbGFibGUgdG8g QHZhbHVle0dEQk59LgorRm9yIHN1Y2ggY2FzZXMsIG9uZSBjYW4gZGVmaW5l IGFuIHhtZXRob2QgdG8gc2VydmUgYXMgYSByZXBsYWNlbWVudAorZm9yIHRo ZSBtZXRob2QgZGVmaW5lZCBpbiB0aGUgQ0B0eysrfSBzb3VyY2UgY29kZS4g IEB2YWx1ZXtHREJOfSB3aWxsCit0aGVuIGludm9rZSB0aGUgeG1ldGhvZCwg aW5zdGVhZCBvZiB0aGUgQ0B0eysrfSBtZXRob2QsIHRvCitldmFsdWF0ZSBl eHByZXNzaW9ucy4gIE9uZSBjYW4gYWxzbyB1c2UgeG1ldGhvZHMgd2hlbiBk ZWJ1Z2dpbmcKK3dpdGggY29yZSBmaWxlcy4gIE1vcmVvdmVyLCB3aGVuIGRl YnVnZ2luZyBsaXZlIHByb2dyYW1zLCBpbnZva2luZyBhbgoreG1ldGhvZCBu ZWVkIG5vdCBpbnZvbHZlIHJ1bm5pbmcgdGhlIGluZmVyaW9yICh3aGljaCBj YW4gcG90ZW50aWFsbHkKK3BlcnR1cmIgaXRzIHN0YXRlKS4gIEhlbmNlLCBl dmVuIGlmIHRoZSBDQHR7Kyt9IG1ldGhvZCBpcyBhdmFpbGFibGUsIGl0Citp cyBiZXR0ZXIgdG8gdXNlIGl0cyByZXBsYWNlbWVudCB4bWV0aG9kIGlmIG9u ZSBpcyBkZWZpbmVkLgorCitUaGUgeG1ldGhvZHMgZmVhdHVyZSBpbiBQeXRo b24gaXMgYXZhaWxhYmxlIHZpYSB0aGUgY29uY2VwdHMgb2YgYW4KK0BkZm57 eG1ldGhvZCBtYXRjaGVyfSBhbmQgYW4gQGRmbnt4bWV0aG9kIHdvcmtlcn0u ICBUbworaW1wbGVtZW50IGFuIHhtZXRob2QsIG9uZSBoYXMgdG8gaW1wbGVt ZW50IGEgbWF0Y2hlciBhbmQgYQorY29ycmVzcG9uZGluZyB3b3JrZXIgZm9y IGl0IChtb3JlIHRoYW4gb25lIHdvcmtlciBjYW4gYmUKK2ltcGxlbWVudGVk LCBlYWNoIGNhdGVyaW5nIHRvIGEgZGlmZmVyZW50IG92ZXJsb2FkZWQgaW5z dGFuY2Ugb2YgdGhlCittZXRob2QpLiAgSW50ZXJuYWxseSwgQHZhbHVle0dE Qk59IGludm9rZXMgdGhlIEBjb2Rle21hdGNofSBtZXRob2Qgb2YgYQorbWF0 Y2hlciB0byBtYXRjaCB0aGUgY2xhc3MgdHlwZSBhbmQgbWV0aG9kIG5hbWUu ICBPbiBhIG1hdGNoLCB0aGUKK0Bjb2Rle21hdGNofSBtZXRob2QgcmV0dXJu cyBhIGxpc3Qgb2YgbWF0Y2hpbmcgQGVtcGh7d29ya2VyfSBvYmplY3RzLgor RWFjaCB3b3JrZXIgb2JqZWN0IHR5cGljYWxseSBjb3JyZXNwb25kcyB0byBh biBvdmVybG9hZGVkIGluc3RhbmNlIG9mCit0aGUgeG1ldGhvZC4gIFRoZXkg aW1wbGVtZW50IGEgQGNvZGV7Z2V0X2FyZ190eXBlc30gbWV0aG9kIHdoaWNo CityZXR1cm5zIGEgc2VxdWVuY2Ugb2YgdHlwZXMgY29ycmVzcG9uZGluZyB0 byB0aGUgYXJndW1lbnRzIHRoZSB4bWV0aG9kCityZXF1aXJlcy4gIEB2YWx1 ZXtHREJOfSB1c2VzIHRoaXMgc2VxdWVuY2Ugb2YgdHlwZXMgdG8gcGVyZm9y bQorb3ZlcmxvYWQgcmVzb2x1dGlvbiBhbmQgcGlja3MgYSB3aW5uaW5nIHht ZXRob2Qgd29ya2VyLiAgQSB3aW5uZXIKK2lzIGFsc28gc2VsZWN0ZWQgZnJv bSBhbW9uZyB0aGUgbWV0aG9kcyBAdmFsdWV7R0RCTn0gZmluZHMgaW4gdGhl CitDQHR7Kyt9IHNvdXJjZSBjb2RlLiAgTmV4dCwgdGhlIHdpbm5pbmcgeG1l dGhvZCB3b3JrZXIgYW5kIHRoZQord2lubmluZyBDQHR7Kyt9IG1ldGhvZCBh cmUgY29tcGFyZWQgdG8gc2VsZWN0IGFuIG92ZXJhbGwgd2lubmVyLiAgSW4K K2Nhc2Ugb2YgYSB0aWUgYmV0d2VlbiBhIHhtZXRob2Qgd29ya2VyIGFuZCBh IENAdHsrK30gbWV0aG9kLCB0aGUKK3htZXRob2Qgd29ya2VyIGlzIHNlbGVj dGVkIGFzIHRoZSB3aW5uZXIuICBUaGF0IGlzLCBpZiBhIHdpbm5pbmcKK3ht ZXRob2Qgd29ya2VyIGlzIGZvdW5kIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhl IHdpbm5pbmcgQ0B0eysrfQorbWV0aG9kLCB0aGVuIHRoZSB4bWV0aG9kIHdv cmtlciBpcyB0cmVhdGVkIGFzIGEgcmVwbGFjZW1lbnQgZm9yCit0aGUgQ0B0 eysrfSBtZXRob2QuICBAdmFsdWV7R0RCTn0gdXNlcyB0aGUgb3ZlcmFsbCB3 aW5uZXIgdG8gaW52b2tlIHRoZQorbWV0aG9kLiAgSWYgdGhlIHdpbm5pbmcg eG1ldGhvZCB3b3JrZXIgaXMgdGhlIG92ZXJhbGwgd2lubmVyLCB0aGVuCit0 aGUgY29ycmVzcG9uZGluZyB4bWV0aG9kIGlzIGludm9rZWQgdmlhIHRoZSBA Y29kZXtpbnZva2V9IG1ldGhvZAorb2YgdGhlIHdvcmtlciBvYmplY3QuCisK K0lmIG9uZSB3YW50cyB0byBpbXBsZW1lbnQgYW4geG1ldGhvZCBhcyBhIHJl cGxhY2VtZW50IGZvciBhbgorZXhpc3RpbmcgQ0B0eysrfSBtZXRob2QsIHRo ZW4gdGhleSBoYXZlIHRvIGltcGxlbWVudCBhbiBlcXVpdmFsZW50Cit4bWV0 aG9kIHdoaWNoIGhhcyBleGFjdGx5IHRoZSBzYW1lIG5hbWUgYW5kIHRha2Vz IGFyZ3VtZW50cyBvZgorZXhhY3RseSB0aGUgc2FtZSB0eXBlIGFzIHRoZSBD QHR7Kyt9IG1ldGhvZC4gIElmIHRoZSB1c2VyIHdhbnRzIHRvCitpbnZva2Ug dGhlIENAdHsrK30gbWV0aG9kIGV2ZW4gdGhvdWdoIGEgcmVwbGFjZW1lbnQg eG1ldGhvZCBpcworYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwgdGhlbiB0 aGV5IGNhbiBkaXNhYmxlIHRoZSB4bWV0aG9kLgorCitAeHJlZntYbWV0aG9k IEFQSX0sIGZvciBBUEkgdG8gaW1wbGVtZW50IHhtZXRob2RzIGluIFB5dGhv bi4KK0B4cmVme1dyaXRpbmcgYW4gWG1ldGhvZH0sIGZvciBpbXBsZW1lbnRp bmcgeG1ldGhvZHMgaW4gUHl0aG9uLgorCitAbm9kZSBYbWV0aG9kIEFQSQor QHN1YnN1YnNlY3Rpb24gWG1ldGhvZCBBUEkKK0BjaW5kZXggeG1ldGhvZCBB UEkKKworVGhlIEB2YWx1ZXtHREJOfSBQeXRob24gQVBJIHByb3ZpZGVzIGNs YXNzZXMsIGludGVyZmFjZXMgYW5kIGZ1bmN0aW9ucwordG8gaW1wbGVtZW50 LCByZWdpc3RlciBhbmQgbWFuaXB1bGF0ZSB4bWV0aG9kcy4KK0B4cmVme1ht ZXRob2RzIEluIFB5dGhvbn0uCisKK0FuIHhtZXRob2QgbWF0Y2hlciBzaG91 bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyBkZXJpdmVkIGZyb20KK0Bj b2Rle1hNZXRob2RNYXRjaGVyfSBkZWZpbmVkIGluIHRoZSBtb2R1bGUgQGNv ZGV7Z2RiLnhtZXRob2R9LCBvciBhbgorb2JqZWN0IHdpdGggc2ltaWxhciBp bnRlcmZhY2UgYW5kIGF0dHJpYnV0ZXMuICBBbiBpbnN0YW5jZSBvZgorQGNv ZGV7WE1ldGhvZE1hdGNoZXJ9IGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0 ZXM6CisKK0BkZWZ2YXIgbmFtZQorVGhlIG5hbWUgb2YgdGhlIG1hdGNoZXIu CitAZW5kIGRlZnZhcgorCitAZGVmdmFyIGVuYWJsZWQKK0EgYm9vbGVhbiB2 YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG1hdGNoZXIgaXMgZW5hYmxl ZCBvciBkaXNhYmxlZC4KK0BlbmQgZGVmdmFyCisKK0BkZWZ2YXIgbWV0aG9k cworQSBsaXN0IG9mIG5hbWVkIG1ldGhvZHMgbWFuYWdlZCBieSB0aGUgbWF0 Y2hlci4gIEVhY2ggb2JqZWN0IGluIHRoZSBsaXN0CitpcyBhbiBpbnN0YW5j ZSBvZiB0aGUgY2xhc3MgQGNvZGV7WE1ldGhvZH0gZGVmaW5lZCBpbiB0aGUg bW9kdWxlCitAY29kZXtnZGIueG1ldGhvZH0sIG9yIGFueSBvYmplY3Qgd2l0 aCB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CisKK0B0YWJsZSBAY29kZQor CitAaXRlbSBuYW1lCitOYW1lIG9mIHRoZSB4bWV0aG9kIHdoaWNoIHNob3Vs ZCBiZSB1bmlxdWUgZm9yIGVhY2ggeG1ldGhvZAorbWFuYWdlZCBieSB0aGUg bWF0Y2hlci4KKworQGl0ZW0gZW5hYmxlZAorQSBib29sZWFuIHZhbHVlIGlu ZGljYXRpbmcgd2hldGhlciB0aGUgeG1ldGhvZCBpcyBlbmFibGVkIG9yCitk aXNhYmxlZC4KKworQGVuZCB0YWJsZQorCitUaGUgY2xhc3MgQGNvZGV7WE1l dGhvZH0gaXMgYSBjb252ZW5pZW5jZSBjbGFzcyB3aXRoIHNhbWUKK2F0dHJp YnV0ZXMgYXMgYWJvdmUgYWxvbmcgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnN0 cnVjdG9yOgorCitAZGVmdW4gWE1ldGhvZC5fX2luaXRfXyhzZWxmLCBuYW1l KQorQ29uc3RydWN0cyBhbiBlbmFibGVkIHhtZXRob2Qgd2l0aCBuYW1lIEB2 YXJ7bmFtZX0uCitAZW5kIGRlZnVuCitAZW5kIGRlZnZhcgorCitAbm9pbmRl bnQKK1RoZSBAY29kZXtYTWV0aG9kTWF0Y2hlcn0gY2xhc3MgaGFzIHRoZSBm b2xsb3dpbmcgbWV0aG9kczoKKworQGRlZnVuIFhNZXRob2RNYXRjaGVyLl9f aW5pdF9fKHNlbGYsIG5hbWUpCitDb25zdHJ1Y3RzIGFuIGVuYWJsZWQgeG1l dGhvZCBtYXRjaGVyIHdpdGggbmFtZSBAdmFye25hbWV9LiAgVGhlCitAY29k ZXttZXRob2RzfSBhdHRyaWJ1dGUgaXMgaW5pdGlhbGl6ZWQgdG8gQGNvZGV7 Tm9uZX0uCitAZW5kIGRlZnVuCisKK0BkZWZ1biBYTWV0aG9kTWF0Y2hlci5t YXRjaChzZWxmLCBjbGFzc190eXBlLCBtZXRob2RfbmFtZSkKK0Rlcml2ZWQg Y2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QuICBJdCBzaG91 bGQgcmV0dXJuIGEKK3htZXRob2Qgd29ya2VyIG9iamVjdCAob3IgYSBzZXF1 ZW5jZSBvZiB4bWV0aG9kIHdvcmtlcgorb2JqZWN0cykgbWF0Y2hpbmcgdGhl IEB2YXJ7Y2xhc3NfdHlwZX0gYW5kIEB2YXJ7bWV0aG9kX25hbWV9LgorQHZh cntjbGFzc190eXBlfSBpcyBhIEBjb2Rle2dkYi5UeXBlfSBvYmplY3QsIGFu ZCBAdmFye21ldGhvZF9uYW1lfQoraXMgYSBzdHJpbmcgdmFsdWUuICBJZiB0 aGUgbWF0Y2hlciBtYW5hZ2VzIG5hbWVkIG1ldGhvZHMgYXMgbGlzdGVkIGlu CitpdHMgQGNvZGV7bWV0aG9kc30gYXR0cmlidXRlLCB0aGVuIG9ubHkgdGhv c2Ugd29ya2VyIG9iamVjdHMgd2hvc2UKK2NvcnJlc3BvbmRpbmcgZW50cmll cyBpbiB0aGUgQGNvZGV7bWV0aG9kc30gbGlzdCBhcmUgZW5hYmxlZCBzaG91 bGQgYmUKK3JldHVybmVkLgorQGVuZCBkZWZ1bgorCitBbiB4bWV0aG9kIHdv cmtlciBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyBkZXJpdmVk IGZyb20KK0Bjb2Rle1hNZXRob2RXb3JrZXJ9IGRlZmluZWQgaW4gdGhlIG1v ZHVsZSBAY29kZXtnZGIueG1ldGhvZH0sCitvciBzdXBwb3J0IHRoZSBmb2xs b3dpbmcgaW50ZXJmYWNlOgorCitAZGVmdW4gWE1ldGhvZFdvcmtlci5nZXRf YXJnX3R5cGVzKHNlbGYpCitUaGlzIG1ldGhvZCByZXR1cm5zIGEgc2VxdWVu Y2Ugb2YgQGNvZGV7Z2RiLlR5cGV9IG9iamVjdHMgY29ycmVzcG9uZGluZwor dG8gdGhlIGFyZ3VtZW50cyB0aGF0IHRoZSB4bWV0aG9kIHRha2VzLiAgSXQg Y2FuIHJldHVybiBhbiBlbXB0eQorc2VxdWVuY2Ugb3IgQGNvZGV7Tm9uZX0g aWYgdGhlIHhtZXRob2QgZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnRzLgor SWYgdGhlIHhtZXRob2QgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQsIHRoZW4g YSBzaW5nbGUKK0Bjb2Rle2dkYi5UeXBlfSBvYmplY3QgY29ycmVzcG9uZGlu ZyB0byBpdCBjYW4gYmUgcmV0dXJuZWQuCitAZW5kIGRlZnVuCisKK0BkZWZ1 biBYTWV0aG9kV29ya2VyLl9fY2FsbF9fKHNlbGYsICphcmdzKQorVGhpcyBp cyB0aGUgbWV0aG9kIHdoaWNoIGRvZXMgdGhlIEBlbXBoe3dvcmt9IG9mIHRo ZSB4bWV0aG9kLiAgVGhlCitAdmFye2FyZ3N9IGFyZ3VtZW50cyBpcyB0aGUg dHVwbGUgb2YgYXJndW1lbnRzIHRvIHRoZSB4bWV0aG9kLiAgRWFjaAorZWxl bWVudCBpbiB0aGlzIHR1cGxlIGlzIGEgZ2RiLlZhbHVlIG9iamVjdC4gIFRo ZSBmaXJzdCBlbGVtZW50IGlzCithbHdheXMgdGhlIEBjb2Rle3RoaXN9IHBv aW50ZXIgdmFsdWUuCitAZW5kIGRlZnVuCisKK0ZvciBAdmFsdWV7R0RCTn0g dG8gbG9va3VwIHhtZXRob2RzLCB0aGUgeG1ldGhvZCBtYXRjaGVycworc2hv dWxkIGJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlv biBkZWZpbmVkIGluIHRoZSBtb2R1bGUKK0Bjb2Rle2dkYi54bWV0aG9kfToK KworQGRlZnVuIHJlZ2lzdGVyX3htZXRob2RfbWF0Y2hlcihsb2N1cywgbWF0 Y2hlciwgcmVwbGFjZT1GYWxzZSkKK1RoZSBAY29kZXttYXRjaGVyfSBpcyBy ZWdpc3RlcmVkIHdpdGggQGNvZGV7bG9jdXN9LCByZXBsYWNpbmcgYW4KK2V4 aXN0aW5nIG1hdGNoZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIEBjb2Rle21h dGNoZXJ9IGlmCitAY29kZXtyZXBsYWNlfSBpcyBAY29kZXtUcnVlfS4gIEBj b2Rle2xvY3VzfSBjYW4gYmUgYQorQGNvZGV7Z2RiLk9iamZpbGV9IG9iamVj dCAoQHB4cmVme09iamZpbGVzIEluIFB5dGhvbn0pLCBvciBhCitAY29kZXtn ZGIuUHJvZ3NwYWNlfSBvYmplY3QgKEBweHJlZntQcm9ncmFtIFNwYWNlcyBJ biBQeXRob259KSwgb3IKK0Bjb2Rle05vbmV9LiAgSWYgaXQgaXMgQGNvZGV7 Tm9uZX0sIHRoZW4gQGNvZGV7bWF0Y2hlcn0gaXMgcmVnaXN0ZXJlZAorZ2xv YmFsbHkuCitAZW5kIGRlZnVuCisKK0Bub2RlIFdyaXRpbmcgYW4gWG1ldGhv ZAorQHN1YnN1YnNlY3Rpb24gV3JpdGluZyBhbiBYbWV0aG9kCitAY2luZGV4 IHdyaXRpbmcgeG1ldGhvZHMgaW4gUHl0aG9uCisKK0ltcGxlbWVudGluZyB4 bWV0aG9kcyBpbiBQeXRob24gd2lsbCByZXF1aXJlIGltcGxlbWVudGluZyB4 bWV0aG9kCittYXRjaGVycyBhbmQgeG1ldGhvZCB3b3JrZXJzIChAcHhyZWZ7 WG1ldGhvZHMgSW4gUHl0aG9ufSkuICBDb25zaWRlcgordGhlIGZvbGxvd2lu ZyBDQHR7Kyt9IGNsYXNzOgorCitAc21hbGxleGFtcGxlCitjbGFzcyBNeUNs YXNzCitAeworcHVibGljOgorICBNeUNsYXNzIChpbnQgYSkgOiBhXyhhKSBA eyBAfQorCisgIGludCBnZXRhICh2b2lkKSBAeyByZXR1cm4gYV87IEB9Cisg IGludCBvcGVyYXRvcisgKGludCBiKTsKKworcHJpdmF0ZToKKyAgaW50IGFf OworQH07CisKK2ludAorTXlDbGFzczo6b3BlcmF0b3IrIChpbnQgYikKK0B7 CisgIHJldHVybiBhXyArIGI7CitAfQorQGVuZCBzbWFsbGV4YW1wbGUKKwor QG5vaW5kZW50CitMZXQgdXMgZGVmaW5lIHR3byB4bWV0aG9kcyBmb3IgdGhl IGNsYXNzIEBjb2Rle015Q2xhc3N9LCBvbmUKK3JlcGxhY2luZyB0aGUgbWV0 aG9kIEBjb2Rle2dldGF9LCBhbmQgYW5vdGhlciBhZGRpbmcgYW4gb3Zlcmxv YWRlZAorZmxhdm9yIG9mIEBjb2Rle29wZXJhdG9yK30gd2hpY2ggdGFrZXMg YSBAY29kZXtNeUNsYXNzfSBhcmd1bWVudCAodGhlCitDQHR7Kyt9IGNvZGUg YWJvdmUgYWxyZWFkeSBoYXMgYW4gb3ZlcmxvYWRlZCBAY29kZXtvcGVyYXRv cit9Cit3aGljaCB0YWtlcyBhbiBAY29kZXtpbnR9IGFyZ3VtZW50KS4gIFRo ZSB4bWV0aG9kIG1hdGNoZXIgY2FuIGJlCitkZWZpbmVkIGFzIGZvbGxvd3M6 CisKK0BzbWFsbGV4YW1wbGUKK2NsYXNzIE15Q2xhc3NfZ2V0YShnZGIueG1l dGhvZC5YTWV0aG9kKToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg ICAgIGdkYi54bWV0aG9kLlhNZXRob2QuX19pbml0X18oc2VsZiwgJ2dldGEn KQorIAorICAgIGRlZiBnZXRfd29ya2VyKHNlbGYsIG1ldGhvZF9uYW1lKToK KyAgICAgICAgaWYgbWV0aG9kX25hbWUgPT0gJ2dldGEnOgorICAgICAgICAg ICAgcmV0dXJuIE15Q2xhc3NXb3JrZXJfZ2V0YSgpCisgCisgCitjbGFzcyBN eUNsYXNzX3N1bShnZGIueG1ldGhvZC5YTWV0aG9kKToKKyAgICBkZWYgX19p bml0X18oc2VsZik6CisgICAgICAgIGdkYi54bWV0aG9kLlhNZXRob2QuX19p bml0X18oc2VsZiwgJ3N1bScpCisgCisgICAgZGVmIGdldF93b3JrZXIoc2Vs ZiwgbWV0aG9kX25hbWUpOgorICAgICAgICBpZiBtZXRob2RfbmFtZSA9PSAn b3BlcmF0b3IrJzoKKyAgICAgICAgICAgIHJldHVybiBNeUNsYXNzV29ya2Vy X3BsdXMoKQorIAorIAorY2xhc3MgTXlDbGFzc01hdGNoZXIoZ2RiLnhtZXRo b2QuWE1ldGhvZE1hdGNoZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToK KyAgICAgICAgZ2RiLnhtZXRob2QuWE1ldGhvZE1hdGNoZXIuX19pbml0X18o c2VsZiwgJ015Q2xhc3NNYXRjaGVyJykKKyAgICAgICAgIyBMaXN0IG9mIG1l dGhvZHMgJ21hbmFnZWQnIGJ5IHRoaXMgbWF0Y2hlcgorICAgICAgICBzZWxm Lm1ldGhvZHMgPSBbTXlDbGFzc19nZXRhKCksIE15Q2xhc3Nfc3VtKCldCisg CisgICAgZGVmIG1hdGNoKHNlbGYsIGNsYXNzX3R5cGUsIG1ldGhvZF9uYW1l KToKKyAgICAgICAgaWYgY2xhc3NfdHlwZS50YWcgIT0gJ015Q2xhc3MnOgor ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgd29ya2VycyA9IFtd CisgICAgICAgIGZvciBtZXRob2QgaW4gc2VsZi5tZXRob2RzOgorICAgICAg ICAgICAgaWYgbWV0aG9kLmVuYWJsZWQ6CisgICAgICAgICAgICAgICAgd29y a2VyID0gbWV0aG9kLmdldF93b3JrZXIobWV0aG9kX25hbWUpCisgICAgICAg ICAgICAgICAgaWYgd29ya2VyOgorICAgICAgICAgICAgICAgICAgICB3b3Jr ZXJzLmFwcGVuZCh3b3JrZXIpCisgCisgICAgICAgIHJldHVybiB3b3JrZXJz CitAZW5kIHNtYWxsZXhhbXBsZQorCitAbm9pbmRlbnQKK05vdGljZSB0aGF0 IHRoZSBAY29kZXttYXRjaH0gbWV0aG9kIG9mIEBjb2Rle015Q2xhc3NNYXRj aGVyfSByZXR1cm5zCithIHdvcmtlciBvYmplY3Qgb2YgdHlwZSBAY29kZXtN eUNsYXNzV29ya2VyX2dldGF9IGZvciB0aGUgQGNvZGV7Z2V0YX0KK21ldGhv ZCwgYW5kIGEgd29ya2VyIG9iamVjdCBvZiB0eXBlIEBjb2Rle015Q2xhc3NX b3JrZXJfcGx1c30gZm9yIHRoZQorQGNvZGV7b3BlcmF0b3IrfSBtZXRob2Qu ICBUaGlzIGlzIGRvbmUgaW5kaXJlY3RseSB2aWEgaGVscGVyIGNsYXNzZXMK K2Rlcml2ZWQgZnJvbSBAY29kZXtnZGIueG1ldGhvZC5YTWV0aG9kfS4gIE9u ZSBkb2VzIG5vdCBuZWVkIHRvIHVzZSB0aGUKK0Bjb2Rle21ldGhvZHN9IGF0 dHJpYnV0ZSBpbiBhIG1hdGNoZXIgYXMgaXQgaXMgb3B0aW9uYWwuICBIb3dl dmVyLCBpZiBhCittYXRjaGVyIG1hbmFnZXMgbW9yZSB0aGFuIG9uZSB4bWV0 aG9kLCBpdCBpcyBhIGdvb2QgcHJhY3RpY2UgdG8gbGlzdCB0aGUKK3htZXRo b2RzIGluIHRoZSBAY29kZXttZXRob2RzfSBhdHRyaWJ1dGUgb2YgdGhlIG1h dGNoZXIuICBUaGlzIHdpbGwgdGhlbgorZmFjaWxpdGF0ZSBlbmFibGluZyBh bmQgZGlzYWJsaW5nIGluZGl2aWR1YWwgeG1ldGhvZHMgdmlhIHRoZQorQGNv ZGV7ZW5hYmxlL2Rpc2FibGV9IGNvbW1hbmRzLiAgTm90aWNlIGFsc28gdGhh dCBhIHdvcmtlciBvYmplY3QgaXMKK3JldHVybmVkIG9ubHkgaWYgdGhlIGNv cnJlc3BvbmRpbmcgZW50cnkgaW4gdGhlIEBjb2Rle21ldGhvZHN9IGF0dHJp YnV0ZQorb2YgdGhlIG1hdGNoZXIgaXMgZW5hYmxlZC4KKworVGhlIGltcGxl bWVudGF0aW9uIG9mIHRoZSB3b3JrZXIgY2xhc3NlcyByZXR1cm5lZCBieSB0 aGUgbWF0Y2hlciBzZXR1cAorYWJvdmUgaXMgYXMgZm9sbG93czoKKworQHNt YWxsZXhhbXBsZQorY2xhc3MgTXlDbGFzc1dvcmtlcl9nZXRhKGdkYi54bWV0 aG9kLlhNZXRob2RXb3JrZXIpOgorICAgIGRlZiBnZXRfYXJnX3R5cGVzKHNl bGYpOgorICAgICAgICByZXR1cm4gTm9uZQorIAorICAgIGRlZiBfX2NhbGxf XyhzZWxmLCBvYmopOgorICAgICAgICByZXR1cm4gb2JqWydhXyddCisgCisg CitjbGFzcyBNeUNsYXNzV29ya2VyX3BsdXMoZ2RiLnhtZXRob2QuWE1ldGhv ZFdvcmtlcik6CisgICAgZGVmIGdldF9hcmdfdHlwZXMoc2VsZik6CisgICAg ICAgIHJldHVybiBnZGIubG9va3VwX3R5cGUoJ015Q2xhc3MnKQorIAorICAg IGRlZiBfX2NhbGxfXyhzZWxmLCBvYmosIG90aGVyKToKKyAgICAgICAgcmV0 dXJuIG9ialsnYV8nXSArIG90aGVyWydhXyddCitAZW5kIHNtYWxsZXhhbXBs ZQorCitGb3IgQHZhbHVle0dEQk59IHRvIGFjdHVhbGx5IGxvb2t1cCBhIHht ZXRob2QsIGl0IGhhcyB0byBiZQorcmVnaXN0ZXJlZCB3aXRoIGl0LiAgVGhl IG1hdGNoZXIgZGVmaW5lZCBhYm92ZSBpcyByZWdpc3RlcmVkIHdpdGgKK0B2 YWx1ZXtHREJOfSBnbG9iYWxseSBhcyBmb2xsb3dzOgorCitAc21hbGxleGFt cGxlCitnZGIueG1ldGhvZC5yZWdpc3Rlcl94bWV0aG9kX21hdGNoZXIoTm9u ZSwgTXlDbGFzc01hdGNoZXIoKSkKK0BlbmQgc21hbGxleGFtcGxlCisKK0lm IGFuIG9iamVjdCBAY29kZXtvYmp9IG9mIHR5cGUgQGNvZGV7TXlDbGFzc30g aXMgaW5pdGlhbGl6ZWQgaW4gQ0B0eysrfQorY29kZSBhcyBmb2xsb3dzOgor CitAc21hbGxleGFtcGxlCitNeUNsYXNzIG9iaig1KTsKK0BlbmQgc21hbGxl eGFtcGxlCisKK0Bub2luZGVudAordGhlbiwgYWZ0ZXIgbG9hZGluZyB0aGUg UHl0aG9uIHNjcmlwdCBkZWZpbmluZyB0aGUgeG1ldGhvZCBtYXRjaGVycwor YW5kIHdvcmtlcnMgaW50byBAY29kZXtHREJOfSwgaW52b2tpbmcgdGhlIG1l dGhvZCBAY29kZXtnZXRhfSBvciB1c2luZwordGhlIG9wZXJhdG9yIEBjb2Rl eyt9IG9uIEBjb2Rle29ian0gd2lsbCBpbnZva2UgdGhlIHhtZXRob2RzCitk ZWZpbmVkIGFib3ZlOgorCitAc21hbGxleGFtcGxlCisoZ2RiKSBwIG9iai5n ZXRhKCkKKyQxID0gNQorCisoZ2RiKSBwIG9iaiArIG9iagorJDIgPSAxMAor QGVuZCBzbWFsbGV4YW1wbGUKKworQ29uc2lkZXIgYW5vdGhlciBleGFtcGxl IHdpdGggYSBDKysgdGVtcGxhdGUgY2xhc3M6CisKK0BzbWFsbGV4YW1wbGUK K3RlbXBsYXRlIDxjbGFzcyBUPgorY2xhc3MgTXlUZW1wbGF0ZQorQHsKK3B1 YmxpYzoKKyAgTXlUZW1wbGF0ZSAoKSA6IGRzaXplXygxMCksIGRhdGFfIChu ZXcgVCBbMTBdKSBAeyBAfQorICB+TXlUZW1wbGF0ZSAoKSBAeyBkZWxldGUg W10gZGF0YV87IEB9CisgCisgIGludCBmb290cHJpbnQgKHZvaWQpCisgIEB7 CisgICAgcmV0dXJuIHNpemVvZiAoVCkgKiBkc2l6ZV8gKyBzaXplb2YgKE15 VGVtcGxhdGU8VD4pOworICBAfQorIAorcHJpdmF0ZToKKyAgaW50IGRzaXpl XzsKKyAgVCAqZGF0YV87CitAfTsKK0BlbmQgc21hbGxleGFtcGxlCisKK0xl dCB1cyBpbXBsZW1lbnQgYW4geG1ldGhvZCBmb3IgdGhlIGFib3ZlIGNsYXNz IHdoaWNoIHNlcnZlcyBhcyBhCityZXBsYWNlbWVudCBmb3IgdGhlIEBjb2Rl e2Zvb3RwcmludH0gbWV0aG9kLiAgVGhlIGZ1bGwgY29kZSBsaXN0aW5nCitv ZiB0aGUgeG1ldGhvZCB3b3JrZXJzIGFuZCB4bWV0aG9kIG1hdGNoZXJzIGlz IGFzIGZvbGxvd3M6CisKK0BzbWFsbGV4YW1wbGUKK2NsYXNzIE15VGVtcGxh dGVXb3JrZXJfZm9vdHByaW50KGdkYi54bWV0aG9kLlhNZXRob2RXb3JrZXIp OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbGFzc190eXBlKToKKyAgICAg ICAgc2VsZi5jbGFzc190eXBlID0gY2xhc3NfdHlwZQorIAorICAgIGRlZiBn ZXRfYXJnX3R5cGVzKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorIAor ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBvYmopOgorICAgICAgICByZXR1cm4g KHNlbGYuY2xhc3NfdHlwZS5zaXplb2YgKworICAgICAgICAgICAgICAgIG9i alsnZHNpemVfJ10gKgorICAgICAgICAgICAgICAgIHNlbGYuY2xhc3NfdHlw ZS50ZW1wbGF0ZV9hcmd1bWVudCgwKS5zaXplb2YpCisgCisgCitjbGFzcyBN eVRlbXBsYXRlTWF0Y2hlcl9mb290cHJpbnQoZ2RiLnhtZXRob2QuWE1ldGhv ZE1hdGNoZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAg Z2RiLnhtZXRob2QuWE1ldGhvZE1hdGNoZXIuX19pbml0X18oc2VsZiwgJ015 VGVtcGxhdGVNYXRjaGVyJykKKyAKKyAgICBkZWYgbWF0Y2goc2VsZiwgY2xh c3NfdHlwZSwgbWV0aG9kX25hbWUpOgorICAgICAgICBpZiAocmUubWF0Y2go J015VGVtcGxhdGU8WyBcdFxuXSpbX2EtekEtWl1bIF9hLXpBLVowLTldKj4n LAorICAgICAgICAgICAgICAgICAgICAgY2xhc3NfdHlwZS50YWcpIGFuZAor ICAgICAgICAgICAgbWV0aG9kX25hbWUgPT0gJ2Zvb3RwcmludCcpOgorICAg ICAgICAgICAgcmV0dXJuIE15VGVtcGxhdGVXb3JrZXJfZm9vdHByaW50KGNs YXNzX3R5cGUpCitAZW5kIHNtYWxsZXhhbXBsZQorCitOb3RpY2UgdGhhdCwg aW4gdGhpcyBleGFtcGxlLCB3ZSBoYXZlIG5vdCB1c2VkIHRoZSBAY29kZXtt ZXRob2RzfQorYXR0cmlidXRlIG9mIHRoZSBtYXRjaGVyIGFzIHRoZSBtYXRj aGVyIG1hbmFnZXMgb25seSBvbmUgeG1ldGhvZC4gIFRoZQordXNlciBjYW4g ZW5hYmxlL2Rpc2FibGUgdGhpcyB4bWV0aG9kIGJ5IGVuYWJsaW5nL2Rpc2Fi bGluZyB0aGUgbWF0Y2hlcgoraXRzZWxmLgorCiBAbm9kZSBJbmZlcmlvcnMg SW4gUHl0aG9uCiBAc3Vic3Vic2VjdGlvbiBJbmZlcmlvcnMgSW4gUHl0aG9u CiBAY2luZGV4IGluZmVyaW9ycyBpbiBQeXRob24K --001a11c265deb61d7104fadf165b--