ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggZGNjM2Q0Yy4uZDFiYTAyNiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMjYgKzEsMjMgQEAKIAotTGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKK0xpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogCiBUaGlzIGlzIGEgcHVibGljIHJlbGVhc2Ugb2YgbGlicG5nLCBpbnRlbmRlZCBmb3IgdXNlIGluIHByb2R1Y3Rpb24gY29kZXMuCiAKLUNoYW5nZXMgc2luY2UgdGhlIGxhc3QgcHVibGljIHJlbGVhc2UgKDEuMC4xMSk6CitDaGFuZ2VzIHNpbmNlIHRoZSBsYXN0IHB1YmxpYyByZWxlYXNlICgxLjAuMTIpOgogCi0gIFRlc3QgZm9yIFdpbmRvd3MgcGxhdGZvcm0gaW4gcG5nY29uZi5oIHdoZW4gaW5jbHVkaW5nIG1hbGxvYy5oIChFbW1hbnVlbCBCbG90KQotICBVcGRhdGVkIG1ha2VmaWxlLmN5Z3dpbiBhbmQgaGFuZGxpbmcgb2YgQ3lnd2luJ3MgQUxMX1NUQVRJQyBpbiBwbmdjb25mLmgKLSAgQWRkZWQgc29tZSBuZXZlci10by1iZS1leGVjdXRlZCBjb2RlIGluIHBuZ2djY3JkLmMgdG8gcXVpZXQgY29tcGlsZXIgd2FybmluZ3MuCiAgIEVuYWJsZWQgUE5HX01OR19GRUFUVVJFU19TVVBQT1JURUQgYW5kIGVuYWJsZWQgUE5HX0FTU0VNQkxFUl9DT0RFX1NVUFBPUlRFRAogICAgIGJ5IGRlZmF1bHQuCiAgIEFkZGVkIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIE1NWCBmZWF0dXJlcy4KICAgQWRkZWQgcG5nX3NldF9zdHJpcF9lcnJvcl9udW1iZXJzIGZ1bmN0aW9uIGFuZCByZWxhdGVkIG1hY3Jvcy4KLSAgQWRkZWQgYSBjaGVjayBmb3IgYXR0ZW1wdHMgdG8gcmVhZCBvciB3cml0ZSBQTFRFIGluIGdyYXlzY2FsZSBQTkcgZGF0YXN0cmVhbXMuCi0gIEVsaW1pbmF0ZWQgdGhlIHBuZ19lcnJvciBhYm91dCBhcHBzIHVzaW5nIHBuZ19yZWFkfHdyaXRlX2luaXQoKS4gIEluc3RlYWQsCi0gICAgbGlicG5nIHdpbGwgcmVhbGxvY2F0ZSB0aGUgcG5nX3N0cnVjdCBhbmQgaW5mb19zdHJ1Y3QgaWYgdGhleSBhcmUgdG9vIHNtYWxsLgotICAgIFRoaXMgcmV0YWlucyBmdXR1cmUgYmluYXJ5IGNvbXBhdGliaWxpdHkgZm9yIG9sZCBhcHBsaWNhdGlvbnMgd3JpdHRlbiBmb3IKLSAgICBsaWJwbmctMC44OCBhbmQgZWFybGllci4KICAgRW5hYmxlZCB1c2VyIG1lbW9yeSBmdW5jdGlvbiBieSBkZWZhdWx0LgotICBNb2RpZmllZCBwbmdfY3JlYXRlX3N0cnVjdCBzbyBpdCBwYXNzZXMgdXNlciBtZW1fcHRyIHRvIHVzZXIgbWVtb3J5IGFsbG9jYXRvci4KICAgSW5jcmVhc2VkIHBuZ19tbmdfZmVhdHVyZXMgZmxhZyBmcm9tIHBuZ19ieXRlIHRvIHBuZ191aW50XzMyLgogICBCdW1wZWQgc2hhcmVkLWxpYnJhcnkgKHNvLW51bWJlcikgYW5kIGRsbC1udW1iZXIgdG8gMy4KKyAgVXBkYXRlZCBjb250cmliL2dyZWdib29rCisgIFVwZGF0ZWQgbWFrZWZpbGUuaWJtYworICBBZGRlZCBzb21lIHR5cGVjYXN0cyB0byBlbGltaW5hdGUgZ2NjIDMuMCB3YXJuaW5ncy4gIENoYW5nZWQgcHJvdG90eXBlcworICAgICBvZiBwbmdfd3JpdGVfb0ZGUyB3aWR0aCBhbmQgaGVpZ2h0IGZyb20gcG5nX3VpbnRfMzIgdG8gcG5nX2ludF8zMi4KKyAgVXBkYXRlZCBleGFtcGxlLmMKKyAgUmV2aXNlZCBwcm90b3R5cGVzIGZvciBwbmdfZGVidWdfbWFsbG9jIGFuZCBwbmdfZGVidWdfZnJlZSBpbiBwbmd0ZXN0LmMKIAogU2VuZCBjb21tZW50cy9jb3JyZWN0aW9ucy9jb21tZW5kYXRpb25zIHRvCiBwbmctaW1wbGVtZW50QGNjcmMud3VzdGwuZWR1IG9yIHRvIHJhbmRlZ0BhbHVtLnJwaS5lZHUKZGlmZiAtLWdpdCBhL0NIQU5HRVMgYi9DSEFOR0VTCmluZGV4IDExMjlhYzQuLmNhYWJmN2YgMTAwNjQ0Ci0tLSBhL0NIQU5HRVMKKysrIGIvQ0hBTkdFUwpAQCAtOTQ4LDExICs5NDgsMjUgQEAKIHZlcnNpb24gMS4yLjBiZXRhMiBbTWF5IDcsIDIwMDFdCiAgIEZpbmlzaGVkIG1lcmdpbmcgMS4yLjBiZXRhMSB3aXRoIHZlcnNpb24gMS4wLjExCiAgIEFkZGVkIGEgY2hlY2sgZm9yIGF0dGVtcHRzIHRvIHJlYWQgb3Igd3JpdGUgUExURSBpbiBncmF5c2NhbGUgUE5HIGRhdGFzdHJlYW1zLgotdmVyc2lvbiAxLjIuMGJldGEzIFtNYXkgMTgsIDIwMDFdCit2ZXJzaW9uIDEuMi4wYmV0YTMgW01heSAxNywgMjAwMV0KICAgRW5hYmxlZCB1c2VyIG1lbW9yeSBmdW5jdGlvbiBieSBkZWZhdWx0LgogICBNb2RpZmllZCBwbmdfY3JlYXRlX3N0cnVjdCBzbyBpdCBwYXNzZXMgdXNlciBtZW1fcHRyIHRvIHVzZXIgbWVtb3J5IGFsbG9jYXRvci4KICAgSW5jcmVhc2VkIHBuZ19tbmdfZmVhdHVyZXMgZmxhZyBmcm9tIHBuZ19ieXRlIHRvIHBuZ191aW50XzMyLgogICBCdW1wZWQgc2hhcmVkLWxpYnJhcnkgKHNvLW51bWJlcikgYW5kIGRsbC1udW1iZXIgdG8gMy4KK3ZlcnNpb24gMS4yLjBiZXRhNCBbSnVuZSAyMywgMjAwMV0KKyAgQ2hlY2sgZm9yIG1pc3NpbmcgcHJvZmlsZSBsZW5ndGggZmllbGQgaW4gaUNDUCBjaHVuayBhbmQgZnJlZSBjaHVua19kYXRhCisgICAgIGluIGNhc2Ugb2YgdHJ1bmNhdGVkIGlDQ1AgY2h1bmsuCisgIEJ1bXBlZCBzaGFyZWQtbGlicmFyeSBudW1iZXIgdG8gMyBpbiBtYWtlZmlsZS5zZ2kgYW5kIG1ha2VmaWxlLnNnZ2NjCisgIEJ1bXBlZCBkbGwtbnVtYmVyIGZyb20gMiB0byAzIGluIG1ha2VmaWxlLmN5Z3dpbgorICBSZXZpc2VkIGNvbnRyaWIvZ3JlZ2Jvb2svcnBuZyoteC5jIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsgYW5kIHRvIGV4aXQgY2xlYW5seQorICAgICBpZiB1c2VyIGF0dGVtcHRzIHRvIHJ1biBpdCBvbiBhbiA4LWJpdCBkaXNwbGF5LgorICBVcGRhdGVkIGNvbnRyaWIvZ3JlZ2Jvb2sKKyAgVXNlIHBuZ19tYWxsb2MgaW5zdGVhZCBvZiBwbmdfemFsbG9jIHRvIGFsbG9jYXRlIHBhbGV0dGUgaW4gcG5nc2V0LmMKKyAgVXBkYXRlZCBtYWtlZmlsZS5pYm1jCisgIEFkZGVkIHNvbWUgdHlwZWNhc3RzIHRvIGVsaW1pbmF0ZSBnY2MgMy4wIHdhcm5pbmdzLiAgQ2hhbmdlZCBwcm90b3R5cGVzCisgICAgIG9mIHBuZ193cml0ZV9vRkZTIHdpZHRoIGFuZCBoZWlnaHQgZnJvbSBwbmdfdWludF8zMiB0byBwbmdfaW50XzMyLgorICBVcGRhdGVkIGV4YW1wbGUuYworICBSZXZpc2VkIHByb3RvdHlwZXMgZm9yIHBuZ19kZWJ1Z19tYWxsb2MgYW5kIHBuZ19kZWJ1Z19mcmVlIGluIHBuZ3Rlc3QuYwogCiBTZW5kIGNvbW1lbnRzL2NvcnJlY3Rpb25zL2NvbW1lbmRhdGlvbnMgdG8KIHBuZy1pbXBsZW1lbnRAY2NyYy53dXN0bC5lZHUgb3IgdG8gcmFuZGVnQGFsdW0ucnBpLmVkdQpkaWZmIC0tZ2l0IGEvSU5TVEFMTCBiL0lOU1RBTEwKaW5kZXggN2E4NWZiNC4uNDM2ZWQxYyAxMDA2NDQKLS0tIGEvSU5TVEFMTAorKysgYi9JTlNUQUxMCkBAIC0xLDUgKzEsNSBAQAogCi1JbnN0YWxsaW5nIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKK0luc3RhbGxpbmcgbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKIAogQmVmb3JlIGluc3RhbGxpbmcgbGlicG5nLCB5b3UgbXVzdCBmaXJzdCBpbnN0YWxsIHpsaWIuICB6bGliCiBjYW4gdXN1YWxseSBiZSBmb3VuZCB3aGVyZXZlciB5b3UgZ290IGxpYnBuZy4gIHpsaWIgY2FuIGJlCkBAIC0xMCw3ICsxMCw3IEBACiB2ZXJzaW9uIG9mIHpsaWIgdGhhdCdzIGluc3RhbGxlZC4KIAogWW91IGNhbiByZW5hbWUgdGhlIGRpcmVjdG9yaWVzIHRoYXQgeW91IGRvd25sb2FkZWQgKHRoZXkKLW1pZ2h0IGJlIGNhbGxlZCAibGlicG5nLTEuMi4wYmV0YTMiIG9yICJscG5nMTA5IiBhbmQgInpsaWItMS4xLjMiCittaWdodCBiZSBjYWxsZWQgImxpYnBuZy0xLjIuMGJldGE0IiBvciAibHBuZzEwOSIgYW5kICJ6bGliLTEuMS4zIgogb3IgInpsaWIxMTMiKSBzbyB0aGF0IHlvdSBoYXZlIGRpcmVjdG9yaWVzIGNhbGxlZCAiemxpYiIgYW5kICJsaWJwbmciLgogCiBZb3VyIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgpAQCAtMzEsNyArMzEsOCBAQAogICAgICAgICAgICAgIGJlb3MKICAgICAgICAgICAgICBib3JsYW5kCiAgICAgICAgICAgICAgbXN2YwotICAgICAgICAgICAgIHdpbmNlCisgICAgICAgICAgICAgbmV0d2FyZS50eHQKKyAgICAgICAgICAgICB3aW5jZS50eHQKICAgICAgICAgICBzY3JpcHRzCiAgICAgICAgICAgICAgbWFrZWZpbGUuKgogICAgICAgICAgIHBuZ3Rlc3QucG5nCkBAIC00OCw5ICs0OSwxMiBAQAogZW5kaW5ncykgYW5kIHppcCAoRE9TIHN0eWxlIGxpbmUgZW5kaW5ncykgZm9ybWF0cy4KIAogSWYgeW91IGFyZSBidWlsZGluZyBsaWJwbmcgd2l0aCBNU1ZDLCB5b3UgY2FuIGVudGVyIHRoZSBsaWJwbmdcbXN2YyBkaXJlY3RvcnkKLWFuZCBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBpbiBtc3ZjXFJFQURNRS50eHQuICBZb3UgY2FuIGJ1aWxkIGxpYnBuZyBmb3IKLVdpbmRvd3NDRSBieSBlbnRlcmluZyB0aGUgbGlicG5nXHdpbmNlIGRpcmVjdG9yeSBhbmQgZm9sbG93aW5nIHRoZQotaW5zdHJ1Y3Rpb25zIGluIHRoZSBSRUFETUUqIGZpbGVzLgorYW5kIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIG1zdmNcUkVBRE1FLnR4dC4KKworWW91IGNhbiBidWlsZCBsaWJwbmcgZm9yIFdpbmRvd3NDRSBieSBlbnRlcmluZyB0aGUgZG93bmxvYWRpbmcgYW5kIGluc3RhbGxpbmcKK3RoZSBsaWJwbmdcd2luY2UgZGlyZWN0b3J5IGFzIGluc3RydWN0ZWQgaW4gdGhlIHByb2plY3RzXHdpbmNlLnR4dCBmaWxlLCBhbmQKK3RoZW4gZm9sbG93aW5nIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIFJFQURNRSogZmlsZXMuICBTaW1pbGFybHksIHlvdSBjYW4KK2J1aWxkIGxpYnBuZyBmb3IgTmV0d2FyZSBhcyBpbnN0cnVjdGVkIGluIHByb2plY3RzXG5ldHdhcmUudHh0LgogCiBFbHNlIGVudGVyIHRoZSB6bGliIGRpcmVjdG9yeSBhbmQgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gemxpYi9SRUFETUUsCiB0aGVuIGNvbWUgYmFjayBoZXJlIGFuZCBjaG9vc2UgdGhlIGFwcHJvcHJpYXRlIG1ha2VmaWxlLnN5cyBpbiB0aGUgc2NyaXB0cwpAQCAtNjAsOCArNjQsOCBAQAogaW5jbHVkZQogCiAgbWFrZWZpbGUuc3RkICAgICAgPT4gIEdlbmVyaWMgVU5JWCBtYWtlZmlsZSAoY2MsIGNyZWF0ZXMgc3RhdGljIGxpYnBuZy5hKQotIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjIuMGJldGEzKQotIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjIuMGJldGEzLAorIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjIuMGJldGE0KQorIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjIuMGJldGE0LAogICAgICAgICAgICAgICAgICAgICAgICB1c2VzIGFzc2VtYmxlciBjb2RlIHR1bmVkIGZvciBJbnRlbCBNTVggcGxhdGZvcm0pCiAgbWFrZWZpbGUuZ2NjICAgICAgPT4gIEdlbmVyaWMgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCiAgbWFrZWZpbGUua25yICAgICAgPT4gIEFyY2hhaWMgVU5JWCBNYWtlZmlsZSB0aGF0IGNvbnZlcnRzIGZpbGVzIHdpdGgKQEAgLTc4LDkgKzgyLDkgQEAKICBtYWtlZmlsZS5tYWNvc3ggICA9PiAgTUFDT1MgWCBNYWtlZmlsZQogIG1ha2VmaWxlLm5ldGJzZCAgID0+ICBOZXRCU0QvY2MgbWFrZWZpbGUsIHVzZXMgUE5HR0NDUkQKICBtYWtlZmlsZS5zZ2kgICAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyBJUklYIG1ha2VmaWxlIChjYywgY3JlYXRlcyBzdGF0aWMgbGliKQotIG1ha2VmaWxlLnNnZ2NjICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4yLjBiZXRhMykKKyBtYWtlZmlsZS5zZ2djYyAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTQpCiAgbWFrZWZpbGUuc3Vub3MgICAgPT4gIFN1biBtYWtlZmlsZQotIG1ha2VmaWxlLnNvbGFyaXMgID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTMpCisgbWFrZWZpbGUuc29sYXJpcyAgPT4gIFNvbGFyaXMgMi5YIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4yLjBiZXRhNCkKICBtYWtlZmlsZS5zY28gICAgICA9PiAgRm9yIFNDTyBPU3I1ICBFTEYgYW5kIFVuaXh3YXJlIDcgd2l0aCBOYXRpdmUgY2MKICBtYWtlZmlsZS5taXBzICAgICA9PiAgTUlQUyBtYWtlZmlsZQogIG1ha2VmaWxlLmFjb3JuICAgID0+ICBBY29ybiBtYWtlZmlsZQpkaWZmIC0tZ2l0IGEvTElDRU5TRSBiL0xJQ0VOU0UKaW5kZXggNDAzZTYyNi4uMmM5ZTIyMyAxMDA2NDQKLS0tIGEvTElDRU5TRQorKysgYi9MSUNFTlNFCkBAIC04LDcgKzgsNyBAQAogSWYgeW91IG1vZGlmeSBsaWJwbmcgeW91IG1heSBpbnNlcnQgYWRkaXRpb25hbCBub3RpY2VzIGltbWVkaWF0ZWx5IGZvbGxvd2luZwogdGhpcyBzZW50ZW5jZS4KIAotbGlicG5nIHZlcnNpb25zIDEuMC43LCBKdWx5IDEsIDIwMDAsIHRocm91Z2ggMS4yLjBiZXRhMywgTWF5IDE4LCAyMDAxLCBhcmUKK2xpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMi4wYmV0YTQsIEp1bmUgMjMsIDIwMDEsIGFyZQogQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogYW5kIGFyZSBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gdGhlIHNhbWUgZGlzY2xhaW1lciBhbmQgbGljZW5zZSBhcyBsaWJwbmctMS4wLjYKIHdpdGggdGhlIGZvbGxvd2luZyBpbmRpdmlkdWFscyBhZGRlZCB0byB0aGUgbGlzdCBvZiBDb250cmlidXRpbmcgQXV0aG9ycwpAQCAtOTksNCArOTksNCBAQAogCiBHbGVubiBSYW5kZXJzLVBlaHJzb24KIHJhbmRlZ0BhbHVtLnJwaS5lZHUKLU1heSAxOCwgMjAwMQorSnVuZSAyMywgMjAwMQpkaWZmIC0tZ2l0IGEvUkVBRE1FIGIvUkVBRE1FCmluZGV4IDM2YTgxMDkuLmM0OTdlM2EgMTAwNjQ0Ci0tLSBhL1JFQURNRQorKysgYi9SRUFETUUKQEAgLTEsNCArMSw0IEBACi1SRUFETUUgZm9yIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxIChzaGFyZWQgbGlicmFyeSAyLjEpCitSRUFETUUgZm9yIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMSAoc2hhcmVkIGxpYnJhcnkgMi4xKQogU2VlIHRoZSBub3RlIGFib3V0IHZlcnNpb24gbnVtYmVycyBuZWFyIHRoZSB0b3Agb2YgcG5nLmgKIAogU2VlIElOU1RBTEwgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gaW5zdGFsbCBsaWJwbmcuCkBAIC0xNzcsMTUgKzE3NywxOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB6bGliCiAgICAgICAgbXN2YyAgICAgICAgICAgICA9PiAgQ29udGFpbnMgYSBNaWNyb3NvZnQgVmlzdWFsIEMrKyAoTVNWQykgd29ya3NwYWNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYgotICAgICAgIHdpbmNlICAgICAgICAgICAgPT4gIENvbnRhaW5zIGEgTWljcm9zb2Z0IFZpc3VhbCBDKysgKFdpbmRvd3MgQ0QgVG9vbGtpdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jrc3BhY2UgZm9yIGJ1aWxkaW5nIGxpYnBuZyBhbmQgemxpYiBvbiBXaW5kb3dzQ0UKKyAgICAgICBuZXR3YXJlLnR4dCAgICAgID0+ICBDb250YWlucyBpbnN0cnVjdGlvbnMgZm9yIGRvd25sb2FkaW5nIGEgc2V0IG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdCBmaWxlcyBmb3IgYnVpbGRpbmcgbGlicG5nIGFuZCB6bGliIG9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0d2FyZS4KKyAgICAgICB3aW5jZS50eHQgICAgICAgID0+ICBDb250YWlucyBpbnN0cnVjdGlvbnMgZm9yIGRvd25sb2FkaW5nIGEgTWljcm9zb2Z0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzdWFsIEMrKyAoV2luZG93cyBDRCBUb29sa2l0KSB3b3Jrc3BhY2UgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRpbmcgbGlicG5nIGFuZCB6bGliIG9uIFdpbmRvd3NDRQogICAgICAgc2NyaXB0cyAgICAgICA9PiAgRGlyZWN0b3J5IGNvbnRhaW5pbmcgc2NyaXB0cyBmb3IgYnVpbGRpbmcgbGlicG5nOgogICAgICAgIGRlc2NyaXAubW1zICAgICAgPT4gIFZNUyBtYWtlZmlsZSBmb3IgTU1TIG9yIE1NSwogICAgICAgIG1ha2VmaWxlLnN0ZCAgICAgPT4gIEdlbmVyaWMgVU5JWCBtYWtlZmlsZSAoY2MsIGNyZWF0ZXMgc3RhdGljIGxpYnBuZy5hKQogICAgICAgIG1ha2VmaWxlLmxpbnV4ICAgPT4gIExpbnV4L0VMRiBtYWtlZmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnY2MsIGNyZWF0ZXMgbGlicG5nLnNvLjIuMS4yLjBiZXRhMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTQpCiAgICAgICAgbWFrZWZpbGUuZ2NtbXggICA9PiAgTGludXgvRUxGIG1ha2VmaWxlIChnY2MsIGNyZWF0ZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJwbmcuc28uMi4xLjIuMGJldGEzLCB1c2VzIGFzc2VtYmxlciBjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicG5nLnNvLjIuMS4yLjBiZXRhNCwgdXNlcyBhc3NlbWJsZXIgY29kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1bmVkIGZvciBJbnRlbCBNTVggcGxhdGZvcm0pCiAgICAgICAgbWFrZWZpbGUuZ2NjICAgICA9PiAgR2VuZXJpYyBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIHN0YXRpYyBsaWJwbmcuYSkKICAgICAgICBtYWtlZmlsZS5rbnIgICAgID0+ICBBcmNoYWljIFVOSVggTWFrZWZpbGUgdGhhdCBjb252ZXJ0cyBmaWxlcyB3aXRoCkBAIC0yMDIsMTAgKzIwNiwxMCBAQAogICAgICAgIG1ha2VmaWxlLm1hY29zeCAgPT4gIE1BQ09TIFggTWFrZWZpbGUKICAgICAgICBtYWtlZmlsZS5uZXRic2QgID0+ICBOZXRCU0QvY2MgbWFrZWZpbGUsIHVzZXMgUE5HR0NDUkQKICAgICAgICBtYWtlZmlsZS5zZ2kgICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIElSSVggKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWIpCi0gICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTMpCisgICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTQpCiAgICAgICAgbWFrZWZpbGUuc3Vub3MgICA9PiAgU3VuIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuc29sYXJpcyA9PiAgU29sYXJpcyAyLlggbWFrZWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMi4wYmV0YTMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjIuMGJldGE0KQogICAgICAgIG1ha2VmaWxlLnNjbyAgICAgPT4gIEZvciBTQ08gT1NyNSAgRUxGIGFuZCBVbml4d2FyZSA3IHdpdGggTmF0aXZlIGNjCiAgICAgICAgbWFrZWZpbGUubWlwcyAgICA9PiAgTUlQUyBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLmFjb3JuICAgPT4gIEFjb3JuIG1ha2VmaWxlCmRpZmYgLS1naXQgYS9ZMktJTkZPIGIvWTJLSU5GTwppbmRleCAzYTk5MTUyLi42NTc3ODBhIDEwMDY0NAotLS0gYS9ZMktJTkZPCisrKyBiL1kyS0lORk8KQEAgLTEsMTMgKzEsMTMgQEAKICAgIFkySyBjb21wbGlhbmNlIGluIGxpYnBuZzoKICAgID09PT09PT09PT09PT09PT09PT09PT09PT0KIAotICAgICAgTWF5IDE4LCAyMDAxCisgICAgICBKdW5lIDIzLCAyMDAxCiAKICAgICAgIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKICAgICAgIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogCiAgICAgICBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi0gICAgICB1cHdhcmQgdGhyb3VnaCAxLjIuMGJldGEzIGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgorICAgICAgdXB3YXJkIHRocm91Z2ggMS4yLjBiZXRhNCBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKICAgICAgIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogCiAgICAgICBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlcgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGZiNjNjYjkuLjI1N2Q4NDEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNSArMSw1IEBACiBlY2hvICIKLSAgVGhlcmUgaXMgbm8gXCJjb25maWd1cmVcIiBzY3JpcHQgZm9yIExpYnBuZy0xLjIuMGJldGEzLiAgSW5zdGVhZCwgcGxlYXNlCisgIFRoZXJlIGlzIG5vIFwiY29uZmlndXJlXCIgc2NyaXB0IGZvciBMaWJwbmctMS4yLjBiZXRhNC4gIEluc3RlYWQsIHBsZWFzZQogICBjb3B5IHRoZSBhcHByb3ByaWF0ZSBtYWtlZmlsZSBmb3IgeW91ciBzeXN0ZW0gZnJvbSB0aGUgXCJzY3JpcHRzXCIKICAgZGlyZWN0b3J5LiAgUmVhZCB0aGUgSU5TVEFMTCBmaWxlIGZvciBtb3JlIGRldGFpbHMuCiAiCmRpZmYgLS1naXQgYS9jb250cmliL2dyZWdib29rL01ha2VmaWxlLnVueCBiL2NvbnRyaWIvZ3JlZ2Jvb2svTWFrZWZpbGUudW54CmluZGV4IDg1MGRkY2UuLjNlZmUwODUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZ3JlZ2Jvb2svTWFrZWZpbGUudW54CisrKyBiL2NvbnRyaWIvZ3JlZ2Jvb2svTWFrZWZpbGUudW54CkBAIC0xLDYgKzEsNiBAQAogIyBTYW1wbGUgbWFrZWZpbGUgZm9yIHJwbmcteCAvIHJwbmcyLXggLyB3cG5nIHVzaW5nIGdjYyBhbmQgbWFrZS4KICMgR3JlZyBSb2Vsb2ZzCi0jIExhc3QgbW9kaWZpZWQ6ICAyOCBGZWJydWFyeSAyMDAwCisjIExhc3QgbW9kaWZpZWQ6ICA3IEZlYnJ1YXJ5IDIwMDEKICMKICMJVGhlIHByb2dyYW1zIGJ1aWx0IGJ5IHRoaXMgbWFrZWZpbGUgYXJlIGRlc2NyaWJlZCBpbiB0aGUgYm9vaywKICMJIlBORzogIFRoZSBEZWZpbml0aXZlIEd1aWRlLCIgYnkgR3JlZyBSb2Vsb2ZzIChPJ1JlaWxseSBhbmQKQEAgLTI3LDIwICsyNywyMCBAQAogI1BOR0xJQiA9IC1ML3Vzci9sb2NhbC9saWIgLWxwbmcJIyBkeW5hbWljYWxseSBsaW5rZWQgYWdhaW5zdCBsaWJwbmcKIFBOR0xJQiA9IC91c3IvbG9jYWwvbGliL2xpYnBuZy5hCSMgc3RhdGljYWxseSBsaW5rZWQgYWdhaW5zdCBsaWJwbmcKICMgb3I6Ci0jUE5HSU5DID0gLUkuLi8uLgotI1BOR0xJQiA9IC1MLi4vLi4gLWxwbmcKLSNQTkdMSUIgPSAuLi8uLi9saWJwbmcuYQorI1BOR0lOQyA9IC1JLi4vbGlicG5nCisjUE5HTElCID0gLUwuLi9saWJwbmcgLWxwbmcKKyNQTkdMSUIgPSAuLi9saWJwbmcvbGlicG5nLmEKIAogWklOQyA9IC1JL3Vzci9sb2NhbC9pbmNsdWRlCiAjWkxJQiA9IC1ML3Vzci9sb2NhbC9saWIgLWx6CQkjIGR5bmFtaWNhbGx5IGxpbmtlZCBhZ2FpbnN0IHpsaWIKIFpMSUIgPSAvdXNyL2xvY2FsL2xpYi9saWJ6LmEJCSMgc3RhdGljYWxseSBsaW5rZWQgYWdhaW5zdCB6bGliCiAjWklOQyA9IC1JLi4vemxpYgogI1pMSUIgPSAtTC4uL3psaWIgLWx6Ci0jWkxJQiA9IC4uLy4uLy4uL3psaWIvbGliei5hCisjWkxJQiA9IC4uL3psaWIvbGliei5hCiAKLSNYSU5DID0gLUkvdXNyL2luY2x1ZGUvWDExCQkjIG9sZC1zdHlsZSwgc3RvY2sgWCBkaXN0cmlidXRpb25zCisjWElOQyA9IC1JL3Vzci9pbmNsdWRlCQkJIyBvbGQtc3R5bGUsIHN0b2NrIFggZGlzdHJpYnV0aW9ucwogI1hMSUIgPSAtTC91c3IvbGliL1gxMSAtbFgxMQotI1hJTkMgPSAtSS91c3Ivb3Blbndpbi9pbmNsdWRlICAgIAkjIFN1biB3b3Jrc3RhdGlvbnMgKE9wZW5XaW5kb3dzKQorI1hJTkMgPSAtSS91c3Ivb3Blbndpbi9pbmNsdWRlCQkjIFN1biB3b3Jrc3RhdGlvbnMgKE9wZW5XaW5kb3dzKQogI1hMSUIgPSAtTC91c3Ivb3Blbndpbi9saWIgLWxYMTEKIFhJTkMgPSAtSS91c3IvWDExUjYvaW5jbHVkZQkJIyBuZXcgWCBkaXN0cmlidXRpb25zIChYRnJlZTg2LCBldGMuKQogWExJQiA9IC1ML3Vzci9YMTFSNi9saWIgLWxYMTEKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZ3JlZ2Jvb2svTWFrZWZpbGUudzMyIGIvY29udHJpYi9ncmVnYm9vay9NYWtlZmlsZS53MzIKaW5kZXggMmE4NDAyMi4uNjIwNDFjZCAxMDA2NDQKLS0tIGEvY29udHJpYi9ncmVnYm9vay9NYWtlZmlsZS53MzIKKysrIGIvY29udHJpYi9ncmVnYm9vay9NYWtlZmlsZS53MzIKQEAgLTMyLDEyICszMiwxMiBAQAogCiAjIG1hY3JvcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QTkdQQVRIID0gLi4vLi4KK1BOR1BBVEggPSAuLi9saWJwbmcKIFBOR0lOQyA9IC1JJChQTkdQQVRIKQogI1BOR0xJQiA9ICQoUE5HUEFUSCkvcG5nZGxsLmxpYgogUE5HTElCID0gJChQTkdQQVRIKS9saWJwbmcubGliCiAKLVpQQVRIID0gLi4vLi4vLi4vemxpYgorWlBBVEggPSAuLi96bGliCiBaSU5DID0gLUkkKFpQQVRIKQogI1pMSUIgPSAkKFpQQVRIKS96bGliZGxsLmxpYgogWkxJQiA9ICQoWlBBVEgpL3psaWJzdGF0LmxpYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9ncmVnYm9vay9SRUFETUUgYi9jb250cmliL2dyZWdib29rL1JFQURNRQppbmRleCBhOGJiYzI4Li40YmI4MGI0IDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL1JFQURNRQorKysgYi9jb250cmliL2dyZWdib29rL1JFQURNRQpAQCAtMTYsMTMgKzE2LDEyIEBACiBUaGUgc291cmNlIGNvZGUgZm9yIGFsbCB0aHJlZSBkZW1vIHByb2dyYW1zIGN1cnJlbnRseSBjb21waWxlcyB1bmRlcgogVW5peCwgT3BlblZNUywgYW5kIDMyLWJpdCBXaW5kb3dzLiAgKFNwZWNpYWwgdGhhbmtzIHRvIE1hcnRpbiBaaW5zZXIsCiB6aW5zZXJAZGVjdXMuZGUsIGZvciBtYWtpbmcgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIGZvciBPcGVuVk1TIGFuZCBmb3IKLXByb3ZpZGluZyBhbiBhcHByb3ByaWF0ZSBidWlsZCBzY3JpcHQuKSAgQnVpbGQgaW5zdHJ1Y3Rpb25zIGNhbiBiZQotZm91bmQgYmVsb3cuCitwcm92aWRpbmcgYW4gYXBwcm9wcmlhdGUgYnVpbGQgc2NyaXB0LikgIEJ1aWxkIGluc3RydWN0aW9ucyBjYW4gYmUgZm91bmQKK2JlbG93LgogCiBGaWxlczoKIAogICAgUkVBRE1FICAgICAgICAgICAgIHRoaXMgZmlsZQotICAgUkVBRE1FLnczMiAgICAgICAgIGFkZGl0aW9uYWwgV2luZG93cy1zcGVjaWZpYyBpbmZvcm1hdGlvbgogICAgTElDRU5TRSAgICAgICAgICAgIHRlcm1zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgcmV1c2UgKEJTRC1saWtlKQogCiAgICBNYWtlZmlsZS51bnggICAgICAgVW5peCBtYWtlZmlsZQpAQCAtNDYsMjUgKzQ1LDI2IEBACiAgICB0b3VjYW4ucG5nICAgICAgICAgdHJhbnNwYXJlbnQgUE5HIGZvciB0ZXN0aW5nIChieSBTdGVmYW4gU2NobmVpZGVyKQogCiBOb3RlIHRoYXQgdGhlIHByb2dyYW1zIGFyZSBkZXNpZ25lZCB0byBiZSBmdW5jdGlvbmFsLCBidXQgdGhlaXIgcHJpbWFyeQotcHVycG9zZSBpcyB0byBkZW1vbnN0cmF0ZSBob3cgdG8gdXNlIGxpYnBuZyB0byBhZGQgUE5HIHN1cHBvcnQgdG8gb3RoZXIKK3B1cnBvc2UgaXMgdG8gaWxsdXN0cmF0ZSBob3cgdG8gdXNlIGxpYnBuZyB0byBhZGQgUE5HIHN1cHBvcnQgdG8gb3RoZXIKIHByb2dyYW1zLiAgQXMgc3VjaCwgdGhlaXIgdXNlciBpbnRlcmZhY2VzIGFyZSBjcnVkZSBhbmQgZGVmaW5pdGVseSBub3QKIGludGVuZGVkIGZvciBldmVyeWRheSB1c2UuCiAKLVBsZWFzZSBzZWUgaHR0cDovL3d3dy5jZHJvbS5jb20vcHViL3BuZy9wbmdib29rLmh0bWwgZm9yIGZ1cnRoZXIgaW5mb3ItCitQbGVhc2Ugc2VlIGh0dHA6Ly93d3cubGlicG5nLm9yZy9wdWIvcG5nL3BuZ2Jvb2suaHRtbCBmb3IgZnVydGhlciBpbmZvci0KIG1hdGlvbiBhbmQgbGlua3MgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgY29kZSwgYW5kIENoYXB0ZXJzCiAxMy0xNSBvZiB0aGUgYm9vayBmb3IgZGV0YWlsZWQgZGlzY3Vzc2lvbiBvZiB0aGUgdGhyZWUgcHJvZ3JhbXMuCiAKIEdyZWcgUm9lbG9mcwotMTkgTWFyY2ggMjAwMAorbmV3dEBwb2JveC5jb20KKzMwIE1heSAyMDAxCiAKIAogQlVJTEQgSU5TVFJVQ1RJT05TCiAKLSAtIFByZXJlcXVpc2l0ZXM6CisgLSBQcmVyZXF1aXNpdGVzIChpbiBvcmRlciBvZiBjb21waWxhdGlvbik6CiAKLSAgICAgIC0gemxpYgkJZnRwOi8vZnRwLmNkcm9tLmNvbS9wdWIvaW5mb3ppcC96bGliL3psaWIuaHRtbAotICAgICAgLSBsaWJwbmcJCWh0dHA6Ly93d3cuY2Ryb20uY29tL3B1Yi9wbmcvcG5nY29kZS5odG1sCi0gICAgICAtIHBuZ2Jvb2sJCWh0dHA6Ly93d3cuY2Ryb20uY29tL3B1Yi9wbmcvYm9vay9zb3VyY2VzLmh0bWwKKyAgICAgIC0gemxpYgkJaHR0cDovL3d3dy5nemlwLm9yZy96bGliLworICAgICAgLSBsaWJwbmcJCWh0dHA6Ly93d3cubGlicG5nLm9yZy9wdWIvcG5nL2xpYnBuZy5odG1sCisgICAgICAtIHBuZ2Jvb2sJCWh0dHA6Ly93d3cubGlicG5nLm9yZy9wdWIvcG5nL2Jvb2svc291cmNlcy5odG1sCiAKICAgICAgVGhlIHBuZ2Jvb2sgZGVtbyBwcm9ncmFtcyBhcmUgZXhwbGljaXRseSBkZXNpZ25lZCB0byBkZW1vbnN0cmF0ZSBwcm9wZXIKICAgICAgY29kaW5nIHRlY2huaXF1ZXMgZm9yIHVzaW5nIHRoZSBsaWJwbmcgcmVmZXJlbmNlIGxpYnJhcnkuICBBcyBhIHJlc3VsdCwKQEAgLTEyOCwxMSArMTI4LDEzIEBACiAKICAgICAgVGhlIHJlc3VsdCBzaG91bGQgYmUgdGhyZWUgZXhlY3V0YWJsZXM6ICBycG5nLXdpbi5leGUsIHJwbmcyLXdpbi5leGUsCiAgICAgIGFuZCB3cG5nLmV4ZS4gIENvcHkgdGhlbSBzb21ld2hlcmUgaW4geW91ciBQQVRIIG9yIHJ1biB0aGVtIGZyb20gdGhlCi0gICAgIGN1cnJlbnQgZm9sZGVyLiAgVW5saWtlIHRoZSBVbml4IHZlcnNpb25zLCB0aGUgdHdvIHdpbmRvd2VkIHByb2dyYW1zCi0gICAgIChycG5nIGFuZCBycG5nMikgZG8gbm90IGRpc3BsYXkgYSB1c2FnZSBzY3JlZW4gd2hlbiBpbnZva2VkIHdpdGhvdXQKLSAgICAgY29tbWFuZC1saW5lIGFyZ3VtZW50czsgc2VlIFJFQURNRS53MzIgZm9yIGJyaWVmIGhlbHAgb3IgdGhlIGJvb2sgZm9yCi0gICAgIGRldGFpbHMuICBOb3RlIHRoYXQgdGhlIHByb2dyYW1zIHVzZSB0aGUgVW5peC1zdHlsZSAiLSIgY2hhcmFjdGVyIHRvCi0gICAgIHNwZWNpZnkgb3B0aW9ucywgaW5zdGVhZCBvZiB0aGUgbW9yZSBjb21tb24gRE9TL1dpbmRvd3MgIi8iIGNoYXJhY3Rlci4KKyAgICAgY3VycmVudCBmb2xkZXIuICBMaWtlIHRoZSBVbml4IHZlcnNpb25zLCB0aGUgdHdvIHdpbmRvd2VkIHByb2dyYW1zCisgICAgIChycG5nIGFuZCBycG5nMikgbm93IGRpc3BsYXkgYSB1c2FnZSBzY3JlZW4gaW4gYSBjb25zb2xlIHdpbmRvdyB3aGVuCisgICAgIGludm9rZWQgd2l0aG91dCBjb21tYW5kLWxpbmUgYXJndW1lbnRzOyB0aGlzIGlzIG5ldyBiZWhhdmlvciBhcyBvZgorICAgICB0aGUgTWF5IDIwMDEgcmVsZWFzZS4gIE5vdGUgdGhhdCB0aGUgcHJvZ3JhbXMgdXNlIHRoZSBVbml4LXN0eWxlICItIgorICAgICBjaGFyYWN0ZXIgdG8gc3BlY2lmeSBvcHRpb25zLCBpbnN0ZWFkIG9mIHRoZSBtb3JlIGNvbW1vbiBET1MvV2luZG93cworICAgICAiLyIgY2hhcmFjdGVyLiAgKEZvciBleGFtcGxlOiAgInJwbmcyLXdpbiAtYmdwYXQgNCBmb28ucG5nIiwgbm90CisgICAgICJycG5nMi13aW4gL2JncGF0IDQgZm9vLnBuZyIpCiAKIAogIC0gT3BlblZNUzoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZ3JlZ2Jvb2svUkVBRE1FLnczMiBiL2NvbnRyaWIvZ3JlZ2Jvb2svUkVBRE1FLnczMgppbmRleCA3MzZjMDAxLi41OGU0M2NkIDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL1JFQURNRS53MzIKKysrIGIvY29udHJpYi9ncmVnYm9vay9SRUFETUUudzMyCkBAIC0xLDUgKzEsNSBAQAogU2VlIHRoZSBtYWluIFJFQURNRSBmaWxlIGZvciBiYXNpYyBpbnN0cnVjdGlvbnMgb24gY29tcGlsaW5nIGFuZCBydW5uaW5nCi10aGUgcHJvZ3JhbXMuICBTZWUgaHR0cDovL3d3dy5jZHJvbS5jb20vcHViL3BuZy9wbmdib29rLmh0bWwgZm9yIGZ1cnRoZXIKK3RoZSBwcm9ncmFtcy4gIFNlZSBodHRwOi8vd3d3LmxpYnBuZy5vcmcvcHViL3BuZy9wbmdib29rLmh0bWwgZm9yIGZ1cnRoZXIKIGluZm9ybWF0aW9uIGFuZCBsaW5rcyB0byB0aGUgc291cmNlIGNvZGUsIGFuZCBDaGFwdGVycyAxMy0xNSBvZiB0aGUgYm9vawogZm9yIGRldGFpbGVkIGRpc2N1c3Npb24gb2YgdGhlIHRocmVlIHByb2dyYW1zLgogCmRpZmYgLS1naXQgYS9jb250cmliL2dyZWdib29rL21ha2V2bXMuY29tIGIvY29udHJpYi9ncmVnYm9vay9tYWtldm1zLmNvbQppbmRleCAzNzM5MjZiLi5iZDM3ZGMwIDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL21ha2V2bXMuY29tCisrKyBiL2NvbnRyaWIvZ3JlZ2Jvb2svbWFrZXZtcy5jb20KQEAgLTksMjEgKzksMjIgQEAKICQhCiAkIHpwYXRoICAgPSAiIgogJCBwbmdwYXRoID0gIiIKLSQgaWYgZiRzZWFyY2goIlstLnpsaWJdemxpYi5oIikubmVzLiIiIHRoZW4genBhdGggPSAiWy0uemxpYl0iCi0kIGlmIGYkc2VhcmNoKCJbLS5saWJwbmddcG5nLmgiKS5uZXMuIiIgdGhlbiBwbmdwYXRoID0gIlstLmxpYnBuZ10iCiAkIQogJCBpZiBmJHNlYXJjaCgiWy0tLS56bGliXXpsaWIuaCIpLm5lcy4iIiB0aGVuIHpwYXRoID0gIlstLS0uemxpYl0iCiAkIGlmIGYkc2VhcmNoKCJbLS1dcG5nLmgiKS5uZXMuIiIgdGhlbiBwbmdwYXRoID0gIlstLV0iCiAkIQorJCBpZiBmJHNlYXJjaCgiWy0uemxpYl16bGliLmgiKS5uZXMuIiIgdGhlbiB6cGF0aCA9ICJbLS56bGliXSIKKyQgaWYgZiRzZWFyY2goIlstLmxpYnBuZ11wbmcuaCIpLm5lcy4iIiB0aGVuIHBuZ3BhdGggPSAiWy0ubGlicG5nXSIKKyQhCiAkIGlmIHpwYXRoIC5lcXMuICIiCiAkIHRoZW4KLSQgICB3cml0ZSBzeXMkb3V0cHV0ICJabGliIGluY2x1ZGUgbm90IGZvdW5kLiBFeGl0aW5nLi4uIgorJCAgIHdyaXRlIHN5cyRvdXRwdXQgInpsaWIgaW5jbHVkZSBub3QgZm91bmQuIEV4aXRpbmcuLi4iCiAkICAgZXhpdCAyCiAkIGVuZGlmIAogJCEKICQgaWYgcG5ncGF0aCAuZXFzLiAiIgogJCB0aGVuCi0kICAgd3JpdGUgc3lzJG91dHB1dCAiTGlicG5nIGluY2x1ZGUgbm90IGZvdW5kLiBFeGl0aW5nLi4uIgorJCAgIHdyaXRlIHN5cyRvdXRwdXQgImxpYnBuZyBpbmNsdWRlIG5vdCBmb3VuZC4gRXhpdGluZy4uLiIKICQgICBleGl0IDIKICQgZW5kaWYgCiAkIQpkaWZmIC0tZ2l0IGEvY29udHJpYi9ncmVnYm9vay9yZWFkcG5nLmMgYi9jb250cmliL2dyZWdib29rL3JlYWRwbmcuYwppbmRleCBkYzk0OGVlLi5iOGUwOTA0IDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL3JlYWRwbmcuYworKysgYi9jb250cmliL2dyZWdib29rL3JlYWRwbmcuYwpAQCAtMjM5LDcgKzIzOSw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIFRyYWNlKChzdGRlcnIsICJyZWFkcG5nX2dldF9pbWFnZTogIHJvd2J5dGVzID0gJWxkLCBoZWlnaHQgPSAlbGRcbiIsIHJvd2J5dGVzLCBoZWlnaHQpKTsKKyAgICBUcmFjZSgoc3RkZXJyLCAicmVhZHBuZ19nZXRfaW1hZ2U6ICBjaGFubmVscyA9ICVkLCByb3dieXRlcyA9ICVsZCwgaGVpZ2h0ID0gJWxkXG4iLCAqcENoYW5uZWxzLCByb3dieXRlcywgaGVpZ2h0KSk7CiAKIAogICAgIC8qIHNldCB0aGUgaW5kaXZpZHVhbCByb3dfcG9pbnRlcnMgdG8gcG9pbnQgYXQgdGhlIGNvcnJlY3Qgb2Zmc2V0cyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9ncmVnYm9vay9yZWFkcG5nMi5jIGIvY29udHJpYi9ncmVnYm9vay9yZWFkcG5nMi5jCmluZGV4IDQzNDIyOWYuLjg3ZjEzNTAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZ3JlZ2Jvb2svcmVhZHBuZzIuYworKysgYi9jb250cmliL2dyZWdib29rL3JlYWRwbmcyLmMKQEAgLTExNyw4ICsxMTcsOCBAQAogICAgICAgICB9CiAgICAgfQogI2Vsc2UKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgIENvbXBpbGVkIHdpdGggbGlicG5nICVzOyB1c2luZyBsaWJwbmcgJXMuXG4iLAotICAgICAgUE5HX0xJQlBOR19WRVJfU1RSSU5HLCBwbmdfbGlicG5nX3Zlcik7CisgICAgZnByaW50ZihzdGRlcnIsICIgICBDb21waWxlZCB3aXRoIGxpYnBuZyAlczsgdXNpbmcgbGlicG5nICVzICIKKyAgICAgICJ3aXRob3V0IE1NWCBzdXBwb3J0LlxuIiwgUE5HX0xJQlBOR19WRVJfU1RSSU5HLCBwbmdfbGlicG5nX3Zlcik7CiAjZW5kaWYKIAogICAgIGZwcmludGYoc3RkZXJyLCAiICAgQ29tcGlsZWQgd2l0aCB6bGliICVzOyB1c2luZyB6bGliICVzLlxuIiwKQEAgLTUzMCw3ICs1MzAsNiBAQAogCiAgICAgKCptYWlucHJvZ19wdHItPm1haW5wcm9nX2ZpbmlzaF9kaXNwbGF5KSgpOwogCi0gICAgaW5mb19wdHIgPSBpbmZvX3B0cjsgLyogd2l0aG91dCB0aGlzIHRoZSBjb21waWxlciB3aGluZXMgYWJvdXQgaW5mb19wdHIgKi8KIAogICAgIC8qIGFsbCBkb25lICovCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZy13aW4uYyBiL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZy13aW4uYwppbmRleCA1MWUxOTc0Li5iODRhN2ZjIDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL3Jwbmctd2luLmMKKysrIGIvY29udHJpYi9ncmVnYm9vay9ycG5nLXdpbi5jCkBAIC05LDcgKzksNiBAQAogICAgd2l0aCBhIGxpdHRsZSB0d2Vha2luZyAob3IgbWF5YmUgbm90KS4KIAogICAgdG8gZG86Ci0gICAgLSBzdGRvdXQvc3RkZXJyIGRvbid0IHdvcmshICBuZWVkIG1lc3NhZ2Ugd2luZG93IChtYXliZSBzY3JvbGxhYmxlPykKICAgICAtIGhhbmRsZSBxdW90ZWQgY29tbWFuZC1saW5lIGFyZ3MgKGVzcGVjaWFsbHkgZmlsZW5hbWVzIHdpdGggc3BhY2VzKQogICAgIC0gaGF2ZSBtaW5pbXVtIHdpbmRvdyB3aWR0aDogIG9oIHdlbGwKICAgICAtIHVzZSAlLjEwMjNzIHRvIHNpbXBsaWZ5IHRydW5jYXRpb24gb2YgdGl0bGUtYmFyIHN0cmluZz8KQEAgLTIyLDEwICsyMSwxMSBAQAogICAgICAgICAgICAgICBtYXRjaDsgc3dpdGNoZWQgdG8gcG5nX2ptcGJ1ZigpIG1hY3JvCiAgICAgLSAxLjAyOiAgYWRkZWQgZXh0cmEgc2V0IG9mIHBhcmVudGhlc2VzIHRvIHBuZ19qbXBidWYoKSBtYWNybzsgZml4ZWQKICAgICAgICAgICAgICAgY29tbWFuZC1saW5lIHBhcnNpbmcgYnVnCisgICAgLSAxLjEwOiAgZW5hYmxlZCAibWVzc2FnZSB3aW5kb3ciL2NvbnNvbGUgKHRoYW5rcyB0byBEYXZpZCBHZWxkcmVpY2gpCiAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAgIENvcHlyaWdodCAoYykgMTk5OC0yMDAwIEdyZWcgUm9lbG9mcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHcmVnIFJvZWxvZnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICAgICBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcywiIHdpdGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQsCiAgICAgICBleHByZXNzIG9yIGltcGxpZWQuICBJbiBubyBldmVudCBzaGFsbCB0aGUgYXV0aG9yIG9yIGNvbnRyaWJ1dG9ycwpAQCAtNTIsMTMgKzUyLDE0IEBACiAKICNkZWZpbmUgUFJPR05BTUUgICJycG5nLXdpbiIKICNkZWZpbmUgTE9OR05BTUUgICJTaW1wbGUgUE5HIFZpZXdlciBmb3IgV2luZG93cyIKLSNkZWZpbmUgVkVSU0lPTiAgICIxLjAyIG9mIDE5IE1hcmNoIDIwMDAiCisjZGVmaW5lIFZFUlNJT04gICAiMS4yMCBvZiAyOCBNYXkgMjAwMSIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxjb25pby5oPiAgICAgIC8qIG9ubHkgZm9yIF9nZXRjaCgpICovCiAKIC8qICNkZWZpbmUgREVCVUcgIDogIHRoaXMgZW5hYmxlcyB0aGUgVHJhY2UoKSBtYWNyb3MgKi8KIApAQCAtMTI4LDcgKzEyOSwxNyBAQAogICAgIGZpbGVuYW1lID0gKGNoYXIgKilOVUxMOwogCiAKLSAgICAvKiBGaXJzdCBzZXQgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIG91ciBkaXNwbGF5LXN5c3RlbSBleHBvbmVudCwgaS5lLiwKKyAgICAvKiBGaXJzdCByZWVuYWJsZSBjb25zb2xlIG91dHB1dCwgd2hpY2ggbm9ybWFsbHkgZ29lcyB0byB0aGUgYml0IGJ1Y2tldAorICAgICAqIGZvciB3aW5kb3dlZCBhcHBzLiAgQ2xvc2luZyB0aGUgY29uc29sZSB3aW5kb3cgd2lsbCB0ZXJtaW5hdGUgdGhlCisgICAgICogYXBwLiAgVGhhbmtzIHRvIERhdmlkLkdlbGRyZWljaEByZWFsdml6LmNvbSBmb3Igc3VwcGx5aW5nIHRoZSBtYWdpY2FsCisgICAgICogaW5jYW50YXRpb24uICovCisKKyAgICBBbGxvY0NvbnNvbGUoKTsKKyAgICBmcmVvcGVuKCJDT05PVVQkIiwgImEiLCBzdGRlcnIpOworICAgIGZyZW9wZW4oIkNPTk9VVCQiLCAiYSIsIHN0ZG91dCk7CisKKworICAgIC8qIE5leHQgc2V0IHRoZSBkZWZhdWx0IHZhbHVlIGZvciBvdXIgZGlzcGxheS1zeXN0ZW0gZXhwb25lbnQsIGkuZS4sCiAgICAgICogdGhlIHByb2R1Y3Qgb2YgdGhlIENSVCBleHBvbmVudCBhbmQgdGhlIGV4cG9uZW50IGNvcnJlc3BvbmRpbmcgdG8KICAgICAgKiB0aGUgZnJhbWUtYnVmZmVyJ3MgbG9va3VwIHRhYmxlIChMVVQpLCBpZiBhbnkuICBUaGlzIGlzIG5vdCBhbgogICAgICAqIGV4aGF1c3RpdmUgbGlzdCBvZiBMVVQgdmFsdWVzIChlLmcuLCBPcGVuU3RlcCBoYXMgYSBsb3Qgb2Ygd2VpcmQKQEAgLTI3MiwyMCArMjgzLDMxIEBACiAgICAgLyogdXNhZ2Ugc2NyZWVuICovCiAKICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiVzICVzOiAgJXNcbiIsIFBST0dOQU1FLCBWRVJTSU9OLCBhcHBuYW1lKTsKKyAgICAgICAgaW50IGNoOworCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4lcyAlczogICVzXG5cbiIsIFBST0dOQU1FLCBWRVJTSU9OLCBhcHBuYW1lKTsKICAgICAgICAgcmVhZHBuZ192ZXJzaW9uX2luZm8oKTsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIKLSAgICAgICAgICJVc2FnZTogICVzIFstZ2FtbWEgZXhwXSBbLWJnY29sb3IgYmddIGZpbGUucG5nXG4iCi0gICAgICAgICAiICAgIGV4cCBcdHRyYW5zZmVyLWZ1bmN0aW9uIGV4cG9uZW50IChgYGdhbW1hJycpIG9mIHRoZSBkaXNwbGF5XG4iCi0gICAgICAgICAiXHRcdCAgc3lzdGVtIGluIGZsb2F0aW5nLXBvaW50IGZvcm1hdCAoZS5nLiwgYGAlLjFmJycpOyBlcXVhbFxuIgotICAgICAgICAgIlx0XHQgIHRvIHRoZSBwcm9kdWN0IG9mIHRoZSBsb29rdXAtdGFibGUgZXhwb25lbnQgKHZhcmllcylcbiIKLSAgICAgICAgICJcdFx0ICBhbmQgdGhlIENSVCBleHBvbmVudCAodXN1YWxseSAyLjIpOyBtdXN0IGJlIHBvc2l0aXZlXG4iCi0gICAgICAgICAiICAgIGJnICBcdGRlc2lyZWQgYmFja2dyb3VuZCBjb2xvciBpbiA3LWNoYXJhY3RlciBoZXggUkdCIGZvcm1hdFxuIgotICAgICAgICAgIlx0XHQgIChlLmcuLCBgYCNmZjc3MDAnJyBmb3Igb3JhbmdlOiAgc2FtZSBhcyBIVE1MIGNvbG9ycyk7XG4iCi0gICAgICAgICAiXHRcdCAgdXNlZCB3aXRoIHRyYW5zcGFyZW50IGltYWdlc1xuIgotICAgICAgICAgIlxuUHJlc3MgUSwgRXNjIG9yIG1vdXNlIGJ1dHRvbiAxIGFmdGVyIGltYWdlIGlzIGRpc3BsYXllZCB0byBxdWl0LlxuIgotICAgICAgICAgIlxuIiwgUFJPR05BTUUsIGRlZmF1bHRfZGlzcGxheV9leHBvbmVudCk7CisgICAgICAgICAgIlVzYWdlOiAgJXMgWy1nYW1tYSBleHBdIFstYmdjb2xvciBiZ10gZmlsZS5wbmdcbiIKKyAgICAgICAgICAiICAgIGV4cCBcdHRyYW5zZmVyLWZ1bmN0aW9uIGV4cG9uZW50IChgYGdhbW1hJycpIG9mIHRoZSBkaXNwbGF5XG4iCisgICAgICAgICAgIlx0XHQgIHN5c3RlbSBpbiBmbG9hdGluZy1wb2ludCBmb3JtYXQgKGUuZy4sIGBgJS4xZicnKTsgZXF1YWxcbiIKKyAgICAgICAgICAiXHRcdCAgdG8gdGhlIHByb2R1Y3Qgb2YgdGhlIGxvb2t1cC10YWJsZSBleHBvbmVudCAodmFyaWVzKVxuIgorICAgICAgICAgICJcdFx0ICBhbmQgdGhlIENSVCBleHBvbmVudCAodXN1YWxseSAyLjIpOyBtdXN0IGJlIHBvc2l0aXZlXG4iCisgICAgICAgICAgIiAgICBiZyAgXHRkZXNpcmVkIGJhY2tncm91bmQgY29sb3IgaW4gNy1jaGFyYWN0ZXIgaGV4IFJHQiBmb3JtYXRcbiIKKyAgICAgICAgICAiXHRcdCAgKGUuZy4sIGBgI2ZmNzcwMCcnIGZvciBvcmFuZ2U6ICBzYW1lIGFzIEhUTUwgY29sb3JzKTtcbiIKKyAgICAgICAgICAiXHRcdCAgdXNlZCB3aXRoIHRyYW5zcGFyZW50IGltYWdlc1xuIgorICAgICAgICAgICJcblByZXNzIFEsIEVzYyBvciBtb3VzZSBidXR0b24gMSBhZnRlciBpbWFnZSBpcyBkaXNwbGF5ZWQgdG8gcXVpdC5cbiIKKyAgICAgICAgICAiUHJlc3MgUSBvciBFc2MgdG8gcXVpdCB0aGlzIHVzYWdlIHNjcmVlbi5cbiIKKyAgICAgICAgICAiXG4iLCBQUk9HTkFNRSwgZGVmYXVsdF9kaXNwbGF5X2V4cG9uZW50KTsKKyAgICAgICAgZG8KKyAgICAgICAgICAgIGNoID0gX2dldGNoKCk7CisgICAgICAgIHdoaWxlIChjaCAhPSAncScgJiYgY2ggIT0gJ1EnICYmIGNoICE9IDB4MUIpOwogICAgICAgICBleGl0KDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4lcyAlczogICVzXG4iLCBQUk9HTkFNRSwgVkVSU0lPTiwgYXBwbmFtZSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICJcbiAgIFtjb25zb2xlIHdpbmRvdzogIGNsb3NpbmcgdGhpcyB3aW5kb3cgd2lsbCB0ZXJtaW5hdGUgJXNdXG5cbiIsCisgICAgICAgICAgUFJPR05BTUUpOwogICAgIH0KIAogCmRpZmYgLS1naXQgYS9jb250cmliL2dyZWdib29rL3JwbmcteC5jIGIvY29udHJpYi9ncmVnYm9vay9ycG5nLXguYwppbmRleCBhZWE5NzVkLi5kM2RjODlhIDEwMDY0NAotLS0gYS9jb250cmliL2dyZWdib29rL3JwbmcteC5jCisrKyBiL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZy14LmMKQEAgLTIxLDEwICsyMSwxMSBAQAogICAgIC0gMS4xMDogIGFkZGVkIHN1cHBvcnQgZm9yIG5vbi1kZWZhdWx0IHZpc3VhbHM7IGZpeGVkIFggcGl4ZWwtY29udmVyc2lvbgogICAgIC0gMS4xMTogIGFkZGVkIGV4dHJhIHNldCBvZiBwYXJlbnRoZXNlcyB0byBwbmdfam1wYnVmKCkgbWFjcm87IGZpeGVkCiAgICAgICAgICAgICAgIGNvbW1hbmQtbGluZSBwYXJzaW5nIGJ1ZworICAgIC0gMS4xMjogIGZpeGVkIHNtYWxsIFggbWVtb3J5IGxlYWsgKHRoYW5rcyB0byBGcmFuY29pcyBQZXRpdGplYW4pCiAKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAgIENvcHlyaWdodCAoYykgMTk5OC0yMDAwIEdyZWcgUm9lbG9mcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHcmVnIFJvZWxvZnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICAgICBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcywiIHdpdGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQsCiAgICAgICBleHByZXNzIG9yIGltcGxpZWQuICBJbiBubyBldmVudCBzaGFsbCB0aGUgYXV0aG9yIG9yIGNvbnRyaWJ1dG9ycwpAQCAtNTEsNyArNTIsNyBAQAogCiAjZGVmaW5lIFBST0dOQU1FICAicnBuZy14IgogI2RlZmluZSBMT05HTkFNRSAgIlNpbXBsZSBQTkcgVmlld2VyIGZvciBYIgotI2RlZmluZSBWRVJTSU9OICAgIjEuMTEgb2YgMTkgTWFyY2ggMjAwMCIKKyNkZWZpbmUgVkVSU0lPTiAgICIxLjEyIG9mIDI4IE1heSAyMDAxIgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTU0Miw2ICs1NDMsMTYgQEAKICAgICBYU2V0V01Qcm9wZXJ0aWVzKGRpc3BsYXksIHdpbmRvdywgcFdpbmRvd05hbWUsIHBJY29uTmFtZSwgTlVMTCwgMCwKICAgICAgIHNpemVfaGludHMsIHdtX2hpbnRzLCBOVUxMKTsKIAorICAgIC8qIHZhcmlvdXMgcHJvcGVydGllcyBhbmQgaGludHMgbm8gbG9uZ2VyIG5lZWRlZDsgZnJlZSBtZW1vcnkgKi8KKyAgICBpZiAocFdpbmRvd05hbWUpCisgICAgICAgWEZyZWUocFdpbmRvd05hbWUtPnZhbHVlKTsKKyAgICBpZiAocEljb25OYW1lKQorICAgICAgIFhGcmVlKHBJY29uTmFtZS0+dmFsdWUpOworICAgIGlmIChzaXplX2hpbnRzKQorICAgICAgICBYRnJlZShzaXplX2hpbnRzKTsKKyAgICBpZiAod21faGludHMpCisgICAgICAgWEZyZWUod21faGludHMpOworCiAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCB3aW5kb3cpOwogCiAgICAgZ2MgPSBYQ3JlYXRlR0MoZGlzcGxheSwgd2luZG93LCAwLCAmZ2N2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9ncmVnYm9vay9ycG5nMi13aW4uYyBiL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZzItd2luLmMKaW5kZXggZDYwNzNmZi4uNmNiZDBmYSAxMDA2NDQKLS0tIGEvY29udHJpYi9ncmVnYm9vay9ycG5nMi13aW4uYworKysgYi9jb250cmliL2dyZWdib29rL3JwbmcyLXdpbi5jCkBAIC0yNCw3ICsyNCw3IEBACiAgICAgLSAxLjAzOiAgbW9kaWZpZWQgdG8gYWxsb3cgYWJicmV2aWF0ZWQgb3B0aW9ucwogICAgIC0gMS4wNDogIHJlbW92ZWQgYm9ndXMgZXh0cmEgYXJndW1lbnQgZnJvbSB1c2FnZSBmcHJpbnRmKCkgW0dsZW5uIFItUD9dOwogICAgICAgICAgICAgICBmaXhlZCBjb21tYW5kLWxpbmUgcGFyc2luZyBidWcKLSAgICAtIDEuMTA6ICBlbmFibGVkICJtZXNzYWdlIHdpbmRvdyIgKGNvbnNvbGUpLCB0aGFua3MgdG8gRGF2aWQgR2VsZHJlaWNoCisgICAgLSAxLjEwOiAgZW5hYmxlZCAibWVzc2FnZSB3aW5kb3ciL2NvbnNvbGUgKHRoYW5rcyB0byBEYXZpZCBHZWxkcmVpY2gpCiAgICAgLSAxLjIwOiAgYWRkZWQgcnVudGltZSBNTVgtZW5hYmxpbmcvZGlzYWJsaW5nIGFuZCBuZXcgLW1teCogb3B0aW9ucwogCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTYsNyArNTYsNyBAQAogCiAjZGVmaW5lIFBST0dOQU1FICAicnBuZzItd2luIgogI2RlZmluZSBMT05HTkFNRSAgIlByb2dyZXNzaXZlIFBORyBWaWV3ZXIgZm9yIFdpbmRvd3MiCi0jZGVmaW5lIFZFUlNJT04gICAiMS4yMCBvZiAyOSBKYW51YXJ5IDIwMDEiCisjZGVmaW5lIFZFUlNJT04gICAiMS4yMCBvZiAyOCBNYXkgMjAwMSIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CmRpZmYgLS1naXQgYS9jb250cmliL2dyZWdib29rL3JwbmcyLXguYyBiL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZzIteC5jCmluZGV4IDRmOTBlZjAuLjgwYmE3NjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZzIteC5jCisrKyBiL2NvbnRyaWIvZ3JlZ2Jvb2svcnBuZzIteC5jCkBAIC0yNiw2ICsyNiw3IEBACiAgICAgLSAxLjExOiAgYWRkZWQgLXVzbGVlcCBvcHRpb24gZm9yIGRlbW9zOyBmaXhlZCBjb21tYW5kLWxpbmUgcGFyc2luZyBidWcKICAgICAtIDEuMTI6ICBhZGRlZCAtcGF1c2Ugb3B0aW9uIGZvciBkZW1vcyBhbmQgdGVzdGluZwogICAgIC0gMS4yMDogIGFkZGVkIHJ1bnRpbWUgTU1YLWVuYWJsaW5nL2Rpc2FibGluZyBhbmQgbmV3IC1tbXgqIG9wdGlvbnMKKyAgICAtIDEuMjE6ICBmaXhlZCBzbWFsbCBYIG1lbW9yeSBsZWFrICh0aGFua3MgdG8gRnJhbmNvaXMgUGV0aXRqZWFuKQogCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC01Niw3ICs1Nyw3IEBACiAKICNkZWZpbmUgUFJPR05BTUUgICJycG5nMi14IgogI2RlZmluZSBMT05HTkFNRSAgIlByb2dyZXNzaXZlIFBORyBWaWV3ZXIgZm9yIFgiCi0jZGVmaW5lIFZFUlNJT04gICAiMS4yMCBvZiAyOSBKYW51YXJ5IDIwMDEiCisjZGVmaW5lIFZFUlNJT04gICAiMS4yMSBvZiAzMCBNYXkgMjAwMSIKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC01ODUsOCArNTg2LDE1IEBACiAgICAgICogcGF0dGVybiAqLwogCiAgICAgaWYgKHJwbmcyX3hfY3JlYXRlX3dpbmRvdygpKSB7CisKKyAgICAgICAgLyogR1JSIFRFTVBPUkFSWSBIQUNLOiAgdGhpcyBpcyBmdW5kYW1lbnRhbGx5IG5vIGRpZmZlcmVudCBmcm9tIGNhc2VzCisgICAgICAgICAqIGFib3ZlOyBsaWJwbmcgc2hvdWxkIGxvbmdqbXAoKSBiYWNrIHRvIHVzIHdoZW4gcG5nX3B0ciBnb2VzIGF3YXkuCisgICAgICAgICAqIElmIHdlL2l0IHNlZ2ZhdWx0IGluc3RlYWQsIHNlZW1zIGxpa2UgYSBsaWJwbmcgYnVnLi4uICovCisKKyAgICAgICAgLyogd2UncmUgaGVyZSB2aWEgbGlicG5nIGNhbGxiYWNrLCBzbyBpZiB3aW5kb3cgZmFpbHMsIGNsZWFuIGFuZCBiYWlsICovCiAgICAgICAgIHJlYWRwbmcyX2NsZWFudXAoJnJwbmcyX2luZm8pOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJwbmcyX3hfY2xlYW51cCgpOworICAgICAgICBleGl0KDIpOwogICAgIH0KIH0KIApAQCAtNzM4LDYgKzc0NiwxNiBAQAogICAgIFhTZXRXTVByb3BlcnRpZXMoZGlzcGxheSwgd2luZG93LCBwV2luZG93TmFtZSwgcEljb25OYW1lLCBOVUxMLCAwLAogICAgICAgc2l6ZV9oaW50cywgd21faGludHMsIE5VTEwpOwogCisgICAgLyogdmFyaW91cyBwcm9wZXJ0aWVzIGFuZCBoaW50cyBubyBsb25nZXIgbmVlZGVkOyBmcmVlIG1lbW9yeSAqLworICAgIGlmIChwV2luZG93TmFtZSkKKyAgICAgICBYRnJlZShwV2luZG93TmFtZS0+dmFsdWUpOworICAgIGlmIChwSWNvbk5hbWUpCisgICAgICAgWEZyZWUocEljb25OYW1lLT52YWx1ZSk7CisgICAgaWYgKHNpemVfaGludHMpCisgICAgICAgIFhGcmVlKHNpemVfaGludHMpOworICAgIGlmICh3bV9oaW50cykKKyAgICAgICBYRnJlZSh3bV9oaW50cyk7CisKICAgICBYTWFwV2luZG93KGRpc3BsYXksIHdpbmRvdyk7CiAKICAgICBnYyA9IFhDcmVhdGVHQyhkaXNwbGF5LCB3aW5kb3csIDAsICZnY3ZhbHVlcyk7CmRpZmYgLS1naXQgYS9leGFtcGxlLmMgYi9leGFtcGxlLmMKaW5kZXggZjBmZTY4OC4uMGYwYWQ1ZiAxMDA2NDQKLS0tIGEvZXhhbXBsZS5jCisrKyBiL2V4YW1wbGUuYwpAQCAtMTk0LDE3ICsxOTQsMTcgQEAKIAogICAgLyogRXhwYW5kIHBhbGV0dGVkIGNvbG9ycyBpbnRvIHRydWUgUkdCIHRyaXBsZXRzICovCiAgICBpZiAoY29sb3JfdHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9QQUxFVFRFKQotICAgICAgcG5nX3NldF9leHBhbmQocG5nX3B0cik7CisgICAgICBwbmdfc2V0X3BhbGV0dGVfcmdiKHBuZ19wdHIpOwogCiAgICAvKiBFeHBhbmQgZ3JheXNjYWxlIGltYWdlcyB0byB0aGUgZnVsbCA4IGJpdHMgZnJvbSAxLCAyLCBvciA0IGJpdHMvcGl4ZWwgKi8KICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX0dSQVkgJiYgYml0X2RlcHRoIDwgOCkKLSAgICAgIHBuZ19zZXRfZXhwYW5kKHBuZ19wdHIpOworICAgICAgcG5nX3NldF9ncmF5XzFfMl80X3RvXzgocG5nX3B0cik7CiAKICAgIC8qIEV4cGFuZCBwYWxldHRlZCBvciBSR0IgaW1hZ2VzIHdpdGggdHJhbnNwYXJlbmN5IHRvIGZ1bGwgYWxwaGEgY2hhbm5lbHMKICAgICAqIHNvIHRoZSBkYXRhIHdpbGwgYmUgYXZhaWxhYmxlIGFzIFJHQkEgcXVhcnRldHMuCiAgICAgKi8KICAgIGlmIChwbmdfZ2V0X3ZhbGlkKHBuZ19wdHIsIGluZm9fcHRyLCBQTkdfSU5GT190Uk5TKSkKLSAgICAgIHBuZ19zZXRfZXhwYW5kKHBuZ19wdHIpOworICAgICAgcG5nX3NldF90Uk5TX3RvX2FscGhhKHBuZ19wdHIpOwogCiAgICAvKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3IgdG8gZHJhdyB0cmFuc3BhcmVudCBhbmQgYWxwaGEgaW1hZ2VzIG92ZXIuCiAgICAgKiBJdCBpcyBwb3NzaWJsZSB0byBzZXQgdGhlIHJlZCwgZ3JlZW4sIGFuZCBibHVlIGNvbXBvbmVudHMgZGlyZWN0bHkKQEAgLTM2Miw4ICszNjIsNiBAQAogICAgICAgewogI2lmZGVmIHNwYXJrbGUgLyogUmVhZCB0aGUgaW1hZ2UgdXNpbmcgdGhlICJzcGFya2xlIiBlZmZlY3QuICovCiAgICAgICAgICBwbmdfcmVhZF9yb3dzKHBuZ19wdHIsICZyb3dfcG9pbnRlcnNbeV0sIE5VTEwsIG51bWJlcl9vZl9yb3dzKTsKLQotICAgICAgICAgcG5nX3JlYWRfcm93cyhwbmdfcHRyLCBOVUxMLCByb3dfcG9pbnRlcnNbeV0sIG51bWJlcl9vZl9yb3dzKTsKICNlbHNlIG5vX3NwYXJrbGUgLyogUmVhZCB0aGUgaW1hZ2UgdXNpbmcgdGhlICJyZWN0YW5nbGUiIGVmZmVjdCAqLwogICAgICAgICAgcG5nX3JlYWRfcm93cyhwbmdfcHRyLCBOVUxMLCAmcm93X3BvaW50ZXJzW3ldLCBudW1iZXJfb2Zfcm93cyk7CiAjZW5kaWYgbm9fc3BhcmtsZSAvKiB1c2Ugb25seSBvbmUgb2YgdGhlc2UgdHdvIG1ldGhvZHMgKi8KZGlmZiAtLWdpdCBhL2xpYnBuZy4zIGIvbGlicG5nLjMKaW5kZXggNDgzYTYzNS4uNWI2NmNhOCAxMDA2NDQKLS0tIGEvbGlicG5nLjMKKysrIGIvbGlicG5nLjMKQEAgLTEsNiArMSw2IEBACi0uVEggTElCUE5HIDMgIk1heSAxOCwgMjAwMSIKKy5USCBMSUJQTkcgMyAiSnVuZSAyMywgMjAwMSIKIC5TSCBOQU1FCi1saWJwbmcgXC0gUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBSZWZlcmVuY2UgTGlicmFyeSAxLjIuMGJldGEzCitsaWJwbmcgXC0gUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBSZWZlcmVuY2UgTGlicmFyeSAxLjIuMGJldGE0CiAuU0ggU1lOT1BTSVMKIFxmSVxmQgogCkBAIC03ODcsNyArNzg3LDcgQEAKIC5TSCBMSUJQTkcuVFhUCiBsaWJwbmcudHh0IC0gQSBkZXNjcmlwdGlvbiBvbiBob3cgdG8gdXNlIGFuZCBtb2RpZnkgbGlicG5nCiAKLSBsaWJwbmcgdmVyc2lvbiAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICBVcGRhdGVkIGFuZCBkaXN0cmlidXRlZCBieSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICA8cmFuZGVnQGFsdW0ucnBpLmVkdT4KICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KQEAgLTIwMzQsOCArMjAzNCw3IEBACiByZXNwb25zaWJpbGl0eSBmb3IgbGlicG5nLWFsbG9jYXRlZCBkYXRhLCB0aGUgYXBwbGljYXRpb24gbXVzdCB1c2UKIHBuZ19mcmVlKCkgdG8gZnJlZSBpdCwgYW5kIHdoZW4gdGhlIHVzZXIgdHJhbnNmZXJzIHJlc3BvbnNpYmlsaXR5IHRvIGxpYnBuZwogZm9yIGRhdGEgdGhhdCB0aGUgdXNlciBoYXMgYWxsb2NhdGVkLCB0aGUgdXNlciBtdXN0IGhhdmUgdXNlZCBwbmdfbWFsbG9jKCkKLW9yIHBuZ196YWxsb2MoKSB0byBhbGxvY2F0ZSBpdCAodGhlIHBuZ196YWxsb2MoKSBmdW5jdGlvbiBpcyB0aGUgc2FtZQotYXMgcG5nX21hbGxvYygpIGV4Y2VwdCB0aGF0IGl0IGFsc28gemVyb2VzIHRoZSBuZXdseS1hbGxvY2F0ZWQgbWVtb3J5KS4KK29yIHBuZ196YWxsb2MoKSB0byBhbGxvY2F0ZSBpdC4KIAogSWYgeW91IGFsbG9jYXRlZCB5b3VyIHJvd19wb2ludGVycyBpbiBhIHNpbmdsZSBibG9jaywgYXMgc3VnZ2VzdGVkIGFib3ZlIGluCiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGhpZ2ggbGV2ZWwgcmVhZCBpbnRlcmZhY2UsIHlvdSBtdXN0IG5vdCB0cmFuc2ZlcgpAQCAtMzYwNiwxMyArMzYwNSwxMyBAQAogCiAuU0ggSVguIFkySyBDb21wbGlhbmNlIGluIGxpYnBuZwogCi1NYXkgMTgsIDIwMDEKK0p1bmUgMjMsIDIwMDEKIAogU2luY2UgdGhlIFBORyBEZXZlbG9wbWVudCBncm91cCBpcyBhbiBhZC1ob2MgYm9keSwgd2UgY2FuJ3QgbWFrZQogYW4gb2ZmaWNpYWwgZGVjbGFyYXRpb24uCiAKIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLXVwd2FyZCB0aHJvdWdoIDEuMi4wYmV0YTMgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCit1cHdhcmQgdGhyb3VnaCAxLjIuMGJldGE0IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgogdmVyc2lvbnMgd2VyZSBhbHNvIFkySyBjb21wbGlhbnQuCiAKIExpYnBuZyBvbmx5IGhhcyB0aHJlZSB5ZWFyIGZpZWxkcy4gIE9uZSBpcyBhIDItYnl0ZSB1bnNpZ25lZCBpbnRlZ2VyIHRoYXQKQEAgLTM3MjQsMTAgKzM3MjMsMTIgQEAKICAxLjAuMTFiZXRhMS0zICAgICAgICAxICAgIDEwMDExICAyLjEuMC4xMWJldGExLTMKICAxLjAuMTFyYzEgICAgICAgICAgICAxICAgIDEwMDExICAyLjEuMC4xMXJjMQogIDEuMC4xMSAgICAgICAgICAgICAgIDEgICAgMTAwMTEgIDIuMS4wLjExCi0gMS4wLjEyYSAgICAgICAgICAgICAgMiAgICAxMDAxMiAgMi4xLjAuMTJhCi0gMS4xLjBhLWYgICAgICAgICAgICAgICAgICAxMDEwMCAgMi4xLjEuMGEtZiBhYmFuZG9uZWQKKyAxLjAuMTJiZXRhMS0yICAgICAgICAyICAgIDEwMDEyICAyLjEuMC4xMmJldGExLTIKKyAxLjAuMTJyYzEgICAgICAgICAgICAyICAgIDEwMDEyICAyLjEuMC4xMnJjMQorIDEuMC4xMiAgICAgICAgICAgICAgIDIgICAgMTAwMTIgIDIuMS4wLjEyCisgMS4xLjBhLWYgICAgICAgICAgICAgLSAgICAxMDEwMCAgMi4xLjEuMGEtZiBhYmFuZG9uZWQKICAxLjIuMGJldGExLTIgICAgICAgICAyICAgIDEwMjAwICAyLjEuMi4wYmV0YTEtMgotIDEuMi4wYmV0YTMgICAgICAgICAgIDMgICAgMTAyMDAgIDMuMS4yLjBiZXRhMworIDEuMi4wYmV0YTMtNCAgICAgICAgIDMgICAgMTAyMDAgIDMuMS4yLjBiZXRhMy00CiAKIEhlbmNlZm9ydGggdGhlIHNvdXJjZSB2ZXJzaW9uIHdpbGwgbWF0Y2ggdGhlIHNoYXJlZC1saWJyYXJ5IG1pbm9yCiBhbmQgcGF0Y2ggbnVtYmVyczsgdGhlIHNoYXJlZC1saWJyYXJ5IG1ham9yIHZlcnNpb24gbnVtYmVyIHdpbGwgYmUKQEAgLTM3ODUsNyArMzc4Niw3IEBACiAKIFRoYW5rcyB0byBGcmFuayBKLiBULiBXb2pjaWsgZm9yIGhlbHBpbmcgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbi4KIAotTGlicG5nIHZlcnNpb24gMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMToKK0xpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxOgogSW5pdGlhbGx5IGNyZWF0ZWQgaW4gMTk5NSBieSBHdXkgRXJpYyBTY2hhbG5hdCwgdGhlbiBvZiBHcm91cCA0MiwgSW5jLgogQ3VycmVudGx5IG1haW50YWluZWQgYnkgR2xlbm4gUmFuZGVycy1QZWhyc29uIChyYW5kZWdAYWx1bS5ycGkuZWR1KS4KIApAQCAtMzgwMiw3ICszODAzLDcgQEAKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjIuMGJldGEzLCBNYXkgMTgsIDIwMDEsIGFyZQorbGlicG5nIHZlcnNpb25zIDEuMC43LCBKdWx5IDEsIDIwMDAsIHRocm91Z2ggIDEuMi4wYmV0YTQsIEp1bmUgMjMsIDIwMDEsIGFyZQogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uLCBhbmQgYXJlCiBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gdGhlIHNhbWUgZGlzY2xhaW1lciBhbmQgbGljZW5zZSBhcyBsaWJwbmctMS4wLjYKIHdpdGggdGhlIGZvbGxvd2luZyBpbmRpdmlkdWFscyBhZGRlZCB0byB0aGUgbGlzdCBvZiBDb250cmlidXRpbmcgQXV0aG9ycwpAQCAtMzg5NCw3ICszODk1LDcgQEAKIAogR2xlbm4gUmFuZGVycy1QZWhyc29uCiByYW5kZWdAYWx1bS5ycGkuZWR1Ci1NYXkgMTgsIDIwMDEKK0p1bmUgMjMsIDIwMDEKIAogLlwiIGVuZCBvZiBtYW4gcGFnZQogCmRpZmYgLS1naXQgYS9saWJwbmcudHh0IGIvbGlicG5nLnR4dAppbmRleCAyMjk2YjNhLi4wYjgwNTY4IDEwMDY0NAotLS0gYS9saWJwbmcudHh0CisrKyBiL2xpYnBuZy50eHQKQEAgLTEsNiArMSw2IEBACiBsaWJwbmcudHh0IC0gQSBkZXNjcmlwdGlvbiBvbiBob3cgdG8gdXNlIGFuZCBtb2RpZnkgbGlicG5nCiAKLSBsaWJwbmcgdmVyc2lvbiAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICBVcGRhdGVkIGFuZCBkaXN0cmlidXRlZCBieSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICA8cmFuZGVnQGFsdW0ucnBpLmVkdT4KICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KQEAgLTEyNDcsOCArMTI0Nyw3IEBACiByZXNwb25zaWJpbGl0eSBmb3IgbGlicG5nLWFsbG9jYXRlZCBkYXRhLCB0aGUgYXBwbGljYXRpb24gbXVzdCB1c2UKIHBuZ19mcmVlKCkgdG8gZnJlZSBpdCwgYW5kIHdoZW4gdGhlIHVzZXIgdHJhbnNmZXJzIHJlc3BvbnNpYmlsaXR5IHRvIGxpYnBuZwogZm9yIGRhdGEgdGhhdCB0aGUgdXNlciBoYXMgYWxsb2NhdGVkLCB0aGUgdXNlciBtdXN0IGhhdmUgdXNlZCBwbmdfbWFsbG9jKCkKLW9yIHBuZ196YWxsb2MoKSB0byBhbGxvY2F0ZSBpdCAodGhlIHBuZ196YWxsb2MoKSBmdW5jdGlvbiBpcyB0aGUgc2FtZQotYXMgcG5nX21hbGxvYygpIGV4Y2VwdCB0aGF0IGl0IGFsc28gemVyb2VzIHRoZSBuZXdseS1hbGxvY2F0ZWQgbWVtb3J5KS4KK29yIHBuZ196YWxsb2MoKSB0byBhbGxvY2F0ZSBpdC4KIAogSWYgeW91IGFsbG9jYXRlZCB5b3VyIHJvd19wb2ludGVycyBpbiBhIHNpbmdsZSBibG9jaywgYXMgc3VnZ2VzdGVkIGFib3ZlIGluCiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGhpZ2ggbGV2ZWwgcmVhZCBpbnRlcmZhY2UsIHlvdSBtdXN0IG5vdCB0cmFuc2ZlcgpAQCAtMjgxOSwxMyArMjgxOCwxMyBAQAogCiBJWC4gWTJLIENvbXBsaWFuY2UgaW4gbGlicG5nCiAKLU1heSAxOCwgMjAwMQorSnVuZSAyMywgMjAwMQogCiBTaW5jZSB0aGUgUE5HIERldmVsb3BtZW50IGdyb3VwIGlzIGFuIGFkLWhvYyBib2R5LCB3ZSBjYW4ndCBtYWtlCiBhbiBvZmZpY2lhbCBkZWNsYXJhdGlvbi4KIAogVGhpcyBpcyB5b3VyIHVub2ZmaWNpYWwgYXNzdXJhbmNlIHRoYXQgbGlicG5nIGZyb20gdmVyc2lvbiAwLjcxIGFuZAotdXB3YXJkIHRocm91Z2ggMS4yLjBiZXRhMyBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKK3Vwd2FyZCB0aHJvdWdoIDEuMi4wYmV0YTQgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KIAogTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIgdGhhdApkaWZmIC0tZ2l0IGEvbGlicG5ncGYuMyBiL2xpYnBuZ3BmLjMKaW5kZXggNzkxMTNhMi4uZjNiZjk5NyAxMDA2NDQKLS0tIGEvbGlicG5ncGYuMworKysgYi9saWJwbmdwZi4zCkBAIC0xLDYgKzEsNiBAQAotLlRIIExJQlBOR1BGIDMgIk1heSAxOCwgMjAwMSIKKy5USCBMSUJQTkdQRiAzICJKdW5lIDIzLCAyMDAxIgogLlNIIE5BTUUKLWxpYnBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIFJlZmVyZW5jZSBMaWJyYXJ5IDEuMi4wYmV0YTMKK2xpYnBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIFJlZmVyZW5jZSBMaWJyYXJ5IDEuMi4wYmV0YTQKIChwcml2YXRlIGZ1bmN0aW9ucykKIC5TSCBTWU5PUFNJUwogXGZCI2luY2x1ZGUgPHBuZy5oPlxmUApkaWZmIC0tZ2l0IGEvcG5nLjUgYi9wbmcuNQppbmRleCA5ZjU1MDcyLi5mZWFiZTgzIDEwMDY0NAotLS0gYS9wbmcuNQorKysgYi9wbmcuNQpAQCAtMSw0ICsxLDQgQEAKLS5USCBQTkcgNSAiTWF5IDE4LCAyMDAxIgorLlRIIFBORyA1ICJKdW5lIDIzLCAyMDAxIgogLlNIIE5BTUUKIHBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIGZvcm1hdAogLlNIIERFU0NSSVBUSU9OCmRpZmYgLS1naXQgYS9wbmcuYyBiL3BuZy5jCmluZGV4IDVmM2E2OWMuLjNlMmMwMWQgMTAwNjQ0Ci0tLSBhL3BuZy5jCisrKyBiL3BuZy5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmcuYyAtIGxvY2F0aW9uIGZvciBnZW5lcmFsIHB1cnBvc2UgbGlicG5nIGZ1bmN0aW9ucwogICoKLSAqIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQpAQCAtMTMsMTQgKzEzLDE0IEBACiAjaW5jbHVkZSAicG5nLmgiCiAKIC8qIEdlbmVyYXRlIGEgY29tcGlsZXIgZXJyb3IgaWYgdGhlcmUgaXMgYW4gb2xkIHBuZy5oIGluIHRoZSBzZWFyY2ggcGF0aC4gKi8KLXR5cGVkZWYgdmVyc2lvbl8xXzJfMGJldGEzIFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8yXzBiZXRhMzsKK3R5cGVkZWYgdmVyc2lvbl8xXzJfMGJldGE0IFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8yXzBiZXRhNDsKIAogLyogVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgQyBmaWxlcy4gIFRoaXMgaGFkIGJldHRlciBtYXRjaCB0aGUgdmVyc2lvbgogICogc3RyaW5nIGRlZmluZWQgaW4gcG5nLmguICAqLwogCiAjaWZkZWYgUE5HX1VTRV9HTE9CQUxfQVJSQVlTCiAvKiBwbmdfbGlicG5nX3ZlciB3YXMgY2hhbmdlZCB0byBhIGZ1bmN0aW9uIGluIHZlcnNpb24gMS4wLjVjICovCi1jb25zdCBjaGFyIHBuZ19saWJwbmdfdmVyWzE4XSA9ICIxLjIuMGJldGEzIjsKK2NvbnN0IGNoYXIgcG5nX2xpYnBuZ192ZXJbMThdID0gIjEuMi4wYmV0YTQiOwogCiAvKiBwbmdfc2lnIHdhcyBjaGFuZ2VkIHRvIGEgZnVuY3Rpb24gaW4gdmVyc2lvbiAxLjAuNWMgKi8KIC8qIFBsYWNlIHRvIGhvbGQgdGhlIHNpZ25hdHVyZSBzdHJpbmcgZm9yIGEgUE5HIGZpbGUuICovCkBAIC01NTEsNyArNTUxLDcgQEAKICAgIGlmIChwbmdfcHRyLT5udW1fY2h1bmtfbGlzdCkKICAgIHsKICAgICAgICBwbmdfZnJlZShwbmdfcHRyLCBwbmdfcHRyLT5jaHVua19saXN0KTsKLSAgICAgICBwbmdfcHRyLT5jaHVua19saXN0PU5VTEw7CisgICAgICAgcG5nX3B0ci0+Y2h1bmtfbGlzdD0ocG5nX2J5dGVwKU5VTEw7CiAgICAgICAgcG5nX3B0ci0+bnVtX2NodW5rX2xpc3Q9MDsKICAgIH0KICNlbmRpZgpAQCAtNjQ2LDcgKzY0Niw3IEBACiBwbmdfZ2V0X2NvcHlyaWdodChwbmdfc3RydWN0cCBwbmdfcHRyKQogewogICAgaWYgKHBuZ19wdHIgIT0gTlVMTCB8fCBwbmdfcHRyID09IE5VTEwpICAvKiBzaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmcgKi8KLSAgIHJldHVybiAoKHBuZ19jaGFycCkgIlxuIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDFcblwKKyAgIHJldHVybiAoKHBuZ19jaGFycCkgIlxuIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxXG5cCiAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb25cblwKICAgIENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlclxuXAogICAgQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IEd1eSBFcmljIFNjaGFsbmF0LCBHcm91cCA0MiwgSW5jLlxuIik7CkBAIC02NjQsOCArNjY0LDggQEAKIHsKICAgIC8qIFZlcnNpb24gb2YgKi5jIGZpbGVzIHVzZWQgd2hlbiBidWlsZGluZyBsaWJwbmcgKi8KICAgIGlmKHBuZ19wdHIgIT0gTlVMTCkgLyogc2lsZW5jZSBjb21waWxlciB3YXJuaW5nIGFib3V0IHVudXNlZCBwbmdfcHRyICovCi0gICAgICByZXR1cm4oKHBuZ19jaGFycCkgIjEuMi4wYmV0YTMiKTsKLSAgIHJldHVybigocG5nX2NoYXJwKSAiMS4yLjBiZXRhMyIpOworICAgICAgcmV0dXJuKChwbmdfY2hhcnApICIxLjIuMGJldGE0Iik7CisgICByZXR1cm4oKHBuZ19jaGFycCkgIjEuMi4wYmV0YTQiKTsKIH0KIAogcG5nX2NoYXJwIFBOR0FQSQpkaWZmIC0tZ2l0IGEvcG5nLmggYi9wbmcuaAppbmRleCBkN2QwMWZlLi42ZGI0ZTBjIDEwMDY0NAotLS0gYS9wbmcuaAorKysgYi9wbmcuaApAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nLmggLSBoZWFkZXIgZmlsZSBmb3IgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5CiAgKgotICogbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCiAgKiAoVmVyc2lvbiAwLjg4IENvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4pCkBAIC05LDcgKzksNyBAQAogICogQXV0aG9ycyBhbmQgbWFpbnRhaW5lcnM6CiAgKiAgbGlicG5nIHZlcnNpb25zIDAuNzEsIE1heSAxOTk1LCB0aHJvdWdoIDAuODgsIEphbnVhcnkgMTk5NjogR3V5IFNjaGFsbmF0CiAgKiAgbGlicG5nIHZlcnNpb25zIDAuODljLCBKdW5lIDE5OTYsIHRocm91Z2ggMC45NiwgTWF5IDE5OTc6IEFuZHJlYXMgRGlsZ2VyCi0gKiAgbGlicG5nIHZlcnNpb25zIDAuOTcsIEphbnVhcnkgMTk5OCwgdGhyb3VnaCAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxOiBHbGVubgorICogIGxpYnBuZyB2ZXJzaW9ucyAwLjk3LCBKYW51YXJ5IDE5OTgsIHRocm91Z2ggMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDE6IEdsZW5uCiAgKiAgU2VlIGFsc28gIkNvbnRyaWJ1dGluZyBBdXRob3JzIiwgYmVsb3cuCiAgKgogICogTm90ZSBhYm91dCBsaWJwbmcgdmVyc2lvbiBudW1iZXJzOgpAQCAtNzAsMTAgKzcwLDEyIEBACiAgKiAgICAxLjAuMTFiZXRhMS0zICAgICAgICAgICAgMSAgICAxMDAxMSAgMi4xLjAuMTFiZXRhMS0zCiAgKiAgICAxLjAuMTFyYzEgICAgICAgICAgICAgICAgMSAgICAxMDAxMSAgMi4xLjAuMTFyYzEKICAqICAgIDEuMC4xMSAgICAgICAgICAgICAgICAgICAxICAgIDEwMDExICAyLjEuMC4xMQotICogICAgMS4wLjEyYSAgICAgICAgICAgICAgICAgIDIgICAgMTAwMTIgIDIuMS4wLjEyYQotICogICAgMS4xLjBhLWYgICAgICAgICAgICAgICAgICAgICAgMTAxMDAgIDIuMS4xLjBhLWYgKGJyYW5jaCBhYmFuZG9uZWQpCisgKiAgICAxLjAuMTJiZXRhMS0yICAgICAgICAgICAgMiAgICAxMDAxMiAgMi4xLjAuMTJiZXRhMS0yCisgKiAgICAxLjAuMTJyYzEgICAgICAgICAgICAgICAgMiAgICAxMDAxMiAgMi4xLjAuMTJyYzEKKyAqICAgIDEuMC4xMiAgICAgICAgICAgICAgICAgICAyICAgIDEwMDEyICAyLjEuMC4xMgorICogICAgMS4xLjBhLWYgICAgICAgICAgICAgICAgIC0gICAgMTAxMDAgIDIuMS4xLjBhLWYgKGJyYW5jaCBhYmFuZG9uZWQpCiAgKiAgICAxLjIuMGJldGExLTIgICAgICAgICAgICAgMiAgICAxMDIwMCAgMi4xLjIuMGJldGExLTIKLSAqICAgIDEuMi4wYmV0YTMgICAgICAgICAgICAgICAzICAgIDEwMjAwICAzLjEuMi4wYmV0YTMKKyAqICAgIDEuMi4wYmV0YTMtNCAgICAgICAgICAgICAzICAgIDEwMjAwICAzLjEuMi4wYmV0YTMtNAogICoKICAqICAgIEhlbmNlZm9ydGggdGhlIHNvdXJjZSB2ZXJzaW9uIHdpbGwgbWF0Y2ggdGhlIHNoYXJlZC1saWJyYXJ5IG1ham9yCiAgKiAgICBhbmQgbWlub3IgbnVtYmVyczsgdGhlIHNoYXJlZC1saWJyYXJ5IG1ham9yIHZlcnNpb24gbnVtYmVyIHdpbGwgYmUKQEAgLTEwMyw3ICsxMDUsNyBAQAogICogSWYgeW91IG1vZGlmeSBsaWJwbmcgeW91IG1heSBpbnNlcnQgYWRkaXRpb25hbCBub3RpY2VzIGltbWVkaWF0ZWx5IGZvbGxvd2luZwogICogdGhpcyBzZW50ZW5jZS4KICAqCi0gKiBsaWJwbmcgdmVyc2lvbnMgMS4wLjcsIEp1bHkgMSwgMjAwMCwgdGhyb3VnaCAgMS4yLjBiZXRhMywgTWF5IDE4LCAyMDAxLCBhcmUKKyAqIGxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjIuMGJldGE0LCBKdW5lIDIzLCAyMDAxLCBhcmUKICAqIENvcHlyaWdodCAoYykgMjAwMCwgMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24sIGFuZCBhcmUKICAqIGRpc3RyaWJ1dGVkIGFjY29yZGluZyB0byB0aGUgc2FtZSBkaXNjbGFpbWVyIGFuZCBsaWNlbnNlIGFzIGxpYnBuZy0xLjAuNgogICogd2l0aCB0aGUgZm9sbG93aW5nIGluZGl2aWR1YWxzIGFkZGVkIHRvIHRoZSBsaXN0IG9mIENvbnRyaWJ1dGluZyBBdXRob3JzCkBAIC0yMDgsMTMgKzIxMCwxMyBAQAogICogWTJLIGNvbXBsaWFuY2UgaW4gbGlicG5nOgogICogPT09PT09PT09PT09PT09PT09PT09PT09PQogICoKLSAqICAgIE1heSAxOCwgMjAwMQorICogICAgSnVuZSAyMywgMjAwMQogICoKICAqICAgIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKICAqICAgIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogICoKICAqICAgIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLSAqICAgIHVwd2FyZCB0aHJvdWdoIDEuMi4wYmV0YTMgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCisgKiAgICB1cHdhcmQgdGhyb3VnaCAxLjIuMGJldGE0IGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgogICogICAgdmVyc2lvbnMgd2VyZSBhbHNvIFkySyBjb21wbGlhbnQuCiAgKgogICogICAgTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIKQEAgLTI3MCw3ICsyNzIsNyBAQAogICovCiAKIC8qIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIHBuZy5oIC0gdGhpcyBzaG91bGQgbWF0Y2ggdGhlIHZlcnNpb24gaW4gcG5nLmMgKi8KLSNkZWZpbmUgUE5HX0xJQlBOR19WRVJfU1RSSU5HICIxLjIuMGJldGEzIgorI2RlZmluZSBQTkdfTElCUE5HX1ZFUl9TVFJJTkcgIjEuMi4wYmV0YTQiCiAKICNkZWZpbmUgUE5HX0xJQlBOR19WRVJfU09OVU0gICAzCiAjZGVmaW5lIFBOR19MSUJQTkdfVkVSX0RMTE5VTSAgJURMTE5VTSUKQEAgLTI4Miw3ICsyODQsNyBAQAogLyogVGhpcyBzaG91bGQgbWF0Y2ggdGhlIG51bWVyaWMgcGFydCBvZiB0aGUgZmluYWwgY29tcG9uZW50IG9mCiAgKiBQTkdfTElCUE5HX1ZFUl9TVFJJTkcsIG9taXR0aW5nIGFueSBsZWFkaW5nIHplcm86ICovCiAKLSNkZWZpbmUgUE5HX0xJQlBOR19WRVJfQlVJTEQgIDMKKyNkZWZpbmUgUE5HX0xJQlBOR19WRVJfQlVJTEQgIDQKIAogI2RlZmluZSBQTkdfTElCUE5HX0JVSUxEX0FMUEhBICAgIDEKICNkZWZpbmUgUE5HX0xJQlBOR19CVUlMRF9CRVRBICAgICAyCkBAIC0xMjEwLDkgKzEyMTIsOSBAQAogCiAKIC8qIFRoaXMgcHJldmVudHMgYSBjb21waWxlciBlcnJvciBpbiBwbmdfZ2V0X2NvcHlyaWdodCgpIGluIHBuZy5jIGlmIHBuZy5jCi0gICBhbmQgcG5nLmggYXJlIGJvdGggYXQgdmVyc2lvbiAxLjIuMGJldGEzCisgICBhbmQgcG5nLmggYXJlIGJvdGggYXQgdmVyc2lvbiAxLjIuMGJldGE0CiAgKi8KLXR5cGVkZWYgcG5nX3N0cnVjdHAgdmVyc2lvbl8xXzJfMGJldGEzOwordHlwZWRlZiBwbmdfc3RydWN0cCB2ZXJzaW9uXzFfMl8wYmV0YTQ7CiAKIHR5cGVkZWYgcG5nX3N0cnVjdCBGQVIgKiBGQVIgKiBwbmdfc3RydWN0cHA7CiAKQEAgLTEyOTYsNyArMTI5OCw3IEBACiAKIC8qIEluaXRpYWxpemUgdGhlIGluZm8gc3RydWN0dXJlIChvbGQgaW50ZXJmYWNlIC0gREVQUkVDQVRFRCkgKi8KIGV4dGVybiBQTkdfRVhQT1JUKHZvaWQscG5nX2luZm9faW5pdCkgUE5HQVJHKChwbmdfaW5mb3AgaW5mb19wdHIpKTsKLSNkZWZpbmUgcG5nX2luZm9faW5pdChpbmZvX3B0cikgcG5nX2luZm9faW5pdF8zKCYoaW5mb19wdHIpLCBzaXplb2YocG5nX2luZm8pKTsKKyNkZWZpbmUgcG5nX2luZm9faW5pdChpbmZvX3B0cikgcG5nX2luZm9faW5pdF8zKCZpbmZvX3B0ciwgc2l6ZW9mKHBuZ19pbmZvKSk7CiBleHRlcm4gUE5HX0VYUE9SVCh2b2lkLHBuZ19pbmZvX2luaXRfMykgUE5HQVJHKChwbmdfaW5mb3BwIGluZm9fcHRyLAogICAgIHBuZ19zaXplX3QgcG5nX2luZm9fc3RydWN0X3NpemUpKTsKIApAQCAtMjMyOSw3ICsyMzMxLDcgQEAKIC8qIE1haW50YWluZXI6IFB1dCBuZXcgcHVibGljIHByb3RvdHlwZXMgaGVyZSBeLCBpbiBsaWJwbmcuMywgYW5kIHByb2plY3QgZGVmcyAqLwogCiAjZGVmaW5lIFBOR19IRUFERVJfVkVSU0lPTl9TVFJJTkcgXAotICAgIiBsaWJwbmcgdmVyc2lvbiAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxIChoZWFkZXIpXG4iCisgICAiIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxIChoZWFkZXIpXG4iCiAKICNpZmRlZiBQTkdfUkVBRF9DT01QT1NJVEVfTk9ESVZfU1VQUE9SVEVECiAvKiBXaXRoIHRoZXNlIHJvdXRpbmVzIHdlIGF2b2lkIGFuIGludGVnZXIgZGl2aWRlLCB3aGljaCB3aWxsIGJlIHNsb3dlciBvbgpAQCAtMjU2Miw3ICsyNTY0LDcgQEAKICAqIChvbGQgaW50ZXJmYWNlIC0gREVQUkVDQVRFRCAtIHVzZSBwbmdfY3JlYXRlX3JlYWRfc3RydWN0IGluc3RlYWQpLgogICovCiBleHRlcm4gUE5HX0VYUE9SVCh2b2lkLHBuZ19yZWFkX2luaXQpIFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0cikpOwotI2RlZmluZSBwbmdfcmVhZF9pbml0KHBuZ19wdHIpIHBuZ19yZWFkX2luaXRfMygmKHBuZ19wdHIpLCBcCisjZGVmaW5lIHBuZ19yZWFkX2luaXQocG5nX3B0cikgcG5nX3JlYWRfaW5pdF8zKCZwbmdfcHRyLCBcCiAgICAgUE5HX0xJQlBOR19WRVJfU1RSSU5HLCAgc2l6ZW9mKHBuZ19zdHJ1Y3QpKTsKIGV4dGVybiBQTkdfRVhQT1JUKHZvaWQscG5nX3JlYWRfaW5pdF8zKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwcCBwdHJfcHRyLAogICAgIHBuZ19jb25zdF9jaGFycCB1c2VyX3BuZ192ZXIsIHBuZ19zaXplX3QgcG5nX3N0cnVjdF9zaXplKSk7CkBAIC0yNTc0LDcgKzI1NzYsNyBAQAogICogKG9sZCBpbnRlcmZhY2UgLSBERVBSRUNBVEVEIC0gdXNlIHBuZ19jcmVhdGVfd3JpdGVfc3RydWN0IGluc3RlYWQpLgogICovCiBleHRlcm4gUE5HX0VYUE9SVCh2b2lkLHBuZ193cml0ZV9pbml0KSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIpKTsKLSNkZWZpbmUgcG5nX3dyaXRlX2luaXQocG5nX3B0cikgcG5nX3dyaXRlX2luaXRfMygmKHBuZ19wdHIpLCBcCisjZGVmaW5lIHBuZ193cml0ZV9pbml0KHBuZ19wdHIpIHBuZ193cml0ZV9pbml0XzMoJnBuZ19wdHIsIFwKICAgICBQTkdfTElCUE5HX1ZFUl9TVFJJTkcsIHNpemVvZihwbmdfc3RydWN0KSk7CiBleHRlcm4gUE5HX0VYUE9SVCh2b2lkLHBuZ193cml0ZV9pbml0XzMpIFBOR0FSRygocG5nX3N0cnVjdHBwIHB0cl9wdHIsCiAgICAgcG5nX2NvbnN0X2NoYXJwIHVzZXJfcG5nX3ZlciwgcG5nX3NpemVfdCBwbmdfc3RydWN0X3NpemUpKTsKQEAgLTI2NDksNyArMjY1MSw3IEBACiAgKi8KIFBOR19FWFRFUk4gdm9pZCBwbmdfc2F2ZV91aW50XzMyIFBOR0FSRygocG5nX2J5dGVwIGJ1ZiwgcG5nX3VpbnRfMzIgaSkpOwogCi0jaWYgZGVmaW5lZChQTkdfV1JJVEVfcENBTF9TVVBQT1JURUQpCisjaWYgZGVmaW5lZChQTkdfV1JJVEVfcENBTF9TVVBQT1JURUQpIHx8IGRlZmluZWQoUE5HX1dSSVRFX29GRnNfU1VQUE9SVEVEKQogUE5HX0VYVEVSTiB2b2lkIHBuZ19zYXZlX2ludF8zMiBQTkdBUkcoKHBuZ19ieXRlcCBidWYsIHBuZ19pbnRfMzIgaSkpOwogI2VuZGlmCiAKQEAgLTI3NjcsNyArMjc2OSw3IEBACiAKICNpZiBkZWZpbmVkKFBOR19XUklURV9vRkZzX1NVUFBPUlRFRCkKIFBOR19FWFRFUk4gdm9pZCBwbmdfd3JpdGVfb0ZGcyBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCi0gICBwbmdfdWludF8zMiB4X29mZnNldCwgcG5nX3VpbnRfMzIgeV9vZmZzZXQsIGludCB1bml0X3R5cGUpKTsKKyAgIHBuZ19pbnRfMzIgeF9vZmZzZXQsIHBuZ19pbnRfMzIgeV9vZmZzZXQsIGludCB1bml0X3R5cGUpKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChQTkdfV1JJVEVfcENBTF9TVVBQT1JURUQpCmRpZmYgLS1naXQgYS9wbmdhc21yZC5oIGIvcG5nYXNtcmQuaAppbmRleCAxZmQzOTZlLi5kNzk3NWM1IDEwMDY0NAotLS0gYS9wbmdhc21yZC5oCisrKyBiL3BuZ2FzbXJkLmgKQEAgLTEsNiArMSw2IEBACiAvKiBwbmdhc21yZC5oIC0gYXNzZW1ibGVyIHZlcnNpb24gb2YgdXRpbGl0aWVzIHRvIHJlYWQgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAyMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICoKZGlmZiAtLWdpdCBhL3BuZ2NvbmYuaCBiL3BuZ2NvbmYuaAppbmRleCAyN2M2NWM3Li45OTcxNTNhIDEwMDY0NAotLS0gYS9wbmdjb25mLmgKKysrIGIvcG5nY29uZi5oCkBAIC0xLDYgKzEsNiBAQAogLyogcG5nY29uZi5oIC0gbWFjaGluZSBjb25maWd1cmFibGUgZmlsZSBmb3IgbGlicG5nCiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtMjI2LDcgKzIyNiw3IEBACiAjICBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNlbmRpZgogCi0jaWZuZGVmIFBOR19TRVRKTVBfTk9UX1NVUFBPUlRFRAorI2lmICFkZWZpbmVkKFBOR19TRVRKTVBfTk9UX1NVUFBPUlRFRCkgJiYgIWRlZmluZWQoUE5HX05PX1NFVEpNUF9TVVBQT1JURUQpCiAjICBkZWZpbmUgUE5HX1NFVEpNUF9TVVBQT1JURUQKICNlbmRpZgogCkBAIC02NTEsOSArNjUxLDYgQEAKICMgICAgZGVmaW5lIFBOR19SRUFEXzE2X1RPXzhfQUNDVVJBVEVfU0NBTEVfU1VQUE9SVEVECiAjICBlbmRpZgogI2VuZGlmCi0jaWZuZGVmIFBOR19OT19aQUxMT0NfWkVSTwotIyAgZGVmaW5lIFBOR19aQUxMT0NfWkVSTwotI2VuZGlmCiAqLwogCiAvKiBUaGlzIGlzIG9ubHkgZm9yIFBvd2VyUEMgYmlnLWVuZGlhbiBhbmQgNjgweDAgc3lzdGVtcyAqLwpkaWZmIC0tZ2l0IGEvcG5nZXJyb3IuYyBiL3BuZ2Vycm9yLmMKaW5kZXggNjFmMmZiYy4uZTIyNGVlZiAxMDA2NDQKLS0tIGEvcG5nZXJyb3IuYworKysgYi9wbmdlcnJvci5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdlcnJvci5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIGkvbyBhbmQgbWVtb3J5IGFsbG9jYXRpb24KICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmdnY2NyZC5jIGIvcG5nZ2NjcmQuYwppbmRleCAyMzc3ZGMxLi45MjgxMzNhIDEwMDY0NAotLS0gYS9wbmdnY2NyZC5jCisrKyBiL3BuZ2djY3JkLmMKQEAgLTYsNyArNiw3IEBACiAgKiAgICAgYW5kIGh0dHA6Ly93d3cuaW50ZWwuY29tL2RyZy9wZW50aXVtSUkvYXBwbm90ZXMvOTIzLzkyMy5odG0KICAqICAgICBmb3IgSW50ZWwncyBwZXJmb3JtYW5jZSBhbmFseXNpcyBvZiB0aGUgTU1YIHZzLiBub24tTU1YIGNvZGUuCiAgKgotICogbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIEludGVsIENvcnBvcmF0aW9uCmRpZmYgLS1naXQgYS9wbmdnZXQuYyBiL3BuZ2dldC5jCmluZGV4IGM1OTA5ODUuLmVjMDFhMWQgMTAwNjQ0Ci0tLSBhL3BuZ2dldC5jCisrKyBiL3BuZ2dldC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdnZXQuYyAtIHJldHJpZXZhbCBvZiB2YWx1ZXMgZnJvbSBpbmZvIHN0cnVjdAogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ21lbS5jIGIvcG5nbWVtLmMKaW5kZXggOWEwNjVhMS4uN2UwYWVjZiAxMDA2NDQKLS0tIGEvcG5nbWVtLmMKKysrIGIvcG5nbWVtLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ21lbS5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIG1lbW9yeSBhbGxvY2F0aW9uCiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ncHJlYWQuYyBiL3BuZ3ByZWFkLmMKaW5kZXggYjkxODUwZi4uYmMyYWRmOSAxMDA2NDQKLS0tIGEvcG5ncHJlYWQuYworKysgYi9wbmdwcmVhZC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdwcmVhZC5jIC0gcmVhZCBhIHBuZyBmaWxlIGluIHB1c2ggbW9kZQogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3JlYWQuYyBiL3BuZ3JlYWQuYwppbmRleCBjM2Q0N2U5Li5kOWY4YzlmIDEwMDY0NAotLS0gYS9wbmdyZWFkLmMKKysrIGIvcG5ncmVhZC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdyZWFkLmMgLSByZWFkIGEgUE5HIGZpbGUKICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC05OSwyMyArOTksMjQgQEAKICAgICAgICAgICh1c2VyX3BuZ192ZXJbMF0gPT0gJzEnICYmIHVzZXJfcG5nX3ZlclsyXSAhPSBwbmdfbGlicG5nX3ZlclsyXSkgfHwKICAgICAgICAgICh1c2VyX3BuZ192ZXJbMF0gPT0gJzAnICYmIHVzZXJfcG5nX3ZlclsyXSA8ICc5JykpCiAgICAgIHsKKyNpZiAhZGVmaW5lZChQTkdfTk9fU1RESU8pICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICAgICAgIGNoYXIgbXNnWzgwXTsKKyAgICAgICAgaWYgKHVzZXJfcG5nX3ZlcikKKyAgICAgICAgeworICAgICAgICAgIHNwcmludGYobXNnLCAiQXBwbGljYXRpb24gd2FzIGNvbXBpbGVkIHdpdGggcG5nLmggZnJvbSBsaWJwbmctJS4yMHMiLAorICAgICAgICAgICAgIHVzZXJfcG5nX3Zlcik7CisgICAgICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgbXNnKTsKKyAgICAgICAgfQorICAgICAgICBzcHJpbnRmKG1zZywgIkFwcGxpY2F0aW9uICBpcyBydW5uaW5nIHdpdGggcG5nLmMgZnJvbSBsaWJwbmctJS4yMHMiLAorICAgICAgICAgICBwbmdfbGlicG5nX3Zlcik7CisgICAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsIG1zZyk7CisjZW5kaWYKKyNpZmRlZiBQTkdfRVJST1JfTlVNQkVSU19TVVBQT1JURUQKKyAgICAgICAgcG5nX3B0ci0+ZmxhZ3M9MDsKKyNlbmRpZgogICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwKICAgICAgICAgICAgIkluY29tcGF0aWJsZSBsaWJwbmcgdmVyc2lvbiBpbiBhcHBsaWNhdGlvbiBhbmQgbGlicmFyeSIpOwogICAgICB9Ci0KLSAgICAgLyogTGlicG5nIDEuMC42IHdhcyBub3QgYmluYXJ5IGNvbXBhdGlibGUsIGR1ZSB0byBpbnNlcnRpb24gb2YgdGhlCi0gICAgICAgIGluZm9fcHRyLT5mcmVlX21lIG1lbWJlci4gIExpYnBuZy0xLjAuMSBhbmQgZWFybGllciB3ZXJlIG5vdAotICAgICAgICBjb21wYXRpYmxlIGR1ZSB0byBpbnNlcnRpb24gb2YgdGhlIHVzZXIgdHJhbnNmb3JtIGZ1bmN0aW9uLiBOb3RlCi0gICAgICAgIHRvIG1haW50YWluZXI6IHRoaXMgdGVzdCBjYW4gYmUgcmVtb3ZlZCBmcm9tIHZlcnNpb24gMS4yLjAgYW5kCi0gICAgICAgIGJleW9uZCBiZWNhdXNlIHRoZSBwcmV2aW91cyB0ZXN0IHdvdWxkIGhhdmUgYWxyZWFkeSByZWplY3RlZCBpdC4gKi8KLQotICAgICBpZiAodXNlcl9wbmdfdmVyWzBdID09ICcxJyAmJiB1c2VyX3BuZ192ZXJbMl0gPT0gJzAnICYmCi0gICAgICAgICAodXNlcl9wbmdfdmVyWzRdIDwgICcyJyB8fCB1c2VyX3BuZ192ZXJbNF0gPT0gJzYnKSAmJgotICAgICAgICAgdXNlcl9wbmdfdmVyWzVdID09ICdcMCcpCi0gICAgIHsKLSAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsCi0gICAgICAgICJBcHBsaWNhdGlvbiBtdXN0IGJlIHJlY29tcGlsZWQ7IHZlcnNpb25zIDw9IDEuMC42IHdlcmUgaW5jb21wYXRpYmxlIik7Ci0gICAgIH0KICAgIH0KIAogICAgLyogaW5pdGlhbGl6ZSB6YnVmIC0gY29tcHJlc3Npb24gYnVmZmVyICovCkBAIC0xNTEsNyArMTUyLDcgQEAKIHBuZ19yZWFkX2luaXQocG5nX3N0cnVjdHAgcG5nX3B0cikKIHsKICAgIC8qIFdlIG9ubHkgY29tZSBoZXJlIHZpYSBwcmUtMS4wLjctY29tcGlsZWQgYXBwbGljYXRpb25zICovCi0gICBwbmdfcmVhZF9pbml0XzIocG5nX3B0ciwgIjEuMC4wIiwgMCwgMCk7CisgICBwbmdfcmVhZF9pbml0XzIocG5nX3B0ciwgIjEuMC42IG9yIGVhcmxpZXIiLCAwLCAwKTsKIH0KIAogI3VuZGVmIHBuZ19yZWFkX2luaXRfMgpAQCAtMTYwLDE1ICsxNjEsMzcgQEAKICAgIHBuZ19zaXplX3QgcG5nX3N0cnVjdF9zaXplLCBwbmdfc2l6ZV90IHBuZ19pbmZvX3NpemUpCiB7CiAgICAvKiBXZSBvbmx5IGNvbWUgaGVyZSB2aWEgcHJlLTEuMC4xMi1jb21waWxlZCBhcHBsaWNhdGlvbnMgKi8KKyNpZiAhZGVmaW5lZChQTkdfTk9fU1RESU8pICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCisgICBpZihzaXplb2YocG5nX3N0cnVjdCkgPiBwbmdfc3RydWN0X3NpemUgfHwgc2l6ZW9mKHBuZ19pbmZvKSA+IHBuZ19pbmZvX3NpemUpCisgICB7CisgICAgICBjaGFyIG1zZ1s4MF07CisgICAgICBwbmdfcHRyLT53YXJuaW5nX2ZuPShwbmdfZXJyb3JfcHRyKU5VTEw7CisgICAgICBpZiAodXNlcl9wbmdfdmVyKQorICAgICAgeworICAgICAgICBzcHJpbnRmKG1zZywgIkFwcGxpY2F0aW9uIHdhcyBjb21waWxlZCB3aXRoIHBuZy5oIGZyb20gbGlicG5nLSUuMjBzIiwKKyAgICAgICAgICAgdXNlcl9wbmdfdmVyKTsKKyAgICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgbXNnKTsKKyAgICAgIH0KKyAgICAgIHNwcmludGYobXNnLCAiQXBwbGljYXRpb24gIGlzIHJ1bm5pbmcgd2l0aCBwbmcuYyBmcm9tIGxpYnBuZy0lLjIwcyIsCisgICAgICAgICBwbmdfbGlicG5nX3Zlcik7CisgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCBtc2cpOworICAgfQorI2VuZGlmCiAgICBpZihzaXplb2YocG5nX3N0cnVjdCkgPiBwbmdfc3RydWN0X3NpemUpCiAgICAgIHsKICAgICAgICBwbmdfcHRyLT5lcnJvcl9mbj0ocG5nX2Vycm9yX3B0cilOVUxMOworI2lmZGVmIFBOR19FUlJPUl9OVU1CRVJTX1NVUFBPUlRFRAorICAgICAgIHBuZ19wdHItPmZsYWdzPTA7CisjZW5kaWYKICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwKICAgICAgICAiVGhlIHBuZyBzdHJ1Y3QgYWxsb2NhdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBmb3IgcmVhZGluZyBpcyB0b28gc21hbGwuIik7CiAgICAgIH0KICAgIGlmKHNpemVvZihwbmdfaW5mbykgPiBwbmdfaW5mb19zaXplKQogICAgICB7CiAgICAgICAgcG5nX3B0ci0+ZXJyb3JfZm49KHBuZ19lcnJvcl9wdHIpTlVMTDsKKyNpZmRlZiBQTkdfRVJST1JfTlVNQkVSU19TVVBQT1JURUQKKyAgICAgICBwbmdfcHRyLT5mbGFncz0wOworI2VuZGlmCiAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsCiAgICAgICAgICAiVGhlIGluZm8gc3RydWN0IGFsbG9jYXRlZCBieSBhcHBsaWNhdGlvbiBmb3IgcmVhZGluZyBpcyB0b28gc21hbGwuIik7CiAgICAgIH0KQEAgLTc0Niw3ICs3NjksNyBAQAogICogbm90IGNhbGxlZCBwbmdfc2V0X2ludGVybGFjZV9oYW5kbGluZygpLCB0aGUgZGlzcGxheV9yb3cgYnVmZmVyIHdpbGwKICAqIGJlIGlnbm9yZWQsIHNvIHBhc3MgTlVMTCB0byBpdC4KICAqCi0gKiBbKl0gcG5nX2hhbmRsZV9hbHBoYSgpIGRvZXMgbm90IGV4aXN0IHlldCwgYXMgb2YgbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhMworICogWypdIHBuZ19oYW5kbGVfYWxwaGEoKSBkb2VzIG5vdCBleGlzdCB5ZXQsIGFzIG9mIGxpYnBuZyB2ZXJzaW9uIDEuMi4wYmV0YTQKICAqLwogCiB2b2lkIFBOR0FQSQpAQCAtNzk1LDcgKzgxOCw3IEBACiAgKiBvbmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBvbmNlLiAgSWYgeW91IGRlc2lyZSB0byBoYXZlIGFuIGltYWdlIGZvcgogICogZWFjaCBwYXNzIG9mIGEgaW50ZXJsYWNlZCBpbWFnZSwgdXNlIHBuZ19yZWFkX3Jvd3MoKSBpbnN0ZWFkLgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjIuMGJldGEzCisgKiBbKl0gcG5nX2hhbmRsZV9hbHBoYSgpIGRvZXMgbm90IGV4aXN0IHlldCwgYXMgb2YgbGlicG5nIHZlcnNpb24gMS4yLjBiZXRhNAogICovCiB2b2lkIFBOR0FQSQogcG5nX3JlYWRfaW1hZ2UocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2J5dGVwcCBpbWFnZSkKZGlmZiAtLWdpdCBhL3BuZ3Jpby5jIGIvcG5ncmlvLmMKaW5kZXggZmY2M2M1My4uM2EyMTBjZiAxMDA2NDQKLS0tIGEvcG5ncmlvLmMKKysrIGIvcG5ncmlvLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3Jpby5jIC0gZnVuY3Rpb25zIGZvciBkYXRhIGlucHV0CiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ncnRyYW4uYyBiL3BuZ3J0cmFuLmMKaW5kZXggMDU1ZDczYS4uNTliN2ZjMSAxMDA2NDQKLS0tIGEvcG5ncnRyYW4uYworKysgYi9wbmdydHJhbi5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdydHJhbi5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyBmb3IgUE5HIHJlYWRlcnMKICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmdydXRpbC5jIGIvcG5ncnV0aWwuYwppbmRleCAwNGVmZTY0Li45ODZlM2MxIDEwMDY0NAotLS0gYS9wbmdydXRpbC5jCisrKyBiL3BuZ3J1dGlsLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3J1dGlsLmMgLSB1dGlsaXRpZXMgdG8gcmVhZCBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtNzk0LDEyICs3OTQsMTIgQEAKICAgICAgIHsKICAgICAgIGlmIChhYnMoaW50X3hfd2hpdGUgLSAzMTI3MEwpID4gMTAwMCB8fAogICAgICAgICAgIGFicyhpbnRfeV93aGl0ZSAtIDMyOTAwTCkgPiAxMDAwIHx8Ci0gICAgICAgICAgYWJzKCAgaW50X3hfcmVkIC0gNjQwMDBMKSA+IDEwMDAgfHwKLSAgICAgICAgICBhYnMoICBpbnRfeV9yZWQgLSAzMzAwMEwpID4gMTAwMCB8fAorICAgICAgICAgIGFicyhpbnRfeF9yZWQgICAtIDY0MDAwTCkgPiAxMDAwIHx8CisgICAgICAgICAgYWJzKGludF95X3JlZCAgIC0gMzMwMDBMKSA+IDEwMDAgfHwKICAgICAgICAgICBhYnMoaW50X3hfZ3JlZW4gLSAzMDAwMEwpID4gMTAwMCB8fAogICAgICAgICAgIGFicyhpbnRfeV9ncmVlbiAtIDYwMDAwTCkgPiAxMDAwIHx8Ci0gICAgICAgICAgYWJzKCBpbnRfeF9ibHVlIC0gMTUwMDBMKSA+IDEwMDAgfHwKLSAgICAgICAgICBhYnMoIGludF95X2JsdWUgLSAgNjAwMEwpID4gMTAwMCkKKyAgICAgICAgICBhYnMoaW50X3hfYmx1ZSAgLSAxNTAwMEwpID4gMTAwMCB8fAorICAgICAgICAgIGFicyhpbnRfeV9ibHVlICAtICA2MDAwTCkgPiAxMDAwKQogICAgICAgICAgewogCiAgICAgICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLApAQCAtOTI4LDEyICs5MjgsMTIgQEAKICAgIGlmIChpbmZvX3B0ci0+dmFsaWQgJiBQTkdfSU5GT19jSFJNKQogICAgICAgaWYgKGFicyhpbmZvX3B0ci0+aW50X3hfd2hpdGUgLSAzMTI3MEwpID4gMTAwMCB8fAogICAgICAgICAgIGFicyhpbmZvX3B0ci0+aW50X3lfd2hpdGUgLSAzMjkwMEwpID4gMTAwMCB8fAotICAgICAgICAgIGFicyggIGluZm9fcHRyLT5pbnRfeF9yZWQgLSA2NDAwMEwpID4gMTAwMCB8fAotICAgICAgICAgIGFicyggIGluZm9fcHRyLT5pbnRfeV9yZWQgLSAzMzAwMEwpID4gMTAwMCB8fAorICAgICAgICAgIGFicyhpbmZvX3B0ci0+aW50X3hfcmVkICAgLSA2NDAwMEwpID4gMTAwMCB8fAorICAgICAgICAgIGFicyhpbmZvX3B0ci0+aW50X3lfcmVkICAgLSAzMzAwMEwpID4gMTAwMCB8fAogICAgICAgICAgIGFicyhpbmZvX3B0ci0+aW50X3hfZ3JlZW4gLSAzMDAwMEwpID4gMTAwMCB8fAogICAgICAgICAgIGFicyhpbmZvX3B0ci0+aW50X3lfZ3JlZW4gLSA2MDAwMEwpID4gMTAwMCB8fAotICAgICAgICAgIGFicyggaW5mb19wdHItPmludF94X2JsdWUgLSAxNTAwMEwpID4gMTAwMCB8fAotICAgICAgICAgIGFicyggaW5mb19wdHItPmludF95X2JsdWUgLSAgNjAwMEwpID4gMTAwMCkKKyAgICAgICAgICBhYnMoaW5mb19wdHItPmludF94X2JsdWUgIC0gMTUwMDBMKSA+IDEwMDAgfHwKKyAgICAgICAgICBhYnMoaW5mb19wdHItPmludF95X2JsdWUgIC0gIDYwMDBMKSA+IDEwMDApCiAgICAgICAgICB7CiAgICAgICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLAogICAgICAgICAgICAgICAiSWdub3JpbmcgaW5jb3JyZWN0IGNIUk0gdmFsdWUgd2hlbiBzUkdCIGlzIGFsc28gcHJlc2VudCIpOwpAQCAtMTAyOSw2ICsxMDI5LDEzIEBACiAKICAgIHByb2ZpbGVfbGVuZ3RoID0gZGF0YV9sZW5ndGggLSBwcmVmaXhfbGVuZ3RoOwogCisgICBpZiAoIHByb2ZpbGVfbGVuZ3RoIDwgNCkKKyAgIHsKKyAgICAgIHBuZ19mcmVlKHBuZ19wdHIsIGNodW5rZGF0YSk7CisgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiUHJvZmlsZSBzaXplIGZpZWxkIG1pc3NpbmcgZnJvbSBpQ0NQIGNodW5rIik7CisgICAgICByZXR1cm47CisgICB9CisKICAgIC8qIENoZWNrIHRoZSBwcm9maWxlX3NpemUgcmVjb3JkZWQgaW4gdGhlIGZpcnN0IDMyIGJpdHMgb2YgdGhlIElDQyBwcm9maWxlICovCiAgICBwcm9maWxlX3NpemUgPSAoKCooY2h1bmtkYXRhK3ByZWZpeF9sZW5ndGgpKTw8MjQpIHwKICAgICAgICAgICAgICAgICAgICgoKihjaHVua2RhdGErcHJlZml4X2xlbmd0aCsxKSk8PDE2KSB8CkBAIC0xMDQwLDYgKzEwNDcsNyBAQAogCiAgICBpZihwcm9maWxlX3NpemUgPiBwcm9maWxlX2xlbmd0aCkKICAgIHsKKyAgICAgIHBuZ19mcmVlKHBuZ19wdHIsIGNodW5rZGF0YSk7CiAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiSWdub3JpbmcgdHJ1bmNhdGVkIGlDQ1AgcHJvZmlsZS5cbiIpOwogICAgICAgcmV0dXJuOwogICAgfQpkaWZmIC0tZ2l0IGEvcG5nc2V0LmMgYi9wbmdzZXQuYwppbmRleCBlYTFjMmJkLi4wNjIyMjliIDEwMDY0NAotLS0gYS9wbmdzZXQuYworKysgYi9wbmdzZXQuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nc2V0LmMgLSBzdG9yYWdlIG9mIGltYWdlIGluZm9ybWF0aW9uIGludG8gaW5mbyBzdHJ1Y3QKICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC03NDEsOCArNzQxLDggQEAKICAgICAgICBwbmdfZnJlZV9kYXRhKHBuZ19wdHIsIGluZm9fcHRyLCBQTkdfRlJFRV9UUk5TLCAwKTsKICNlbmRpZgogICAgICAgIHBuZ19wdHItPnRyYW5zID0gaW5mb19wdHItPnRyYW5zID0gKHBuZ19ieXRlcClwbmdfbWFsbG9jKHBuZ19wdHIsCi0gICAgICAgICAgIG51bV90cmFucyk7Ci0gICAgICAgcG5nX21lbWNweShpbmZvX3B0ci0+dHJhbnMsIHRyYW5zLCBudW1fdHJhbnMpOworICAgICAgICAgICAocG5nX3VpbnRfMzIpbnVtX3RyYW5zKTsKKyAgICAgICBwbmdfbWVtY3B5KGluZm9fcHRyLT50cmFucywgdHJhbnMsIChwbmdfc2l6ZV90KW51bV90cmFucyk7CiAjaWZkZWYgUE5HX0ZSRUVfTUVfU1VQUE9SVEVECiAgICAgICAgaW5mb19wdHItPmZyZWVfbWUgfD0gUE5HX0ZSRUVfVFJOUzsKICNlbHNlCkBAIC05MDUsMTQgKzkwNSwxNyBAQAogICAgIGlmIChjaHVua19saXN0ID09IE5VTEwpCiAgICAgICByZXR1cm47CiAgICAgb2xkX251bV9jaHVua3M9cG5nX3B0ci0+bnVtX2NodW5rX2xpc3Q7Ci0gICAgbmV3X2xpc3Q9KHBuZ19ieXRlcClwbmdfbWFsbG9jKHBuZ19wdHIsNSoobnVtX2NodW5rcytvbGRfbnVtX2NodW5rcykpOworICAgIG5ld19saXN0PShwbmdfYnl0ZXApcG5nX21hbGxvYyhwbmdfcHRyLAorICAgICAgIChwbmdfdWludF8zMikoNSoobnVtX2NodW5rcytvbGRfbnVtX2NodW5rcykpKTsKICAgICBpZihwbmdfcHRyLT5jaHVua19saXN0ICE9IE5VTEwpCiAgICAgewotICAgICAgIHBuZ19tZW1jcHkobmV3X2xpc3QsIHBuZ19wdHItPmNodW5rX2xpc3QsIDUqb2xkX251bV9jaHVua3MpOworICAgICAgIHBuZ19tZW1jcHkobmV3X2xpc3QsIHBuZ19wdHItPmNodW5rX2xpc3QsCisgICAgICAgICAgKHBuZ19zaXplX3QpKDUqb2xkX251bV9jaHVua3MpKTsKICAgICAgICBwbmdfZnJlZShwbmdfcHRyLCBwbmdfcHRyLT5jaHVua19saXN0KTsKICAgICAgICBwbmdfcHRyLT5jaHVua19saXN0PU5VTEw7CiAgICAgfQotICAgIHBuZ19tZW1jcHkobmV3X2xpc3QrNSpvbGRfbnVtX2NodW5rcywgY2h1bmtfbGlzdCwgNSpudW1fY2h1bmtzKTsKKyAgICBwbmdfbWVtY3B5KG5ld19saXN0KzUqb2xkX251bV9jaHVua3MsIGNodW5rX2xpc3QsCisgICAgICAgKHBuZ19zaXplX3QpKDUqbnVtX2NodW5rcykpOwogICAgIGZvciAocD1uZXdfbGlzdCs1Km9sZF9udW1fY2h1bmtzKzQsIGk9MDsgaTxudW1fY2h1bmtzOyBpKyssIHArPTUpCiAgICAgICAgKnA9KHBuZ19ieXRlKWtlZXA7CiAgICAgcG5nX3B0ci0+bnVtX2NodW5rX2xpc3Q9b2xkX251bV9jaHVua3MrbnVtX2NodW5rczsKZGlmZiAtLWdpdCBhL3BuZ3Rlc3QuYyBiL3BuZ3Rlc3QuYwppbmRleCBhZWFiYTlkLi40NzFhM2FhIDEwMDY0NAotLS0gYS9wbmd0ZXN0LmMKKysrIGIvcG5ndGVzdC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd0ZXN0LmMgLSBhIHNpbXBsZSB0ZXN0IHByb2dyYW0gdG8gdGVzdCBsaWJwbmcKICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC00NzAsMTAgKzQ3MCw4IEBACiBzdGF0aWMgaW50IHRvdGFsX2FsbG9jYXRpb24gPSAwOwogc3RhdGljIGludCBudW1fYWxsb2NhdGlvbnMgPSAwOwogCi1leHRlcm4gUE5HX0VYUE9SVChwbmdfdm9pZHAscG5nX2RlYnVnX21hbGxvYykgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAotICAgcG5nX3VpbnRfMzIgc2l6ZSkpOwotZXh0ZXJuIFBOR19FWFBPUlQodm9pZCxwbmdfZGVidWdfZnJlZSkgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAotICAgcG5nX3ZvaWRwIHB0cikpOworcG5nX3ZvaWRwIHBuZ19kZWJ1Z19tYWxsb2MgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfdWludF8zMiBzaXplKSk7Cit2b2lkIHBuZ19kZWJ1Z19mcmVlIFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX3ZvaWRwIHB0cikpOwogCiBwbmdfdm9pZHAKIHBuZ19kZWJ1Z19tYWxsb2MocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX3VpbnRfMzIgc2l6ZSkKQEAgLTUwMyw3ICs1MDEsNyBAQAogICAgICAgcG5nX21lbXNldChwaW5mby0+cG9pbnRlciwgMHhkZCwgcGluZm8tPnNpemUpOwogI2lmIFBOR19ERUJVRwogICAgICAgaWYodmVyYm9zZSkKLSAgICAgICAgIHByaW50ZigicG5nX21hbGxvYyAlZCBieXRlcyBhdCAleFxuIixzaXplLHBpbmZvLT5wb2ludGVyKTsKKyAgICAgICAgIHByaW50ZigicG5nX21hbGxvYyAlbHUgYnl0ZXMgYXQgJXhcbiIsc2l6ZSxwaW5mby0+cG9pbnRlcik7CiAjZW5kaWYKICAgICAgIGFzc2VydChwaW5mby0+c2l6ZSAhPSAxMjM0NTY3OCk7CiAgICAgICByZXR1cm4gKHBuZ192b2lkcCkocGluZm8tPnBvaW50ZXIpOwpAQCAtNTQ1LDcgKzU0Myw3IEBACiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGluZm8tPm5leHQgPT0gTlVMTCkKICAgICAgICAgIHsKLSAgICAgICAgICAgIGZwcmludGYoU1RERVJSLCAiUG9pbnRlciAleCBub3QgZm91bmRcbiIsIHB0cik7CisgICAgICAgICAgICBmcHJpbnRmKFNUREVSUiwgIlBvaW50ZXIgJXggbm90IGZvdW5kXG4iLCAodW5zaWduZWQgaW50KXB0cik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHBwaW5mbyA9ICZwaW5mby0+bmV4dDsKQEAgLTEyODAsNyArMTI3OCw3IEBACiAgICAvKiBTaG93IHRoZSB2ZXJzaW9uIG9mIGxpYnBuZyB1c2VkIGluIGJ1aWxkaW5nIHRoZSBhcHBsaWNhdGlvbiAqLwogICAgZnByaW50ZihTVERFUlIsIiBwbmd0ZXN0ICglbHUpOiVzIiwgKHVuc2lnbmVkIGxvbmcpUE5HX0xJQlBOR19WRVIsCiAgICAgICBQTkdfSEVBREVSX1ZFUlNJT05fU1RSSU5HKTsKLSAgIGZwcmludGYoU1RERVJSLCIgc2l6ZW9mKHBuZ19zdHJ1Y3QpPSVkLCBzaXplb2YocG5nX2luZm8pPSVkXG4iLAorICAgZnByaW50ZihTVERFUlIsIiBzaXplb2YocG5nX3N0cnVjdCk9JWxkLCBzaXplb2YocG5nX2luZm8pPSVsZFxuIiwKICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBuZ19zdHJ1Y3QpLCBzaXplb2YocG5nX2luZm8pKTsKIAogICAgLyogRG8gc29tZSBjb25zaXN0ZW5jeSBjaGVja2luZyBvbiB0aGUgbWVtb3J5IGFsbG9jYXRpb24gc2V0dGluZ3MsIEknbQpAQCAtMTM5Niw3ICsxMzk0LDggQEAKICAgICAgICAgICAgICAgIGN1cnJlbnRfYWxsb2NhdGlvbik7CiAgICAgICAgICAgICB3aGlsZSAocGluZm8gIT0gTlVMTCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIGZwcmludGYoU1RERVJSLCAiICVkIGJ5dGVzIGF0ICV4XG4iLCBwaW5mby0+c2l6ZSwgcGluZm8tPnBvaW50ZXIpOworICAgICAgICAgICAgICAgZnByaW50ZihTVERFUlIsICIgJWx1IGJ5dGVzIGF0ICV4XG4iLCBwaW5mby0+c2l6ZSwgCisgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIHBpbmZvLT5wb2ludGVyKTsKICAgICAgICAgICAgICAgIHBpbmZvID0gcGluZm8tPm5leHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICB9CkBAIC0xNDcwLDggKzE0NjksOCBAQAogICAgICAgICAgICAgICAgIGN1cnJlbnRfYWxsb2NhdGlvbik7CiAgICAgICAgICAgICAgd2hpbGUgKHBpbmZvICE9IE5VTEwpCiAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZwcmludGYoU1RERVJSLCIgJWQgYnl0ZXMgYXQgJXhcbiIsCi0gICAgICAgICAgICAgICAgICAgcGluZm8tPnNpemUsIHBpbmZvLT5wb2ludGVyKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKFNUREVSUiwiICVsdSBieXRlcyBhdCAleFxuIiwKKyAgICAgICAgICAgICAgICAgICBwaW5mby0+c2l6ZSwgKHVuc2lnbmVkIGludClwaW5mby0+cG9pbnRlcik7CiAgICAgICAgICAgICAgICAgcGluZm8gPSBwaW5mby0+bmV4dDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgfQpAQCAtMTUxMSw0ICsxNTEwLDQgQEAKIH0KIAogLyogR2VuZXJhdGUgYSBjb21waWxlciBlcnJvciBpZiB0aGVyZSBpcyBhbiBvbGQgcG5nLmggaW4gdGhlIHNlYXJjaCBwYXRoLiAqLwotdHlwZWRlZiB2ZXJzaW9uXzFfMl8wYmV0YTMgeW91cl9wbmdfaF9pc19ub3RfdmVyc2lvbl8xXzJfMGJldGEzOwordHlwZWRlZiB2ZXJzaW9uXzFfMl8wYmV0YTQgeW91cl9wbmdfaF9pc19ub3RfdmVyc2lvbl8xXzJfMGJldGE0OwpkaWZmIC0tZ2l0IGEvcG5ndHJhbnMuYyBiL3BuZ3RyYW5zLmMKaW5kZXggZjQxOGYyZS4uNTUxOGRjNyAxMDA2NDQKLS0tIGEvcG5ndHJhbnMuYworKysgYi9wbmd0cmFucy5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd0cmFucy5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyAodXNlZCBieSBib3RoIHJlYWRlcnMgYW5kIHdyaXRlcnMpCiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ndmNyZC5jIGIvcG5ndmNyZC5jCmluZGV4IGIzYWU1ZGYuLjlhYTJhZjAgMTAwNjQ0Ci0tLSBhL3BuZ3ZjcmQuYworKysgYi9wbmd2Y3JkLmMKQEAgLTIsNyArMiw3IEBACiAgKgogICogRm9yIEludGVsIHg4NiBDUFUgYW5kIE1pY3Jvc29mdCBWaXN1YWwgQysrIGNvbXBpbGVyCiAgKgotICogbGlicG5nIDEuMi4wYmV0YTMgLSBNYXkgMTgsIDIwMDEKKyAqIGxpYnBuZyAxLjIuMGJldGE0IC0gSnVuZSAyMywgMjAwMQogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMSBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIENvcHlyaWdodCAoYykgMTk5OCwgSW50ZWwgQ29ycG9yYXRpb24KZGlmZiAtLWdpdCBhL3BuZ3dpby5jIGIvcG5nd2lvLmMKaW5kZXggMjIxNWNiNi4uYTkxM2Y5MSAxMDA2NDQKLS0tIGEvcG5nd2lvLmMKKysrIGIvcG5nd2lvLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3dpby5jIC0gZnVuY3Rpb25zIGZvciBkYXRhIG91dHB1dAogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3dyaXRlLmMgYi9wbmd3cml0ZS5jCmluZGV4IGJjZjlhNTQuLmFiZGQ4MzcgMTAwNjQ0Ci0tLSBhL3BuZ3dyaXRlLmMKKysrIGIvcG5nd3JpdGUuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nd3JpdGUuYyAtIGdlbmVyYWwgcm91dGluZXMgdG8gd3JpdGUgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKQEAgLTQ5NiwyMyArNDk2LDI0IEBACiAgICAgICAgICAodXNlcl9wbmdfdmVyWzBdID09ICcxJyAmJiB1c2VyX3BuZ192ZXJbMl0gIT0gcG5nX2xpYnBuZ192ZXJbMl0pIHx8CiAgICAgICAgICAodXNlcl9wbmdfdmVyWzBdID09ICcwJyAmJiB1c2VyX3BuZ192ZXJbMl0gPCAnOScpKQogICAgICB7CisjaWYgIWRlZmluZWQoUE5HX05PX1NURElPKSAmJiAhZGVmaW5lZChfV0lOMzJfV0NFKQorICAgICAgICBjaGFyIG1zZ1s4MF07CisgICAgICAgIGlmICh1c2VyX3BuZ192ZXIpCisgICAgICAgIHsKKyAgICAgICAgICBzcHJpbnRmKG1zZywgIkFwcGxpY2F0aW9uIHdhcyBjb21waWxlZCB3aXRoIHBuZy5oIGZyb20gbGlicG5nLSUuMjBzIiwKKyAgICAgICAgICAgICB1c2VyX3BuZ192ZXIpOworICAgICAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsIG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgc3ByaW50Zihtc2csICJBcHBsaWNhdGlvbiAgaXMgcnVubmluZyB3aXRoIHBuZy5jIGZyb20gbGlicG5nLSUuMjBzIiwKKyAgICAgICAgICAgcG5nX2xpYnBuZ192ZXIpOworICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCBtc2cpOworI2VuZGlmCisjaWZkZWYgUE5HX0VSUk9SX05VTUJFUlNfU1VQUE9SVEVECisgICAgICAgIHBuZ19wdHItPmZsYWdzPTA7CisjZW5kaWYKICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsCiAgICAgICAgICAgICJJbmNvbXBhdGlibGUgbGlicG5nIHZlcnNpb24gaW4gYXBwbGljYXRpb24gYW5kIGxpYnJhcnkiKTsKICAgICAgfQotCi0gICAgIC8qIExpYnBuZyAxLjAuNiB3YXMgbm90IGJpbmFyeSBjb21wYXRpYmxlLCBkdWUgdG8gaW5zZXJ0aW9uIG9mIHRoZQotICAgICAgICBpbmZvX3B0ci0+ZnJlZV9tZSBtZW1iZXIuICBMaWJwbmctMS4wLjEgYW5kIGVhcmxpZXIgd2VyZSBub3QKLSAgICAgICAgY29tcGF0aWJsZSBkdWUgdG8gaW5zZXJ0aW9uIG9mIHRoZSB1c2VyIHRyYW5zZm9ybSBmdW5jdGlvbi4gTm90ZQotICAgICAgICB0byBtYWludGFpbmVyOiB0aGlzIHRlc3QgY2FuIGJlIHJlbW92ZWQgZnJvbSB2ZXJzaW9uIDEuMi4wIGFuZAotICAgICAgICBiZXlvbmQgYmVjYXVzZSB0aGUgcHJldmlvdXMgdGVzdCB3b3VsZCBoYXZlIGFscmVhZHkgcmVqZWN0ZWQgaXQuICovCi0KLSAgICAgaWYgKHVzZXJfcG5nX3ZlclswXSA9PSAnMScgJiYgdXNlcl9wbmdfdmVyWzJdID09ICcwJyAmJgotICAgICAgICAgKHVzZXJfcG5nX3Zlcls0XSA8ICAnMicgfHwgdXNlcl9wbmdfdmVyWzRdID09ICc2JykgJiYKLSAgICAgICAgIHVzZXJfcG5nX3Zlcls1XSA9PSAnXDAnKQotICAgICB7Ci0gICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLAotICAgICAgICAiQXBwbGljYXRpb24gbXVzdCBiZSByZWNvbXBpbGVkOyB2ZXJzaW9ucyA8PSAxLjAuNiB3ZXJlIGluY29tcGF0aWJsZSIpOwotICAgICB9CiAgICB9CiAKICAgIC8qIGluaXRpYWxpemUgemJ1ZiAtIGNvbXByZXNzaW9uIGJ1ZmZlciAqLwpAQCAtNTM2LDcgKzUzNyw3IEBACiBwbmdfd3JpdGVfaW5pdChwbmdfc3RydWN0cCBwbmdfcHRyKQogewogICAgLyogV2Ugb25seSBjb21lIGhlcmUgdmlhIHByZS0xLjAuNy1jb21waWxlZCBhcHBsaWNhdGlvbnMgKi8KLSAgIHBuZ193cml0ZV9pbml0XzIocG5nX3B0ciwgIjEuMC4wIiwgMCwgMCk7CisgICBwbmdfd3JpdGVfaW5pdF8yKHBuZ19wdHIsICIxLjAuNiBvciBlYXJsaWVyIiwgMCwgMCk7CiB9CiAKICN1bmRlZiBwbmdfd3JpdGVfaW5pdF8yCkBAIC01NDUsMTcgKzU0NiwzOSBAQAogICAgcG5nX3NpemVfdCBwbmdfc3RydWN0X3NpemUsIHBuZ19zaXplX3QgcG5nX2luZm9fc2l6ZSkKIHsKICAgIC8qIFdlIG9ubHkgY29tZSBoZXJlIHZpYSBwcmUtMS4wLjEyLWNvbXBpbGVkIGFwcGxpY2F0aW9ucyAqLworI2lmICFkZWZpbmVkKFBOR19OT19TVERJTykgJiYgIWRlZmluZWQoX1dJTjMyX1dDRSkKKyAgIGlmKHNpemVvZihwbmdfc3RydWN0KSA+IHBuZ19zdHJ1Y3Rfc2l6ZSB8fCBzaXplb2YocG5nX2luZm8pID4gcG5nX2luZm9fc2l6ZSkKKyAgIHsKKyAgICAgIGNoYXIgbXNnWzgwXTsKKyAgICAgIHBuZ19wdHItPndhcm5pbmdfZm49KHBuZ19lcnJvcl9wdHIpTlVMTDsKKyAgICAgIGlmICh1c2VyX3BuZ192ZXIpCisgICAgICB7CisgICAgICAgIHNwcmludGYobXNnLCAiQXBwbGljYXRpb24gd2FzIGNvbXBpbGVkIHdpdGggcG5nLmggZnJvbSBsaWJwbmctJS4yMHMiLAorICAgICAgICAgICB1c2VyX3BuZ192ZXIpOworICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCBtc2cpOworICAgICAgfQorICAgICAgc3ByaW50Zihtc2csICJBcHBsaWNhdGlvbiAgaXMgcnVubmluZyB3aXRoIHBuZy5jIGZyb20gbGlicG5nLSUuMjBzIiwKKyAgICAgICAgIHBuZ19saWJwbmdfdmVyKTsKKyAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsIG1zZyk7CisgICB9CisjZW5kaWYKICAgIGlmKHNpemVvZihwbmdfc3RydWN0KSA+IHBuZ19zdHJ1Y3Rfc2l6ZSkKICAgICAgewogICAgICAgIHBuZ19wdHItPmVycm9yX2ZuPShwbmdfZXJyb3JfcHRyKU5VTEw7CisjaWZkZWYgUE5HX0VSUk9SX05VTUJFUlNfU1VQUE9SVEVECisgICAgICAgcG5nX3B0ci0+ZmxhZ3M9MDsKKyNlbmRpZgogICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLAotICAgICAgICAgIlRoZSBwbmcgc3RydWN0IGFsbG9jYXRlZCBieSB0aGUgYXBwbGljYXRpb24gaXMgdG9vIHNtYWxsLiIpOworICAgICAgICJUaGUgcG5nIHN0cnVjdCBhbGxvY2F0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGZvciB3cml0aW5nIGlzIHRvbyBzbWFsbC4iKTsKICAgICAgfQogICAgaWYoc2l6ZW9mKHBuZ19pbmZvKSA+IHBuZ19pbmZvX3NpemUpCiAgICAgIHsKICAgICAgICBwbmdfcHRyLT5lcnJvcl9mbj0ocG5nX2Vycm9yX3B0cilOVUxMOworI2lmZGVmIFBOR19FUlJPUl9OVU1CRVJTX1NVUFBPUlRFRAorICAgICAgIHBuZ19wdHItPmZsYWdzPTA7CisjZW5kaWYKICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwKLSAgICAgICAgICJUaGUgaW5mbyBzdHJ1Y3QgYWxsb2NhdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBpcyB0b28gc21hbGwuIik7CisgICAgICAgIlRoZSBpbmZvIHN0cnVjdCBhbGxvY2F0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGZvciB3cml0aW5nIGlzIHRvbyBzbWFsbC4iKTsKICAgICAgfQogICAgcG5nX3dyaXRlX2luaXRfMygmcG5nX3B0ciwgdXNlcl9wbmdfdmVyLCBwbmdfc3RydWN0X3NpemUpOwogfQpkaWZmIC0tZ2l0IGEvcG5nd3RyYW4uYyBiL3BuZ3d0cmFuLmMKaW5kZXggOGVjZGM4ZC4uYTU5YjE4YiAxMDA2NDQKLS0tIGEvcG5nd3RyYW4uYworKysgYi9wbmd3dHJhbi5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd3dHJhbi5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyBmb3IgUE5HIHdyaXRlcnMKICAqCi0gKiBsaWJwbmcgMS4yLjBiZXRhMyAtIE1heSAxOCwgMjAwMQorICogbGlicG5nIDEuMi4wYmV0YTQgLSBKdW5lIDIzLCAyMDAxCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAxIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmd3dXRpbC5jIGIvcG5nd3V0aWwuYwppbmRleCBhZmYxZmZmLi44NDFmY2MyIDEwMDY0NAotLS0gYS9wbmd3dXRpbC5jCisrKyBiL3BuZ3d1dGlsLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3d1dGlsLmMgLSB1dGlsaXRpZXMgdG8gd3JpdGUgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjIuMGJldGEzIC0gTWF5IDE4LCAyMDAxCisgKiBsaWJwbmcgMS4yLjBiZXRhNCAtIEp1bmUgMjMsIDIwMDEKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMDEgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKQEAgLTI1LDcgKzI1LDcgQEAKICAgIGJ1ZlszXSA9IChwbmdfYnl0ZSkoaSAmIDB4ZmYpOwogfQogCi0jaWYgZGVmaW5lZChQTkdfV1JJVEVfcENBTF9TVVBQT1JURUQpCisjaWYgZGVmaW5lZChQTkdfV1JJVEVfcENBTF9TVVBQT1JURUQpIHx8IGRlZmluZWQoUE5HX1dSSVRFX29GRnNfU1VQUE9SVEVEKQogLyogVGhlIHBuZ19zYXZlX2ludF8zMiBmdW5jdGlvbiBhc3N1bWVzIGludGVnZXJzIGFyZSBzdG9yZWQgaW4gdHdvJ3MKICAqIGNvbXBsZW1lbnQgZm9ybWF0LiAgSWYgdGhpcyBpc24ndCB0aGUgY2FzZSwgdGhlbiB0aGlzIHJvdXRpbmUgbmVlZHMgdG8KICAqIGJlIG1vZGlmaWVkIHRvIHdyaXRlIGRhdGEgaW4gdHdvJ3MgY29tcGxlbWVudCBmb3JtYXQuCkBAIC0zMzIsNyArMzMyLDggQEAKICAgIC8qIGhhbmRsZSB0aGUgbm8tY29tcHJlc3Npb24gY2FzZSAqLwogICAgaWYgKGNvbXAtPmlucHV0KQogICAgewotICAgICAgIHBuZ193cml0ZV9jaHVua19kYXRhKHBuZ19wdHIsIChwbmdfYnl0ZXApY29tcC0+aW5wdXQsIGNvbXAtPmlucHV0X2xlbik7CisgICAgICAgcG5nX3dyaXRlX2NodW5rX2RhdGEocG5nX3B0ciwgKHBuZ19ieXRlcCljb21wLT5pbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG5nX3NpemVfdCljb21wLT5pbnB1dF9sZW4pOwogICAgICAgIHJldHVybjsKICAgIH0KIApAQCAtNjQxLDcgKzY0Miw3IEBACiAKICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX3dyaXRlX2dBTUFcbiIpOwogICAgLyogZmlsZV9nYW1tYSBpcyBzYXZlZCBpbiAxLzEwMCwwMDB0aHMgKi8KLSAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmLCBmaWxlX2dhbW1hKTsKKyAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmLCAocG5nX3VpbnRfMzIpZmlsZV9nYW1tYSk7CiAgICBwbmdfd3JpdGVfY2h1bmsocG5nX3B0ciwgKHBuZ19ieXRlcClwbmdfZ0FNQSwgYnVmLCAocG5nX3NpemVfdCk0KTsKIH0KICNlbmRpZgpAQCAtNzYzLDcgKzc2NCw3IEBACiAgICAgICAgICAgIHBuZ19zYXZlX3VpbnRfMTYoZW50cnlidWYgKyA2LCBlcC0+YWxwaGEpOwogICAgICAgICAgICBwbmdfc2F2ZV91aW50XzE2KGVudHJ5YnVmICsgOCwgZXAtPmZyZXF1ZW5jeSk7CiAgICAgICAgfQotICAgICAgIHBuZ193cml0ZV9jaHVua19kYXRhKHBuZ19wdHIsIGVudHJ5YnVmLCBlbnRyeV9zaXplKTsKKyAgICAgICBwbmdfd3JpdGVfY2h1bmtfZGF0YShwbmdfcHRyLCBlbnRyeWJ1ZiwgKHBuZ19zaXplX3QpZW50cnlfc2l6ZSk7CiAgICB9CiAjZWxzZQogICAgZXA9c3BhbGV0dGUtPmVudHJpZXM7CkBAIC05MzgsMzIgKzkzOSwzMiBAQAogI2VuZGlmCiAgICAgICByZXR1cm47CiAgICB9Ci0gICBwbmdfc2F2ZV91aW50XzMyKGJ1Ziwgd2hpdGVfeCk7Ci0gICBwbmdfc2F2ZV91aW50XzMyKGJ1ZiArIDQsIHdoaXRlX3kpOworICAgcG5nX3NhdmVfdWludF8zMihidWYsIChwbmdfdWludF8zMil3aGl0ZV94KTsKKyAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgNCwgKHBuZ191aW50XzMyKXdoaXRlX3kpOwogCiAgICBpZiAocmVkX3ggPiA4MDAwMEwgfHwgcmVkX3kgPiA4MDAwMEwgfHwgcmVkX3ggKyByZWRfeSA+IDEwMDAwMEwpCiAgICB7CiAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiSW52YWxpZCBjSFJNIGZpeGVkIHJlZCBwb2ludCBzcGVjaWZpZWQiKTsKICAgICAgIHJldHVybjsKICAgIH0KLSAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgOCwgcmVkX3gpOwotICAgcG5nX3NhdmVfdWludF8zMihidWYgKyAxMiwgcmVkX3kpOworICAgcG5nX3NhdmVfdWludF8zMihidWYgKyA4LCAocG5nX3VpbnRfMzIpcmVkX3gpOworICAgcG5nX3NhdmVfdWludF8zMihidWYgKyAxMiwgKHBuZ191aW50XzMyKXJlZF95KTsKIAogICAgaWYgKGdyZWVuX3ggPiA4MDAwMEwgfHwgZ3JlZW5feSA+IDgwMDAwTCB8fCBncmVlbl94ICsgZ3JlZW5feSA+IDEwMDAwMEwpCiAgICB7CiAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiSW52YWxpZCBmaXhlZCBjSFJNIGdyZWVuIHBvaW50IHNwZWNpZmllZCIpOwogICAgICAgcmV0dXJuOwogICAgfQotICAgcG5nX3NhdmVfdWludF8zMihidWYgKyAxNiwgZ3JlZW5feCk7Ci0gICBwbmdfc2F2ZV91aW50XzMyKGJ1ZiArIDIwLCBncmVlbl95KTsKKyAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgMTYsIChwbmdfdWludF8zMilncmVlbl94KTsKKyAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgMjAsIChwbmdfdWludF8zMilncmVlbl95KTsKIAogICAgaWYgKGJsdWVfeCA+IDgwMDAwTCB8fCBibHVlX3kgPiA4MDAwMEwgfHwgYmx1ZV94ICsgYmx1ZV95ID4gMTAwMDAwTCkKICAgIHsKICAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsICJJbnZhbGlkIGZpeGVkIGNIUk0gYmx1ZSBwb2ludCBzcGVjaWZpZWQiKTsKICAgICAgIHJldHVybjsKICAgIH0KLSAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgMjQsIGJsdWVfeCk7Ci0gICBwbmdfc2F2ZV91aW50XzMyKGJ1ZiArIDI4LCBibHVlX3kpOworICAgcG5nX3NhdmVfdWludF8zMihidWYgKyAyNCwgKHBuZ191aW50XzMyKWJsdWVfeCk7CisgICBwbmdfc2F2ZV91aW50XzMyKGJ1ZiArIDI4LCAocG5nX3VpbnRfMzIpYmx1ZV95KTsKIAogICAgcG5nX3dyaXRlX2NodW5rKHBuZ19wdHIsIChwbmdfYnl0ZXApcG5nX2NIUk0sIGJ1ZiwgKHBuZ19zaXplX3QpMzIpOwogfQpAQCAtMTM4Myw4ICsxMzg0LDcgQEAKICNpZiBkZWZpbmVkKFBOR19XUklURV9vRkZzX1NVUFBPUlRFRCkKIC8qIHdyaXRlIHRoZSBvRkZzIGNodW5rICovCiB2b2lkIC8qIFBSSVZBVEUgKi8KLXBuZ193cml0ZV9vRkZzKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ191aW50XzMyIHhfb2Zmc2V0LAotICAgcG5nX3VpbnRfMzIgeV9vZmZzZXQsCitwbmdfd3JpdGVfb0ZGcyhwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW50XzMyIHhfb2Zmc2V0LCBwbmdfaW50XzMyIHlfb2Zmc2V0LAogICAgaW50IHVuaXRfdHlwZSkKIHsKICNpZmRlZiBQTkdfVVNFX0xPQ0FMX0FSUkFZUwpAQCAtMTM5Niw4ICsxMzk2LDggQEAKICAgIGlmICh1bml0X3R5cGUgPj0gUE5HX09GRlNFVF9MQVNUKQogICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgIlVucmVjb2duaXplZCB1bml0IHR5cGUgZm9yIG9GRnMgY2h1bmsiKTsKIAotICAgcG5nX3NhdmVfdWludF8zMihidWYsIHhfb2Zmc2V0KTsKLSAgIHBuZ19zYXZlX3VpbnRfMzIoYnVmICsgNCwgeV9vZmZzZXQpOworICAgcG5nX3NhdmVfaW50XzMyKGJ1ZiwgeF9vZmZzZXQpOworICAgcG5nX3NhdmVfaW50XzMyKGJ1ZiArIDQsIHlfb2Zmc2V0KTsKICAgIGJ1Zls4XSA9IChwbmdfYnl0ZSl1bml0X3R5cGU7CiAKICAgIHBuZ193cml0ZV9jaHVuayhwbmdfcHRyLCAocG5nX2J5dGVwKXBuZ19vRkZzLCBidWYsIChwbmdfc2l6ZV90KTkpOwpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvbXN2Yy9SRUFETUUudHh0IGIvcHJvamVjdHMvbXN2Yy9SRUFETUUudHh0CmluZGV4IGFhMjE2ZWQuLjgwMjUwZjQgMTAwNjQ0Ci0tLSBhL3Byb2plY3RzL21zdmMvUkVBRE1FLnR4dAorKysgYi9wcm9qZWN0cy9tc3ZjL1JFQURNRS50eHQKQEAgLTEsNSArMSw1IEBACiBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwIGZvcgotbGlicG5nIDEuMi4wYmV0YTMgKE1heSAxOCwgMjAwMSkgYW5kIHpsaWIKK2xpYnBuZyAxLjIuMGJldGE0IChKdW5lIDIzLCAyMDAxKSBhbmQgemxpYgogCiBDb3B5cmlnaHQgKEMpIDIwMDAgU2ltb24tUGllcnJlIENhZGlldXgKIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvbXN2Yy9wbmczMm1zLmRlZiBiL3Byb2plY3RzL21zdmMvcG5nMzJtcy5kZWYKaW5kZXggNWFmM2IyOS4uYTdkZDNiMiAxMDA2NDQKLS0tIGEvcHJvamVjdHMvbXN2Yy9wbmczMm1zLmRlZgorKysgYi9wcm9qZWN0cy9tc3ZjL3BuZzMybXMuZGVmCkBAIC02LDcgKzYsNyBAQAogREVTQ1JJUFRJT04gIlBORyBpbWFnZSBjb21wcmVzc2lvbiBsaWJyYXJ5IGZvciBXaW5kb3dzIgogCiBFWFBPUlRTCi07VmVyc2lvbiAxLjIuMGJldGEzCis7VmVyc2lvbiAxLjIuMGJldGE0CiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKZGlmZiAtLWdpdCBhL3Byb2plY3RzL25ldHdhcmUudHh0IGIvcHJvamVjdHMvbmV0d2FyZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmEzNjRiMQotLS0gL2Rldi9udWxsCisrKyBiL3Byb2plY3RzL25ldHdhcmUudHh0CkBAIC0wLDAgKzEsNiBAQAorQSBzZXQgb2YgcHJvamVjdCBmaWxlcyBpcyBhdmFpbGFibGUgZm9yIE5ldHdhcmUuICBHZXQKK2xpYnBuZy0xLjIuMGJldGE0LXByb2plY3QtbmV0d2FyZS56aXAgZnJvbSBhIGxpYnBuZyBkaXN0cmlidXRpb24KK3NpdGUgc3VjaCBhcyBodHRwOi8vbGlicG5nLnNvdXJjZWZvcmdlLm5ldAorCitQdXQgdGhlIHppcCBmaWxlIGluIHRoaXMgZGlyZWN0b3J5IChwcm9qZWN0cykgYW5kIHRoZW4gcnVuCisidW56aXAgLWEgbGlicG5nLTEuMi4wYmV0YTQtcHJvamVjdC1uZXR3YXJlLnppcCIKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlLnR4dCBiL3Byb2plY3RzL3dpbmNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmIwMGUzCi0tLSAvZGV2L251bGwKKysrIGIvcHJvamVjdHMvd2luY2UudHh0CkBAIC0wLDAgKzEsNiBAQAorQSBzZXQgb2YgcHJvamVjdCBmaWxlcyBpcyBhdmFpbGFibGUgZm9yIFdpbkNFLiAgR2V0CitsaWJwbmctMS4yLjBiZXRhNC1wcm9qZWN0LXdpbmNlLnppcCBmcm9tIGEgbGlicG5nIGRpc3RyaWJ1dGlvbgorc2l0ZSBzdWNoIGFzIGh0dHA6Ly9saWJwbmcuc291cmNlZm9yZ2UubmV0CisKK1B1dCB0aGUgemlwIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkgKHByb2plY3RzKSBhbmQgdGhlbiBydW4KKyJ1bnppcCAtYSBsaWJwbmctMS4yLjBiZXRhNC1wcm9qZWN0LXdpbmNlLnppcCIKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL1JFQURNRUUuV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZmRhOTUuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1saWJwbmcgZm9yIFdpbmRvd3NDRSBSZWwuMS4wCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgotIENvcHlyaWdodCAoYykgMjAwMCBUZW5payBDby4sTHRkLgotCi0gUG9ydGluZyBmb3IgV2luZG93c0NFIGJ5IFRlbmlrIENvLixMdGQuKEthenVvIEFkYWNoaSkKLQotCi1JbnRyb2R1Y3Rpb24KLT09PT09PT09PT09PQotVGhpcyBpcyBsaWJwbmcgMS4yLjBiZXRhMyBwb3J0ZWQgdG8gV2luZG93c0NFIDIuMCBhbmQgMi4xMS4KLWxpYnBuZyAxLjIuMGJldGEzIGlzIGEgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5LgotU2VlIFJFQURNRSwgYSBkb2N1bWVudCBvZiBvcmlnaW5hbCBsaWJwbmcgMS4yLjBiZXRhMy4KLQotemxpYiBmb3IgV2luZG93c0NFCi09PT09PT09PT09PT09PT09PT0KLVRoaXMgbGlicmFyeSByZXF1aXJlcyB6bGliIGZvciBXaW5kb3dzQ0UuICBZb3UgY2FuIHVzZSB0aGUgc3VwcGxpZWQKLXpsaWIuZGlmZiBhbmQgemxpYmNlLmRlZiBmaWxlcyB0byBhZGQgV2luZG93c0NFIHN1cHBvcnQgdG8gbGlicG5nLTEuMS4zLgotCi1Db3B5cmlnaHQgbm90aWNlCi09PT09PT09PT09PT09PT09Ci1UaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAotd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwotYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KLQotU2VlIFJFQURNRSBhbmQgTElDRU5TRSwgZG9jdW1lbnRzIG9mIG9yaWdpbmFsIGxpYnBuZyAxLjIuMGJldGEzLCBmb3IgY29uZGl0aW9ucwotb2YgdXNlIGFuZCBkaXN0cmlidXRpb24uCi0KLUZpbGVzCi09PT09PQotCi0gUkVBRE1FRS5XQ0UgLSB0aGlzIGZpbGUoaW4gRW5nbGlzaCkKLSBSRUFETUVKLldDRSAtIHRoaXMgZmlsZShpbiBKYXBhbmVzZSkKLSBwbmczMmNlLmRlZiAtIG1vZHVsZSBkZWZpbml0aW9uIGZpbGUgdG8gbWFrZSBETExzCi0KLVNhbXBsZSBwcm9ncmFtcyguLi8uLi9wbmd0ZXN0LmMgYW5kIC4uLy4uL2NvbnRyaWIvKikgY2FuIGJ1aWxkIG9uIFdpbmRvd3NDRQotMi4xMS4gIFdpbmRvd3NDRSAyLjAgYW5kIGJlbG93IGRvIG5vdCBzdXBwb3J0ICdjb25zb2xlJyBmdW5jdGlvbnMuCi0KLUF1dGhvcgotPT09PT09Ci1UZW5payBDby4sTHRkLgotS2F6dW8gQWRhY2hpCi1hZGFjaGlAdGVuaWsuY28uanAKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL1JFQURNRUouV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NTBkYWQuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1saWJwbmcgZm9yIFdpbmRvd3NDRSBSZWwuMS4wCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgotIENvcHlyaWdodCAoYykgMjAwMCBUZW5payBDby4sTHRkLgotCi0gUG9ydGluZyBmb3IgV2luZG93c0NFIGJ5IFRlbmlrIENvLixMdGQuKEthenVvIEFkYWNoaSkKLQotCi2CzYK2gt+CyQotPT09PT09PT0KLWxpYnBuZyBmb3IgV2luZG93c0NFgs0gUE5HjGCOroLMieaRnINmgVuDXoOJg0ODdYOJg4ogbGlicG5ngsxXaW5kb3dzQ0UKLZTFgsWCt4FCbGlicG5ngsmCwoKigsSCzI/agrWCopDglr6CzYFBlXSRroLMIFJFQURNRSCC8IKok8eC3YKtgr6Cs4KigUIKLQotemxpYiBmb3IgV2luZG93c0NFCi09PT09PT09PT09PT09PT09PT0KLWxpYnBuZ4LFgs2BQYNmgVuDXoizj2uDiYNDg3WDiYOKgsaCtYLEIHpsaWKC8I5nl3CCtYLEgqKC3IK3gUJsaWJwbmeC8Aotl5iXcIK3gumCvYLfgsmCzYFBlcqTciB6bGligvCXcIjTgreC6ZVLl3aCqoKgguiC3IK3gUIKLQotgsiCqIFBgrGCzINwg2KDUIFbg1eCxZeYl3CCxYKrgukgemxpYoLNjoSCzI3skKyCtYK9IHpsaWJjZS5kbGyCxYK3gUIKLQotjmeXcI/wjI8KLT09PT09PT09Ci2CsYLMg1yDdINng0WDRoNBgs2Ws5Xbj9iCxYK3gUKCsYLMg1yDdINng0WDRoNBgqqMtIj2gsWXmJdwjtKCqpTtgumCsYLGCi2CyYLIgsGCvYKigqmCyILplO2KUYLJgsKCooLEguCBQY3sjtKBQZR6lXqO0oFBgruCzJG8l5iXcI7SiMiKT4LMkGyVqIFBCi2SY5HMgsmQ05RDgvCCxoLpi2CWsYLNgsiCooLggsyCxoK1gtyCt4FCCi0KLYK7gsyRvIFBgrGCzINcg3SDZ4NFg0aDQYLMl5iXcI/wjI+CyYLCgqKCxILNgUGMtJTFgsWCoILpIGxpYnBuZyAxLjIuMGJldGEzgskKLY+Ai5KCt4LpguCCzILGgrWC3IK3gUKP2oK1gq2CzYFBlXSRroLMIFJFQURNRSxMSUNFTlNFIILwgqiTx4Ldgq2CvoKzgqKBQgotCi2O+5hek+CXZQotPT09PT09PT0KLQotIFJFQURNRUouV0NFIC0ggrGCzIN0g0CDQ4OLCi0gUkVBRE1FRS5XQ0UgLSCCsYLMg3SDQINDg4soiXCM6ikKLSBwbmczMmNlLmRlZiAtIERMTI3skKyXcCCS6Itgg3SDQINDg4sKLQotlXSRroNUg5ODdoOLgUWDdoONg0+DiYOAgs2BQYOBg2KDWoFbg1ePb5fNgsyTc42Hj+OBQVdpbmRvd3NDRSAyLjExiMiNfgotgsWCzILdjmeXcInClFyCxYK3gUIKLQotlHqVeo7SCi09PT09PT0KLYNlg2qDYoNOipSOronvjtAgikqUrZWUCi2Rq5enIJhhl1kKLWFkYWNoaUB0ZW5pay5jby5qcApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvUkVBRE1FWkUuV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FWkUuV0NFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjA2NGJkLi4wMDAwMDAwCi0tLSBhL3Byb2plY3RzL3dpbmNlL1JFQURNRVpFLldDRQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLXpsaWIgZm9yIFdpbmRvd3NDRSBSZWwuMS4wCi09PT09PT09PT09PT09PT09PT09PT09PT09PQotIChDKSAxOTk1LTE5OTggSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgotIChDKSAyMDAwICAgICAgVGVuaWsgQ28uLEx0ZC4KLQotIFBvcnRpbmcgZm9yIFdpbmRvd3NDRSBieSBUZW5payBDby4sTHRkLihLYXp1byBBZGFjaGkpCi0KLQotSW50cm9kdWN0aW9uCi09PT09PT09PT09PT0KLVRoaXMgaXMgemxpYiAxLjEuMyBwb3J0ZWQgdG8gV2luZG93c0NFIDIuMCBhbmQgMi4xMS4KLXpsaWIgMS4xLjMgaXMgYSBnZW5lcmFsIHB1cnBvc2UgZGF0YSBjb21wcmVzc2lvbiBsaWJyYXJ5LgotU2VlIFJFQURNRSwgYSBkb2N1bWVudCBvZiBvcmlnaW5hbCB6bGliIDEuMS4zLgotCi1Db3B5cmlnaHQgbm90aWNlCi09PT09PT09PT09PT09PT09Ci1UaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAotd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwotYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KLQotU2VlIFJFQURNRSwgYSBkb2N1bWVudCBvZiBvcmlnaW5hbCB6bGliIDEuMS4zLCBmb3IgY29uZGl0aW9ucyBvZiB1c2UgYW5kCi1kaXN0cmlidXRpb24uCi0KLUZpbGVzCi09PT09PQotCi0gUkVBRE1FRS5XQ0UgLSB0aGlzIGZpbGUoaW4gRW5nbGlzaCkKLSBSRUFETUVKLldDRSAtIHRoaXMgZmlsZShpbiBKYXBhbmVzZSkKLSB6bGliY2UuZGVmICAtIG1vZHVsZSBkZWZpbml0aW9uIGZpbGUgdG8gbWFrZSBETExzCi0gemxpYmNlLmRpZmYgLSBwYXRjaCBmaWxlIGZvciBzb3VyY2UgY29kZQotCi1TYW1wbGUgcHJvZ3JhbXMobWluaWd6aXAuYyBhbmQgZXhhbXBsZS5jKSBjYW4gYnVpbGQgb24gV2luZG93c0NFIDIuMTEuCi1XaW5kb3dzQ0UgMi4wIGFuZCBiZWxvdyBpcyBub3Qgc3VwcG9ydCAnY29uc29sZScgZnVuY3Rpb25zLgotCi1BdXRob3IKLT09PT09PQotVGVuaWsgQ28uLEx0ZC4KLUthenVvIEFkYWNoaQotYWRhY2hpQHRlbmlrLmNvLmpwCmRpZmYgLS1naXQgYS9wcm9qZWN0cy93aW5jZS9SRUFETUVaSi5XQ0UgYi9wcm9qZWN0cy93aW5jZS9SRUFETUVaSi5XQ0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxZjQwOGYuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FWkouV0NFCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotemxpYiBmb3IgV2luZG93c0NFIFJlbC4xLjAKLT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKEMpIDE5OTUtMTk5OCBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCi0gKEMpIDIwMDAgICAgICBUZW5payBDby4sTHRkLgotCi0gUG9ydGluZyBmb3IgV2luZG93c0NFIGJ5IFRlbmlrIENvLixMdGQuKEthenVvIEFkYWNoaSkKLQotCi2CzYK2gt+CyQotPT09PT09PT0KLXpsaWIgZm9yIFdpbmRvd3NDRYLNlMSXcILMg2aBW4NeiLOPa4OJg0ODdYOJg4ogemxpYoLMIFdpbmRvd3NDRZTFgsWCt4FCCi16bGligsmCwoKigsSCzI/agrWCopDglr6CzYFBlXSRroLMIFJFQURNRSCC8IKok8eC3YKtgr6Cs4KigUIKLQotjmeXcI/wjI8KLT09PT09PT09Ci2CsYLMg1yDdINng0WDRoNBgs2Ws5Xbj9iCxYK3gUKCsYLMg1yDdINng0WDRoNBgqqMtIj2gsWXmJdwjtKCqpTtgumCsYLGCi2CyYLIgsGCvYKigqmCyILplO2KUYLJgsKCooLEguCBQY3sjtKBQZR6lXqO0oFBgruCzJG8l5iXcI7SiMiKT4LMkGyVqIFBCi2SY5HMgsmQ05RDgvCCxoLpi2CWsYLNgsiCooLggsyCxoK1gtyCt4FCCi0KLYK7gsyRvIFBgrGCzINcg3SDZ4NFg0aDQYLMl5iXcI/wjI+CyYLCgqKCxILNgUGMtJTFgsWCoILpIHpsaWIgMS4xLjOCyQotj4CLkoK3gumC4ILMgsaCtYLcgreBQo/agrWCrYLNgUGVdJGugswgUkVBRE1FIILwgqiTx4Ldgq2CvoKzgqKBQgotCi2O+5hek+CXZQotPT09PT09PT0KLQotIFJFQURNRUouV0NFIC0ggrGCzIN0g0CDQ4OLCi0gUkVBRE1FRS5XQ0UgLSCCsYLMg3SDQINDg4soiXCM6ikKLSB6bGliY2UuZGlmZiAtIINcgVuDWINSgVuDaI23laqDdINAg0ODiwotIHpsaWJjZS5kZWYgIC0gRExMjeyQrJdwIJLoi2CDdINAg0ODiwotCi2MtJTFgswgemxpYiAxLjEuM4LGgsyNxZHlgsyI4YKigs2BQWd6aW8uY4LMg1KBW4NogsWCt4FCV2luZG93c0NFgsmCzQotc3RkaW8uaChvcGVuk5mCzIrWkJQpgqqRto3dgrWCyIKigr2C34FBk8aOqYLMIGd6aW93Y2UuY4LwjeyQrIK1gtyCtYK9gUIKLQotbWluaWd6aXAuY4LGIGV4YW1wbGUuY4LMlXSRroNUg5ODdoOLgUWDdoONg0+DiYOAgs2BQYOBg2KDWoFbg1ePb5fNgswKLZNzjYeP44FBV2luZG93c0NFIDIuMTGIyI1+gsWCzILdjmeXcInClFyCxYK3gUIKLQotlHqVeo7SCi09PT09PT0KLYNlg2qDYoNOipSOronvjtAgikqUrZWUCi2Rq5enIJhhl1kKLWFkYWNoaUB0ZW5pay5jby5qcApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvbHBuZ2NlLmRzcCBiL3Byb2plY3RzL3dpbmNlL2xwbmdjZS5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhMjRiY2YuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvbHBuZ2NlLmRzcAorKysgL2Rldi9udWxsCkBAIC0xLDM3MzEgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJscG5nY2UiIC0gUGFja2FnZSBPd25lcj08ND4KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDAKLSMgKiogRE8gTk9UIEVESVQgKioKLQotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSB4ODZlbSkgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4N2YwMgotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBTSDMpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDgxMDIKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgUFBDKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4NDAyCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODMwMgotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBNSVBTRlApIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDg3MDIKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgQVJNKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4NTAyCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIFNINCkgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODYwMgotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBNSVBTKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4MjAyCi0KLUNGRz1scG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsCi0hTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4KLSFNRVNTQUdFIAotIU1FU1NBR0UgTk1BS0UgL2YgImxwbmdjZS5tYWsiLgotIU1FU1NBR0UgCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToKLSFNRVNTQUdFIAotIU1FU1NBR0UgTk1BS0UgL2YgImxwbmdjZS5tYWsiIENGRz0ibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLSFNRVNTQUdFIAotIU1FU1NBR0UgUG9zc2libGUgY2hvaWNlcyBmb3IgY29uZmlndXJhdGlvbiBhcmU6Ci0hTUVTU0FHRSAKLSFNRVNTQUdFICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBNSVBTKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIFNINCkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIFNINCkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0gzKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0gzKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBBUk0pIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBBUk0pIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFNGUCkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFNGUCkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIHg4NmVtKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSB4ODZlbSkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgUFBDKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgUFBDKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAKLQotIyBCZWdpbiBQcm9qZWN0Ci0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMAotIyBQUk9QIFNjY19Qcm9qTmFtZSAiIgotIyBQUk9QIFNjY19Mb2NhbFBhdGggIkgvUEMgVmVyLiAyLjAwIgotIyBQUk9QIFdDRV9Gb3JtYXRWZXJzaW9uICI2LjAiCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldNSVBTUmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNSZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV01JUFNSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNsbWlwcy5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9RTVJXQ0UgL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9PMiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL1FNUldDRSAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvUU1SV0NFIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvUU1SV0NFIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvZGVidWcgL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0g0UmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0g0UmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNINFJlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDRSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpTSDQgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVNINERiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVNINERiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VTSDREYmciCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0g0RGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1zaGNsLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0g0IiAvZCAiX1NINF8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpTSDQgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpTSDQgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVNIM1JlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVNIM1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VTSDNSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1zaGNsLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpTSDMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOlNIMyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVNIM0RiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVNIM0RiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VTSDNEYmciCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1zaGNsLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0gzIiAvZCAiX1NIM18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpTSDMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpTSDMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRUFSTVJlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRUFSTVJlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VBUk1SZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFQVJNUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbGFybS5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01DIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIkFSTSIgL2QgIl9BUk1fIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIkFSTSIgL2QgIl9BUk1fIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb3JlZGxsLmxpYiBjb21tY3RybC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6QVJNIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFQVJNRGJnIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFQVJNRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldDRUFSTURiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VBUk1EYmciCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNsYXJtLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUMgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb3JlZGxsLmxpYiBjb21tY3RybC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpBUk0gL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb3JlZGxsLmxpYiBjb21tY3RybC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpBUk0gL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldNSVBTRlBSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0ZQUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldNSVBTRlBSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNGUFJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldNSVBTRlBEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0ZQRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldNSVBTRlBEYmciCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNGUERiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvZGVidWcgL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFWDg2UmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFWDg2UmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRVg4NlJlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VYODZSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNsLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIk5ERUJVRyIgL0QgImlfMzg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIkxQTkdDRV9FWFBPUlRTIiAvR3M4MTkyIC9HRiAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9HczgxOTIgL0dGIC9jCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9kbGwgL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9kbGwgL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVg4NkRiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVg4NkRiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VYODZEYmciCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFWDg2RGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9HczgxOTIgL0dGIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUxkIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9HczgxOTIgL0dGIC9jCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9kICJfeDg2XyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMDEwMDAwIiAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJWDg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvYmFzZToiMHgwMDAxMDAwMCIgL2RsbCAvZGVidWcgL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbVJlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MIC9XMyAvTzIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZGxsIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0jIEFERCBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2RsbCAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvd2luZG93c2NlOmVtdWxhdGlvbgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbURiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dtIC9aaSAvT2QgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJfREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJMUE5HQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUxkIC9XMyAvR20gL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJfREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX0JVSUxEX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCi0jIEFERCBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvd2luZG93c2NlOmVtdWxhdGlvbgotIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VQUENSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFUFBDUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbHBwYy5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfQlVJTERfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6UFBDIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpQUEMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VQUENEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VQUENEYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFUFBDRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVBQQ0RiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xwcGMuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTFBOR0NFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0RGVidWcpIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19CVUlMRF9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgInBwYyIgL2QgIl9wcGNfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlBQQyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlBQQyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVORElGIAotCi0jIEJlZ2luIFRhcmdldAotCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLSMgTmFtZSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0jIE5hbWUgImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotIyBOYW1lICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0jIEJlZ2luIEdyb3VwICJTb3VyY2UgRmlsZXMiCi0KLSMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiY3BwO2M7Y3h4O3JjO2RlZjtyO29kbDtpZGw7aHBqO2JhdCIKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXHBuZy5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR19DPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdfQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HX0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uXHBuZzMyY2UuZGVmCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nZXJyb3IuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdFUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HRVI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0VSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nZ2NjcmQuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0M9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nZ2V0LmMKLQotIUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HR0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR0dFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdHRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXHBuZ21lbS5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR01FPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdNRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HTUU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdwcmVhZC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1BSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdQUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdyZWFkLmMKLQotIUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXHBuZ3Jpby5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUkk9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdydHJhbi5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlQ9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdydXRpbC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1JVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdSVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HUlU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdzZXQuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdTRT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HU0U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1NFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5ndHJhbnMuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdUUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVFI9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5ndmNyZC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1ZDPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdWQz1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVkM9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmd3aW8uYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXST1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV0k9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dJPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nd3JpdGUuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXUj1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1I9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dSPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nd3RyYW4uYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXVD1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1Q9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dUPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nd3V0aWwuYwotCi0hSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdXVT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJscG5nY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gImxwbmdjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HV1U9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAibHBuZ2NlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1dVPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBFbmQgR3JvdXAKLSMgQmVnaW4gR3JvdXAgIkhlYWRlciBGaWxlcyIKLQotIyBQUk9QIERlZmF1bHRfRmlsdGVyICJoO2hwcDtoeHg7aG07aW5sIgotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5ccG5nLmgKLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlxwbmdjb25mLmgKLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEVuZCBHcm91cAotIyBCZWdpbiBHcm91cCAiUmVzb3VyY2UgRmlsZXMiCi0KLSMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaWNvO2N1cjtibXA7ZGxnO3JjMjtyY3Q7YmluO3JncztnaWY7anBnO2pwZWc7anBlIgotIyBFbmQgR3JvdXAKLSMgRW5kIFRhcmdldAotIyBFbmQgUHJvamVjdApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvbHBuZ2NlLmRzdyBiL3Byb2plY3RzL3dpbmNlL2xwbmdjZS5kc3cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZTQ4ZTMuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvbHBuZ2NlLmRzdworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLU1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFdvcmtzcGFjZSBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwCi0jIFdBUk5JTkc6IERPIE5PVCBFRElUIE9SIERFTEVURSBUSElTIFdPUktTUEFDRSBGSUxFIQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVByb2plY3Q6ICJscG5nY2UiPS5cbHBuZ2NlLmRzcCAtIFBhY2thZ2UgT3duZXI9PDQ+Ci0KLVBhY2thZ2U9PDU+Ci17e3sKLX19fQotCi1QYWNrYWdlPTw0Pgote3t7Ci0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5Ci0gICAgUHJvamVjdF9EZXBfTmFtZSB6bGliY2UKLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5Ci19fX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1Qcm9qZWN0OiAiemxpYmNlIj0uXHpsaWJjZS5kc3AgLSBQYWNrYWdlIE93bmVyPTw0PgotCi1QYWNrYWdlPTw1Pgote3t7Ci19fX0KLQotUGFja2FnZT08ND4KLXt7ewotfX19Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotR2xvYmFsOgotCi1QYWNrYWdlPTw1Pgote3t7Ci19fX0KLQotUGFja2FnZT08Mz4KLXt7ewotfX19Ci0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvcG5nMzJjZS5kZWYgYi9wcm9qZWN0cy93aW5jZS9wbmczMmNlLmRlZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAzYjA5OC4uMDAwMDAwMAotLS0gYS9wcm9qZWN0cy93aW5jZS9wbmczMmNlLmRlZgorKysgL2Rldi9udWxsCkBAIC0xLDIxMSArMCwwIEBACi07LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi07IExJQlBORyBtb2R1bGUgZGVmaW5pdGlvbiBmaWxlIGZvciBXaW5kb3dzCi07LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUxJQlJBUlkgbHBuZ2NlCi0KLUVYUE9SVFMKLTtWZXJzaW9uIDEuMi4wYmV0YTMKLSAgcG5nX2J1aWxkX2dyYXlzY2FsZV9wYWxldHRlICBAMQotICBwbmdfY2hlY2tfc2lnICAgICAgICBAMgotICBwbmdfY2h1bmtfZXJyb3IgICAgICBAMwotICBwbmdfY2h1bmtfd2FybmluZyAgICAgIEA0Ci07ICBwbmdfY29udmVydF9mcm9tX3N0cnVjdF90bSAgIEA1Ci07ICBwbmdfY29udmVydF9mcm9tX3RpbWVfdCAgICBANgotICBwbmdfY3JlYXRlX2luZm9fc3RydWN0ICAgICBANwotICBwbmdfY3JlYXRlX3JlYWRfc3RydWN0ICAgICBAOAotICBwbmdfY3JlYXRlX3dyaXRlX3N0cnVjdCAgICBAOQotICBwbmdfZGF0YV9mcmVlciAgICBAMTAKLSAgcG5nX2Rlc3Ryb3lfaW5mb19zdHJ1Y3QgIEAxMQotICBwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCAgQDEyCi0gIHBuZ19kZXN0cm95X3dyaXRlX3N0cnVjdCAgQDEzCi0gIHBuZ19lcnJvciAgICBAMTQKLSAgcG5nX2ZyZWUgICAgICBAMTUKLSAgcG5nX2ZyZWVfZGF0YSAgICBAMTYKLSAgcG5nX2dldF9JSERSICAgIEAxNwotICBwbmdfZ2V0X1BMVEUgICAgQDE4Ci0gIHBuZ19nZXRfYktHRCAgICBAMTkKLSAgcG5nX2dldF9iaXRfZGVwdGggICAgQDIwCi0gIHBuZ19nZXRfY0hSTSAgICBAMjEKLSAgcG5nX2dldF9jSFJNX2ZpeGVkICBAMjIKLSAgcG5nX2dldF9jaGFubmVscyAgICBAMjMKLSAgcG5nX2dldF9jb2xvcl90eXBlICBAMjQKLSAgcG5nX2dldF9jb21wcmVzc2lvbl9idWZmZXJfc2l6ZSAgQDI1Ci0gIHBuZ19nZXRfY29tcHJlc3Npb25fdHlwZSAgQDI2Ci0gIHBuZ19nZXRfY29weXJpZ2h0ICAgIEAyNwotICBwbmdfZ2V0X2Vycm9yX3B0ciAgICBAMjgKLSAgcG5nX2dldF9maWx0ZXJfdHlwZSAgQDI5Ci0gIHBuZ19nZXRfZ0FNQSAgICBAMzAKLSAgcG5nX2dldF9nQU1BX2ZpeGVkICBAMzEKLSAgcG5nX2dldF9oSVNUICAgIEAzMgotICBwbmdfZ2V0X2hlYWRlcl92ZXIgIEAzMwotICBwbmdfZ2V0X2hlYWRlcl92ZXJzaW9uICBAMzQKLSAgcG5nX2dldF9pQ0NQICAgIEAzNQotICBwbmdfZ2V0X2ltYWdlX2hlaWdodCAgQDM2Ci0gIHBuZ19nZXRfaW1hZ2Vfd2lkdGggIEAzNwotICBwbmdfZ2V0X2ludGVybGFjZV90eXBlICBAMzgKLSAgcG5nX2dldF9pb19wdHIgICAgQDM5Ci0gIHBuZ19nZXRfbGlicG5nX3ZlciAgQDQwCi0gIHBuZ19nZXRfb0ZGcyAgICBANDEKLSAgcG5nX2dldF9wQ0FMICAgIEA0MgotICBwbmdfZ2V0X3BIWXMgICAgQDQzCi0gIHBuZ19nZXRfcGl4ZWxfYXNwZWN0X3JhdGlvICBANDQKLSAgcG5nX2dldF9waXhlbHNfcGVyX21ldGVyICBANDUKLSAgcG5nX2dldF9wcm9ncmVzc2l2ZV9wdHIgIEA0NgotICBwbmdfZ2V0X3JnYl90b19ncmF5X3N0YXR1cyAgQDQ3Ci0gIHBuZ19nZXRfcm93Ynl0ZXMgICAgQDQ4Ci0gIHBuZ19nZXRfcm93cyAgICBANDkKLSAgcG5nX2dldF9zQklUICAgIEA1MAotICBwbmdfZ2V0X3NDQUwgICAgQDUxCi0gIHBuZ19nZXRfc1BMVCAgICBANTIKLSAgcG5nX2dldF9zUkdCICAgIEA1MwotICBwbmdfZ2V0X3NpZ25hdHVyZSAgICBANTQKLSAgcG5nX2dldF90SU1FICAgIEA1NQotICBwbmdfZ2V0X3RSTlMgICAgQDU2Ci0gIHBuZ19nZXRfdGV4dCAgICBANTcKLSAgcG5nX2dldF91bmtub3duX2NodW5rcyAgQDU4Ci0gIHBuZ19nZXRfdXNlcl9jaHVua19wdHIgIEA1OQotICBwbmdfZ2V0X3VzZXJfdHJhbnNmb3JtX3B0ciAgQDYwCi0gIHBuZ19nZXRfdmFsaWQgICAgQDYxCi0gIHBuZ19nZXRfeF9vZmZzZXRfbWljcm9ucyAgQDYyCi0gIHBuZ19nZXRfeF9vZmZzZXRfcGl4ZWxzICBANjMKLSAgcG5nX2dldF94X3BpeGVsc19wZXJfbWV0ZXIgIEA2NAotICBwbmdfZ2V0X3lfb2Zmc2V0X21pY3JvbnMgIEA2NQotICBwbmdfZ2V0X3lfb2Zmc2V0X3BpeGVscyAgQDY2Ci0gIHBuZ19nZXRfeV9waXhlbHNfcGVyX21ldGVyICBANjcKLSAgcG5nX21hbGxvYyAgICBANjgKLSAgcG5nX21lbWNweV9jaGVjayAgICBANjkKLSAgcG5nX21lbXNldF9jaGVjayAgICBANzAKLSAgcG5nX3Blcm1pdF9lbXB0eV9wbHRlICBANzEKLSAgcG5nX3Byb2Nlc3NfZGF0YSAgICBANzIKLSAgcG5nX3Byb2dyZXNzaXZlX2NvbWJpbmVfcm93ICBANzMKLSAgcG5nX3JlYWRfZW5kICAgIEA3NAotICBwbmdfcmVhZF9pbWFnZSAgICBANzUKLSAgcG5nX3JlYWRfaW5mbyAgICBANzYKLTsgcG5nX3JlYWRfaW5pdCBpcyBkZXByZWNhdGVkCi0gIHBuZ19yZWFkX2luaXQgICAgQDc3Ci0gIHBuZ19yZWFkX3BuZyAgICBANzgKLSAgcG5nX3JlYWRfcm93ICAgIEA3OQotICBwbmdfcmVhZF9yb3dzICAgIEA4MAotICBwbmdfcmVhZF91cGRhdGVfaW5mbyAgQDgxCi0gIHBuZ19yZXNldF96c3RyZWFtICAgIEA4MgotICBwbmdfc2V0X0lIRFIgICAgQDgzCi0gIHBuZ19zZXRfUExURSAgICBAODQKLSAgcG5nX3NldF9iS0dEICAgIEA4NQotICBwbmdfc2V0X2JhY2tncm91bmQgIEA4NgotICBwbmdfc2V0X2JnciAgICBAODcKLSAgcG5nX3NldF9jSFJNICAgIEA4OAotICBwbmdfc2V0X2NIUk1fZml4ZWQgIEA4OQotICBwbmdfc2V0X2NvbXByZXNzaW9uX2J1ZmZlcl9zaXplICBAOTAKLSAgcG5nX3NldF9jb21wcmVzc2lvbl9sZXZlbCAgQDkxCi0gIHBuZ19zZXRfY29tcHJlc3Npb25fbWVtX2xldmVsICBAOTIKLSAgcG5nX3NldF9jb21wcmVzc2lvbl9tZXRob2QgIEA5MwotICBwbmdfc2V0X2NvbXByZXNzaW9uX3N0cmF0ZWd5ICBAOTQKLSAgcG5nX3NldF9jb21wcmVzc2lvbl93aW5kb3dfYml0cyAgQDk1Ci0gIHBuZ19zZXRfY3JjX2FjdGlvbiAgQDk2Ci0gIHBuZ19zZXRfZGl0aGVyICAgIEA5NwotICBwbmdfc2V0X2Vycm9yX2ZuICAgIEA5OAotICBwbmdfc2V0X2V4cGFuZCAgICBAOTkKLSAgcG5nX3NldF9maWxsZXIgICAgQDEwMAotICBwbmdfc2V0X2ZpbHRlciAgICBAMTAxCi0gIHBuZ19zZXRfZmlsdGVyX2hldXJpc3RpY3MgIEAxMDIKLSAgcG5nX3NldF9mbHVzaCAgICBAMTAzCi0gIHBuZ19zZXRfZ0FNQSAgICBAMTA0Ci0gIHBuZ19zZXRfZ0FNQV9maXhlZCAgQDEwNQotICBwbmdfc2V0X2dhbW1hICAgIEAxMDYKLSAgcG5nX3NldF9ncmF5XzFfMl80X3RvXzggIEAxMDcKLSAgcG5nX3NldF9ncmF5X3RvX3JnYiAgQDEwOAotICBwbmdfc2V0X2hJU1QgICAgQDEwOQotICBwbmdfc2V0X2lDQ1AgICAgQDExMAotICBwbmdfc2V0X2ludGVybGFjZV9oYW5kbGluZyAgQDExMQotICBwbmdfc2V0X2ludmVydF9hbHBoYSAgQDExMgotICBwbmdfc2V0X2ludmVydF9tb25vICBAMTEzCi0gIHBuZ19zZXRfa2VlcF91bmtub3duX2NodW5rcyAgQDExNAotICBwbmdfc2V0X29GRnMgICAgQDExNQotICBwbmdfc2V0X3BDQUwgICAgQDExNgotICBwbmdfc2V0X3BIWXMgICAgQDExNwotICBwbmdfc2V0X3BhY2tpbmcgICAgQDExOAotICBwbmdfc2V0X3BhY2tzd2FwICAgIEAxMTkKLSAgcG5nX3NldF9wYWxldHRlX3RvX3JnYiAgQDEyMAotICBwbmdfc2V0X3Byb2dyZXNzaXZlX3JlYWRfZm4gIEAxMjEKLSAgcG5nX3NldF9yZWFkX2ZuICAgIEAxMjIKLSAgcG5nX3NldF9yZWFkX3N0YXR1c19mbiAgQDEyMwotICBwbmdfc2V0X3JlYWRfdXNlcl9jaHVua19mbiAgQDEyNAotICBwbmdfc2V0X3JlYWRfdXNlcl90cmFuc2Zvcm1fZm4gIEAxMjUKLSAgcG5nX3NldF9yZ2JfdG9fZ3JheSAgQDEyNgotICBwbmdfc2V0X3JnYl90b19ncmF5X2ZpeGVkICBAMTI3Ci0gIHBuZ19zZXRfcm93cyAgICBAMTI4Ci0gIHBuZ19zZXRfc0JJVCAgICBAMTI5Ci0gIHBuZ19zZXRfc0NBTCAgICBAMTMwCi0gIHBuZ19zZXRfc1BMVCAgICBAMTMxCi0gIHBuZ19zZXRfc1JHQiAgICBAMTMyCi0gIHBuZ19zZXRfc1JHQl9nQU1BX2FuZF9jSFJNICBAMTMzCi0gIHBuZ19zZXRfc2hpZnQgICAgQDEzNAotICBwbmdfc2V0X3NpZ19ieXRlcyAgICBAMTM1Ci0gIHBuZ19zZXRfc3RyaXBfMTYgICAgQDEzNgotICBwbmdfc2V0X3N0cmlwX2FscGhhICBAMTM3Ci0gIHBuZ19zZXRfc3dhcCAgICBAMTM4Ci0gIHBuZ19zZXRfc3dhcF9hbHBoYSAgQDEzOQotICBwbmdfc2V0X3RJTUUgICAgQDE0MAotICBwbmdfc2V0X3RSTlMgICAgQDE0MQotICBwbmdfc2V0X3RSTlNfdG9fYWxwaGEgIEAxNDIKLSAgcG5nX3NldF90ZXh0ICAgIEAxNDMKLSAgcG5nX3NldF91bmtub3duX2NodW5rX2xvY2F0aW9uICBAMTQ0Ci0gIHBuZ19zZXRfdW5rbm93bl9jaHVua3MgIEAxNDUKLSAgcG5nX3NldF91c2VyX3RyYW5zZm9ybV9pbmZvICBAMTQ2Ci0gIHBuZ19zZXRfd3JpdGVfZm4gICAgQDE0NwotICBwbmdfc2V0X3dyaXRlX3N0YXR1c19mbiAgQDE0OAotICBwbmdfc2V0X3dyaXRlX3VzZXJfdHJhbnNmb3JtX2ZuICBAMTQ5Ci0gIHBuZ19zaWdfY21wICAgIEAxNTAKLSAgcG5nX3N0YXJ0X3JlYWRfaW1hZ2UgIEAxNTEKLSAgcG5nX3dhcm5pbmcgICAgQDE1MgotICBwbmdfd3JpdGVfY2h1bmsgICAgQDE1MwotICBwbmdfd3JpdGVfY2h1bmtfZGF0YSAgQDE1NAotICBwbmdfd3JpdGVfY2h1bmtfZW5kICBAMTU1Ci0gIHBuZ193cml0ZV9jaHVua19zdGFydCAgQDE1NgotICBwbmdfd3JpdGVfZW5kICAgIEAxNTcKLSAgcG5nX3dyaXRlX2ZsdXNoICAgIEAxNTgKLSAgcG5nX3dyaXRlX2ltYWdlICAgIEAxNTkKLSAgcG5nX3dyaXRlX2luZm8gICAgQDE2MAotICBwbmdfd3JpdGVfaW5mb19iZWZvcmVfUExURSAgQDE2MQotOyBwbmdfd3JpdGVfaW5pdCBpcyBkZXByZWNhdGVkCi0gIHBuZ193cml0ZV9pbml0ICAgIEAxNjIKLSAgcG5nX3dyaXRlX3BuZyAgICBAMTYzCi0gIHBuZ193cml0ZV9yb3cgICAgQDE2NAotICBwbmdfd3JpdGVfcm93cyAgICBAMTY1Ci07IHBuZ19yZWFkX2luaXRfMiBhbmQgcG5nX3dyaXRlX2luaXRfMiBhcmUgZGVwcmVjYXRlZC4KLSAgcG5nX3JlYWRfaW5pdF8yICAgIEAxNjYKLSAgcG5nX3dyaXRlX2luaXRfMiAgICBAMTY3Ci0gIHBuZ19hY2Nlc3NfdmVyc2lvbl9udW1iZXIgIEAxNjgKLTsgIHBuZ19zaWdfYnl0ZXMgICAgQDE2OQotOyAgcG5nX2xpYnBuZ192ZXIgICAgQDE3MAotICBwbmdfaW5pdF9pbyAgICBAMTcxCi0gIHBuZ19jb252ZXJ0X3RvX3JmYzExMjMgICAgIEAxNzIKLSAgcG5nX3NldF9pbnZhbGlkICBAMTczCi07IEFkZGVkIGF0IHZlcnNpb24gMS4wLjEyCi07IEZvciBjb21wYXRpYmxpdHkgd2l0aCAxLjAuNy0xLjAuMTEKLSAgcG5nX2luZm9faW5pdCBAMTc0Ci0gIHBuZ19yZWFkX2luaXRfMyAgICBAMTc1Ci0gIHBuZ193cml0ZV9pbml0XzMgICAgQDE3NgotICBwbmdfaW5mb19pbml0XzMgQDE3NwotICBwbmdfZGVzdHJveV9zdHJ1Y3QgIEAxNzgKLTsgQWRkZWQgYXQgdmVyc2lvbiAxLjIuMAotOyBGb3IgdXNlIHdpdGggUE5HX1VTRVJfTUVNX1NVUFBPUlRFRAotICBwbmdfZGVzdHJveV9zdHJ1Y3RfMiAgQDE3OQotICBwbmdfY3JlYXRlX3JlYWRfc3RydWN0XzIgQDE4MAotICBwbmdfY3JlYXRlX3dyaXRlX3N0cnVjdF8yIEAxODEKLSAgcG5nX21hbGxvY19kZWZhdWx0IEAxODIKLSAgcG5nX2ZyZWVfZGVmYXVsdCBAMTgzCi07IE1ORyBmZWF0dXJlcwotICBwbmdfcGVybWl0X21uZ19mZWF0dXJlcyAgQDE4NAotOyBNTVggc3VwcG9ydAotICBwbmdfbW14X3N1cHBvcnQgIEAxODUKLSAgcG5nX2dldF9tbXhfZmxhZ21hc2sgIEAxODYKLSAgcG5nX2dldF9hc21fZmxhZ21hc2sgIEAxODcKLSAgcG5nX2dldF9hc21fZmxhZ3MgIEAxODgKLSAgcG5nX2dldF9tbXhfYml0ZGVwdGhfdGhyZXNob2xkICBAMTg5Ci0gIHBuZ19nZXRfbW14X3Jvd2J5dGVzX3RocmVzaG9sZCAgQDE5MAotICBwbmdfc2V0X2FzbV9mbGFncyAgQDE5MQotICBwbmdfaW5pdF9tbXhfZmxhZ3MgIEAxOTIKLTsgU3RyaXAgZXJyb3IgbnVtYmVycwotICBwbmdfc2V0X3N0cmlwX2Vycm9yX251bWJlcnMgQDE5MwpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvcG5ndGVzdC5kc3AgYi9wcm9qZWN0cy93aW5jZS9wbmd0ZXN0LmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFkZTUwMC4uMDAwMDAwMAotLS0gYS9wcm9qZWN0cy93aW5jZS9wbmd0ZXN0LmRzcAorKysgL2Rldi9udWxsCkBAIC0xLDgxMiArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9InBuZ3Rlc3QiIC0gUGFja2FnZSBPd25lcj08ND4KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDAKLSMgKiogRE8gTk9UIEVESVQgKioKLQotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSB4ODYpIEFwcGxpY2F0aW9uIiAweDgzMDEKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgQVJNKSBBcHBsaWNhdGlvbiIgMHg4NTAxCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIFBQQykgQXBwbGljYXRpb24iIDB4ODQwMQotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSB4ODZlbSkgQXBwbGljYXRpb24iIDB4N2YwMQotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBTSDMpIEFwcGxpY2F0aW9uIiAweDgxMDEKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgU0g0KSBBcHBsaWNhdGlvbiIgMHg4NjAxCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIE1JUFMpIEFwcGxpY2F0aW9uIiAweDgyMDEKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgTUlQU0ZQKSBBcHBsaWNhdGlvbiIgMHg4NzAxCi0KLUNGRz1wbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZwotIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLAotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuCi0hTUVTU0FHRSAKLSFNRVNTQUdFIE5NQUtFIC9mICJwbmd0ZXN0Lm1hayIuCi0hTUVTU0FHRSAKLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOgotIU1FU1NBR0UgCi0hTUVTU0FHRSBOTUFLRSAvZiAicG5ndGVzdC5tYWsiIENGRz0icG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0hTUVTU0FHRSAKLSFNRVNTQUdFIFBvc3NpYmxlIGNob2ljZXMgZm9yIGNvbmZpZ3VyYXRpb24gYXJlOgotIU1FU1NBR0UgCi0hTUVTU0FHRSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFMpIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFMpIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBTSDQpIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0g0KSBBcHBsaWNhdGlvbiIpCi0hTUVTU0FHRSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0gzKSBBcHBsaWNhdGlvbiIpCi0hTUVTU0FHRSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIFNIMykgQXBwbGljYXRpb24iKQotIU1FU1NBR0UgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIEFSTSkgQXBwbGljYXRpb24iKQotIU1FU1NBR0UgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBBUk0pIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBNSVBTRlApIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgTUlQU0ZQKSBBcHBsaWNhdGlvbiIpCi0hTUVTU0FHRSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2KSBBcHBsaWNhdGlvbiIpCi0hTUVTU0FHRSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIHg4NikgQXBwbGljYXRpb24iKQotIU1FU1NBR0UgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2ZW0pIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSB4ODZlbSkgQXBwbGljYXRpb24iKQotIU1FU1NBR0UgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIFBQQykgQXBwbGljYXRpb24iKQotIU1FU1NBR0UgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBQUEMpIEFwcGxpY2F0aW9uIikKLSFNRVNTQUdFIAotCi0jIEJlZ2luIFByb2plY3QKLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwCi0jIFBST1AgU2NjX1Byb2pOYW1lICIiCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiSC9QQyBQcm8gMi4xMSIKLSMgUFJPUCBXQ0VfRm9ybWF0VmVyc2lvbiAiNi4wIgotCi0hSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIk1JUFMiIC9EICJfTUlQU18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL1FNUldDRSAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvUU1SV0NFIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldNSVBTRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldNSVBTRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldNSVBTRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbG1pcHMuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9RTVJXQ0UgL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvUU1SV0NFIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGVidWcgL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0g0UmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0g0UmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNINFJlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDRSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0g0IiAvZCAiX1NINF8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0g0IiAvZCAiX1NINF8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VTSDREYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDREYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFU0g0RGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVNINERiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9c2hjbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpTSDQgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGVidWcgL21hY2hpbmU6U0g0IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0gzUmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNIM1JlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDNSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL21hY2hpbmU6U0gzIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL21hY2hpbmU6U0gzIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVNIM0RiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVNIM0RiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VTSDNEYmciCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1zaGNsLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiU0h4IiAvZCAiU0gzIiAvZCAiX1NIM18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RlYnVnIC9tYWNoaW5lOlNIMyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpTSDMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VBUk1SZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VBUk1SZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFQVJNUmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRUFSTVJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xhcm0uZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01DIC9XMyAvTzIgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VBUk1EYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VBUk1EYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFQVJNRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRUFSTURiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xhcm0uZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NQyAvVzMgL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01DIC9XMyAvWmkgL09kIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb3JlZGxsLmxpYiBjb21tY3RybC5saWIgL25vbG9nbyAvZGVidWcgL21hY2hpbmU6QVJNIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29yZWRsbC5saWIgY29tbWN0cmwubGliIC9ub2xvZ28gL2RlYnVnIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldNSVBTRlBSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0ZQUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldNSVBTRlBSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNGUFJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUU1GV0NFIC9NQyAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlBOR19VU0VfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL21hY2hpbmU6TUlQUyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXTUlQU0ZQRGJnIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV01JUFNGUERiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXTUlQU0ZQRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldNSVBTRlBEYmciCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNsbWlwcy5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9aaSAvT2QgL0kgIi4uXC4uIiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RlYnVnIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VYODZSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VYODZSZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFWDg2UmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVg4NlJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTCAvVzMgL08yIC9EICJ4ODYiIC9EICJfaTM4Nl8iIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9HczgxOTIgL0dGIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9HczgxOTIgL0dGIC9jCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VYODZEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VYODZEYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFWDg2RGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVg4NkRiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTGQgL1czIC9aaSAvT2QgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgIl9NQkNTIiAvR3M4MTkyIC9HRiAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL0dzODE5MiAvR0YgL2MKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9kICJfeDg2XyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RlYnVnIC9tYWNoaW5lOklYODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpJWDg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbVJlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MIC9XMyAvTzIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9PMiAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJOREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiTkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0jIEFERCBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbURiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dtIC9aaSAvT2QgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJfREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EICJfTUJDUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUxkIC9XMyAvR20gL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiX1VOSUNPREUiIC9EICJXSU4zMiIgL0QgIlNUUklDVCIgL0QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvRCAiSU5URVJOQVRJT05BTCIgL0QgIlVTQSIgL0QgIklOVExNU0dfQ09ERVBBR0UiIC9EICJfREVCVUciIC9EICJ4ODYiIC9EICJpNDg2IiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiUE5HX1VTRV9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiX0RFQlVHIiAvZCAieDg2IiAvZCAiaTQ4NiIgL2QgIl94ODZfIgotIyBBREQgUlNDIC9sIDB4NDExIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiV0lOMzIiIC9kICJTVFJJQ1QiIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJfV0lOMzJfV0NFX0VNVUxBVElPTiIgL2QgIklOVEVSTkFUSU9OQUwiIC9kICJVU0EiIC9kICJJTlRMTVNHX0NPREVQQUdFIiAvZCAiX0RFQlVHIiAvZCAieDg2IiAvZCAiaTQ4NiIgL2QgIl94ODZfIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL3N1YnN5c3RlbTp3aW5kb3dzIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvd2luZG93c2NlOmVtdWxhdGlvbgotIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3dpbmRvd3NjZTplbXVsYXRpb24KLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VQUENSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFUFBDUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbHBwYy5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL08yIC9JICIuLlwuLiIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgInBwYyIgL2QgIl9wcGNfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgInBwYyIgL2QgIl9wcGNfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvbWFjaGluZTpQUEMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvbWFjaGluZTpQUEMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFUFBDRGJnIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFUFBDRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldDRVBQQ0RiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VQUENEYmciCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNscHBjLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL1ppIC9PZCAvSSAiLi5cLi4iIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiREVCVUciIC9EICJQUEMiIC9EICJfUFBDXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJQTkdfVVNFX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgInBwYyIgL2QgIl9wcGNfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RlYnVnIC9tYWNoaW5lOlBQQyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kZWJ1ZyAvbWFjaGluZTpQUEMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTkRJRiAKLQotIyBCZWdpbiBUYXJnZXQKLQotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLSMgTmFtZSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0jIE5hbWUgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0jIE5hbWUgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLSMgTmFtZSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLSMgTmFtZSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0jIE5hbWUgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0jIE5hbWUgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotIyBOYW1lICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0jIE5hbWUgInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLSMgTmFtZSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLSMgQmVnaW4gR3JvdXAgIlNvdXJjZSBGaWxlcyIKLQotIyBQUk9QIERlZmF1bHRfRmlsdGVyICJjcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0IgotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5ccG5ndGVzdC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXHBuZy5oIlwKLQkiLi5cLi5ccG5nY29uZi5oIlwKLQkKLU5PREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXGFsbG9jLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9QTkdURT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5ccG5nLmgiXAotCSIuLlwuLlxwbmdjb25mLmgiXAotCQotTk9ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cYWxsb2MuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX1BOR1RFPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlxwbmcuaCJcCi0JIi4uXC4uXHBuZ2NvbmYuaCJcCi0JCi1OT0RFUF9DUFBfUE5HVEU9XAotCSIuLlwuLlxhbGxvYy5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Llx3aW5tYWluLmMKLQotIUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicG5ndGVzdCAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJwbmd0ZXN0IC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInBuZ3Rlc3QgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgRW5kIEdyb3VwCi0jIEJlZ2luIEdyb3VwICJIZWFkZXIgRmlsZXMiCi0KLSMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKLSMgRW5kIEdyb3VwCi0jIEJlZ2luIEdyb3VwICJSZXNvdXJjZSBGaWxlcyIKLQotIyBQUk9QIERlZmF1bHRfRmlsdGVyICJpY287Y3VyO2JtcDtkbGc7cmMyO3JjdDtiaW47cmdzO2dpZjtqcGc7anBlZztqcGUiCi0jIEVuZCBHcm91cAotIyBFbmQgVGFyZ2V0Ci0jIEVuZCBQcm9qZWN0CmRpZmYgLS1naXQgYS9wcm9qZWN0cy93aW5jZS9wbmd0ZXN0LmRzdyBiL3Byb2plY3RzL3dpbmNlL3BuZ3Rlc3QuZHN3CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmNkMGQ2Li4wMDAwMDAwCi0tLSBhL3Byb2plY3RzL3dpbmNlL3BuZ3Rlc3QuZHN3CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gV29ya3NwYWNlIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDAKLSMgV0FSTklORzogRE8gTk9UIEVESVQgT1IgREVMRVRFIFRISVMgV09SS1NQQUNFIEZJTEUhCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotUHJvamVjdDogImxwbmdjZSI9LlxscG5nY2UuZHNwIC0gUGFja2FnZSBPd25lcj08ND4KLQotUGFja2FnZT08NT4KLXt7ewotfX19Ci0KLVBhY2thZ2U9PDQ+Ci17e3sKLSAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kKLSAgICBQcm9qZWN0X0RlcF9OYW1lIHpsaWJjZQotICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kKLX19fQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVByb2plY3Q6ICJwbmd0ZXN0Ij0uXHBuZ3Rlc3QuZHNwIC0gUGFja2FnZSBPd25lcj08ND4KLQotUGFja2FnZT08NT4KLXt7ewotfX19Ci0KLVBhY2thZ2U9PDQ+Ci17e3sKLSAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kKLSAgICBQcm9qZWN0X0RlcF9OYW1lIGxwbmdjZQotICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kKLX19fQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVByb2plY3Q6ICJ6bGliY2UiPS5cemxpYmNlLmRzcCAtIFBhY2thZ2UgT3duZXI9PDQ+Ci0KLVBhY2thZ2U9PDU+Ci17e3sKLX19fQotCi1QYWNrYWdlPTw0Pgote3t7Ci19fX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1HbG9iYWw6Ci0KLVBhY2thZ2U9PDU+Ci17e3sKLX19fQotCi1QYWNrYWdlPTwzPgote3t7Ci19fX0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCmRpZmYgLS1naXQgYS9wcm9qZWN0cy93aW5jZS93aW5tYWluLmMgYi9wcm9qZWN0cy93aW5jZS93aW5tYWluLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNjkwZTIuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2Uvd2lubWFpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotCi0vKiB3aW5tYWluLmMgLSBhIHNpbXBsZSBlbnRyeSBwb2ludCBmb3IgV2luZG93c0NFCi0gKgotICogQ29weXJpZ2h0IChjKSAyMDAwIFRlbmlrIENvLixMdGQuCi0gKi8KLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDx0Y2hhci5oPgotCi1leHRlcm4gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7Ci0KLWludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3QsIEhJTlNUQU5DRSBoUHJldkluc3QsIExQV1NUUiBscHN6Q21kTGluZSwgaW50IG5DbWRTaG93KQotewotI2RlZmluZSBTSVpFX0FSR1YgICAoMzIpCi0KLSAgICBUQ0hBUiBwYXRoW01BWF9QQVRIXTsKLSAgICBMUFRTVFIgZmlsZTsKLSAgICBjaGFyIHByb2dbTUFYX1BBVEhdOwotICAgIGludCBhcmdjOwotICAgIGNoYXIgKmFyZ3ZbU0laRV9BUkdWXTsKLSAgICBpbnQgc2l6ZTsKLSAgICBjaGFyICpidWZmOwotICAgIGNoYXIgKmFyZ3A7Ci0gICAgY2hhciAqYXJnczsKLSAgICBjaGFyIHF1b3RlOwotCi0gICAgLy8gZ2V0IHByb2dyYW0gbmFtZQotICAgIGFyZ2MgPSAwOwotICAgIEdldE1vZHVsZUZpbGVOYW1lKEdldEN1cnJlbnRQcm9jZXNzKCksIHBhdGgsIE1BWF9QQVRIKTsKLSAgICBmaWxlID0gX3Rjc3JjaHIocGF0aCwgVEVYVCgnXFwnKSk7Ci0gICAgaWYgKE5VTEwgPT0gZmlsZSkgewotICAgICAgICBmaWxlID0gcGF0aDsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZpbGUrKzsKLSAgICB9Ci0gICAgV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIGZpbGUsIC0xLCBwcm9nLCBNQVhfUEFUSCwgTlVMTCwgTlVMTCk7Ci0gICAgYXJndlthcmdjKytdID0gcHJvZzsKLQotICAgIC8vIGFuYWx5emUgcGFyYW1ldGVycwotICAgIHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKENQX0FDUCwgMCwgbHBzekNtZExpbmUsIC0xLCBOVUxMLCAwLCBOVUxMLCBOVUxMKTsKLSAgICBidWZmID0gKGNoYXIgKiltYWxsb2Moc2l6ZSk7Ci0gICAgc2l6ZSA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCBscHN6Q21kTGluZSwgLTEsIGJ1ZmYsIHNpemUsIE5VTEwsIE5VTEwpOwotICAgIHF1b3RlID0gMHgwMDsKLSAgICBhcmdzID0gYXJncCA9IGJ1ZmY7Ci0gICAgaWYgKGFyZ3AgJiYgKmFyZ3AgJiYgc2l6ZSkgewotICAgICAgICBhcmd2W2FyZ2MrK10gPSBhcmdzOwotICAgICAgICB3aGlsZSAoKmFyZ3ApIHsKLSAgICAgICAgICAgIGlmIChxdW90ZSkgewotICAgICAgICAgICAgICAgIGlmICgqYXJncCA9PSBxdW90ZSkgewotICAgICAgICAgICAgICAgICAgICBhcmdwKys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgqYXJncCAhPSBxdW90ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGUgPSAweDAwOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgKmFyZ3MrKyA9ICphcmdwKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICphcmdzKysgPSAqYXJncCsrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgqYXJncCA9PSAnICcpIHsKLSAgICAgICAgICAgICAgICAgICAgKmFyZ3MrKyA9ICphcmdwKysgPSAnXDAnOwotICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKmFyZ3AgJiYgKmFyZ3AgPT0gJyAnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmdwKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCphcmdwICYmIGFyZ2MgPCBTSVpFX0FSR1YpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3ZbYXJnYysrXSA9IGFyZ3M7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgqYXJncCA9PSAnXCInKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxdW90ZSA9ICphcmdwKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqYXJncysrID0gKmFyZ3ArKzsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAqYXJncyA9ICdcMCc7Ci0gICAgcmV0dXJuIG1haW4oYXJnYywgYXJndik7Ci19CmRpZmYgLS1naXQgYS9wcm9qZWN0cy93aW5jZS96bGliLmRpZmYgYi9wcm9qZWN0cy93aW5jZS96bGliLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2ZWQyOWYuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvemxpYi5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMjE2OCArMCwwIEBACi1kaWZmIC1hYyB6bGliMTEzL2RlZmxhdGUuYyB6bGlid2NlL2RlZmxhdGUuYwotKioqIHpsaWIxMTMvZGVmbGF0ZS5jCUZyaSBKdWwgMTAgMDE6MDY6MTIgMTk5OAotLS0tIHpsaWJ3Y2UvZGVmbGF0ZS5jCVRodSBNYXkgMjUgMTY6NDI6MTggMjAwMAotKioqKioqKioqKioqKioqCi0qKiogOTIxLDkyNiAqKioqCi0tLS0gOTIxLDkzMCAtLS0tCi0gICNlbmRpZiAvKiBBU01WICovCi0gIAotICAjaWZkZWYgREVCVUcKLSsgI2lmZGVmIF9XSU4zMl9XQ0UKLSsgLyogV2luZG93cyBDRSBpcyBub3Qgc3VwcG9ydCBERUJVRyB2ZXJzaW9uJ3MgemxpYiAqLwotKyAjICBkZWZpbmUgY2hlY2tfbWF0Y2gocywgc3RhcnQsIG1hdGNoLCBsZW5ndGgpCi0rICNlbHNlCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgKiBDaGVjayB0aGF0IHRoZSBtYXRjaCBhdCBtYXRjaF9zdGFydCBpcyBpbmRlZWQgYSBtYXRjaC4KLSAgICovCi0qKioqKioqKioqKioqKioKLSoqKiA5NDQsOTQ5ICoqKioKLS0tLSA5NDgsOTU0IC0tLS0KLSAgICAgICAgICBkbyB7IHB1dGMocy0+d2luZG93W3N0YXJ0KytdLCBzdGRlcnIpOyB9IHdoaWxlICgtLWxlbmd0aCAhPSAwKTsKLSAgICAgIH0KLSAgfQotKyAjZW5kaWYKLSAgI2Vsc2UKLSAgIyAgZGVmaW5lIGNoZWNrX21hdGNoKHMsIHN0YXJ0LCBtYXRjaCwgbGVuZ3RoKQotICAjZW5kaWYKLWRpZmYgLWFjIHpsaWIxMTMvdHJlZXMuYyB6bGlid2NlL3RyZWVzLmMKLSoqKiB6bGliMTEzL3RyZWVzLmMJVGh1IEp1bCAwOSAwMTozMjo1OCAxOTk4Ci0tLS0gemxpYndjZS90cmVlcy5jCVRodSBNYXkgMjUgMTY6NDI6NTAgMjAwMAotKioqKioqKioqKioqKioqCi0qKiogMTY4LDE3NiAqKioqCi0tLS0gMTY4LDE4MiAtLS0tCi0gICAgIC8qIFNlbmQgYSBjb2RlIG9mIHRoZSBnaXZlbiB0cmVlLiBjIGFuZCB0cmVlIG11c3Qgbm90IGhhdmUgc2lkZSBlZmZlY3RzICovCi0gIAotICAjZWxzZSAvKiBERUJVRyAqLwotKyAjaWZkZWYgX1dJTjMyX1dDRQotKyAvKiBXaW5kb3dzIENFIGlzIG5vdCBzdXBwb3J0IERFQlVHIHZlcnNpb24ncyB6bGliICovCi0rICMgIGRlZmluZSBzZW5kX2NvZGUocywgYywgdHJlZSkgc2VuZF9iaXRzKHMsIHRyZWVbY10uQ29kZSwgdHJlZVtjXS5MZW4pCi0rIAotKyAjZWxzZQotICAjICBkZWZpbmUgc2VuZF9jb2RlKHMsIGMsIHRyZWUpIFwKLSAgICAgICB7IGlmICh6X3ZlcmJvc2U+MikgZnByaW50ZihzdGRlcnIsIlxuY2QgJTNkICIsKGMpKTsgXAotICAgICAgICAgc2VuZF9iaXRzKHMsIHRyZWVbY10uQ29kZSwgdHJlZVtjXS5MZW4pOyB9Ci0rICNlbmRpZgotICAjZW5kaWYKLSAgCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotZGlmZiAtYWMgemxpYjExMy96Y29uZi5oIHpsaWJ3Y2UvemNvbmYuaAotKioqIHpsaWIxMTMvemNvbmYuaAlUaHUgSnVsIDA5IDAyOjU1OjI4IDE5OTgKLS0tLSB6bGlid2NlL3pjb25mLmgJVGh1IE1heSAyNSAxNjozNjoxNiAyMDAwCi0qKioqKioqKioqKioqKioKLSoqKiA5NiwxMDEgKioqKgotLS0tIDk2LDEwNiAtLS0tCi0gICMgIGRlZmluZSBORUVEX0RVTU1ZX1JFVFVSTgotICAjZW5kaWYKLSAgCi0rIC8qIFdpbmRvd3MgQ0UgaXMgbm90IGhhdmUgZXJybm8uaCBmaWxlOiAqLwotKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQotKyAjICBkZWZpbmUgTk9fRVJSTk9fSAotKyAjZW5kaWYKLSsgCi0gIAotICAvKiBNYXhpbXVtIHZhbHVlIGZvciBtZW1MZXZlbCBpbiBkZWZsYXRlSW5pdDIgKi8KLSAgI2lmbmRlZiBNQVhfTUVNX0xFVkVMCi0qKioqKioqKioqKioqKioKLSoqKiAxNjIsMTY4ICoqKioKLSAgCi0gIC8qIENvbXBpbGUgd2l0aCAtRFpMSUJfRExMIGZvciBXaW5kb3dzIERMTCBzdXBwb3J0ICovCi0gICNpZiBkZWZpbmVkKFpMSUJfRExMKQotISAjICBpZiBkZWZpbmVkKF9XSU5ET1dTKSB8fCBkZWZpbmVkKFdJTkRPV1MpCi0gICMgICAgaWZkZWYgRkFSCi0gICMgICAgICB1bmRlZiBGQVIKLSAgIyAgICBlbmRpZgotLS0tIDE2NywxNzMgLS0tLQotICAKLSAgLyogQ29tcGlsZSB3aXRoIC1EWkxJQl9ETEwgZm9yIFdpbmRvd3MgRExMIHN1cHBvcnQgKi8KLSAgI2lmIGRlZmluZWQoWkxJQl9ETEwpCi0hICMgIGlmIGRlZmluZWQoX1dJTkRPV1MpIHx8IGRlZmluZWQoV0lORE9XUykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQotICAjICAgIGlmZGVmIEZBUgotICAjICAgICAgdW5kZWYgRkFSCi0gICMgICAgZW5kaWYKLWRpZmYgLWFjIHpsaWIxMTMvenV0aWwuYyB6bGlid2NlL3p1dGlsLmMKLSoqKiB6bGliMTEzL3p1dGlsLmMJVGh1IEp1bCAwOSAwMjowMTo0OCAxOTk4Ci0tLS0gemxpYndjZS96dXRpbC5jCVRodSBNYXkgMjUgMTY6NDM6MzQgMjAwMAotKioqKioqKioqKioqKioqCi0qKiogMzIsMzcgKioqKgotLS0tIDMyLDQwIC0tLS0KLSAgfQotICAKLSAgI2lmZGVmIERFQlVHCi0rICNpZmRlZiBfV0lOMzJfV0NFCi0rIC8qIFdpbmRvd3MgQ0UgaXMgbm90IHN1cHBvcnQgREVCVUcgdmVyc2lvbidzIHpsaWIgKi8KLSsgI2Vsc2UKLSAgCi0gICMgIGlmbmRlZiB2ZXJib3NlCi0gICMgICAgZGVmaW5lIHZlcmJvc2UgMAotKioqKioqKioqKioqKioqCi0qKiogNDUsNTAgKioqKgotLS0tIDQ4LDU0IC0tLS0KLSAgICAgIGV4aXQoMSk7Ci0gIH0KLSAgI2VuZGlmCi0rICNlbmRpZgotICAKLSAgLyogZXhwb3J0ZWQgdG8gYWxsb3cgY29udmVyc2lvbiBvZiBlcnJvciBjb2RlIHRvIHN0cmluZyBmb3IgY29tcHJlc3MoKSBhbmQKLSAgICogdW5jb21wcmVzcygpCi0qKioqKioqKioqKioqKioKLSoqKiAyMTEsMjE3ICoqKioKLS0tLSAyMTUsMjI1IC0tLS0KLSAgICAgIHVuc2lnbmVkIHNpemU7Ci0gIHsKLSAgICAgIGlmIChvcGFxdWUpIGl0ZW1zICs9IHNpemUgLSBzaXplOyAvKiBtYWtlIGNvbXBpbGVyIGhhcHB5ICovCi0rICNpZmRlZiBfV0lOMzJfV0NFCi0rICAgICByZXR1cm4gKHZvaWRwZiltYWxsb2MoaXRlbXMgKiBzaXplKTsKLSsgI2Vsc2UKLSAgICAgIHJldHVybiAodm9pZHBmKWNhbGxvYyhpdGVtcywgc2l6ZSk7Ci0rICNlbmRpZgotICB9Ci0gIAotICB2b2lkICB6Y2ZyZWUgKG9wYXF1ZSwgcHRyKQotZGlmZiAtYWMgemxpYjExMy96dXRpbC5oIHpsaWJ3Y2UvenV0aWwuaAotKioqIHpsaWIxMTMvenV0aWwuaAlUaHUgSnVsIDA5IDAyOjAxOjQ4IDE5OTgKLS0tLSB6bGlid2NlL3p1dGlsLmgJVGh1IE1heSAyNSAxNjo0MTo0NCAyMDAwCi0qKioqKioqKioqKioqKioKLSoqKiAxNiwyMiAqKioqCi0tLS0gMTYsMjYgLS0tLQotICAjaW5jbHVkZSAiemxpYi5oIgotICAKLSAgI2lmZGVmIFNUREMKLSsgI2lmZGVmIF9XSU4zMl9XQ0UKLSsgIyAgaW5jbHVkZSA8bWFsbG9jLmg+Ci0rICNlbHNlCi0gICMgIGluY2x1ZGUgPHN0ZGRlZi5oPgotKyAjZW5kaWYKLSAgIyAgaW5jbHVkZSA8c3RyaW5nLmg+Ci0gICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotICAjZW5kaWYKLSoqKioqKioqKioqKioqKgotKioqIDE4OCwxOTMgKioqKgotLS0tIDE5MiwyMDYgLS0tLQotICAKLSAgLyogRGlhZ25vc3RpYyBmdW5jdGlvbnMgKi8KLSAgI2lmZGVmIERFQlVHCi0rICNpZmRlZiBfV0lOMzJfV0NFCi0rIC8qIFdpbmRvd3MgQ0UgaXMgbm90IHN1cHBvcnQgREVCVUcgdmVyc2lvbidzIHpsaWIgKi8KLSsgIyAgZGVmaW5lIEFzc2VydChjb25kLG1zZykKLSsgIyAgZGVmaW5lIFRyYWNlKHgpCi0rICMgIGRlZmluZSBUcmFjZXYoeCkKLSsgIyAgZGVmaW5lIFRyYWNldnYoeCkKLSsgIyAgZGVmaW5lIFRyYWNlYyhjLHgpCi0rICMgIGRlZmluZSBUcmFjZWN2KGMseCkKLSsgI2Vsc2UKLSAgIyAgaW5jbHVkZSA8c3RkaW8uaD4KLSAgICAgZXh0ZXJuIGludCB6X3ZlcmJvc2U7Ci0gICAgIGV4dGVybiB2b2lkIHpfZXJyb3IgICAgT0YoKGNoYXIgKm0pKTsKLSoqKioqKioqKioqKioqKgotKioqIDE5NywyMDIgKioqKgotLS0tIDIxMCwyMTYgLS0tLQotICAjICBkZWZpbmUgVHJhY2V2dih4KSB7aWYgKHpfdmVyYm9zZT4xKSBmcHJpbnRmIHggO30KLSAgIyAgZGVmaW5lIFRyYWNlYyhjLHgpIHtpZiAoel92ZXJib3NlPjAgJiYgKGMpKSBmcHJpbnRmIHggO30KLSAgIyAgZGVmaW5lIFRyYWNlY3YoYyx4KSB7aWYgKHpfdmVyYm9zZT4xICYmIChjKSkgZnByaW50ZiB4IDt9Ci0rICNlbmRpZgotICAjZWxzZQotICAjICBkZWZpbmUgQXNzZXJ0KGNvbmQsbXNnKQotICAjICBkZWZpbmUgVHJhY2UoeCkKLSoqKiB6bGliMTEzL2d6aW8uYwlTYXQgSnVsICA4IDEzOjU5OjQ5IDIwMDAKLS0tLSB6bGlid2NlL2d6aW8uYwlTYXQgSnVsICA4IDEzOjU4OjI5IDIwMDAKLSoqKioqKioqKioqKioqKgotKioqIDEsNSAqKioqCi0hIC8qIGd6aW8uYyAtLSBJTyBvbiAuZ3ogZmlsZXMKLSAgICogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggSmVhbi1sb3VwIEdhaWxseS4KLSAgICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHpsaWIuaAotICAgKgotICAgKiBDb21waWxlIHRoaXMgZmlsZSB3aXRoIC1ETk9fREVGTEFURSB0byBhdm9pZCB0aGUgY29tcHJlc3Npb24gY29kZS4KLS0tLSAxLDYgLS0tLQotISAvKiBnemlvLmMgLS0gSU8gb24gLmd6IGZpbGVzIGZvciBXaW5kb3dzQ0UKLSAgICogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggSmVhbi1sb3VwIEdhaWxseS4KLSsgICogQ29weXJpZ2h0IChDKSAyMDAwICAgICAgVGVuaWsgQ28uLEx0ZC4KLSAgICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHpsaWIuaAotICAgKgotICAgKiBDb21waWxlIHRoaXMgZmlsZSB3aXRoIC1ETk9fREVGTEFURSB0byBhdm9pZCB0aGUgY29tcHJlc3Npb24gY29kZS4KLSoqKioqKioqKioqKioqKgotKioqIDcsMTMgKioqKgotICAKLSAgLyogQCgjKSAkSWQkICovCi0gIAotISAjaW5jbHVkZSA8c3RkaW8uaD4KLSAgCi0gICNpbmNsdWRlICJ6dXRpbC5oIgotICAKLS0tLSA4LDE0IC0tLS0KLSAgCi0gIC8qIEAoIykgJElkJCAqLwotICAKLSEgI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSAgCi0gICNpbmNsdWRlICJ6dXRpbC5oIgotICAKLSoqKioqKioqKioqKioqKgotKioqIDQxLDQ3ICoqKioKLSAgICAgIHpfc3RyZWFtIHN0cmVhbTsKLSAgICAgIGludCAgICAgIHpfZXJyOyAgIC8qIGVycm9yIGNvZGUgZm9yIGxhc3Qgc3RyZWFtIG9wZXJhdGlvbiAqLwotICAgICAgaW50ICAgICAgel9lb2Y7ICAgLyogc2V0IGlmIGVuZCBvZiBpbnB1dCBmaWxlICovCi0hICAgICBGSUxFICAgICAqZmlsZTsgICAvKiAuZ3ogZmlsZSAqLwotICAgICAgQnl0ZSAgICAgKmluYnVmOyAgLyogaW5wdXQgYnVmZmVyICovCi0gICAgICBCeXRlICAgICAqb3V0YnVmOyAvKiBvdXRwdXQgYnVmZmVyICovCi0gICAgICB1TG9uZyAgICBjcmM7ICAgICAvKiBjcmMzMiBvZiB1bmNvbXByZXNzZWQgZGF0YSAqLwotLS0tIDQyLDQ4IC0tLS0KLSAgICAgIHpfc3RyZWFtIHN0cmVhbTsKLSAgICAgIGludCAgICAgIHpfZXJyOyAgIC8qIGVycm9yIGNvZGUgZm9yIGxhc3Qgc3RyZWFtIG9wZXJhdGlvbiAqLwotICAgICAgaW50ICAgICAgel9lb2Y7ICAgLyogc2V0IGlmIGVuZCBvZiBpbnB1dCBmaWxlICovCi0hICAgICBIQU5ETEUgICBmaWxlOyAgICAvKiAuZ3ogZmlsZSAqLwotICAgICAgQnl0ZSAgICAgKmluYnVmOyAgLyogaW5wdXQgYnVmZmVyICovCi0gICAgICBCeXRlICAgICAqb3V0YnVmOyAvKiBvdXRwdXQgYnVmZmVyICovCi0gICAgICB1TG9uZyAgICBjcmM7ICAgICAvKiBjcmMzMiBvZiB1bmNvbXByZXNzZWQgZGF0YSAqLwotKioqKioqKioqKioqKioqCi0qKiogNTgsNjQgKioqKgotICBsb2NhbCBpbnQgICAgZ2V0X2J5dGUgICAgIE9GKChnel9zdHJlYW0gKnMpKTsKLSAgbG9jYWwgdm9pZCAgIGNoZWNrX2hlYWRlciBPRigoZ3pfc3RyZWFtICpzKSk7Ci0gIGxvY2FsIGludCAgICBkZXN0cm95ICAgICAgT0YoKGd6X3N0cmVhbSAqcykpOwotISBsb2NhbCB2b2lkICAgcHV0TG9uZyAgICAgIE9GKChGSUxFICpmaWxlLCB1TG9uZyB4KSk7Ci0gIGxvY2FsIHVMb25nICBnZXRMb25nICAgICAgT0YoKGd6X3N0cmVhbSAqcykpOwotICAKLSAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gNTksNjUgLS0tLQotICBsb2NhbCBpbnQgICAgZ2V0X2J5dGUgICAgIE9GKChnel9zdHJlYW0gKnMpKTsKLSAgbG9jYWwgdm9pZCAgIGNoZWNrX2hlYWRlciBPRigoZ3pfc3RyZWFtICpzKSk7Ci0gIGxvY2FsIGludCAgICBkZXN0cm95ICAgICAgT0YoKGd6X3N0cmVhbSAqcykpOwotISBsb2NhbCB2b2lkICAgcHV0TG9uZyAgICAgIE9GKChIQU5ETEUgZmlsZSwgdUxvbmcgeCkpOwotICBsb2NhbCB1TG9uZyAgZ2V0TG9uZyAgICAgIE9GKChnel9zdHJlYW0gKnMpKTsKLSAgCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKioqKioqKioqKioqKioqCi0qKiogODIsODcgKioqKgotLS0tIDgzLDkxIC0tLS0KLSAgICAgIGd6X3N0cmVhbSAqczsKLSAgICAgIGNoYXIgZm1vZGVbODBdOyAvKiBjb3B5IG9mIG1vZGUsIHdpdGhvdXQgdGhlIGNvbXByZXNzaW9uIGxldmVsICovCi0gICAgICBjaGFyICptID0gZm1vZGU7Ci0rICAgICBjaGFyIGNidWZmWzEwXTsKLSsgICAgIERXT1JEIHNpemU7Ci0rICAgICBUQ0hBUiBmaWxlW01BWF9QQVRIXTsKLSAgCi0gICAgICBpZiAoIXBhdGggfHwgIW1vZGUpIHJldHVybiBaX05VTEw7Ci0gIAotKioqKioqKioqKioqKioqCi0qKiogOTQsMTAwICoqKioKLSAgICAgIHMtPnN0cmVhbS5uZXh0X2luID0gcy0+aW5idWYgPSBaX05VTEw7Ci0gICAgICBzLT5zdHJlYW0ubmV4dF9vdXQgPSBzLT5vdXRidWYgPSBaX05VTEw7Ci0gICAgICBzLT5zdHJlYW0uYXZhaWxfaW4gPSBzLT5zdHJlYW0uYXZhaWxfb3V0ID0gMDsKLSEgICAgIHMtPmZpbGUgPSBOVUxMOwotICAgICAgcy0+el9lcnIgPSBaX09LOwotICAgICAgcy0+el9lb2YgPSAwOwotICAgICAgcy0+Y3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7Ci0tLS0gOTgsMTA0IC0tLS0KLSAgICAgIHMtPnN0cmVhbS5uZXh0X2luID0gcy0+aW5idWYgPSBaX05VTEw7Ci0gICAgICBzLT5zdHJlYW0ubmV4dF9vdXQgPSBzLT5vdXRidWYgPSBaX05VTEw7Ci0gICAgICBzLT5zdHJlYW0uYXZhaWxfaW4gPSBzLT5zdHJlYW0uYXZhaWxfb3V0ID0gMDsKLSEgICAgIHMtPmZpbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKLSAgICAgIHMtPnpfZXJyID0gWl9PSzsKLSAgICAgIHMtPnpfZW9mID0gMDsKLSAgICAgIHMtPmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotKioqKioqKioqKioqKioqCi0qKiogMTEyLDEyNSAqKioqCi0gICAgICAgICAgaWYgKCpwID09ICdyJykgcy0+bW9kZSA9ICdyJzsKLSAgICAgICAgICBpZiAoKnAgPT0gJ3cnIHx8ICpwID09ICdhJykgcy0+bW9kZSA9ICd3JzsKLSAgICAgICAgICBpZiAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykgewotISAJICAgIGxldmVsID0gKnAgLSAnMCc7Ci0hIAl9IGVsc2UgaWYgKCpwID09ICdmJykgewotISAJICBzdHJhdGVneSA9IFpfRklMVEVSRUQ7Ci0hIAl9IGVsc2UgaWYgKCpwID09ICdoJykgewotISAJICBzdHJhdGVneSA9IFpfSFVGRk1BTl9PTkxZOwotISAJfSBlbHNlIHsKLSEgCSAgICAqbSsrID0gKnA7IC8qIGNvcHkgdGhlIG1vZGUgKi8KLSEgCX0KLSAgICAgIH0gd2hpbGUgKCpwKysgJiYgbSAhPSBmbW9kZSArIHNpemVvZihmbW9kZSkpOwotICAgICAgaWYgKHMtPm1vZGUgPT0gJ1wwJykgcmV0dXJuIGRlc3Ryb3kocyksIChnekZpbGUpWl9OVUxMOwotICAgICAgCi0tLS0gMTE2LDEyOSAtLS0tCi0gICAgICAgICAgaWYgKCpwID09ICdyJykgcy0+bW9kZSA9ICdyJzsKLSAgICAgICAgICBpZiAoKnAgPT0gJ3cnIHx8ICpwID09ICdhJykgcy0+bW9kZSA9ICd3JzsKLSAgICAgICAgICBpZiAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykgewotISAgICAgICAgICAgICBsZXZlbCA9ICpwIC0gJzAnOwotISAgICAgICAgIH0gZWxzZSBpZiAoKnAgPT0gJ2YnKSB7Ci0hICAgICAgICAgICBzdHJhdGVneSA9IFpfRklMVEVSRUQ7Ci0hICAgICAgICAgfSBlbHNlIGlmICgqcCA9PSAnaCcpIHsKLSEgICAgICAgICAgIHN0cmF0ZWd5ID0gWl9IVUZGTUFOX09OTFk7Ci0hICAgICAgICAgfSBlbHNlIHsKLSEgICAgICAgICAgICAgKm0rKyA9ICpwOyAvKiBjb3B5IHRoZSBtb2RlICovCi0hICAgICAgICAgfQotICAgICAgfSB3aGlsZSAoKnArKyAmJiBtICE9IGZtb2RlICsgc2l6ZW9mKGZtb2RlKSk7Ci0gICAgICBpZiAocy0+bW9kZSA9PSAnXDAnKSByZXR1cm4gZGVzdHJveShzKSwgKGd6RmlsZSlaX05VTEw7Ci0gICAgICAKLSoqKioqKioqKioqKioqKgotKioqIDE1MiwxNzcgKioqKgotICAgICAgfQotICAgICAgcy0+c3RyZWFtLmF2YWlsX291dCA9IFpfQlVGU0laRTsKLSAgCi0hICAgICBlcnJubyA9IDA7Ci0hICAgICBzLT5maWxlID0gZmQgPCAwID8gRl9PUEVOKHBhdGgsIGZtb2RlKSA6IChGSUxFKilmZG9wZW4oZmQsIGZtb2RlKTsKLSAgCi0hICAgICBpZiAocy0+ZmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgcmV0dXJuIGRlc3Ryb3kocyksIChnekZpbGUpWl9OVUxMOwotICAgICAgfQotICAgICAgaWYgKHMtPm1vZGUgPT0gJ3cnKSB7Ci0gICAgICAgICAgLyogV3JpdGUgYSB2ZXJ5IHNpbXBsZSAuZ3ogaGVhZGVyOgotICAgICAgICAgICAqLwotISAgICAgICAgIGZwcmludGYocy0+ZmlsZSwgIiVjJWMlYyVjJWMlYyVjJWMlYyVjIiwgZ3pfbWFnaWNbMF0sIGd6X21hZ2ljWzFdLAotISAgICAgICAgICAgICAgWl9ERUZMQVRFRCwgMCAvKmZsYWdzKi8sIDAsMCwwLDAgLyp0aW1lKi8sIDAgLyp4ZmxhZ3MqLywgT1NfQ09ERSk7Ci0hIAlzLT5zdGFydHBvcyA9IDEwTDsKLSEgCS8qIFdlIHVzZSAxMEwgaW5zdGVhZCBvZiBmdGVsbChzLT5maWxlKSB0byBiZWNhdXNlIGZ0ZWxsIGNhdXNlcyBhbgotICAgICAgICAgICAqIGZmbHVzaCBvbiBzb21lIHN5c3RlbXMuIFRoaXMgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBkb2Vzbid0IHVzZQotICAgICAgICAgICAqIHN0YXJ0cG9zIGFueXdheSBpbiB3cml0ZSBtb2RlLCBzbyB0aGlzIGluaXRpYWxpemF0aW9uIGlzIG5vdAotICAgICAgICAgICAqIG5lY2Vzc2FyeS4KLSAgICAgICAgICAgKi8KLSAgICAgIH0gZWxzZSB7Ci0hIAljaGVja19oZWFkZXIocyk7IC8qIHNraXAgdGhlIC5neiBoZWFkZXIgKi8KLSEgCXMtPnN0YXJ0cG9zID0gKGZ0ZWxsKHMtPmZpbGUpIC0gcy0+c3RyZWFtLmF2YWlsX2luKTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgcmV0dXJuIChnekZpbGUpczsKLS0tLSAxNTYsMTk1IC0tLS0KLSAgICAgIH0KLSAgICAgIHMtPnN0cmVhbS5hdmFpbF9vdXQgPSBaX0JVRlNJWkU7Ci0gIAotISAgICAgU2V0TGFzdEVycm9yKE5PX0VSUk9SKTsKLSEgICAgIGlmICgoSEFORExFKWZkID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0hICAgICAgICAgTXVsdGlCeXRlVG9XaWRlQ2hhcihDUF9BQ1AsIDAsIHBhdGgsIC0xLCBmaWxlLCBNQVhfUEFUSCk7Ci0hICAgICAgICAgcy0+ZmlsZSA9IENyZWF0ZUZpbGUoZmlsZSwgR0VORVJJQ19SRUFEfEdFTkVSSUNfV1JJVEUsIDAsIE5VTEwsIE9QRU5fQUxXQVlTLCAwLCBOVUxMKTsKLSEgICAgIH0gZWxzZSB7Ci0hICAgICAgICAgcy0+ZmlsZSA9IChIQU5ETEUpZmQ7Ci0hICAgICB9Ci0gIAotISAgICAgaWYgKHMtPmZpbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgICByZXR1cm4gZGVzdHJveShzKSwgKGd6RmlsZSlaX05VTEw7Ci0gICAgICB9Ci0gICAgICBpZiAocy0+bW9kZSA9PSAndycpIHsKLSAgICAgICAgICAvKiBXcml0ZSBhIHZlcnkgc2ltcGxlIC5neiBoZWFkZXI6Ci0gICAgICAgICAgICovCi0hICAgICAgICAgY2J1ZmZbMF0gPSBnel9tYWdpY1swXTsKLSEgICAgICAgICBjYnVmZlsxXSA9IGd6X21hZ2ljWzFdOwotISAgICAgICAgIGNidWZmWzJdID0gWl9ERUZMQVRFRDsKLSEgICAgICAgICBjYnVmZlszXSA9IDA7IC8qZmxhZ3MqLwotISAgICAgICAgIGNidWZmWzRdID0gMDsKLSEgICAgICAgICBjYnVmZls1XSA9IDA7Ci0hICAgICAgICAgY2J1ZmZbNl0gPSAwOwotISAgICAgICAgIGNidWZmWzddID0gMDsgLyp0aW1lKi87Ci0hICAgICAgICAgY2J1ZmZbOF0gPSAwOyAvKnhmbGFncyovOwotISAgICAgICAgIGNidWZmWzldID0gT1NfQ09ERTsKLSEgICAgICAgICBXcml0ZUZpbGUocy0+ZmlsZSwgY2J1ZmYsIDEwLCAmc2l6ZSwgTlVMTCk7Ci0hICAgICAgICAgcy0+c3RhcnRwb3MgPSAxMEw7Ci0hICAgICAgICAgLyogV2UgdXNlIDEwTCBpbnN0ZWFkIG9mIGZ0ZWxsKHMtPmZpbGUpIHRvIGJlY2F1c2UgZnRlbGwgY2F1c2VzIGFuCi0gICAgICAgICAgICogZmZsdXNoIG9uIHNvbWUgc3lzdGVtcy4gVGhpcyB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IGRvZXNuJ3QgdXNlCi0gICAgICAgICAgICogc3RhcnRwb3MgYW55d2F5IGluIHdyaXRlIG1vZGUsIHNvIHRoaXMgaW5pdGlhbGl6YXRpb24gaXMgbm90Ci0gICAgICAgICAgICogbmVjZXNzYXJ5LgotICAgICAgICAgICAqLwotICAgICAgfSBlbHNlIHsKLSEgICAgICAgICBjaGVja19oZWFkZXIocyk7IC8qIHNraXAgdGhlIC5neiBoZWFkZXIgKi8KLSEgICAgICAgICBzLT5zdGFydHBvcyA9IChTZXRGaWxlUG9pbnRlcihzLT5maWxlLCAwLCBOVUxMLCBGSUxFX0NVUlJFTlQpIC0gcy0+c3RyZWFtLmF2YWlsX2luKTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgcmV0dXJuIChnekZpbGUpczsKLSoqKioqKioqKioqKioqKgotKioqIDE5NywyMDUgKioqKgotICB7Ci0gICAgICBjaGFyIG5hbWVbMjBdOwotICAKLSEgICAgIGlmIChmZCA8IDApIHJldHVybiAoZ3pGaWxlKVpfTlVMTDsKLSEgICAgIHNwcmludGYobmFtZSwgIjxmZDolZD4iLCBmZCk7IC8qIGZvciBkZWJ1Z2dpbmcgKi8KLSAgCi0gICAgICByZXR1cm4gZ3pfb3BlbiAobmFtZSwgbW9kZSwgZmQpOwotICB9Ci0gIAotLS0tIDIxNSwyMjUgLS0tLQotICB7Ci0gICAgICBjaGFyIG5hbWVbMjBdOwotICAKLSEgICAgIGlmICgoSEFORExFKWZkID09IElOVkFMSURfSEFORExFX1ZBTFVFKQotISAgICAgICAgIHJldHVybiAoZ3pGaWxlKVpfTlVMTDsKLSAgCi0rICAgICBzdHJjcHkobmFtZSwgIjxnemRvcGVuPiIpOyAvKiBmb3IgZGVidWdnaW5nICovCi0rIAotICAgICAgcmV0dXJuIGd6X29wZW4gKG5hbWUsIG1vZGUsIGZkKTsKLSAgfQotICAKLSoqKioqKioqKioqKioqKgotKioqIDIxMiwyMTcgKioqKgotLS0tIDIzMiwyMzggLS0tLQotICAgICAgaW50IHN0cmF0ZWd5OwotICB7Ci0gICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOwotKyAgICAgRFdPUkQgc2l6ZTsKLSAgCi0gICAgICBpZiAocyA9PSBOVUxMIHx8IHMtPm1vZGUgIT0gJ3cnKSByZXR1cm4gWl9TVFJFQU1fRVJST1I7Ci0gIAotKioqKioqKioqKioqKioqCi0qKiogMjE4LDIyOCAqKioqCi0gICAgICAvKiBNYWtlIHJvb20gdG8gYWxsb3cgZmx1c2hpbmcgKi8KLSAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID09IDApIHsKLSAgCi0hIAlzLT5zdHJlYW0ubmV4dF9vdXQgPSBzLT5vdXRidWY7Ci0hIAlpZiAoZndyaXRlKHMtPm91dGJ1ZiwgMSwgWl9CVUZTSVpFLCBzLT5maWxlKSAhPSBaX0JVRlNJWkUpIHsKLSEgCSAgICBzLT56X2VyciA9IFpfRVJSTk87Ci0hIAl9Ci0hIAlzLT5zdHJlYW0uYXZhaWxfb3V0ID0gWl9CVUZTSVpFOwotICAgICAgfQotICAKLSAgICAgIHJldHVybiBkZWZsYXRlUGFyYW1zICgmKHMtPnN0cmVhbSksIGxldmVsLCBzdHJhdGVneSk7Ci0tLS0gMjM5LDI0OSAtLS0tCi0gICAgICAvKiBNYWtlIHJvb20gdG8gYWxsb3cgZmx1c2hpbmcgKi8KLSAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID09IDApIHsKLSAgCi0hICAgICAgICAgcy0+c3RyZWFtLm5leHRfb3V0ID0gcy0+b3V0YnVmOwotISAgICAgICAgIGlmICghV3JpdGVGaWxlKHMtPmZpbGUsIHMtPm91dGJ1ZiwgWl9CVUZTSVpFLCAmc2l6ZSwgTlVMTCkgfHwgc2l6ZSAhPSBaX0JVRlNJWkUpIHsKLSEgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POwotISAgICAgICAgIH0KLSEgICAgICAgICBzLT5zdHJlYW0uYXZhaWxfb3V0ID0gWl9CVUZTSVpFOwotICAgICAgfQotICAKLSAgICAgIHJldHVybiBkZWZsYXRlUGFyYW1zICgmKHMtPnN0cmVhbSksIGxldmVsLCBzdHJhdGVneSk7Ci0qKioqKioqKioqKioqKioKLSoqKiAyMzYsMjUxICoqKioKLSAgbG9jYWwgaW50IGdldF9ieXRlKHMpCi0gICAgICBnel9zdHJlYW0gKnM7Ci0gIHsKLSEgICAgIGlmIChzLT56X2VvZikgcmV0dXJuIEVPRjsKLSAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfaW4gPT0gMCkgewotISAJZXJybm8gPSAwOwotISAJcy0+c3RyZWFtLmF2YWlsX2luID0gZnJlYWQocy0+aW5idWYsIDEsIFpfQlVGU0laRSwgcy0+ZmlsZSk7Ci0hIAlpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDApIHsKLSEgCSAgICBzLT56X2VvZiA9IDE7Ci0hIAkgICAgaWYgKGZlcnJvcihzLT5maWxlKSkgcy0+el9lcnIgPSBaX0VSUk5POwotISAJICAgIHJldHVybiBFT0Y7Ci0hIAl9Ci0hIAlzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOwotICAgICAgfQotICAgICAgcy0+c3RyZWFtLmF2YWlsX2luLS07Ci0gICAgICByZXR1cm4gKihzLT5zdHJlYW0ubmV4dF9pbikrKzsKLS0tLSAyNTcsMjczIC0tLS0KLSAgbG9jYWwgaW50IGdldF9ieXRlKHMpCi0gICAgICBnel9zdHJlYW0gKnM7Ci0gIHsKLSEgICAgIGlmIChzLT56X2VvZikgcmV0dXJuIC0xOwotICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9pbiA9PSAwKSB7Ci0hICAgICAgICAgU2V0TGFzdEVycm9yKE5PX0VSUk9SKTsKLSEgICAgICAgICBpZiAoIVJlYWRGaWxlKHMtPmZpbGUsIHMtPmluYnVmLCBaX0JVRlNJWkUsICZzLT5zdHJlYW0uYXZhaWxfaW4sIE5VTEwpKSB7Ci0hICAgICAgICAgICAgIHMtPnpfZXJyID0gWl9FUlJOTzsKLSEgICAgICAgICB9Ci0hICAgICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9pbiA9PSAwKSB7Ci0hICAgICAgICAgICAgIHMtPnpfZW9mID0gMTsKLSEgICAgICAgICAgICAgcmV0dXJuIC0xOwotISAgICAgICAgIH0KLSEgICAgICAgICBzLT5zdHJlYW0ubmV4dF9pbiA9IHMtPmluYnVmOwotICAgICAgfQotICAgICAgcy0+c3RyZWFtLmF2YWlsX2luLS07Ci0gICAgICByZXR1cm4gKihzLT5zdHJlYW0ubmV4dF9pbikrKzsKLSoqKioqKioqKioqKioqKgotKioqIDI3MCwyOTEgKioqKgotICAKLSAgICAgIC8qIENoZWNrIHRoZSBnemlwIG1hZ2ljIGhlYWRlciAqLwotICAgICAgZm9yIChsZW4gPSAwOyBsZW4gPCAyOyBsZW4rKykgewotISAJYyA9IGdldF9ieXRlKHMpOwotISAJaWYgKGMgIT0gZ3pfbWFnaWNbbGVuXSkgewotISAJICAgIGlmIChsZW4gIT0gMCkgcy0+c3RyZWFtLmF2YWlsX2luKyssIHMtPnN0cmVhbS5uZXh0X2luLS07Ci0hIAkgICAgaWYgKGMgIT0gRU9GKSB7Ci0hIAkJcy0+c3RyZWFtLmF2YWlsX2luKyssIHMtPnN0cmVhbS5uZXh0X2luLS07Ci0hIAkJcy0+dHJhbnNwYXJlbnQgPSAxOwotISAJICAgIH0KLSEgCSAgICBzLT56X2VyciA9IHMtPnN0cmVhbS5hdmFpbF9pbiAhPSAwID8gWl9PSyA6IFpfU1RSRUFNX0VORDsKLSEgCSAgICByZXR1cm47Ci0hIAl9Ci0gICAgICB9Ci0gICAgICBtZXRob2QgPSBnZXRfYnl0ZShzKTsKLSAgICAgIGZsYWdzID0gZ2V0X2J5dGUocyk7Ci0gICAgICBpZiAobWV0aG9kICE9IFpfREVGTEFURUQgfHwgKGZsYWdzICYgUkVTRVJWRUQpICE9IDApIHsKLSEgCXMtPnpfZXJyID0gWl9EQVRBX0VSUk9SOwotISAJcmV0dXJuOwotICAgICAgfQotICAKLSAgICAgIC8qIERpc2NhcmQgdGltZSwgeGZsYWdzIGFuZCBPUyBjb2RlOiAqLwotLS0tIDI5MiwzMTMgLS0tLQotICAKLSAgICAgIC8qIENoZWNrIHRoZSBnemlwIG1hZ2ljIGhlYWRlciAqLwotICAgICAgZm9yIChsZW4gPSAwOyBsZW4gPCAyOyBsZW4rKykgewotISAgICAgICAgIGMgPSBnZXRfYnl0ZShzKTsKLSEgICAgICAgICBpZiAoYyAhPSBnel9tYWdpY1tsZW5dKSB7Ci0hICAgICAgICAgICAgIGlmIChsZW4gIT0gMCkgcy0+c3RyZWFtLmF2YWlsX2luKyssIHMtPnN0cmVhbS5uZXh0X2luLS07Ci0hICAgICAgICAgICAgIGlmIChjICE9IC0xKSB7Ci0hICAgICAgICAgICAgICAgICBzLT5zdHJlYW0uYXZhaWxfaW4rKywgcy0+c3RyZWFtLm5leHRfaW4tLTsKLSEgICAgICAgICAgICAgICAgIHMtPnRyYW5zcGFyZW50ID0gMTsKLSEgICAgICAgICAgICAgfQotISAgICAgICAgICAgICBzLT56X2VyciA9IHMtPnN0cmVhbS5hdmFpbF9pbiAhPSAwID8gWl9PSyA6IFpfU1RSRUFNX0VORDsKLSEgICAgICAgICAgICAgcmV0dXJuOwotISAgICAgICAgIH0KLSAgICAgIH0KLSAgICAgIG1ldGhvZCA9IGdldF9ieXRlKHMpOwotICAgICAgZmxhZ3MgPSBnZXRfYnl0ZShzKTsKLSAgICAgIGlmIChtZXRob2QgIT0gWl9ERUZMQVRFRCB8fCAoZmxhZ3MgJiBSRVNFUlZFRCkgIT0gMCkgewotISAgICAgICAgIHMtPnpfZXJyID0gWl9EQVRBX0VSUk9SOwotISAgICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgCi0gICAgICAvKiBEaXNjYXJkIHRpbWUsIHhmbGFncyBhbmQgT1MgY29kZTogKi8KLSoqKioqKioqKioqKioqKgotKioqIDI5MiwzMTAgKioqKgotICAgICAgZm9yIChsZW4gPSAwOyBsZW4gPCA2OyBsZW4rKykgKHZvaWQpZ2V0X2J5dGUocyk7Ci0gIAotICAgICAgaWYgKChmbGFncyAmIEVYVFJBX0ZJRUxEKSAhPSAwKSB7IC8qIHNraXAgdGhlIGV4dHJhIGZpZWxkICovCi0hIAlsZW4gID0gICh1SW50KWdldF9ieXRlKHMpOwotISAJbGVuICs9ICgodUludClnZXRfYnl0ZShzKSk8PDg7Ci0hIAkvKiBsZW4gaXMgZ2FyYmFnZSBpZiBFT0YgYnV0IHRoZSBsb29wIGJlbG93IHdpbGwgcXVpdCBhbnl3YXkgKi8KLSEgCXdoaWxlIChsZW4tLSAhPSAwICYmIGdldF9ieXRlKHMpICE9IEVPRikgOwotICAgICAgfQotICAgICAgaWYgKChmbGFncyAmIE9SSUdfTkFNRSkgIT0gMCkgeyAvKiBza2lwIHRoZSBvcmlnaW5hbCBmaWxlIG5hbWUgKi8KLSEgCXdoaWxlICgoYyA9IGdldF9ieXRlKHMpKSAhPSAwICYmIGMgIT0gRU9GKSA7Ci0gICAgICB9Ci0gICAgICBpZiAoKGZsYWdzICYgQ09NTUVOVCkgIT0gMCkgeyAgIC8qIHNraXAgdGhlIC5neiBmaWxlIGNvbW1lbnQgKi8KLSEgCXdoaWxlICgoYyA9IGdldF9ieXRlKHMpKSAhPSAwICYmIGMgIT0gRU9GKSA7Ci0gICAgICB9Ci0gICAgICBpZiAoKGZsYWdzICYgSEVBRF9DUkMpICE9IDApIHsgIC8qIHNraXAgdGhlIGhlYWRlciBjcmMgKi8KLSEgCWZvciAobGVuID0gMDsgbGVuIDwgMjsgbGVuKyspICh2b2lkKWdldF9ieXRlKHMpOwotICAgICAgfQotICAgICAgcy0+el9lcnIgPSBzLT56X2VvZiA/IFpfREFUQV9FUlJPUiA6IFpfT0s7Ci0gIH0KLS0tLSAzMTQsMzMyIC0tLS0KLSAgICAgIGZvciAobGVuID0gMDsgbGVuIDwgNjsgbGVuKyspICh2b2lkKWdldF9ieXRlKHMpOwotICAKLSAgICAgIGlmICgoZmxhZ3MgJiBFWFRSQV9GSUVMRCkgIT0gMCkgeyAvKiBza2lwIHRoZSBleHRyYSBmaWVsZCAqLwotISAgICAgICAgIGxlbiAgPSAgKHVJbnQpZ2V0X2J5dGUocyk7Ci0hICAgICAgICAgbGVuICs9ICgodUludClnZXRfYnl0ZShzKSk8PDg7Ci0hICAgICAgICAgLyogbGVuIGlzIGdhcmJhZ2UgaWYgRU9GIGJ1dCB0aGUgbG9vcCBiZWxvdyB3aWxsIHF1aXQgYW55d2F5ICovCi0hICAgICAgICAgd2hpbGUgKGxlbi0tICE9IDAgJiYgZ2V0X2J5dGUocykgIT0gLTEpIDsKLSAgICAgIH0KLSAgICAgIGlmICgoZmxhZ3MgJiBPUklHX05BTUUpICE9IDApIHsgLyogc2tpcCB0aGUgb3JpZ2luYWwgZmlsZSBuYW1lICovCi0hICAgICAgICAgd2hpbGUgKChjID0gZ2V0X2J5dGUocykpICE9IDAgJiYgYyAhPSAtMSkgOwotICAgICAgfQotICAgICAgaWYgKChmbGFncyAmIENPTU1FTlQpICE9IDApIHsgICAvKiBza2lwIHRoZSAuZ3ogZmlsZSBjb21tZW50ICovCi0hICAgICAgICAgd2hpbGUgKChjID0gZ2V0X2J5dGUocykpICE9IDAgJiYgYyAhPSAtMSkgOwotICAgICAgfQotICAgICAgaWYgKChmbGFncyAmIEhFQURfQ1JDKSAhPSAwKSB7ICAvKiBza2lwIHRoZSBoZWFkZXIgY3JjICovCi0hICAgICAgICAgZm9yIChsZW4gPSAwOyBsZW4gPCAyOyBsZW4rKykgKHZvaWQpZ2V0X2J5dGUocyk7Ci0gICAgICB9Ci0gICAgICBzLT56X2VyciA9IHMtPnpfZW9mID8gWl9EQVRBX0VSUk9SIDogWl9PSzsKLSAgfQotKioqKioqKioqKioqKioqCi0qKiogMzIzLDM0MyAqKioqCi0gICAgICBUUllGUkVFKHMtPm1zZyk7Ci0gIAotICAgICAgaWYgKHMtPnN0cmVhbS5zdGF0ZSAhPSBOVUxMKSB7Ci0hIAlpZiAocy0+bW9kZSA9PSAndycpIHsKLSAgI2lmZGVmIE5PX0RFRkxBVEUKLSEgCSAgICBlcnIgPSBaX1NUUkVBTV9FUlJPUjsKLSAgI2Vsc2UKLSEgCSAgICBlcnIgPSBkZWZsYXRlRW5kKCYocy0+c3RyZWFtKSk7Ci0gICNlbmRpZgotISAJfSBlbHNlIGlmIChzLT5tb2RlID09ICdyJykgewotISAJICAgIGVyciA9IGluZmxhdGVFbmQoJihzLT5zdHJlYW0pKTsKLSEgCX0KLSEgICAgIH0KLSEgICAgIGlmIChzLT5maWxlICE9IE5VTEwgJiYgZmNsb3NlKHMtPmZpbGUpKSB7Ci0hICNpZmRlZiBFU1BJUEUKLSEgCWlmIChlcnJubyAhPSBFU1BJUEUpIC8qIGZjbG9zZSBpcyBicm9rZW4gZm9yIHBpcGVzIGluIEhQL1VYICovCi0hICNlbmRpZgotISAJICAgIGVyciA9IFpfRVJSTk87Ci0gICAgICB9Ci0gICAgICBpZiAocy0+el9lcnIgPCAwKSBlcnIgPSBzLT56X2VycjsKLSAgCi0tLS0gMzQ1LDM2MiAtLS0tCi0gICAgICBUUllGUkVFKHMtPm1zZyk7Ci0gIAotICAgICAgaWYgKHMtPnN0cmVhbS5zdGF0ZSAhPSBOVUxMKSB7Ci0hICAgICAgICAgaWYgKHMtPm1vZGUgPT0gJ3cnKSB7Ci0gICNpZmRlZiBOT19ERUZMQVRFCi0hICAgICAgICAgICAgIGVyciA9IFpfU1RSRUFNX0VSUk9SOwotICAjZWxzZQotISAgICAgICAgICAgICBlcnIgPSBkZWZsYXRlRW5kKCYocy0+c3RyZWFtKSk7Ci0gICNlbmRpZgotISAgICAgICAgIH0gZWxzZSBpZiAocy0+bW9kZSA9PSAncicpIHsKLSEgICAgICAgICAgICAgZXJyID0gaW5mbGF0ZUVuZCgmKHMtPnN0cmVhbSkpOwotISAgICAgICAgIH0KLSEgICAgIH0KLSEgICAgIGlmIChzLT5maWxlICE9IE5VTEwgJiYgIUNsb3NlSGFuZGxlKHMtPmZpbGUpKSB7Ci0hICAgICAgICAgZXJyID0gWl9FUlJOTzsKLSAgICAgIH0KLSAgICAgIGlmIChzLT56X2VyciA8IDApIGVyciA9IHMtPnpfZXJyOwotICAKLSoqKioqKioqKioqKioqKgotKioqIDM2MCwzNjUgKioqKgotLS0tIDM3OSwzODUgLS0tLQotICAgICAgZ3pfc3RyZWFtICpzID0gKGd6X3N0cmVhbSopZmlsZTsKLSAgICAgIEJ5dGVmICpzdGFydCA9IChCeXRlZiopYnVmOyAvKiBzdGFydGluZyBwb2ludCBmb3IgY3JjIGNvbXB1dGF0aW9uICovCi0gICAgICBCeXRlICAqbmV4dF9vdXQ7IC8qID09IHN0cmVhbS5uZXh0X291dCBidXQgbm90IGZvcmNlZCBmYXIgKGZvciBNU0RPUykgKi8KLSsgICAgIERXT1JEIHNpemU7Ci0gIAotICAgICAgaWYgKHMgPT0gTlVMTCB8fCBzLT5tb2RlICE9ICdyJykgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwotICAKLSoqKioqKioqKioqKioqKgotKioqIDM3Miw0NDAgKioqKgotICAKLSAgICAgIHdoaWxlIChzLT5zdHJlYW0uYXZhaWxfb3V0ICE9IDApIHsKLSAgCi0hIAlpZiAocy0+dHJhbnNwYXJlbnQpIHsKLSEgCSAgICAvKiBDb3B5IGZpcnN0IHRoZSBsb29rYWhlYWQgYnl0ZXM6ICovCi0hIAkgICAgdUludCBuID0gcy0+c3RyZWFtLmF2YWlsX2luOwotISAJICAgIGlmIChuID4gcy0+c3RyZWFtLmF2YWlsX291dCkgbiA9IHMtPnN0cmVhbS5hdmFpbF9vdXQ7Ci0hIAkgICAgaWYgKG4gPiAwKSB7Ci0hIAkJem1lbWNweShzLT5zdHJlYW0ubmV4dF9vdXQsIHMtPnN0cmVhbS5uZXh0X2luLCBuKTsKLSEgCQluZXh0X291dCArPSBuOwotISAJCXMtPnN0cmVhbS5uZXh0X291dCA9IG5leHRfb3V0OwotISAJCXMtPnN0cmVhbS5uZXh0X2luICAgKz0gbjsKLSEgCQlzLT5zdHJlYW0uYXZhaWxfb3V0IC09IG47Ci0hIAkJcy0+c3RyZWFtLmF2YWlsX2luICAtPSBuOwotISAJICAgIH0KLSEgCSAgICBpZiAocy0+c3RyZWFtLmF2YWlsX291dCA+IDApIHsKLSEgCQlzLT5zdHJlYW0uYXZhaWxfb3V0IC09IGZyZWFkKG5leHRfb3V0LCAxLCBzLT5zdHJlYW0uYXZhaWxfb3V0LAotISAJCQkJCSAgICAgcy0+ZmlsZSk7Ci0hIAkgICAgfQotISAJICAgIGxlbiAtPSBzLT5zdHJlYW0uYXZhaWxfb3V0OwotISAJICAgIHMtPnN0cmVhbS50b3RhbF9pbiAgKz0gKHVMb25nKWxlbjsKLSEgCSAgICBzLT5zdHJlYW0udG90YWxfb3V0ICs9ICh1TG9uZylsZW47Ci0gICAgICAgICAgICAgIGlmIChsZW4gPT0gMCkgcy0+el9lb2YgPSAxOwotISAJICAgIHJldHVybiAoaW50KWxlbjsKLSEgCX0KLSAgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDAgJiYgIXMtPnpfZW9mKSB7Ci0gIAotISAgICAgICAgICAgICBlcnJubyA9IDA7Ci0hICAgICAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IGZyZWFkKHMtPmluYnVmLCAxLCBaX0JVRlNJWkUsIHMtPmZpbGUpOwotICAgICAgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX2luID09IDApIHsKLSAgICAgICAgICAgICAgICAgIHMtPnpfZW9mID0gMTsKLS0gCQlpZiAoZmVycm9yKHMtPmZpbGUpKSB7Ci0tIAkJICAgIHMtPnpfZXJyID0gWl9FUlJOTzsKLS0gCQkgICAgYnJlYWs7Ci0tIAkJfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHMtPnN0cmVhbS5uZXh0X2luID0gcy0+aW5idWY7Ci0gICAgICAgICAgfQotICAgICAgICAgIHMtPnpfZXJyID0gaW5mbGF0ZSgmKHMtPnN0cmVhbSksIFpfTk9fRkxVU0gpOwotICAKLSEgCWlmIChzLT56X2VyciA9PSBaX1NUUkVBTV9FTkQpIHsKLSEgCSAgICAvKiBDaGVjayBDUkMgYW5kIG9yaWdpbmFsIHNpemUgKi8KLSEgCSAgICBzLT5jcmMgPSBjcmMzMihzLT5jcmMsIHN0YXJ0LCAodUludCkocy0+c3RyZWFtLm5leHRfb3V0IC0gc3RhcnQpKTsKLSEgCSAgICBzdGFydCA9IHMtPnN0cmVhbS5uZXh0X291dDsKLSEgCi0hIAkgICAgaWYgKGdldExvbmcocykgIT0gcy0+Y3JjKSB7Ci0hIAkJcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7Ci0hIAkgICAgfSBlbHNlIHsKLSEgCSAgICAgICAgKHZvaWQpZ2V0TG9uZyhzKTsKLSAgICAgICAgICAgICAgICAgIC8qIFRoZSB1bmNvbXByZXNzZWQgbGVuZ3RoIHJldHVybmVkIGJ5IGFib3ZlIGdldGxvbmcoKSBtYXkKLSAgICAgICAgICAgICAgICAgICAqIGJlIGRpZmZlcmVudCBmcm9tIHMtPnN0cmVhbS50b3RhbF9vdXQpIGluIGNhc2Ugb2YKLSEgCQkgKiBjb25jYXRlbmF0ZWQgLmd6IGZpbGVzLiBDaGVjayBmb3Igc3VjaCBmaWxlczoKLSEgCQkgKi8KLSEgCQljaGVja19oZWFkZXIocyk7Ci0hIAkJaWYgKHMtPnpfZXJyID09IFpfT0spIHsKLSEgCQkgICAgdUxvbmcgdG90YWxfaW4gPSBzLT5zdHJlYW0udG90YWxfaW47Ci0hIAkJICAgIHVMb25nIHRvdGFsX291dCA9IHMtPnN0cmVhbS50b3RhbF9vdXQ7Ci0hIAotISAJCSAgICBpbmZsYXRlUmVzZXQoJihzLT5zdHJlYW0pKTsKLSEgCQkgICAgcy0+c3RyZWFtLnRvdGFsX2luID0gdG90YWxfaW47Ci0hIAkJICAgIHMtPnN0cmVhbS50b3RhbF9vdXQgPSB0b3RhbF9vdXQ7Ci0hIAkJICAgIHMtPmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotISAJCX0KLSEgCSAgICB9Ci0hIAl9Ci0hIAlpZiAocy0+el9lcnIgIT0gWl9PSyB8fCBzLT56X2VvZikgYnJlYWs7Ci0gICAgICB9Ci0gICAgICBzLT5jcmMgPSBjcmMzMihzLT5jcmMsIHN0YXJ0LCAodUludCkocy0+c3RyZWFtLm5leHRfb3V0IC0gc3RhcnQpKTsKLSAgCi0tLS0gMzkyLDQ2MSAtLS0tCi0gIAotICAgICAgd2hpbGUgKHMtPnN0cmVhbS5hdmFpbF9vdXQgIT0gMCkgewotICAKLSEgICAgICAgICBpZiAocy0+dHJhbnNwYXJlbnQpIHsKLSEgICAgICAgICAgICAgLyogQ29weSBmaXJzdCB0aGUgbG9va2FoZWFkIGJ5dGVzOiAqLwotISAgICAgICAgICAgICB1SW50IG4gPSBzLT5zdHJlYW0uYXZhaWxfaW47Ci0hICAgICAgICAgICAgIGlmIChuID4gcy0+c3RyZWFtLmF2YWlsX291dCkgbiA9IHMtPnN0cmVhbS5hdmFpbF9vdXQ7Ci0hICAgICAgICAgICAgIGlmIChuID4gMCkgewotISAgICAgICAgICAgICAgICAgem1lbWNweShzLT5zdHJlYW0ubmV4dF9vdXQsIHMtPnN0cmVhbS5uZXh0X2luLCBuKTsKLSEgICAgICAgICAgICAgICAgIG5leHRfb3V0ICs9IG47Ci0hICAgICAgICAgICAgICAgICBzLT5zdHJlYW0ubmV4dF9vdXQgPSBuZXh0X291dDsKLSEgICAgICAgICAgICAgICAgIHMtPnN0cmVhbS5uZXh0X2luICAgKz0gbjsKLSEgICAgICAgICAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9vdXQgLT0gbjsKLSEgICAgICAgICAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiAgLT0gbjsKLSEgICAgICAgICAgICAgfQotISAgICAgICAgICAgICBpZiAocy0+c3RyZWFtLmF2YWlsX291dCA+IDApIHsKLSEgICAgICAgICAgICAgICAgIGlmIChSZWFkRmlsZShzLT5maWxlLCBuZXh0X291dCwgcy0+c3RyZWFtLmF2YWlsX291dCwgJnNpemUsIE5VTEwpKSB7Ci0hICAgICAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLmF2YWlsX291dCAtPSBzaXplOwotISAgICAgICAgICAgICAgICAgfQotISAgICAgICAgICAgICB9Ci0hICAgICAgICAgICAgIGxlbiAtPSBzLT5zdHJlYW0uYXZhaWxfb3V0OwotISAgICAgICAgICAgICBzLT5zdHJlYW0udG90YWxfaW4gICs9ICh1TG9uZylsZW47Ci0hICAgICAgICAgICAgIHMtPnN0cmVhbS50b3RhbF9vdXQgKz0gKHVMb25nKWxlbjsKLSAgICAgICAgICAgICAgaWYgKGxlbiA9PSAwKSBzLT56X2VvZiA9IDE7Ci0hICAgICAgICAgICAgIHJldHVybiAoaW50KWxlbjsKLSEgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9pbiA9PSAwICYmICFzLT56X2VvZikgewotICAKLSEgICAgICAgICAgICAgU2V0TGFzdEVycm9yKE5PX0VSUk9SKTsKLSEgICAgICAgICAgICAgaWYgKCFSZWFkRmlsZShzLT5maWxlLCBzLT5pbmJ1ZiwgWl9CVUZTSVpFLCAmcy0+c3RyZWFtLmF2YWlsX2luLCBOVUxMKSkgewotISAgICAgICAgICAgICAgICAgcy0+el9lb2YgPSAxOwotISAgICAgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POwotISAgICAgICAgICAgICAgICAgYnJlYWs7Ci0hICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgaWYgKHMtPnN0cmVhbS5hdmFpbF9pbiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICBzLT56X2VvZiA9IDE7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcy0+el9lcnIgPSBpbmZsYXRlKCYocy0+c3RyZWFtKSwgWl9OT19GTFVTSCk7Ci0gIAotISAgICAgICAgIGlmIChzLT56X2VyciA9PSBaX1NUUkVBTV9FTkQpIHsKLSEgICAgICAgICAgICAgLyogQ2hlY2sgQ1JDIGFuZCBvcmlnaW5hbCBzaXplICovCi0hICAgICAgICAgICAgIHMtPmNyYyA9IGNyYzMyKHMtPmNyYywgc3RhcnQsICh1SW50KShzLT5zdHJlYW0ubmV4dF9vdXQgLSBzdGFydCkpOwotISAgICAgICAgICAgICBzdGFydCA9IHMtPnN0cmVhbS5uZXh0X291dDsKLSEgCi0hICAgICAgICAgICAgIGlmIChnZXRMb25nKHMpICE9IHMtPmNyYykgewotISAgICAgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7Ci0hICAgICAgICAgICAgIH0gZWxzZSB7Ci0hICAgICAgICAgICAgICAgICAodm9pZClnZXRMb25nKHMpOwotICAgICAgICAgICAgICAgICAgLyogVGhlIHVuY29tcHJlc3NlZCBsZW5ndGggcmV0dXJuZWQgYnkgYWJvdmUgZ2V0bG9uZygpIG1heQotICAgICAgICAgICAgICAgICAgICogYmUgZGlmZmVyZW50IGZyb20gcy0+c3RyZWFtLnRvdGFsX291dCkgaW4gY2FzZSBvZgotISAgICAgICAgICAgICAgICAgICogY29uY2F0ZW5hdGVkIC5neiBmaWxlcy4gQ2hlY2sgZm9yIHN1Y2ggZmlsZXM6Ci0hICAgICAgICAgICAgICAgICAgKi8KLSEgICAgICAgICAgICAgICAgIGNoZWNrX2hlYWRlcihzKTsKLSEgICAgICAgICAgICAgICAgIGlmIChzLT56X2VyciA9PSBaX09LKSB7Ci0hICAgICAgICAgICAgICAgICAgICAgdUxvbmcgdG90YWxfaW4gPSBzLT5zdHJlYW0udG90YWxfaW47Ci0hICAgICAgICAgICAgICAgICAgICAgdUxvbmcgdG90YWxfb3V0ID0gcy0+c3RyZWFtLnRvdGFsX291dDsKLSEgCi0hICAgICAgICAgICAgICAgICAgICAgaW5mbGF0ZVJlc2V0KCYocy0+c3RyZWFtKSk7Ci0hICAgICAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLnRvdGFsX2luID0gdG90YWxfaW47Ci0hICAgICAgICAgICAgICAgICAgICAgcy0+c3RyZWFtLnRvdGFsX291dCA9IHRvdGFsX291dDsKLSEgICAgICAgICAgICAgICAgICAgICBzLT5jcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKLSEgICAgICAgICAgICAgICAgIH0KLSEgICAgICAgICAgICAgfQotISAgICAgICAgIH0KLSEgICAgICAgICBpZiAocy0+el9lcnIgIT0gWl9PSyB8fCBzLT56X2VvZikgYnJlYWs7Ci0gICAgICB9Ci0gICAgICBzLT5jcmMgPSBjcmMzMihzLT5jcmMsIHN0YXJ0LCAodUludCkocy0+c3RyZWFtLm5leHRfb3V0IC0gc3RhcnQpKTsKLSAgCi0qKioqKioqKioqKioqKioKLSoqKiA0ODksNDk0ICoqKioKLS0tLSA1MTAsNTE2IC0tLS0KLSAgICAgIHVuc2lnbmVkIGxlbjsKLSAgewotICAgICAgZ3pfc3RyZWFtICpzID0gKGd6X3N0cmVhbSopZmlsZTsKLSsgICAgIERXT1JEIHNpemU7Ci0gIAotICAgICAgaWYgKHMgPT0gTlVMTCB8fCBzLT5tb2RlICE9ICd3JykgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwotICAKLSoqKioqKioqKioqKioqKgotKioqIDUwMCw1MDYgKioqKgotICAgICAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID09IDApIHsKLSAgCi0gICAgICAgICAgICAgIHMtPnN0cmVhbS5uZXh0X291dCA9IHMtPm91dGJ1ZjsKLSEgICAgICAgICAgICAgaWYgKGZ3cml0ZShzLT5vdXRidWYsIDEsIFpfQlVGU0laRSwgcy0+ZmlsZSkgIT0gWl9CVUZTSVpFKSB7Ci0gICAgICAgICAgICAgICAgICBzLT56X2VyciA9IFpfRVJSTk87Ci0gICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotLS0tIDUyMiw1MjggLS0tLQotICAgICAgICAgIGlmIChzLT5zdHJlYW0uYXZhaWxfb3V0ID09IDApIHsKLSAgCi0gICAgICAgICAgICAgIHMtPnN0cmVhbS5uZXh0X291dCA9IHMtPm91dGJ1ZjsKLSEgICAgICAgICAgICAgaWYgKCFXcml0ZUZpbGUocy0+ZmlsZSwgcy0+b3V0YnVmLCBaX0JVRlNJWkUsICZzaXplLCBOVUxMKSB8fCBzaXplICE9IFpfQlVGU0laRSkgewotICAgICAgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDUyNyw1NDAgKioqKgotICAgICAgY2hhciBidWZbWl9QUklOVEZfQlVGU0laRV07Ci0gICAgICB2YV9saXN0IHZhOwotICAgICAgaW50IGxlbjsKLSAgCi0gICAgICB2YV9zdGFydCh2YSwgZm9ybWF0KTsKLSEgI2lmZGVmIEhBU192c25wcmludGYKLSEgICAgICh2b2lkKXZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmb3JtYXQsIHZhKTsKLSEgI2Vsc2UKLSEgICAgICh2b2lkKXZzcHJpbnRmKGJ1ZiwgZm9ybWF0LCB2YSk7Ci0hICNlbmRpZgotICAgICAgdmFfZW5kKHZhKTsKLSAgICAgIGxlbiA9IHN0cmxlbihidWYpOyAvKiBzb21lICpzcHJpbnRmIGRvbid0IHJldHVybiB0aGUgbmIgb2YgYnl0ZXMgd3JpdHRlbiAqLwotICAgICAgaWYgKGxlbiA8PSAwKSByZXR1cm4gMDsKLSAgCi0tLS0gNTQ5LDU3NCAtLS0tCi0gICAgICBjaGFyIGJ1ZltaX1BSSU5URl9CVUZTSVpFXTsKLSAgICAgIHZhX2xpc3QgdmE7Ci0gICAgICBpbnQgbGVuOwotKyAgICAgVENIQVIgZm9ybVtaX1BSSU5URl9CVUZTSVpFXTsKLSsgICAgIFRDSEFSIHRidWZbWl9QUklOVEZfQlVGU0laRV07Ci0rICAgICBpbnQgbjsKLSAgCi0gICAgICB2YV9zdGFydCh2YSwgZm9ybWF0KTsKLSEgICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBmb3JtYXQsIC0xLCBmb3JtLCBaX1BSSU5URl9CVUZTSVpFKTsKLSEgICAgIGxlbiA9IGxzdHJsZW4oZm9ybSk7Ci0hICAgICBmb3IgKCBuID0gMDsgbiA8IGxlbjsgbisrICkgewotISAgICAgICAgIGlmICggVEVYVCgnJScpID09IGZvcm1bbl0gKSB7Ci0hICAgICAgICAgICAgIG4rKzsKLSEgICAgICAgICAgICAgaWYgKCBURVhUKCdjJykgPT0gZm9ybVtuXSApIHsKLSEgICAgICAgICAgICAgICAgIGZvcm1bbl0gPSBURVhUKCdDJyk7Ci0hICAgICAgICAgICAgIH0gZWxzZSBpZiAoIFRFWFQoJ3MnKSA9PSBmb3JtW25dICkgewotISAgICAgICAgICAgICAgICAgZm9ybVtuXSA9IFRFWFQoJ1MnKTsKLSEgICAgICAgICAgICAgfQotISAgICAgICAgIH0KLSEgICAgIH0KLSEgICAgICh2b2lkKXZzd3ByaW50Zih0YnVmLCBmb3JtLCB2YSk7Ci0gICAgICB2YV9lbmQodmEpOwotKyAgICAgV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIHRidWYsIC0xLCBidWYsIFpfUFJJTlRGX0JVRlNJWkUsIE5VTEwsIE5VTEwpOwotICAgICAgbGVuID0gc3RybGVuKGJ1Zik7IC8qIHNvbWUgKnNwcmludGYgZG9uJ3QgcmV0dXJuIHRoZSBuYiBvZiBieXRlcyB3cml0dGVuICovCi0gICAgICBpZiAobGVuIDw9IDApIHJldHVybiAwOwotICAKLSoqKioqKioqKioqKioqKgotKioqIDU0Myw1NTMgKioqKgotICAjZWxzZSAvKiBub3QgQU5TSSBDICovCi0gIAotICBpbnQgWkVYUE9SVFZBIGd6cHJpbnRmIChmaWxlLCBmb3JtYXQsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwKLSEgCSAgICAgICAgICAgICAgIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCkKLSAgICAgIGd6RmlsZSBmaWxlOwotICAgICAgY29uc3QgY2hhciAqZm9ybWF0OwotICAgICAgaW50IGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwKLSEgCWExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMDsKLSAgewotICAgICAgY2hhciBidWZbWl9QUklOVEZfQlVGU0laRV07Ci0gICAgICBpbnQgbGVuOwotLS0tIDU3Nyw1ODcgLS0tLQotICAjZWxzZSAvKiBub3QgQU5TSSBDICovCi0gIAotICBpbnQgWkVYUE9SVFZBIGd6cHJpbnRmIChmaWxlLCBmb3JtYXQsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTksIGExMCwKLSEgICAgICAgICAgICAgICAgICAgICAgICBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjApCi0gICAgICBnekZpbGUgZmlsZTsKLSAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdDsKLSAgICAgIGludCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5LCBhMTAsCi0hICAgICAgICAgYTExLCBhMTIsIGExMywgYTE0LCBhMTUsIGExNiwgYTE3LCBhMTgsIGExOSwgYTIwOwotICB7Ci0gICAgICBjaGFyIGJ1ZltaX1BSSU5URl9CVUZTSVpFXTsKLSAgICAgIGludCBsZW47Ci0qKioqKioqKioqKioqKioKLSoqKiA1NTQsNTYzICoqKioKLSAgCi0gICNpZmRlZiBIQVNfc25wcmludGYKLSAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZvcm1hdCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LAotISAJICAgICBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjApOwotICAjZWxzZQotICAgICAgc3ByaW50ZihidWYsIGZvcm1hdCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LAotISAJICAgIGE5LCBhMTAsIGExMSwgYTEyLCBhMTMsIGExNCwgYTE1LCBhMTYsIGExNywgYTE4LCBhMTksIGEyMCk7Ci0gICNlbmRpZgotICAgICAgbGVuID0gc3RybGVuKGJ1Zik7IC8qIG9sZCBzcHJpbnRmIGRvZXNuJ3QgcmV0dXJuIHRoZSBuYiBvZiBieXRlcyB3cml0dGVuICovCi0gICAgICBpZiAobGVuIDw9IDApIHJldHVybiAwOwotLS0tIDU4OCw1OTcgLS0tLQotICAKLSAgI2lmZGVmIEhBU19zbnByaW50ZgotICAgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm9ybWF0LCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsCi0hICAgICAgICAgICAgICBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjApOwotICAjZWxzZQotICAgICAgc3ByaW50ZihidWYsIGZvcm1hdCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LAotISAgICAgICAgICAgICBhOSwgYTEwLCBhMTEsIGExMiwgYTEzLCBhMTQsIGExNSwgYTE2LCBhMTcsIGExOCwgYTE5LCBhMjApOwotICAjZW5kaWYKLSAgICAgIGxlbiA9IHN0cmxlbihidWYpOyAvKiBvbGQgc3ByaW50ZiBkb2Vzbid0IHJldHVybiB0aGUgbmIgb2YgYnl0ZXMgd3JpdHRlbiAqLwotICAgICAgaWYgKGxlbiA8PSAwKSByZXR1cm4gMDsKLSoqKioqKioqKioqKioqKgotKioqIDYwNCw2MDkgKioqKgotLS0tIDYzOCw2NDQgLS0tLQotICAgICAgdUludCBsZW47Ci0gICAgICBpbnQgZG9uZSA9IDA7Ci0gICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOwotKyAgICAgRFdPUkQgc2l6ZTsKLSAgCi0gICAgICBpZiAocyA9PSBOVUxMIHx8IHMtPm1vZGUgIT0gJ3cnKSByZXR1cm4gWl9TVFJFQU1fRVJST1I7Ci0gIAotKioqKioqKioqKioqKioqCi0qKiogNjEzLDYxOSAqKioqCi0gICAgICAgICAgbGVuID0gWl9CVUZTSVpFIC0gcy0+c3RyZWFtLmF2YWlsX291dDsKLSAgCi0gICAgICAgICAgaWYgKGxlbiAhPSAwKSB7Ci0hICAgICAgICAgICAgIGlmICgodUludClmd3JpdGUocy0+b3V0YnVmLCAxLCBsZW4sIHMtPmZpbGUpICE9IGxlbikgewotICAgICAgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POwotICAgICAgICAgICAgICAgICAgcmV0dXJuIFpfRVJSTk87Ci0gICAgICAgICAgICAgIH0KLS0tLSA2NDgsNjU0IC0tLS0KLSAgICAgICAgICBsZW4gPSBaX0JVRlNJWkUgLSBzLT5zdHJlYW0uYXZhaWxfb3V0OwotICAKLSAgICAgICAgICBpZiAobGVuICE9IDApIHsKLSEgICAgICAgICAgICAgaWYgKCFXcml0ZUZpbGUocy0+ZmlsZSwgcy0+b3V0YnVmLCBsZW4sICZzaXplLCBOVUxMKSB8fCAodUludClzaXplICE9IGxlbikgewotICAgICAgICAgICAgICAgICAgcy0+el9lcnIgPSBaX0VSUk5POwotICAgICAgICAgICAgICAgICAgcmV0dXJuIFpfRVJSTk87Ci0gICAgICAgICAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDYyMyw2MzAgKioqKgotICAgICAgICAgIGlmIChkb25lKSBicmVhazsKLSAgICAgICAgICBzLT56X2VyciA9IGRlZmxhdGUoJihzLT5zdHJlYW0pLCBmbHVzaCk7Ci0gIAotISAJLyogSWdub3JlIHRoZSBzZWNvbmQgb2YgdHdvIGNvbnNlY3V0aXZlIGZsdXNoZXM6ICovCi0hIAlpZiAobGVuID09IDAgJiYgcy0+el9lcnIgPT0gWl9CVUZfRVJST1IpIHMtPnpfZXJyID0gWl9PSzsKLSAgCi0gICAgICAgICAgLyogZGVmbGF0ZSBoYXMgZmluaXNoZWQgZmx1c2hpbmcgb25seSB3aGVuIGl0IGhhc24ndCB1c2VkIHVwCi0gICAgICAgICAgICogYWxsIHRoZSBhdmFpbGFibGUgc3BhY2UgaW4gdGhlIG91dHB1dCBidWZmZXI6IAotLS0tIDY1OCw2NjUgLS0tLQotICAgICAgICAgIGlmIChkb25lKSBicmVhazsKLSAgICAgICAgICBzLT56X2VyciA9IGRlZmxhdGUoJihzLT5zdHJlYW0pLCBmbHVzaCk7Ci0gIAotISAgICAgICAgIC8qIElnbm9yZSB0aGUgc2Vjb25kIG9mIHR3byBjb25zZWN1dGl2ZSBmbHVzaGVzOiAqLwotISAgICAgICAgIGlmIChsZW4gPT0gMCAmJiBzLT56X2VyciA9PSBaX0JVRl9FUlJPUikgcy0+el9lcnIgPSBaX09LOwotICAKLSAgICAgICAgICAvKiBkZWZsYXRlIGhhcyBmaW5pc2hlZCBmbHVzaGluZyBvbmx5IHdoZW4gaXQgaGFzbid0IHVzZWQgdXAKLSAgICAgICAgICAgKiBhbGwgdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgb3V0cHV0IGJ1ZmZlcjogCi0qKioqKioqKioqKioqKioKLSoqKiA2NDQsNjUwICoqKioKLSAgICAgIGludCBlcnIgPSBkb19mbHVzaCAoZmlsZSwgZmx1c2gpOwotICAKLSAgICAgIGlmIChlcnIpIHJldHVybiBlcnI7Ci0hICAgICBmZmx1c2gocy0+ZmlsZSk7Ci0gICAgICByZXR1cm4gIHMtPnpfZXJyID09IFpfU1RSRUFNX0VORCA/IFpfT0sgOiBzLT56X2VycjsKLSAgfQotICAjZW5kaWYgLyogTk9fREVGTEFURSAqLwotLS0tIDY3OSw2ODUgLS0tLQotICAgICAgaW50IGVyciA9IGRvX2ZsdXNoIChmaWxlLCBmbHVzaCk7Ci0gIAotICAgICAgaWYgKGVycikgcmV0dXJuIGVycjsKLSEgCi0gICAgICByZXR1cm4gIHMtPnpfZXJyID09IFpfU1RSRUFNX0VORCA/IFpfT0sgOiBzLT56X2VycjsKLSAgfQotICAjZW5kaWYgLyogTk9fREVGTEFURSAqLwotKioqKioqKioqKioqKioqCi0qKiogNjY1LDY5OCAqKioqCi0gICAgICBnel9zdHJlYW0gKnMgPSAoZ3pfc3RyZWFtKilmaWxlOwotICAKLSAgICAgIGlmIChzID09IE5VTEwgfHwgd2hlbmNlID09IFNFRUtfRU5EIHx8Ci0hIAlzLT56X2VyciA9PSBaX0VSUk5PIHx8IHMtPnpfZXJyID09IFpfREFUQV9FUlJPUikgewotISAJcmV0dXJuIC0xTDsKLSAgICAgIH0KLSAgICAgIAotICAgICAgaWYgKHMtPm1vZGUgPT0gJ3cnKSB7Ci0gICNpZmRlZiBOT19ERUZMQVRFCi0hIAlyZXR1cm4gLTFMOwotICAjZWxzZQotISAJaWYgKHdoZW5jZSA9PSBTRUVLX1NFVCkgewotISAJICAgIG9mZnNldCAtPSBzLT5zdHJlYW0udG90YWxfaW47Ci0hIAl9Ci0hIAlpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIC0xTDsKLSEgCi0hIAkvKiBBdCB0aGlzIHBvaW50LCBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiB6ZXJvIGJ5dGVzIHRvIHdyaXRlLiAqLwotISAJaWYgKHMtPmluYnVmID09IFpfTlVMTCkgewotISAJICAgIHMtPmluYnVmID0gKEJ5dGUqKUFMTE9DKFpfQlVGU0laRSk7IC8qIGZvciBzZWVraW5nICovCi0hIAkgICAgem1lbXplcm8ocy0+aW5idWYsIFpfQlVGU0laRSk7Ci0hIAl9Ci0hIAl3aGlsZSAob2Zmc2V0ID4gMCkgIHsKLSEgCSAgICB1SW50IHNpemUgPSBaX0JVRlNJWkU7Ci0hIAkgICAgaWYgKG9mZnNldCA8IFpfQlVGU0laRSkgc2l6ZSA9ICh1SW50KW9mZnNldDsKLSEgCi0hIAkgICAgc2l6ZSA9IGd6d3JpdGUoZmlsZSwgcy0+aW5idWYsIHNpemUpOwotISAJICAgIGlmIChzaXplID09IDApIHJldHVybiAtMUw7Ci0hIAotISAJICAgIG9mZnNldCAtPSBzaXplOwotISAJfQotISAJcmV0dXJuICh6X29mZl90KXMtPnN0cmVhbS50b3RhbF9pbjsKLSAgI2VuZGlmCi0gICAgICB9Ci0gICAgICAvKiBSZXN0IG9mIGZ1bmN0aW9uIGlzIGZvciByZWFkaW5nIG9ubHkgKi8KLS0tLSA3MDAsNzMzIC0tLS0KLSAgICAgIGd6X3N0cmVhbSAqcyA9IChnel9zdHJlYW0qKWZpbGU7Ci0gIAotICAgICAgaWYgKHMgPT0gTlVMTCB8fCB3aGVuY2UgPT0gU0VFS19FTkQgfHwKLSEgICAgICAgICBzLT56X2VyciA9PSBaX0VSUk5PIHx8IHMtPnpfZXJyID09IFpfREFUQV9FUlJPUikgewotISAgICAgICAgIHJldHVybiAtMUw7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGlmIChzLT5tb2RlID09ICd3JykgewotICAjaWZkZWYgTk9fREVGTEFURQotISAgICAgICAgIHJldHVybiAtMUw7Ci0gICNlbHNlCi0hICAgICAgICAgaWYgKHdoZW5jZSA9PSBTRUVLX1NFVCkgewotISAgICAgICAgICAgICBvZmZzZXQgLT0gcy0+c3RyZWFtLnRvdGFsX2luOwotISAgICAgICAgIH0KLSEgICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIC0xTDsKLSEgCi0hICAgICAgICAgLyogQXQgdGhpcyBwb2ludCwgb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgemVybyBieXRlcyB0byB3cml0ZS4gKi8KLSEgICAgICAgICBpZiAocy0+aW5idWYgPT0gWl9OVUxMKSB7Ci0hICAgICAgICAgICAgIHMtPmluYnVmID0gKEJ5dGUqKUFMTE9DKFpfQlVGU0laRSk7IC8qIGZvciBzZWVraW5nICovCi0hICAgICAgICAgICAgIHptZW16ZXJvKHMtPmluYnVmLCBaX0JVRlNJWkUpOwotISAgICAgICAgIH0KLSEgICAgICAgICB3aGlsZSAob2Zmc2V0ID4gMCkgIHsKLSEgICAgICAgICAgICAgdUludCBzaXplID0gWl9CVUZTSVpFOwotISAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgWl9CVUZTSVpFKSBzaXplID0gKHVJbnQpb2Zmc2V0OwotISAKLSEgICAgICAgICAgICAgc2l6ZSA9IGd6d3JpdGUoZmlsZSwgcy0+aW5idWYsIHNpemUpOwotISAgICAgICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gLTFMOwotISAKLSEgICAgICAgICAgICAgb2Zmc2V0IC09IHNpemU7Ci0hICAgICAgICAgfQotISAgICAgICAgIHJldHVybiAoel9vZmZfdClzLT5zdHJlYW0udG90YWxfaW47Ci0gICNlbmRpZgotICAgICAgfQotICAgICAgLyogUmVzdCBvZiBmdW5jdGlvbiBpcyBmb3IgcmVhZGluZyBvbmx5ICovCi0qKioqKioqKioqKioqKioKLSoqKiA2OTksNzM2ICoqKioKLSAgCi0gICAgICAvKiBjb21wdXRlIGFic29sdXRlIHBvc2l0aW9uICovCi0gICAgICBpZiAod2hlbmNlID09IFNFRUtfQ1VSKSB7Ci0hIAlvZmZzZXQgKz0gcy0+c3RyZWFtLnRvdGFsX291dDsKLSAgICAgIH0KLSAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gLTFMOwotICAKLSAgICAgIGlmIChzLT50cmFuc3BhcmVudCkgewotISAJLyogbWFwIHRvIGZzZWVrICovCi0hIAlzLT5zdHJlYW0uYXZhaWxfaW4gPSAwOwotISAJcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKLSEgICAgICAgICBpZiAoZnNlZWsocy0+ZmlsZSwgb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSByZXR1cm4gLTFMOwotICAKLSEgCXMtPnN0cmVhbS50b3RhbF9pbiA9IHMtPnN0cmVhbS50b3RhbF9vdXQgPSAodUxvbmcpb2Zmc2V0OwotISAJcmV0dXJuIG9mZnNldDsKLSAgICAgIH0KLSAgCi0gICAgICAvKiBGb3IgYSBuZWdhdGl2ZSBzZWVrLCByZXdpbmQgYW5kIHVzZSBwb3NpdGl2ZSBzZWVrICovCi0gICAgICBpZiAoKHVMb25nKW9mZnNldCA+PSBzLT5zdHJlYW0udG90YWxfb3V0KSB7Ci0hIAlvZmZzZXQgLT0gcy0+c3RyZWFtLnRvdGFsX291dDsKLSAgICAgIH0gZWxzZSBpZiAoZ3pyZXdpbmQoZmlsZSkgPCAwKSB7Ci0hIAlyZXR1cm4gLTFMOwotICAgICAgfQotICAgICAgLyogb2Zmc2V0IGlzIG5vdyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAuICovCi0gIAotICAgICAgaWYgKG9mZnNldCAhPSAwICYmIHMtPm91dGJ1ZiA9PSBaX05VTEwpIHsKLSEgCXMtPm91dGJ1ZiA9IChCeXRlKilBTExPQyhaX0JVRlNJWkUpOwotICAgICAgfQotICAgICAgd2hpbGUgKG9mZnNldCA+IDApICB7Ci0hIAlpbnQgc2l6ZSA9IFpfQlVGU0laRTsKLSEgCWlmIChvZmZzZXQgPCBaX0JVRlNJWkUpIHNpemUgPSAoaW50KW9mZnNldDsKLSAgCi0hIAlzaXplID0gZ3pyZWFkKGZpbGUsIHMtPm91dGJ1ZiwgKHVJbnQpc2l6ZSk7Ci0hIAlpZiAoc2l6ZSA8PSAwKSByZXR1cm4gLTFMOwotISAJb2Zmc2V0IC09IHNpemU7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gKHpfb2ZmX3Qpcy0+c3RyZWFtLnRvdGFsX291dDsKLSAgfQotLS0tIDczNCw3NzEgLS0tLQotICAKLSAgICAgIC8qIGNvbXB1dGUgYWJzb2x1dGUgcG9zaXRpb24gKi8KLSAgICAgIGlmICh3aGVuY2UgPT0gU0VFS19DVVIpIHsKLSEgICAgICAgICBvZmZzZXQgKz0gcy0+c3RyZWFtLnRvdGFsX291dDsKLSAgICAgIH0KLSAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gLTFMOwotICAKLSAgICAgIGlmIChzLT50cmFuc3BhcmVudCkgewotISAgICAgICAgIC8qIG1hcCB0byBmc2VlayAqLwotISAgICAgICAgIHMtPnN0cmVhbS5hdmFpbF9pbiA9IDA7Ci0hICAgICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKLSEgICAgICAgICBpZiAoU2V0RmlsZVBvaW50ZXIocy0+ZmlsZSwgb2Zmc2V0LCBOVUxMLCBGSUxFX0JFR0lOKSA9PSAweEZGRkZGRkZGKSByZXR1cm4gLTFMOwotICAKLSEgICAgICAgICBzLT5zdHJlYW0udG90YWxfaW4gPSBzLT5zdHJlYW0udG90YWxfb3V0ID0gKHVMb25nKW9mZnNldDsKLSEgICAgICAgICByZXR1cm4gb2Zmc2V0OwotICAgICAgfQotICAKLSAgICAgIC8qIEZvciBhIG5lZ2F0aXZlIHNlZWssIHJld2luZCBhbmQgdXNlIHBvc2l0aXZlIHNlZWsgKi8KLSAgICAgIGlmICgodUxvbmcpb2Zmc2V0ID49IHMtPnN0cmVhbS50b3RhbF9vdXQpIHsKLSEgICAgICAgICBvZmZzZXQgLT0gcy0+c3RyZWFtLnRvdGFsX291dDsKLSAgICAgIH0gZWxzZSBpZiAoZ3pyZXdpbmQoZmlsZSkgPCAwKSB7Ci0hICAgICAgICAgcmV0dXJuIC0xTDsKLSAgICAgIH0KLSAgICAgIC8qIG9mZnNldCBpcyBub3cgdGhlIG51bWJlciBvZiBieXRlcyB0byBza2lwLiAqLwotICAKLSAgICAgIGlmIChvZmZzZXQgIT0gMCAmJiBzLT5vdXRidWYgPT0gWl9OVUxMKSB7Ci0hICAgICAgICAgcy0+b3V0YnVmID0gKEJ5dGUqKUFMTE9DKFpfQlVGU0laRSk7Ci0gICAgICB9Ci0gICAgICB3aGlsZSAob2Zmc2V0ID4gMCkgIHsKLSEgICAgICAgICBpbnQgc2l6ZSA9IFpfQlVGU0laRTsKLSEgICAgICAgICBpZiAob2Zmc2V0IDwgWl9CVUZTSVpFKSBzaXplID0gKGludClvZmZzZXQ7Ci0gIAotISAgICAgICAgIHNpemUgPSBnenJlYWQoZmlsZSwgcy0+b3V0YnVmLCAodUludClzaXplKTsKLSEgICAgICAgICBpZiAoc2l6ZSA8PSAwKSByZXR1cm4gLTFMOwotISAgICAgICAgIG9mZnNldCAtPSBzaXplOwotICAgICAgfQotICAgICAgcmV0dXJuICh6X29mZl90KXMtPnN0cmVhbS50b3RhbF9vdXQ7Ci0gIH0KLSoqKioqKioqKioqKioqKgotKioqIDc0Miw3NDggKioqKgotICAgICAgZ3pGaWxlIGZpbGU7Ci0gIHsKLSAgICAgIGd6X3N0cmVhbSAqcyA9IChnel9zdHJlYW0qKWZpbGU7Ci0hICAgICAKLSAgICAgIGlmIChzID09IE5VTEwgfHwgcy0+bW9kZSAhPSAncicpIHJldHVybiAtMTsKLSAgCi0gICAgICBzLT56X2VyciA9IFpfT0s7Ci0tLS0gNzc3LDc4MyAtLS0tCi0gICAgICBnekZpbGUgZmlsZTsKLSAgewotICAgICAgZ3pfc3RyZWFtICpzID0gKGd6X3N0cmVhbSopZmlsZTsKLSEgCi0gICAgICBpZiAocyA9PSBOVUxMIHx8IHMtPm1vZGUgIT0gJ3InKSByZXR1cm4gLTE7Ci0gIAotICAgICAgcy0+el9lcnIgPSBaX09LOwotKioqKioqKioqKioqKioqCi0qKiogNzUwLDc2MyAqKioqCi0gICAgICBzLT5zdHJlYW0uYXZhaWxfaW4gPSAwOwotICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKLSAgICAgIHMtPmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotISAJCi0gICAgICBpZiAocy0+c3RhcnRwb3MgPT0gMCkgeyAvKiBub3QgYSBjb21wcmVzc2VkIGZpbGUgKi8KLSEgCXJld2luZChzLT5maWxlKTsKLSEgCXJldHVybiAwOwotICAgICAgfQotICAKLSAgICAgICh2b2lkKSBpbmZsYXRlUmVzZXQoJnMtPnN0cmVhbSk7Ci0hICAgICByZXR1cm4gZnNlZWsocy0+ZmlsZSwgcy0+c3RhcnRwb3MsIFNFRUtfU0VUKTsKLSAgfQotICAKLSAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gNzg1LDc5OCAtLS0tCi0gICAgICBzLT5zdHJlYW0uYXZhaWxfaW4gPSAwOwotICAgICAgcy0+c3RyZWFtLm5leHRfaW4gPSBzLT5pbmJ1ZjsKLSAgICAgIHMtPmNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotISAgICAgICAgIAotICAgICAgaWYgKHMtPnN0YXJ0cG9zID09IDApIHsgLyogbm90IGEgY29tcHJlc3NlZCBmaWxlICovCi0hICAgICAgICAgU2V0RmlsZVBvaW50ZXIocy0+ZmlsZSwgMCwgTlVMTCwgRklMRV9CRUdJTik7Ci0hICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9Ci0gIAotICAgICAgKHZvaWQpIGluZmxhdGVSZXNldCgmcy0+c3RyZWFtKTsKLSEgICAgIHJldHVybiBTZXRGaWxlUG9pbnRlcihzLT5maWxlLCBzLT5zdGFydHBvcywgTlVMTCwgRklMRV9CRUdJTik7Ci0gIH0KLSAgCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKioqKioqKioqKioqKioqCi0qKiogNzg3LDc5OCAqKioqCi0gICAgIE91dHB1dHMgYSBsb25nIGluIExTQiBvcmRlciB0byB0aGUgZ2l2ZW4gZmlsZQotICAqLwotICBsb2NhbCB2b2lkIHB1dExvbmcgKGZpbGUsIHgpCi0hICAgICBGSUxFICpmaWxlOwotICAgICAgdUxvbmcgeDsKLSAgewotICAgICAgaW50IG47Ci0gICAgICBmb3IgKG4gPSAwOyBuIDwgNDsgbisrKSB7Ci0hICAgICAgICAgZnB1dGMoKGludCkoeCAmIDB4ZmYpLCBmaWxlKTsKLSAgICAgICAgICB4ID4+PSA4OwotICAgICAgfQotICB9Ci0tLS0gODIyLDgzNiAtLS0tCi0gICAgIE91dHB1dHMgYSBsb25nIGluIExTQiBvcmRlciB0byB0aGUgZ2l2ZW4gZmlsZQotICAqLwotICBsb2NhbCB2b2lkIHB1dExvbmcgKGZpbGUsIHgpCi0hICAgICBIQU5ETEUgZmlsZTsKLSAgICAgIHVMb25nIHg7Ci0gIHsKLSAgICAgIGludCBuOwotKyAgICAgY2hhciBjaFsxXTsKLSsgICAgIERXT1JEIHNpemU7Ci0gICAgICBmb3IgKG4gPSAwOyBuIDwgNDsgbisrKSB7Ci0hICAgICAgICAgY2hbMF0gPSAoaW50KSh4ICYgMHhmZik7Ci0hICAgICAgICAgV3JpdGVGaWxlKGZpbGUsIGNoLCAxLCAmc2l6ZSwgTlVMTCk7Ci0gICAgICAgICAgeCA+Pj0gODsKLSAgICAgIH0KLSAgfQotKioqKioqKioqKioqKioqCi0qKiogODEwLDgxNiAqKioqCi0gICAgICB4ICs9ICgodUxvbmcpZ2V0X2J5dGUocykpPDw4OwotICAgICAgeCArPSAoKHVMb25nKWdldF9ieXRlKHMpKTw8MTY7Ci0gICAgICBjID0gZ2V0X2J5dGUocyk7Ci0hICAgICBpZiAoYyA9PSBFT0YpIHMtPnpfZXJyID0gWl9EQVRBX0VSUk9SOwotICAgICAgeCArPSAoKHVMb25nKWMpPDwyNDsKLSAgICAgIHJldHVybiB4OwotICB9Ci0tLS0gODQ4LDg1NCAtLS0tCi0gICAgICB4ICs9ICgodUxvbmcpZ2V0X2J5dGUocykpPDw4OwotICAgICAgeCArPSAoKHVMb25nKWdldF9ieXRlKHMpKTw8MTY7Ci0gICAgICBjID0gZ2V0X2J5dGUocyk7Ci0hICAgICBpZiAoYyA9PSAtMSkgcy0+el9lcnIgPSBaX0RBVEFfRVJST1I7Ci0gICAgICB4ICs9ICgodUxvbmcpYyk8PDI0OwotICAgICAgcmV0dXJuIHg7Ci0gIH0KLSoqKioqKioqKioqKioqKgotKioqIDgyOSw4MzUgKioqKgotICAKLSAgICAgIGlmIChzLT5tb2RlID09ICd3JykgewotICAjaWZkZWYgTk9fREVGTEFURQotISAJcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwotICAjZWxzZQotICAgICAgICAgIGVyciA9IGRvX2ZsdXNoIChmaWxlLCBaX0ZJTklTSCk7Ci0gICAgICAgICAgaWYgKGVyciAhPSBaX09LKSByZXR1cm4gZGVzdHJveSgoZ3pfc3RyZWFtKilmaWxlKTsKLS0tLSA4NjcsODczIC0tLS0KLSAgCi0gICAgICBpZiAocy0+bW9kZSA9PSAndycpIHsKLSAgI2lmZGVmIE5PX0RFRkxBVEUKLSEgICAgICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1I7Ci0gICNlbHNlCi0gICAgICAgICAgZXJyID0gZG9fZmx1c2ggKGZpbGUsIFpfRklOSVNIKTsKLSAgICAgICAgICBpZiAoZXJyICE9IFpfT0spIHJldHVybiBkZXN0cm95KChnel9zdHJlYW0qKWZpbGUpOwotKioqKioqKioqKioqKioqCi0qKiogODYyLDg2OCAqKioqCi0gICAgICAqZXJybnVtID0gcy0+el9lcnI7Ci0gICAgICBpZiAoKmVycm51bSA9PSBaX09LKSByZXR1cm4gKGNvbnN0IGNoYXIqKSIiOwotICAKLSEgICAgIG0gPSAgKGNoYXIqKSgqZXJybnVtID09IFpfRVJSTk8gPyB6c3RyZXJyb3IoZXJybm8pIDogcy0+c3RyZWFtLm1zZyk7Ci0gIAotICAgICAgaWYgKG0gPT0gTlVMTCB8fCAqbSA9PSAnXDAnKSBtID0gKGNoYXIqKUVSUl9NU0cocy0+el9lcnIpOwotICAKLS0tLSA5MDAsOTA2IC0tLS0KLSAgICAgICplcnJudW0gPSBzLT56X2VycjsKLSAgICAgIGlmICgqZXJybnVtID09IFpfT0spIHJldHVybiAoY29uc3QgY2hhciopIiI7Ci0gIAotISAgICAgbSA9ICAoY2hhciopKCplcnJudW0gPT0gWl9FUlJOTyA/IHpzdHJlcnJvcihHZXRMYXN0RXJyb3IoKSkgOiBzLT5zdHJlYW0ubXNnKTsKLSAgCi0gICAgICBpZiAobSA9PSBOVUxMIHx8ICptID09ICdcMCcpIG0gPSAoY2hhciopRVJSX01TRyhzLT56X2Vycik7Ci0gIAotKioqIHpsaWIxMTMvbWluaWd6aXAuYwlTYXQgSnVsICA4IDEzOjU5OjQ5IDIwMDAKLS0tLSB6bGlid2NlL21pbmlnemlwLmMJU2F0IEp1bCAgOCAxMzo1ODoyOSAyMDAwCi0qKioqKioqKioqKioqKioKLSoqKiAxLDUgKioqKgotLS0tIDEsNiAtLS0tCi0gIC8qIG1pbmlnemlwLmMgLS0gc2ltdWxhdGUgZ3ppcCB1c2luZyB0aGUgemxpYiBjb21wcmVzc2lvbiBsaWJyYXJ5Ci0gICAqIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEplYW4tbG91cCBHYWlsbHkuCi0rICAqIENvcHlyaWdodCAoQykgMjAwMCAgICAgIFRlbmlrIENvLixMdGQuCi0gICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiB6bGliLmggCi0gICAqLwotICAKLSoqKioqKioqKioqKioqKgotKioqIDE1LDIxICoqKioKLS0tLSAxNiwzMCAtLS0tCi0gIAotICAvKiBAKCMpICRJZCQgKi8KLSAgCi0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICNpZiBfV0lOMzJfV0NFIDwgMjExCi0rICNlcnJvciAoZnx3KXByaW50ZiBmdW5jdGlvbnMgaXMgbm90IHN1cHBvcnQgb2xkIFdpbmRvd3NDRS4KLSsgI2VuZGlmCi0rICN1bmRlZiBVU0VfTU1BUAotKyAjaW5jbHVkZSA8d2luZG93cy5oPgotKyAjZWxzZQotICAjaW5jbHVkZSA8c3RkaW8uaD4KLSsgI2VuZGlmCi0gICNpbmNsdWRlICJ6bGliLmgiCi0gIAotICAjaWZkZWYgU1REQwotKioqKioqKioqKioqKioqCi0qKiogMzEsMzcgKioqKgotICAjICBpbmNsdWRlIDxzeXMvc3RhdC5oPgotICAjZW5kaWYKLSAgCi0hICNpZiBkZWZpbmVkKE1TRE9TKSB8fCBkZWZpbmVkKE9TMikgfHwgZGVmaW5lZChXSU4zMikKLSAgIyAgaW5jbHVkZSA8ZmNudGwuaD4KLSAgIyAgaW5jbHVkZSA8aW8uaD4KLSAgIyAgZGVmaW5lIFNFVF9CSU5BUllfTU9ERShmaWxlKSBzZXRtb2RlKGZpbGVubyhmaWxlKSwgT19CSU5BUlkpCi0tLS0gNDAsNDYgLS0tLQotICAjICBpbmNsdWRlIDxzeXMvc3RhdC5oPgotICAjZW5kaWYKLSAgCi0hICNpZiAoZGVmaW5lZChNU0RPUykgfHwgZGVmaW5lZChPUzIpIHx8IGRlZmluZWQoV0lOMzIpKSAmJiAhZGVmaW5lZChfV0lOMzJfV0NFKQotICAjICBpbmNsdWRlIDxmY250bC5oPgotICAjICBpbmNsdWRlIDxpby5oPgotICAjICBkZWZpbmUgU0VUX0JJTkFSWV9NT0RFKGZpbGUpIHNldG1vZGUoZmlsZW5vKGZpbGUpLCBPX0JJTkFSWSkKLSoqKioqKioqKioqKioqKgotKioqIDcxLDg0ICoqKioKLSAgIyAgZGVmaW5lIGxvY2FsCi0gICNlbmRpZgotICAKLSAgY2hhciAqcHJvZzsKLSAgCi0gIHZvaWQgZXJyb3IgICAgICAgICAgICBPRigoY29uc3QgY2hhciAqbXNnKSk7Ci0hIHZvaWQgZ3pfY29tcHJlc3MgICAgICBPRigoRklMRSAgICppbiwgZ3pGaWxlIG91dCkpOwotICAjaWZkZWYgVVNFX01NQVAKLSEgaW50ICBnel9jb21wcmVzc19tbWFwIE9GKChGSUxFICAgKmluLCBnekZpbGUgb3V0KSk7Ci0gICNlbmRpZgotISB2b2lkIGd6X3VuY29tcHJlc3MgICAgT0YoKGd6RmlsZSBpbiwgRklMRSAgICpvdXQpKTsKLSAgdm9pZCBmaWxlX2NvbXByZXNzICAgIE9GKChjaGFyICAqZmlsZSwgY2hhciAqbW9kZSkpOwotICB2b2lkIGZpbGVfdW5jb21wcmVzcyAgT0YoKGNoYXIgICpmaWxlKSk7Ci0gIGludCAgbWFpbiAgICAgICAgICAgICBPRigoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkpOwotLS0tIDgwLDEwMyAtLS0tCi0gICMgIGRlZmluZSBsb2NhbAotICAjZW5kaWYKLSAgCi0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICN1bmRlZiAgc3RkZXJyCi0rICNkZWZpbmUgc3RkZXJyICBzdGRvdXQKLSsgI2RlZmluZSBGX0ZJTEUgIEhBTkRMRQotKyAjZGVmaW5lIEZfTlVMTCAgSU5WQUxJRF9IQU5ETEVfVkFMVUUKLSsgI2Vsc2UKLSsgI2RlZmluZSBGX0ZJTEUgIEZJTEUqCi0rICNkZWZpbmUgRl9OVUxMICBOVUxMCi0rICNlbmRpZgotKyAKLSAgY2hhciAqcHJvZzsKLSAgCi0gIHZvaWQgZXJyb3IgICAgICAgICAgICBPRigoY29uc3QgY2hhciAqbXNnKSk7Ci0hIHZvaWQgZ3pfY29tcHJlc3MgICAgICBPRigoRl9GSUxFIGluLCBnekZpbGUgb3V0KSk7Ci0gICNpZmRlZiBVU0VfTU1BUAotISBpbnQgIGd6X2NvbXByZXNzX21tYXAgT0YoKEZfRklMRSBpbiwgZ3pGaWxlIG91dCkpOwotICAjZW5kaWYKLSEgdm9pZCBnel91bmNvbXByZXNzICAgIE9GKChnekZpbGUgaW4sIEZfRklMRSBvdXQpKTsKLSAgdm9pZCBmaWxlX2NvbXByZXNzICAgIE9GKChjaGFyICAqZmlsZSwgY2hhciAqbW9kZSkpOwotICB2b2lkIGZpbGVfdW5jb21wcmVzcyAgT0YoKGNoYXIgICpmaWxlKSk7Ci0gIGludCAgbWFpbiAgICAgICAgICAgICBPRigoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkpOwotKioqKioqKioqKioqKioqCi0qKiogOTMsMTA0ICoqKioKLSAgICAgIGV4aXQoMSk7Ci0gIH0KLSAgCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgKiBDb21wcmVzcyBpbnB1dCB0byBvdXRwdXQgdGhlbiBjbG9zZSBib3RoIGZpbGVzLgotICAgKi8KLSAgCi0gIHZvaWQgZ3pfY29tcHJlc3MoaW4sIG91dCkKLSEgICAgIEZJTEUgICAqaW47Ci0gICAgICBnekZpbGUgb3V0OwotICB7Ci0gICAgICBsb2NhbCBjaGFyIGJ1ZltCVUZMRU5dOwotLS0tIDExMiwxNjAgLS0tLQotICAgICAgZXhpdCgxKTsKLSAgfQotICAKLSsgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKLSsgdm9pZCBwZXJyb3IobXNnKQotKyAgICAgY29uc3QgY2hhciAqbXNnOwotKyB7Ci0rICAgICBEV09SRCBkd0Vycm9yOwotKyAgICAgTFBWT0lEIGxwTXNnQnVmOwotKyAKLSsgICAgIGR3RXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKLSsgICAgIGlmICggRm9ybWF0TWVzc2FnZShGT1JNQVRfTUVTU0FHRV9BTExPQ0FURV9CVUZGRVIgfAotKyAgICAgICAgIEZPUk1BVF9NRVNTQUdFX0ZST01fU1lTVEVNIHwgRk9STUFUX01FU1NBR0VfRlJPTV9ITU9EVUxFIHwKLSsgICAgICAgICBGT1JNQVRfTUVTU0FHRV9JR05PUkVfSU5TRVJUUywKLSsgICAgICAgICBOVUxMLAotKyAgICAgICAgIGR3RXJyb3IsCi0rICAgICAgICAgTUFLRUxBTkdJRChMQU5HX05FVVRSQUwsIFNVQkxBTkdfREVGQVVMVCksIC8vIERlZmF1bHQgbGFuZ3VhZ2UKLSsgICAgICAgICAoTFBUU1RSKSAmbHBNc2dCdWYsCi0rICAgICAgICAgMCwKLSsgICAgICAgICBOVUxMKSApCi0rICAgICB7Ci0rICAgICAgICAgd3ByaW50ZihURVhUKCIlUzogJXNcbiIpLCBtc2csIChMUFRTVFIpbHBNc2dCdWYpOwotKyAgICAgICAgIExvY2FsRnJlZShscE1zZ0J1Zik7Ci0rICAgICB9Ci0rICAgICBlbHNlCi0rICAgICB7Ci0rICAgICAgICAgd3ByaW50ZihURVhUKCIlUzogRXJyb3IgIyVkXG4iKSwgbXNnLCBkd0Vycm9yKTsKLSsgICAgIH0KLSsgfQotKyAKLSsgaW50IHVubGluayhmaWxlbmFtZSkKLSsgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lOwotKyB7Ci0rICAgICBUQ0hBUiBwYXRoW01BWF9QQVRIXTsKLSsgCi0rICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgZmlsZW5hbWUsIC0xLCBwYXRoLCBNQVhfUEFUSCk7Ci0rICAgICByZXR1cm4gRGVsZXRlRmlsZShwYXRoKTsKLSsgfQotKyAjZW5kaWYKLSsgCi0gIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgKiBDb21wcmVzcyBpbnB1dCB0byBvdXRwdXQgdGhlbiBjbG9zZSBib3RoIGZpbGVzLgotICAgKi8KLSAgCi0gIHZvaWQgZ3pfY29tcHJlc3MoaW4sIG91dCkKLSEgICAgIEZfRklMRSBpbjsKLSAgICAgIGd6RmlsZSBvdXQ7Ci0gIHsKLSAgICAgIGxvY2FsIGNoYXIgYnVmW0JVRkxFTl07Ci0qKioqKioqKioqKioqKioKLSoqKiAxMTIsMTE5ICoqKioKLS0tLSAxNjgsMTc5IC0tLS0KLSAgICAgIGlmIChnel9jb21wcmVzc19tbWFwKGluLCBvdXQpID09IFpfT0spIHJldHVybjsKLSAgI2VuZGlmCi0gICAgICBmb3IgKDs7KSB7Ci0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICAgICAgICAgaWYgKCFSZWFkRmlsZShpbiwgYnVmLCBzaXplb2YoYnVmKSwgJmxlbiwgTlVMTCkpIHsKLSsgI2Vsc2UKLSAgICAgICAgICBsZW4gPSBmcmVhZChidWYsIDEsIHNpemVvZihidWYpLCBpbik7Ci0gICAgICAgICAgaWYgKGZlcnJvcihpbikpIHsKLSsgI2VuZGlmCi0gICAgICAgICAgICAgIHBlcnJvcigiZnJlYWQiKTsKLSAgICAgICAgICAgICAgZXhpdCgxKTsKLSAgICAgICAgICB9Ci0qKioqKioqKioqKioqKioKLSoqKiAxMjEsMTI3ICoqKioKLS0tLSAxODEsMTkxIC0tLS0KLSAgCi0gICAgICAgICAgaWYgKGd6d3JpdGUob3V0LCBidWYsICh1bnNpZ25lZClsZW4pICE9IGxlbikgZXJyb3IoZ3plcnJvcihvdXQsICZlcnIpKTsKLSAgICAgIH0KLSsgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKLSsgICAgIENsb3NlSGFuZGxlKGluKTsKLSsgI2Vsc2UKLSAgICAgIGZjbG9zZShpbik7Ci0rICNlbmRpZgotICAgICAgaWYgKGd6Y2xvc2Uob3V0KSAhPSBaX09LKSBlcnJvcigiZmFpbGVkIGd6Y2xvc2UiKTsKLSAgfQotICAKLSoqKioqKioqKioqKioqKgotKioqIDEzMSwxMzcgKioqKgotICAgKiBpZiBzdWNjZXNzLCBaX0VSUk5PIG90aGVyd2lzZS4KLSAgICovCi0gIGludCBnel9jb21wcmVzc19tbWFwKGluLCBvdXQpCi0hICAgICBGSUxFICAgKmluOwotICAgICAgZ3pGaWxlIG91dDsKLSAgewotICAgICAgaW50IGxlbjsKLS0tLSAxOTUsMjAxIC0tLS0KLSAgICogaWYgc3VjY2VzcywgWl9FUlJOTyBvdGhlcndpc2UuCi0gICAqLwotICBpbnQgZ3pfY29tcHJlc3NfbW1hcChpbiwgb3V0KQotISAgICAgRl9GSUxFIGluOwotICAgICAgZ3pGaWxlIG91dDsKLSAgewotICAgICAgaW50IGxlbjsKLSoqKioqKioqKioqKioqKgotKioqIDE2NywxNzcgKioqKgotICAgKi8KLSAgdm9pZCBnel91bmNvbXByZXNzKGluLCBvdXQpCi0gICAgICBnekZpbGUgaW47Ci0hICAgICBGSUxFICAgKm91dDsKLSAgewotICAgICAgbG9jYWwgY2hhciBidWZbQlVGTEVOXTsKLSAgICAgIGludCBsZW47Ci0gICAgICBpbnQgZXJyOwotICAKLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICBsZW4gPSBnenJlYWQoaW4sIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotLS0tIDIzMSwyNDQgLS0tLQotICAgKi8KLSAgdm9pZCBnel91bmNvbXByZXNzKGluLCBvdXQpCi0gICAgICBnekZpbGUgaW47Ci0hICAgICBGX0ZJTEUgb3V0OwotICB7Ci0gICAgICBsb2NhbCBjaGFyIGJ1ZltCVUZMRU5dOwotICAgICAgaW50IGxlbjsKLSAgICAgIGludCBlcnI7Ci0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICAgICBpbnQgc2l6ZTsKLSsgI2VuZGlmCi0gIAotICAgICAgZm9yICg7OykgewotICAgICAgICAgIGxlbiA9IGd6cmVhZChpbiwgYnVmLCBzaXplb2YoYnVmKSk7Ci0qKioqKioqKioqKioqKioKLSoqKiAxNzgsMTg4ICoqKioKLSAgICAgICAgICBpZiAobGVuIDwgMCkgZXJyb3IgKGd6ZXJyb3IoaW4sICZlcnIpKTsKLSAgICAgICAgICBpZiAobGVuID09IDApIGJyZWFrOwotICAKLSAgICAgICAgICBpZiAoKGludClmd3JpdGUoYnVmLCAxLCAodW5zaWduZWQpbGVuLCBvdXQpICE9IGxlbikgewotISAJICAgIGVycm9yKCJmYWlsZWQgZndyaXRlIik7Ci0hIAl9Ci0gICAgICB9Ci0gICAgICBpZiAoZmNsb3NlKG91dCkpIGVycm9yKCJmYWlsZWQgZmNsb3NlIik7Ci0gIAotICAgICAgaWYgKGd6Y2xvc2UoaW4pICE9IFpfT0spIGVycm9yKCJmYWlsZWQgZ3pjbG9zZSIpOwotICB9Ci0tLS0gMjQ1LDI2MyAtLS0tCi0gICAgICAgICAgaWYgKGxlbiA8IDApIGVycm9yIChnemVycm9yKGluLCAmZXJyKSk7Ci0gICAgICAgICAgaWYgKGxlbiA9PSAwKSBicmVhazsKLSAgCi0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICAgICAgICAgaWYgKCFXcml0ZUZpbGUob3V0LCBidWYsICh1bnNpZ25lZClsZW4sICZzaXplLCBOVUxMKSB8fCBzaXplICE9IGxlbikgewotKyAjZWxzZQotICAgICAgICAgIGlmICgoaW50KWZ3cml0ZShidWYsIDEsICh1bnNpZ25lZClsZW4sIG91dCkgIT0gbGVuKSB7Ci0hICNlbmRpZgotISAgICAgICAgICAgICBlcnJvcigiZmFpbGVkIGZ3cml0ZSIpOwotISAgICAgICAgIH0KLSAgICAgIH0KLSsgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKLSsgICAgIGlmICghQ2xvc2VIYW5kbGUob3V0KSkgZXJyb3IoImZhaWxlZCBmY2xvc2UiKTsKLSsgI2Vsc2UKLSAgICAgIGlmIChmY2xvc2Uob3V0KSkgZXJyb3IoImZhaWxlZCBmY2xvc2UiKTsKLSsgI2VuZGlmCi0gIAotICAgICAgaWYgKGd6Y2xvc2UoaW4pICE9IFpfT0spIGVycm9yKCJmYWlsZWQgZ3pjbG9zZSIpOwotICB9Ci0qKioqKioqKioqKioqKioKLSoqKiAxOTcsMjE1ICoqKioKLSAgICAgIGNoYXIgICptb2RlOwotICB7Ci0gICAgICBsb2NhbCBjaGFyIG91dGZpbGVbTUFYX05BTUVfTEVOXTsKLSEgICAgIEZJTEUgICppbjsKLSAgICAgIGd6RmlsZSBvdXQ7Ci0gIAotICAgICAgc3RyY3B5KG91dGZpbGUsIGZpbGUpOwotICAgICAgc3RyY2F0KG91dGZpbGUsIEdaX1NVRkZJWCk7Ci0gIAotICAgICAgaW4gPSBmb3BlbihmaWxlLCAicmIiKTsKLSEgICAgIGlmIChpbiA9PSBOVUxMKSB7Ci0gICAgICAgICAgcGVycm9yKGZpbGUpOwotICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBvdXQgPSBnem9wZW4ob3V0ZmlsZSwgbW9kZSk7Ci0hICAgICBpZiAob3V0ID09IE5VTEwpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBnem9wZW4gJXNcbiIsIHByb2csIG91dGZpbGUpOwotICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0tLS0gMjcyLDI5OCAtLS0tCi0gICAgICBjaGFyICAqbW9kZTsKLSAgewotICAgICAgbG9jYWwgY2hhciBvdXRmaWxlW01BWF9OQU1FX0xFTl07Ci0hICAgICBGX0ZJTEUgaW47Ci0gICAgICBnekZpbGUgb3V0OwotKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQotKyAgICAgVENIQVIgcGF0aFtNQVhfUEFUSF07Ci0rICNlbmRpZgotICAKLSAgICAgIHN0cmNweShvdXRmaWxlLCBmaWxlKTsKLSAgICAgIHN0cmNhdChvdXRmaWxlLCBHWl9TVUZGSVgpOwotICAKLSsgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKLSsgICAgIE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBmaWxlLCAtMSwgcGF0aCwgTUFYX1BBVEgpOwotKyAgICAgaW4gPSBDcmVhdGVGaWxlKHBhdGgsIEdFTkVSSUNfUkVBRCwgMCwgTlVMTCwgT1BFTl9FWElTVElORywgMCwgTlVMTCk7Ci0rICNlbHNlCi0gICAgICBpbiA9IGZvcGVuKGZpbGUsICJyYiIpOwotISAjZW5kaWYKLSEgICAgIGlmIChpbiA9PSBGX05VTEwpIHsKLSAgICAgICAgICBwZXJyb3IoZmlsZSk7Ci0gICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIG91dCA9IGd6b3BlbihvdXRmaWxlLCBtb2RlKTsKLSEgICAgIGlmIChvdXQgPT0gRl9OVUxMKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY2FuJ3QgZ3pvcGVuICVzXG4iLCBwcm9nLCBvdXRmaWxlKTsKLSAgICAgICAgICBleGl0KDEpOwotICAgICAgfQotKioqKioqKioqKioqKioqCi0qKiogMjI3LDIzNSAqKioqCi0gIHsKLSAgICAgIGxvY2FsIGNoYXIgYnVmW01BWF9OQU1FX0xFTl07Ci0gICAgICBjaGFyICppbmZpbGUsICpvdXRmaWxlOwotISAgICAgRklMRSAgKm91dDsKLSAgICAgIGd6RmlsZSBpbjsKLSAgICAgIGludCBsZW4gPSBzdHJsZW4oZmlsZSk7Ci0gIAotICAgICAgc3RyY3B5KGJ1ZiwgZmlsZSk7Ci0gIAotLS0tIDMxMCwzMjEgLS0tLQotICB7Ci0gICAgICBsb2NhbCBjaGFyIGJ1ZltNQVhfTkFNRV9MRU5dOwotICAgICAgY2hhciAqaW5maWxlLCAqb3V0ZmlsZTsKLSEgICAgIEZfRklMRSBvdXQ7Ci0gICAgICBnekZpbGUgaW47Ci0gICAgICBpbnQgbGVuID0gc3RybGVuKGZpbGUpOwotKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQotKyAgICAgVENIQVIgcGF0aFtNQVhfUEFUSF07Ci0rICNlbmRpZgotICAKLSAgICAgIHN0cmNweShidWYsIGZpbGUpOwotICAKLSoqKioqKioqKioqKioqKgotKioqIDI0MywyNTQgKioqKgotICAgICAgICAgIHN0cmNhdChpbmZpbGUsIEdaX1NVRkZJWCk7Ci0gICAgICB9Ci0gICAgICBpbiA9IGd6b3BlbihpbmZpbGUsICJyYiIpOwotISAgICAgaWYgKGluID09IE5VTEwpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBnem9wZW4gJXNcbiIsIHByb2csIGluZmlsZSk7Ci0gICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIG91dCA9IGZvcGVuKG91dGZpbGUsICJ3YiIpOwotISAgICAgaWYgKG91dCA9PSBOVUxMKSB7Ci0gICAgICAgICAgcGVycm9yKGZpbGUpOwotICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0tLS0gMzI5LDM0NSAtLS0tCi0gICAgICAgICAgc3RyY2F0KGluZmlsZSwgR1pfU1VGRklYKTsKLSAgICAgIH0KLSAgICAgIGluID0gZ3pvcGVuKGluZmlsZSwgInJiIik7Ci0hICAgICBpZiAoaW4gPT0gRl9OVUxMKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY2FuJ3QgZ3pvcGVuICVzXG4iLCBwcm9nLCBpbmZpbGUpOwotICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICAgICBNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgb3V0ZmlsZSwgLTEsIHBhdGgsIE1BWF9QQVRIKTsKLSsgICAgIG91dCA9IENyZWF0ZUZpbGUocGF0aCwgR0VORVJJQ19XUklURSwgMCwgTlVMTCwgQ1JFQVRFX0FMV0FZUywgMCwgTlVMTCk7Ci0rICNlbHNlCi0gICAgICBvdXQgPSBmb3BlbihvdXRmaWxlLCAid2IiKTsKLSEgI2VuZGlmCi0hICAgICBpZiAob3V0ID09IEZfTlVMTCkgewotICAgICAgICAgIHBlcnJvcihmaWxlKTsKLSAgICAgICAgICBleGl0KDEpOwotICAgICAgfQotKioqKioqKioqKioqKioqCi0qKiogMjcyLDI3OCAqKioqCi0tLS0gMzYzLDM3MSAtLS0tCi0gICAgICBjaGFyICphcmd2W107Ci0gIHsKLSAgICAgIGludCB1bmNvbXByID0gMDsKLSsgI2lmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCi0gICAgICBnekZpbGUgZmlsZTsKLSsgI2VuZGlmCi0gICAgICBjaGFyIG91dG1vZGVbMjBdOwotICAKLSAgICAgIHN0cmNweShvdXRtb2RlLCAid2I2ICIpOwotKioqKioqKioqKioqKioqCi0qKiogMjgyLDMwMCAqKioqCi0gIAotICAgICAgd2hpbGUgKGFyZ2MgPiAwKSB7Ci0gICAgICAgIGlmIChzdHJjbXAoKmFyZ3YsICItZCIpID09IDApCi0hIAl1bmNvbXByID0gMTsKLSAgICAgICAgZWxzZSBpZiAoc3RyY21wKCphcmd2LCAiLWYiKSA9PSAwKQotISAJb3V0bW9kZVszXSA9ICdmJzsKLSAgICAgICAgZWxzZSBpZiAoc3RyY21wKCphcmd2LCAiLWgiKSA9PSAwKQotISAJb3V0bW9kZVszXSA9ICdoJzsKLSAgICAgICAgZWxzZSBpZiAoKCphcmd2KVswXSA9PSAnLScgJiYgKCphcmd2KVsxXSA+PSAnMScgJiYgKCphcmd2KVsxXSA8PSAnOScgJiYKLSEgCSAgICAgICAoKmFyZ3YpWzJdID09IDApCi0hIAlvdXRtb2RlWzJdID0gKCphcmd2KVsxXTsKLSAgICAgICAgZWxzZQotISAJYnJlYWs7Ci0gICAgICAgIGFyZ2MtLSwgYXJndisrOwotICAgICAgfQotICAgICAgaWYgKGFyZ2MgPT0gMCkgewotICAgICAgICAgIFNFVF9CSU5BUllfTU9ERShzdGRpbik7Ci0gICAgICAgICAgU0VUX0JJTkFSWV9NT0RFKHN0ZG91dCk7Ci0gICAgICAgICAgaWYgKHVuY29tcHIpIHsKLS0tLSAzNzUsNDAwIC0tLS0KLSAgCi0gICAgICB3aGlsZSAoYXJnYyA+IDApIHsKLSAgICAgICAgaWYgKHN0cmNtcCgqYXJndiwgIi1kIikgPT0gMCkKLSEgICAgICAgICB1bmNvbXByID0gMTsKLSAgICAgICAgZWxzZSBpZiAoc3RyY21wKCphcmd2LCAiLWYiKSA9PSAwKQotISAgICAgICAgIG91dG1vZGVbM10gPSAnZic7Ci0gICAgICAgIGVsc2UgaWYgKHN0cmNtcCgqYXJndiwgIi1oIikgPT0gMCkKLSEgICAgICAgICBvdXRtb2RlWzNdID0gJ2gnOwotICAgICAgICBlbHNlIGlmICgoKmFyZ3YpWzBdID09ICctJyAmJiAoKmFyZ3YpWzFdID49ICcxJyAmJiAoKmFyZ3YpWzFdIDw9ICc5JyAmJgotISAgICAgICAgICAgICAgICAoKmFyZ3YpWzJdID09IDApCi0hICAgICAgICAgb3V0bW9kZVsyXSA9ICgqYXJndilbMV07Ci0gICAgICAgIGVsc2UKLSEgICAgICAgICBicmVhazsKLSAgICAgICAgYXJnYy0tLCBhcmd2Kys7Ci0gICAgICB9Ci0gICAgICBpZiAoYXJnYyA9PSAwKSB7Ci0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICAgICAgICAgd3ByaW50ZihURVhUKCJVc2FnZTogIG1pbmlnemlwIFstZF0gWy1mXSBbLWhdIFstMSB0byAtOV0gW2ZpbGVzLi4uXVxuIikpOwotKyAgICAgICAgIHdwcmludGYoVEVYVCgiICAtZCA6IGRlY29tcHJlc3NcbiIpKTsKLSsgICAgICAgICB3cHJpbnRmKFRFWFQoIiAgLWYgOiBjb21wcmVzcyB3aXRoIFpfRklMVEVSRURcbiIpKTsKLSsgICAgICAgICB3cHJpbnRmKFRFWFQoIiAgLWggOiBjb21wcmVzcyB3aXRoIFpfSFVGRk1BTl9PTkxZXG4iKSk7Ci0rICAgICAgICAgd3ByaW50ZihURVhUKCIgIC0xIHRvIC05IDogY29tcHJlc3Npb24gbGV2ZWxcbiIpKTsKLSsgI2Vsc2UKLSAgICAgICAgICBTRVRfQklOQVJZX01PREUoc3RkaW4pOwotICAgICAgICAgIFNFVF9CSU5BUllfTU9ERShzdGRvdXQpOwotICAgICAgICAgIGlmICh1bmNvbXByKSB7Ci0qKioqKioqKioqKioqKioKLSoqKiAzMDYsMzExICoqKioKLS0tLSA0MDYsNDEyIC0tLS0KLSAgICAgICAgICAgICAgaWYgKGZpbGUgPT0gTlVMTCkgZXJyb3IoImNhbid0IGd6ZG9wZW4gc3Rkb3V0Iik7Ci0gICAgICAgICAgICAgIGd6X2NvbXByZXNzKHN0ZGluLCBmaWxlKTsKLSAgICAgICAgICB9Ci0rICNlbmRpZgotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgIGlmICh1bmNvbXByKSB7Ci0qKioqKioqKioqKioqKioKLSoqKiAzMTgsMzIwICoqKioKLS0tLSA0MTksNDU3IC0tLS0KLSAgICAgIGV4aXQoMCk7Ci0gICAgICByZXR1cm4gMDsgLyogdG8gYXZvaWQgd2FybmluZyAqLwotICB9Ci0rIAotKyAjaWYgZGVmaW5lZChfV0lOMzJfV0NFKQotKyBpbnQgV0lOQVBJIFdpbk1haW4oSElOU1RBTkNFIGhJbnN0LCBISU5TVEFOQ0UgaFByZXZJbnN0LCBMUFdTVFIgbHBzekNtZExpbmUsIGludCBuQ21kU2hvdykKLSsgewotKyAgICAgI2RlZmluZSBTSVpFX0FSR1YgICAoMzIpCi0rICAgICBpbnQgYXJnYzsKLSsgICAgIGNoYXIgKmFyZ3ZbU0laRV9BUkdWXTsKLSsgICAgIGludCBzaXplOwotKyAgICAgY2hhciAqYnVmZjsKLSsgICAgIGNoYXIgKmFyZ3A7Ci0rIAotKyAgICAgc2l6ZSA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCBscHN6Q21kTGluZSwgLTEsIE5VTEwsIDAsIE5VTEwsIE5VTEwpOwotKyAgICAgYnVmZiA9IChjaGFyICopbWFsbG9jKHNpemUpOwotKyAgICAgc2l6ZSA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCAwLCBscHN6Q21kTGluZSwgLTEsIGJ1ZmYsIHNpemUsIE5VTEwsIE5VTEwpOwotKyAgICAgYXJncCA9IGJ1ZmY7Ci0rICAgICBhcmdjID0gMDsKLSsgICAgIGFyZ3ZbYXJnYysrXSA9ICJtaW5pZ3ppcC5leGUiOwotKyAgICAgaWYgKCphcmdwKSB7Ci0rICAgICAgICAgYXJndlthcmdjKytdID0gYXJncDsKLSsgICAgICAgICB3aGlsZSAoKmFyZ3ApIHsKLSsgICAgICAgICAgICAgaWYgKCphcmdwID09ICcgJykgewotKyAgICAgICAgICAgICAgICAgKmFyZ3ArKyA9ICdcMCc7Ci0rICAgICAgICAgICAgICAgICB3aGlsZSAoKmFyZ3AgJiYgKmFyZ3AgPT0gJyAnKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgYXJncCsrOwotKyAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgaWYgKCphcmdwICYmIGFyZ2MgPCBTSVpFX0FSR1YpIHsKLSsgICAgICAgICAgICAgICAgICAgICBhcmd2W2FyZ2MrK10gPSBhcmdwOwotKyAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICAgYXJncCsrOwotKyAgICAgICAgICAgICB9Ci0rICAgICAgICAgfQotKyAgICAgfQotKyAgICAgcmV0dXJuIG1haW4oYXJnYywgYXJndik7Ci0rIH0KLSsgI2VuZGlmCi0qKiogemxpYjExMy9leGFtcGxlLmMJU2F0IEp1bCAgOCAxMzo1OTo0OSAyMDAwCi0tLS0gemxpYndjZS9leGFtcGxlLmMJU2F0IEp1bCAgOCAxMzo1ODoyOSAyMDAwCi0qKioqKioqKioqKioqKioKLSoqKiAxLDExICoqKioKLS0tLSAxLDE5IC0tLS0KLSAgLyogZXhhbXBsZS5jIC0tIHVzYWdlIGV4YW1wbGUgb2YgdGhlIHpsaWIgY29tcHJlc3Npb24gbGlicmFyeQotICAgKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBKZWFuLWxvdXAgR2FpbGx5LgotKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgICAgICBUZW5payBDby4sTHRkLgotICAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gemxpYi5oIAotICAgKi8KLSAgCi0gIC8qIEAoIykgJElkJCAqLwotICAKLSsgI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkKLSsgI2lmIF9XSU4zMl9XQ0UgPCAyMTEKLSsgI2Vycm9yIChmfHcpcHJpbnRmIGZ1bmN0aW9ucyBpcyBub3Qgc3VwcG9ydCBvbGQgV2luZG93c0NFLgotKyAjZW5kaWYKLSsgI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSsgI2Vsc2UKLSAgI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rICNlbmRpZgotICAjaW5jbHVkZSAiemxpYi5oIgotICAKLSAgI2lmZGVmIFNUREMKLSoqKioqKioqKioqKioqKgotKioqIDIxLDI2ICoqKioKLS0tLSAyOSw0MyAtLS0tCi0gICMgIGRlZmluZSBURVNURklMRSAiZm9vLmd6IgotICAjZW5kaWYKLSAgCi0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rICNkZWZpbmUgY2FsbG9jKHgseSkgbWFsbG9jKCh4KSooeSkpCi0rICN1bmRlZiAgc3RkZXJyCi0rICNkZWZpbmUgc3RkZXJyICBzdGRvdXQKLSsgI2RlZmluZSBGX05VTEwgIElOVkFMSURfSEFORExFX1ZBTFVFCi0rICNlbHNlCi0rICNkZWZpbmUgRl9OVUxMICBOVUxMCi0rICNlbmRpZgotKyAKLSAgI2RlZmluZSBDSEVDS19FUlIoZXJyLCBtc2cpIHsgXAotICAgICAgaWYgKGVyciAhPSBaX09LKSB7IFwKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIGVycm9yOiAlZFxuIiwgbXNnLCBlcnIpOyBcCi0qKioqKioqKioqKioqKioKLSoqKiAzNyw1OCAqKioqCi0gIHVMb25nIGRpY3RJZDsgLyogQWRsZXIzMiB2YWx1ZSBvZiB0aGUgZGljdGlvbmFyeSAqLwotICAKLSAgdm9pZCB0ZXN0X2NvbXByZXNzICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9nemlvICAgICAgICAgIE9GKChjb25zdCBjaGFyICpvdXQsIGNvbnN0IGNoYXIgKmluLCAKLSEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCBpbnQgdW5jb21wckxlbikpOwotICB2b2lkIHRlc3RfZGVmbGF0ZSAgICAgICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9pbmZsYXRlICAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCi0hIAkJICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOwotICB2b2lkIHRlc3RfbGFyZ2VfZGVmbGF0ZSBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAotISAJCSAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2xhcmdlX2luZmxhdGUgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgCQkgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9mbHVzaCAgICAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgKmNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9zeW5jICAgICAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCi0hIAkJICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOwotICB2b2lkIHRlc3RfZGljdF9kZWZsYXRlICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9kaWN0X2luZmxhdGUgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCi0hIAkJICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOwotICBpbnQgIG1haW4gICAgICAgICAgICAgICBPRigoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkpOwotICAKLSAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gNTQsNzUgLS0tLQotICB1TG9uZyBkaWN0SWQ7IC8qIEFkbGVyMzIgdmFsdWUgb2YgdGhlIGRpY3Rpb25hcnkgKi8KLSAgCi0gIHZvaWQgdGVzdF9jb21wcmVzcyAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4sCi0hICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlICp1bmNvbXByLCB1TG9uZyB1bmNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9nemlvICAgICAgICAgIE9GKChjb25zdCBjaGFyICpvdXQsIGNvbnN0IGNoYXIgKmluLCAKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIGludCB1bmNvbXByTGVuKSk7Ci0gIHZvaWQgdGVzdF9kZWZsYXRlICAgICAgIE9GKChCeXRlICpjb21wciwgdUxvbmcgY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2luZmxhdGUgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2xhcmdlX2RlZmxhdGUgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2xhcmdlX2luZmxhdGUgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2ZsdXNoICAgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyAqY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X3N5bmMgICAgICAgICAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbiwKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgKnVuY29tcHIsIHVMb25nIHVuY29tcHJMZW4pKTsKLSAgdm9pZCB0ZXN0X2RpY3RfZGVmbGF0ZSAgT0YoKEJ5dGUgKmNvbXByLCB1TG9uZyBjb21wckxlbikpOwotICB2b2lkIHRlc3RfZGljdF9pbmZsYXRlICBPRigoQnl0ZSAqY29tcHIsIHVMb25nIGNvbXByTGVuLAotISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZSAqdW5jb21wciwgdUxvbmcgdW5jb21wckxlbikpOwotICBpbnQgIG1haW4gICAgICAgICAgICAgICBPRigoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkpOwotICAKLSAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0qKioqKioqKioqKioqKioKLSoqKiA3NSw4MSAqKioqCi0gIAotICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgdW5jb21wcmVzc1xuIik7Ci0hIAlleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoInVuY29tcHJlc3MoKTogJXNcbiIsIChjaGFyICopdW5jb21wcik7Ci0gICAgICB9Ci0tLS0gOTIsOTggLS0tLQotICAKLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKSkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIHVuY29tcHJlc3NcbiIpOwotISAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIHByaW50ZigidW5jb21wcmVzcygpOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKLSAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDk2LDEwMiAqKioqCi0gICAgICB6X29mZl90IHBvczsKLSAgCi0gICAgICBmaWxlID0gZ3pvcGVuKG91dCwgIndiIik7Ci0hICAgICBpZiAoZmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnem9wZW4gZXJyb3JcbiIpOwotICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0tLS0gMTEzLDExOSAtLS0tCi0gICAgICB6X29mZl90IHBvczsKLSAgCi0gICAgICBmaWxlID0gZ3pvcGVuKG91dCwgIndiIik7Ci0hICAgICBpZiAoZmlsZSA9PSBGX05VTEwpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6b3BlbiBlcnJvclxuIik7Ci0gICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDEwMywxMTkgKioqKgotICAgICAgZ3pwdXRjKGZpbGUsICdoJyk7Ci0gICAgICBpZiAoZ3pwdXRzKGZpbGUsICJlbGxvIikgIT0gNCkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pwdXRzIGVycjogJXNcbiIsIGd6ZXJyb3IoZmlsZSwgJmVycikpOwotISAJZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGlmIChnenByaW50ZihmaWxlLCAiLCAlcyEiLCAiaGVsbG8iKSAhPSA4KSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnenByaW50ZiBlcnI6ICVzXG4iLCBnemVycm9yKGZpbGUsICZlcnIpKTsKLSEgCWV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBnenNlZWsoZmlsZSwgMUwsIFNFRUtfQ1VSKTsgLyogYWRkIG9uZSB6ZXJvIGJ5dGUgKi8KLSAgICAgIGd6Y2xvc2UoZmlsZSk7Ci0gIAotICAgICAgZmlsZSA9IGd6b3BlbihpbiwgInJiIik7Ci0hICAgICBpZiAoZmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnem9wZW4gZXJyb3JcbiIpOwotICAgICAgfQotICAgICAgc3RyY3B5KChjaGFyKil1bmNvbXByLCAiZ2FyYmFnZSIpOwotLS0tIDEyMCwxMzYgLS0tLQotICAgICAgZ3pwdXRjKGZpbGUsICdoJyk7Ci0gICAgICBpZiAoZ3pwdXRzKGZpbGUsICJlbGxvIikgIT0gNCkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pwdXRzIGVycjogJXNcbiIsIGd6ZXJyb3IoZmlsZSwgJmVycikpOwotISAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBpZiAoZ3pwcmludGYoZmlsZSwgIiwgJXMhIiwgImhlbGxvIikgIT0gOCkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pwcmludGYgZXJyOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGd6c2VlayhmaWxlLCAxTCwgU0VFS19DVVIpOyAvKiBhZGQgb25lIHplcm8gYnl0ZSAqLwotICAgICAgZ3pjbG9zZShmaWxlKTsKLSAgCi0gICAgICBmaWxlID0gZ3pvcGVuKGluLCAicmIiKTsKLSEgICAgIGlmIChmaWxlID09IEZfTlVMTCkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ3pvcGVuIGVycm9yXG4iKTsKLSAgICAgIH0KLSAgICAgIHN0cmNweSgoY2hhciopdW5jb21wciwgImdhcmJhZ2UiKTsKLSoqKioqKioqKioqKioqKgotKioqIDEyMSwxMzEgKioqKgotICAgICAgdW5jb21wckxlbiA9IGd6cmVhZChmaWxlLCB1bmNvbXByLCAodW5zaWduZWQpdW5jb21wckxlbik7Ci0gICAgICBpZiAodW5jb21wckxlbiAhPSBsZW4pIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6cmVhZCBlcnI6ICVzXG4iLCBnemVycm9yKGZpbGUsICZlcnIpKTsKLSEgCWV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBpZiAoc3RyY21wKChjaGFyKil1bmNvbXByLCBoZWxsbykpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBnenJlYWQ6ICVzXG4iLCAoY2hhciopdW5jb21wcik7Ci0hIAlleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoImd6cmVhZCgpOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKLSAgICAgIH0KLS0tLSAxMzgsMTQ4IC0tLS0KLSAgICAgIHVuY29tcHJMZW4gPSBnenJlYWQoZmlsZSwgdW5jb21wciwgKHVuc2lnbmVkKXVuY29tcHJMZW4pOwotICAgICAgaWYgKHVuY29tcHJMZW4gIT0gbGVuKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnenJlYWQgZXJyOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKSkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIGd6cmVhZDogJXNcbiIsIChjaGFyKil1bmNvbXByKTsKLSEgICAgICAgICBleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoImd6cmVhZCgpOiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKLSAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDEzMiwxNDUgKioqKgotICAKLSAgICAgIHBvcyA9IGd6c2VlayhmaWxlLCAtOEwsIFNFRUtfQ1VSKTsKLSAgICAgIGlmIChwb3MgIT0gNiB8fCBnenRlbGwoZmlsZSkgIT0gcG9zKSB7Ci0hIAlmcHJpbnRmKHN0ZGVyciwgImd6c2VlayBlcnJvciwgcG9zPSVsZCwgZ3p0ZWxsPSVsZFxuIiwKLSEgCQkobG9uZylwb3MsIChsb25nKWd6dGVsbChmaWxlKSk7Ci0hIAlleGl0KDEpOwotICAgICAgfQotICAKLSAgICAgIGlmIChnemdldGMoZmlsZSkgIT0gJyAnKSB7Ci0hIAlmcHJpbnRmKHN0ZGVyciwgImd6Z2V0YyBlcnJvclxuIik7Ci0hIAlleGl0KDEpOwotICAgICAgfQotICAKLSAgICAgIGd6Z2V0cyhmaWxlLCAoY2hhciopdW5jb21wciwgdW5jb21wckxlbik7Ci0tLS0gMTQ5LDE2MiAtLS0tCi0gIAotICAgICAgcG9zID0gZ3pzZWVrKGZpbGUsIC04TCwgU0VFS19DVVIpOwotICAgICAgaWYgKHBvcyAhPSA2IHx8IGd6dGVsbChmaWxlKSAhPSBwb3MpIHsKLSEgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6c2VlayBlcnJvciwgcG9zPSVsZCwgZ3p0ZWxsPSVsZFxuIiwKLSEgICAgICAgICAgICAgICAgIChsb25nKXBvcywgKGxvbmcpZ3p0ZWxsKGZpbGUpKTsKLSEgICAgICAgICBleGl0KDEpOwotICAgICAgfQotICAKLSAgICAgIGlmIChnemdldGMoZmlsZSkgIT0gJyAnKSB7Ci0hICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnemdldGMgZXJyb3JcbiIpOwotISAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0gIAotICAgICAgZ3pnZXRzKGZpbGUsIChjaGFyKil1bmNvbXByLCB1bmNvbXByTGVuKTsKLSoqKioqKioqKioqKioqKgotKioqIDE0NiwxNTYgKioqKgotICAgICAgdW5jb21wckxlbiA9IHN0cmxlbigoY2hhciopdW5jb21wcik7Ci0gICAgICBpZiAodW5jb21wckxlbiAhPSA2KSB7IC8qICJoZWxsbyEiICovCi0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJnemdldHMgZXJyIGFmdGVyIGd6c2VlazogJXNcbiIsIGd6ZXJyb3IoZmlsZSwgJmVycikpOwotISAJZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKzcpKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgZ3pnZXRzIGFmdGVyIGd6c2Vla1xuIik7Ci0hIAlleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoImd6Z2V0cygpIGFmdGVyIGd6c2VlazogJXNcbiIsIChjaGFyICopdW5jb21wcik7Ci0gICAgICB9Ci0tLS0gMTYzLDE3MyAtLS0tCi0gICAgICB1bmNvbXByTGVuID0gc3RybGVuKChjaGFyKil1bmNvbXByKTsKLSAgICAgIGlmICh1bmNvbXByTGVuICE9IDYpIHsgLyogImhlbGxvISIgKi8KLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImd6Z2V0cyBlcnIgYWZ0ZXIgZ3pzZWVrOiAlc1xuIiwgZ3plcnJvcihmaWxlLCAmZXJyKSk7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKzcpKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgZ3pnZXRzIGFmdGVyIGd6c2Vla1xuIik7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJpbnRmKCJnemdldHMoKSBhZnRlciBnenNlZWs6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOwotICAgICAgfQotKioqKioqKioqKioqKioqCi0qKiogMjMxLDIzNyAqKioqCi0gIAotICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgaW5mbGF0ZVxuIik7Ci0hIAlleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoImluZmxhdGUoKTogJXNcbiIsIChjaGFyICopdW5jb21wcik7Ci0gICAgICB9Ci0tLS0gMjQ4LDI1NCAtLS0tCi0gIAotICAgICAgaWYgKHN0cmNtcCgoY2hhciopdW5jb21wciwgaGVsbG8pKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgaW5mbGF0ZVxuIik7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJpbnRmKCJpbmZsYXRlKCk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOwotICAgICAgfQotKioqKioqKioqKioqKioqCi0qKiogMjY2LDI3MiAqKioqCi0gICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZSIpOwotICAgICAgaWYgKGNfc3RyZWFtLmF2YWlsX2luICE9IDApIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlZmxhdGUgbm90IGdyZWVkeVxuIik7Ci0hIAlleGl0KDEpOwotICAgICAgfQotICAKLSAgICAgIC8qIEZlZWQgaW4gYWxyZWFkeSBjb21wcmVzc2VkIGRhdGEgYW5kIHN3aXRjaCB0byBubyBjb21wcmVzc2lvbjogKi8KLS0tLSAyODMsMjg5IC0tLS0KLSAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlIik7Ci0gICAgICBpZiAoY19zdHJlYW0uYXZhaWxfaW4gIT0gMCkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZGVmbGF0ZSBub3QgZ3JlZWR5XG4iKTsKLSEgICAgICAgICBleGl0KDEpOwotICAgICAgfQotICAKLSAgICAgIC8qIEZlZWQgaW4gYWxyZWFkeSBjb21wcmVzc2VkIGRhdGEgYW5kIHN3aXRjaCB0byBubyBjb21wcmVzc2lvbjogKi8KLSoqKioqKioqKioqKioqKgotKioqIDI4NiwyOTIgKioqKgotICAgICAgZXJyID0gZGVmbGF0ZSgmY19zdHJlYW0sIFpfRklOSVNIKTsKLSAgICAgIGlmIChlcnIgIT0gWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJkZWZsYXRlIHNob3VsZCByZXBvcnQgWl9TVFJFQU1fRU5EXG4iKTsKLSEgCWV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBlcnIgPSBkZWZsYXRlRW5kKCZjX3N0cmVhbSk7Ci0gICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZUVuZCIpOwotLS0tIDMwMywzMDkgLS0tLQotICAgICAgZXJyID0gZGVmbGF0ZSgmY19zdHJlYW0sIFpfRklOSVNIKTsKLSAgICAgIGlmIChlcnIgIT0gWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJkZWZsYXRlIHNob3VsZCByZXBvcnQgWl9TVFJFQU1fRU5EXG4iKTsKLSEgICAgICAgICBleGl0KDEpOwotICAgICAgfQotICAgICAgZXJyID0gZGVmbGF0ZUVuZCgmY19zdHJlYW0pOwotICAgICAgQ0hFQ0tfRVJSKGVyciwgImRlZmxhdGVFbmQiKTsKLSoqKioqKioqKioqKioqKgotKioqIDMxNiwzMjIgKioqKgotICAKLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICBkX3N0cmVhbS5uZXh0X291dCA9IHVuY29tcHI7ICAgICAgICAgICAgLyogZGlzY2FyZCB0aGUgb3V0cHV0ICovCi0hIAlkX3N0cmVhbS5hdmFpbF9vdXQgPSAodUludCl1bmNvbXByTGVuOwotICAgICAgICAgIGVyciA9IGluZmxhdGUoJmRfc3RyZWFtLCBaX05PX0ZMVVNIKTsKLSAgICAgICAgICBpZiAoZXJyID09IFpfU1RSRUFNX0VORCkgYnJlYWs7Ci0gICAgICAgICAgQ0hFQ0tfRVJSKGVyciwgImxhcmdlIGluZmxhdGUiKTsKLS0tLSAzMzMsMzM5IC0tLS0KLSAgCi0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgZF9zdHJlYW0ubmV4dF9vdXQgPSB1bmNvbXByOyAgICAgICAgICAgIC8qIGRpc2NhcmQgdGhlIG91dHB1dCAqLwotISAgICAgICAgIGRfc3RyZWFtLmF2YWlsX291dCA9ICh1SW50KXVuY29tcHJMZW47Ci0gICAgICAgICAgZXJyID0gaW5mbGF0ZSgmZF9zdHJlYW0sIFpfTk9fRkxVU0gpOwotICAgICAgICAgIGlmIChlcnIgPT0gWl9TVFJFQU1fRU5EKSBicmVhazsKLSAgICAgICAgICBDSEVDS19FUlIoZXJyLCAibGFyZ2UgaW5mbGF0ZSIpOwotKioqKioqKioqKioqKioqCi0qKiogMzI3LDMzMyAqKioqCi0gIAotICAgICAgaWYgKGRfc3RyZWFtLnRvdGFsX291dCAhPSAyKnVuY29tcHJMZW4gKyBjb21wckxlbi8yKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJiYWQgbGFyZ2UgaW5mbGF0ZTogJWxkXG4iLCBkX3N0cmVhbS50b3RhbF9vdXQpOwotISAJZXhpdCgxKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJpbnRmKCJsYXJnZV9pbmZsYXRlKCk6IE9LXG4iKTsKLSAgICAgIH0KLS0tLSAzNDQsMzUwIC0tLS0KLSAgCi0gICAgICBpZiAoZF9zdHJlYW0udG90YWxfb3V0ICE9IDIqdW5jb21wckxlbiArIGNvbXByTGVuLzIpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImJhZCBsYXJnZSBpbmZsYXRlOiAlbGRcbiIsIGRfc3RyZWFtLnRvdGFsX291dCk7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgcHJpbnRmKCJsYXJnZV9pbmZsYXRlKCk6IE9LXG4iKTsKLSAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDQwNyw0MTMgKioqKgotICAgICAgaWYgKGVyciAhPSBaX0RBVEFfRVJST1IpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImluZmxhdGUgc2hvdWxkIHJlcG9ydCBEQVRBX0VSUk9SXG4iKTsKLSAgICAgICAgICAvKiBCZWNhdXNlIG9mIGluY29ycmVjdCBhZGxlcjMyICovCi0hIAlleGl0KDEpOwotICAgICAgfQotICAgICAgZXJyID0gaW5mbGF0ZUVuZCgmZF9zdHJlYW0pOwotICAgICAgQ0hFQ0tfRVJSKGVyciwgImluZmxhdGVFbmQiKTsKLS0tLSA0MjQsNDMwIC0tLS0KLSAgICAgIGlmIChlcnIgIT0gWl9EQVRBX0VSUk9SKSB7Ci0gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbmZsYXRlIHNob3VsZCByZXBvcnQgREFUQV9FUlJPUlxuIik7Ci0gICAgICAgICAgLyogQmVjYXVzZSBvZiBpbmNvcnJlY3QgYWRsZXIzMiAqLwotISAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBlcnIgPSBpbmZsYXRlRW5kKCZkX3N0cmVhbSk7Ci0gICAgICBDSEVDS19FUlIoZXJyLCAiaW5mbGF0ZUVuZCIpOwotKioqKioqKioqKioqKioqCi0qKiogNDMzLDQzOSAqKioqCi0gICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZUluaXQiKTsKLSAgCi0gICAgICBlcnIgPSBkZWZsYXRlU2V0RGljdGlvbmFyeSgmY19zdHJlYW0sCi0hIAkJCSAgICAgICAoY29uc3QgQnl0ZWYqKWRpY3Rpb25hcnksIHNpemVvZihkaWN0aW9uYXJ5KSk7Ci0gICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZVNldERpY3Rpb25hcnkiKTsKLSAgCi0gICAgICBkaWN0SWQgPSBjX3N0cmVhbS5hZGxlcjsKLS0tLSA0NTAsNDU2IC0tLS0KLSAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlSW5pdCIpOwotICAKLSAgICAgIGVyciA9IGRlZmxhdGVTZXREaWN0aW9uYXJ5KCZjX3N0cmVhbSwKLSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBCeXRlZiopZGljdGlvbmFyeSwgc2l6ZW9mKGRpY3Rpb25hcnkpKTsKLSAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlU2V0RGljdGlvbmFyeSIpOwotICAKLSAgICAgIGRpY3RJZCA9IGNfc3RyZWFtLmFkbGVyOwotKioqKioqKioqKioqKioqCi0qKiogNDQ2LDQ1MiAqKioqCi0gICAgICBlcnIgPSBkZWZsYXRlKCZjX3N0cmVhbSwgWl9GSU5JU0gpOwotICAgICAgaWYgKGVyciAhPSBaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlZmxhdGUgc2hvdWxkIHJlcG9ydCBaX1NUUkVBTV9FTkRcbiIpOwotISAJZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIGVyciA9IGRlZmxhdGVFbmQoJmNfc3RyZWFtKTsKLSAgICAgIENIRUNLX0VSUihlcnIsICJkZWZsYXRlRW5kIik7Ci0tLS0gNDYzLDQ2OSAtLS0tCi0gICAgICBlcnIgPSBkZWZsYXRlKCZjX3N0cmVhbSwgWl9GSU5JU0gpOwotICAgICAgaWYgKGVyciAhPSBaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRlZmxhdGUgc2hvdWxkIHJlcG9ydCBaX1NUUkVBTV9FTkRcbiIpOwotISAgICAgICAgIGV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICBlcnIgPSBkZWZsYXRlRW5kKCZjX3N0cmVhbSk7Ci0gICAgICBDSEVDS19FUlIoZXJyLCAiZGVmbGF0ZUVuZCIpOwotKioqKioqKioqKioqKioqCi0qKiogNDgwLDQ5MyAqKioqCi0gICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgZXJyID0gaW5mbGF0ZSgmZF9zdHJlYW0sIFpfTk9fRkxVU0gpOwotICAgICAgICAgIGlmIChlcnIgPT0gWl9TVFJFQU1fRU5EKSBicmVhazsKLSEgCWlmIChlcnIgPT0gWl9ORUVEX0RJQ1QpIHsKLSEgCSAgICBpZiAoZF9zdHJlYW0uYWRsZXIgIT0gZGljdElkKSB7Ci0hIAkJZnByaW50ZihzdGRlcnIsICJ1bmV4cGVjdGVkIGRpY3Rpb25hcnkiKTsKLSEgCQlleGl0KDEpOwotISAJICAgIH0KLSEgCSAgICBlcnIgPSBpbmZsYXRlU2V0RGljdGlvbmFyeSgmZF9zdHJlYW0sIChjb25zdCBCeXRlZiopZGljdGlvbmFyeSwKLSEgCQkJCSAgICAgICBzaXplb2YoZGljdGlvbmFyeSkpOwotISAJfQotICAgICAgICAgIENIRUNLX0VSUihlcnIsICJpbmZsYXRlIHdpdGggZGljdCIpOwotICAgICAgfQotICAKLS0tLSA0OTcsNTEwIC0tLS0KLSAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICBlcnIgPSBpbmZsYXRlKCZkX3N0cmVhbSwgWl9OT19GTFVTSCk7Ci0gICAgICAgICAgaWYgKGVyciA9PSBaX1NUUkVBTV9FTkQpIGJyZWFrOwotISAgICAgICAgIGlmIChlcnIgPT0gWl9ORUVEX0RJQ1QpIHsKLSEgICAgICAgICAgICAgaWYgKGRfc3RyZWFtLmFkbGVyICE9IGRpY3RJZCkgewotISAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmV4cGVjdGVkIGRpY3Rpb25hcnkiKTsKLSEgICAgICAgICAgICAgICAgIGV4aXQoMSk7Ci0hICAgICAgICAgICAgIH0KLSEgICAgICAgICAgICAgZXJyID0gaW5mbGF0ZVNldERpY3Rpb25hcnkoJmRfc3RyZWFtLCAoY29uc3QgQnl0ZWYqKWRpY3Rpb25hcnksCi0hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkaWN0aW9uYXJ5KSk7Ci0hICAgICAgICAgfQotICAgICAgICAgIENIRUNLX0VSUihlcnIsICJpbmZsYXRlIHdpdGggZGljdCIpOwotICAgICAgfQotICAKLSoqKioqKioqKioqKioqKgotKioqIDQ5Niw1MDIgKioqKgotICAKLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKSkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIGluZmxhdGUgd2l0aCBkaWN0XG4iKTsKLSEgCWV4aXQoMSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAgIHByaW50ZigiaW5mbGF0ZSB3aXRoIGRpY3Rpb25hcnk6ICVzXG4iLCAoY2hhciAqKXVuY29tcHIpOwotICAgICAgfQotLS0tIDUxMyw1MTkgLS0tLQotICAKLSAgICAgIGlmIChzdHJjbXAoKGNoYXIqKXVuY29tcHIsIGhlbGxvKSkgewotICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYmFkIGluZmxhdGUgd2l0aCBkaWN0XG4iKTsKLSEgICAgICAgICBleGl0KDEpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBwcmludGYoImluZmxhdGUgd2l0aCBkaWN0aW9uYXJ5OiAlc1xuIiwgKGNoYXIgKil1bmNvbXByKTsKLSAgICAgIH0KLSoqKioqKioqKioqKioqKgotKioqIDUzMCw1NDIgKioqKgotICAgICAgICovCi0gICAgICBpZiAoY29tcHIgPT0gWl9OVUxMIHx8IHVuY29tcHIgPT0gWl9OVUxMKSB7Ci0gICAgICAgICAgcHJpbnRmKCJvdXQgb2YgbWVtb3J5XG4iKTsKLSEgCWV4aXQoMSk7Ci0gICAgICB9Ci0gICAgICB0ZXN0X2NvbXByZXNzKGNvbXByLCBjb21wckxlbiwgdW5jb21wciwgdW5jb21wckxlbik7Ci0gIAotICAgICAgdGVzdF9nemlvKChhcmdjID4gMSA/IGFyZ3ZbMV0gOiBURVNURklMRSksCi0gICAgICAgICAgICAgICAgKGFyZ2MgPiAyID8gYXJndlsyXSA6IFRFU1RGSUxFKSwKLSEgCSAgICAgIHVuY29tcHIsIChpbnQpdW5jb21wckxlbik7Ci0gIAotICAgICAgdGVzdF9kZWZsYXRlKGNvbXByLCBjb21wckxlbik7Ci0gICAgICB0ZXN0X2luZmxhdGUoY29tcHIsIGNvbXByTGVuLCB1bmNvbXByLCB1bmNvbXByTGVuKTsKLS0tLSA1NDcsNTU5IC0tLS0KLSAgICAgICAqLwotICAgICAgaWYgKGNvbXByID09IFpfTlVMTCB8fCB1bmNvbXByID09IFpfTlVMTCkgewotICAgICAgICAgIHByaW50Zigib3V0IG9mIG1lbW9yeVxuIik7Ci0hICAgICAgICAgZXhpdCgxKTsKLSAgICAgIH0KLSAgICAgIHRlc3RfY29tcHJlc3MoY29tcHIsIGNvbXByTGVuLCB1bmNvbXByLCB1bmNvbXByTGVuKTsKLSAgCi0gICAgICB0ZXN0X2d6aW8oKGFyZ2MgPiAxID8gYXJndlsxXSA6IFRFU1RGSUxFKSwKLSAgICAgICAgICAgICAgICAoYXJnYyA+IDIgPyBhcmd2WzJdIDogVEVTVEZJTEUpLAotISAgICAgICAgICAgICAgIHVuY29tcHIsIChpbnQpdW5jb21wckxlbik7Ci0gIAotICAgICAgdGVzdF9kZWZsYXRlKGNvbXByLCBjb21wckxlbik7Ci0gICAgICB0ZXN0X2luZmxhdGUoY29tcHIsIGNvbXByTGVuLCB1bmNvbXByLCB1bmNvbXByTGVuKTsKLSoqKioqKioqKioqKioqKgotKioqIDU1NCw1NTYgKioqKgotLS0tIDU3MSw2MDkgLS0tLQotICAgICAgZXhpdCgwKTsKLSAgICAgIHJldHVybiAwOyAvKiB0byBhdm9pZCB3YXJuaW5nICovCi0gIH0KLSsgCi0rICNpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCi0rIGludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3QsIEhJTlNUQU5DRSBoUHJldkluc3QsIExQV1NUUiBscHN6Q21kTGluZSwgaW50IG5DbWRTaG93KQotKyB7Ci0rICAgICAjZGVmaW5lIFNJWkVfQVJHViAgICgzMikKLSsgICAgIGludCBhcmdjOwotKyAgICAgY2hhciAqYXJndltTSVpFX0FSR1ZdOwotKyAgICAgaW50IHNpemU7Ci0rICAgICBjaGFyICpidWZmOwotKyAgICAgY2hhciAqYXJncDsKLSsgCi0rICAgICBzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIGxwc3pDbWRMaW5lLCAtMSwgTlVMTCwgMCwgTlVMTCwgTlVMTCk7Ci0rICAgICBidWZmID0gKGNoYXIgKiltYWxsb2Moc2l6ZSk7Ci0rICAgICBzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIDAsIGxwc3pDbWRMaW5lLCAtMSwgYnVmZiwgc2l6ZSwgTlVMTCwgTlVMTCk7Ci0rICAgICBhcmdwID0gYnVmZjsKLSsgICAgIGFyZ2MgPSAwOwotKyAgICAgYXJndlthcmdjKytdID0gImV4YW1wbGUuZXhlIjsKLSsgICAgIGlmICgqYXJncCkgewotKyAgICAgICAgIGFyZ3ZbYXJnYysrXSA9IGFyZ3A7Ci0rICAgICAgICAgd2hpbGUgKCphcmdwKSB7Ci0rICAgICAgICAgICAgIGlmICgqYXJncCA9PSAnICcpIHsKLSsgICAgICAgICAgICAgICAgICphcmdwKysgPSAnXDAnOwotKyAgICAgICAgICAgICAgICAgd2hpbGUgKCphcmdwICYmICphcmdwID09ICcgJykgewotKyAgICAgICAgICAgICAgICAgICAgIGFyZ3ArKzsKLSsgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgIGlmICgqYXJncCAmJiBhcmdjIDwgU0laRV9BUkdWKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgYXJndlthcmdjKytdID0gYXJncDsKLSsgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgIGFyZ3ArKzsKLSsgICAgICAgICAgICAgfQotKyAgICAgICAgIH0KLSsgICAgIH0KLSsgICAgIHJldHVybiBtYWluKGFyZ2MsIGFyZ3YpOwotKyB9Ci0rICNlbmRpZgpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvemxpYmNlLmRlZiBiL3Byb2plY3RzL3dpbmNlL3psaWJjZS5kZWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1MzQzN2MuLjAwMDAwMDAKLS0tIGEvcHJvamVjdHMvd2luY2UvemxpYmNlLmRlZgorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLUxJQlJBUlkgICAgIHpsaWJjZS5kbGwKLQotRVhQT1JUUwotICAgIGFkbGVyMzIgICAgICAgICAgICAgICAgICAgICAgICBAMQotICAgIGNvbXByZXNzICAgICAgICAgICAgICAgICAgICAgICBAMgotICAgIGNyYzMyICAgICAgICAgICAgICAgICAgICAgICAgICBAMwotICAgIGRlZmxhdGUgICAgICAgICAgICAgICAgICAgICAgICBANAotICAgIGRlZmxhdGVDb3B5ICAgICAgICAgICAgICAgICAgICBANQotICAgIGRlZmxhdGVFbmQgICAgICAgICAgICAgICAgICAgICBANgotICAgIGRlZmxhdGVJbml0Ml8gICAgICAgICAgICAgICAgICBANwotICAgIGRlZmxhdGVJbml0XyAgICAgICAgICAgICAgICAgICBAOAotICAgIGRlZmxhdGVQYXJhbXMgICAgICAgICAgICAgICAgICBAOQotICAgIGRlZmxhdGVSZXNldCAgICAgICAgICAgICAgICAgICBAMTAKLSAgICBkZWZsYXRlU2V0RGljdGlvbmFyeSAgICAgICAgICAgQDExCi0gICAgZ3pjbG9zZSAgICAgICAgICAgICAgICAgICAgICAgIEAxMgotICAgIGd6ZG9wZW4gICAgICAgICAgICAgICAgICAgICAgICBAMTMKLSAgICBnemVycm9yICAgICAgICAgICAgICAgICAgICAgICAgQDE0Ci0gICAgZ3pmbHVzaCAgICAgICAgICAgICAgICAgICAgICAgIEAxNQotICAgIGd6b3BlbiAgICAgICAgICAgICAgICAgICAgICAgICBAMTYKLSAgICBnenJlYWQgICAgICAgICAgICAgICAgICAgICAgICAgQDE3Ci0gICAgZ3p3cml0ZSAgICAgICAgICAgICAgICAgICAgICAgIEAxOAotICAgIGluZmxhdGUgICAgICAgICAgICAgICAgICAgICAgICBAMTkKLSAgICBpbmZsYXRlRW5kICAgICAgICAgICAgICAgICAgICAgQDIwCi0gICAgaW5mbGF0ZUluaXQyXyAgICAgICAgICAgICAgICAgIEAyMQotICAgIGluZmxhdGVJbml0XyAgICAgICAgICAgICAgICAgICBAMjIKLSAgICBpbmZsYXRlUmVzZXQgICAgICAgICAgICAgICAgICAgQDIzCi0gICAgaW5mbGF0ZVNldERpY3Rpb25hcnkgICAgICAgICAgIEAyNAotICAgIGluZmxhdGVTeW5jICAgICAgICAgICAgICAgICAgICBAMjUKLSAgICB1bmNvbXByZXNzICAgICAgICAgICAgICAgICAgICAgQDI2Ci0gICAgemxpYlZlcnNpb24gICAgICAgICAgICAgICAgICAgIEAyNwotICAgIGd6cHJpbnRmICAgICAgICAgICAgICAgICAgICAgICBAMjgKLSAgICBnenB1dGMgICAgICAgICAgICAgICAgICAgICAgICAgQDI5Ci0gICAgZ3pnZXRjICAgICAgICAgICAgICAgICAgICAgICAgIEAzMAotICAgIGd6c2VlayAgICAgICAgICAgICAgICAgICAgICAgICBAMzEKLSAgICBnenJld2luZCAgICAgICAgICAgICAgICAgICAgICAgQDMyCi0gICAgZ3p0ZWxsICAgICAgICAgICAgICAgICAgICAgICAgIEAzMwotICAgIGd6ZW9mICAgICAgICAgICAgICAgICAgICAgICAgICBAMzQKLSAgICBnenNldHBhcmFtcyAgICAgICAgICAgICAgICAgICAgQDM1Ci0gICAgekVycm9yICAgICAgICAgICAgICAgICAgICAgICAgIEAzNgotICAgIGluZmxhdGVTeW5jUG9pbnQgICAgICAgICAgICAgICBAMzcKLSAgICBnZXRfY3JjX3RhYmxlICAgICAgICAgICAgICAgICAgQDM4Ci0gICAgY29tcHJlc3MyICAgICAgICAgICAgICAgICAgICAgIEAzOQotICAgIGd6cHV0cyAgICAgICAgICAgICAgICAgICAgICAgICBANDAKLSAgICBnemdldHMgICAgICAgICAgICAgICAgICAgICAgICAgQDQxCmRpZmYgLS1naXQgYS9wcm9qZWN0cy93aW5jZS96bGliY2UuZHNwIGIvcHJvamVjdHMvd2luY2UvemxpYmNlLmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjI3OTdmZi4uMDAwMDAwMAotLS0gYS9wcm9qZWN0cy93aW5jZS96bGliY2UuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsMjgzMiArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9InpsaWJjZSIgLSBQYWNrYWdlIE93bmVyPTw0PgotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMAotIyAqKiBETyBOT1QgRURJVCAqKgotCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIHg4NmVtKSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg3ZjAyCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIFNIMykgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODEwMgotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBQUEMpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDg0MDIKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4MzAyCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIE1JUFNGUCkgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4ODcwMgotIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBBUk0pIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDg1MDIKLSMgVEFSR1RZUEUgIldpbjMyIChXQ0UgU0g0KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHg4NjAyCi0jIFRBUkdUWVBFICJXaW4zMiAoV0NFIE1JUFMpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDgyMDIKLQotQ0ZHPXpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWcKLSFNRVNTQUdFIFRoaXMgaXMgbm90IGEgdmFsaWQgbWFrZWZpbGUuIFRvIGJ1aWxkIHRoaXMgcHJvamVjdCB1c2luZyBOTUFLRSwKLSFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bgotIU1FU1NBR0UgCi0hTUVTU0FHRSBOTUFLRSAvZiAiemxpYmNlLm1hayIuCi0hTUVTU0FHRSAKLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOgotIU1FU1NBR0UgCi0hTUVTU0FHRSBOTUFLRSAvZiAiemxpYmNlLm1hayIgQ0ZHPSJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotIU1FU1NBR0UgCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToKLSFNRVNTQUdFIAotIU1FU1NBR0UgInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIE1JUFMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgTUlQUykgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0g0KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgU0g0KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBTSDMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBTSDMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIEFSTSkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIEFSTSkgRHluYW1pYy1MaW5rIExpYnJhcnkiKQotIU1FU1NBR0UgInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgTUlQU0ZQKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgTUlQU0ZQKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSB4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSB4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgeDg2ZW0pIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIHg4NmVtKSBEeW5hbWljLUxpbmsgTGlicmFyeSIpCi0hTUVTU0FHRSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBQUEMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBQUEMpIER5bmFtaWMtTGluayBMaWJyYXJ5IikKLSFNRVNTQUdFIAotCi0jIEJlZ2luIFByb2plY3QKLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwCi0jIFBST1AgU2NjX1Byb2pOYW1lICIiCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiSC9QQyBWZXIuIDIuMDAiCi0jIFBST1AgV0NFX0Zvcm1hdFZlcnNpb24gIjYuMCIKLQotIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU1JlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvR1gtIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvUU1SV0NFICAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvUU1SV0NFICAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDEKLSMgUFJPUCBPdXRwdXRfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0RiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xtaXBzLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiREVCVUciIC9EICJNSVBTIiAvRCAiX01JUFNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9RTVJXQ0UgIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL1FNUldDRSAgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VTSDRSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDRSZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFU0g0UmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVNINFJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9c2hjbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1FzaDQgL01DIC9XMyAvR1gtIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDQiIC9EICJfU0g0XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6U0g0IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0g0RGJnIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0g0RGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNINERiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDREYmciCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9Rc2g0IC9NQyAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNINCIgL0QgIl9TSDRfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvUXNoNCAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0g0IiAvRCAiX1NINF8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDQiIC9kICJfU0g0XyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNINCIgL2QgIl9TSDRfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlNINCAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0gzUmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNIM1JlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDNSZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydCkgL1czIC9HWC0gL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJOREVCVUciIC9EICJTSHgiIC9EICJTSDMiIC9EICJfU0gzXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9tYWNoaW5lOlNIMyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6U0gzIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFU0gzRGJnIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFU0gzRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIldDRVNIM0RiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VTSDNEYmciCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPXNoY2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlNIeCIgL0QgIlNIMyIgL0QgIl9TSDNfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiU0h4IiAvRCAiU0gzIiAvRCAiX1NIM18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJTSHgiIC9kICJTSDMiIC9kICJfU0gzXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIlNIeCIgL2QgIlNIMyIgL2QgIl9TSDNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlNIMyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlNIMyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV0NFQVJNUmVsIgotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiV0NFQVJNUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIldDRUFSTVJlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXQ0VBUk1SZWwiCi0jIFBST1AgVGFyZ2V0X0RpciAiIgotQ1BQPWNsYXJtLmV4ZQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTUMgL1czIC9HWC0gL08yIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJOREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01DIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6QVJNIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29yZWRsbC5saWIgY29tbWN0cmwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpBUk0gL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VBUk1EYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VBUk1EYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFQVJNRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRUFSTURiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xhcm0uZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NQyAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIkFSTSIgL2QgIl9BUk1fIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvcmVkbGwubGliIGNvbW1jdHJsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkFSTSAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNGUFJlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldNSVBTRlBSZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV01JUFNGUFJlbCIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0ZQUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbG1pcHMuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9RTUZXQ0UgL01DIC9XMyAvR1gtIC9PMiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9HWC0gL08yIC9JICIuLlwuLlwuLlx6bGliIiAvRCAiTkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAiTUlQUyIgL2QgIl9NSVBTXyIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kICJVTklDT0RFIiAvZCAiTkRFQlVHIgotTVRMPW1pZGwuZXhlCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzIKLUJTQzMyPWJzY21ha2UuZXhlCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28KLSMgQUREIEJTQzMyIC9ub2xvZ28KLUxJTkszMj1saW5rLmV4ZQotIyBBREQgQkFTRSBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi0jIFBST1AgQkFTRSBVc2VfTUZDIDAKLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiV01JUFNGUERiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldNSVBTRlBEYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV01JUFNGUERiZyIKLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJXTUlQU0ZQRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbG1pcHMuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9RTUZXQ0UgL01DIC9XMyAvR1gtIC9aaSAvT2QgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9ZWCAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL1FNRldDRSAvTUMgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiTUlQUyIgL0QgIl9NSVBTXyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIk1JUFMiIC9kICJfTUlQU18iIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJNSVBTIiAvZCAiX01JUFNfIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOk1JUFMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpNSVBTIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VYODZSZWwiCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VYODZSZWwiCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFWDg2UmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVg4NlJlbCIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTCAvVzMgL0dYLSAvTzIgL0QgIng4NiIgL0QgIl9pMzg2XyIgL0QgIl94ODZfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL0dzODE5MiAvR0YgIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTUwgL1czIC9HWC0gL08yIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJOREVCVUciIC9EICJpXzM4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9HczgxOTIgL0dGICAvYwotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl94ODZfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMDEwMDAwIiAvZGxsIC9tYWNoaW5lOklYODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgQkFTRSBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLSMgQUREIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMDEwMDAwIiAvZGxsIC9tYWNoaW5lOklYODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VYODZEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VYODZEYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFWDg2RGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVg4NkRiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2wuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HWC0gL1ppIC9PZCAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIkRFQlVHIiAvRCAiaV8zODZfIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiWkxJQkNFX0VYUE9SVFMiIC9HczgxOTIgL0dGICAvYwotIyBBREQgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dYLSAvWmkgL09kIC9JICIuLlwuLlwuLlx6bGliIiAvRCAieDg2IiAvRCAiX2kzODZfIiAvRCAiX3g4Nl8iIC9EICJERUJVRyIgL0QgImlfMzg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL0dzODE5MiAvR0YgIC9jCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX3g4Nl8iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIkRFQlVHIgotIyBBREQgUlNDIC9sIDB4NDExIC9yIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9kICJfeDg2XyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9iYXNlOiIweDAwMDEwMDAwIiAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJWDg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvYmFzZToiMHgwMDAxMDAwMCIgL2RsbCAvZGVidWcgL21hY2hpbmU6SVg4NiAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbVJlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtUmVsIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MIC9XMyAvR1gtIC9PMiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIk5ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTCAvVzMgL0dYLSAvTzIgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIk5ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJOREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJOREVCVUciCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZGxsIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0jIEFERCBMSU5LMzIgJChDRXg4NkNvcmVsaWJjKSBjb21tY3RybC5saWIgY29yZWRsbC5saWIgL25vbG9nbyAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2RsbCAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvd2luZG93c2NlOmVtdWxhdGlvbgotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODZlbURiZyIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIgotIyBQUk9QIFVzZV9NRkMgMAotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQotIyBQUk9QIE91dHB1dF9EaXIgIng4NmVtRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4NmVtRGJnIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbC5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01MZCAvVzMgL0dtIC9HWC0gL1ppIC9PZCAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIlpMSUJDRV9FWFBPUlRTIiAvWVggL2MKLSMgQUREIENQUCAvbm9sb2dvIC9NTGQgL1czIC9HbSAvR1gtIC9aaSAvT2QgL0kgIi4uXC4uXC4uXHpsaWIiIC9EICJfVU5JQ09ERSIgL0QgIldJTjMyIiAvRCAiU1RSSUNUIiAvRCAiX1dJTjMyX1dDRV9FTVVMQVRJT04iIC9EICJJTlRFUk5BVElPTkFMIiAvRCAiVVNBIiAvRCAiSU5UTE1TR19DT0RFUEFHRSIgL0QgIl9ERUJVRyIgL0QgIng4NiIgL0QgImk0ODYiIC9EICJfeDg2XyIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EICJVTklDT0RFIiAvRCAiX01CQ1MiIC9EICJaTElCX0RMTCIgL2MKLSMgU1VCVFJBQ1QgQ1BQIC9ZWAotUlNDPXJjLmV4ZQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCi0jIEFERCBSU0MgL2wgMHg0MTEgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJXSU4zMiIgL2QgIlNUUklDVCIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgIl9XSU4zMl9XQ0VfRU1VTEFUSU9OIiAvZCAiSU5URVJOQVRJT05BTCIgL2QgIlVTQSIgL2QgIklOVExNU0dfQ09ERVBBR0UiIC9kICJfREVCVUciIC9kICJ4ODYiIC9kICJpNDg2IiAvZCAiX3g4Nl8iCi1NVEw9bWlkbC5leGUKLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMgotQlNDMzI9YnNjbWFrZS5leGUKLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbwotIyBBREQgQlNDMzIgL25vbG9nbwotTElOSzMyPWxpbmsuZXhlCi0jIEFERCBCQVNFIExJTkszMiAkKENFeDg2Q29yZWxpYmMpIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvd2luZG93c2NlOmVtdWxhdGlvbgotIyBBREQgTElOSzMyICQoQ0V4ODZDb3JlbGliYykgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC93aW5kb3dzY2U6ZW11bGF0aW9uCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotIyBQUk9QIEJBU0UgVXNlX01GQyAwCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIldDRVBQQ1JlbCIKLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiIKLSMgUFJPUCBVc2VfTUZDIDAKLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDAKLSMgUFJPUCBPdXRwdXRfRGlyICJXQ0VQUENSZWwiCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiV0NFUFBDUmVsIgotIyBQUk9QIFRhcmdldF9EaXIgIiIKLUNQUD1jbHBwYy5leGUKLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL00kKENFQ3J0KSAvVzMgL0dYLSAvTzIgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ0VDb25maWdOYW1lKSIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnQpIC9XMyAvR1gtIC9PMiAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIk5ERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDRUNvbmZpZ05hbWUpIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIlpMSUJfRExMIiAvYwotIyBTVUJUUkFDVCBDUFAgL1lYCi1SU0M9cmMuZXhlCi0jIEFERCBCQVNFIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLSMgQUREIFJTQyAvbCAweDQxMSAvciAvZCAicHBjIiAvZCAiX3BwY18iIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICIkKENFQ29uZmlnTmFtZSkiIC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIk5ERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6UFBDIC9ub2RlZmF1bHRsaWI6IiQoQ0VOb0RlZmF1bHRMaWIpIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9TVEFDSzo2NTUzNiw0MDk2Ci0jIFNVQlRSQUNUIEJBU0UgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0jIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpQUEMgL25vZGVmYXVsdGxpYjoiJChDRU5vRGVmYXVsdExpYikiIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL1NUQUNLOjY1NTM2LDQwOTYKLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZSAvbm9kZWZhdWx0bGliCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMAotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJXQ0VQUENEYmciCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJXQ0VQUENEYmciCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiCi0jIFBST1AgVXNlX01GQyAwCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxCi0jIFBST1AgT3V0cHV0X0RpciAiV0NFUFBDRGJnIgotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIldDRVBQQ0RiZyIKLSMgUFJPUCBUYXJnZXRfRGlyICIiCi1DUFA9Y2xwcGMuZXhlCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NJChDRUNydERlYnVnKSAvVzMgL0dYLSAvWmkgL09kIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EICJERUJVRyIgL0QgIlBQQyIgL0QgIl9QUENfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgIlVOSUNPREUiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJaTElCQ0VfRVhQT1JUUyIgL1lYIC9jCi0jIEFERCBDUFAgL25vbG9nbyAvTSQoQ0VDcnREZWJ1ZykgL1czIC9HWC0gL1ppIC9PZCAvSSAiLi5cLi5cLi5cemxpYiIgL0QgIkRFQlVHIiAvRCAiUFBDIiAvRCAiX1BQQ18iIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENFQ29uZmlnTmFtZSkiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCAiVU5JQ09ERSIgL0QgIl9NQkNTIiAvRCAiWkxJQl9ETEwiIC9jCi0jIFNVQlRSQUNUIENQUCAvWVgKLVJTQz1yYy5leGUKLSMgQUREIEJBU0UgUlNDIC9sIDB4NDExIC9yIC9kICJwcGMiIC9kICJfcHBjXyIgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIiQoQ0VDb25maWdOYW1lKSIgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiREVCVUciCi0jIEFERCBSU0MgL2wgMHg0MTEgL3IgL2QgInBwYyIgL2QgIl9wcGNfIiAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiJChDRUNvbmZpZ05hbWUpIiAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJERUJVRyIKLU1UTD1taWRsLmV4ZQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyCi1CU0MzMj1ic2NtYWtlLmV4ZQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCi0jIEFERCBCU0MzMiAvbm9sb2dvCi1MSU5LMzI9bGluay5leGUKLSMgQUREIEJBU0UgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlBQQyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBCQVNFIExJTkszMiAvcGRiOm5vbmUgL25vZGVmYXVsdGxpYgotIyBBREQgTElOSzMyIGNvbW1jdHJsLmxpYiBjb3JlZGxsLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOlBQQyAvbm9kZWZhdWx0bGliOiIkKENFTm9EZWZhdWx0TGliKSIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvU1RBQ0s6NjU1MzYsNDA5NgotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWIKLQotIUVORElGIAotCi0jIEJlZ2luIFRhcmdldAotCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLSMgTmFtZSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0jIE5hbWUgInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotIyBOYW1lICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0jIEJlZ2luIEdyb3VwICJTb3VyY2UgRmlsZXMiCi0KLSMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiY3BwO2M7Y3h4O3JjO2RlZjtyO29kbDtpZGw7aHBqO2JhdCIKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcYWRsZXIzMi5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfQURMRVI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfQURMRVI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfQURMRVI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9BRExFUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX0FETEVSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfQURMRVI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfQURMRVI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcY29tcHJlc3MuYwotCi0hSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfQ09NUFI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9DT01QUj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX0NPTVBSPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGNyYzMyLmMKLQotIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0NSQzMyPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfQ1JDMzI9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9DUkMzMj1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxkZWZsYXRlLmMKLQotIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0RFRkxBPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfREVGTEE9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9ERUZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGd6aW8uYwotCi0hSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9HWklPX0M9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfR1pJT19DPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX0daSU9fQz1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZibG9jay5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZCTD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkJMPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfSU5GQkw9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZjb2Rlcy5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIERlYnVnIgotCi1ERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfSU5GQ089XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GQ089XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIERlYnVnIgotCi1ERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkNPPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfSU5GQ089XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZDTz1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfSU5GQ089XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRU5ESUYgCi0KLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGluZmZhc3QuYwotCi0hSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgRGVidWciCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZGQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mZmFzdC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgRGVidWciCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GRkE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmZhc3QuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIERlYnVnIgotCi1ERVBfQ1BQX0lORkZBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZmYXN0LmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZsYXRlLmMKLQotIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORkxBPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfSU5GTEE9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZMQT1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZ0cmVlcy5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZUUj1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mZml4ZWQuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX0lORlRSPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZmaXhlZC5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfSU5GVFI9XAotCSIuLlwuLlwuLlx6bGliXGluZmZpeGVkLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcaW5mdXRpbC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9JTkZVVD1cCi0JIi4uXC4uXC4uXHpsaWJcaW5mYmxvY2suaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mY29kZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcaW5mdXRpbC5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX0lORlVUPVwKLQkiLi5cLi5cLi5cemxpYlxpbmZibG9jay5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlxpbmZ1dGlsLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfSU5GVVQ9XAotCSIuLlwuLlwuLlx6bGliXGluZmJsb2NrLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZmNvZGVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXGluZnV0aWwuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlx0cmVlcy5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIFJlbGVhc2UiCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIFJlbGVhc2UiCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBEZWJ1ZyIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9UUkVFUz1cCi0JIi4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oIlwKLQkiLi5cLi5cLi5cemxpYlx0cmVlcy5oIlwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1RSRUVTPVwKLQkiLi5cLi5cLi5cemxpYlxkZWZsYXRlLmgiXAotCSIuLlwuLlwuLlx6bGliXHRyZWVzLmgiXAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfVFJFRVM9XAotCSIuLlwuLlwuLlx6bGliXGRlZmxhdGUuaCJcCi0JIi4uXC4uXC4uXHpsaWJcdHJlZXMuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlx1bmNvbXByLmMKLQotIUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTKSBEZWJ1ZyIKLQotREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDQpIERlYnVnIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIFJlbGVhc2UiCi0KLURFUF9DUFBfVU5DT009XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNIMykgRGVidWciCi0KLURFUF9DUFBfVU5DT009XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgUmVsZWFzZSIKLQotREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgQVJNKSBEZWJ1ZyIKLQotREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBNSVBTRlApIERlYnVnIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIFJlbGVhc2UiCi0KLURFUF9DUFBfVU5DT009XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NikgRGVidWciCi0KLURFUF9DUFBfVU5DT009XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIHg4NmVtKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1VOQ09NPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgRGVidWciCi0KLURFUF9DUFBfVU5DT009XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgUmVsZWFzZSIKLQotREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgUFBDKSBEZWJ1ZyIKLQotREVQX0NQUF9VTkNPTT1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkKLQotIUVORElGIAotCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Llx6bGliY2UuZGVmCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlx6dXRpbC5jCi0KLSFJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgUmVsZWFzZSIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQUykgRGVidWciCi0KLURFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFNINCkgUmVsZWFzZSIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0g0KSBEZWJ1ZyIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgU0gzKSBSZWxlYXNlIgotCi1ERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBTSDMpIERlYnVnIgotCi1ERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBBUk0pIFJlbGVhc2UiCi0KLURFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIEFSTSkgRGVidWciCi0KLURFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIE1JUFNGUCkgUmVsZWFzZSIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgTUlQU0ZQKSBEZWJ1ZyIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2KSBSZWxlYXNlIgotCi1ERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODYpIERlYnVnIgotCi1ERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSB4ODZlbSkgUmVsZWFzZSIKLQotREVQX0NQUF9aVVRJTD1cCi0JIi4uXC4uXC4uXHpsaWJcemNvbmYuaCJcCi0JIi4uXC4uXC4uXHpsaWJcemxpYi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6dXRpbC5oIlwKLQkKLQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gInpsaWJjZSAtIFdpbjMyIChXQ0UgeDg2ZW0pIERlYnVnIgotCi1ERVBfQ1BQX1pVVElMPVwKLQkiLi5cLi5cLi5cemxpYlx6Y29uZi5oIlwKLQkiLi5cLi5cLi5cemxpYlx6bGliLmgiXAotCSIuLlwuLlwuLlx6bGliXHp1dGlsLmgiXAotCQotCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiemxpYmNlIC0gV2luMzIgKFdDRSBQUEMpIFJlbGVhc2UiCi0KLURFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTFNFSUYgICIkKENGRykiID09ICJ6bGliY2UgLSBXaW4zMiAoV0NFIFBQQykgRGVidWciCi0KLURFUF9DUFBfWlVUSUw9XAotCSIuLlwuLlwuLlx6bGliXHpjb25mLmgiXAotCSIuLlwuLlwuLlx6bGliXHpsaWIuaCJcCi0JIi4uXC4uXC4uXHpsaWJcenV0aWwuaCJcCi0JCi0KLSFFTkRJRiAKLQotIyBFbmQgU291cmNlIEZpbGUKLSMgRW5kIEdyb3VwCi0jIEJlZ2luIEdyb3VwICJIZWFkZXIgRmlsZXMiCi0KLSMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubCIKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcZGVmbGF0ZS5oCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZibG9jay5oCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZjb2Rlcy5oCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlxpbmZmYXN0LmgKLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGluZmZpeGVkLmgKLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGluZnRyZWVzLmgKLSMgRW5kIFNvdXJjZSBGaWxlCi0jIEJlZ2luIFNvdXJjZSBGaWxlCi0KLVNPVVJDRT0uLlwuLlwuLlx6bGliXGluZnV0aWwuaAotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcdHJlZXMuaAotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcemNvbmYuaAotIyBFbmQgU291cmNlIEZpbGUKLSMgQmVnaW4gU291cmNlIEZpbGUKLQotU09VUkNFPS4uXC4uXC4uXHpsaWJcemxpYi5oCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBCZWdpbiBTb3VyY2UgRmlsZQotCi1TT1VSQ0U9Li5cLi5cLi5cemxpYlx6dXRpbC5oCi0jIEVuZCBTb3VyY2UgRmlsZQotIyBFbmQgR3JvdXAKLSMgQmVnaW4gR3JvdXAgIlJlc291cmNlIEZpbGVzIgotCi0jIFBST1AgRGVmYXVsdF9GaWx0ZXIgImljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZSIKLSMgRW5kIEdyb3VwCi0jIEVuZCBUYXJnZXQKLSMgRW5kIFByb2plY3QKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuYWl4IGIvc2NyaXB0cy9tYWtlZmlsZS5haXgKaW5kZXggZDQ3NDNkMi4uZDM3YzkzMyAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5haXgKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5haXgKQEAgLTE4LDcgKzE4LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDMuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDMKLVBOR01JTiA9IDEuMi4wYmV0YTMKK1BOR01JTiA9IDEuMi4wYmV0YTQKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogcHJlZml4PS91c3IvbG9jYWwKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuYmVvcyBiL3NjcmlwdHMvbWFrZWZpbGUuYmVvcwppbmRleCAyNzdhOGQzLi4wYTAzNTAzIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmJlb3MKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5iZW9zCkBAIC0xMyw3ICsxMyw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAzLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAzCi1QTkdNSU4gPSAxLjIuMGJldGEzCitQTkdNSU4gPSAxLjIuMGJldGE0CiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIEFMSUdOPQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5jeWd3aW4gYi9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgppbmRleCAzYmZmNDAyLi5mMTBlNjkwIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgorKysgYi9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbgpAQCAtMzgsOSArMzgsOCBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMy4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMwotI1BOR0RMTCA9ICQzIyBtc3ZjCi1QTkdETEwgPSAyIyBjeWd3aW4gMS4yLjBiZXRhMwotUE5HTUlOID0gMS4yLjBiZXRhMworI1BOR0RMTCA9ICQzCitQTkdNSU4gPSAxLjIuMGJldGE0CiBQTkdNSU5fQkFTRSA9IDEuMi4wCiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuZGVjIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKaW5kZXggODIxOWI3MC4uNWRjOGNiMSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5kZWMKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5kZWMKQEAgLTE3LDcgKzE3LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDMuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDMKLVBOR01JTiA9IDEuMi4wYmV0YTMKK1BOR01JTiA9IDEuMi4wYmV0YTQKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogQ0M9Y2MKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXggYi9zY3JpcHRzL21ha2VmaWxlLmdjbW14CmluZGV4IDI5ODEwNzcuLmY4YjllMmUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXgKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5nY21teApAQCAtNTEsNyArNTEsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMy4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMwotUE5HTUlOID0gMS4yLjBiZXRhMworUE5HTUlOID0gMS4yLjBiZXRhNAogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmhwZ2NjIGIvc2NyaXB0cy9tYWtlZmlsZS5ocGdjYwppbmRleCBlMGJmZjgyLi41ZWUzYzhkIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmhwZ2NjCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuaHBnY2MKQEAgLTM0LDcgKzM0LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDMuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDMKLVBOR01JTiA9IDEuMi4wYmV0YTMKK1BOR01JTiA9IDEuMi4wYmV0YTQKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5ocHV4IGIvc2NyaXB0cy9tYWtlZmlsZS5ocHV4CmluZGV4IDIyNjA0NDguLjQxMjk5ODUgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuaHB1eAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmhwdXgKQEAgLTE5LDcgKzE5LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDMuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDMKLVBOR01JTiA9IDEuMi4wYmV0YTMKK1BOR01JTiA9IDEuMi4wYmV0YTQKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogIyB3aGVyZSBtYWtlIGluc3RhbGwgcHV0cyBsaWJwbmcuYSBhbmQgcG5nLmgKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuaWJtYyBiL3NjcmlwdHMvbWFrZWZpbGUuaWJtYwppbmRleCAwZjU5NmMyLi5mMDlhNjJjIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmlibWMKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5pYm1jCkBAIC01LDcgKzUsNyBAQAogIyBOb3RlczoKICMgICBEZXJpdmVkIGZyb20gbWFrZWZpbGUuc3RkCiAjICAgQWxsIG1vZHVsZXMgYXJlIGNvbXBpbGVkIGluIEMgbW9kZQotIyAgIFRlc3RlZCB3aXRoIElCTSBDIDMuNi41IHVuZGVyIFdpbjMyLCBleHBlY3RlZCB0byB3b3JrIHVuZGVyIE9TLzIgdG9vCisjICAgVGVzdGVkIHVuZGVyIFdpbjMyLCBleHBlY3RlZCB0byB3b3JrIHVuZGVyIE9TLzIKICMgICBDYW4gYmUgZWFzaWx5IGFkYXB0ZWQgZm9yIElCTSBWaXN1YWxBZ2UvQysrIGZvciBBSVgKIAogIyBMb2NhdGlvbiBvZiB0aGUgemxpYiBsaWJyYXJ5IGFuZCBpbmNsdWRlIGZpbGVzCkBAIC0xOCw3ICsxOCw3IEBACiBBUiA9IGlsaWIKIFJNID0gZGVsCiAKLUNGTEFHUyA9IC1JJChaTElCSU5DKSAtTzIgLVczCitDRkxBR1MgPSAtSSQoWkxJQklOQykgLU1jIC1PMiAtVzMKIExERkxBR1MgPQogCiAjIEZpbGUgZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5saW51eCBiL3NjcmlwdHMvbWFrZWZpbGUubGludXgKaW5kZXggMzY3YWNlMy4uZDE1MDZmZCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5saW51eAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmxpbnV4CkBAIC0zNCw3ICszNCw3IEBACiAjIHJlYWQgbGlicG5nLnR4dCBvciBwbmcuaCB0byBzZWUgd2h5IFBOR01BSiBpcyAzLiAgWW91IHNob3VsZCBub3QKICMgaGF2ZSB0byBjaGFuZ2UgaXQuCiBQTkdNQUogPSAzCi1QTkdNSU4gPSAxLjIuMGJldGEzCitQTkdNSU4gPSAxLjIuMGJldGE0CiBQTkdWRVIgPSAkKFBOR01BSikuJChQTkdNSU4pCiAKIElOQ1BBVEg9JChwcmVmaXgpL2luY2x1ZGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUubmV0YnNkIGIvc2NyaXB0cy9tYWtlZmlsZS5uZXRic2QKaW5kZXggMDcwZTUzNC4uNWY5OTk3OSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5uZXRic2QKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5uZXRic2QKQEAgLTExLDcgKzExLDcgQEAKIAogTElCPXBuZwogU0hMSUJfTUFKT1I9IDMKLVNITElCX01JTk9SPSAxLjIuMGJldGEzCitTSExJQl9NSU5PUj0gMS4yLjBiZXRhNAogU1JDUz0JcG5nZ2NjcmQuYyBwbmcuYyBwbmdzZXQuYyBwbmdnZXQuYyBwbmdydXRpbC5jIHBuZ3RyYW5zLmMgcG5nd3V0aWwuYyBcCiAJcG5ncmVhZC5jIHBuZ3Jpby5jIHBuZ3dpby5jIHBuZ3dyaXRlLmMgcG5ncnRyYW4uYyBcCiAJcG5nd3RyYW4uYyBwbmdtZW0uYyBwbmdlcnJvci5jIHBuZ3ByZWFkLmMKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuc2NvIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KaW5kZXggMmE4Njk0OC4uOGE0MmU1MiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5zY28KKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KQEAgLTI1LDcgKzI1LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDMuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDMKLVBOR01JTiA9IDEuMi4wYmV0YTMKK1BOR01JTiA9IDEuMi4wYmV0YTQKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5zZ2djYyBiL3NjcmlwdHMvbWFrZWZpbGUuc2dnY2MKaW5kZXggMWZmYTkwNy4uMTA0YTY5YiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5zZ2djYworKysgYi9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjCkBAIC0xMSwxNiArMTEsMjEgQEAKICNaTElCTElCPS4uL3psaWIKICNaTElCSU5DPS4uL3psaWIKIAorIyBBQkkgY2FuIGJlIGJsYW5rIHRvIHVzZSBkZWZhdWx0IGZvciB5b3VyIHN5c3RlbSwgLTMyLCAtbzMyLCAtbjMyLCBvciAtNjQKKyMgU2VlICJtYW4gYWJpIi4gIHpsaWIgbXVzdCBiZSBidWlsdCB3aXRoIHRoZSBzYW1lIEFCSS4KK0FCST0KKwogQ0M9Z2NjCiAKIFdBUk5NT1JFPSAjIC1nIC1EUE5HX0RFQlVHPTUKLUNGTEFHUz0tSSQoWkxJQklOQykgLU8yICQoV0FSTk1PUkUpIC1mUElDIC1tYWJpPW4zMgotIyB6bGliIG11c3QgYWxzbyBiZSBjb21waWxlZCB3aXRoIG4zMgotTERGTEFHUz0tTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KLUxEU0hBUkVEPWdjYyAtc2hhcmVkCitDRkxBR1M9JChBQkkpIC1JJChaTElCSU5DKSAtTzIgJChXQVJOTU9SRSkgLWZQSUMgLW1hYmk9bjMyCitMREZMQUdTPSQoQUJJKSAtTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KK0xEU0hBUkVEPUNDICQoQUJJKSAtc2hhcmVkCiAKLVZFUj0xLjIuMGJldGEzCi1MSUJTPWxpYnBuZy5zby4xLjIuMGJldGEzCitWRVI9MS4yLjBiZXRhNAorIyBTZWUgIm1hbiBkc28iIGZvciBpbmZvIGFib3V0IHNoYXJlZCBvYmplY3RzCitTT05VTT0zCitMSUJTPWxpYnBuZy5zby4kKFNPTlVNKS4kKFZFUikKIFNIQVJFRExJQj1saWJwbmcuc28KIGxpYmRpcj0kKHByZWZpeCkvbGliMzIKIApAQCAtMzksOSArNDQsOSBAQAogCiAkKFNIQVJFRExJQikuJChWRVIpOiAkKE9CSlMpCiAJJChMRFNIQVJFRCkgLW8gJEAgJChPQkpTKQotCXJtIC1mICQoU0hBUkVETElCKSAkKFNIQVJFRExJQikuMQorCXJtIC1mICQoU0hBUkVETElCKSAkKFNIQVJFRExJQikuJChTT05VTSkKIAlsbiAtcyAkQCAkKFNIQVJFRExJQikKLQlsbiAtcyAkQCAkKFNIQVJFRExJQikuMQorCWxuIC1zICRAICQoU0hBUkVETElCKS4kKFNPTlVNKQogCiBwbmd0ZXN0OiBwbmd0ZXN0Lm8gbGlicG5nLmEKIAkkKENDKSAtbyBwbmd0ZXN0ICQoQ0ZMQUdTKSBwbmd0ZXN0Lm8gJChMREZMQUdTKQpAQCAtNjAsOSArNjUsOSBAQAogCWNobW9kIDY0NCAkKHByZWZpeCkvbGliL2xpYnBuZy5hCiAJY3AgJChTSEFSRURMSUIpLiQoVkVSKSAkKGxpYmRpcik7IGNobW9kIDc1NSAkKFNIQVJFRExJQikuJChWRVIpCiAJKGNkICQobGliZGlyKTsgaWYgdGVzdCAtZiAkKFNIQVJFRExJQikuJChWRVIpOyB0aGVuIFwKLQlybSAtZiAkKFNIQVJFRExJQikgJChTSEFSRURMSUIpLjE7IFwKKwlybSAtZiAkKFNIQVJFRExJQikgJChTSEFSRURMSUIpLiQoU09OVU0pOyBcCiAJbG4gLXMgJChTSEFSRURMSUIpLiQoVkVSKSAkKFNIQVJFRExJQik7IFwKLQlsbiAtcyAkKFNIQVJFRExJQikuJChWRVIpICQoU0hBUkVETElCKS4xOyBcCisJbG4gLXMgJChTSEFSRURMSUIpLiQoVkVSKSAkKFNIQVJFRExJQikuJChTT05VTSk7IFwKIAkobGRjb25maWcgfHwgdHJ1ZSkgID4vZGV2L251bGwgMj4mMTsgXAogCWZpKQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNnaSBiL3NjcmlwdHMvbWFrZWZpbGUuc2dpCmluZGV4IGQ3N2Q3NGIuLjUwNWNiZGYgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc2dpCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc2dpCkBAIC03LDcgKzcsNiBAQAogcHJlZml4PS91c3IvbG9jYWwKIAogIyBXaGVyZSB0aGUgemxpYiBsaWJyYXJ5IGFuZCBpbmNsdWRlIGZpbGVzIGFyZSBsb2NhdGVkCi0jIFlvdSBjYW4gYWRkIHRoZSAtbjMyIG9wdGlvbjsgdGhlbiB6bGliIG11c3QgYWxzbyBiZSBjb21waWxlZCB3aXRoIC1uMzIKICNaTElCTElCPS91c3IvbG9jYWwvbGliMzIKICNaTElCSU5DPS91c3IvbG9jYWwvaW5jbHVkZQogI1pMSUJMSUI9L3Vzci9sb2NhbC9saWIKQEAgLTE3LDE2ICsxNiwyMCBAQAogCiBDQz1jYwogCi1XQVJOTU9SRT0tZnVsbHdhcm4KLSMgWW91IGNhbiBhZGQgdGhlIC1uMzIgb3B0aW9uOyB0aGVuIHpsaWIgbXVzdCBhbHNvIGJlIGNvbXBpbGVkIHdpdGggLW4zMgotIyBOb3RlOiAtS1BJQyBpcyB0aGUgZGVmYXVsdCBhbnlob3cKLSNDRkxBR1M9LUkkKFpMSUJJTkMpIC1PICQoV0FSTk1PUkUpIC1LUElDIC1EUE5HX1VTRV9QTkdHQ0NSRCAjIC1nIC1EUE5HX0RFQlVHPTUKLUNGTEFHUz0tSSQoWkxJQklOQykgLU8gJChXQVJOTU9SRSkgLURQTkdfVVNFX1BOR0dDQ1JEIC1EUE5HX05PX0FTU0VNQkxFUl9DT0RFCi1MREZMQUdTPS1MLiAtTCQoWkxJQkxJQikgLWxwbmcgLWx6IC1sbQotTERTSEFSRUQ9Y2MgLXNoYXJlZAorIyBBQkkgY2FuIGJlIGJsYW5rIHRvIHVzZSBkZWZhdWx0IGZvciB5b3VyIHN5c3RlbSwgLTMyLCAtbzMyLCAtbjMyLCBvciAtNjQKKyMgU2VlICJtYW4gYWJpIi4gIHpsaWIgbXVzdCBiZSBidWlsdCB3aXRoIHRoZSBzYW1lIEFCSS4KK0FCST0KIAotVkVSPTEuMi4wYmV0YTMKLVNPTlVNPTIKK1dBUk5NT1JFPS1mdWxsd2FybgorIyBOb3RlOiAtS1BJQyBpcyB0aGUgZGVmYXVsdCBhbnlob3cKKyNDRkxBR1M9ICQoQUJJKSAtSSQoWkxJQklOQykgLU8gJChXQVJOTU9SRSkgLUtQSUMgLURQTkdfVVNFX1BOR0dDQ1JEICMgLWcgLURQTkdfREVCVUc9NQorQ0ZMQUdTPSQoQUJJKSAtSSQoWkxJQklOQykgLU8gJChXQVJOTU9SRSkgLURQTkdfVVNFX1BOR0dDQ1JEIC1EUE5HX05PX0FTU0VNQkxFUl9DT0RFCitMREZMQUdTPSQoQUJJKSAtTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KK0xEU0hBUkVEPWNjICQoQUJJKSAtc2hhcmVkCisKK1ZFUj0xLjIuMGJldGE0CisjIFNlZSAibWFuIGRzbyIgZm9yIGluZm8gYWJvdXQgc2hhcmVkIG9iamVjdHMKK1NPTlVNPTMKIFNIQVJFRExJQj1saWJwbmcuc28KIGxpYmRpcj0kKHByZWZpeCkKICNsaWJkaXI9JChwcmVmaXgpL2xpYjMyCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNvbGFyaXMgYi9zY3JpcHRzL21ha2VmaWxlLnNvbGFyaXMKaW5kZXggODhlZmVlYi4uZGI2MDRjMiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc29sYXJpcwpAQCAtMzEsNyArMzEsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMy4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMwotUE5HTUlOID0gMS4yLjBiZXRhMworUE5HTUlOID0gMS4yLjBiZXRhNAogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL3BuZ2RlZi5wYXMgYi9zY3JpcHRzL3BuZ2RlZi5wYXMKaW5kZXggNjVmNjM3Ni4uMDU5YWNkOCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9wbmdkZWYucGFzCisrKyBiL3NjcmlwdHMvcG5nZGVmLnBhcwpAQCAtNyw3ICs3LDcgQEAKIGludGVyZmFjZQogCiBjb25zdAotICBQTkdfTElCUE5HX1ZFUl9TVFJJTkcgPSAnMS4yLjBiZXRhMyc7CisgIFBOR19MSUJQTkdfVkVSX1NUUklORyA9ICcxLjIuMGJldGE0JzsKICAgUE5HX0xJQlBOR19WRVIgICAgICAgID0gIDEwMjAwOwogCiB0eXBlCmRpZmYgLS1naXQgYS9zY3JpcHRzL3BuZ29zMi5kZWYgYi9zY3JpcHRzL3BuZ29zMi5kZWYKaW5kZXggNjJiMzkwOC4uMDA3ODhlOSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9wbmdvczIuZGVmCisrKyBiL3NjcmlwdHMvcG5nb3MyLmRlZgpAQCAtMiw3ICsyLDcgQEAKIDsgUE5HLkxJQiBtb2R1bGUgZGVmaW5pdGlvbiBmaWxlIGZvciBPUy8yCiA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi07IFZlcnNpb24gMS4yLjBiZXRhMworOyBWZXJzaW9uIDEuMi4wYmV0YTQKIAogTElCUkFSWQkJUE5HCiBERVNDUklQVElPTgkiUE5HIGltYWdlIGNvbXByZXNzaW9uIGxpYnJhcnkgZm9yIE9TLzIiCg==