ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dCBiL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dAppbmRleCA4YjdkNmFjLi5jYjhmZjQxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKKysrIGIvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmZpbGV0eXBlLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNDAxLDcgKzQwMSw3IEBACiBHbG9iYWwgbWFwcGluZ3M6CiAJCQlOT1RFOiBUaGUgZ2xvYmFsIG1hcHBpbmdzIGFyZSBhY2Nlc3NlZCBieSBzb3VyY2luZyB0aGUKIAkJCWZ0cGx1Z2luL2NoYW5nZWxvZy52aW0gZmlsZSBmaXJzdCwgZS5nLiB3aXRoID4KLQkJCQlydW50aW1lIGZ0cGx1Z2luL21hbi52aW0KKwkJCQlydW50aW1lIGZ0cGx1Z2luL2NoYW5nZWxvZy52aW0KIDwJCQlpbiB5b3VyIHwudmltcmN8LgogPExlYWRlcj5vCQlTd2l0Y2hlcyB0byB0aGUgQ2hhbmdlTG9nIGJ1ZmZlciBvcGVuZWQgZm9yIHRoZQogCQkJY3VycmVudCBkaXJlY3RvcnksIG9yIG9wZW5zIGl0IGluIGEgbmV3IGJ1ZmZlciBpZiBpdApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3BlbGwudHh0IGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CmluZGV4IDJhODU5YTkuLjI5MWEzZDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjMKKypzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02NDUsNyArNjQ1LDExIEBACiBhbiBlcnJvciBtZXNzYWdlIGlmIGl0J3Mgbm90IHRoZXJlLiAgKkU3NjAqCiAKIFdoYXQgZm9sbG93cyBpcyBvbmUgd29yZCBwZXIgbGluZS4gIFRoZXJlIHNob3VsZCBiZSBubyB3aGl0ZSBzcGFjZSBiZWZvcmUgb3IKLWFmdGVyIHRoZSB3b3JkLgorYWZ0ZXIgdGhlIHdvcmQuICBBZnRlciB0aGUgd29yZCB0aGVyZSBpcyBhbiBvcHRpb25hbCBzbGFzaCBhbmQgZmxhZ3MuICBNb3N0IG9mCit0aGVzZSBmbGFncyBhcmUgbGV0dGVycyB0aGF0IGluZGljYXRlIHRoZSBhZmZpeGVzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGlzCit3b3JkLiAgVGhlc2UgYXJlIHNwZWNpZmllZCB3aXRoIFNGWCBhbmQgUEZYIGxpbmVzIGluIHRoZSAuYWZmIGZpbGUuICBTZWUgdGhlCitNeXNwZWxsIGRvY3VtZW50YXRpb24uICBWaW0gYWxsb3dzIHVzaW5nIG90aGVyIGZsYWcgdHlwZXMgd2l0aCB0aGUgRkxBRyBpdGVtCitpbiB0aGUgYWZmaXggZmlsZSB8c3BlbGwtRkxBR3wuCiAKIFdoZW4gdGhlIHdvcmQgb25seSBoYXMgbG93ZXItY2FzZSBsZXR0ZXJzIGl0IHdpbGwgYWxzbyBtYXRjaCB3aXRoIHRoZSB3b3JkCiBzdGFydGluZyB3aXRoIGFuIHVwcGVyLWNhc2UgbGV0dGVyLgpAQCAtNjcxLDExICs2NzUsNiBAQAogd2hlbiBpdCBhcHBlYXJzIHdpdGggYSBub24td29yZCBjaGFyYWN0ZXIgYmVmb3JlIGFuZCBhZnRlciBpdC4gIEZvciBNeXNwZWxsIGEKIHdvcmQgc3RhcnRpbmcgd2l0aCBhIG5vbi13b3JkIGNoYXJhY3RlciBwcm9iYWJseSB3b24ndCB3b3JrLgogCi1BZnRlciB0aGUgd29yZCB0aGVyZSBpcyBhbiBvcHRpb25hbCBzbGFzaCBhbmQgZmxhZ3MuICBNb3N0IG9mIHRoZXNlIGZsYWdzIGFyZQotbGV0dGVycyB0aGF0IGluZGljYXRlIHRoZSBhZmZpeGVzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGlzIHdvcmQuICBUaGVzZSBhcmUKLXNwZWNpZmllZCB3aXRoIFNGWCBhbmQgUEZYIGxpbmVzIGluIHRoZSAuYWZmIGZpbGUuICBTZWUgdGhlIE15c3BlbGwKLWRvY3VtZW50YXRpb24uCi0KIEluIGxpbmUgMTIgdGhlIHdvcmQgIlRDUC9JUCIgaXMgZGVmaW5lZC4gIFNpbmNlIHRoZSBzbGFzaCBoYXMgYSBzcGVjaWFsCiBtZWFuaW5nIHRoZSBjb21tYSBpcyB1c2VkIGluc3RlYWQuICBUaGlzIGlzIGRlZmluZWQgd2l0aCB0aGUgU0xBU0ggaXRlbSBpbiB0aGUKIGFmZml4IGZpbGUsIHNlZSB8c3BlbGwtU0xBU0h8LiAgTm90ZSB0aGF0IHdpdGhvdXQgdGhpcyBTTEFTSCBpdGVtIHRoZQpAQCAtNzY3LDYgKzc2NiwyOSBAQAogCU1JRFdPUkQJJy0gfgogCiAKK0ZMQUcgVFlQRVMJCQkJCQkqc3BlbGwtRkxBRyoKKworRmxhZ3MgYXJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgYWZmaXhlcyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggYSB3b3JkIGFuZCBmb3IKK290aGVyIHByb3BlcnRpZXMgb2YgdGhlIHdvcmQuICBOb3JtYWxseSBzaW5nbGUtY2hhcmFjdGVyIGZsYWdzIGFyZSB1c2VkLiAgVGhpcworbGltaXRzIHRoZSBudW1iZXIgb2YgcG9zc2libGUgZmxhZ3MsIGVzcGVjaWFsbHkgZm9yIDgtYml0IGVuY29kaW5ncy4gIFRoZSBGTEFHCitpdGVtIGNhbiBiZSB1c2VkIGlmIG1vcmUgYWZmaXhlcyBhcmUgdG8gYmUgdXNlZC4gIFBvc3NpYmxlIHZhbHVlczoKKworCUZMQUcgbG9uZwl1c2UgdHdvLWNoYXJhY3RlciBmbGFncworCUZMQUcgbnVtCXVzZSBudW1iZXJzLCBmcm9tIDEgdXAgdG8gNjUwMDAKKwlGTEFHIGh1aAl1c2Ugb25lLWNoYXJhY3RlciBmbGFncyB3aXRob3V0IEEtWiBhbmQgdHdvLWNoYXJhY3RlcgorCQkJZmxhZ3MgdGhhdCBzdGFydCB3aXRoIEEtWgorCitXaXRoICJGTEFHIG51bSIgdGhlIG51bWJlcnMgaW4gYSBsaXN0IG9mIGFmZml4ZXMgbmVlZCB0byBiZSBzZXBhcmF0ZWQgd2l0aCBhCitjb21tYTogIjIzNCwyMTQzLDE0MzUiLiAgVGhpcyBtZXRob2QgaXMgaW5lZmZpY2llbnQsIGJ1dCB1c2VmdWwgaWYgdGhlIGZpbGUgaXMKK2dlbmVyYXRlZCB3aXRoIGEgcHJvZ3JhbS4KKworV2hlbiB1c2luZyAiaHVoIiB0aGUgdHdvLWNoYXJhY3RlciBmbGFncyBhbGwgc3RhcnQgd2l0aCBhIGNhcGl0YWw6ICJBYSIsICJCMSIsCisiQkIiLCBldGMuICBUaGlzIGlzIHVzZWZ1bCB0byB1c2Ugb25lLWNoYXJhY3RlciBmbGFncyBmb3IgdGhlIG1vc3QgY29tbW9uCitpdGVtcyBhbmQgdHdvLWNoYXJhY3RlciBmbGFncyBmb3IgdW5jb21tb24gaXRlbXMuCisKK05vdGU6IFdoZW4gdXNpbmcgdXRmLTggb25seSBjaGFyYWN0ZXJzIHVwIHRvIDY1MDAwIG1heSBiZSB1c2VkIGZvciBmbGFncy4KKworCiBBRkZJWEVTCiAJCQkJCSAgICAqc3BlbGwtUEZYKiAqc3BlbGwtU0ZYKgogVGhlIHVzdWFsIFBGWCAocHJlZml4KSBhbmQgU0ZYIChzdWZmaXgpIGxpbmVzIGFyZSBzdXBwb3J0ZWQgKHNlZSB0aGUgTXlzcGVsbApAQCAtMTA2NSw3ICsxMDg3LDkgQEAKIAlSRVAgayBjaCB+CiAJUkVQIGNoIGsgfgogCi1UaGUgZmlyc3QgbGluZSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBSRVAgbGluZXMgZm9sbG93aW5nLiAgVmltIGlnbm9yZXMgaXQuCitUaGUgZmlyc3QgbGluZSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBSRVAgbGluZXMgZm9sbG93aW5nLiAgVmltIGlnbm9yZXMgdGhlCitudW1iZXIsIGJ1dCBpdCBtdXN0IGJlIHRoZXJlLgorCiBEb24ndCBpbmNsdWRlIHNpbXBsZSBvbmUtY2hhcmFjdGVyIHJlcGxhY2VtZW50cyBvciBzd2Fwcy4gIFZpbSB3aWxsIHRyeSB0aGVzZQogYW55d2F5LiAgWW91IGNhbiBpbmNsdWRlIHdob2xlIHdvcmRzIGlmIHlvdSB3YW50IHRvLCBidXQgeW91IG1pZ2h0IHdhbnQgdG8gdXNlCiB0aGUgImZpbGU6IiBpdGVtIGluICdzcGVsbHN1Z2dlc3QnIGluc3RlYWQuCkBAIC0xMDgxLDcgKzExMDUsOCBAQAogCU1BUCBl6evq6CB+CiAJTUFQIHX8+fr7IH4KIAotVGhlIGZpcnN0IGxpbmUgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgTUFQIGxpbmVzIGZvbGxvd2luZy4gIFZpbSBpZ25vcmVzIGl0LgorVGhlIGZpcnN0IGxpbmUgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgTUFQIGxpbmVzIGZvbGxvd2luZy4gIFZpbSBpZ25vcmVzIHRoZQorbnVtYmVyLCBidXQgdGhlIGxpbmUgbXVzdCBiZSB0aGVyZS4KIAogRWFjaCBsZXR0ZXIgbXVzdCBhcHBlYXIgaW4gb25seSBvbmUgb2YgdGhlIE1BUCBpdGVtcy4gIEl0J3MgYSBiaXQgbW9yZQogZWZmaWNpZW50IGlmIHRoZSBmaXJzdCBsZXR0ZXIgaXMgQVNDSUkgb3IgYXQgbGVhc3Qgb25lIHdpdGhvdXQgYWNjZW50cy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IGYxOGNlMjQuLjc0ZDE3N2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtNjM4OSwzNSArNjM4OSwzNiBAQAogc3BlY2lhbC1idWZmZXJzCXdpbmRvd3MudHh0CS8qc3BlY2lhbC1idWZmZXJzKgogc3BlZWQtdXAJdGlwcy50eHQJLypzcGVlZC11cCoKIHNwZWxsCXNwZWxsLnR4dAkvKnNwZWxsKgorc3BlbGwtQkFECXNwZWxsLnR4dAkvKnNwZWxsLUJBRCoKIHNwZWxsLUNNUAlzcGVsbC50eHQJLypzcGVsbC1DTVAqCiBzcGVsbC1DT01QT1VOREZMQUcJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRGTEFHKgogc3BlbGwtQ09NUE9VTkRGTEFHUwlzcGVsbC50eHQJLypzcGVsbC1DT01QT1VOREZMQUdTKgogc3BlbGwtQ09NUE9VTkRNQVgJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRNQVgqCiBzcGVsbC1DT01QT1VORE1JTglzcGVsbC50eHQJLypzcGVsbC1DT01QT1VORE1JTioKIHNwZWxsLUNPTVBPVU5EU1lMTUFYCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5EU1lMTUFYKgorc3BlbGwtRk9MCXNwZWxsLnR4dAkvKnNwZWxsLUZPTCoKK3NwZWxsLUtFUAlzcGVsbC50eHQJLypzcGVsbC1LRVAqCitzcGVsbC1MT1cJc3BlbGwudHh0CS8qc3BlbGwtTE9XKgorc3BlbGwtTUFQCXNwZWxsLnR4dAkvKnNwZWxsLU1BUCoKK3NwZWxsLU5FRURBRkZJWAlzcGVsbC50eHQJLypzcGVsbC1ORUVEQUZGSVgqCitzcGVsbC1OT0JSRUFLCXNwZWxsLnR4dAkvKnNwZWxsLU5PQlJFQUsqCitzcGVsbC1QRlgJc3BlbGwudHh0CS8qc3BlbGwtUEZYKgorc3BlbGwtUEZYUE9TVFBPTkUJc3BlbGwudHh0CS8qc3BlbGwtUEZYUE9TVFBPTkUqCitzcGVsbC1SQVIJc3BlbGwudHh0CS8qc3BlbGwtUkFSKgorc3BlbGwtUkVQCXNwZWxsLnR4dAkvKnNwZWxsLVJFUCoKK3NwZWxsLVNBTAlzcGVsbC50eHQJLypzcGVsbC1TQUwqCitzcGVsbC1TRlgJc3BlbGwudHh0CS8qc3BlbGwtU0ZYKgorc3BlbGwtU0xBU0gJc3BlbGwudHh0CS8qc3BlbGwtU0xBU0gqCitzcGVsbC1TT0ZPRlJPTQlzcGVsbC50eHQJLypzcGVsbC1TT0ZPRlJPTSoKK3NwZWxsLVNPRk9UTwlzcGVsbC50eHQJLypzcGVsbC1TT0ZPVE8qCiBzcGVsbC1TWUxMQUJMRQlzcGVsbC50eHQJLypzcGVsbC1TWUxMQUJMRSoKLXNwZWxsLWFmZml4LUJBRAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1CQUQqCi1zcGVsbC1hZmZpeC1GT0wJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtRk9MKgotc3BlbGwtYWZmaXgtS0VQCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LUtFUCoKLXNwZWxsLWFmZml4LUxPVwlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1MT1cqCi1zcGVsbC1hZmZpeC1NQVAJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtTUFQKgotc3BlbGwtYWZmaXgtTkVFREFGRklYCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LU5FRURBRkZJWCoKLXNwZWxsLWFmZml4LVBGWAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1QRlgqCi1zcGVsbC1hZmZpeC1QRlhQT1NUUE9ORQlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1QRlhQT1NUUE9ORSoKLXNwZWxsLWFmZml4LVJBUglzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1SQVIqCi1zcGVsbC1hZmZpeC1SRVAJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtUkVQKgotc3BlbGwtYWZmaXgtU0FMCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LVNBTCoKLXNwZWxsLWFmZml4LVNGWAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1TRlgqCi1zcGVsbC1hZmZpeC1TTEFTSAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1TTEFTSCoKLXNwZWxsLWFmZml4LVNPRk9GUk9NCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LVNPRk9GUk9NKgotc3BlbGwtYWZmaXgtU09GT1RPCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LVNPRk9UTyoKLXNwZWxsLWFmZml4LVVQUAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1VUFAqCitzcGVsbC1VUFAJc3BlbGwudHh0CS8qc3BlbGwtVVBQKgogc3BlbGwtYWZmaXgtY2hhcnMJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtY2hhcnMqCi1zcGVsbC1hZmZpeC1jb21wb3VuZAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1jb21wb3VuZCoKIHNwZWxsLWFmZml4LW1ieXRlCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LW1ieXRlKgogc3BlbGwtYWZmaXgtbm9jb21wCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LW5vY29tcCoKIHNwZWxsLWFmZml4LXJhcmUJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtcmFyZSoKIHNwZWxsLWFmZml4LXZpbQlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC12aW0qCitzcGVsbC1jb21wb3VuZAlzcGVsbC50eHQJLypzcGVsbC1jb21wb3VuZCoKIHNwZWxsLWRpYy1mb3JtYXQJc3BlbGwudHh0CS8qc3BlbGwtZGljLWZvcm1hdCoKIHNwZWxsLWRvdWJsZS1zY29yaW5nCXNwZWxsLnR4dAkvKnNwZWxsLWRvdWJsZS1zY29yaW5nKgogc3BlbGwtZmlsZS1mb3JtYXQJc3BlbGwudHh0CS8qc3BlbGwtZmlsZS1mb3JtYXQqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IDEwZDA4YzcuLjIxZDc5MjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyMworKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMSwxMyArMzEsMTIgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBTcGVsbGluZzoKLS0gU3VwcG9ydCBmbGFncyBvZiB0d28gY2hhcmFjdGVycywgbnVtYmVycyAoY29tbWEgc2VwYXJhdGVkKSBhbmQgSFVICi0gIGZsYWdzOiBbXkEtWl0sIEFbXkEtWl0sIC4uLiwgWlteQS1aXT8KLSAgICBGTEFHIGxvbmcKLSAgICBGTEFHIG51bQotICAgIEZMQUcgbWl4Ci0gIFByb2JsZW06IHJvb20gaW4gaWR4c1tdLiAgTmVlZCB0byB0cmFuc2xhdGUgZmxhZ3MgZm9yIHBvc3Rwb25lZCBwcmVmaXhlcyBhbmQKLSAgY29tcG91bmQgd29yZHMsIHRoZXNlIGNhbiBvbmx5IGJlIDI1NS4KKy0gQnVnOiB3aXRoICdub3dyYXAnIHNwZWxsIGNoZWNraW5nIG1heSBzdGFydCBoYWxmd2F5IGEgd29yZC4KKworLSBVc2UgJ3dyYXBzY2FuJyBmb3IgIltzIiBhbmQgIl1zIj8KKworLSBDaGVjayBzdXBwb3J0IG9mIGZsYWdzIG9mIHR3byBjaGFyYWN0ZXJzLCBudW1iZXJzIChjb21tYSBzZXBhcmF0ZWQpIGFuZCBIVUguCisgIFdoZW4gdXNpbmcgbWFueSBjb21wb3VuZCBmbGFncywgZG9lcyByZWdleHAgc3RpbGwgd29yaz8KIAogLSBDb21wb3VuZCB3b3JkIGlzIGFjY2VwdGVkIGlmIG5yIG9mIHdvcmRzIGlzIDw9IENPTVBPVU5ETUFYIE9SIG5yIG9mCiAgIHN5bGxhYmxlcyA8PSBDT01QT1VORFNZTE1BWC4gIFNwZWNpZnkgQU5EIGluIHRoZSBhZmZpeCBmaWxlPwpAQCAtNTIxLDYgKzUyMCw5IEBACiA4ICAgR1RLIDI6IENvbWJpbmluZyBVVEYtOCBjaGFyYWN0ZXJzIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgaW4gbWVudXMgKE1pa29sYWoKICAgICBNYWNob3dza2kpICBUaGV5IGFyZSBkaXNwbGF5ZWQgYXMgc2VwYXJhdGUgY2hhcmFjdGVycy4gIFByb2JsZW0gaW4KICAgICBjcmVhdGluZyBhIGxhYmVsPworOCAgIEdUSyAyOiBDb21iaW5pbmcgVVRGLTggY2hhcmFjdGVycyBhcmUgc29tZXRpbWVzIG5vdCBkcmF3biBwcm9wZXJseS4KKyAgICBEZXBlbmRzIG9uIHRoZSBmb250IHNpemUsICJtb25vc3BhY2UgMTMiIGhhcyB0aGUgcHJvYmxlbS4gIFZpbSBzZWVtcyB0byBkbworICAgIGV2ZXJ5dGhpbmcgcmlnaHQsIG11c3QgYmUgYSBHVEsgYnVnLiAgSXMgdGhlcmUgYSB3YXkgdG8gd29yayBhcm91bmQgaXQ/CiA5ICAgQ2FuJ3QgcGFzdGUgYSBWaXN1YWwgc2VsZWN0aW9uIGZyb20gR1RLLWd2aW0gdG8gdmltIGluIHh0ZXJtIG9yIE1vdGlmIGd2aW0KICAgICB3aGVuIGl0IGlzIGxvbmdlciB0aGFuIDQwMDAgY2hhcmFjdGVycy4gIFdvcmtzIE9LIGZyb20gZ3ZpbSB0byBndmltIGFuZAogICAgIHZpbSB0byB2aW0uICBQYXN0aW5nIHRocm91Z2ggeHRlcm0gKHVzaW5nIHRoZSBzaGlmdCBrZXkpIGFsc28gd29ya3MuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggY2ZjMWIxNS4uZjExNTllNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjMKKyp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTEzMDQsNCArMTMwNCw3IEBACiB3aGlsZSBpdCB3YXMgYmVpbmcgdXNlZCwgcmVzdWx0aW5nIGluIGEgY3Jhc2guICBOb3cgZG9uJ3QgY2xlYXIgc3ludGF4CiBoaWdobGlnaHRpbmcsIGRpc2FibGUgaXQgd2l0aCBiX3N5bl9lcnJvci4KIAorV2luMzI6IENvbWJpbmluZyBVVEYtOCBjaGFyYWN0ZXJzIHdlcmUgZHJhd24gb24gdGhlIHByZXZpb3VzIGNoYXJhY3Rlci4KK0NvdWxkIGJlIG5vdGljZWQgd2l0aCBhIFRoYWkgZm9udC4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZmlsZXR5cGUudmltIGIvcnVudGltZS9maWxldHlwZS52aW0KaW5kZXggNTE3MjMyMi4uNTVjZDAyZCAxMDA2NDQKLS0tIGEvcnVudGltZS9maWxldHlwZS52aW0KKysrIGIvcnVudGltZS9maWxldHlwZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gZGV0ZWN0IGZpbGUgdHlwZXMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDUgQXVnIDE3CisiIExhc3QgQ2hhbmdlOgkyMDA1IEF1ZyAyNAogCiAiIExpc3RlbiB2ZXJ5IGNhcmVmdWxseSwgSSB3aWxsIHNheSB0aGlzIG9ubHkgb25jZQogaWYgZXhpc3RzKCJkaWRfbG9hZF9maWxldHlwZXMiKQpAQCAtNjI5LDggKzYyOSw4IEBACiAiIFRpbGRlIChtdXN0IGJlIGJlZm9yZSBIVE1MKQogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoudC5odG1sCQkJc2V0ZiB0aWxkZQogCi0iIEhUTUwgKC5zaHRtbCBhbmQgLnN0bSBmb3Igc2VydmVyIHNpZGUsIC5yaHRtbCBmb3IgUnVieSBodG1sKQotYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHRtbCwqLmh0bSwqLnNodG1sLCoucmh0bWwsKi5zdG0gIGNhbGwgczpGVGh0bWwoKQorIiBIVE1MICguc2h0bWwgYW5kIC5zdG0gZm9yIHNlcnZlciBzaWRlKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHRtbCwqLmh0bSwqLnNodG1sLCouc3RtICBjYWxsIHM6RlRodG1sKCkKIAogIiBEaXN0aW5ndWlzaCBiZXR3ZWVuIEhUTUwgYW5kIFhIVE1MCiBmdW4hIHM6RlRodG1sKCkKQEAgLTY0NSw2ICs2NDUsOCBAQAogICBzZXRmIGh0bWwKIGVuZGZ1bgogCisiIEhUTUwgd2l0aCBSdWJ5IC0gZVJ1YnkKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnJodG1sCQkJc2V0ZiBlcnVieQogCiAiIEhUTUwgd2l0aCBNNAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaHRtbC5tNAkJCXNldGYgaHRtbG00CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9lcnVieS52aW0gYi9ydW50aW1lL3N5bnRheC9lcnVieS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODViM2NmYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2VydWJ5LnZpbQpAQCAtMCwwICsxLDYyIEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZToJZVJ1YnkKKyIgTWFpbnRhaW5lcjoJRG91ZyBLZWFybnMgPGRqa2VhMiBhdCBndXMuZ3NjaXQubW9uYXNoLmVkdS5hdT4KKyIgSW5mbzoJCSRJZCQKKyIgVVJMOgkJaHR0cDovL3ZpbS1ydWJ5LnNvdXJjZWZvcmdlLm5ldAorIiBBbm9uIENWUzoJU2VlIGFib3ZlIHNpdGUKKyIgTGljZW5jZToJR1BMIChodHRwOi8vd3d3LmdudS5vcmcpCisiIERpc2NsYWltZXI6CisiICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisiICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitpZiAhZXhpc3RzKCJtYWluX3N5bnRheCIpCisgIGxldCBtYWluX3N5bnRheCA9ICdlcnVieScKK2VuZGlmCisKK2lmIHZlcnNpb24gPCA2MDAKKyAgc28gPHNmaWxlPjpwOmgvaHRtbC52aW0KKyAgc3luIGluY2x1ZGUgQHJ1YnlUb3AgPHNmaWxlPjpwOmgvcnVieS52aW0KK2Vsc2UKKyAgcnVudGltZSEgc3ludGF4L2h0bWwudmltCisgIHVubGV0IGI6Y3VycmVudF9zeW50YXgKKyAgc3luIGluY2x1ZGUgQHJ1YnlUb3Agc3ludGF4L3J1YnkudmltCitlbmRpZgorCitzeW4gcmVnaW9uIGVydWJ5T25lTGluZXIgbWF0Y2hncm91cD1lcnVieURlbGltaXRlciBzdGFydD0iXlxzKlx6cyUiIGVuZD0iJCIgIGNvbnRhaW5zPUBydWJ5VG9wLGVydWJ5RGVsaW1pdGVyIGtlZXBlbmQKK3N5biByZWdpb24gZXJ1YnlCbG9jayAgICBtYXRjaGdyb3VwPWVydWJ5RGVsaW1pdGVyIHN0YXJ0PSI8JT1cPSIgICAgZW5kPSIlPiIgY29udGFpbnM9QHJ1YnlUb3AgY29udGFpbmVkaW49QUxMQlVULGVydWJ5Q29tbWVudCBrZWVwZW5kIAorc3luIHJlZ2lvbiBlcnVieUNvbW1lbnQgIG1hdGNoZ3JvdXA9ZXJ1YnlEZWxpbWl0ZXIgc3RhcnQ9IjwlIyIgICAgICBlbmQ9IiU+IiBrZWVwZW5kCisKKyIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoraWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2VydWJ5X3N5bnRheF9pbml0cyIpCisgIGlmIHZlcnNpb24gPCA1MDgKKyAgICBsZXQgZGlkX3J1Ynlfc3ludGF4X2luaXRzID0gMQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CisgIGVsc2UKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KKyAgZW5kaWYKKworICBIaUxpbmsgZXJ1YnlEZWxpbWl0ZXIJCURlbGltaXRlcgorICBIaUxpbmsgZXJ1YnlDb21tZW50CQlDb21tZW50CisKKyAgZGVsY29tbWFuZCBIaUxpbmsKK2VuZGlmCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJlcnVieSIKKworaWYgbWFpbl9zeW50YXggPT0gJ2VydWJ5JworICB1bmxldCBtYWluX3N5bnRheAorZW5kaWYKKworIiB2aW06IHN3PTIgc3RzPTIgdHM9OCBmZj11bml4IG5vd3JhcDoKZGlmZiAtLWdpdCBhL3NyYy9jaGFyc2V0LmMgYi9zcmMvY2hhcnNldC5jCmluZGV4IGM3Njk0ODYuLjE5ZjIwMmEgMTAwNjQ0Ci0tLSBhL3NyYy9jaGFyc2V0LmMKKysrIGIvc3JjL2NoYXJzZXQuYwpAQCAtMTU0Miw5ICsxNTQyLDkgQEAKICNkZWZpbmUgTEFUSU4xVVBQRVIgJ1UnCiAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdJV8nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/ICovCi1zdGF0aWMgY2hhcl91IGxhdGluMWZsYWdzWzI1Nl0gPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVSAgICAgIGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUgVVVVVVVVVWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCBsbGxsbGxsbCI7Ci1zdGF0aWMgY2hhcl91IGxhdGluMXVwcGVyWzI1Nl0gPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW99jZ2tvc3d7/IjsKLXN0YXRpYyBjaGFyX3UgbGF0aW4xbG93ZXJbMjU2XSA9ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX21/j5+vv8/f7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8iOworc3RhdGljIGNoYXJfdSBsYXRpbjFmbGFnc1syNTddID0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUgICAgICBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVIFVVVVVVVVVsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgbGxsbGxsbGwiOworc3RhdGljIGNoYXJfdSBsYXRpbjF1cHBlclsyNTddID0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlae3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/AwcLDxMXGx8jJysvMzc7P0NHS09TV1vfY2drb3N3e/yI7CitzdGF0aWMgY2hhcl91IGxhdGluMWxvd2VyWzI1N10gPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19tf4+fr7/P3+3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/IjsKIAogICAgIGludAogdmltX2lzbG93ZXIoYykKZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IDk2ZWJlNzEuLmIzMTE3N2MgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtMTM3LDYgKzEzNyw3IEBACiAjaWZkZWYgRkVBVF9TWU5fSEwKIHN0YXRpYyB2b2lkIGNoZWNrX3NwZWxsX3JlZHJhdyBfX0FSR1MoKHZvaWQpKTsKIHN0YXRpYyB2b2lkIHNwZWxsX2JhY2tfdG9fYmFkd29yZCBfX0FSR1MoKHZvaWQpKTsKK3N0YXRpYyBpbnQgIHNwZWxsX2JhZF9sZW4gPSAwOwkvKiBsZW5ndGggb2YgbG9jYXRlZCBiYWQgd29yZCAqLwogI2VuZGlmCiBzdGF0aWMgdm9pZCBzdG9wX2luc2VydCBfX0FSR1MoKHBvc19UICplbmRfaW5zZXJ0X3BvcywgaW50IGVzYykpOwogc3RhdGljIGludCAgZWNoZWNrX2FiYnIgX19BUkdTKChpbnQpKTsKQEAgLTM1MzYsOCArMzUzNywxMSBAQAogCWVsc2UgaWYgKGN0cmxfeF9tb2RlID09IENUUkxfWF9TUEVMTCkKIAl7CiAjaWZkZWYgRkVBVF9TWU5fSEwKLQkgICAgY29tcGxfY29sID0gc3BlbGxfd29yZF9zdGFydChzdGFydGNvbCk7Ci0JICAgIGlmIChjb21wbF9jb2wgPT0gKGNvbG5yX1Qpc3RhcnRjb2wpCisJICAgIGlmIChzcGVsbF9iYWRfbGVuID4gMCkKKwkJY29tcGxfY29sID0gY3Vyc19jb2wgLSBzcGVsbF9iYWRfbGVuOworCSAgICBlbHNlCisJCWNvbXBsX2NvbCA9IHNwZWxsX3dvcmRfc3RhcnQoc3RhcnRjb2wpOworCSAgICBpZiAoY29tcGxfY29sID49IChjb2xucl9UKXN0YXJ0Y29sKQogCQlyZXR1cm4gRkFJTDsKIAkgICAgY29tcGxfbGVuZ3RoID0gKGludCljdXJzX2NvbCAtIGNvbXBsX2NvbDsKIAkgICAgY29tcGxfcGF0dGVybiA9IHZpbV9zdHJuc2F2ZShsaW5lICsgY29tcGxfY29sLCBjb21wbF9sZW5ndGgpOwpAQCAtNDgwNiw3ICs0ODEwLDcgQEAKIHsKICAgICBwb3NfVAl0cG9zID0gY3Vyd2luLT53X2N1cnNvcjsKIAotICAgIHNwZWxsX21vdmVfdG8oQkFDS1dBUkQsIFRSVUUsIFRSVUUpOworICAgIHNwZWxsX2JhZF9sZW4gPSBzcGVsbF9tb3ZlX3RvKEJBQ0tXQVJELCBUUlVFLCBUUlVFKTsKICAgICBpZiAoY3Vyd2luLT53X2N1cnNvci5jb2wgIT0gdHBvcy5jb2wpCiAJc3RhcnRfYXJyb3coJnRwb3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2V2YWwuYyBiL3NyYy9ldmFsLmMKaW5kZXggYTdmYzZiMy4uYzkzNDU1MyAxMDA2NDQKLS0tIGEvc3JjL2V2YWwuYworKysgYi9zcmMvZXZhbC5jCkBAIC0xMzc0OSwyMiArMTM3NDksMTYgQEAKICAgICB0eXB2YWxfVAkqYXJndmFyczsKICAgICB0eXB2YWxfVAkqcmV0dHY7CiB7Ci0gICAgaW50CQlhdHRyOwotICAgIGNoYXJfdQkqcHRyOwogICAgIGludAkJbGVuOwogCiAgICAgcmV0dHYtPnZ2YWwudl9zdHJpbmcgPSBOVUxMOwogICAgIHJldHR2LT52X3R5cGUgPSBWQVJfU1RSSU5HOwogCiAjaWZkZWYgRkVBVF9TWU5fSEwKLSAgICAvKiBGaW5kIHRoZSBzdGFydCBvZiB0aGUgYmFkbHkgc3BlbGxlZCB3b3JkLiAqLwotICAgIGlmIChzcGVsbF9tb3ZlX3RvKEZPUldBUkQsIFRSVUUsIFRSVUUpID09IEZBSUwpCi0JcmV0dXJuOwotCi0gICAgLyogR2V0IHRoZSBsZW5ndGggb2YgdGhlIHdvcmQgYW5kIGNvcHkgaXQuICovCi0gICAgcHRyID0gbWxfZ2V0X2N1cnNvcigpOwotICAgIGxlbiA9IHNwZWxsX2NoZWNrKGN1cndpbiwgcHRyLCAmYXR0ciwgTlVMTCk7Ci0gICAgcmV0dHYtPnZ2YWwudl9zdHJpbmcgPSB2aW1fc3RybnNhdmUocHRyLCBsZW4pOworICAgIC8qIEZpbmQgdGhlIHN0YXJ0IGFuZCBsZW5ndGggb2YgdGhlIGJhZGx5IHNwZWxsZWQgd29yZC4gKi8KKyAgICBsZW4gPSBzcGVsbF9tb3ZlX3RvKEZPUldBUkQsIFRSVUUsIFRSVUUpOworICAgIGlmIChsZW4gIT0gMCkKKwlyZXR0di0+dnZhbC52X3N0cmluZyA9IHZpbV9zdHJuc2F2ZShtbF9nZXRfY3Vyc29yKCksIGxlbik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2d1aV9ndGtfeDExLmMgYi9zcmMvZ3VpX2d0a194MTEuYwppbmRleCBkYTY4MGQwLi4xNTAyZTBjIDEwMDY0NAotLS0gYS9zcmMvZ3VpX2d0a194MTEuYworKysgYi9zcmMvZ3VpX2d0a194MTEuYwpAQCAtNTMyOCw2ICs1MzI4LDkgQEAKIAlpbnQJCWNsdXN0ZXJfd2lkdGg7CiAJaW50CQlsYXN0X2dseXBoX3JiZWFyaW5nOwogCWludAkJY2VsbHMgPSAwOyAgLyogY2VsbHMgb2NjdXBpZWQgYnkgY3VycmVudCBjbHVzdGVyICovCisjaWYgMAorCWludAkJbW9ub3NwYWNlMTMgPSBTVFJJQ01QKHBfZ3VpZm9udCwgIm1vbm9zcGFjZSAxMyIpID09IDA7CisjZW5kaWYKIAogCS8qIFNhZmV0eSBjaGVjazogcGFuZ28gY3Jhc2hlcyB3aGVuIGludm9rZWQgd2l0aCBpbnZhbGlkIHV0Zi04CiAJICogY2hhcmFjdGVycy4gKi8KQEAgLTU0NDYsMTAgKzU0NDksMTcgQEAKIAkJICAgICAqIGNoYXJhY3RlcnMgdGhlIGNhbm9uaWNhbCB3YXkuICBUaGF0IGlzLCBzZXR0aW5nIHRoZQogCQkgICAgICogd2lkdGggb2YgdGhlIHByZXZpb3VzIGdseXBoIHRvIDAuICovCiAJCSAgICBnbHlwaHMtPmdseXBoc1tpIC0gMV0uZ2VvbWV0cnkud2lkdGggPSAwOwotCiAJCSAgICB3aWR0aCA9IGNlbGxzICogZ3VpLmNoYXJfd2lkdGggKiBQQU5HT19TQ0FMRTsKIAkJICAgIGdseXBoLT5nZW9tZXRyeS54X29mZnNldCArPQogCQkJCQkgICAgTUFYKDAsIHdpZHRoIC0gY2x1c3Rlcl93aWR0aCkgLyAyOworI2lmIDAKKwkJICAgIC8qIERpcnR5IGhhY2s6IGZvciAibW9ub3NwYWNlIDEzIiBmb250IHRoZXJlIGlzIGEgYnVnIHRoYXQKKwkJICAgICAqIGRyYXdzIGNvbXBvc2luZyBjaGFycyBpbiB0aGUgd3JvbmcgcG9zaXRpb24uICBBZGQKKwkJICAgICAqICJ3aWR0aCIgdG8gdGhlIG9mZnNldCB0byB3b3JrIGFyb3VuZCB0aGF0LiAqLworCQkgICAgaWYgKG1vbm9zcGFjZTEzKQorCQkJZ2x5cGgtPmdlb21ldHJ5Lnhfb2Zmc2V0ID0gd2lkdGg7CisjZW5kaWYKKwogCQkgICAgZ2x5cGgtPmdlb21ldHJ5LndpZHRoID0gd2lkdGg7CiAJCX0KIAkJZWxzZSAvKiBpID09IDAgImNhbm5vdCBoYXBwZW4iICovCmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCA4YzY0NjVlLi5mMWNlMDJiIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTM2LDUgKzM2LDUgQEAKICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYWEiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX1NIT1JUCSI3LjBhYSIKICNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBhYSBBTFBIQSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgQXVnIDI0KSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNSBBdWcgMjQsIGNvbXBpbGVkICIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgQXVnIDI1KSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNSBBdWcgMjUsIGNvbXBpbGVkICIK