ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0IGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKaW5kZXggNzJhYjNlMy4uOTQ4M2YwZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEZlYiAyOAorKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDAxMiw4ICs0MDEyLDggQEAKIAlzcGVjaWZpZWQgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgKGUuZy4sIFVURi04KSwgYnV0IG9ubHkgdGhlIGxvd2VyCiAJOCBiaXRzIG9mIGVhY2ggY2hhcmFjdGVyIHdpbGwgYmUgdXNlZC4KIAotCUV4YW1wbGUgKGZvciBHcmVlayk6CQkJCQkqZ3JlZWsqICA+Ci0JICAgIDpzZXQgbGFuZ21hcD3BQSzCQizYQyzERCzFRSzWRizDRyzHSCzJSSzOSizKSyzLTCzMTSzNTizPTyzQUCxRUSzRUizTUyzUVCzIVSzZVixXVyzXWCzVWSzGWizhYSziYiz4YyzkZCzlZSz2ZizjZyznaCzpaSzuaizqayzrbCzsbSztbizvbyzwcCxxcSzxcizzcyz0dCzodSz5dizydyz3eCz1eSzmegorCUV4YW1wbGUgKGZvciBHcmVlaywgaW4gVVRGLTgpOgkJCQkqZ3JlZWsqICA+CisJICAgIDpzZXQgbGFuZ21hcD3OkUEszpJCLM6oQyzOlEQszpVFLM6mRizOk0cszpdILM6ZSSzOnkoszppLLM6bTCzOnE0szp1OLM6fTyzOoFAsUVEszqFSLM6jUyzOpFQszphVLM6pVixXVyzOp1gszqVZLM6WWizOsWEszrJiLM+IYyzOtGQszrVlLM+GZizOs2cszrdoLM65aSzOvmoszrprLM67bCzOvG0szr1uLM6/byzPgHAscXEsz4FyLM+DcyzPhHQszrh1LM+JdizPgncsz4d4LM+FeSzOtnoKIDwJRXhhbXBsZSAoZXhjaGFuZ2VzIG1lYW5pbmcgb2YgeiBhbmQgeSBmb3IgY29tbWFuZHMpOiA+CiAJICAgIDpzZXQgbGFuZ21hcD16eSx5eixaWSxZWgogPApAQCAtNTY5MSw3ICs1NjkxLDkgQEAKIAlUaGUgJ21hdGNocGFpcnMnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXJzIHRvIHNob3cKIAltYXRjaGVzIGZvci4gICdyaWdodGxlZnQnIGFuZCAncmV2aW5zJyBhcmUgdXNlZCB0byBsb29rIGZvciBvcHBvc2l0ZQogCW1hdGNoZXMuCi0JTm90ZTogRm9yIHRoZSB1c2Ugb2YgdGhlIHNob3J0IGZvcm0gcGFyZW50YWwgZ3VpZGFuY2UgaXMgYWR2aXNlZC4KKwlBbHNvIHNlZSB0aGUgbWF0Y2hwYXJlbiBwbHVnaW4gZm9yIGhpZ2hsaWdodGluZyB0aGUgbWF0Y2ggd2hlbiBtb3ZpbmcKKwlhcm91bmQgfHBpX3BhcmVuLnR4dHwuCisJTm90ZTogVXNlIG9mIHRoZSBzaG9ydCBmb3JtIGlzIHJhdGVkIFBHLgogCiAJCQkJIConc2hvd21vZGUnKiAqJ3NtZCcqIConbm9zaG93bW9kZScqIConbm9zbWQnKgogJ3Nob3dtb2RlJyAnc21kJwlib29sZWFuCShWaW0gZGVmYXVsdDogb24sIFZpIGRlZmF1bHQ6IG9mZikKQEAgLTYyOTEsNyArNjI5Myw3IEBACiAJJ1MnIGZsYWcgaW4gJ2Nwb3B0aW9ucycuCiAJT25seSBub3JtYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQsICIvXCo/W3w8PiIgYXJlIGlsbGVnYWwuCiAKLQkJCQkJKid0YWJsaW5lJyogKid0YWwnKgorCQkJCQkJKid0YWJsaW5lJyogKid0YWwnKgogJ3RhYmxpbmUnICd0YWwnCQlzdHJpbmcJKGRlZmF1bHQgZW1wdHkpCiAJCQlnbG9iYWwKIAkJCXtub3QgaW4gVml9CkBAIC02MzE1LDcgKzYzMTcsMTcgQEAKIAlhcmUgaW52aXNpYmxlIGFuZCB5b3UgY2FuJ3QganVtcCB0byB0aGVpciB3aW5kb3dzLgogCiAKLQkJCQkJKid0YWJzdG9wJyogKid0cycqCisJCQkJCQkqJ3RhYnBhZ2VtYXgnKiAqJ3RwbScqCisndGFicGFnZW1heCcgJ3RwbScJbnVtYmVyCShkZWZhdWx0IDEwKQorCQkJZ2xvYmFsCisJCQl7bm90IGluIFZpfQorCQkJe25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSArd2luZG93cworCQkJZmVhdHVyZX0KKwlNYXhpbXVtIG51bWJlciBvZiB0YWIgcGFnZXMgdG8gYmUgb3BlbmVkIGJ5IHRoZSB8LXB8IGNvbW1hbmQgbGluZQorCWFyZ3VtZW50IG9yIHRoZSAiOnRhYiBhbGwiIGNvbW1hbmQuIHx0YWJwYWdlfAorCisKKwkJCQkJCSondGFic3RvcCcqICondHMnKgogJ3RhYnN0b3AnICd0cycJCW51bWJlcgkoZGVmYXVsdCA4KQogCQkJbG9jYWwgdG8gYnVmZmVyCiAJTnVtYmVyIG9mIHNwYWNlcyB0aGF0IGEgPFRhYj4gaW4gdGhlIGZpbGUgY291bnRzIGZvci4gIEFsc28gc2VlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dCBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CmluZGV4IDJhMTk5MDkuLjExYTk4OGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CkBAIC0xLDQgKzEsNCBAQAotKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEZlYiAxNAorKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTE5MSwxNCArMTE5MSwyMyBAQAogPAkJSW5zdGVhZCBvZiAvLyBhbnkgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIG1hcmsgdGhlIHN0YXJ0IGFuZAogCQllbmQgb2YgdGhlIHtwYXR0ZXJufS4gIFdhdGNoIG91dCBmb3IgdXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzLAogCQlzdWNoIGFzICciJyBhbmQgJ3wnLgorCiAJCXtncm91cH0gbXVzdCBleGlzdCBhdCB0aGUgbW9tZW50IHRoaXMgY29tbWFuZCBpcyBleGVjdXRlZC4KLQkJVGhlIG1hdGNoIG92ZXJyaWRlcyB0aGUgJ2hsc2VhcmNoJyBoaWdobGlnaHRpbmcuCi0JCSdpZ25vcmVjYXNlJyBkb2VzIG5vdCBhcHBseSwgdXNlIHwvXGN8IGluIHRoZSBwYXR0ZXJuIHRvCi0JCWlnbm9yZSBjYXNlLiAgT3RoZXJ3aXNlIGNhc2UgaXMgbm90IGlnbm9yZWQuCisKKwkJVGhlIHtncm91cH0gaGlnaGxpZ2h0aW5nIHN0aWxsIGFwcGxpZXMgd2hlbiBhIGNoYXJhY3RlciBpcworCQl0byBiZSBoaWdobGlnaHRlZCBmb3IgJ2hsc2VhcmNoJy4KKwogCQlOb3RlIHRoYXQgaGlnaGxpZ2h0aW5nIHRoZSBsYXN0IHVzZWQgc2VhcmNoIHBhdHRlcm4gd2l0aAogCQknaGxzZWFyY2gnIGlzIHVzZWQgaW4gYWxsIHdpbmRvd3MsIHdoaWxlIHRoZSBwYXR0ZXJuIGRlZmluZWQKIAkJd2l0aCAiOm1hdGNoIiBvbmx5IGV4aXN0cyBpbiB0aGUgY3VycmVudCB3aW5kb3cuICBJdCBpcyBrZXB0CiAJCXdoZW4gc3dpdGNoaW5nIHRvIGFub3RoZXIgYnVmZmVyLgorCisJCVRoZSB8bWF0Y2hwYXJlbnwgcGx1Z2luIHVzZXMgbWF0Y2ggaGlnaGxpZ2h0aW5nLCB0aHVzIHdpbGwKKwkJZGlzYWJsZSB5b3VyICI6bWF0Y2giIGNvbW1hbmQgYXMgc29vbiBhcyB5b3UgbW92ZSB0byBhIHBhcmVuLgorCisJCSdpZ25vcmVjYXNlJyBkb2VzIG5vdCBhcHBseSwgdXNlIHwvXGN8IGluIHRoZSBwYXR0ZXJuIHRvCisJCWlnbm9yZSBjYXNlLiAgT3RoZXJ3aXNlIGNhc2UgaXMgbm90IGlnbm9yZWQuCisKIAkJQW5vdGhlciBleGFtcGxlLCB3aGljaCBoaWdobGlnaHRzIGFsbCBjaGFyYWN0ZXJzIGluIHZpcnR1YWwKIAkJY29sdW1uIDcyIGFuZCBtb3JlOiA+CiAJCQk6aGlnaGxpZ2h0IHJpZ2h0TWFyZ2luIHRlcm09Ym9sZCBjdGVybWZnPWJsdWUgZ3VpZmc9Ymx1ZQpAQCAtMTIxMyw0ICsxMjIyLDIwIEBACiA6bWF0W2NoXSBub25lCiAJCUNsZWFyIGEgcHJldmlvdXNseSBkZWZpbmVkIG1hdGNoIHBhdHRlcm4uCiAKKworOjJtYXRbY2hdIHtncm91cH0gL3twYXR0ZXJufS8KKzoybWF0W2NoXQorOjJtYXRbY2hdIG5vbmUKKzozbWF0W2NoXSB7Z3JvdXB9IC97cGF0dGVybn0vCis6M21hdFtjaF0KKzozbWF0W2NoXSBub25lCisJCUp1c3QgbGlrZSB8Om1hdGNofCBhYm92ZSwgYnV0IHNldCBhIHNlcGFyYXRlIG1hdGNoLiAgVGh1cworCQl0aGVyZSBjYW4gYmUgdGhyZWUgbWF0Y2hlcyBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZS4gIFRoZSBtYXRjaAorCQl3aXRoIHRoZSBsb3dlc3QgbnVtYmVyIGhhcyBwcmlvcml0eSBpZiBzZXZlcmFsIG1hdGNoIGF0IHRoZQorCQlzYW1lIHBvc2l0aW9uLgorCQlUaGUgIjozbWF0Y2giIGNvbW1hbmQgaXMgdXNlZCBieSB0aGUgfG1hdGNocGFyZW58IHBsdWdpbi4gIFlvdQorCQlhcmUgc3VnZ2VzdGVkIHRvIHVzZSAiOm1hdGNoIiBmb3IgbWFudWFsIG1hdGNoaW5nIGFuZAorCQkiOjJtYXRjaCIgZm9yIGFub3RoZXIgcGx1Z2luLgorCisKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQgYi9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQKaW5kZXggZDE3MzNjNi4uYjhjZjRkYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfcGFyZW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3BhcmVuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9wYXJlbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgRmViIDI3CisqcGlfcGFyZW4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjMsMTAgKzIzLDEwIEBACiAKIAk6RG9NYXRjaFBhcmVuCiAKLVRoZSBoaWdobGlnaHRpbmcgdXNlZCBpcyBQYXJlbk1hdGNoLiAgWW91IGNhbiBzcGVjaWZ5IGRpZmZlcmVudCBjb2xvcnMgd2l0aAorVGhlIGhpZ2hsaWdodGluZyB1c2VkIGlzIE1hdGNoUGFyZW4uICBZb3UgY2FuIHNwZWNpZnkgZGlmZmVyZW50IGNvbG9ycyB3aXRoCiB0aGUgIjpoaWdobGlnaHQiIGNvbW1hbmQuICBFeGFtcGxlOiA+CiAKLQk6aGkgUGFyZW5NYXRjaCBjdGVybWJnPWJsdWUgZ3VpYmc9bGlnaHRibHVlCisJOmhpIE1hdGNoUGFyZW4gY3Rlcm1iZz1ibHVlIGd1aWJnPWxpZ2h0Ymx1ZQogCiBUaGUgY2hhcmFjdGVycyB0byBiZSBtYXRjaGVkIGNvbWUgZnJvbSB0aGUgJ21hdGNocGFpcnMnIG9wdGlvbi4gIFlvdSBjYW4KIGNoYW5nZSB0aGUgdmFsdWUgdG8gaGlnaGxpZ2h0IGRpZmZlcmVudCBtYXRjaGVzLiAgTm90ZSB0aGF0IG5vdCBldmVyeXRoaW5nIGlzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zcGVsbC50eHQgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKaW5kZXggNDNkNmZlMy4uZGMwZGVkMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3BlbGwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEZlYiAwMQorKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEyNTQsNDUgKzEyNTQsNiBAQAogVmltIHdpbGwgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hlcmUgb25lIHdvcmQgZW5kcyBhbmQgYSBuZXh0IHN0YXJ0cy4gIFdoZW4gdGhlcmUKIGFyZSBzcGVsbGluZyBtaXN0YWtlcyB0aGlzIG1heSBub3QgYmUgcXVpdGUgcmlnaHQuCiAKLT4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj48PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8Ci1OT1RFOiBUaGUgZm9sbG93aW5nIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCB5ZXQsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIHdvcmQKLWxpc3RzIHRoYXQgc3VwcG9ydCB0aGlzLgotPiAJCQkJCQkJKnNwZWxsLUNNUCoKLT4gU29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBjaGFuZ2UgYSB3b3JkIHdoZW4gY29uY2F0ZW5hdGluZyBpdCB0byBhbm90aGVyLAotPiBieSByZW1vdmluZyBhIGZldyBsZXR0ZXJzLCBpbnNlcnRpbmcgc29tZXRoaW5nIG9yIGJvdGguICBJdCBjYW4gYWxzbyBiZSB1c2VmdWwKLT4gdG8gcmVzdHJpY3QgY29uY2F0ZW5hdGlvbiB0byB3b3JkcyB0aGF0IG1hdGNoIGEgcGF0dGVybi4gIEZvciB0aGlzIHB1cnBvc2UgQ01QCi0+IGl0ZW1zIGNhbiBiZSB1c2VkLiAgVGhleSBsb29rIGxpa2UgdGhpczoKLT4gCUNNUCB7ZmxhZ30ge2ZsYWdzfSB7c3RyaXB9IHtzdHJpcDJ9IHthZGR9IHtjb25kfSB7Y29uZDJ9Ci0+IAotPiAJe2ZsYWd9CQl0aGUgZmxhZywgYXMgdXNlZCBpbiBDT01QT1VOREZMQUdTIGZvciB0aGUgbGVhZCB3b3JkCi0+IAl7ZmxhZ3N9CQlhY2NlcHRlZCBmbGFncyBmb3IgdGhlIGZvbGxvd2luZyB3b3JkICgnLicgdG8gYWNjZXB0Ci0+IAkJCWFsbCkKLT4gCXtzdHJpcH0JCXRleHQgdG8gcmVtb3ZlIGZyb20gdGhlIGVuZCBvZiB0aGUgbGVhZCB3b3JkICh6ZXJvCi0+IAkJCWZvciBubyBzdHJpcHBpbmcpCi0+IAl7c3RyaXAyfQl0ZXh0IHRvIHJlbW92ZSBmcm9tIHRoZSBzdGFydCBvZiB0aGUgZm9sbG93aW5nIHdvcmQKLT4gCQkJKHplcm8gZm9yIG5vIHN0cmlwcGluZykKLT4gCXthZGR9CQl0ZXh0IHRvIGluc2VydCBiZXR3ZWVuIHRoZSB3b3JkcyAoemVybyBmb3Igbm8KLT4gCQkJYWRkaXRpb24pCi0+IAl7Y29uZH0JCWNvbmRpdGlvbiB0byBtYXRjaCBhdCB0aGUgZW5kIG9mIHRoZSBsZWFkIHdvcmQKLT4gCXtjb25kMn0JCWNvbmRpdGlvbiB0byBtYXRjaCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZvbGxvd2luZyB3b3JkCi0+IAotPiBUaGlzIGlzIHRoZSBzYW1lIGFzIHdoYXQgaXMgdXNlZCBmb3IgU0ZYIGFuZCBQRlggaXRlbXMsIHdpdGggdGhlIGV4dHJhIHtmbGFnc30KLT4gYW5kIHtjb25kMn0gZmllbGRzLiAgRXhhbXBsZToKLT4gCUNNUCBmIG1ydCAwIC0gLiAuIH4KLT4gCi0+IFdoZW4gdXNlZCB3aXRoIHRoZSBmb29kIGFuZCBkaXNoIHdvcmQgbGlzdCBhYm92ZSwgdGhpcyBtZWFucyB0aGF0IGEgZGFzaCBpcwotPiBpbnNlcnRlZCBhZnRlciBlYWNoIGZvb2QgaXRlbS4gIFRodXMgeW91IGdldCAib25pb24tc291cCIgYW5kCi0+ICJvbmlvbi10b21hdG8tc2FsYXQiLgotPiAKLT4gV2hlbiB0aGVyZSBhcmUgQ01QIGl0ZW1zIGZvciBhIGNvbXBvdW5kIGZsYWcgdGhlIGNvbmNhdGVuYXRpb24gaXMgb25seSBkb25lCi0+IHdoZW4gYSBDTVAgaXRlbSBtYXRjaGVzLgotPiAKLT4gV2hlbiB0aGVyZSBhcmUgbm8gQ01QIGl0ZW1zIGZvciBhIGNvbXBvdW5kIGZsYWcsIHRoZW4gYWxsIHdvcmRzIHdpbGwgYmUKLT4gY29uY2F0ZW5hdGVkLCBhcyBpZiB0aGVyZSB3YXMgYW4gaXRlbToKLT4gCUNNUCB7ZmxhZ30gLiAwIDAgLiAuCi0+Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PAotCiAKIAkJCQkJCQkqc3BlbGwtQ09NTU9OKgogQ29tbW9uIHdvcmRzIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgQ09NTU9OIGl0ZW0uICBUaGlzIHdpbGwgZ2l2ZSBiZXR0ZXIKQEAgLTEzMDUsNyArMTI2Niw5IEBACiBmb3IgYWxsIHJlZ2lvbnMgYXJlIGNvbWJpbmVkIGFuZCB1c2VkIGZvciBhbGwgcmVnaW9ucy4KIAogCQkJCQkJCSpzcGVsbC1OT1NQTElUU1VHUyoKLVRoaXMgaXRlbSBpbmRpY2F0ZXMgdGhhdCBzdWdnZXN0aW9ucyBmb3Igc3BsaXR0aW5nIGEgd29yZCB3aWxsIG5vdCBhcHBlYXI6CitUaGlzIGl0ZW0gaW5kaWNhdGVzIHRoYXQgc3BsaXR0aW5nIGEgd29yZCB0byBtYWtlIHN1Z2dlc3Rpb25zIGlzIG5vdCBhIGdvb2QKK2lkZWEuICBTcGxpdC13b3JkIHN1Z2dlc3Rpb25zIHdpbGwgYXBwZWFyIG9ubHkgd2hlbiB0aGVyZSBhcmUgZmV3IHNpbWlsYXIKK3dvcmRzLgogCiAJTk9TUExJVFNVR1MgfgogCkBAIC0xMzE1LDggKzEyNzgsNiBAQAogCiAJTk9TVUdHRVNUICUgfgogCi1OT1QgSU1QTEVNRU5URUQgWUVULgotCiAKIFJFUExBQ0VNRU5UUwkJCQkJCSpzcGVsbC1SRVAqCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dAppbmRleCAwYjY0Y2EzLi5iMzY4MzdmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zdGFydGluZy50eHQKKysrIGIvcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEZlYiAxOAorKnN0YXJ0aW5nLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzc2LDkgKzM3NiwxMCBAQAogCiAJCQkJCQkJKi1wKgogLXBbTl0JCU9wZW4gTiB0YWIgcGFnZXMuICBJZiBbTl0gaXMgbm90IGdpdmVuLCBvbmUgdGFiIHBhZ2UgaXMgb3BlbmVkCi0JCWZvciBldmVyeSBmaWxlIGdpdmVuIGFzIGFyZ3VtZW50LiAgVGhlIG1heGltdW0gaXMgMTAgdGFiCi0JCXBhZ2VzLiAgSWYgdGhlcmUgYXJlIG1vcmUgdGFiIHBhZ2VzIHRoYW4gYXJndW1lbnRzLCB0aGUgbGFzdAotCQlmZXcgdGFiIHBhZ2VzIHdpbGwgYmUgZWRpdGluZyBhbiBlbXB0eSBmaWxlLgorCQlmb3IgZXZlcnkgZmlsZSBnaXZlbiBhcyBhcmd1bWVudC4gIFRoZSBtYXhpbXVtIGlzIHNldCB3aXRoCisJCSd0YWJwYWdlbWF4JyBwYWdlcyAoZGVmYXVsdCAxMCkuICBJZiB0aGVyZSBhcmUgbW9yZSB0YWIgcGFnZXMKKwkJdGhhbiBhcmd1bWVudHMsIHRoZSBsYXN0IGZldyB0YWIgcGFnZXMgd2lsbCBiZSBlZGl0aW5nIGFuCisJCWVtcHR5IGZpbGUuCiAJCXtub3QgaW4gVml9CiAKIAkJCQkJCQkqLVQqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zeW50YXgudHh0IGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dAppbmRleCBkODM5ZTI1Li5hN2IyNTMwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zeW50YXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgRmViIDIwCisqc3ludGF4LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTM5NjgsOCArMzk2OCwxMiBAQAogSW5jU2VhcmNoCSdpbmNzZWFyY2gnIGhpZ2hsaWdodGluZzsgYWxzbyB1c2VkIGZvciB0aGUgdGV4dCByZXBsYWNlZCB3aXRoCiAJCSI6cy8vL2MiCiAJCQkJCQkJKmhsLUxpbmVOcioKLUxpbmVOcgkJbGluZSBudW1iZXIgZm9yICI6bnVtYmVyIiBhbmQgIjojIiBjb21tYW5kcywgYW5kIHdoZW4gJ251bWJlcicKK0xpbmVOcgkJTGluZSBudW1iZXIgZm9yICI6bnVtYmVyIiBhbmQgIjojIiBjb21tYW5kcywgYW5kIHdoZW4gJ251bWJlcicKIAkJb3B0aW9uIGlzIHNldC4KKwkJCQkJCQkqaGwtTWF0Y2hQYXJlbioKK01hdGNoUGFyZW4JVGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIG9yIGp1c3QgYmVmb3JlIGl0LCBpZiBpdAorCQlpcyBhIHBhaXJlZCBicmFja2V0LCBhbmQgaXRzIG1hdGNoLiB8cGlfcGFyZW4udHh0fAorCiAJCQkJCQkJKmhsLU1vZGVNc2cqCiBNb2RlTXNnCQknc2hvd21vZGUnIG1lc3NhZ2UgKGUuZy4sICItLSBJTlNFUlQgLS0iKQogCQkJCQkJCSpobC1Nb3JlTXNnKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggNTlmMjQwNy4uM2Y4ZGY4YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC04OTcsNiArODk3LDcgQEAKICd0X3hzJwl0ZXJtLnR4dAkvKid0X3hzJyoKICd0YScJb3B0aW9ucy50eHQJLyondGEnKgogJ3RhYmxpbmUnCW9wdGlvbnMudHh0CS8qJ3RhYmxpbmUnKgorJ3RhYnBhZ2VtYXgnCW9wdGlvbnMudHh0CS8qJ3RhYnBhZ2VtYXgnKgogJ3RhYnN0b3AnCW9wdGlvbnMudHh0CS8qJ3RhYnN0b3AnKgogJ3RhZycJb3B0aW9ucy50eHQJLyondGFnJyoKICd0YWdic2VhcmNoJwlvcHRpb25zLnR4dAkvKid0YWdic2VhcmNoJyoKQEAgLTkzNCw2ICs5MzUsNyBAQAogJ3Rvb2xiYXInCW9wdGlvbnMudHh0CS8qJ3Rvb2xiYXInKgogJ3Rvb2xiYXJpY29uc2l6ZScJb3B0aW9ucy50eHQJLyondG9vbGJhcmljb25zaXplJyoKICd0b3AnCW9wdGlvbnMudHh0CS8qJ3RvcCcqCisndHBtJwlvcHRpb25zLnR4dAkvKid0cG0nKgogJ3RyJwlvcHRpb25zLnR4dAkvKid0cicqCiAndHMnCW9wdGlvbnMudHh0CS8qJ3RzJyoKICd0c2wnCW9wdGlvbnMudHh0CS8qJ3RzbCcqCkBAIC01NTI0LDYgKzU1MjYsNyBAQAogaGwtRm9sZGVkCXN5bnRheC50eHQJLypobC1Gb2xkZWQqCiBobC1JbmNTZWFyY2gJc3ludGF4LnR4dAkvKmhsLUluY1NlYXJjaCoKIGhsLUxpbmVOcglzeW50YXgudHh0CS8qaGwtTGluZU5yKgoraGwtTWF0Y2hQYXJlbglzeW50YXgudHh0CS8qaGwtTWF0Y2hQYXJlbioKIGhsLU1lbnUJc3ludGF4LnR4dAkvKmhsLU1lbnUqCiBobC1Nb2RlTXNnCXN5bnRheC50eHQJLypobC1Nb2RlTXNnKgogaGwtTW9yZU1zZwlzeW50YXgudHh0CS8qaGwtTW9yZU1zZyoKQEAgLTY2NTgsNyArNjY2MSw2IEBACiBzcGVsbC1DSEVDS0NPTVBPVU5EUkVQCXNwZWxsLnR4dAkvKnNwZWxsLUNIRUNLQ09NUE9VTkRSRVAqCiBzcGVsbC1DSEVDS0NPTVBPVU5EVFJJUExFCXNwZWxsLnR4dAkvKnNwZWxsLUNIRUNLQ09NUE9VTkRUUklQTEUqCiBzcGVsbC1DSVJDVU1GSVgJc3BlbGwudHh0CS8qc3BlbGwtQ0lSQ1VNRklYKgotc3BlbGwtQ01QCXNwZWxsLnR4dAkvKnNwZWxsLUNNUCoKIHNwZWxsLUNPTU1PTglzcGVsbC50eHQJLypzcGVsbC1DT01NT04qCiBzcGVsbC1DT01QTEVYUFJFRklYRVMJc3BlbGwudHh0CS8qc3BlbGwtQ09NUExFWFBSRUZJWEVTKgogc3BlbGwtQ09NUE9VTkRCRUdJTglzcGVsbC50eHQJLypzcGVsbC1DT01QT1VOREJFR0lOKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGlwcy50eHQgYi9ydW50aW1lL2RvYy90aXBzLnR4dAppbmRleCAzMGM1NDhkLi5lM2E2MmZiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90aXBzLnR4dAorKysgYi9ydW50aW1lL2RvYy90aXBzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0aXBzLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBGZWIgMTgKKyp0aXBzLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQ1Nyw2ICs0NTcsOCBAQAogVGhpcyBzaG91bGQgYmUgcHV0IGluIGEgVmltIHNjcmlwdCBmaWxlLCBzaW5jZSBpdCB1c2VzIHNjcmlwdC1sb2NhbCB2YXJpYWJsZXMuCiBJdCBza2lwcyBtYXRjaGVzIGluIHN0cmluZ3Mgb3IgY29tbWVudHMsIHVubGVzcyB0aGUgY3Vyc29yIHN0YXJ0ZWQgaW4gc3RyaW5nCiBvciBjb21tZW50LiAgVGhpcyByZXF1aXJlcyBzeW50YXggaGlnaGxpZ2h0aW5nLgorCitBIHNsaWdodGx5IG1vcmUgYWR2YW5jZWQgdmVyc2lvbiBpcyB1c2VkIGluIHRoZSB8bWF0Y2hwYXJlbnwgcGx1Z2luLgogPgogCWxldCBzOnBhcmVuX2hsX29uID0gMAogCWZ1bmN0aW9uIHM6SGlnaGxpZ2h0X01hdGNoaW5nX1BhcmVuKCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0IGIvcnVudGltZS9kb2Mvd2luZG93cy50eHQKaW5kZXggMDYwNDA4YS4uOTY2MDJjOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvd2luZG93cy50eHQKKysrIGIvcnVudGltZS9kb2Mvd2luZG93cy50eHQKQEAgLTEsNCArMSw0IEBACi0qd2luZG93cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgRmViIDI0Cisqd2luZG93cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01NTksNyArNTU5LDkgQEAKIAkJUmVhcnJhbmdlIHRoZSBzY3JlZW4gdG8gb3BlbiBvbmUgd2luZG93IGZvciBlYWNoIGFyZ3VtZW50LgogCQlBbGwgb3RoZXIgd2luZG93cyBhcmUgY2xvc2VkLiAgV2hlbiBhIGNvdW50IGlzIGdpdmVuLCB0aGlzIGlzCiAJCXRoZSBtYXhpbXVtIG51bWJlciBvZiB3aW5kb3dzIHRvIG9wZW4uCi0JCU9ubHkgdXNlcyB0aGUgY3VycmVudCB0YWIgcGFnZSB8dGFiLXBhZ2V8LgorCQlXaXRoIHRoZSB8OnRhYnwgbW9kaWZpZXIgb3BlbiBhIHRhYiBwYWdlIGZvciBlYWNoIGFyZ3VtZW50LgorCQlXaGVuIHRoZXJlIGFyZSBtb3JlIGFyZ3VtZW50cyB0aGFuICd0YWJwYWdlbWF4JyBmdXJ0aGVyIG9uZXMKKwkJYmVjb21lIHNwbGl0IHdpbmRvd3MgaW4gdGhlIGxhc3QgdGFiIHBhZ2UuCiAJCVdoZW4gdGhlICdoaWRkZW4nIG9wdGlvbiBpcyBzZXQsIGFsbCBidWZmZXJzIGluIGNsb3NlZCB3aW5kb3dzCiAJCWJlY29tZSBoaWRkZW4uCiAJCVdoZW4gJ2hpZGRlbicgaXMgbm90IHNldCwgYW5kIHRoZSAnYXV0b3dyaXRlJyBvcHRpb24gaXMgc2V0LApAQCAtMTA4OSw3ICsxMDkxLDggQEAKIAkJb2Ygd2luZG93cyBvcGVuZWQgKCd3aW53aWR0aCcgaWYgfDp2ZXJ0aWNhbHwgd2FzIHByZXBlbmRlZCkuCiAJCUJ1Zi9XaW4gRW50ZXIvTGVhdmUgYXV0b2NvbW1hbmRzIGFyZSBub3QgZXhlY3V0ZWQgZm9yIHRoZSBuZXcKIAkJd2luZG93cyBoZXJlLCB0aGF0J3Mgb25seSBkb25lIHdoZW4gdGhleSBhcmUgcmVhbGx5IGVudGVyZWQuCi0JCU9ubHkgdXNlcyB0aGUgY3VycmVudCB0YWIgcGFnZSB8dGFiLXBhZ2V8LgorCQlXaGVuIHRoZSB8OnRhYnwgbW9kaWZpZXIgaXMgdXNlZCBuZXcgd2luZG93cyBhcmUgb3BlbmRlZCBpbiBhCisJCW5ldyB0YWIsIHVwIHRvICd0YWJwYWdlbWF4Jy4KIAogTm90ZTogQWxsIHRoZSBjb21tYW5kcyBhYm92ZSB0aGF0IHN0YXJ0IGVkaXRpbmcgYW5vdGhlciBidWZmZXIsIGtlZXAgdGhlCiAncmVhZG9ubHknIGZsYWcgYXMgaXQgd2FzLiAgVGhpcyBkaWZmZXJzIGZyb20gdGhlICI6ZWRpdCIgY29tbWFuZCwgd2hpY2ggc2V0cwpkaWZmIC0tZ2l0IGEvcnVudGltZS9maWxldHlwZS52aW0gYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQppbmRleCBjMjVhYjUzLi4xOGFmMjFhIDEwMDY0NAotLS0gYS9ydW50aW1lL2ZpbGV0eXBlLnZpbQorKysgYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN1cHBvcnQgZmlsZSB0byBkZXRlY3QgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBGZWIgMjcKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDAxCiAKICIgTGlzdGVuIHZlcnkgY2FyZWZ1bGx5LCBJIHdpbGwgc2F5IHRoaXMgb25seSBvbmNlCiBpZiBleGlzdHMoImRpZF9sb2FkX2ZpbGV0eXBlcyIpCkBAIC0xMjk3LDYgKzEyOTcsOSBAQAogIiBSIChTcGx1cykKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnMsKi5TCQkJc2V0ZiByCiAKKyIgUiBIZWxwIGZpbGUKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnJkLCouUmQJCQlzZXRmIHJkCisKICIgUmV4eCwgUmVib2wgb3IgUgogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouciwqLlIJCQljYWxsIHM6RlRyKCkKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvdGV4LnZpbSBiL3J1bnRpbWUvc3ludGF4L3RleC52aW0KaW5kZXggNTcyODYzMC4uMmJjNjA0NSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvdGV4LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC90ZXgudmltCkBAIC0xLDggKzEsOCBAQAogIiBWaW0gc3ludGF4IGZpbGUKICIgTGFuZ3VhZ2U6CVRlWAogIiBNYWludGFpbmVyOglEci4gQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIDxOZHJjaGlwT0BTY2FtcGJlbGxQZmFtaWx5LkFiaXpNPgotIiBMYXN0IENoYW5nZToJRGVjIDA3LCAyMDA1Ci0iIFZlcnNpb246CTMxCisiIExhc3QgQ2hhbmdlOglGZWIgMjgsIDIwMDYKKyIgVmVyc2lvbjoJMzIKICIgVVJMOgkJaHR0cDovL215c2l0ZS52ZXJpem9uLm5ldC9hc3Ryb25hdXQvdmltL2luZGV4Lmh0bWwjdmltbGlua3Nfc3ludGF4CiAiCiAiIE5vdGVzOiB7e3sxCkBAIC0zNzIsNyArMzcyLDE0IEBACiAgIHN5biBtYXRjaCB0ZXhDb21tZW50CQkiXF5cXkEuKiQiCWNvbnRhaW5zPUB0ZXhDb21tZW50R3JvdXAKICAgc3luIG1hdGNoIHRleENvbW1lbnQJCSJeJVwrIgkJY29udGFpbnM9QHRleENvbW1lbnRHcm91cAogZWxzZQotICBzeW4gbWF0Y2ggdGV4Q29tbWVudAkJIiUuKiQiCQljb250YWlucz1AdGV4Q29tbWVudEdyb3VwCisgIGlmIGc6dGV4X2ZvbGRfZW5hYmxlZAorICAgIiBhbGxvd3Mgc3ludGF4LWZvbGRpbmcgb2YgMiBvciBtb3JlIGNvbnRpZ3VvdXMgY29tbWVudCBsaW5lcworICAgIiBzaW5nbGUtbGluZSBjb21tZW50cyBhcmUgbm90IGZvbGRlZAorICAgc3luIG1hdGNoICB0ZXhDb21tZW50CSIlLiokIgkJY29udGFpbnM9QHRleENvbW1lbnRHcm91cAorICAgc3luIHJlZ2lvbiB0ZXhDb21tZW50CXN0YXJ0PSJeXHpzXHMqJS4qXF9zKiUiCXNraXA9Il5ccyolIgllbmQ9J15cemVccypbXiVdJyBmb2xkCisgIGVsc2UKKyAgIHN5biBtYXRjaCB0ZXhDb21tZW50CQkiJS4qJCIJCWNvbnRhaW5zPUB0ZXhDb21tZW50R3JvdXAKKyAgZW5kaWYKIGVuZGlmCiAKICIgU2VwYXJhdGUgbGluZXMgdXNlZCBmb3IgdmVyYmAgYW5kIHZlcmIjIHNvIHRoYXQgdGhlIGVuZCBjb25kaXRpb25zIHt7ezEKZGlmZiAtLWdpdCBhL3NyYy9JTlNUQUxMbWFjLnR4dCBiL3NyYy9JTlNUQUxMbWFjLnR4dAppbmRleCAxYzRkNzczLi5mYTQwYzE1IDEwMDY0NAotLS0gYS9zcmMvSU5TVEFMTG1hYy50eHQKKysrIGIvc3JjL0lOU1RBTExtYWMudHh0CkBAIC0yOCwyMyArMjgsMzIgQEAKIDEuMSBDYXJib24gaW50ZXJmYWNlIChkZWZhdWx0KQogCiAgWW91IGNhbiBjb21waWxlIHZpbSB3aXRoIHRoZSBzdGFuZGFyZCBVbml4IHJvdXRpbmU6Ci0gICBjZCAuLgotICAgLi9jb25maWd1cmUKLSAgIG1ha2U7IG1ha2UgaW5zdGFsbAorICAgY2QgLi4uL3NyYworICAgbWFrZQogCiAgVGhpcyB3aWxsIGNyZWF0ZSBhIHdvcmtpbmcgVmltLmFwcCBhcHBsaWNhdGlvbiBidW5kbGUgaW4gdGhlIHNyYwogIGRpcmVjdG9yeS4gIFlvdSBjYW4gbW92ZSB0aGlzIGJ1bmRsZSAodGhlIFZpbS5hcHAgZGlyZWN0b3J5KSBhbnl3aGVyZQotIHlvdSB3YW50LCBmb3IgZXhhbXBsZSwgL0FwcGxpY2F0aW9ucy4KKyB5b3Ugd2FudC4gIE9yIHVzZSB0aGlzIGNvbW1hbmQgdG8gbW92ZSBpdCB0byAvQXBwbGljYXRpb25zOgorICAgbWFrZSBpbnN0YWxsCiAKICBZb3UgbmVlZCBhdCBsZWFzdCBYY29kZSAxLjUgdG8gY29tcGlsZSBWaW0gNy4wLgogCisgQ29uZmlndXJlIHdpbGwgY3JlYXRlIGEgdW5pdmVyc2FsIGJpbmFyeSBpZiBwb3NzaWJsZS4gIFRoaXMgcmVxdWlyZXMKKyBpbnN0YWxsaW5nIHRoZSB1bml2ZXJzYWwgU0RLIChjdXJyZW50bHkgZm9yIDEwLjQpLgorCisgVG8gb3ZlcnJ1bGUgdGhlIGFyY2hpdGVjdHVyZSBkbyB0aGlzIGJlZm9yZSBydW5uaW5nIG1ha2U6CisKKyAJLi9jb25maWd1cmUgLS13aXRoLW1hYy1hcmNoPWludGVsCisgb3IKKyAJLi9jb25maWd1cmUgLS13aXRoLW1hYy1hcmNoPXBwYworCiAKIDEuMiBYLVdpbmRvd3Mgb3IgUGxhaW4gVGV4dAogCiAgSWYgeW91IGRvIG5vdCB3YW50IHRoZSBDYXJib24gaW50ZXJmYWNlLCB5b3UgbXVzdCBleHBsaWNpdGx5IHRlbGwKICBjb25maWd1cmUgdG8gdXNlIGEgZGlmZmVyZW50IEdVSS4KIAotICBjZCAuLgorICBjZCAuLi4vc3JjCiAgIC4vY29uZmlndXJlIC0tZGlzYWJsZS1kYXJ3aW4gLS1lbmFibGUtZ3VpPWd0azIKICAgbWFrZTsgbWFrZSBpbnN0YWxsCiAKZGlmZiAtLWdpdCBhL3NyYy9hdXRvL2NvbmZpZ3VyZSBiL3NyYy9hdXRvL2NvbmZpZ3VyZQppbmRleCBhZDg2MjQyLi5jNjlkZDk2IDEwMDc1NQotLS0gYS9zcmMvYXV0by9jb25maWd1cmUKKysrIGIvc3JjL2F1dG8vY29uZmlndXJlCkBAIC0zMzk1LDcgKzMzOTUsNyBAQAogICAgIGZpCiAgIGZpCiAKLSAgICBpZiB0ZXN0ICIkTUFDQVJDSCIgPSAiaW50ZWwiIC1vICIkTUFDQVJDSCIgPSAiYm90aCI7IHRoZW4KKyAgICAgICAgaWYgdGVzdCAiJE1BQ0FSQ0giID0gImludGVsIiAtbyAiJE1BQ0FSQ0giID0gImJvdGgiOyB0aGVuCiAgICAgQ0ZMQUdTPWBlY2hvICIkQ0ZMQUdTIiB8IHNlZCAncy8tT1syMzQ1Njc4OV0vLU96LydgCiAgIGZpCiAKZGlmZiAtLWdpdCBhL3NyYy9jb25maWd1cmUuaW4gYi9zcmMvY29uZmlndXJlLmluCmluZGV4IDYwNjA5ZWMuLmVhMjdhYmIgMTAwNjQ0Ci0tLSBhL3NyYy9jb25maWd1cmUuaW4KKysrIGIvc3JjL2NvbmZpZ3VyZS5pbgpAQCAtMTY0LDcgKzE2NCw5IEBACiAgICAgZmkKICAgZmkKIAotICBkbmwgYXZvaWQgYSBidWcgd2l0aCAtTzIgZm9yIGludGVsCisgIGRubCBBdm9pZCBhIGJ1ZyB3aXRoIC1PMiB3aXRoIGdjYyA0LjAuICBTeW1wdG9tOiBtYWxsb2MoKSByZXBvcnRzIGRvdWJsZQorICBkbmwgZnJlZS4gIFRoaXMgaGFwcGVucyBpbiBleHBhbmRfZmlsZW5hbWUoKSwgYmVjYXVzZSB0aGUgb3B0aW1pemVyIHN3YXBzCisgIGRubCB0d28gYmxvY2tzIG9mIGNvZGUgdGhhdCB1c2UgInJlcGwiIHRoYXQgY2FuJ3QgYmUgc3dhcHBlZC4KICAgaWYgdGVzdCAiJE1BQ0FSQ0giID0gImludGVsIiAtbyAiJE1BQ0FSQ0giID0gImJvdGgiOyB0aGVuCiAgICAgQ0ZMQUdTPWBlY2hvICIkQ0ZMQUdTIiB8IHNlZCAncy8tT1tbMjM0NTY3ODldXS8tT3ovJ2AKICAgZmkKZGlmZiAtLWdpdCBhL3NyYy9vcHMuYyBiL3NyYy9vcHMuYwppbmRleCA0ODdhZTRjLi45Njk1ZDlkIDEwMDY0NAotLS0gYS9zcmMvb3BzLmMKKysrIGIvc3JjL29wcy5jCkBAIC0zMzc5LDYgKzMzNzksNyBAQAogCX0KIAljdXJ3aW4tPndfY3Vyc29yLmNvbGFkZCA9IDA7CiAjZW5kaWYKKwliZC50ZXh0Y29sID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgeV9zaXplOyArK2kpCiAJewogCSAgICBpbnQgc3BhY2VzOwpAQCAtMzM4Niw3ICszMzg3LDYgQEAKIAogCSAgICBiZC5zdGFydHNwYWNlcyA9IDA7CiAJICAgIGJkLmVuZHNwYWNlcyA9IDA7Ci0JICAgIGJkLnRleHRjb2wgPSAwOwogCSAgICB2Y29sID0gMDsKIAkgICAgZGVsY291bnQgPSAwOwogCkBAIC0zNTM2LDcgKzM1MzYsNiBAQAogCQkgICAgfQogCQl9CiAJICAgIH0KLQkgICAgbmV3X2N1cnNvciA9IGN1cndpbi0+d19jdXJzb3I7CiAJICAgIGN1cmJ1Zi0+Yl9vcF9zdGFydCA9IGN1cndpbi0+d19jdXJzb3I7CiAJfQogCS8qCkBAIC0zNTQ0LDYgKzM1NDMsNyBAQAogCSAqLwogCWVsc2UgaWYgKGRpciA9PSBCQUNLV0FSRCkKIAkgICAgLS1sbnVtOworCW5ld19jdXJzb3IgPSBjdXJ3aW4tPndfY3Vyc29yOwogCiAJLyoKIAkgKiBzaW1wbGUgY2FzZTogaW5zZXJ0IGludG8gY3VycmVudCBsaW5lCmRpZmYgLS1naXQgYS9zcmMvb3B0aW9uLmMgYi9zcmMvb3B0aW9uLmMKaW5kZXggZTY3NTg2Yi4uZDY5MmVkZiAxMDA2NDQKLS0tIGEvc3JjL29wdGlvbi5jCisrKyBiL3NyYy9vcHRpb24uYwpAQCAtMjI5NSw2ICsyMjk1LDEzIEBACiAJCQkgICAgKGNoYXJfdSAqKU5VTEwsIFBWX05PTkUsCiAjZW5kaWYKIAkJCSAgICB7KGNoYXJfdSAqKSIiLCAoY2hhcl91ICopMEx9fSwKKyAgICB7InRhYnBhZ2VtYXgiLCAgInRwbSIsICBQX05VTXxQX1ZJX0RFRiwKKyNpZmRlZiBGRUFUX1dJTkRPV1MKKwkJCSAgICAoY2hhcl91ICopJnBfdHBtLCBQVl9OT05FLAorI2Vsc2UKKwkJCSAgICAoY2hhcl91ICopTlVMTCwgUFZfTk9ORSwKKyNlbmRpZgorCQkJICAgIHsoY2hhcl91ICopMTBMLCAoY2hhcl91ICopMEx9fSwKICAgICB7InRhYnN0b3AiLAkgICAgInRzIiwgICBQX05VTXxQX1ZJX0RFRnxQX1JCVUYsCiAJCQkgICAgKGNoYXJfdSAqKSZwX3RzLCBQVl9UUywKIAkJCSAgICB7KGNoYXJfdSAqKThMLCAoY2hhcl91ICopMEx9fSwKZGlmZiAtLWdpdCBhL3NyYy9vcHRpb24uaCBiL3NyYy9vcHRpb24uaAppbmRleCA3ZjcwYjE1Li4xZWQyYTRmIDEwMDY0NAotLS0gYS9zcmMvb3B0aW9uLmgKKysrIGIvc3JjL29wdGlvbi5oCkBAIC03MTAsNiArNzEwLDcgQEAKIEVYVEVSTiBpbnQJcF9zdGE7CQkvKiAnc21hcnR0YWInICovCiAjaWZkZWYgRkVBVF9XSU5ET1dTCiBFWFRFUk4gaW50CXBfc2I7CQkvKiAnc3BsaXRiZWxvdycgKi8KK0VYVEVSTiBsb25nCXBfdHBtOwkJLyogJ3RhYnBhZ2VtYXgnICovCiAjIGlmIGRlZmluZWQoRkVBVF9TVExfT1BUKQogRVhURVJOIGNoYXJfdQkqcF90YWw7CQkvKiAndGFibGluZScgKi8KICMgZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9zY3JlZW4uYyBiL3NyYy9zY3JlZW4uYwppbmRleCAzOTFmZTBhLi5mNzk5YjU4IDEwMDY0NAotLS0gYS9zcmMvc2NyZWVuLmMKKysrIGIvc3JjL3NjcmVlbi5jCkBAIC0xMTUsNyArMTE1LDcgQEAKIH0gbWF0Y2hfVDsKIAogc3RhdGljIG1hdGNoX1Qgc2VhcmNoX2hsOwkvKiB1c2VkIGZvciAnaGxzZWFyY2gnIGhpZ2hsaWdodCBtYXRjaGluZyAqLwotc3RhdGljIG1hdGNoX1QgbWF0Y2hfaGw7CS8qIHVzZWQgZm9yICI6bWF0Y2giIGhpZ2hsaWdodCBtYXRjaGluZyAqLworc3RhdGljIG1hdGNoX1QgbWF0Y2hfaGxbM107CS8qIHVzZWQgZm9yICI6bWF0Y2giIGhpZ2hsaWdodCBtYXRjaGluZyAqLwogI2VuZGlmCiAKICNpZmRlZiBGRUFUX0ZPTERJTkcKQEAgLTgzMywxNCArODMzLDE5IEBACiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfU0VBUkNIX0VYVFJBCi0gICAgLyogU2V0dXAgZm9yICI6bWF0Y2giIGhpZ2hsaWdodGluZy4gIERpc2FibGUgYW55IHByZXZpb3VzIG1hdGNoICovCi0gICAgbWF0Y2hfaGwucm0gPSB3cC0+d19tYXRjaDsKLSAgICBpZiAod3AtPndfbWF0Y2hfaWQgPT0gMCkKLQltYXRjaF9obC5hdHRyID0gMDsKLSAgICBlbHNlCi0JbWF0Y2hfaGwuYXR0ciA9IHN5bl9pZDJhdHRyKHdwLT53X21hdGNoX2lkKTsKLSAgICBtYXRjaF9obC5idWYgPSBidWY7Ci0gICAgbWF0Y2hfaGwubG51bSA9IDA7CisgICAgLyogU2V0dXAgZm9yICI6bWF0Y2giIGFuZCAnaGxzZWFyY2gnIGhpZ2hsaWdodGluZy4gIERpc2FibGUgYW55IHByZXZpb3VzCisgICAgICogbWF0Y2ggKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKQorICAgIHsKKwltYXRjaF9obFtpXS5ybSA9IHdwLT53X21hdGNoW2ldOworCWlmICh3cC0+d19tYXRjaF9pZFtpXSA9PSAwKQorCSAgICBtYXRjaF9obFtpXS5hdHRyID0gMDsKKwllbHNlCisJICAgIG1hdGNoX2hsW2ldLmF0dHIgPSBzeW5faWQyYXR0cih3cC0+d19tYXRjaF9pZFtpXSk7CisJbWF0Y2hfaGxbaV0uYnVmID0gYnVmOworCW1hdGNoX2hsW2ldLmxudW0gPSAwOworCW1hdGNoX2hsW2ldLmZpcnN0X2xudW0gPSAwOworICAgIH0KICAgICBzZWFyY2hfaGwuYnVmID0gYnVmOwogICAgIHNlYXJjaF9obC5sbnVtID0gMDsKICAgICBzZWFyY2hfaGwuZmlyc3RfbG51bSA9IDA7CkBAIC05MDUsMTEgKzkxMCwxNyBAQAogCSAgICAgKiBsaW5lcyBhYm92ZSB0aGUgY2hhbmdlLgogCSAgICAgKiBTYW1lIGZvciBhICI6bWF0Y2giIHBhdHRlcm4uCiAJICAgICAqLwotCSAgICBpZiAoKHNlYXJjaF9obC5ybS5yZWdwcm9nICE9IE5VTEwKLQkJCSYmIHJlX211bHRpbGluZShzZWFyY2hfaGwucm0ucmVncHJvZykpCi0JCSAgICB8fCAobWF0Y2hfaGwucm0ucmVncHJvZyAhPSBOVUxMCi0JCQkmJiByZV9tdWx0aWxpbmUobWF0Y2hfaGwucm0ucmVncHJvZykpKQorCSAgICBpZiAoc2VhcmNoX2hsLnJtLnJlZ3Byb2cgIT0gTlVMTAorCQkJCQkmJiByZV9tdWx0aWxpbmUoc2VhcmNoX2hsLnJtLnJlZ3Byb2cpKQogCQl0b3BfdG9fbW9kID0gVFJVRTsKKwkgICAgZWxzZQorCQlmb3IgKGkgPSAwOyBpIDwgMzsgKytpKQorCQkgICAgaWYgKG1hdGNoX2hsW2ldLnJtLnJlZ3Byb2cgIT0gTlVMTAorCQkJCSAgICAgICYmIHJlX211bHRpbGluZShtYXRjaF9obFtpXS5ybS5yZWdwcm9nKSkKKwkJICAgIHsKKwkJCXRvcF90b19tb2QgPSBUUlVFOworCQkJYnJlYWs7CisJCSAgICB9CiAjZW5kaWYKIAl9CiAjaWZkZWYgRkVBVF9GT0xESU5HCkBAIC0yNTcwLDYgKzI1ODEsNyBAQAogI2VuZGlmCiAjaWZkZWYgRkVBVF9TRUFSQ0hfRVhUUkEKICAgICBtYXRjaF9UCSpzaGw7CQkJLyogcG9pbnRzIHRvIHNlYXJjaF9obCBvciBtYXRjaF9obCAqLworICAgIGludAkJaTsKICNlbmRpZgogI2lmZGVmIEZFQVRfQVJBQklDCiAgICAgaW50CQlwcmV2X2MgPSAwOwkJLyogcHJldmlvdXMgQXJhYmljIGNoYXJhY3RlciAqLwpAQCAtMzAwNywxMiArMzAxOSwxMiBAQAogCiAjaWZkZWYgRkVBVF9TRUFSQ0hfRVhUUkEKICAgICAvKgotICAgICAqIEhhbmRsZSBoaWdobGlnaHRpbmcgdGhlIGxhc3QgdXNlZCBzZWFyY2ggcGF0dGVybi4KLSAgICAgKiBEbyB0aGlzIGZvciBib3RoIHNlYXJjaF9obCBhbmQgbWF0Y2hfaGwuCisgICAgICogSGFuZGxlIGhpZ2hsaWdodGluZyB0aGUgbGFzdCB1c2VkIHNlYXJjaCBwYXR0ZXJuIGFuZCAiOm1hdGNoIi4KKyAgICAgKiBEbyB0aGlzIGZvciBib3RoIHNlYXJjaF9obCBhbmQgbWF0Y2hfaGxbM10uCiAgICAgICovCi0gICAgc2hsID0gJnNlYXJjaF9obDsKLSAgICBmb3IgKDs7KQorICAgIGZvciAoaSA9IDM7IGkgPj0gMDsgLS1pKQogICAgIHsKKwlzaGwgPSAoaSA9PSAzKSA/ICZzZWFyY2hfaGwgOiAmbWF0Y2hfaGxbaV07CiAJc2hsLT5zdGFydGNvbCA9IE1BWENPTDsKIAlzaGwtPmVuZGNvbCA9IE1BWENPTDsKIAlzaGwtPmF0dHJfY3VyID0gMDsKQEAgLTMwNTUsOSArMzA2Nyw2IEBACiAJCWFyZWFfaGlnaGxpZ2h0aW5nID0gVFJVRTsKIAkgICAgfQogCX0KLQlpZiAoc2hsID09ICZtYXRjaF9obCkKLQkgICAgYnJlYWs7Ci0Jc2hsID0gJm1hdGNoX2hsOwogICAgIH0KICNlbmRpZgogCkBAIC0zMzA1LDkgKzMzMTQsOSBAQAogCQkgKiAiOm1hdGNoIiBvdmVycnVsZXMgJ2hsc2VhcmNoJy4KIAkJICovCiAJCXYgPSAobG9uZykocHRyIC0gbGluZSk7Ci0JCXNobCA9ICZzZWFyY2hfaGw7Ci0JCWZvciAoOzspCisJCWZvciAoaSA9IDM7IGkgPj0gMDsgLS1pKQogCQl7CisJCSAgICBzaGwgPSAoaSA9PSAzKSA/ICZzZWFyY2hfaGwgOiAmbWF0Y2hfaGxbaV07CiAJCSAgICB3aGlsZSAoc2hsLT5ybS5yZWdwcm9nICE9IE5VTEwpCiAJCSAgICB7CiAJCQlpZiAoc2hsLT5zdGFydGNvbCAhPSBNQVhDT0wKQEAgLTMzNTUsMTUgKzMzNjQsMTcgQEAKIAkJCX0KIAkJCWJyZWFrOwogCQkgICAgfQotCQkgICAgaWYgKHNobCA9PSAmbWF0Y2hfaGwpCi0JCQlicmVhazsKLQkJICAgIHNobCA9ICZtYXRjaF9obDsKIAkJfQorCiAJCS8qICI6bWF0Y2giIGhpZ2hsaWdodGluZyBvdmVycnVsZXMgJ2hsc2VhcmNoJyAqLwotCQlpZiAobWF0Y2hfaGwuYXR0cl9jdXIgIT0gMCkKLQkJICAgIHNlYXJjaF9hdHRyID0gbWF0Y2hfaGwuYXR0cl9jdXI7Ci0JCWVsc2UKLQkJICAgIHNlYXJjaF9hdHRyID0gc2VhcmNoX2hsLmF0dHJfY3VyOworCQlmb3IgKGkgPSAwOyBpIDw9IDM7ICsraSkKKwkJICAgIGlmIChpID09IDMpCisJCQlzZWFyY2hfYXR0ciA9IHNlYXJjaF9obC5hdHRyX2N1cjsKKwkJICAgIGVsc2UgaWYgKG1hdGNoX2hsW2ldLmF0dHJfY3VyICE9IDApCisJCSAgICB7CisJCQlzZWFyY2hfYXR0ciA9IG1hdGNoX2hsW2ldLmF0dHJfY3VyOworCQkJYnJlYWs7CisJCSAgICB9CiAJICAgIH0KICNlbmRpZgogCkBAIC00MTMzLDcgKzQxNDQsOSBAQAogI2lmZGVmIEZFQVRfU0VBUkNIX0VYVFJBCiAJCQkvKiBoaWdobGlnaHQgJ2hsc2VhcmNoJyBtYXRjaCBhdCBlbmQgb2YgbGluZSAqLwogCQkJfHwgKHB0ciAtIGxpbmUpIC0gMSA9PSAobG9uZylzZWFyY2hfaGwuc3RhcnRjb2wKLQkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGwuc3RhcnRjb2wKKwkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMF0uc3RhcnRjb2wKKwkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMV0uc3RhcnRjb2wKKwkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMl0uc3RhcnRjb2wKICNlbmRpZgogCQkgICAgICAgKSkKIAkgICAgewpAQCAtNDE3MCwxMCArNDE4MywxNiBAQAogI2lmZGVmIEZFQVRfU0VBUkNIX0VYVFJBCiAJCWlmIChhcmVhX2F0dHIgPT0gMCkKIAkJewotCQkgICAgaWYgKChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGwuc3RhcnRjb2wpCi0JCQljaGFyX2F0dHIgPSBtYXRjaF9obC5hdHRyOwotCQkgICAgZWxzZQotCQkJY2hhcl9hdHRyID0gc2VhcmNoX2hsLmF0dHI7CisJCSAgICBmb3IgKGkgPSAwOyBpIDw9IDM7ICsraSkKKwkJICAgIHsKKwkJCWlmIChpID09IDMpCisJCQkgICAgY2hhcl9hdHRyID0gc2VhcmNoX2hsLmF0dHI7CisJCQllbHNlIGlmICgocHRyIC0gbGluZSkgLSAxID09IChsb25nKW1hdGNoX2hsW2ldLnN0YXJ0Y29sKQorCQkJeworCQkJICAgIGNoYXJfYXR0ciA9IG1hdGNoX2hsW2ldLmF0dHI7CisJCQkgICAgYnJlYWs7CisJCQl9CisJCSAgICB9CiAJCX0KICNlbmRpZgogCQlTY3JlZW5BdHRyc1tvZmZdID0gY2hhcl9hdHRyOwpAQCAtNjA2MSwxNSArNjA4MCwxNiBAQAogewogICAgIG1hdGNoX1QJKnNobDsJCS8qIHBvaW50cyB0byBzZWFyY2hfaGwgb3IgbWF0Y2hfaGwgKi8KICAgICBpbnQJCW47CisgICAgaW50CQlpOwogCiAgICAgLyoKICAgICAgKiBXaGVuIHVzaW5nIGEgbXVsdGktbGluZSBwYXR0ZXJuLCBzdGFydCBzZWFyY2hpbmcgYXQgdGhlIHRvcAogICAgICAqIG9mIHRoZSB3aW5kb3cgb3IganVzdCBhZnRlciBhIGNsb3NlZCBmb2xkLgotICAgICAqIERvIHRoaXMgYm90aCBmb3Igc2VhcmNoX2hsIGFuZCBtYXRjaF9obC4KKyAgICAgKiBEbyB0aGlzIGJvdGggZm9yIHNlYXJjaF9obCBhbmQgbWF0Y2hfaGxbM10uCiAgICAgICovCi0gICAgc2hsID0gJnNlYXJjaF9obDsKLSAgICBmb3IgKDs7KQorICAgIGZvciAoaSA9IDM7IGkgPj0gMDsgLS1pKQogICAgIHsKKwlzaGwgPSAoaSA9PSAzKSA/ICZzZWFyY2hfaGwgOiAmbWF0Y2hfaGxbaV07CiAJaWYgKHNobC0+cm0ucmVncHJvZyAhPSBOVUxMCiAJCSYmIHNobC0+bG51bSA9PSAwCiAJCSYmIHJlX211bHRpbGluZShzaGwtPnJtLnJlZ3Byb2cpKQpAQCAtNjEwNCw5ICs2MTI0LDYgQEAKIAkJfQogCSAgICB9CiAJfQotCWlmIChzaGwgPT0gJm1hdGNoX2hsKQotCSAgICBicmVhazsKLQlzaGwgPSAmbWF0Y2hfaGw7CiAgICAgfQogfQogCkBAIC02ODg0LDEyICs2OTAxLDggQEAKICAgICAgKiBDb250aW51aW5nIHdpdGggdGhlIG9sZCBTY3JlZW5MaW5lcyBtYXkgcmVzdWx0IGluIGEgY3Jhc2gsIGJlY2F1c2UgdGhlCiAgICAgICogc2l6ZSBpcyB3cm9uZy4KICAgICAgKi8KLSNpZmRlZiBGRUFUX1dJTkRPV1MKICAgICBGT1JfQUxMX1RBQl9XSU5ET1dTKHRwLCB3cCkKIAl3aW5fZnJlZV9sc2l6ZSh3cCk7Ci0jZWxzZQotICAgIHdpbl9mcmVlX2xzaXplKGN1cndpbik7Ci0jZW5kaWYKIAogICAgIG5ld19TY3JlZW5MaW5lcyA9IChzY2hhcl9UICopbGFsbG9jKChsb25nX3UpKAogCQkJICAgICAgKFJvd3MgKyAxKSAqIENvbHVtbnMgKiBzaXplb2Yoc2NoYXJfVCkpLCBGQUxTRSk7CkBAIC04NjIyLDcgKzg2MzUsOCBAQAogCWF0dHIgPSBhdHRyX25vc2VsOwogCXRhYmNvdW50ID0gMDsKIAlzY29sID0gMDsKLQlmb3IgKHRwID0gZmlyc3RfdGFicGFnZTsgdHAgIT0gTlVMTCAmJiBjb2wgPCBDb2x1bW5zOyB0cCA9IHRwLT50cF9uZXh0KQorCWZvciAodHAgPSBmaXJzdF90YWJwYWdlOyB0cCAhPSBOVUxMICYmIGNvbCA8IENvbHVtbnMgLSA0OworCQkJCQkJCSAgICAgdHAgPSB0cC0+dHBfbmV4dCkKIAl7CiAJICAgIHNjb2wgPSBjb2w7CiAKQEAgLTg2NTcsNiArODY3MSw4IEBACiAJCXsKIAkJICAgIHZpbV9zbnByaW50ZigoY2hhciAqKU5hbWVCdWZmLCBNQVhQQVRITCwgIiVkIiwgd2luY291bnQpOwogCQkgICAgbGVuID0gU1RSTEVOKE5hbWVCdWZmKTsKKwkJICAgIGlmIChjb2wgKyBsZW4gPj0gQ29sdW1ucyAtIDMpCisJCQlicmVhazsKIAkJICAgIHNjcmVlbl9wdXRzX2xlbihOYW1lQnVmZiwgbGVuLCAwLCBjb2wsCiAjaWYgZGVmaW5lZChGRUFUX1NZTl9ITCkKIAkJCQkJICAgaGxfY29tYmluZV9hdHRyKGF0dHIsIGhsX2F0dHIoSExGX1QpKQpAQCAtODY5Miw2ICs4NzA4LDggQEAKIAkJICAgIHAgKz0gbGVuIC0gcm9vbTsKIAkJICAgIGxlbiA9IHJvb207CiAJCX0KKwkJaWYgKGxlbiA+IENvbHVtbnMgLSBjb2wgLSAxKQorCQkgICAgbGVuID0gQ29sdW1ucyAtIGNvbCAtIDE7CiAKIAkJc2NyZWVuX3B1dHNfbGVuKHAsIFNUUkxFTihwKSwgMCwgY29sLCBhdHRyKTsKIAkJY29sICs9IGxlbjsKZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2guYyBiL3NyYy9zZWFyY2guYwppbmRleCAyN2I5YWMxLi4xNjM2MDVjIDEwMDY0NAotLS0gYS9zcmMvc2VhcmNoLmMKKysrIGIvc3JjL3NlYXJjaC5jCkBAIC0xODkxLDYgKzE4OTEsOCBAQAogCiAgICAgZG9fcXVvdGVzID0gLTE7CiAgICAgc3RhcnRfaW5fcXVvdGVzID0gTUFZQkU7CisgICAgY2xlYXJwb3MoJm1hdGNoX3Bvcyk7CisKICAgICAvKiBiYWNrd2FyZCBzZWFyY2g6IENoZWNrIGlmIHRoaXMgbGluZSBjb250YWlucyBhIHNpbmdsZS1saW5lIGNvbW1lbnQgKi8KICAgICBpZiAoKGJhY2t3YXJkcyAmJiBjb21tZW50X2RpcikKICNpZmRlZiBGRUFUX0xJU1AKQEAgLTMwOTYsNiArMzA5OCw3IEBACiAgICAgaW50CQlpbmNsdWRlX3doaXRlID0gRkFMU0U7CiAKICAgICBjbHNfYmlnd29yZCA9IGJpZ3dvcmQ7CisgICAgY2xlYXJwb3MoJnN0YXJ0X3Bvcyk7CiAKICNpZmRlZiBGRUFUX1ZJU1VBTAogICAgIC8qIENvcnJlY3QgY3Vyc29yIHdoZW4gJ3NlbGVjdGlvbicgaXMgZXhjbHVzaXZlICovCmRpZmYgLS1naXQgYS9zcmMvc3RydWN0cy5oIGIvc3JjL3N0cnVjdHMuaAppbmRleCAwZDZlNDk3Li41YjFhZWQ2IDEwMDY0NAotLS0gYS9zcmMvc3RydWN0cy5oCisrKyBiL3NyYy9zdHJ1Y3RzLmgKQEAgLTE4OTQsOCArMTg5NCw4IEBACiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfU0VBUkNIX0VYVFJBCi0gICAgcmVnbW1hdGNoX1QJd19tYXRjaDsJLyogcmVnZXhwIHByb2dyYW0gZm9yICI6bWF0Y2giICovCi0gICAgaW50CQl3X21hdGNoX2lkOwkvKiBoaWdobGlnaHQgSUQgZm9yICI6bWF0Y2giICovCisgICAgcmVnbW1hdGNoX1QJd19tYXRjaFszXTsJLyogcmVnZXhwIHByb2dyYW1zIGZvciAiOm1hdGNoIiAqLworICAgIGludAkJd19tYXRjaF9pZFszXTsJLyogaGlnaGxpZ2h0IElEcyBmb3IgIjptYXRjaCIgKi8KICNlbmRpZgogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3NyYy9zeW50YXguYyBiL3NyYy9zeW50YXguYwppbmRleCBhOTZkYzc3Li5iNmJjNjk2IDEwMDY0NAotLS0gYS9zcmMvc3ludGF4LmMKKysrIGIvc3JjL3N5bnRheC5jCkBAIC03ODAsNiArNzgwLDggQEAKIAllbHNlCiAJICAgIGJyZWFrX2xudW0gPSAwOwogCisJZm91bmRfbV9lbmRwb3MubG51bSA9IDA7CisJZm91bmRfbV9lbmRwb3MuY29sID0gMDsKIAllbmRfbG51bSA9IHN0YXJ0X2xudW07CiAJbG51bSA9IHN0YXJ0X2xudW07CiAJd2hpbGUgKC0tbG51bSA+IGJyZWFrX2xudW0pCmRpZmYgLS1naXQgYS9zcmMvdGVybS5jIGIvc3JjL3Rlcm0uYwppbmRleCBjM2M1OTc5Li45OWRjMWIwIDEwMDY0NAotLS0gYS9zcmMvdGVybS5jCisrKyBiL3NyYy90ZXJtLmMKQEAgLTM5MTgsNiArMzkxOCw3IEBACiAJICAgIGNvbnRpbnVlOwogCiAJa2V5X25hbWVbMF0gPSBOVUw7CS8qIG5vIGtleSBuYW1lIGZvdW5kIHlldCAqLworCWtleV9uYW1lWzFdID0gTlVMOwkvKiBubyBrZXkgbmFtZSBmb3VuZCB5ZXQgKi8KIAltb2RpZmllcnMgPSAwOwkJLyogbm8gbW9kaWZpZXJzIHlldCAqLwogCiAjaWZkZWYgRkVBVF9HVUkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Q1OS5pbiBiL3NyYy90ZXN0ZGlyL3Rlc3Q1OS5pbgppbmRleCBlM2RlMWQ2Li4zNjgxOTFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0NTkuaW4KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdDU5LmluCkBAIC0xMjEsNyArMTIxLDcgQEAKIFJBUiA/CiBCQUQgIQogCi1OT1NQTElUU1VHUworI05PU1BMSVRTVUdTCiAKIFBGWCBJIE4gMQogUEZYIEkgMCBpbiAuCkBAIC0xNjksNyArMTY5LDcgQEAKIFJBUiA/CiBCQUQgIQogCi1OT1NQTElUU1VHUworI05PU1BMSVRTVUdTCiAKIFBGWCBJIE4gMQogUEZYIEkgMCBpbiAuCkBAIC0zMjYsNyArMzI2LDcgQEAKIFJBUiA/CiBCQUQgIQogCi1OT1NQTElUU1VHUworI05PU1BMSVRTVUdTCiAKIFBGWCBJIE4gMQogUEZYIEkgMCBpbiAuCmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCAzM2FlZGFiLi43ZWJmNDgzIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTM2LDUgKzM2LDUgQEAKICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYWEiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX1NIT1JUCSI3LjBhYSIKICNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBhYSBBTFBIQSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDYgRmViIDI4KSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNiBGZWIgMjgsIGNvbXBpbGVkICIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDYgTWFyIDEpIgorI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HX0RBVEUJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA2IE1hciAxLCBjb21waWxlZCAiCg==