Re: A 'makedep' feature for m4.
Eric Blake via M4-patches <[email protected]> Mon, 26 May 2025 07:41:42 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <2m7rtn4ykgyyirbuef2hr3gmi3pxyoe2kfnllwzjj2avndlesx@w6ampsskywfj> |
T24gU2F0LCBNYXkgMjQsIDIwMjUgYXQgMDI6MjA6MDhQTSAtMDQwMCwgRGF2aWQgTS4gV2FybWUg d3JvdGU6Cj4gRXJpYywKPiAKPiBTb3JyeSBhYm91dCB0aGUgc2NyYW1ibGVkIHBhdGNoIGZpbGVz LiAgSSBhbSByZS1zZW5kaW5nIGFzIHRleHQgb25seQo+IChzdGlsbCBtaW1lIGVuY29kZWQpIHdp dGggYm90aCB0aGUgYnJhbmNoLTEuNCBhbmQgYnJhbmNoLTEuNiBwYXRjaAo+IGZpbGVzIHNlbnQg YXMgZ3ppcHBlZCBhdHRhY2htZW50cy4gIFRoaXMgc2hvdWxkIGZvcmNlIHRoZSBhdHRhY2htZW50 cwo+IHRvIGJlIGVuY29kZWQgdXNpbmcgYmFzZTY0IGFuZCBhcnJpdmUgaW50YWN0LgoKRm9jdXNp bmcgb24gdGhlIGJyYW5jaC0xLjYgcGF0Y2g6Cgo+ICsrKyBiL05FV1MKPiBAQCAtMTk2LDYgKzE5 Niw4IEBAIGZvbGxvd2luZyBiZXRhIGZlYXR1cmVzIHRoYXQgd2VyZSBkZWVtZWQgd29ydGggZGVm ZXJyaW5nIHVudGlsIDEuNjoKPiAgCj4gICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2Ug MS40LjE5ICgyMDIxLTA1LTI4KSBbc3RhYmxlXQo+ICAKPiArKiogQWRkIG5ldyBjYXBhYmlsaXR5 IHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgbWFrZSBkZXBlbmRlbmN5IHJ1bGVzLgoKSSdtIGhv aXN0aW5nIHRoaXMgZWFybGllciBpbiB0aGUgZmlsZSwgc2luY2UgaXQgZGlkIG5vdCBtYWtlIGl0 IGludG8KdGhlIDEuNC4xOSByZWxlYXNlLiAgSXQncyBhbHNvIHdvcnRoIGNhbGxpbmcgb3V0IHRo ZSBuZXcgY29tbWFuZCBsaW5lCm9wdGlvbnMgYnkgbmFtZSAoZG93biB0aGUgcm9hZCwgaXQncyBl YXNpZXIgdG8gc2VhcmNoIGZvciB3aGVuIGFuCm9wdGlvbiB3YXMgYWRkZWQgaWYgdGhlIG9wdGlv bidzIG5hbWUgaXMgcHJlc2VudCBpbiBORVdTKS4KCj4gKysrIGIvY2hlY2tzL2NoZWNrLXRoZW0K PiBAQCAtMzcsNiArMzcsNyBAQCBvdXQ9JHRtcC9tNC1vdXQKPiAgZXJyPSR0bXAvbTQtZXJyCj4g IHhvdXQ9JHRtcC9tNC14b3V0Cj4gIHhlcnI9JHRtcC9tNC14ZXJyCj4gK3hhdXg9JHRtcC9tNC14 YXV4Cj4gIGZhaWxlZD0KPiAgc2tpcHBlZD0KPiAgc3RyaXBfbmVlZGVkPWZhbHNlCj4gQEAgLTEw NCw3ICsxMDUsOCBAQCBkbwo+ICAgICAgICBjb250aW51ZSA7Owo+ICAgIGVzYWMKPiAgCj4gLSAg b3B0aW9ucz1gJHtTRUR9IC1uZSAnM3MvXmRubCBAIGV4dHJhIG9wdGlvbnM6IC8vcDszcScgIiRm aWxlImAKPiArICBvcHRpb25zPWAke1NFRH0gLW5lICczcy9eZG5sIEAgZXh0cmEgb3B0aW9uczog Ly9wOzNxJyAiJGZpbGUiIFwKPiArICAgIHwgJHtTRUR9IC1lICJzL1RNUFwvLyR0bXBcLy8iYAoK InNlZCAuLi4gfCBzZWQgLi4uIiBjYW4gdXN1YWxseSBiZSBjb21wYWN0ZWQgaW50byAic2VkIC4u LiIuICBBbmQgdXNlCm9mIFwgaW5zaWRlIGAgaXMgYWx3YXlzIGEgcGFpbiB0byBnZXQgcmlnaHQu ICBJJ20gc2ltcGxpZnlpbmcgdGhpcyBvbmUKc2xpZ2h0bHkuCgo+ICAgICR7U0VEfSAtZSAnL15k bmwgQC9kJyAtZSAnL15cXkQkL3EnICIkZmlsZSIgXAo+ICAgICAgfCBMQ19NRVNTQUdFUz1DIExB Tkc9QyBNNFBBVEg9JGV4YW1wbGVzICIkbTQiIC1kICRvcHRpb25zIC0gPiRvdXQgMj4kZXJyCj4g ICAgc3RhdD0kPwo+IEBAIC0xMjYsOCArMTI4LDkgQEAgZG8KPiAgCj4gICAgeG91dGZpbGU9YCR7 U0VEfSAtbiAncy9eZG5sIEAgZXhwZWN0ZWQgb3V0cHV0OiAvL3AnICIkZmlsZSJgCj4gICAgaWYg dGVzdCAteiAiJHhvdXRmaWxlIiA7IHRoZW4KPiAtICAgICR7U0VEfSAtZSAnL15kbmwgQHJlc3Vs dHt9LyFkJyAtZSAncy8vLycgLWUgInN8ZXhhbXBsZXMvfCRleGFtcGxlcy98IiBcCj4gLSAgICAg IC1lICJzfEB2YWx1ZXtWRVJTSU9OfXwkbTR2ZXJzaW9ufCIgIiRmaWxlIiA+ICR4b3V0Cj4gKyAg ICAke1NFRH0gLW5lICdzL15kbmwgQHJlc3VsdHt9Ly9wJyAiJGZpbGUiIFwKPiArICAgIHwgJHtT RUR9IC1lICJzfGV4YW1wbGVzL3wkZXhhbXBsZXMvfCIgXAo+ICsgICAgICAtZSAic3xAdmFsdWV7 VkVSU0lPTn18JG00dmVyc2lvbnwiID4gJHhvdXQKClVubGVzcyBJJ20gcmVhZGluZyBpdCB3cm9u ZywgdGhpcyBodW5rIGFkZHMgYSBwcm9jZXNzLCBidXQgb3RoZXJ3aXNlCm1ha2VzIG5vIGRpZmZl cmVuY2UgaW4gdGhlIHJlc3VsdGluZyBvdXRwdXQgKGVpdGhlciB3aXRoIHRoZQpwcmUtZXhpc3Rp bmcgb25lIHNlZCwgb3Igd2l0aCB5b3VyIHJld3JpdHRlbiBwaXBlbGluZSBvZiBzZWRzLCB0aGUg bmV0CnJlc3VsdCBpcyB0aGF0IG9ubHkgdGhlIGxpbmVzIHN0YXJ0aW5nIHdpdGggJ2RubCBAcmVz dWx0e30nIGFyZQpwcmludGVkIHdpdGggdGhhdCBwcmVmaXggc3RyaXBwZWQgYW5kICJleGFtcGxl cyIgYW5kICJAdmFsdWV7VkVSU0lPTn0iCnJld3JpdHRlbikuICBTaW5jZSBpdCBpcyB1bnJlbGF0 ZWQgdG8geW91ciBmZWF0dXJlLCBJJ20gZXhjbHVkaW5nIGl0LgoKPiAgICBlbHNlCj4gICAgICBj cCAiJGV4YW1wbGVzLyR4b3V0ZmlsZSIgJHhvdXQKPiAgICBmaQo+IEBAIC0xNDksNiArMTUyLDgg QEAgZG8KPiAgICAgICAgICAiJGV4YW1wbGVzLyR4ZXJyZmlsZSIgPiAkeGVyciA7Owo+ICAgIGVz YWMKPiAgCj4gKyAgYXV4ZmlsZT1gJHtTRUR9IC1uICdzL15kbmwgQCBleHBlY3RlZCBhdXhmaWxl OiAvL3AnICIkZmlsZSJgCj4gKwo+ICAgICMgRm9yIHRoZSBiZW5lZml0IG9mIG1pbmd3LCBub3Jt YWxpemUgXHJcbiBsaW5lIGVuZGluZ3MKPiAgICBpZiAkc3RyaXBfbmVlZGVkIDsgdGhlbgo+ICAg ICAgdHIgLWQgJ1wwMTUnIDwgJG91dCA+ICRvdXQudAo+IEBAIC0xNzksNiArMTg0LDMyIEBAIGRv Cj4gICAgICBkaWZmICRkaWZmb3B0cyAkeGVyciAkZXJyCj4gICAgZmkKPiAgCj4gKyAgaWYgdGVz dCAtbiAiJGF1eGZpbGUiOyB0aGVuCj4gKyAgICB0YXV4ZmlsZT1gZWNobyAiJGF1eGZpbGUiIHwg JHtTRUR9IC1lICJzL1RNUFwvLyR0bXBcLy8iYAoKVGhpcyBpcyB1bnNhZmUgaWYgJHRtcCBjb250 YWlucyAvLiAgQmV0dGVyIGlzIHRvIHVzZSBhbiBhbHRlcm5hdGl2ZQpkZWxpbWl0ZXIsIGxpa2Ug InN8VE1QL3wkdG1wL3wiLgoKPiArKysgYi9jaGVja3MvZ2V0LXRoZW0KCj4gQEAgLTExNiw5ICsx MjUsOSBAQCBCRUdJTiB7Cj4gICAgfQo+ICAgIGlmICgkMCB+IC9eXF5EJC8pCj4gICAgICBuZXh0 Owo+IC0gIGlmICgkMCB+IC9eXCQgQGtiZC8pCj4gKyAgaWYgKCQwIH4gL15cJCBAa2JkLyB8fCAk MCB+IC9eQGtiZC8pCgpPaCwgcGVla2luZyBhaGVhZCwgSSBzZWUgd2hlcmUgeW91IHdyb3RlOgoK PiArJCBAa2Jke200IC1JIGV4YW1wbGVzIC0tbWFrZWRlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAt dGFyZ2V0PVRhcmdldCBcfQo+ICtAa2JkeyAgICAtLW1ha2VkZXAtZ2VuLW1pc3NpbmctYWxsIGZv byBub25lIC19CgpJdCB3b3VsZCBhbHNvIGJlIHBvc3NpYmxlIHRvIGNvbmRlbnNlIHRoaXMgYmFj ayBpbnRvIG9uZSByZWdleCwgcmF0aGVyCnRoYW4gdHdvIChlaXRoZXIgc2tpcHBpbmcgYW55IGxp bmUgdGhhdCBjb250YWlucyBAa2JkIGFueXdoZXJlLCBvcgpzdGlsbCByZXF1aXJpbmcgaXQgdG8g YmUgbmVhciB0aGUgZnJvbnQgYnV0IG1ha2luZyB0aGUgIlwkICIgcHJlZml4Cm9wdGlvbmFsKS4K Cj4gKysrIGIvZG9jL200LnRleGkKPiBAQCAtMzYsNiArMzYsMTQgQEAKPiAgQHJ7W31AdmFye1x2 YXJuYW1lXH0gPSBAc2FtcHtcZGVmYXVsdFx9QHJ7XX0KPiAgQGVuZCBtYWNybwo+ICAKPiArQGMg QGF1eHJlc3VsdHthdXhmaWxlfQo+ICtAYyAtLS0tLS0tLS0tLS0KPiArQGMgVXNlZCBpbiBleGFt cGxlcyB0byBpbmRpY2F0ZSBvdXRwdXQgcHJvZHVjZWQgd2l0aGluIHRoZQo+ICtAYyBgYGF1eGls bGlhcnkgb3V0cHV0IGZpbGUuJycKPiArQG1hY3JvIGF1eHJlc3VsdHthdXhmaWxlfQo+ICtcYXV4 ZmlsZVwgQGJ7QHJlc3VsdHt9fQo+ICtAZW5kIG1hY3JvCj4gKwo+ICBAY29tbWVudCAlKiplbmQg b2YgaGVhZGVyCj4gIEBjb21tZW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4gIAo+IEBAIC0xNDgsNiArMTU2LDcgQEAKPiAgKiBQcmVw cm9jZXNzb3IgZmVhdHVyZXM6OiAgICAgICBDb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJlcHJv Y2Vzc29yIGZlYXR1cmVzCj4gICogTGltaXRzIGNvbnRyb2w6OiAgICAgICAgICAgICAgQ29tbWFu ZCBsaW5lIG9wdGlvbnMgZm9yIGxpbWl0cyBjb250cm9sCj4gICogRnJvemVuIHN0YXRlOjogICAg ICAgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGZyb3plbiBzdGF0ZQo+ICsqIE1h a2UgZGVwZW5kZW5jeSBnZW5lcmF0aW9uOjogIEdlbmVyYXRpbmcgbWFrZSBkZXBlbmRlbmN5IHJ1 bGVzCgpJIHN0aWxsIHRoaW5rIHRoaXMgY2hhcHRlciBmaXRzIGJldHRlciByaWdodCBhZnRlciAn UHJlcHJvY2Vzc29yCmZlYXR1cmVzJyAoaWUuIHN3YXBwZWQgd2l0aCBMaW1pdHMgY29udHJvbCBh bmQgRnJvemVuIHN0YXRlKTsgaXQncyBhbgplYXN5IHNodWZmbGUgdG8gbWFrZS4KCj4gICogRGVi dWdnaW5nIG9wdGlvbnM6OiAgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGRlYnVn Z2luZwo+ICAqIENvbW1hbmQgbGluZSBmaWxlczo6ICAgICAgICAgIFNwZWNpZnlpbmcgaW5wdXQg ZmlsZXMgb24gdGhlIGNvbW1hbmQgbGluZQo+ICAKPiBAQCAtNTgzLDYgKzU5Miw3IEBACj4gICog UHJlcHJvY2Vzc29yIGZlYXR1cmVzOjogICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHBy ZXByb2Nlc3NvciBmZWF0dXJlcwo+ICAqIExpbWl0cyBjb250cm9sOjogICAgICAgICAgICAgIENv bW1hbmQgbGluZSBvcHRpb25zIGZvciBsaW1pdHMgY29udHJvbAo+ICAqIEZyb3plbiBzdGF0ZTo6 ICAgICAgICAgICAgICAgIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBmcm96ZW4gc3RhdGUKPiAr KiBNYWtlIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbjo6ICBHZW5lcmF0aW5nIG1ha2UgZGVwZW5kZW5j eSBydWxlcwo+ICAqIERlYnVnZ2luZyBvcHRpb25zOjogICAgICAgICAgIENvbW1hbmQgbGluZSBv cHRpb25zIGZvciBkZWJ1Z2dpbmcKPiAgKiBDb21tYW5kIGxpbmUgZmlsZXM6OiAgICAgICAgICBT cGVjaWZ5aW5nIGlucHV0IGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmUKPiAgQGVuZCBtZW51Cj4g QEAgLTkwNCw2ICs5MTQsMTkxIEBACj4gIGZpbGVzIGFyZSByZWFkLgo+ICBAZW5kIHRhYmxlCj4g IAo+ICtAbm9kZSBNYWtlIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbgo+ICtAc2VjdGlvbiBDb21tYW5k IGxpbmUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBNYWtlZmlsZSBkZXBlbmRlbmN5IHJ1bGVzCj4g Kwo+ICtNYWtlZmlsZSBkZXBlbmRlbmN5IHJ1bGVzIGNhbiBiZSBhdXRvbWF0aWNhbGx5IGdlbmVy YXRlZCBieSBzcGVjaWZ5aW5nCj4gK2JvdGggdGhlIEBjb2Rley0tbWFrZWRlcD19QHZhcntmaWxl fSBhbmQKPiArQGNvZGV7LS1tYWtlZGVwLXRhcmdldD19QHZhcnt0YXJnZXR9IG9wdGlvbnMuCgpA b3B0aW9uIG1heSBiZSBuaWNlciB0aGFuIEBjb2RlIGluIHRoZSByZW5kZXJpbmcgaGVyZSwgYW5k IGluIHNldmVyYWwKb3RoZXIgcGxhY2VzIGluIHRoZSBwYXRjaC4gIEhvd2V2ZXIsIEknbGwgcHJv YmFibHkgZGVmZXIgYSBtb3JlCmRldGFpbGVkIHByb29mLXJlYWRpbmcgYW5kIGVkaXRpbmcgcGFz cyB1bnRpbCBsYXRlcjsgbXkgZ29hbCBvbgp0b2RheSdzIHJldmlldyBpcyBtYWtpbmcgc3VyZSB0 aGUgY29kZSBjb21waWxlcyBhbmQgdGVzdHMgcnVuLgoKLi4uCj4gKwo+ICtAY29tbWVudCBvcHRp b25zOiAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVwLXRhcmdldD1UYXJnZXQgZm9vCj4g K0Bjb21tZW50IGF1eGZpbGU6IFRNUC9kZXBmaWxlCj4gK0BleGFtcGxlCj4gKyQgQGtiZHttNCAt SSBleGFtcGxlcyAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVwLXRhcmdldD1UYXJnZXQg Zm9vfQo+ICtAcmVzdWx0e31iYXIKPiArQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX0jIEF1dG9tYXRp Y2FsbHkgZ2VuZXJhdGVkIGJ5IEdOVSBtNC4KCkkgd291bGQgcHJlZmVyIHRvIHNlZSBzb21ldGhp bmcgbGlrZSAnJCBAa2Jke2NhdCBUTVAvZGVwZmlsZX0nIGJlZm9yZQppbnRyb2R1Y2luZyBAYXV4 cmVzdWx0e30gaW5mb3JtYXRpb24uICBPbiB0aGUgb3RoZXIgaGFuZCwgb25jZSBJIGRpZAp0aGF0 LCB0aGUgbWFudWFsIGxvb2tzIGxpa2UgdGhpcywgYW5kIEknbSB0aGlua2luZyB0aGUgc3Vic2Vx dWVudApUTVAvZGVwZmlsZSBsZWFkaW5zIG9uIHRoZSBsYXRlciBsaW5lcyBhcmUgcmVwZXRpdGl2 ZSBhbmQgdGhlCm1vbm9zcGFjZSBmb250IGxlYWRzIHRvIGxvbmcgbGluZXMgKGluIHRoZSBwZGYg dmlldywgaXQncyBsZXNzIHRoYW4gODAKY29sdW1ucywgYnV0IGxvbmdlciB0aGFuIHRoZSByZXN0 IG9mIHRoZSBtYXJnaW5zKSwgc28gSSBtYXkgdHdlYWsgaXQKZnVydGhlciBzdGlsbDoKCnwgJCBt NCAtSSBleGFtcGxlcyAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVwLXRhcmdldD1UYXJn ZXQgXAp8IC0tbWFrZWRlcC1nZW4tbWlzc2luZy1hbGwgZm9vIG5vbmUgLQp8IOKHkmJhcgp8IGVy cm9yIG00OiBjYW5ub3Qgb3BlbiAnbm9uZSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKfCBp bmNsdWRlKGBpbmNsLm00JykKfCDih5JJbmNsdWRlIGZpbGUgc3RhcnQKfCDih5Jmb28KfCDih5JJ bmNsdWRlIGZpbGUgZW5kCnwg4oeSCnwgaW5jbHVkZShgbm9uZTInKQp8IOKHkgp8IGVycm9yIG00 OnN0ZGluOjI6IGluY2x1ZGU6IGNhbm5vdCBvcGVuICdub25lMic6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKfCBzaW5jbHVkZShgbm9uZTMnKQp8IOKHkgp8IF5ECnwgJCBjYXQgVE1QL2RlcGZp bGUKfCBUTVAvZGVwZmlsZSDih5IjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEdOVSBtNC4K fCBUTVAvZGVwZmlsZSDih5JUYXJnZXQ6IC4vLi4vZXhhbXBsZXMvZm9vIG5vbmUgLi8uLi9leGFt cGxlcy9pbmNsLm00IG5vbmUyIG5vbmUzCgo+ICsrKyBiL3NyYy9idWlsdGluLmMKPiBAQCAtMTQ5 NCwxMyArMTQ5NCwxNCBAQCBtNF9jaGFuZ2Vjb20gKHN0cnVjdCBvYnN0YWNrICpvYnMgTUFZQkVf VU5VU0VELCBpbnQgYXJnYywKPiAgICAgYXJndW1lbnQsIGlmIGl0IGV4aXN0cy4gIENvbXBsYWlu IGFib3V0IGluYWNjZXNzaWJsZSBmaWxlcyBpZmYKPiAgICAgU0lMRU5UIGlzIGZhbHNlLiAgKi8K PiAgc3RhdGljIHZvaWQKPiAtaW5jbHVkZSAoaW50IGFyZ2MsIG1hY3JvX2FyZ3VtZW50cyAqYXJn diwgYm9vbCBzaWxlbnQpCj4gK2luY2x1ZGUgKGludCBhcmdjLCBtYWNyb19hcmd1bWVudHMgKmFy Z3YsIGJvb2wgc2lsZW50LCBpbnQgcmVmX2Zyb20pCj4gIHsKPiAgICBjb25zdCBjYWxsX2luZm8g Km1lID0gYXJnX2luZm8gKGFyZ3YpOwo+ICAgIEZJTEUgKmZwOwo+ICAgIGNoYXIgKm5hbWU7Cj4g ICAgY29uc3QgY2hhciAqYXJnOwo+ICAgIHNpemVfdCBsZW47Cj4gKyAgaW50IGZhaWw7Cj4gIAo+ ICAgIGlmIChiYWRfYXJnYyAobWUsIGFyZ2MsIDEsIDEpKQo+ICAgICAgcmV0dXJuOwo+IEBAIC0x NTEzLDEyICsxNTE0LDIxIEBAIGluY2x1ZGUgKGludCBhcmdjLCBtYWNyb19hcmd1bWVudHMgKmFy Z3YsIGJvb2wgc2lsZW50KQo+ICAgIGZwID0gbTRfcGF0aF9zZWFyY2ggKGFyZywgZmFsc2UsICZu YW1lKTsKPiAgICBpZiAoZnAgPT0gTlVMTCkKPiAgICAgIHsKPiArICAgICAgZmFpbCA9ICFzaWxl bnQ7Cj4gKyAgICAgIGlmICgobWFrZWRlcF9nZW5fbWlzc2luZyAmIHJlZl9mcm9tKSAhPSAwKQo+ ICsgICAgICAgIHsKPiArICAgICAgICAgIHJlY29yZF9kZXBlbmRlbmN5IChhcmcsIHJlZl9mcm9t KTsKPiArICAgICAgICAgIGZhaWwgPSAwOwo+ICsgICAgICAgIH0KPiAgICAgICAgaWYgKCFzaWxl bnQpCj4gICAgICAgICAgbTRfZXJyb3IgKDAsIGVycm5vLCBtZSwgXygiY2Fubm90IG9wZW4gJXMi KSwKPiAgICAgICAgICAgICAgICAgICAgcXVvdGVhcmdfc3R5bGUgKGxvY2FsZV9xdW90aW5nX3N0 eWxlLCBhcmcpKTsKPiArICAgICAgaWYgKGZhaWwpCj4gKyAgICAgICAgcmV0Y29kZSA9IEVYSVRf RkFJTFVSRTsKPiAgICAgICAgcmV0dXJuOwo+ICAgICAgfQo+ICAKPiArICByZWNvcmRfZGVwZW5k ZW5jeSAobmFtZSwgcmVmX2Zyb20pOwo+ICAgIHB1c2hfZmlsZSAoZnAsIG5hbWUsIHRydWUpOwo+ ICAgIGZyZWUgKG5hbWUpOwo+ICB9Cj4gQEAgLTE1MjcsNyArMTUzNyw3IEBAIGluY2x1ZGUgKGlu dCBhcmdjLCBtYWNyb19hcmd1bWVudHMgKmFyZ3YsIGJvb2wgc2lsZW50KQo+ICBzdGF0aWMgdm9p ZAo+ICBtNF9pbmNsdWRlIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNFRCwgaW50IGFy Z2MsIG1hY3JvX2FyZ3VtZW50cyAqYXJndikKPiAgewo+IC0gIGluY2x1ZGUgKGFyZ2MsIGFyZ3Ys IGZhbHNlKTsKPiArICBpbmNsdWRlIChhcmdjLCBhcmd2LCBmYWxzZSwgUkVGX0lOQ0xVREUpOwo+ ICB9Cj4gIAo+ICAvKiBJbmNsdWRlIGEgZmlsZSwgaWdub3JpbmcgZXJyb3JzLiAgKi8KPiBAQCAt MTUzNSw3ICsxNTQ1LDcgQEAgc3RhdGljIHZvaWQKPiAgbTRfc2luY2x1ZGUgKHN0cnVjdCBvYnN0 YWNrICpvYnMgTUFZQkVfVU5VU0VELCBpbnQgYXJnYywKPiAgICAgICAgICAgICAgIG1hY3JvX2Fy Z3VtZW50cyAqYXJndikKPiAgewo+IC0gIGluY2x1ZGUgKGFyZ2MsIGFyZ3YsIHRydWUpOwo+ICsg IGluY2x1ZGUgKGFyZ2MsIGFyZ3YsIHRydWUsIFJFRl9TSU5DTFVERSk7Cj4gIH0KPiAgDAo+ICAv KiBNb3JlIG1pc2NlbGxhbmVvdXMgYnVpbHRpbnMgLS0gIm1ha2V0ZW1wIiwgImVycnByaW50Iiwg Il9fZmlsZV9fIiwKPiBkaWZmIC0tZ2l0IGEvc3JjL2V2YWwuYyBiL3NyYy9ldmFsLmMKPiBpbmRl eCA2OWNkNWU0MS4uZDkxZmEzY2QgMTAwNjQ0Cj4gLS0tIGEvc3JjL2V2YWwuYwo+ICsrKyBiL3Ny Yy9ldmFsLmMKPiBAQCAtNDMxLDYgKzQzMSw3IEBAIHBhcnNlX2V4cHIgKGludDMyX3QgKnYxLCBl dmFsX2Vycm9yIGVyLCB1bnNpZ25lZCBtaW5fcHJlYykKPiAgICAgICAgICAgICAgIHRoYXQgdGhl IGltcGxlbWVudGF0aW9uLWRlZmluZWQgb3ZlcmZsb3cgd2hlbiBjYXN0aW5nCj4gICAgICAgICAg ICAgICB1bnNpZ25lZCB0byBzaWduZWQgaXMgYSBzaWxlbnQgdHdvcy1jb21wbGVtZW50Cj4gICAg ICAgICAgICAgICB3cmFwLWFyb3VuZC4gICovCj4gKyAgICAgICAgICB1MyA9IDE7Cj4gICAgICAg ICAgICBpZiAodjIgPCAwKQo+ICAgICAgICAgICAgICBlciA9IE5FR0FUSVZFX0VYUE9ORU5UOwo+ ICAgICAgICAgICAgZWxzZSBpZiAoKnYxID09IDAgJiYgdjIgPT0gMCkKClRoaXMgYXBwZWFycyB1 bnJlbGF0ZWQuICBCdXQgSSBjYW4gc2VlIGhvdyBpdCBzaWxlbmNlcyBhIGNvbXBpbGVyCndhcm5p bmc7IEknbGwgcHVzaCB0aGF0IGZpeCBzZXBhcmF0ZWx5IChhY3R1YWxseSwgSSdsbCBwcm9iYWJs eSBwdWxsCnRoZSBhc3NpZ25tZW50ICcqdjEgPSB1MycgaW50byB0aGUgY29uZGl0aW9uYWwgYXJt IHdoZXJlIHUzIGlzIGFscmVhZHkKc2V0KS4KCj4gZGlmZiAtLWdpdCBhL3NyYy9tNC5jIGIvc3Jj L200LmMKPiBpbmRleCA4OWEyZWMyZi4uYWEyMzI3YTUgMTAwNjQ0Cj4gLS0tIGEvc3JjL200LmMK PiArKysgYi9zcmMvbTQuYwoKPiBAQCAtMzMzLDYgKzM3OSwxNiBAQCBlbnVtCj4gIHsKPiAgICBE RUJVR0ZJTEVfT1BUSU9OID0gQ0hBUl9NQVggKyAxLCAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwo+ ICAgIFdBUk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9OLCAgIC8qIG5vIHNob3J0IG9wdCAqLwo+ICsg IE1BS0VERVBfT1BUSU9OLCAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gc2hvcnQgb3B0ICov Cj4gKyAgTUFLRURFUF9UQVJHRVRfT1BUSU9OLCAgICAgICAgICAgICAgICAvKiBubyBzaG9ydCBv cHQgKi8KPiArICBNQUtFREVQX0dFTl9NSVNTSU5HX0FSR0ZJTEVTX09QVElPTiwgIC8qIG5vIHNo b3J0IG9wdCAqLwo+ICsgIE1BS0VERVBfR0VOX01JU1NJTkdfSU5DTFVERV9PUFRJT04sICAgLyog bm8gc2hvcnQgb3B0ICovCj4gKyAgTUFLRURFUF9HRU5fTUlTU0lOR19TSU5DTFVERV9PUFRJT04s ICAvKiBubyBzaG9ydCBvcHQgKi8KPiArICBNQUtFREVQX0dFTl9NSVNTSU5HX0FMTF9PUFRJT04s ICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwo+ICsgIE1BS0VERVBfUEhPTllfQVJHRklMRVNfT1BU SU9OLCAgICAgICAgLyogbm8gc2hvcnQgb3B0ICovCj4gKyAgTUFLRURFUF9QSE9OWV9JTkNMVURF X09QVElPTiwgICAgICAgICAvKiBubyBzaG9ydCBvcHQgKi8KPiArICBNQUtFREVQX1BIT05ZX1NJ TkNMVURFX09QVElPTiwgICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwo+ICsgIE1BS0VERVBfUEhP TllfQUxMX09QVElPTiwgICAgICAgICAgICAgLyogbm8gc2hvcnQgb3B0ICovCj4gIAo+ICAgIEhF TFBfT1BUSU9OLCAgICAgICAgICAgICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwo+ICAgIFZFUlNJ T05fT1BUSU9OICAgICAgICAgICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwoKT3RoZXIgdGhhbiBI RUxQIGFuZCBWRVJTSU9OLCBpdCBtYWtlcyBzZW5zZSB0byB0cnkgYW5kIGtlZXAgdGhpcwpzZWN0 aW9uIGFscGhhYmV0aWNhbGx5IHNvcnRlZC4KCj4gQEAgLTY1OSw2ICs3NzgsMzAgQEAgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKmNvbnN0ICphcmd2LCBjaGFyICpjb25zdCAqZW52cCBNQVlCRV9VTlVT RUQpCj4gICAgICBtNF9lcnJvciAoMCwgZXJybm8sIE5VTEwsIF8oImNhbm5vdCBzZXQgZGVidWcg ZmlsZSAlcyIpLAo+ICAgICAgICAgICAgICAgIHF1b3RlYXJnX3N0eWxlIChsb2NhbGVfcXVvdGlu Z19zdHlsZSwgZGVidWdmaWxlKSk7Cj4gIAo+ICsgIC8qIFZlcmlmeSBtdXR1YWwgY29uc2lzdGVu Y3kgb2YgbWFrZWRlcCBvcHRpb25zLiAqLwo+ICsgIGlmICgobWFrZWRlcF9wYXRoID09IE5VTEwp ICYmIChtYWtlZGVwX3RhcmdldCA9PSBOVUxMKSkKCkkgdGhpbmsgdGhpcyBsb29rcyBiZXR0ZXIg YXMgImlmICghbWFrZWRlcF9wYXRoICYmICFtYWtlZGVwX3RhcmdldCkiCgo+ICsgICAgewo+ICsg ICAgICAvKiBNYWtlZGVwIG1vZGUgaXMgTk9UIGFjdGl2ZS4gKi8KPiArICAgICAgaWYgKG1ha2Vk ZXBfZ2VuX21pc3NpbmcgIT0gMCkKPiArICAgICAgICBtNF9lcnJvciAoMCwgMCwgTlVMTCwKPiAr ICAgICAgICAgICAgICAgICAgXygiLS1tYWtlZGVwLWdlbi1taXNzaW5nLSogcmVxdWlyZXMgLS1t YWtlZGVwIGFuZCAtLW1ha2VkZXAtdGFyZ2V0IikpOwo+ICsgICAgICBpZiAobWFrZWRlcF9waG9u eSAhPSAwKQo+ICsgICAgICAgIG00X2Vycm9yICgwLCAwLCBOVUxMLAo+ICsgICAgICAgICAgICAg ICAgICBfKCItLW1ha2VkZXAtcGhvbnktKiByZXF1aXJlcyAtLW1ha2VkZXAgYW5kIC0tbWFrZWRl cC10YXJnZXQiKSk7Cj4gKyAgICAgIGlmICgobWFrZWRlcF9nZW5fbWlzc2luZyB8IG1ha2VkZXBf cGhvbnkpICE9IDApCj4gKyAgICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKPiArICAgIH0KPiAr ICBlbHNlIGlmICgobWFrZWRlcF9wYXRoICE9IE5VTEwpICYmIChtYWtlZGVwX3RhcmdldCAhPSBO VUxMKSkKCmFuZCAiaWYgKG1ha2VkZXBfcGF0aCAmJiBtYWtlZGVwX3RhcmdldCkiCgouLi4KPiAr KysgYi9zcmMvcGF0aC5jCj4gQEAgLTM2LDYgKzM2LDE4IEBAIHR5cGVkZWYgc3RydWN0IGluY2x1 ZGVzIGluY2x1ZGVzOwo+ICBzdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0OyAgICAgIC8qIHRoZSBs aXN0IG9mIHBhdGggZGlyZWN0b3JpZXMgKi8KPiAgc3RhdGljIGluY2x1ZGVzICpkaXJfbGlzdF9l bmQ7ICAvKiB0aGUgZW5kIG9mIHNhbWUgKi8KPiAgc3RhdGljIGludCBkaXJfbWF4X2xlbmd0aDsg ICAgICAvKiBsZW5ndGggb2YgbG9uZ2VzdCBkaXJlY3RvcnkgbmFtZSAqLwo+ICsgCj4gK3N0cnVj dCBkZXBlbmRlbmN5Cj4gK3sKPiArICBzdHJ1Y3QgZGVwZW5kZW5jeSAqbmV4dDsgICAgICAvKiBu ZXh0IGluIGxpc3Qgb2YgZGVwZW5kZW5jaWVzICovCj4gKyAgaW50IHJlZl9mcm9tOyAgICAgICAg ICAgICAgICAgLyogYml0IG1hc2s6IHBsYWNlcyBmaWxlIHJlZmVyZW5jZWQgZnJvbSAqLwo+ICsg IGNoYXIgKnBhdGg7ICAgICAgICAgICAgICAgICAgIC8qIHBhdGhuYW1lIG9mIHRoaXMgZGVwZW5k ZW5jeSAqLwo+ICt9Owo+ICsKPiArdHlwZWRlZiBzdHJ1Y3QgZGVwZW5kZW5jeSBkZXBlbmRlbmN5 Owo+ICsKPiArc3RhdGljIGRlcGVuZGVuY3kgKmRlcGVuZGVuY3lfbGlzdDsgICAgIC8qIHRoZSBs aXN0IG9mIGRlcGVuZGVuY2llcyAqLwo+ICtzdGF0aWMgZGVwZW5kZW5jeSAqZGVwZW5kZW5jeV9s aXN0X2VuZDsgLyogdGhlIGVuZCBvZiBzYW1lICovCj4gIAwKPiAgCj4gIHZvaWQKPiBAQCAtMTk0 LDYgKzIwNiw3NCBAQCBtNF9wYXRoX3NlYXJjaCAoY29uc3QgY2hhciAqZmlsZSwgYm9vbCBiaW5h cnksIGNoYXIgKipyZXN1bHQpCj4gICAgcmV0dXJuIGZwOwo+ICB9Cj4gIAo+ICt2b2lkCj4gK3Jl Y29yZF9kZXBlbmRlbmN5IChjb25zdCBjaGFyICpwYXRoLCBpbnQgcmVmX2Zyb20pCj4gK3sKPiAr ICBkZXBlbmRlbmN5ICpkcDsKPiArICBmb3IgKGRwID0gZGVwZW5kZW5jeV9saXN0OyBkcCAhPSBO VUxMOyBkcCA9IGRwLT5uZXh0KQo+ICsgICAgaWYgKHN0cmNtcCAocGF0aCwgZHAtPnBhdGgpID09 IDApCgpUaGVyZSBpcyB0aGUgU1RSRVEgbWFjcm8gZm9yIHRoaXMuCgo+ICsKPiArdm9pZAo+ICtn ZW5lcmF0ZV9tYWtlX2RlcGVuZGVuY2llcyAoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAq dGFyZ2V0LCBpbnQgcGhvbnkpCj4gK3sKPiArICBGSUxFICpmcDsKPiArICBzaXplX3QgY29sLCBs ZW4sIG1heGNvbDsKPiArICBkZXBlbmRlbmN5ICpkcDsKPiArCj4gKyAgZnAgPSBmb3BlbiAocGF0 aCwgInciKTsKPiArICBpZiAoZnAgPT0gTlVMTCkKPiArICAgIHsKPiArICAgICAgbTRfZXJyb3Ig KDAsIGVycm5vLCBOVUxMLCBfKCJ1bmFibGUgdG8gb3BlbiAlcyIpLAo+ICsgICAgICAgICAgICAg ICAgcXVvdGVhcmdfc3R5bGVfbWVtIChsb2NhbGVfcXVvdGluZ19zdHlsZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgc3RybGVuIChwYXRoKSkpOwo+ICsgICAg ICByZXR1cm47Cj4gKyAgICB9Cj4gKwo+ICsgIGZwdXRzIChfKCIjIEF1dG9tYXRpY2FsbHkgZ2Vu ZXJhdGVkIGJ5IEdOVSBtNC5cbiIpLCBmcCk7CgpTaG91bGQgdGhpcyBpbmNsdWRlIHRoZSBNNCB2 ZXJzaW9uIG51bWJlcj8KCj4gKwo+ICsgIC8qIEdlbmVyYXRlIHRoZSBtYWluIGRlcGVuZGVuY3kg cnVsZS4gKi8KPiArICBtYXhjb2wgPSA3ODsKPiArICBmcHJpbnRmIChmcCwgIiVzOiIsIHRhcmdl dCk7Cj4gKyAgY29sID0gc3RybGVuICh0YXJnZXQpICsgMTsKPiArICBmb3IgKGRwID0gZGVwZW5k ZW5jeV9saXN0OyBkcCAhPSBOVUxMOyBkcCA9IGRwLT5uZXh0KQo+ICsgICAgewo+ICsgICAgICBs ZW4gPSAxICsgc3RybGVuIChkcC0+cGF0aCk7Cj4gKyAgICAgIGlmIChjb2wgKyBsZW4gKyAyID4g bWF4Y29sKSAvKiArMiBpcyBmb3IgdHJhaWxpbmcgc3BhY2UvYmFja3NsYXNoICovCj4gKyAgICAg ICAgewo+ICsgICAgICAgICAgZnByaW50ZiAoZnAsIiBcXFxuICIpOwoKZnByaW50ZigpIGlzIG92 ZXJraWxsIHdoZW4gdGhlcmUgYXJlIG5vICUgZGlyZWN0aXZlcy4KCkFsbCB0b2xkLCBoZXJlJ3Mg d2hhdCBJJ20gc3F1YXNoaW5nIGluLiAgSSd2ZSBwdXNoZWQgdGhlIHBhdGNoIHRvIHRoZQptYWtl ZGVwIGJyYW5jaCBmb3Igbm93LCBhbmQgd2lsbCBtZXJnZSBpdCB0byBicmFuY2gtMS42IG9uY2Ug SSd2ZSBoYWQKYW5vdGhlciByZWFkIHRocm91Z2ggaXQuCgpGcm9tIGJiMGNkMDA1M2QxZTQ2N2Q2 MTY2MGQ5N2IzOGJjZTkzMjZlOWVjOTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDI1IE1heSAyMDI1IDIxOjAy OjUzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCBicmFuY2gtMS42XSBzcXVhc2ggbWUKQ29udGVudC10 eXBlOiB0ZXh0L3BsYWluCgotLS0KIE5FV1MgICAgICAgICAgICAgIHwgIDEwICstCiBjaGVja3Mv Y2hlY2stdGhlbSB8ICAxNyArLS0KIGRvYy9tNC50ZXhpICAgICAgIHwgMzgwICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9tNC5jICAgICAgICAgIHwg IDMyICsrLS0KIHNyYy9tNC5oICAgICAgICAgIHwgICAyICstCiBzcmMvcGF0aC5jICAgICAgICB8 ICAxMCArLQogNiBmaWxlcyBjaGFuZ2VkLCAyMzIgaW5zZXJ0aW9ucygrKSwgMjE5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IGYyODYxZmFhLi42YmJiMzQ3ZSAx MDA2NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC0zLDYgKzMsMTQgQEAgR05VIE00IE5FV1Mg LSBVc2VyIHZpc2libGUgY2hhbmdlcy4KICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIFZlcnNpb24g MS42ICg/Pz8/LT8/LT8/KSBbc3RhYmxlXQogICBSZWxlYXNlZCBieSA/Pz8/LCBiYXNlZCBvbiBn aXQgdmVyc2lvbnMgMS40LjEwYi54LSogYW5kIDEuNS4qCgorKiogQWRkIG5ldyBjYXBhYmlsaXR5 IHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgbWFrZSBkZXBlbmRlbmN5IHJ1bGVzLgorICAgVGhp cyBpcyBlbmFibGVkIGJ5IHRoZSBuZXcgY29tbWFuZC1saW5lIG9wdGlvbiBwYWlyICctLW1ha2Vk ZXA9RklMRScKKyAgIGFuZCAnLS1tYWtlZGVwLXRhcmdldD1UQVJHRVQnIGFuZCBmdXJ0aGVyIHR1 bmVkIGJ5CisgICAnLS1tYWtlZGVwLWdlbi1taXNzaW5nLWFyZ2ZpbGVzJywgJy0tbWFrZWRlcC1n ZW4tbWlzc2luZy1pbmNsdWRlJywKKyAgICctLW1ha2VkZXAtZ2VuLW1pc3Npbmctc2luY2x1ZGUn LCAnLS1tYWtlZGVwLWdlbi1taXNzaW5nLWFsbCcsCisgICAnLS1tYWtlZGVwLXBob255LWFyZ2Zp bGVzJywgJy0tbWFrZWRlcC1waG9ueS1pbmNsdWRlJywKKyAgICctLW1ha2VkZXAtcGhvbnktc2lu Y2x1ZGUnLCBhbmQgJy0tbWFrZWRlcC1waG9ueS1hbGwnLgorCiAqKiBGaXggcmVncmVzc2lvbnMg aW50cm9kdWNlZCBpbiAxLjQuMTBiOgogKioqIFVzaW5nIGBidWlsdGluJyBvciBgaW5kaXInIHRv IHBlcmZvcm0gbmVzdGVkIGBzaGlmdCcgY2FsbHMgdHJpZ2dlcmVkCiAgICAgYW4gYXNzZXJ0aW9u IGZhaWx1cmUgKG5vdCBwcmVzZW50IGluIDEuNC4xMSkuCkBAIC0xOTMsOCArMjAxLDYgQEAgZm9s bG93aW5nIGJldGEgZmVhdHVyZXMgdGhhdCB3ZXJlIGRlZW1lZCB3b3J0aCBkZWZlcnJpbmcgdW50 aWwgMS42OgoKICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgMS40LjE5ICgyMDIxLTA1 LTI4KSBbc3RhYmxlXQoKLSoqIEFkZCBuZXcgY2FwYWJpbGl0eSB0byBhdXRvbWF0aWNhbGx5IGdl bmVyYXRlIG1ha2UgZGVwZW5kZW5jeSBydWxlcy4KLQogKiogQSBudW1iZXIgb2YgcG9ydGFiaWxp dHkgaW1wcm92ZW1lbnRzIGluaGVyaXRlZCBmcm9tIGdudWxpYiwgaW5jbHVkaW5nCiAgICB0aGUg YWJpbGl0eSB0byBwZXJmb3JtIHN0YWNrIG92ZXJmbG93IGRldGVjdGlvbiBvbiBtb3JlIHBsYXRm b3JtcwogICAgd2l0aG91dCBsaW5raW5nIHRvIEdOVSBsaWJzaWdzZWd2LgpkaWZmIC0tZ2l0IGEv Y2hlY2tzL2NoZWNrLXRoZW0gYi9jaGVja3MvY2hlY2stdGhlbQppbmRleCAwOWM3YzE0Zi4uMGIy ODMxMzQgMTAwNzU1Ci0tLSBhL2NoZWNrcy9jaGVjay10aGVtCisrKyBiL2NoZWNrcy9jaGVjay10 aGVtCkBAIC05OCwxNSArOTgsMTUgQEAgZG8KICAgICAqc3RhY2tvdmYudGVzdCkKICAgICAgICIk ZmlsZSIgIiRtNCIKICAgICAgIGNhc2UgJD8gaW4KLQk3Nykgc2tpcHBlZD0iJHNraXBwZWQgJGZp bGUiOzsKLQkwKSA7OwotCSopIGZhaWxlZD0iJGZhaWxlZCAkZmlsZSIKKyAgICAgICAgNzcpIHNr aXBwZWQ9IiRza2lwcGVkICRmaWxlIjs7CisgICAgICAgIDApIDs7CisgICAgICAgICopIGZhaWxl ZD0iJGZhaWxlZCAkZmlsZSIKICAgICAgIGVzYWMKICAgICAgIGNvbnRpbnVlIDs7CiAgIGVzYWMK Ci0gIG9wdGlvbnM9YCR7U0VEfSAtbmUgJzNzL15kbmwgQCBleHRyYSBvcHRpb25zOiAvL3A7M3En ICIkZmlsZSIgXAotICAgIHwgJHtTRUR9IC1lICJzL1RNUFwvLyR0bXBcLy8iYAorICBvcHRpb25z PWAke1NFRH0gLW5lICIzIHsgc3xUTVAvfCR0bXAvfGc7IHMvXmRubCBAIGV4dHJhIG9wdGlvbnM6 IC8vcDsgcSB9IiBcCisgICAgICIkZmlsZSJgCiAgICR7U0VEfSAtZSAnL15kbmwgQC9kJyAtZSAn L15cXkQkL3EnICIkZmlsZSIgXAogICAgIHwgTENfTUVTU0FHRVM9QyBMQU5HPUMgTTRQQVRIPSRl eGFtcGxlcyAiJG00IiAtZCAkb3B0aW9ucyAtID4kb3V0IDI+JGVycgogICBzdGF0PSQ/CkBAIC0x MjgsOSArMTI4LDggQEAgZG8KCiAgIHhvdXRmaWxlPWAke1NFRH0gLW4gJ3MvXmRubCBAIGV4cGVj dGVkIG91dHB1dDogLy9wJyAiJGZpbGUiYAogICBpZiB0ZXN0IC16ICIkeG91dGZpbGUiIDsgdGhl bgotICAgICR7U0VEfSAtbmUgJ3MvXmRubCBAcmVzdWx0e30vL3AnICIkZmlsZSIgXAotICAgIHwg JHtTRUR9IC1lICJzfGV4YW1wbGVzL3wkZXhhbXBsZXMvfCIgXAotICAgICAgLWUgInN8QHZhbHVl e1ZFUlNJT059fCRtNHZlcnNpb258IiA+ICR4b3V0CisgICAgJHtTRUR9IC1lICcvXmRubCBAcmVz dWx0e30vIWQnIC1lICdzLy8vJyAtZSAic3xleGFtcGxlcy98JGV4YW1wbGVzL3wiIFwKKyAgICAg IC1lICJzfEB2YWx1ZXtWRVJTSU9OfXwkbTR2ZXJzaW9ufCIgIiRmaWxlIiA+ICR4b3V0CiAgIGVs c2UKICAgICBjcCAiJGV4YW1wbGVzLyR4b3V0ZmlsZSIgJHhvdXQKICAgZmkKQEAgLTE4NSw3ICsx ODQsNyBAQCBkbwogICBmaQoKICAgaWYgdGVzdCAtbiAiJGF1eGZpbGUiOyB0aGVuCi0gICAgdGF1 eGZpbGU9YGVjaG8gIiRhdXhmaWxlIiB8ICR7U0VEfSAtZSAicy9UTVBcLy8kdG1wXC8vImAKKyAg ICB0YXV4ZmlsZT1gZWNobyAiJGF1eGZpbGUiIHwgJHtTRUR9IC1lICJzfFRNUC98JHRtcC98ZyJg CiAgICAgaWYgdGVzdCAtZiAiJHRhdXhmaWxlIjsgdGhlbgogICAgICAgJHtTRUR9IC1uZSAnc3xe ZG5sIEBhdXhyZXN1bHR7W0EtWmEtejAtOV8vXSp9fHxwJyA8ICRmaWxlID4keGF1eAogICAgICAg aWYgJHN0cmlwX25lZWRlZCA7IHRoZW4KZGlmZiAtLWdpdCBhL2RvYy9tNC50ZXhpIGIvZG9jL200 LnRleGkKaW5kZXggYmNkNWFlNDUuLjcyMjgxZWYzIDEwMDY0NAotLS0gYS9kb2MvbTQudGV4aQor KysgYi9kb2MvbTQudGV4aQpAQCAtMzksNyArMzksNyBAQAogQGMgQGF1eHJlc3VsdHthdXhmaWxl fQogQGMgLS0tLS0tLS0tLS0tCiBAYyBVc2VkIGluIGV4YW1wbGVzIHRvIGluZGljYXRlIG91dHB1 dCBwcm9kdWNlZCB3aXRoaW4gdGhlCi1AYyBgYGF1eGlsbGlhcnkgb3V0cHV0IGZpbGUuJycKK0Bj IGBgYXV4aWxpYXJ5IG91dHB1dCBmaWxlLicnCiBAbWFjcm8gYXV4cmVzdWx0e2F1eGZpbGV9CiBc YXV4ZmlsZVwgQGJ7QHJlc3VsdHt9fQogQGVuZCBtYWNybwpAQCAtMTU0LDkgKzE1NCw5IEBAIFRv cAoKICogT3BlcmF0aW9uIG1vZGVzOjogICAgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMg Zm9yIG9wZXJhdGlvbiBtb2RlcwogKiBQcmVwcm9jZXNzb3IgZmVhdHVyZXM6OiAgICAgICBDb21t YW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJlcHJvY2Vzc29yIGZlYXR1cmVzCisqIE1ha2UgZGVwZW5k ZW5jeSBnZW5lcmF0aW9uOjogIEdlbmVyYXRpbmcgbWFrZSBkZXBlbmRlbmN5IHJ1bGVzCiAqIExp bWl0cyBjb250cm9sOjogICAgICAgICAgICAgIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBsaW1p dHMgY29udHJvbAogKiBGcm96ZW4gc3RhdGU6OiAgICAgICAgICAgICAgICBDb21tYW5kIGxpbmUg b3B0aW9ucyBmb3IgZnJvemVuIHN0YXRlCi0qIE1ha2UgZGVwZW5kZW5jeSBnZW5lcmF0aW9uOjog IEdlbmVyYXRpbmcgbWFrZSBkZXBlbmRlbmN5IHJ1bGVzCiAqIERlYnVnZ2luZyBvcHRpb25zOjog ICAgICAgICAgIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBkZWJ1Z2dpbmcKICogQ29tbWFuZCBs aW5lIGZpbGVzOjogICAgICAgICAgU3BlY2lmeWluZyBpbnB1dCBmaWxlcyBvbiB0aGUgY29tbWFu ZCBsaW5lCgpAQCAtNTkwLDkgKzU5MCw5IEBAIEludm9raW5nIG00CiBAbWVudQogKiBPcGVyYXRp b24gbW9kZXM6OiAgICAgICAgICAgICBDb21tYW5kIGxpbmUgb3B0aW9ucyBmb3Igb3BlcmF0aW9u IG1vZGVzCiAqIFByZXByb2Nlc3NvciBmZWF0dXJlczo6ICAgICAgIENvbW1hbmQgbGluZSBvcHRp b25zIGZvciBwcmVwcm9jZXNzb3IgZmVhdHVyZXMKKyogTWFrZSBkZXBlbmRlbmN5IGdlbmVyYXRp b246OiAgR2VuZXJhdGluZyBtYWtlIGRlcGVuZGVuY3kgcnVsZXMKICogTGltaXRzIGNvbnRyb2w6 OiAgICAgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGxpbWl0cyBjb250cm9sCiAq IEZyb3plbiBzdGF0ZTo6ICAgICAgICAgICAgICAgIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBm cm96ZW4gc3RhdGUKLSogTWFrZSBkZXBlbmRlbmN5IGdlbmVyYXRpb246OiAgR2VuZXJhdGluZyBt YWtlIGRlcGVuZGVuY3kgcnVsZXMKICogRGVidWdnaW5nIG9wdGlvbnM6OiAgICAgICAgICAgQ29t bWFuZCBsaW5lIG9wdGlvbnMgZm9yIGRlYnVnZ2luZwogKiBDb21tYW5kIGxpbmUgZmlsZXM6OiAg ICAgICAgICBTcGVjaWZ5aW5nIGlucHV0IGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmUKIEBlbmQg bWVudQpAQCAtODA3LDYgKzgwNywxOTUgQEAgUHJlcHJvY2Vzc29yIGZlYXR1cmVzCiBmaWxlIG5h bWVzLgogQGVuZCB0YWJsZQoKK0Bub2RlIE1ha2UgZGVwZW5kZW5jeSBnZW5lcmF0aW9uCitAc2Vj dGlvbiBDb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBNYWtlZmlsZSBkZXBlbmRl bmN5IHJ1bGVzCisKK01ha2VmaWxlIGRlcGVuZGVuY3kgcnVsZXMgY2FuIGJlIGF1dG9tYXRpY2Fs bHkgZ2VuZXJhdGVkIGJ5IHNwZWNpZnlpbmcKK2JvdGggdGhlIEBjb2Rley0tbWFrZWRlcD19QHZh cntmaWxlfSBhbmQKK0Bjb2Rley0tbWFrZWRlcC10YXJnZXQ9fUB2YXJ7dGFyZ2V0fSBvcHRpb25z LgorCitAdGFibGUgQGNvZGUKK0BpdGVtIC0tbWFrZWRlcD1AdmFye2ZpbGV9CitDYXVzZXMgQGNv ZGV7bTR9IHRvIGdlbmVyYXRlIGEgZGVwZW5kZW5jeSBydWxlIGludG8gdGhlIHNwZWNpZmllZAor QHZhcntmaWxlfS4gIE1hY3JvIGV4cGFuc2lvbiBvdXRwdXQgaXMgc3RpbGwgd3JpdHRlbiB0byBz dGRvdXQgYXMKK25vcm1hbC4gIFRoaXMgb3B0aW9uIGlzIGFuYWxvZ291cyB0byB0aGUgQGNvZGV7 LU1GfSBvcHRpb24gb2YKK0Bjb2Rle2djY30uCisKK0BpdGVtIC0tbWFrZWRlcC10YXJnZXQ9QHZh cnt0YXJnZXR9CitTcGVjaWZpZXMgQHZhcnt0YXJnZXR9IHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhl IGdlbmVyYXRlZCBkZXBlbmRlbmN5CitydWxlLiAgVGhlIHN0cmluZyBAdmFye3RhcmdldH0gaXMg dXNlZCB2ZXJiYXRpbSwgYW5kIGNhbiBjb250YWluIHNldmVyYWwKK2xvZ2ljYWwgdGFyZ2V0cyBz ZXBhcmF0ZWQgYnkgc3BhY2VzLiAgSXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0bwor cHJvcGVybHkgZXhwcmVzcyBjaGFyYWN0ZXJzIHRoYXQgQGNvZGV7bWFrZX0gaGFuZGxlcyBzcGVj aWFsbHkgKHN1Y2ggYXMKKydAY29kZXskfScsIG9yIHNwYWNlcyB3aXRoaW4gZmlsZSBuYW1lcyku ICBTaW5jZSBAY29kZXttNH0gc2VuZHMgaXRzCittYWNybyBleHBhbnNpb24gb3V0cHV0IHRvIHN0 ZG91dCwgaXQgbmV2ZXIgcmVhbGx5IGtub3dzIHRoZSBuYW1lIG9mIHRoZQordGFyZ2V0IGZpbGUg YmVpbmcgZ2VuZXJhdGVkLCBzbyB0aGUgdGFyZ2V0IG11c3QgYWx3YXlzIGJlIHNwZWNpZmllZAor ZXhwbGljaXRseSBieSB0aGUgdXNlciB3aXRoIHRoaXMgb3B0aW9uLiAgVGhpcyBvcHRpb24gaXMg YW5hbG9nb3VzIHRvCit0aGUgQGNvZGV7LU1UfSBvcHRpb24gb2YgQGNvZGV7Z2NjfSAoZXhjZXB0 IHRoYXQgQGNvZGV7Z2NjfSBhbGxvd3MKK0Bjb2Rley1NVH0gdG8gYmUgc3BlY2lmaWVkIG11bHRp cGxlIHRpbWVzKS4KK0BlbmQgdGFibGUKKworTm90ZSB0aGF0IHRoZSBAY29kZXstLW1ha2VkZXA9 fUB2YXJ7ZmlsZX0gYW5kCitAY29kZXttYWtlZGVwLXRhcmdldD19QHZhcnt0YXJnZXR9IG9wdGlv bnMgbXVzdCBlaXRoZXIgKGEpIGJvdGggYmUKK3NwZWNpZmllZCwgb3IgKGIpIG5laXRoZXIgYmUg c3BlY2lmaWVkLiAgVGhleSBjYW5ub3QgYmUgdXNlZAoraW5kZXBlbmRlbnRseSBvZiBlYWNoIG90 aGVyLgorCitAY29tbWVudCBvcHRpb25zOiAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVw LXRhcmdldD1UYXJnZXQgZm9vCitAY29tbWVudCBhdXhmaWxlOiBUTVAvZGVwZmlsZQorQGV4YW1w bGUKKyQgQGtiZHttNCAtSSBleGFtcGxlcyAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVw LXRhcmdldD1UYXJnZXQgZm9vfQorQHJlc3VsdHt9YmFyCiskIEBrYmR7Y2F0IFRNUC9kZXBmaWxl fQorQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEdO VSBtNC4KK0BhdXhyZXN1bHR7VE1QL2RlcGZpbGV9VGFyZ2V0OiAuLy4uL2V4YW1wbGVzL2Zvbwor QGVuZCBleGFtcGxlCisKK0Bjb21tZW50IFNlcGFyYXRlIHRoZXNlIHR3byBleGFtcGxlcy4KK0Bz cCAxCisKK0Bjb21tZW50IG9wdGlvbnM6IC0tbWFrZWRlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAt dGFyZ2V0PVRhcmdldCBmb28KK0Bjb21tZW50IGF1eGZpbGU6IFRNUC9kZXBmaWxlCitAZXhhbXBs ZQorJCBAa2Jke200IC1JIGV4YW1wbGVzIC0tbWFrZWRlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAt dGFyZ2V0PVRhcmdldCBmb28gLX0KK0ByZXN1bHR7fWJhcgoraW5jbHVkZShgaW5jbC5tNCcpCitA cmVzdWx0e31JbmNsdWRlIGZpbGUgc3RhcnQKK0ByZXN1bHR7fWZvbworQHJlc3VsdHt9SW5jbHVk ZSBmaWxlIGVuZAorQHJlc3VsdHt9CiteRAorJCBAa2Jke2NhdCBUTVAvZGVwZmlsZX0KK0BhdXhy ZXN1bHR7VE1QL2RlcGZpbGV9IyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBHTlUgbTQuCitA YXV4cmVzdWx0e1RNUC9kZXBmaWxlfVRhcmdldDogLi8uLi9leGFtcGxlcy9mb28gLi8uLi9leGFt cGxlcy9pbmNsLm00CitAZW5kIGV4YW1wbGUKKworVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9w dGlvbnMgY2FuIGFsc28gYmUgdXNlZCB3aGVuIGRlcGVuZGVuY3kgcnVsZXMKK2FyZSBiZWluZyBn ZW5lcmF0ZWQgKHRoZXNlIG9wdGlvbnMgYXJlIG9ubHkgdmFsaWQgd2hlbiBib3RoCitAY29kZXtt YWtlZGVwPX1AdmFye2ZpbGV9IGFuZCBAY29kZXttYWtlZGVwLXRhcmdldD19QHZhcnt0YXJnZXR9 IGhhdmUKK2Fsc28gYmVlbiBzcGVjaWZpZWQpOgorCitAdGFibGUgQGNvZGUKK0BpdGVtIC0tbWFr ZWRlcC1nZW4tbWlzc2luZy1hcmdmaWxlcworQ2F1c2VzIEBjb2Rle200fSB0byBhc3N1bWUgdGhh dCBhbnkgZmlsZSBsaXN0ZWQgb24gdGhlIGNvbW1hbmQgbGluZSB0aGF0CitpcyBtaXNzaW5nIChp LmUuLCBkb2VzIG5vdCBleGlzdCkgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZmlsZS4K K0Bjb2Rle000fSBpbmNsdWRlcyBzdWNoIG1pc3NpbmcgZmlsZXMgYXMgZGVwZW5kZW5jaWVzIGlu IHRoZSBnZW5lcmF0ZWQKK3J1bGUgcmVnYXJkbGVzcy4gIEluIHRoaXMgY2FzZSB0aGUgZGVwZW5k ZW5jeSBhcHBlYXJzIGV4YWN0bHkgYXMKK3NwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFu ZCBpcyBub3QgbW9kaWZpZWQgYnkgYW55CitAY29kZXstSX1AdmFye3NlYXJjaGRpcn0gcHJlZml4 ZXMuICBOb3RlIHRoYXQgdGhlIG1hY3JvIGV4cGFuc2lvbiBvdXRwdXQKK2dlbmVyYXRlZCB0byBz dGRvdXQgd2lsbCBiZSBpbmNvcnJlY3Qgd2hlbiB0aGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUKK21p c3NpbmcgZmlsZSBpcyBhc3N1bWVkIHRvIGJlIGFuIGVtcHR5IGZpbGUuICBBIHdhcm5pbmcgaXMg cHJvZHVjZWQgb24KK3N0ZGVyciBmb3IgZWFjaCBtaXNzaW5nIGNvbW1hbmQgbGluZSBmaWxlIGhh bmRsZWQgaW4gdGhpcyBtYW5uZXIuCisKK0BpdGVtIC0tbWFrZWRlcC1nZW4tbWlzc2luZy1pbmNs dWRlCitDYXVzZXMgQGNvZGV7bTR9IHRvIGFzc3VtZSB0aGF0IGFueSBmaWxlIGluY2x1ZGVkIHZp YSB0aGUKK0Bjb2Rle2luY2x1ZGUoKX0gbWFjcm8gdGhhdCBpcyBtaXNzaW5nIChpLmUuLCBkb2Vz IG5vdCBleGlzdCkgaXMgYW4KK2F1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUuICBAY29kZXtN NH0gaW5jbHVkZXMgc3VjaCBtaXNzaW5nIGZpbGVzIGFzCitkZXBlbmRlbmNpZXMgaW4gdGhlIGdl bmVyYXRlZCBydWxlIHJlZ2FyZGxlc3MuICBJbiB0aGlzIGNhc2UgdGhlCitkZXBlbmRlbmN5IGFw cGVhcnMgZXhhY3RseSBhcyBzcGVjaWZpZWQgaW4gdGhlIGFyZ3VtZW50IHRvCitAY29kZXtpbmNs dWRlKCl9IGFuZCBpcyBub3QgbW9kaWZpZWQgYnkgYW55IEBjb2Rley1JfUB2YXJ7c2VhcmNoZGly fQorcHJlZml4ZXMuICBOb3RlIHRoYXQgdGhlIG1hY3JvIGV4cGFuc2lvbiBvdXRwdXQgZ2VuZXJh dGVkIHRvIHN0ZG91dCB3aWxsCitiZSBpbmNvcnJlY3Qgd2hlbiB0aGlzIGhhcHBlbnMgYmVjYXVz ZSB0aGUgbWlzc2luZyBmaWxlIGlzIGFzc3VtZWQgdG8gYmUKK2FuIGVtcHR5IGZpbGUuICBUaGlz IG9wdGlvbiBjYXVzZXMgdGhlIEBjb2Rle200fSBAY29kZXtpbmNsdWRlKCl9IG1hY3JvCit0byBi ZWhhdmUgbGlrZSBAY29kZXtzaW5jbHVkZSgpfSwgZXhjZXB0IHRoYXQgYSB3YXJuaW5nIG1lc3Nh Z2UgaXMKK3Byb2R1Y2VkIG9uIHN0ZGVyciB0byBpbmRpY2F0ZSB0aGF0IHRoZSByZXF1ZXN0ZWQg ZmlsZSB3YXMgbWlzc2luZy4KK1RoaXMgb3B0aW9uIGlzIGFuYWxvZ291cyB0byB0aGUgQGNvZGV7 LU1HfSBvcHRpb24gb2YgQGNvZGV7Z2NjfS4KKworQGl0ZW0gLS1tYWtlZGVwLWdlbi1taXNzaW5n LXNpbmNsdWRlCitDYXVzZXMgQGNvZGV7bTR9IHRvIGFzc3VtZSB0aGF0IGFueSBmaWxlIGluY2x1 ZGVkIHZpYSB0aGUKK0Bjb2Rle3NpbmNsdWRlKCl9IG1hY3JvIHRoYXQgaXMgbWlzc2luZyAoaS5l LiwgZG9lcyBub3QgZXhpc3QpIGlzIGFuCithdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlLiAg QGNvZGV7TTR9IGluY2x1ZGVzIHN1Y2ggbWlzc2luZyBmaWxlcyBhcworZGVwZW5kZW5jaWVzIGlu IHRoZSBnZW5lcmF0ZWQgcnVsZSByZWdhcmRsZXNzLiAgSW4gdGhpcyBjYXNlIHRoZQorZGVwZW5k ZW5jeSBhcHBlYXJzIGV4YWN0bHkgYXMgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVudCB0bworQGNv ZGV7c2luY2x1ZGUoKX0gYW5kIGlzIG5vdCBtb2RpZmllZCBieSBhbnkgQGNvZGV7LUl9QHZhcntz ZWFyY2hkaXJ9CitwcmVmaXhlcy4gIE5vdGUgdGhhdCB0aGUgbWFjcm8gZXhwYW5zaW9uIG91dHB1 dCBnZW5lcmF0ZWQgdG8gc3Rkb3V0IHdpbGwKK2JlIGluY29ycmVjdCB3aGVuIHRoaXMgaGFwcGVu cyBiZWNhdXNlIHRoZSBtaXNzaW5nIGZpbGUgaXMgYXNzdW1lZCB0byBiZQorYW4gZW1wdHkgZmls ZS4gIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFsdGVyIEBjb2Rle3NpbmNsdWRlKCl9J3MgYmVoYXZp b3IKK29mIHNpbGVudGx5IGlnbm9yaW5nIHJlcXVlc3RzIHRvIEBjb2Rle3NpbmNsdWRlKCl9IGZp bGVzIHRoYXQgZG8gbm90IGV4aXN0LgorCitAaXRlbSAtLW1ha2VkZXAtZ2VuLW1pc3NpbmctYWxs CitUaGlzIG9wdGlvbiBpcyBlcXVpdmFsZW50IHRvIHNwZWNpZnlpbmcgYWxsIHRocmVlIG9wdGlv bnMKK0Bjb2Rley0tbWFrZWRlcC1nZW4tbWlzc2luZy1hcmdmaWxlc30sCitAY29kZXstLW1ha2Vk ZXAtZ2VuLW1pc3NpbmctaW5jbHVkZX0gYW5kCitAY29kZXstLW1ha2VkZXAtZ2VuLW1pc3Npbmct c2luY2x1ZGV9LgorQGVuZCB0YWJsZQorCitOb3RlIHRoYXQgdGhlIGFib3ZlIEBjb2Rle21ha2Vk ZXAtZ2VuLW1pc3NpbmctKn0gb3B0aW9ucyBhc3N1bWUgdGhhdCB0aGUKK21pc3NpbmcgZmlsZXMg d2lsbCB1bHRpbWF0ZWx5IG5vdCBAY29kZXtpbmNsdWRlKCl9IG9yIEBjb2Rle3NpbmNsdWRlKCl9 CithbnkgYWRkaXRpb25hbCBmaWxlcyAtLSBpZiB0aGV5IGRvLCB0aGVuIHRoZXNlIGFkZGl0aW9u YWwgZmlsZXMgd2lsbCBiZQorbWlzc2luZyBmcm9tIHRoZSBnZW5lcmF0ZWQgZGVwZW5kZW5jeSBy dWxlcy4KKworCitAY29tbWVudCBzdGF0dXM6IDEKK0Bjb21tZW50IG9wdGlvbnM6IC0tbWFrZWRl cD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAtdGFyZ2V0PVRhcmdldCAtLW1ha2VkZXAtZ2VuLW1pc3Np bmctYWxsIGZvbyBub25lCitAY29tbWVudCBhdXhmaWxlOiBUTVAvZGVwZmlsZQorQGV4YW1wbGUK KyQgQGtiZHttNCAtSSBleGFtcGxlcyAtLW1ha2VkZXA9VE1QL2RlcGZpbGUgLS1tYWtlZGVwLXRh cmdldD1UYXJnZXQgXH0KK0BrYmR7ICAgIC0tbWFrZWRlcC1nZW4tbWlzc2luZy1hbGwgZm9vIG5v bmUgLX0KK0ByZXN1bHR7fWJhcgorQGVycm9ye31tNDogY2Fubm90IG9wZW4gJ25vbmUnOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5CitpbmNsdWRlKGBpbmNsLm00JykKK0ByZXN1bHR7fUluY2x1 ZGUgZmlsZSBzdGFydAorQHJlc3VsdHt9Zm9vCitAcmVzdWx0e31JbmNsdWRlIGZpbGUgZW5kCitA cmVzdWx0e30KK2luY2x1ZGUoYG5vbmUyJykKK0ByZXN1bHR7fQorQGVycm9ye31tNDpzdGRpbjoy OiBpbmNsdWRlOiBjYW5ub3Qgb3BlbiAnbm9uZTInOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CitzaW5jbHVkZShgbm9uZTMnKQorQHJlc3VsdHt9CiteRAorJCBAa2Jke2NhdCBUTVAvZGVwZmls ZX0KK0BhdXhyZXN1bHR7VE1QL2RlcGZpbGV9IyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBH TlUgbTQuCitAYXV4cmVzdWx0e1RNUC9kZXBmaWxlfVRhcmdldDogLi8uLi9leGFtcGxlcy9mb28g bm9uZSAuLy4uL2V4YW1wbGVzL2luY2wubTQgbm9uZTIgbm9uZTMKK0BlbmQgZXhhbXBsZQorCitU aGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJvbCB0aGUgZ2VuZXJhdGlvbiBvZiBgYHBob255Jycg dGFyZ2V0cyBmb3IKK2NlcnRhaW4gY2xhc3NlcyBvZiBkZXBlbmRlbmNpZXMuICBUaGVzZSBkdW1t eSBydWxlcyBhcmUgdXNlZCB0byB3b3JrCithcm91bmQgZXJyb3JzIEBjb2Rle21ha2V9IGdpdmVz IGlmIHlvdSByZW1vdmUgZmlsZXMgd2l0aG91dCB1cGRhdGluZyB0aGUKK0Bjb2Rle01ha2VmaWxl fSB0byBtYXRjaC4gIERlcGVuZGVuY2llcyB0aGF0IG1hdGNoIG9uZSBvciBtb3JlIG9mIHRoZXNl CitjbGFzc2VzIGNhdXNlIGEgc2luZ2xlIGR1bW15IHJ1bGUgdG8gYmUgZ2VuZXJhdGVkIGZvciB0 aGVtOgorCitAdGFibGUgQGNvZGUKK0BpdGVtIC0tbWFrZWRlcC1waG9ueS1hcmdmaWxlcworQ2F1 c2VzIEBjb2Rle200fSB0byBnZW5lcmF0ZSBhIGBgcGhvbnknJyB0YXJnZXQgZm9yIGVhY2ggZmls ZSB0aGF0IGlzCitzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKworQGl0ZW0gLS1tYWtl ZGVwLXBob255LWluY2x1ZGUKK0NhdXNlcyBAY29kZXttNH0gdG8gZ2VuZXJhdGUgYSBgYHBob255 JycgdGFyZ2V0IGZvciBlYWNoIGZpbGUgdGhhdCBpcwordGhlIHN1YmplY3Qgb2YgYW4gQGNvZGV7 aW5jbHVkZSgpfSBtYWNyby4gIFRoaXMgb3B0aW9uIGlzIGFuYWxvZ291cyB0bwordGhlIEBjb2Rl ey1NUH0gb3B0aW9uIG9mIEBjb2Rle2djY30uCisKK0BpdGVtIC0tbWFrZWRlcC1waG9ueS1zaW5j bHVkZQorQ2F1c2VzIEBjb2Rle200fSB0byBnZW5lcmF0ZSBhIGBgcGhvbnknJyB0YXJnZXQgZm9y IGVhY2ggZmlsZSB0aGF0IGlzCit0aGUgc3ViamVjdCBvZiBhbiBAY29kZXtzaW5jbHVkZSgpfSBt YWNyby4KKworQGl0ZW0gLS1tYWtlZGVwLXBob255LWFsbAoraXMgZXF1aXZhbGVudCB0byBzcGVj aWZ5aW5nIGFsbCB0aHJlZSBvcHRpb25zOgorQGNvZGV7LS1tYWtlZGVwLXBob255LWFyZ2ZpbGVz fQorQGNvZGV7LS1tYWtlZGVwLXBob255LWluY2x1ZGV9CitAY29kZXstLW1ha2VkZXAtcGhvbnkt c2luY2x1ZGV9LgorQGVuZCB0YWJsZQorCitAY29tbWVudCBvcHRpb25zOiAtLW1ha2VkZXA9VE1Q L2RlcGZpbGUgLS1tYWtlZGVwLXRhcmdldD1UYXJnZXQgLS1tYWtlZGVwLXBob255LWFsbCBmb28K K0Bjb21tZW50IGF1eGZpbGU6IFRNUC9kZXBmaWxlCitAZXhhbXBsZQorJCBAa2Jke200IC1JIGV4 YW1wbGVzIC0tbWFrZGVwPVRNUC9kZXBmaWxlIC0tbWFrZWRlcC10YXJnZXQ9VGFyZ2V0IFx9CitA a2JkeyAgICAtLW1ha2VkZXAtcGhvbnktYWxsIGZvbyAtfQorQHJlc3VsdHt9YmFyCitpbmNsdWRl KGBpbmNsLm00JykKK0ByZXN1bHR7fUluY2x1ZGUgZmlsZSBzdGFydAorQHJlc3VsdHt9Zm9vCitA cmVzdWx0e31JbmNsdWRlIGZpbGUgZW5kCitAcmVzdWx0e30KK15ECiskIEBrYmR7Y2F0IFRNUC9k ZXBmaWxlfQorQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk IGJ5IEdOVSBtNC4KK0BhdXhyZXN1bHR7VE1QL2RlcGZpbGV9VGFyZ2V0OiAuLy4uL2V4YW1wbGVz L2ZvbyAuLy4uL2V4YW1wbGVzL2luY2wubTQKK0BhdXhyZXN1bHR7VE1QL2RlcGZpbGV9CitAYXV4 cmVzdWx0e1RNUC9kZXBmaWxlfS4vLi4vZXhhbXBsZXMvZm9vOgorQGF1eHJlc3VsdHtUTVAvZGVw ZmlsZX0KK0BhdXhyZXN1bHR7VE1QL2RlcGZpbGV9Li8uLi9leGFtcGxlcy9pbmNsLm00OgorQGVu ZCBleGFtcGxlCisKIEBub2RlIExpbWl0cyBjb250cm9sCiBAc2VjdGlvbiBDb21tYW5kIGxpbmUg b3B0aW9ucyBmb3IgbGltaXRzIGNvbnRyb2wKCkBAIC05MTQsMTkxICsxMTAzLDYgQEAgRnJvemVu IHN0YXRlCiBmaWxlcyBhcmUgcmVhZC4KIEBlbmQgdGFibGUKCi1Abm9kZSBNYWtlIGRlcGVuZGVu Y3kgZ2VuZXJhdGlvbgotQHNlY3Rpb24gQ29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGdlbmVyYXRp bmcgTWFrZWZpbGUgZGVwZW5kZW5jeSBydWxlcwotCi1NYWtlZmlsZSBkZXBlbmRlbmN5IHJ1bGVz IGNhbiBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBzcGVjaWZ5aW5nCi1ib3RoIHRoZSBA Y29kZXstLW1ha2VkZXA9fUB2YXJ7ZmlsZX0gYW5kCi1AY29kZXstLW1ha2VkZXAtdGFyZ2V0PX1A dmFye3RhcmdldH0gb3B0aW9ucy4KLQotQHRhYmxlIEBjb2RlCi1AaXRlbSAtLW1ha2VkZXA9QHZh cntmaWxlfQotQ2F1c2VzIEBjb2Rle200fSB0byBnZW5lcmF0ZSBhIGRlcGVuZGVuY3kgcnVsZSBp bnRvIHRoZSBzcGVjaWZpZWQKLUB2YXJ7ZmlsZX0uICBNYWNybyBleHBhbnNpb24gb3V0cHV0IGlz IHN0aWxsIHdyaXR0ZW4gdG8gc3Rkb3V0IGFzCi1ub3JtYWwuICBUaGlzIG9wdGlvbiBpcyBhbmFs b2dvdXMgdG8gdGhlIEBjb2Rley1NRn0gb3B0aW9uIG9mCi1AY29kZXtnY2N9LgotCi1AaXRlbSAt LW1ha2VkZXAtdGFyZ2V0PUB2YXJ7dGFyZ2V0fQotU3BlY2lmaWVzIEB2YXJ7dGFyZ2V0fSB0byBi ZSB0aGUgdGFyZ2V0IG9mIHRoZSBnZW5lcmF0ZWQgZGVwZW5kZW5jeQotcnVsZS4gIFRoZSBzdHJp bmcgQHZhcnt0YXJnZXR9IGlzIHVzZWQgdmVyYmF0aW0sIGFuZCBjYW4gY29udGFpbiBzZXZlcmFs Ci1sb2dpY2FsIHRhcmdldHMgc2VwYXJhdGVkIGJ5IHNwYWNlcy4gIEl0IGlzIHRoZSB1c2VyJ3Mg cmVzcG9uc2liaWxpdHkgdG8KLXByb3Blcmx5IGV4cHJlc3MgY2hhcmFjdGVycyB0aGF0IEBjb2Rl e21ha2V9IGhhbmRsZXMgc3BlY2lhbGx5IChzdWNoIGFzCi0nQGNvZGV7JH0nLCBvciBzcGFjZXMg d2l0aGluIGZpbGUgbmFtZXMpLiAgU2luY2UgQGNvZGV7bTR9IHNlbmRzIGl0cwotbWFjcm8gZXhw YW5zaW9uIG91dHB1dCB0byBzdGRvdXQsIGl0IG5ldmVyIHJlYWxseSBrbm93cyB0aGUgbmFtZSBv ZiB0aGUKLXRhcmdldCBmaWxlIGJlaW5nIGdlbmVyYXRlZCwgc28gdGhlIHRhcmdldCBtdXN0IGFs d2F5cyBiZSBzcGVjaWZpZWQKLWV4cGxpY2l0bHkgYnkgdGhlIHVzZXIgd2l0aCB0aGlzIG9wdGlv bi4gIFRoaXMgb3B0aW9uIGlzIGFuYWxvZ291cyB0bwotdGhlIEBjb2Rley1NVH0gb3B0aW9uIG9m IEBjb2Rle2djY30gKGV4Y2VwdCB0aGF0IEBjb2Rle2djY30gYWxsb3dzCi1AY29kZXstTVR9IHRv IGJlIHNwZWNpZmllZCBtdWx0aXBsZSB0aW1lcykuCi1AZW5kIHRhYmxlCi0KLU5vdGUgdGhhdCB0 aGUgQGNvZGV7LS1tYWtlZGVwPX1AdmFye2ZpbGV9IGFuZAotQGNvZGV7bWFrZWRlcC10YXJnZXQ9 fUB2YXJ7dGFyZ2V0fSBvcHRpb25zIG11c3QgZWl0aGVyIChhKSBib3RoIGJlCi1zcGVjaWZpZWQs IG9yIChiKSBuZWl0aGVyIGJlIHNwZWNpZmllZC4gIFRoZXkgY2Fubm90IGJlIHVzZWQKLWluZGVw ZW5kZW50bHkgb2YgZWFjaCBvdGhlci4KLQotQGNvbW1lbnQgb3B0aW9uczogLS1tYWtlZGVwPVRN UC9kZXBmaWxlIC0tbWFrZWRlcC10YXJnZXQ9VGFyZ2V0IGZvbwotQGNvbW1lbnQgYXV4ZmlsZTog VE1QL2RlcGZpbGUKLUBleGFtcGxlCi0kIEBrYmR7bTQgLUkgZXhhbXBsZXMgLS1tYWtlZGVwPVRN UC9kZXBmaWxlIC0tbWFrZWRlcC10YXJnZXQ9VGFyZ2V0IGZvb30KLUByZXN1bHR7fWJhcgotQGF1 eHJlc3VsdHtUTVAvZGVwZmlsZX0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEdOVSBtNC4K LUBhdXhyZXN1bHR7VE1QL2RlcGZpbGV9VGFyZ2V0OiAuLy4uL2V4YW1wbGVzL2ZvbwotQGVuZCBl eGFtcGxlCi0KLUBjb21tZW50IFNlcGFyYXRlIHRoZXNlIHR3byBleGFtcGxlcy4KLUBzcCAxCi0K LUBjb21tZW50IG9wdGlvbnM6IC0tbWFrZWRlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAtdGFyZ2V0 PVRhcmdldCBmb28KLUBjb21tZW50IGF1eGZpbGU6IFRNUC9kZXBmaWxlCi1AZXhhbXBsZQotJCBA a2Jke200IC1JIGV4YW1wbGVzIC0tbWFrZWRlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAtdGFyZ2V0 PVRhcmdldCBmb28gLX0KLUByZXN1bHR7fWJhcgotaW5jbHVkZShgaW5jbC5tNCcpCi1AcmVzdWx0 e31JbmNsdWRlIGZpbGUgc3RhcnQKLUByZXN1bHR7fWZvbwotQHJlc3VsdHt9SW5jbHVkZSBmaWxl IGVuZAotQHJlc3VsdHt9Ci1eRAotQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX0jIEF1dG9tYXRpY2Fs bHkgZ2VuZXJhdGVkIGJ5IEdOVSBtNC4KLUBhdXhyZXN1bHR7VE1QL2RlcGZpbGV9VGFyZ2V0OiAu Ly4uL2V4YW1wbGVzL2ZvbyAuLy4uL2V4YW1wbGVzL2luY2wubTQKLUBlbmQgZXhhbXBsZQotCi1U aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9ucyBjYW4gYWxzbyBiZSB1c2VkIHdoZW4gZGVw ZW5kZW5jeSBydWxlcwotYXJlIGJlaW5nIGdlbmVyYXRlZCAodGhlc2Ugb3B0aW9ucyBhcmUgb25s eSB2YWxpZCB3aGVuIGJvdGgKLUBjb2Rle21ha2VkZXA9fUB2YXJ7ZmlsZX0gYW5kIEBjb2Rle21h a2VkZXAtdGFyZ2V0PX1AdmFye3RhcmdldH0gaGF2ZQotYWxzbyBiZWVuIHNwZWNpZmllZCk6Ci0K LUB0YWJsZSBAY29kZQotQGl0ZW0gLS1tYWtlZGVwLWdlbi1taXNzaW5nLWFyZ2ZpbGVzCi1DYXVz ZXMgQGNvZGV7bTR9IHRvIGFzc3VtZSB0aGF0IGFueSBmaWxlIGxpc3RlZCBvbiB0aGUgY29tbWFu ZCBsaW5lIHRoYXQKLWlzIG1pc3NpbmcgKGkuZS4sIGRvZXMgbm90IGV4aXN0KSBpcyBhbiBhdXRv bWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlLgotQGNvZGV7TTR9IGluY2x1ZGVzIHN1Y2ggbWlzc2lu ZyBmaWxlcyBhcyBkZXBlbmRlbmNpZXMgaW4gdGhlIGdlbmVyYXRlZAotcnVsZSByZWdhcmRsZXNz LiAgSW4gdGhpcyBjYXNlIHRoZSBkZXBlbmRlbmN5IGFwcGVhcnMgZXhhY3RseSBhcwotc3BlY2lm aWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgYW5kIGlzIG5vdCBtb2RpZmllZCBieSBhbnkKLUBjb2Rl ey1JfUB2YXJ7c2VhcmNoZGlyfSBwcmVmaXhlcy4gIE5vdGUgdGhhdCB0aGUgbWFjcm8gZXhwYW5z aW9uIG91dHB1dAotZ2VuZXJhdGVkIHRvIHN0ZG91dCB3aWxsIGJlIGluY29ycmVjdCB3aGVuIHRo aXMgaGFwcGVucyBiZWNhdXNlIHRoZQotbWlzc2luZyBmaWxlIGlzIGFzc3VtZWQgdG8gYmUgYW4g ZW1wdHkgZmlsZS4gIEEgd2FybmluZyBpcyBwcm9kdWNlZCBvbgotc3RkZXJyIGZvciBlYWNoIG1p c3NpbmcgY29tbWFuZCBsaW5lIGZpbGUgaGFuZGxlZCBpbiB0aGlzIG1hbm5lci4KLQotQGl0ZW0g LS1tYWtlZGVwLWdlbi1taXNzaW5nLWluY2x1ZGUKLUNhdXNlcyBAY29kZXttNH0gdG8gYXNzdW1l IHRoYXQgYW55IGZpbGUgaW5jbHVkZWQgdmlhIHRoZQotQGNvZGV7aW5jbHVkZSgpfSBtYWNybyB0 aGF0IGlzIG1pc3NpbmcgKGkuZS4sIGRvZXMgbm90IGV4aXN0KSBpcyBhbgotYXV0b21hdGljYWxs eSBnZW5lcmF0ZWQgZmlsZS4gIEBjb2Rle000fSBpbmNsdWRlcyBzdWNoIG1pc3NpbmcgZmlsZXMg YXMKLWRlcGVuZGVuY2llcyBpbiB0aGUgZ2VuZXJhdGVkIHJ1bGUgcmVnYXJkbGVzcy4gIEluIHRo aXMgY2FzZSB0aGUKLWRlcGVuZGVuY3kgYXBwZWFycyBleGFjdGx5IGFzIHNwZWNpZmllZCBpbiB0 aGUgYXJndW1lbnQgdG8KLUBjb2Rle2luY2x1ZGUoKX0gYW5kIGlzIG5vdCBtb2RpZmllZCBieSBh bnkgQGNvZGV7LUl9QHZhcntzZWFyY2hkaXJ9Ci1wcmVmaXhlcy4gIE5vdGUgdGhhdCB0aGUgbWFj cm8gZXhwYW5zaW9uIG91dHB1dCBnZW5lcmF0ZWQgdG8gc3Rkb3V0IHdpbGwKLWJlIGluY29ycmVj dCB3aGVuIHRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBtaXNzaW5nIGZpbGUgaXMgYXNzdW1lZCB0 byBiZQotYW4gZW1wdHkgZmlsZS4gIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgQGNvZGV7bTR9IEBj b2Rle2luY2x1ZGUoKX0gbWFjcm8KLXRvIGJlaGF2ZSBsaWtlIEBjb2Rle3NpbmNsdWRlKCl9LCBl eGNlcHQgdGhhdCBhIHdhcm5pbmcgbWVzc2FnZSBpcwotcHJvZHVjZWQgb24gc3RkZXJyIHRvIGlu ZGljYXRlIHRoYXQgdGhlIHJlcXVlc3RlZCBmaWxlIHdhcyBtaXNzaW5nLgotVGhpcyBvcHRpb24g aXMgYW5hbG9nb3VzIHRvIHRoZSBAY29kZXstTUd9IG9wdGlvbiBvZiBAY29kZXtnY2N9LgotCi1A aXRlbSAtLW1ha2VkZXAtZ2VuLW1pc3Npbmctc2luY2x1ZGUKLUNhdXNlcyBAY29kZXttNH0gdG8g YXNzdW1lIHRoYXQgYW55IGZpbGUgaW5jbHVkZWQgdmlhIHRoZQotQGNvZGV7c2luY2x1ZGUoKX0g bWFjcm8gdGhhdCBpcyBtaXNzaW5nIChpLmUuLCBkb2VzIG5vdCBleGlzdCkgaXMgYW4KLWF1dG9t YXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUuICBAY29kZXtNNH0gaW5jbHVkZXMgc3VjaCBtaXNzaW5n IGZpbGVzIGFzCi1kZXBlbmRlbmNpZXMgaW4gdGhlIGdlbmVyYXRlZCBydWxlIHJlZ2FyZGxlc3Mu ICBJbiB0aGlzIGNhc2UgdGhlCi1kZXBlbmRlbmN5IGFwcGVhcnMgZXhhY3RseSBhcyBzcGVjaWZp ZWQgaW4gdGhlIGFyZ3VtZW50IHRvCi1AY29kZXtzaW5jbHVkZSgpfSBhbmQgaXMgbm90IG1vZGlm aWVkIGJ5IGFueSBAY29kZXstSX1AdmFye3NlYXJjaGRpcn0KLXByZWZpeGVzLiAgTm90ZSB0aGF0 IHRoZSBtYWNybyBleHBhbnNpb24gb3V0cHV0IGdlbmVyYXRlZCB0byBzdGRvdXQgd2lsbAotYmUg aW5jb3JyZWN0IHdoZW4gdGhpcyBoYXBwZW5zIGJlY2F1c2UgdGhlIG1pc3NpbmcgZmlsZSBpcyBh c3N1bWVkIHRvIGJlCi1hbiBlbXB0eSBmaWxlLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgYWx0ZXIg QGNvZGV7c2luY2x1ZGUoKX0ncyBiZWhhdmlvcgotb2Ygc2lsZW50bHkgaWdub3JpbmcgcmVxdWVz dHMgdG8gQGNvZGV7c2luY2x1ZGUoKX0gZmlsZXMgdGhhdCBkbyBub3QgZXhpc3QuCi0KLUBpdGVt IC0tbWFrZWRlcC1nZW4tbWlzc2luZy1hbGwKLVRoaXMgb3B0aW9uIGlzIGVxdWl2YWxlbnQgdG8g c3BlY2lmeWluZyBhbGwgdGhyZWUgb3B0aW9ucwotQGNvZGV7LS1tYWtlZGVwLWdlbi1taXNzaW5n LWFyZ2ZpbGVzfSwKLUBjb2Rley0tbWFrZWRlcC1nZW4tbWlzc2luZy1pbmNsdWRlfSBhbmQKLUBj b2Rley0tbWFrZWRlcC1nZW4tbWlzc2luZy1zaW5jbHVkZX0uCi1AZW5kIHRhYmxlCi0KLU5vdGUg dGhhdCB0aGUgYWJvdmUgQGNvZGV7bWFrZWRlcC1nZW4tbWlzc2luZy0qfSBvcHRpb25zIGFzc3Vt ZSB0aGF0IHRoZQotbWlzc2luZyBmaWxlcyB3aWxsIHVsdGltYXRlbHkgbm90IEBjb2Rle2luY2x1 ZGUoKX0gb3IgQGNvZGV7c2luY2x1ZGUoKX0KLWFueSBhZGRpdGlvbmFsIGZpbGVzIC0tIGlmIHRo ZXkgZG8sIHRoZW4gdGhlc2UgYWRkaXRpb25hbCBmaWxlcyB3aWxsIGJlCi1taXNzaW5nIGZyb20g dGhlIGdlbmVyYXRlZCBkZXBlbmRlbmN5IHJ1bGVzLgotCi0KLUBjb21tZW50IHN0YXR1czogMQot QGNvbW1lbnQgb3B0aW9uczogLS1tYWtlZGVwPVRNUC9kZXBmaWxlIC0tbWFrZWRlcC10YXJnZXQ9 VGFyZ2V0IC0tbWFrZWRlcC1nZW4tbWlzc2luZy1hbGwgZm9vIG5vbmUKLUBjb21tZW50IGF1eGZp bGU6IFRNUC9kZXBmaWxlCi1AZXhhbXBsZQotJCBAa2Jke200IC1JIGV4YW1wbGVzIC0tbWFrZWRl cD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAtdGFyZ2V0PVRhcmdldCBcfQotQGtiZHsgICAgLS1tYWtl ZGVwLWdlbi1taXNzaW5nLWFsbCBmb28gbm9uZSAtfQotQHJlc3VsdHt9YmFyCi1AZXJyb3J7fW00 OiBjYW5ub3Qgb3BlbiAnbm9uZSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWluY2x1ZGUo YGluY2wubTQnKQotQHJlc3VsdHt9SW5jbHVkZSBmaWxlIHN0YXJ0Ci1AcmVzdWx0e31mb28KLUBy ZXN1bHR7fUluY2x1ZGUgZmlsZSBlbmQKLUByZXN1bHR7fQotaW5jbHVkZShgbm9uZTInKQotQHJl c3VsdHt9Ci1AZXJyb3J7fW00OnN0ZGluOjI6IGluY2x1ZGU6IGNhbm5vdCBvcGVuICdub25lMic6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLXNpbmNsdWRlKGBub25lMycpCi1AcmVzdWx0e30K LV5ECi1AYXV4cmVzdWx0e1RNUC9kZXBmaWxlfSMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkg R05VIG00LgotQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX1UYXJnZXQ6IC4vLi4vZXhhbXBsZXMvZm9v IG5vbmUgLi8uLi9leGFtcGxlcy9pbmNsLm00IG5vbmUyIG5vbmUzCi1AZW5kIGV4YW1wbGUKLQot VGhlIGZvbGxvd2luZyBvcHRpb25zIGNvbnRyb2wgdGhlIGdlbmVyYXRpb24gb2YgYGBwaG9ueScn IHRhcmdldHMgZm9yCi1jZXJ0YWluIGNsYXNzZXMgb2YgZGVwZW5kZW5jaWVzLiAgVGhlc2UgZHVt bXkgcnVsZXMgYXJlIHVzZWQgdG8gd29yawotYXJvdW5kIGVycm9ycyBAY29kZXttYWtlfSBnaXZl cyBpZiB5b3UgcmVtb3ZlIGZpbGVzIHdpdGhvdXQgdXBkYXRpbmcgdGhlCi1AY29kZXtNYWtlZmls ZX0gdG8gbWF0Y2guICBEZXBlbmRlbmNpZXMgdGhhdCBtYXRjaCBvbmUgb3IgbW9yZSBvZiB0aGVz ZQotY2xhc3NlcyBjYXVzZSBhIHNpbmdsZSBkdW1teSBydWxlIHRvIGJlIGdlbmVyYXRlZCBmb3Ig dGhlbToKLQotQHRhYmxlIEBjb2RlCi1AaXRlbSAtLW1ha2VkZXAtcGhvbnktYXJnZmlsZXMKLUNh dXNlcyBAY29kZXttNH0gdG8gZ2VuZXJhdGUgYSBgYHBob255JycgdGFyZ2V0IGZvciBlYWNoIGZp bGUgdGhhdCBpcwotc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCi0KLUBpdGVtIC0tbWFr ZWRlcC1waG9ueS1pbmNsdWRlCi1DYXVzZXMgQGNvZGV7bTR9IHRvIGdlbmVyYXRlIGEgYGBwaG9u eScnIHRhcmdldCBmb3IgZWFjaCBmaWxlIHRoYXQgaXMKLXRoZSBzdWJqZWN0IG9mIGFuIEBjb2Rl e2luY2x1ZGUoKX0gbWFjcm8uICBUaGlzIG9wdGlvbiBpcyBhbmFsb2dvdXMgdG8KLXRoZSBAY29k ZXstTVB9IG9wdGlvbiBvZiBAY29kZXtnY2N9LgotCi1AaXRlbSAtLW1ha2VkZXAtcGhvbnktc2lu Y2x1ZGUKLUNhdXNlcyBAY29kZXttNH0gdG8gZ2VuZXJhdGUgYSBgYHBob255JycgdGFyZ2V0IGZv ciBlYWNoIGZpbGUgdGhhdCBpcwotdGhlIHN1YmplY3Qgb2YgYW4gQGNvZGV7c2luY2x1ZGUoKX0g bWFjcm8uCi0KLUBpdGVtIC0tbWFrZWRlcC1waG9ueS1hbGwKLWlzIGVxdWl2YWxlbnQgdG8gc3Bl Y2lmeWluZyBhbGwgdGhyZWUgb3B0aW9uczoKLUBjb2Rley0tbWFrZWRlcC1waG9ueS1hcmdmaWxl c30KLUBjb2Rley0tbWFrZWRlcC1waG9ueS1pbmNsdWRlfQotQGNvZGV7LS1tYWtlZGVwLXBob255 LXNpbmNsdWRlfS4KLUBlbmQgdGFibGUKLQotQGNvbW1lbnQgb3B0aW9uczogLS1tYWtlZGVwPVRN UC9kZXBmaWxlIC0tbWFrZWRlcC10YXJnZXQ9VGFyZ2V0IC0tbWFrZWRlcC1waG9ueS1hbGwgZm9v Ci1AY29tbWVudCBhdXhmaWxlOiBUTVAvZGVwZmlsZQotQGV4YW1wbGUKLSQgQGtiZHttNCAtSSBl eGFtcGxlcyAtLW1ha2RlcD1UTVAvZGVwZmlsZSAtLW1ha2VkZXAtdGFyZ2V0PVRhcmdldCBcfQot QGtiZHsgICAgLS1tYWtlZGVwLXBob255LWFsbCBmb28gLX0KLUByZXN1bHR7fWJhcgotaW5jbHVk ZShgaW5jbC5tNCcpCi1AcmVzdWx0e31JbmNsdWRlIGZpbGUgc3RhcnQKLUByZXN1bHR7fWZvbwot QHJlc3VsdHt9SW5jbHVkZSBmaWxlIGVuZAotQHJlc3VsdHt9Ci1eRAotQGF1eHJlc3VsdHtUTVAv ZGVwZmlsZX0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IEdOVSBtNC4KLUBhdXhyZXN1bHR7 VE1QL2RlcGZpbGV9VGFyZ2V0OiAuLy4uL2V4YW1wbGVzL2ZvbyAuLy4uL2V4YW1wbGVzL2luY2wu bTQKLUBhdXhyZXN1bHR7VE1QL2RlcGZpbGV9Ci1AYXV4cmVzdWx0e1RNUC9kZXBmaWxlfS4vLi4v ZXhhbXBsZXMvZm9vOgotQGF1eHJlc3VsdHtUTVAvZGVwZmlsZX0KLUBhdXhyZXN1bHR7VE1QL2Rl cGZpbGV9Li8uLi9leGFtcGxlcy9pbmNsLm00OgotQGVuZCBleGFtcGxlCi0KIEBub2RlIERlYnVn Z2luZyBvcHRpb25zCiBAc2VjdGlvbiBDb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgZGVidWdnaW5n CgpkaWZmIC0tZ2l0IGEvc3JjL200LmMgYi9zcmMvbTQuYwppbmRleCBhYTIzMjdhNS4uOWY2YzVm M2IgMTAwNjQ0Ci0tLSBhL3NyYy9tNC5jCisrKyBiL3NyYy9tNC5jCkBAIC0zNzgsMTcgKzM3OCwx NyBAQCBtaXNtYXRjaCwgb3Igd2hhdGV2ZXIgdmFsdWUgd2FzIHBhc3NlZCB0byB0aGUgbTRleGl0 IG1hY3JvLlxuXAogZW51bQogewogICBERUJVR0ZJTEVfT1BUSU9OID0gQ0hBUl9NQVggKyAxLCAg ICAgIC8qIG5vIHNob3J0IG9wdCAqLwotICBXQVJOX01BQ1JPX1NFUVVFTkNFX09QVElPTiwgICAv KiBubyBzaG9ydCBvcHQgKi8KLSAgTUFLRURFUF9PUFRJT04sICAgICAgICAgICAgICAgICAgICAg ICAvKiBubyBzaG9ydCBvcHQgKi8KLSAgTUFLRURFUF9UQVJHRVRfT1BUSU9OLCAgICAgICAgICAg ICAgICAvKiBubyBzaG9ydCBvcHQgKi8KKyAgTUFLRURFUF9PUFRJT04sICAgICAgICAgICAgICAg Lyogbm8gc2hvcnQgb3B0ICovCisgIE1BS0VERVBfVEFSR0VUX09QVElPTiwgICAgICAgIC8qIG5v IHNob3J0IG9wdCAqLwogICBNQUtFREVQX0dFTl9NSVNTSU5HX0FSR0ZJTEVTX09QVElPTiwgIC8q IG5vIHNob3J0IG9wdCAqLwogICBNQUtFREVQX0dFTl9NSVNTSU5HX0lOQ0xVREVfT1BUSU9OLCAg IC8qIG5vIHNob3J0IG9wdCAqLwogICBNQUtFREVQX0dFTl9NSVNTSU5HX1NJTkNMVURFX09QVElP TiwgIC8qIG5vIHNob3J0IG9wdCAqLwogICBNQUtFREVQX0dFTl9NSVNTSU5HX0FMTF9PUFRJT04s ICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwogICBNQUtFREVQX1BIT05ZX0FSR0ZJTEVTX09QVElP TiwgICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwotICBNQUtFREVQX1BIT05ZX0lOQ0xVREVfT1BU SU9OLCAgICAgICAgIC8qIG5vIHNob3J0IG9wdCAqLworICBNQUtFREVQX1BIT05ZX0lOQ0xVREVf T1BUSU9OLCAvKiBubyBzaG9ydCBvcHQgKi8KICAgTUFLRURFUF9QSE9OWV9TSU5DTFVERV9PUFRJ T04sICAgICAgICAvKiBubyBzaG9ydCBvcHQgKi8KLSAgTUFLRURFUF9QSE9OWV9BTExfT1BUSU9O LCAgICAgICAgICAgICAvKiBubyBzaG9ydCBvcHQgKi8KKyAgTUFLRURFUF9QSE9OWV9BTExfT1BU SU9OLCAgICAgLyogbm8gc2hvcnQgb3B0ICovCisgIFdBUk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9O LCAgIC8qIG5vIHNob3J0IG9wdCAqLwoKICAgSEVMUF9PUFRJT04sICAgICAgICAgICAgICAgICAg Lyogbm8gc2hvcnQgb3B0ICovCiAgIFZFUlNJT05fT1BUSU9OICAgICAgICAgICAgICAgIC8qIG5v IHNob3J0IG9wdCAqLwpAQCAtNDI0LDE2ICs0MjQsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBv cHRpb24gbG9uZ19vcHRpb25zW10gPSB7CiAgIHsibWFrZWRlcCIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCBNQUtFREVQX09QVElPTn0sCiAgIHsibWFrZWRlcC10YXJnZXQiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgTUFLRURFUF9UQVJHRVRfT1BUSU9OfSwKICAgeyJtYWtlZGVwLWdlbi1t aXNzaW5nLWFyZ2ZpbGVzIiwgbm9fYXJndW1lbnQsIE5VTEwsCi0gICAgIE1BS0VERVBfR0VOX01J U1NJTkdfQVJHRklMRVNfT1BUSU9OfSwKKyAgIE1BS0VERVBfR0VOX01JU1NJTkdfQVJHRklMRVNf T1BUSU9OfSwKICAgeyJtYWtlZGVwLWdlbi1taXNzaW5nLWluY2x1ZGUiLCBub19hcmd1bWVudCwg TlVMTCwKLSAgICAgTUFLRURFUF9HRU5fTUlTU0lOR19JTkNMVURFX09QVElPTn0sCisgICBNQUtF REVQX0dFTl9NSVNTSU5HX0lOQ0xVREVfT1BUSU9OfSwKICAgeyJtYWtlZGVwLWdlbi1taXNzaW5n LXNpbmNsdWRlIiwgbm9fYXJndW1lbnQsIE5VTEwsCi0gICAgIE1BS0VERVBfR0VOX01JU1NJTkdf U0lOQ0xVREVfT1BUSU9OfSwKKyAgIE1BS0VERVBfR0VOX01JU1NJTkdfU0lOQ0xVREVfT1BUSU9O fSwKICAgeyJtYWtlZGVwLWdlbi1taXNzaW5nLWFsbCIsIG5vX2FyZ3VtZW50LCBOVUxMLAotICAg ICBNQUtFREVQX0dFTl9NSVNTSU5HX0FMTF9PUFRJT059LAotICB7Im1ha2VkZXAtcGhvbnktYXJn ZmlsZXMiLCBub19hcmd1bWVudCwgTlVMTCwgTUFLRURFUF9QSE9OWV9BUkdGSUxFU19PUFRJT059 LAorICAgTUFLRURFUF9HRU5fTUlTU0lOR19BTExfT1BUSU9OfSwKKyAgeyJtYWtlZGVwLXBob255 LWFyZ2ZpbGVzIiwgbm9fYXJndW1lbnQsIE5VTEwsCisgICBNQUtFREVQX1BIT05ZX0FSR0ZJTEVT X09QVElPTn0sCiAgIHsibWFrZWRlcC1waG9ueS1pbmNsdWRlIiwgbm9fYXJndW1lbnQsIE5VTEws IE1BS0VERVBfUEhPTllfSU5DTFVERV9PUFRJT059LAotICB7Im1ha2VkZXAtcGhvbnktc2luY2x1 ZGUiLCBub19hcmd1bWVudCwgTlVMTCwgTUFLRURFUF9QSE9OWV9TSU5DTFVERV9PUFRJT059LAor ICB7Im1ha2VkZXAtcGhvbnktc2luY2x1ZGUiLCBub19hcmd1bWVudCwgTlVMTCwKKyAgIE1BS0VE RVBfUEhPTllfU0lOQ0xVREVfT1BUSU9OfSwKICAgeyJtYWtlZGVwLXBob255LWFsbCIsIG5vX2Fy Z3VtZW50LCBOVUxMLCBNQUtFREVQX1BIT05ZX0FMTF9PUFRJT059LAoKICAgeyJoZWxwIiwgbm9f YXJndW1lbnQsIE5VTEwsIEhFTFBfT1BUSU9OfSwKQEAgLTcxNiw3ICs3MTgsNyBAQCBtYWluIChp bnQgYXJnYywgY2hhciAqY29uc3QgKmFyZ3YsIGNoYXIgKmNvbnN0ICplbnZwIE1BWUJFX1VOVVNF RCkKICAgICAgICAgICAgKHdoaWNoIGRpc2FibGVzIHRoZXNlIHdhcm5pbmdzKS4gICovCiAgICAg ICAgIG1hY3JvX3NlcXVlbmNlID0gb3B0YXJnOwogICAgICAgICBicmVhazsKLSAKKwogICAgICAg Y2FzZSBNQUtFREVQX09QVElPTjoKICAgICAgICAgaWYgKG1ha2VkZXBfcGF0aCAhPSBOVUxMKQog ICAgICAgICAgIHVzYWdlIChFWElUX0ZBSUxVUkUpOwpAQCAtNzg0LDEwICs3ODYsMTIgQEAgbWFp biAoaW50IGFyZ2MsIGNoYXIgKmNvbnN0ICphcmd2LCBjaGFyICpjb25zdCAqZW52cCBNQVlCRV9V TlVTRUQpCiAgICAgICAvKiBNYWtlZGVwIG1vZGUgaXMgTk9UIGFjdGl2ZS4gKi8KICAgICAgIGlm IChtYWtlZGVwX2dlbl9taXNzaW5nICE9IDApCiAgICAgICAgIG00X2Vycm9yICgwLCAwLCBOVUxM LAotICAgICAgICAgICAgICAgICAgXygiLS1tYWtlZGVwLWdlbi1taXNzaW5nLSogcmVxdWlyZXMg LS1tYWtlZGVwIGFuZCAtLW1ha2VkZXAtdGFyZ2V0IikpOworICAgICAgICAgICAgICAgICAgXygi LS1tYWtlZGVwLWdlbi1taXNzaW5nLSogcmVxdWlyZXMgLS1tYWtlZGVwIGFuZCAiCisgICAgICAg ICAgICAgICAgICAgICItLW1ha2VkZXAtdGFyZ2V0IikpOwogICAgICAgaWYgKG1ha2VkZXBfcGhv bnkgIT0gMCkKICAgICAgICAgbTRfZXJyb3IgKDAsIDAsIE5VTEwsCi0gICAgICAgICAgICAgICAg ICBfKCItLW1ha2VkZXAtcGhvbnktKiByZXF1aXJlcyAtLW1ha2VkZXAgYW5kIC0tbWFrZWRlcC10 YXJnZXQiKSk7CisgICAgICAgICAgICAgICAgICBfKCItLW1ha2VkZXAtcGhvbnktKiByZXF1aXJl cyAtLW1ha2VkZXAgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgIi0tbWFrZWRlcC10YXJnZXQi KSk7CiAgICAgICBpZiAoKG1ha2VkZXBfZ2VuX21pc3NpbmcgfCBtYWtlZGVwX3Bob255KSAhPSAw KQogICAgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOwogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9t NC5oIGIvc3JjL200LmgKaW5kZXggZDJkNWMzZjYuLjVlYjAyOTYyIDEwMDY0NAotLS0gYS9zcmMv bTQuaAorKysgYi9zcmMvbTQuaApAQCAtOTQsNyArOTQsNyBAQAogIyB1bmRlZiBiaW5kdGV4dGRv bWFpbgogIyBkZWZpbmUgYmluZHRleHRkb21haW4oRG9tYWlubmFtZSwgRGlybmFtZSkgICAgLyog ZW1wdHkgKi8KICNlbmRpZgotZXh0ZXJuIGludCBtYWtlZGVwX2dlbl9taXNzaW5nOyAgICAgICAg IC8qIC0tbWFrZWRlcC1nZW4tbWlzc2luZy0qICovCitleHRlcm4gaW50IG1ha2VkZXBfZ2VuX21p c3Npbmc7IC8qIC0tbWFrZWRlcC1nZW4tbWlzc2luZy0qICovCgogLyogQml0IG1hc2tzIGluZGlj YXRpbmcgcGxhY2VzIGEgZmlsZSBpcyByZWZlcmVuY2VkIGZyb20uICovCiAjZGVmaW5lIFJFRl9D TURfTElORSAgICAweDAxICAgIC8qIEZpbGUgcmVmZXJlbmNlZCBmcm9tIGNvbW1hbmQgbGluZSAq LwpkaWZmIC0tZ2l0IGEvc3JjL3BhdGguYyBiL3NyYy9wYXRoLmMKaW5kZXggOTNiZDA4ZDIuLjRk YWI0YmQxIDEwMDY0NAotLS0gYS9zcmMvcGF0aC5jCisrKyBiL3NyYy9wYXRoLmMKQEAgLTM2LDcg KzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgaW5jbHVkZXMgaW5jbHVkZXM7CiBzdGF0aWMgaW5jbHVk ZXMgKmRpcl9saXN0OyAgICAgIC8qIHRoZSBsaXN0IG9mIHBhdGggZGlyZWN0b3JpZXMgKi8KIHN0 YXRpYyBpbmNsdWRlcyAqZGlyX2xpc3RfZW5kOyAgLyogdGhlIGVuZCBvZiBzYW1lICovCiBzdGF0 aWMgaW50IGRpcl9tYXhfbGVuZ3RoOyAgICAgIC8qIGxlbmd0aCBvZiBsb25nZXN0IGRpcmVjdG9y eSBuYW1lICovCi0gCisKIHN0cnVjdCBkZXBlbmRlbmN5CiB7CiAgIHN0cnVjdCBkZXBlbmRlbmN5 ICpuZXh0OyAgICAgIC8qIG5leHQgaW4gbGlzdCBvZiBkZXBlbmRlbmNpZXMgKi8KQEAgLTIxMSw3 ICsyMTEsNyBAQCByZWNvcmRfZGVwZW5kZW5jeSAoY29uc3QgY2hhciAqcGF0aCwgaW50IHJlZl9m cm9tKQogewogICBkZXBlbmRlbmN5ICpkcDsKICAgZm9yIChkcCA9IGRlcGVuZGVuY3lfbGlzdDsg ZHAgIT0gTlVMTDsgZHAgPSBkcC0+bmV4dCkKLSAgICBpZiAoc3RyY21wIChwYXRoLCBkcC0+cGF0 aCkgPT0gMCkKKyAgICBpZiAoU1RSRVEgKHBhdGgsIGRwLT5wYXRoKSkKICAgICAgIHsKICAgICAg ICAgLyogUmVtZW1iZXIgYWxsIHRoZSBwbGFjZXMgdGhpcyBmaWxlIGhhcyBiZWVuIHJlZmVyZW5j ZWQgZnJvbS4gKi8KICAgICAgICAgZHAtPnJlZl9mcm9tIHw9IHJlZl9mcm9tOwpAQCAtMjU1LDE1 ICsyNTUsMTUgQEAgZ2VuZXJhdGVfbWFrZV9kZXBlbmRlbmNpZXMgKGNvbnN0IGNoYXIgKnBhdGgs IGNvbnN0IGNoYXIgKnRhcmdldCwgaW50IHBob255KQogICBmb3IgKGRwID0gZGVwZW5kZW5jeV9s aXN0OyBkcCAhPSBOVUxMOyBkcCA9IGRwLT5uZXh0KQogICAgIHsKICAgICAgIGxlbiA9IDEgKyBz dHJsZW4gKGRwLT5wYXRoKTsKLSAgICAgIGlmIChjb2wgKyBsZW4gKyAyID4gbWF4Y29sKSAvKiAr MiBpcyBmb3IgdHJhaWxpbmcgc3BhY2UvYmFja3NsYXNoICovCisgICAgICBpZiAoY29sICsgbGVu ICsgMiA+IG1heGNvbCkgICAgICAgLyogKzIgZm9yIHRyYWlsaW5nIHNwYWNlL2JhY2tzbGFzaCAq LwogICAgICAgICB7Ci0gICAgICAgICAgZnByaW50ZiAoZnAsIiBcXFxuICIpOworICAgICAgICAg IGZwdXRzICgiIFxcXG4gIiwgZnApOwogICAgICAgICAgIGNvbCA9IDE7CiAgICAgICAgIH0KICAg ICAgIGZwcmludGYgKGZwLCAiICVzIiwgZHAtPnBhdGgpOwogICAgICAgY29sICs9IGxlbjsKICAg ICB9Ci0gIGZwcmludGYgKGZwLCAiXG4iKTsKKyAgZnB1dGMgKCdcbicsIGZwKTsKCiAgIC8qIEdl bmVyYXRlIHBob255IHRhcmdldHMgZm9yIHVzZXItc3BlY2lmaWVkIHN1YnNldCBvZiBkZXBlbmRl bmNpZXMuICovCiAgIGlmIChwaG9ueSAhPSAwKQotLSAKMi40OS4wCgoKLS0gCkVyaWMgQmxha2Us IFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlcgpSZWQgSGF0LCBJbmMuClZpcnR1YWxpemF0aW9u OiAgcWVtdS5vcmcgfCBsaWJndWVzdGZzLm9yZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNoZXNA Z251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRjaGVz Cg==