[PATCH 2/3 v2] Provide SSL/TLS compression configuration options
Simon Horman <[email protected]> Wed, 11 May 2016 09:50:20 +0900
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <7ee220600234f0202013.1462927820@Reginn.isobedori.kobe.vergenet.net> |
RGlzYWJsZSBTU0wvVExTIGNvbXByZXNzaW9uIGJ5IGRlZmF1bHQgYW5kIGFsbG93IGl0IHRvIGJl IGVuYWJsZWQgYnkgbmV3CmNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbmRlcGVuZGVudGx5IGZvciBh Y2NlcHRpbmcgaW5jb21pbmcgY29ubmVjdGlvbnMKKGxpc3RlbmluZykgYW5kIG1ha2luZyBvdXRn b2luZyBjb25uZWN0aW9ucy4KCkJhc2VkIG9uIHdvcmsgYnkgTWF0dGhpYXMgSHVuc3RvY2suCgpD YzogTWF0dGhpYXMgSHVuc3RvY2sgPG1hdHRoaWFzLmh1bnN0b2NrQHR1LWlsbWVuYXUuZGU+ClNp Z25lZC1vZmYtYnk6IFNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgotLS0KTGlnaHRs eSB0ZXN0ZWQKCnYyCiogTmV3IHBhdGNoCgpkaWZmIC1yIDY0MjgwNzBiNDg4OSBjb25maWd1cmUu YWMKLS0tIGEvY29uZmlndXJlLmFjCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysg Yi9jb25maWd1cmUuYWMJVHVlIE1heSAxMCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0yMTEsNiAr MjExLDkgQEAKCiBpZiB0ZXN0ICIkZW5hYmxlX3NzbCIgPSAieWVzIjsgdGhlbgogICAgQUNfREVG SU5FKFdJVEhfU1NMX1NVUFBPUlQsIDEsIENvbXBpbGUgd2l0aCBTU0wvVExTIHN1cHBvcnQpCisg ICBBQ19DSEVDS19MSUIoc3NsLCBTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbikKKyAgIEFD X0NIRUNLX0RFQ0xTKFtTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbl0sIFtdLCBbXSwgW1sj aW5jbHVkZSA8b3BlbnNzbC9zc2wuaD5dXSkKKyAgIEFDX0NIRUNLX0RFQ0xTKFtTU0xfQ1RYX3Nl dF9tYXhfcHJvdG9fdmVyc2lvbl0sIFtdLCBbXSwgW1sjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD5d XSkKIGVsc2UKICAgc3NsX2xpYj0iIgogICBzc2xfaW5jbHVkZXM9IiIKZGlmZiAtciA2NDI4MDcw YjQ4ODkgZXRjL3BlcmRpdGlvbi9wZXJkaXRpb24uY29uZgotLS0gYS9ldGMvcGVyZGl0aW9uL3Bl cmRpdGlvbi5jb25mCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9ldGMvcGVy ZGl0aW9uL3BlcmRpdGlvbi5jb25mCVR1ZSBNYXkgMTAgMjI6MDE6NDUgMjAxNiArMDkwMApAQCAt NDAzLDMgKzQwMywzMCBAQAogIyB0byBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIuCiAjc3NsX25vX2Nu X3ZlcmlmeQoKKyMgc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiBQUk9UT0NPTF9WRVJTSU9O OgorIyBNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIGFjY2Vw dGluZyBpbmNvbWluZworIyBjb25uZWN0aW9ucy4KKyMgSWYgZW1wdHkgKCIiKSB0aGVuIG9wZW5z c2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKyMgKGRlZmF1bHQgInRsc3YxIikKKyNzc2xfbGlz dGVuX21pbl9wcm90b192ZXJzaW9uICJ0bHN2MSIKKworIyBzc2xfb3V0Z29pbmdfbWluX3Byb3Rv X3ZlcnNpb24gUFJPVE9DT0xfVkVSU0lPTjoKKyMgTWluaW11bSBwZXJtaXRlZCBTU0wvVExTIHBy b3RvY29sIHZlcnNpb24gd2hlbiBtYWtpbmcgb3V0Z29pbmcKKyMgY29ubmVjdGlvbnMuCisjIElm IGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuCisjIChkZWZh dWx0ICJ0bHN2MSIpCisjc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uICJ0bHN2MSIKKwor IyBzc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046CisjIE1heGlt dW0gcGVybWl0ZWQgU1NML1RMUyBwcm90b2NvbCB2ZXJzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29t YXhnCisjIGNvbm5lY3Rpb25zLgorIyBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNzbCdzIGRlZmF1 bHQgd2lsbCBiZSB1c2VkLgorIyAoZGVmYXVsdCAiIikKKyNzc2xfbGlzdGVuX21heF9wcm90b192 ZXJzaW9uICJ0bHN2MS4yIgorCisjIHNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbiBQUk9U T0NPTF9WRVJTSU9OOgorIyBNYXhpbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lv biB3aGVuIG1ha2luZyBvdXRnb2luZworIyBjb25uZWN0aW9ucy4KKyMgSWYgZW1wdHkgKCIiKSB0 aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKyMgKGRlZmF1bHQgIiIpCisjc3Ns X291dGdvaW5nX21heF9wcm90b192ZXJzaW9uICJ0bHN2MS4yIgpkaWZmIC1yIDY0MjgwNzBiNDg4 OSBwZXJkaXRpb24vb3B0aW9ucy5jCi0tLSBhL3BlcmRpdGlvbi9vcHRpb25zLmMJU3VuIERlYyAw MSAxNzoyNjo1MSAyMDEzICswOTAwCisrKyBiL3BlcmRpdGlvbi9vcHRpb25zLmMJVHVlIE1heSAx MCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAib3B0aW9u cy5oIgogI2luY2x1ZGUgImNvbmZpZ19maWxlLmgiCiAjaW5jbHVkZSAicGVyZGl0aW9uX2dsb2Jh bHMuaCIKKyNpbmNsdWRlICJzc2wuaCIKCiAjaWZkZWYgRE1BTExPQwogI2luY2x1ZGUgPGRtYWxs b2MuaD4KQEAgLTQ4OCw2ICs0ODksMTQgQEAKICAgICAgIFRBR19TU0xfUEFTU1BIUkFTRV9GRCwg TlVMTCwgTlVMTH0sCiAgICAgeyJzc2xfcGFzc3BocmFzZV9maWxlIiwgICAgICAgICAnXDAnLCBQ T1BUX0FSR19TVFJJTkcsIE5VTEwsCiAgICAgICBUQUdfU1NMX1BBU1NQSFJBU0VfRklMRSwgTlVM TCwgTlVMTH0sCisgICAgeyJzc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9Q VF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJ T04sIE5VTEwsIE5VTEx9LAorICAgIHsic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIiwg J1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9PVVRHT0lOR19NSU5f UFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCisgICAgeyJzc2xfbGlzdGVuX21heF9wcm90b192 ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9MSVNU RU5fTUFYX1BST1RPX1ZFUlNJT04sIE5VTEwsIE5VTEx9LAorICAgIHsic3NsX291dGdvaW5nX21h eF9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFH X1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCiAgICAge05VTEws ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAwLCAgICAgICAgICAgICAgIE5VTEwsCiAg ICAgIDAsIE5VTEwsIE5VTEx9CiAgIH07CkBAIC02MTgsNiArNjI3LDE0IEBACiAJCSAgICAmaSwg MCwgT1BUX05PVF9TRVQpOwogICAgIG9wdF9wKCYob3B0LnNzbF9wYXNzcGhyYXNlX2ZpbGUpLERF RkFVTFRfU1NMX1BBU1NQSFJBU0VfRklMRSwKIAkJICAgICZpLCAwLCBPUFRfTk9UX1NFVCk7Cisg ICAgb3B0X3AoJihvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiksCisJICBERUZBVUxU X1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04sICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAg b3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uKSwKKwkgIERFRkFVTFRf U1NMX09VVEdPSU5HX01JTl9QUk9UT19WRVJTSU9OLCAmaSwgMCwgT1BUX05PVF9TRVQpOworICAg IG9wdF9wKCYob3B0LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pLAorCSAgREVGQVVMVF9T U0xfTElTVEVOX01BWF9QUk9UT19WRVJTSU9OLCAmaSwgMCwgT1BUX05PVF9TRVQpOworICAgIG9w dF9wKCYob3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbiksCisJICBERUZBVUxUX1NT TF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgJmksIDAsIE9QVF9OT1RfU0VUKTsKICNlbmRp ZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAgIH0KCkBAIC0xMDEwLDYgKzEwMjcsMzggQEAKIAlO T19TU0xfT1BUKCJzc2xfcGFzc3BocmFzZV9maWxlIik7CiAjZW5kaWYgLyogV0lUSF9TU0xfU1VQ UE9SVCAqLwogICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVEFHX1NTTF9MSVNURU5fTUlOX1BS T1RPX1ZFUlNJT046CisjaWZkZWYgV0lUSF9TU0xfU1VQUE9SVAorICAgICAgICBvcHRfcCgmKG9w dC5zc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayks CisJCQlNQVNLX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04sIGYpOworI2Vsc2UgLyogV0lU SF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNp b24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAgIGJyZWFrOworICAg ICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX01JTl9QUk9UT19WRVJTSU9OOgorI2lmZGVmIFdJVEhf U1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192 ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9PVVRHT0lOR19N SU5fUFJPVE9fVkVSU0lPTiwgZik7CisjZWxzZSAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisJTk9f U1NMX09QVCgic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIik7CisjZW5kaWYgLyogV0lU SF9TU0xfU1VQUE9SVCAqLworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVEFHX1NTTF9MSVNU RU5fTUFYX1BST1RPX1ZFUlNJT046CisjaWZkZWYgV0lUSF9TU0xfU1VQUE9SVAorICAgICAgICBv cHRfcCgmKG9wdC5zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5z c2xfbWFzayksCisJCQlNQVNLX1NTTF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04sIGYpOworI2Vs c2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0ZW5fbWF4X3By b3RvX3ZlcnNpb24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAgIGJy ZWFrOworICAgICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OOgorI2lm ZGVmIFdJVEhfU1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21h eF9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9P VVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgZik7CisjZWxzZSAvKiBXSVRIX1NTTF9TVVBQT1JU ICovCisJTk9fU1NMX09QVCgic3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uIik7CisjZW5k aWYgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6 CiAgICAgICAgIFZBTkVTU0FfTE9HR0VSX0RFQlVHX1JBVygiVW5rbm93biBPcHRpb24iKTsKICAg ICAgICAgYnJlYWs7CkBAIC0xMDI5LDYgKzEwNzgsMTAwIEBACiAgICAgfQogICB9CgorICB7CisJ aW50IG1pbl92ZXIgPSAwOworCWludCBtYXhfdmVyID0gMDsKKworCWlmIChvcHQuc3NsX2xpc3Rl bl9taW5fcHJvdG9fdmVyc2lvbikgeworCQlWQU5FU1NBX0xPR0dFUl9ERUJVR19SQVcoIm1pbiIp OworCQltaW5fdmVyID0gcGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9w dC5zc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uKTsKKwkJaWYgKG1pbl92ZXIgPCAwKSB7CisJ CQlWQU5FU1NBX0xPR0dFUl9ERUJVR19SQVcoIlVua25vd24gc3NsX2xpc3Rlbl9taW5fcHJvdG9f dmVyc2lvbiIpOworCQkJaWYgKGYgJiBPUFRfRVJSKSB7CisJCQkJdXNhZ2UoLTEpOworCQkJfSBl bHNlIHsKKwkJCQlwb3B0RnJlZUNvbnRleHQoY29udGV4dCk7CisJCQkJcmV0dXJuIC0xOworCQkJ fQorCQl9CisJfQorCisJaWYgKG9wdC5zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uKSB7CisJ CW1heF92ZXIgPSBwZXJkaXRpb25fcGFyc2Vfc3NsX3Byb3RvX3ZlcnNpb24oCisJCQkJb3B0LnNz bF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pOworCQlpZiAobWF4X3ZlciA8IDApIHsKKwkJCVZB TkVTU0FfTE9HR0VSX0RFQlVHX1JBVygiVW5rbm93biBzc2xfbGlzdGVuX21heF9wcm90b192ZXJz aW9uIik7CisJCQlpZiAoZiAmIE9QVF9FUlIpIHsKKwkJCQl1c2FnZSgtMSk7CisJCQl9IGVsc2Ug eworCQkJCXBvcHRGcmVlQ29udGV4dChjb250ZXh0KTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJ CX0KKwl9CisKKwlpZiAob3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24gJiYKKwkgICAg b3B0LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24gJiYgbWluX3ZlciA+IG1heF92ZXIpIHsK KwkJVkFORVNTQV9MT0dHRVJfREVCVUdfUkFXKCJzc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9u IGlzICIKKwkJCQkJICJncmVhdGVyIHRoYW4gIgorCQkJCQkgInNzbF9saXN0ZW5fbWF4X3Byb3Rv X3ZlcnNpb24iKTsKKwkJaWYgKGYmT1BUX0VSUikgeworCQkJdXNhZ2UoLTEpOworCQl9IGVsc2Ug eworCQkJcG9wdEZyZWVDb250ZXh0KGNvbnRleHQpOworCQkJcmV0dXJuIC0xOworCQl9CisJfQor CisgIH0KKworICB7CisJaW50IG1pbl92ZXIgPSAwOworCWludCBtYXhfdmVyID0gMDsKKworCWlm IChvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbikgeworCQltaW5fdmVyID0gcGVyZGl0 aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9wdC5zc2xfbGlzdGVuX21pbl9wcm90 b192ZXJzaW9uKTsKKwkJaWYgKG1pbl92ZXIgPCAwKSB7CisJCQlWQU5FU1NBX0xPR0dFUl9ERUJV R19SQVcoIlVua25vd24gc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIik7CisJCQlpZiAo ZiAmIE9QVF9FUlIpIHsKKwkJCQl1c2FnZSgtMSk7CisJCQl9IGVsc2UgeworCQkJCXBvcHRGcmVl Q29udGV4dChjb250ZXh0KTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCX0KKwl9CisKKwlpZiAo b3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbikgeworCQltYXhfdmVyID0gcGVyZGl0 aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9wdC5zc2xfb3V0Z29pbmdfbWF4X3By b3RvX3ZlcnNpb24pOworCQlpZiAobWF4X3ZlciA8IDApIHsKKwkJCVZBTkVTU0FfTE9HR0VSX0RF QlVHX1JBVygiVW5rbm93biBzc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24iKTsKKwkJCWlm IChmICYgT1BUX0VSUikgeworCQkJCXVzYWdlKC0xKTsKKwkJCX0gZWxzZSB7CisJCQkJcG9wdEZy ZWVDb250ZXh0KGNvbnRleHQpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCX0KKworCWlm IChvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiAmJgorCSAgICBvcHQuc3NsX291dGdv aW5nX21heF9wcm90b192ZXJzaW9uICYmIG1pbl92ZXIgPiBtYXhfdmVyKSB7CisJCVZBTkVTU0Ff TE9HR0VSX0RFQlVHX1JBVygic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIGlzICIKKwkJ CQkJICJncmVhdGVyIHRoYW4gIgorCQkJCQkgInNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lv biIpOworCQlpZiAoZiAmIE9QVF9FUlIpIHsKKwkJCXVzYWdlKC0xKTsKKwkJfSBlbHNlIHsKKwkJ CXBvcHRGcmVlQ29udGV4dChjb250ZXh0KTsKKwkJCXJldHVybiAtMTsKKwkJfQorCX0KKyAgfQor CiAgIGlmIChjIDwgLTEpIHsKICAgICBWQU5FU1NBX0xPR0dFUl9ERUJVR19VTlNBRkUoICIlczog JXMiLAogICAgICAgcG9wdEJhZE9wdGlvbihjb250ZXh0LCBQT1BUX0JBRE9QVElPTl9OT0FMSUFT KSwgcG9wdFN0cmVycm9yKGMpKTsKQEAgLTE0MDAsNiArMTU0MywxMCBAQAogCQkgInNzbF9ub19j bl92ZXJpZnk9XCIlc1wiICIKIAkJICJzc2xfcGFzc3BocmFzZV9mZD0lZCwgIgogCQkgInNzbF9w YXNzcGhyYXNlX2ZpbGU9XCIlc1wiLCAiCisJCSAic3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lv bj1cIiVzXCIsICIKKwkJICJzc2xfb3V0Z29pbmdfbWluX3Byb3RvX3ZlcnNpb249XCIlc1wiLCAi CisJCSAic3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbj1cIiVzXCIsICIKKwkJICJzc2xfb3V0 Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCiAJCSAiKHNzbF9tYXNrPTB4JTA4eCkg IiwKIAkJIHNzbF9tb2RlLAogCQkgT1BUX1NUUihvcHQuc3NsX2NhX2ZpbGUpLApAQCAtMTQxOCw2 ICsxNTY1LDEwIEBACiAJCSBCSU5fT1BUX1NUUihvcHQuc3NsX25vX2NuX3ZlcmlmeSksCiAJCSBv cHQuc3NsX3Bhc3NwaHJhc2VfZmQsCiAJCSBPUFRfU1RSKG9wdC5zc2xfcGFzc3BocmFzZV9maWxl KSwKKwkJIE9QVF9TVFIob3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24pLAorCQkgT1BU X1NUUihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uKSwKKwkJIE9QVF9TVFIob3B0 LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pLAorCQkgT1BUX1NUUihvcHQuc3NsX291dGdv aW5nX21heF9wcm90b192ZXJzaW9uKSwKIAkJIG9wdC5zc2xfbWFzayk7CiAJb3V0W01BWF9MSU5F X0xFTkdUSCAtIDFdID0gJ1wwJzsKCkBAIC0xNzE2LDYgKzE4NjcsMjYgQEAKICAgICAiIC0tc3Ns X3Bhc3NwaHJhc2VfZmlsZSBGSUxFTkFNRTpcbiIKICAgICAiICAgIEZpbGUgZnJvbSB3aXRoIHRo ZSBwYXNzcGhyYXNlIGZvciB0aGUgY2VydGlmaWNhdGUgaXMgcmVhZC5cbiIKICAgICAiICAgIChk ZWZhdWx0IFwiJXNcIilcbiIKKyAgICAiIC0tc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiBQ Uk9UT0NPTF9WRVJTSU9OOlxuIgorICAgICIgICAgTWluaW11bSBwZXJtaXRlZCBTU0wvVExTIHBy b3RvY29sIHZlcnNpb24gd2hlbiBhY2NlcHRpbmcgaW5jb21taW5nXG4iCisgICAgIiAgICBjb25u ZWN0aW9ucy5cbiIKKyAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0aGVuIG9wZW5zc2wncyBkZWZh dWx0IHdpbGwgYmUgdXNlZC5cbiIKKyAgICAiICAgIChkZWZhdWx0IFwiJXNcIilcbiIKKyAgICAi IC0tc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046XG4iCisg ICAgIiAgICBNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIG1h a2luZyBvdXRnb2luZ1xuIgorICAgICIgICAgY29ubmVjdGlvbnMuXG4iCisgICAgIiAgICBJZiBl bXB0eSAoXCJcIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuXG4iCisgICAg IiAgICAoZGVmYXVsdCBcIiVzXCIpXG4iCisgICAgIiAtLXNzbF9saXN0ZW5fbWF4X3Byb3RvX3Zl cnNpb24gUFJPVE9DT0xfVkVSU0lPTjpcbiIKKyAgICAiICAgIE1heGltdW0gcGVybWl0ZWQgU1NM L1RMUyBwcm90b2NvbCB2ZXJzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29taW5nXG4iCisgICAgIiAg ICBjb25uZWN0aW9ucy5cbiIKKyAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0aGVuIG9wZW5zc2wn cyBkZWZhdWx0IHdpbGwgYmUgdXNlZC5cbiIKKyAgICAiICAgIChkZWZhdWx0IFwiJXNcIilcbiIK KyAgICAiIC0tc3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046 XG4iCisgICAgIiAgICBNYXhpbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3 aGVuIG1ha2luZyBvdXRnb2luZ1xuIgorICAgICIgICAgY29ubmVjdGlvbnMuXG4iCisgICAgIiAg ICBJZiBlbXB0eSAoXCJcIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuXG4i CisgICAgIiAgICAoZGVmYXVsdCBcIiVzXCIpXG4iCiAjZW5kaWYgLyogV0lUSF9TU0xfU1VQUE9S VCAqLwogICAgICJcbiIKICAgICAiIE5vdGVzOiBEZWZhdWx0IHZhbHVlIGZvciBiaW5hcnkgZmxh Z3MgaXMgb2ZmLlxuIgpAQCAtMTc2MCw3ICsxOTMxLDExIEBACiAgICAgT1BUX1NUUihERUZBVUxU X1NTTF9MSVNURU5fQ0lQSEVSUyksCiAgICAgT1BUX1NUUihERUZBVUxUX1NTTF9PVVRHT0lOR19D SVBIRVJTKSwKICAgICBERUZBVUxUX1NTTF9QQVNTUEhSQVNFX0ZELAotICAgIE9QVF9TVFIoREVG QVVMVF9TU0xfUEFTU1BIUkFTRV9GSUxFKQorICAgIE9QVF9TVFIoREVGQVVMVF9TU0xfUEFTU1BI UkFTRV9GSUxFKSwKKyAgICBPUFRfU1RSKERFRkFVTFRfU1NMX0xJU1RFTl9NSU5fUFJPVE9fVkVS U0lPTiksCisgICAgT1BUX1NUUihERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lP TiksCisgICAgT1BUX1NUUihERUZBVUxUX1NTTF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04pLAor ICAgIE9QVF9TVFIoREVGQVVMVF9TU0xfT1VUR09JTkdfTUFYX1BST1RPX1ZFUlNJT04pCiAjZW5k aWYgLyogV0lUSF9TU0xfU1VQUE9SVCAqLwogICApOwoKZGlmZiAtciA2NDI4MDcwYjQ4ODkgcGVy ZGl0aW9uL29wdGlvbnMuaAotLS0gYS9wZXJkaXRpb24vb3B0aW9ucy5oCVN1biBEZWMgMDEgMTc6 MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJkaXRpb24vb3B0aW9ucy5oCVR1ZSBNYXkgMTAgMjI6 MDE6NDUgMjAxNiArMDkwMApAQCAtMTgxLDYgKzE4MSwxMCBAQAogI2RlZmluZSBERUZBVUxUX1NT TF9OT19DTl9WRVJJRlkgICAgICAgICAgICAgMAogI2RlZmluZSBERUZBVUxUX1NTTF9QQVNTUEhS QVNFX0ZEICAgICAgICAgICAgMAogI2RlZmluZSBERUZBVUxUX1NTTF9QQVNTUEhSQVNFX0ZJTEUg ICAgICAgICAgTlVMTAorI2RlZmluZSBERUZBVUxUX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJ T04gInRsc3YxIgorI2RlZmluZSBERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lP TiAidGxzdjEiCisjZGVmaW5lIERFRkFVTFRfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiBO VUxMCisjZGVmaW5lIERFRkFVTFRfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OIE5VTEwK ICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCgoKQEAgLTI0OSw2ICsyNTMsMTAgQEAKICAg aW50ICAgICAgICAgICAgIHNzbF9ub19jbl92ZXJpZnk7CiAgIGludCAgICAgICAgICAgICBzc2xf cGFzc3BocmFzZV9mZDsKICAgY2hhciAgICAgICAgICAgICpzc2xfcGFzc3BocmFzZV9maWxlOwor ICBjaGFyICAgICAgICAgICAgKnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb247CisgIGNoYXIg ICAgICAgICAgICAqc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uOworICBjaGFyICAgICAg ICAgICAgKnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb247CisgIGNoYXIgICAgICAgICAgICAq c3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uOwogICBmbGFnX3QgICAgICAgICAgc3NsX21h c2s7CiB9IG9wdGlvbnNfdDsKCkBAIC0zMTcsNiArMzI1LDEwIEBACiAjZGVmaW5lIE1BU0tfU1NM X05PX0NOX1ZFUklGWSAgICAgICAgICAgICAgICAgIChmbGFnX3QpIDB4MDAwMDQwMDAKICNkZWZp bmUgTUFTS19TU0xfUEFTU1BIUkFTRV9GRCAgICAgICAgICAgICAgICAgKGZsYWdfdCkgMHgwMDAw ODAwMAogI2RlZmluZSBNQVNLX1NTTF9QQVNTUEhSQVNFX0ZJTEUgICAgICAgICAgICAgICAoZmxh Z190KSAweDAwMDEwMDAwCisjZGVmaW5lIE1BU0tfU1NMX0xJU1RFTl9NSU5fUFJPVE9fVkVSU0lP TiAgICAgIChmbGFnX3QpIDB4MDAwMjAwMDAKKyNkZWZpbmUgTUFTS19TU0xfT1VUR09JTkdfTUlO X1BST1RPX1ZFUlNJT04gICAgKGZsYWdfdCkgMHgwMDA0MDAwMAorI2RlZmluZSBNQVNLX1NTTF9M SVNURU5fTUFYX1BST1RPX1ZFUlNJT04gICAgICAoZmxhZ190KSAweDAwMDgwMDAwCisjZGVmaW5l IE1BU0tfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OICAgIChmbGFnX3QpIDB4MDAxMDAw MDAKICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCgogLyoKQEAgLTM1NSw2ICszNjcsMTAg QEAKICNkZWZpbmUgVEFHX01BTkFHRVNJRVZFX0NBUEFCSUxJVFkgICAgICAgICAgICAgKGludCkg MTU1CiAjZGVmaW5lIFRBR19QT1BfQ0FQQUJJTElUWSAgICAgICAgICAgICAgICAgICAgIChpbnQp IDE1NgogI2RlZmluZSBUQUdfVENQX0tFRVBBTElWRSAgICAgICAgICAgICAgICAgICAgICAoaW50 KSAxNTcKKyNkZWZpbmUgVEFHX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04gICAgICAgKGlu dCkgMTU4CisjZGVmaW5lIFRBR19TU0xfT1VUR09JTkdfTUlOX1BST1RPX1ZFUlNJT04gICAgIChp bnQpIDE1OQorI2RlZmluZSBUQUdfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAgICAo aW50KSAxNjAKKyNkZWZpbmUgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiAgICAg KGludCkgMTYxCgogLypGbGFnIHZhbHVlcyBmb3Igb3B0aW9ucygpKi8KICNkZWZpbmUgT1BUX0VS UiAgICAgICAgIChmbGFnX3QpIDB4MSAgLypQcmludCBlcnJvciB0byBzdGRlcnIsIGVuYWJsZSBo ZWxwKi8KZGlmZiAtciA2NDI4MDcwYjQ4ODkgcGVyZGl0aW9uL3BlcmRpdGlvbi44Ci0tLSBhL3Bl cmRpdGlvbi9wZXJkaXRpb24uOAlTdW4gRGVjIDAxIDE3OjI2OjUxIDIwMTMgKzA5MDAKKysrIGIv cGVyZGl0aW9uL3BlcmRpdGlvbi44CVR1ZSBNYXkgMTAgMjI6MDE6NDUgMjAxNiArMDkwMApAQCAt NjM1LDYgKzYzNSw2OSBAQAogYmUgc3BlY2lmaWVkLgogKGRlZmF1bHQgTlVMTCwgbm8gZmlsZSkK IC5UUAorLkIgXC1cLXNzbF9saXN0ZW5fY2lwaGVycyBTVFJJTkc6CitDaXBoZXIgbGlzdCB3aGVu IGxpc3RlbmluZyBmb3IgU1NMIG9yIFRMUyBjb25uZWN0aW9ucyBhcyBwZXIKK2NpcGhlcnMoMSku IElmIGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuCisuYnIK KyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX291dGdvaW5nX2NpcGhlcnMgU1RSSU5HOgor Q2lwaGVyIGxpc3Qgd2hlbiBtYWtpbmcgb3V0Z29pbmcgU1NMIG9yIFRMUyBjb25uZWN0aW9ucyBh cyBwZXIKK2NpcGhlcnMoMSkuIElmIGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3 aWxsIGJlIHVzZWQuCisuYnIKKyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX25vX2NlcnRf dmVyaWZ5OgorRG9uJ3QgY3J5cHRvZ3JhcGhpY2FsbHkgdmVyaWZ5IHRoZSBjZXJ0aWZpY2F0ZXMu CitVc2VkIGZvciBTU0wgb3IgVExTIG91dGdvaW5nIGNvbm5lY3Rpb25zLgorLlRQCisuQiBcLVwt c3NsX25vX2NsaWVudF9jZXJ0X3ZlcmlmeToKK0Rvbid0IGNyeXB0b2dyYXBoaWNhbGx5IHZlcmlm eSB0aGUgZW5kLXVzZXIncyBjZXJ0aWZpY2F0ZS4KK1VzZWQgZm9yIFNTTCBvciBUTFMgb3V0Z29p bmcgY29ubmVjdGlvbnMuCisuVFAKKy5CIFwtXC1zc2xfbm9fY25fdmVyaWZ5OgorRG9uJ3QgdmVy aWZ5IHRoZSByZWFsLXNlcnZlcidzIGNvbW1vbiBuYW1lIHdpdGggdGhlIG5hbWUgdXNlZC4KK3Rv IGNvbm5lY3QgdG8gdGhlIHNlcnZlci4gVXNlZCBmb3IgU1NMIG9yIFRMUyBvdXRnb2luZyBjb25u ZWN0aW9ucy4KKy5UUAorLkIgXC1cLXNzbF9wYXNzcGhyYXNlX2ZkIE46CitGaWxlIGRlc2NyaXB0 b3IgdG8gcmVhZCB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIGNlcnRpZmljYXRlIGZyb20uCitPbmx5 IHRoZSBmaXJzdCBsaW5lIHdpbGwgYmUgcmVhZC4KK09ubHkgb25lIG9mIHNzbF9wYXNzcGhyYXNl X2ZkIGFuZCBzc2xfcGFzc3BocmFzZV9maWxlIG1heQorYmUgc3BlY2lmaWVkLgorKGRlZmF1bHQg MCkKKy5UUAorLkIgXC1cLXNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24gUFJPVE9DT0xfVkVS U0lPTlM6CitNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIGFj Y2VwdGluZyBpbmNvbW1pbmcKK2Nvbm5lY3Rpb25zLiBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNz bCdzIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorLnNwCitUaGUgdmFsaWQgcHJvdG9jb2wgdmVyc2lv bnMgYXJlIHNzbHYzLCB0bHN2MSwgdGxzdjEuMSBhbmQgdGxzdjEuMi4KKy5zcAorKGRlZmF1bHQg InRsc3YxIikKKy5UUAorLkIgXC1cLXNzbF9vdXRnb2luZ19taW5fcHJvdG9fdmVyc2lvbiBQUk9U T0NPTF9WRVJTSU9OUzoKK01pbmltdW0gcGVybWl0ZWQgU1NML1RMUyBwcm90b2NvbCB2ZXJzaW9u IHdoZW4gbWFraW5nIG91dGdvaW5nCitjb25uZWN0aW9ucy4gSWYgZW1wdHkgKCIiKSB0aGVuIG9w ZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKy5zcAorVGhlIHZhbGlkIHByb3RvY29sIHZl cnNpb25zIGFyZSBzc2x2MywgdGxzdjEsIHRsc3YxLjEgYW5kIHRsc3YxLjIuCisuc3AKKyhkZWZh dWx0ICJ0bHN2MSIpCisuVFAKKy5CIFwtXC1zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uIFBS T1RPQ09MX1ZFUlNJT05TOgorTWF4aW11bSBwZXJtaXRlZCBTU0wvVExTIHByb3RvY29sIHZlcnNp b24gd2hlbiBhY2NlcHRpbmcgaW5jb21tYXhnCitjb25uZWN0aW9ucy4gSWYgZW1wdHkgKCIiKSB0 aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKy5zcAorVGhlIHZhbGlkIHByb3Rv Y29sIHZlcnNpb25zIGFyZSBzc2x2MywgdGxzdjEsIHRsc3YxLjEgYW5kIHRsc3YxLjIuCisuc3AK KyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9u IFBST1RPQ09MX1ZFUlNJT05TOgorTWF4aW11bSBwZXJtaXRlZCBTU0wvVExTIHByb3RvY29sIHZl cnNpb24gd2hlbiBtYWtpbmcgb3V0Z29pbmcKK2Nvbm5lY3Rpb25zLiBJZiBlbXB0eSAoIiIpIHRo ZW4gb3BlbnNzbCdzIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorLnNwCitUaGUgdmFsaWQgcHJvdG9j b2wgdmVyc2lvbnMgYXJlIHNzbHYzLCB0bHN2MSwgdGxzdjEuMSBhbmQgdGxzdjEuMi4KKy5zcAor KGRlZmF1bHQgIiIpCisuVFAKIE5vdGVzOgogRGVmYXVsdCB2YWx1ZSBmb3IgYmluYXJ5IGZsYWdz IGlzIG9mZi4KIC5icgpkaWZmIC1yIDY0MjgwNzBiNDg4OSBwZXJkaXRpb24vc3NsLmMKLS0tIGEv cGVyZGl0aW9uL3NzbC5jCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJk aXRpb24vc3NsLmMJVHVlIE1heSAxMCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0xMzksNiArMTM5 LDIzIEBACiAJcmV0dXJuIHN0cmxlbihidWYpOwogfQoKK2ludCBwZXJkaXRpb25fcGFyc2Vfc3Ns X3Byb3RvX3ZlcnNpb24oY29uc3QgY2hhciAqc3RyKQoreworCWlmICghc3RyY2FzZWNtcChzdHIs ICJzc2x2MyIpKSB7CisJCXJldHVybiBTU0wzX1ZFUlNJT047CisJfQorCWlmICghc3RyY2FzZWNt cChzdHIsICJ0bHN2MSIpKSB7CisJCXJldHVybiBUTFMxX1ZFUlNJT047CisJfQorCWlmICghc3Ry Y2FzZWNtcChzdHIsICJ0bHN2MS4xIikpIHsKKwkJcmV0dXJuIFRMUzFfMV9WRVJTSU9OOworCX0K KwlpZiAoIXN0cmNhc2VjbXAoc3RyLCAidGxzdjEuMiIpKSB7CisJCXJldHVybiBUTFMxXzJfVkVS U0lPTjsKKwl9CisKKwlyZXR1cm4gLTE7Cit9CgogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIHBlcmRpdGlv bl9zc2xfY3R4CkBAIC00ODYsNiArNTAzLDcyIEBACiAJcmV0dXJuKHZlcmlmeSk7CiB9CgorI2lm IEhBVkVfREVDTF9TU0xfQ1RYX1NFVF9NSU5fUFJPVE9fVkVSU0lPTiA9PSAwCitzdGF0aWMgaW50 CitwZXJkaXRpb25fc3NsX2N0eF9zZXRfbWluX3Byb3RvX3ZlcnNpb24oU1NMX0NUWCAqc3NsX2N0 eCwgaW50IG1pbl92ZXJzaW9uKQoreworCWxvbmcgb3B0aW9ucyA9IFNTTF9PUF9OT19TU0x2MjsK KworCXN3aXRjaCAobWluX3ZlcnNpb24pIHsKKwljYXNlIFRMUzFfMl9WRVJTSU9OOgorCQlvcHRp b25zIHw9IFNTTF9PUF9OT19UTFN2MV8xOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIFRM UzFfMV9WRVJTSU9OOgorCQlvcHRpb25zIHw9IFNTTF9PUF9OT19UTFN2MTsKKwkJLyogZmFsbC10 aHJvdWdoICovCisJY2FzZSBUTFMxX1ZFUlNJT046CisJCW9wdGlvbnMgfD0gU1NMX09QX05PX1NT THYzOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIFNTTDNfVkVSU0lPTjoKKwkJLyogTm90 aGluZyBtb3JlIHRvIGRvICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCVBFUkRJVElPTl9ERUJV R19TU0xfRVJSKCJVbmtub3duIG1pbnVtdW0gdmVyc2lvbiIpOworCQlyZXR1cm4gMDsKKwl9CisK KwlTU0xfQ1RYX3NldF9vcHRpb25zKHNzbF9jdHgsIG9wdGlvbnMpOworCXJldHVybiAxOworfQor CisjZGVmaW5lIFNTTF9DVFhfc2V0X21pbl9wcm90b192ZXJzaW9uIHBlcmRpdGlvbl9zc2xfY3R4 X3NldF9taW5fcHJvdG9fdmVyc2lvbgorI2VuZGlmCisKKyNpZiBIQVZFX0RFQ0xfU1NMX0NUWF9T RVRfTUFYX1BST1RPX1ZFUlNJT04gPT0gMAorc3RhdGljIGludAorcGVyZGl0aW9uX3NzbF9jdHhf c2V0X21heF9wcm90b192ZXJzaW9uKFNTTF9DVFggKnNzbF9jdHgsIGludCBtYXhfdmVyc2lvbikK K3sKKwlsb25nIG9wdGlvbnMgPSAwOworCisJc3dpdGNoIChtYXhfdmVyc2lvbikgeworCWNhc2Ug U1NMM19WRVJTSU9OOgorCQlvcHRpb25zIHw9IFNTTF9PUF9OT19UTFN2MTsKKwkJLyogZmFsbC10 aHJvdWdoICovCisJY2FzZSBUTFMxX1ZFUlNJT046CisJCW9wdGlvbnMgfD0gU1NMX09QX05PX1RM U3YxXzE7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2UgVExTMV8xX1ZFUlNJT046CisJCW9w dGlvbnMgfD0gU1NMX09QX05PX1RMU3YxXzI7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2Ug VExTMV8yX1ZFUlNJT046CisJCS8qIE5vdGhpbmcgbW9yZSB0byBkbyAqLworCQlicmVhazsKKwlk ZWZhdWx0OgorCQlQRVJESVRJT05fREVCVUdfU1NMX0VSUigiVW5rbm93biBtYXhpbXVtIHZlcnNp b24iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJU1NMX0NUWF9zZXRfb3B0aW9ucyhzc2xfY3R4LCBv cHRpb25zKTsKKworCVZBTkVTU0FfTE9HR0VSX0VSUigiUHJvdG9jb2wgdmVyc2lvbnMgZ3JlYXRl ciB0aGFuIHRsc3YxLjIgbWF5ICIKKwkJCSAgICJzdGlsbCBiZSBhbGxvd2VkIGlmIHN1cHBvcnRl ZCBieSB0aGUgU1NML1RMUyAiCisJCQkgICAiaW1wbGVtZW50YXRpb24iKTsKKwlyZXR1cm4gMTsK K30KKworI2RlZmluZSBTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbiBwZXJkaXRpb25fc3Ns X2N0eF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24KKyNlbmRpZgorCiBTU0xfQ1RYICpwZXJkaXRpb25f c3NsX2N0eChjb25zdCBjaGFyICpjYV9maWxlLCBjb25zdCBjaGFyICpjYV9wYXRoLAogCQljb25z dCBjaGFyICpjZXJ0LCBjb25zdCBjaGFyICpwcml2a2V5LAogCQljb25zdCBjaGFyICpjYV9jaGFp bl9maWxlLCBjb25zdCBjaGFyICpjaXBoZXJzLCBmbGFnX3QgZmxhZykKQEAgLTUzMyw2ICs2MTYs NjAgQEAKIAl9CgogCS8qCisJICogU2V0IG1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbgorCSAqLwor CXsKKwkJY29uc3QgY2hhciAqdmVyX3N0cjsKKworCQlpZiAoZmxhZyA9PSBQRVJESVRJT05fU1NM X0NMSUVOVCkKKwkJCXZlcl9zdHIgPSBvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9u OworCQllbHNlCisJCQl2ZXJfc3RyID0gb3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb247 CisKKwkJaWYgKHZlcl9zdHIpIHsKKwkJCWludCB2ZXJfbm8gPSBwZXJkaXRpb25fcGFyc2Vfc3Ns X3Byb3RvX3ZlcnNpb24odmVyX3N0cik7CisKKworCQkJaWYgKHZlcl9ubyA8IDApIHsKKwkJCQlW QU5FU1NBX0xPR0dFUl9ERUJVRygicGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uIik7 CisJCQkJZ290byBlcnI7CisJCQl9CisKKwkJCWlmICghU1NMX0NUWF9zZXRfbWluX3Byb3RvX3Zl cnNpb24oc3NsX2N0eCwgdmVyX25vKSkgeworCQkJCVZBTkVTU0FfTE9HR0VSX0RFQlVHKCJTU0xf Q1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQl9CisJ fQorCisJLyoKKwkgKiBTZXQgbWF4aW11bSBwcm90b2NvbCB2ZXJzaW9uCisJICovCisJeworCQlj b25zdCBjaGFyICp2ZXJfc3RyOworCisJCWlmIChmbGFnID09IFBFUkRJVElPTl9TU0xfQ0xJRU5U KQorCQkJdmVyX3N0ciA9IG9wdC5zc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb247CisJCWVs c2UKKwkJCXZlcl9zdHIgPSBvcHQuc3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbjsKKworCQlp ZiAodmVyX3N0cikgeworCQkJaW50IHZlcl9ubyA9IHBlcmRpdGlvbl9wYXJzZV9zc2xfcHJvdG9f dmVyc2lvbih2ZXJfc3RyKTsKKworCisJCQlpZiAodmVyX25vIDwgMCkgeworCQkJCVZBTkVTU0Ff TE9HR0VSX0RFQlVHKCJwZXJkaXRpb25fcGFyc2Vfc3NsX3Byb3RvX3ZlcnNpb24iKTsKKwkJCQln b3RvIGVycjsKKwkJCX0KKworCQkJaWYgKCFTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihz c2xfY3R4LCB2ZXJfbm8pKSB7CisJCQkJVkFORVNTQV9MT0dHRVJfREVCVUcoIlNTTF9DVFhfc2V0 X21heF9wcm90b192ZXJzaW9uIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCX0KKwl9CisKKwkv KgogCSAqIFNldCB0aGUgYXZhaWxhYmxlIGNpcGhlcnMKIAkgKi8KIAlpZihjaXBoZXJzICYmIFNT TF9DVFhfc2V0X2NpcGhlcl9saXN0KHNzbF9jdHgsIGNpcGhlcnMpIDwgMCkgewpkaWZmIC1yIDY0 MjgwNzBiNDg4OSBwZXJkaXRpb24vc3NsLmgKLS0tIGEvcGVyZGl0aW9uL3NzbC5oCVN1biBEZWMg MDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJkaXRpb24vc3NsLmgJVHVlIE1heSAxMCAy MjowMTo0NSAyMDE2ICswOTAwCkBAIC0zOSw2ICszOSw4IEBACiAjZGVmaW5lIFBFUkRJVElPTl9T U0xfQ0xJRU5UIChmbGFnX3QpIDB4MQogI2RlZmluZSBQRVJESVRJT05fU1NMX1NFUlZFUiAoZmxh Z190KSAweDIKCitpbnQgcGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKGNvbnN0IGNo YXIgKnN0cik7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBwZXJkaXRpb25fc3NsX2N0eAogICogQ3Jl YXRlIGFuIFNTTCBjb250ZXh0CgpkaWZmIC1yIDBmOWI2MTJkNmQwNyAtciA3ZWUyMjA2MDAyMzQg ZXRjL3BlcmRpdGlvbi9wZXJkaXRpb24uY29uZgotLS0gYS9ldGMvcGVyZGl0aW9uL3BlcmRpdGlv bi5jb25mCVdlZCBNYXkgMTEgMDg6NTc6MjIgMjAxNiArMDkwMAorKysgYi9ldGMvcGVyZGl0aW9u L3BlcmRpdGlvbi5jb25mCVdlZCBNYXkgMTEgMDk6MjY6MjEgMjAxNiArMDkwMApAQCAtNDMwLDMg KzQzMCwxMiBAQAogIyBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNzbCdzIGRlZmF1bHQgd2lsbCBi ZSB1c2VkLgogIyAoZGVmYXVsdCAiIikKICNzc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24g InRsc3YxLjIiCisKKyMgc3NsX2xpc3Rlbl9jb21wcmVzc2lvbgorIyBBbGxvdyBTU0wvVExTIGNv bXByZXNzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29taW5nIGNvbm5lY3Rpb25zLgorI3NzbF9saXN0 ZW5fY29tcHJlc3Npb24KKworIyBzc2xfb3V0Z29pbmdfY29tcHJlc3Npb24KKyMgQWxsb3cgU1NM L1RMUyBjb21wcmVzc2lvbiB3aGVuIG1ha2luZyBvdXRnb2luZyBjb25uZWN0aW9ucy4KKyNzc2xf b3V0Z29pbmdfY29tcHJlc3Npb24KKwpkaWZmIC1yIDBmOWI2MTJkNmQwNyAtciA3ZWUyMjA2MDAy MzQgcGVyZGl0aW9uL29wdGlvbnMuYwotLS0gYS9wZXJkaXRpb24vb3B0aW9ucy5jCVdlZCBNYXkg MTEgMDg6NTc6MjIgMjAxNiArMDkwMAorKysgYi9wZXJkaXRpb24vb3B0aW9ucy5jCVdlZCBNYXkg MTEgMDk6MjY6MjEgMjAxNiArMDkwMApAQCAtNDk3LDYgKzQ5NywxMCBAQAogICAgICAgVEFHX1NT TF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04sIE5VTEwsIE5VTEx9LAogICAgIHsic3NsX291dGdv aW5nX21heF9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAogICAg ICAgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCisgICAg eyJzc2xfbGlzdGVuX2NvbXByZXNzaW9uIiwgJ1wwJywgUE9QVF9BUkdfTk9ORSwgTlVMTCwKKyAg ICAgIFRBR19TU0xfTElTVEVOX0NPTVBSRVNTSU9OLCBOVUxMLCBOVUxMfSwKKyAgICB7InNzbF9v dXRnb2luZ19jb21wcmVzc2lvbiIsICdcMCcsIFBPUFRfQVJHX05PTkUsIE5VTEwsCisgICAgICBU QUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OLCBOVUxMLCBOVUxMfSwKICAgICB7TlVMTCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCAgIDAsICAgICAgICAgICAgICAgTlVMTCwKICAgICAg MCwgTlVMTCwgTlVMTH0KICAgfTsKQEAgLTYzNSw2ICs2MzksMTAgQEAKIAkgIERFRkFVTFRfU1NM X0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiwgJmksIDAsIE9QVF9OT1RfU0VUKTsKICAgICBvcHRf cCgmKG9wdC5zc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24pLAogCSAgREVGQVVMVF9TU0xf T1VUR09JTkdfTUFYX1BST1RPX1ZFUlNJT04sICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAgb3B0 X2koJihvcHQuc3NsX2xpc3Rlbl9jb21wcmVzc2lvbiksIERFRkFVTFRfU1NMX0xJU1RFTl9DT01Q UkVTU0lPTiwKKwkgICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAgb3B0X2koJihvcHQuc3NsX291 dGdvaW5nX2NvbXByZXNzaW9uKSwgREVGQVVMVF9TU0xfT1VUR09JTkdfQ09NUFJFU1NJT04sCisJ ICAmaSwgMCwgT1BUX05PVF9TRVQpOwogI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8KICAg fQogCkBAIC0xMDU5LDYgKzEwNjcsMjIgQEAKIAlOT19TU0xfT1BUKCJzc2xfb3V0Z29pbmdfbWF4 X3Byb3RvX3ZlcnNpb24iKTsKICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAgICAgICAg IGJyZWFrOworICAgICAgY2FzZSBUQUdfU1NMX0xJU1RFTl9DT01QUkVTU0lPTjoKKyNpZmRlZiBX SVRIX1NTTF9TVVBQT1JUCisgICAgICAgIG9wdF9pKCYob3B0LnNzbF9saXN0ZW5fY29tcHJlc3Np b24pLCAxLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9MSVNURU5fQ09NUFJFU1NJT04s IGYpOworI2Vsc2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0 ZW5fY29tcHJlc3Npb24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAg IGJyZWFrOworICAgICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OOgorI2lmZGVm IFdJVEhfU1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X2koJihvcHQuc3NsX291dGdvaW5nX2NvbXBy ZXNzaW9uKSwgMSwgJihvcHQuc3NsX21hc2spLAorCQkJTUFTS19TU0xfT1VUR09JTkdfQ09NUFJF U1NJT04sIGYpOworI2Vsc2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNz bF9vdXRnb2luZ19jb21wcmVzc2lvbiIpOworI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8K KyAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OgogICAgICAgICBWQU5FU1NBX0xPR0dFUl9E RUJVR19SQVcoIlVua25vd24gT3B0aW9uIik7CiAgICAgICAgIGJyZWFrOwpAQCAtMTU3NSw2ICsx NTk5LDggQEAKIAkJICJzc2xfb3V0Z29pbmdfbWluX3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCiAJ CSAic3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbj1cIiVzXCIsICIKIAkJICJzc2xfb3V0Z29p bmdfbWF4X3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCisJCSAic3NsX2xpc3Rlbl9jb21wcmVzc2lv bj1cIiVzXCIsICIKKwkJICJzc2xfb3V0Z29pbmdfY29tcHJlc3Npb249XCIlc1wiLCAiCiAJCSAi KHNzbF9tYXNrPTB4JTA4eCkgIiwKIAkJIHNzbF9tb2RlLAogCQkgT1BUX1NUUihvcHQuc3NsX2Nh X2ZpbGUpLApAQCAtMTU5Nyw2ICsxNjIzLDggQEAKIAkJIE9QVF9TVFIob3B0LnNzbF9vdXRnb2lu Z19taW5fcHJvdG9fdmVyc2lvbiksCiAJCSBPUFRfU1RSKG9wdC5zc2xfbGlzdGVuX21heF9wcm90 b192ZXJzaW9uKSwKIAkJIE9QVF9TVFIob3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lv biksCisJCSBCSU5fT1BUX1NUUihvcHQuc3NsX2xpc3Rlbl9jb21wcmVzc2lvbiksCisJCSBCSU5f T1BUX1NUUihvcHQuc3NsX291dGdvaW5nX2NvbXByZXNzaW9uKSwKIAkJIG9wdC5zc2xfbWFzayk7 CiAJb3V0W01BWF9MSU5FX0xFTkdUSCAtIDFdID0gJ1wwJzsKIApAQCAtMTkxNSw2ICsxOTQzLDEw IEBACiAgICAgIiAgICBjb25uZWN0aW9ucy5cbiIKICAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0 aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC5cbiIKICAgICAiICAgIChkZWZhdWx0 IFwiJXNcIilcbiIKKyAgICAiIC0tc3NsX2xpc3Rlbl9jb21wcmVzc2lvblxuIgorICAgICIgICAg QWxsb3cgU1NML1RMUyBjb21wcmVzc2lvbiB3aGVuIGFjY2VwdGluZyBpbmNvbWluZyBjb25uZWN0 aW9ucy5cbiIKKyAgICAiIC0tc3NsX291dGdvaW5nX2NvbXByZXNzaW9uXG4iCisgICAgIiAgICBB bGxvdyBTU0wvVExTIGNvbXByZXNzaW9uIHdoZW4gbWFraW5nIG91dGdvaW5nIGNvbm5lY3Rpb25z LlxuIgogI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8KICAgICAiXG4iCiAgICAgIiBOb3Rl czogRGVmYXVsdCB2YWx1ZSBmb3IgYmluYXJ5IGZsYWdzIGlzIG9mZi5cbiIKZGlmZiAtciAwZjli NjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0IHBlcmRpdGlvbi9vcHRpb25zLmgKLS0tIGEvcGVyZGl0 aW9uL29wdGlvbnMuaAlXZWQgTWF5IDExIDA4OjU3OjIyIDIwMTYgKzA5MDAKKysrIGIvcGVyZGl0 aW9uL29wdGlvbnMuaAlXZWQgTWF5IDExIDA5OjI2OjIxIDIwMTYgKzA5MDAKQEAgLTE4NSw2ICsx ODUsOCBAQAogI2RlZmluZSBERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lPTiAi dGxzdjEiCiAjZGVmaW5lIERFRkFVTFRfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiBOVUxM CiAjZGVmaW5lIERFRkFVTFRfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OIE5VTEwKKyNk ZWZpbmUgREVGQVVMVF9TU0xfTElTVEVOX0NPTVBSRVNTSU9OICAgICAgIDAKKyNkZWZpbmUgREVG QVVMVF9TU0xfT1VUR09JTkdfQ09NUFJFU1NJT04gICAgIDAKICNlbmRpZiAvKiBXSVRIX1NTTF9T VVBQT1JUICovCiAKIApAQCAtMjU3LDYgKzI1OSw4IEBACiAgIGNoYXIgICAgICAgICAgICAqc3Ns X291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uOwogICBjaGFyICAgICAgICAgICAgKnNzbF9saXN0 ZW5fbWF4X3Byb3RvX3ZlcnNpb247CiAgIGNoYXIgICAgICAgICAgICAqc3NsX291dGdvaW5nX21h eF9wcm90b192ZXJzaW9uOworICBpbnQgICAgICAgICAgICAgc3NsX2xpc3Rlbl9jb21wcmVzc2lv bjsKKyAgaW50ICAgICAgICAgICAgIHNzbF9vdXRnb2luZ19jb21wcmVzc2lvbjsKICAgZmxhZ190 ICAgICAgICAgIHNzbF9tYXNrOwogfSBvcHRpb25zX3Q7CiAKQEAgLTMyOSw2ICszMzMsOCBAQAog I2RlZmluZSBNQVNLX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lPTiAgICAoZmxhZ190KSAw eDAwMDQwMDAwCiAjZGVmaW5lIE1BU0tfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAg IChmbGFnX3QpIDB4MDAwODAwMDAKICNkZWZpbmUgTUFTS19TU0xfT1VUR09JTkdfTUFYX1BST1RP X1ZFUlNJT04gICAgKGZsYWdfdCkgMHgwMDEwMDAwMAorI2RlZmluZSBNQVNLX1NTTF9MSVNURU5f Q09NUFJFU1NJT04gICAgICAgICAgICAoZmxhZ190KSAweDAwMjAwMDAwCisjZGVmaW5lIE1BU0tf U1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OICAgICAgICAgIChmbGFnX3QpIDB4MDA0MDAwMDAKICNl bmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAKIC8qIApAQCAtMzcxLDYgKzM3Nyw4IEBACiAj ZGVmaW5lIFRBR19TU0xfT1VUR09JTkdfTUlOX1BST1RPX1ZFUlNJT04gICAgIChpbnQpIDE1OQog I2RlZmluZSBUQUdfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAgICAoaW50KSAxNjAK ICNkZWZpbmUgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiAgICAgKGludCkgMTYx CisjZGVmaW5lIFRBR19TU0xfTElTVEVOX0NPTVBSRVNTSU9OICAgICAgICAgICAgIChpbnQpIDE2 MgorI2RlZmluZSBUQUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OICAgICAgICAgICAoaW50KSAx NjMKIAogLypGbGFnIHZhbHVlcyBmb3Igb3B0aW9ucygpKi8KICNkZWZpbmUgT1BUX0VSUiAgICAg ICAgIChmbGFnX3QpIDB4MSAgLypQcmludCBlcnJvciB0byBzdGRlcnIsIGVuYWJsZSBoZWxwKi8K ZGlmZiAtciAwZjliNjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0IHBlcmRpdGlvbi9wZXJkaXRpb24u OAotLS0gYS9wZXJkaXRpb24vcGVyZGl0aW9uLjgJV2VkIE1heSAxMSAwODo1NzoyMiAyMDE2ICsw OTAwCisrKyBiL3BlcmRpdGlvbi9wZXJkaXRpb24uOAlXZWQgTWF5IDExIDA5OjI2OjIxIDIwMTYg KzA5MDAKQEAgLTY5OCw2ICs2OTgsMTIgQEAKIC5zcAogKGRlZmF1bHQgIiIpCiAuVFAKKy5CIFwt XC1zc2xfbGlzdGVuX2NvbXByZXNzaW9uOgorQWxsb3cgU1NML1RMUyBjb21wcmVzc2lvbiB3aGVu IGFjY2VwdGluZyBpbmNvbWluZyBjb25uZWN0aW9ucy4KKy5UUAorLkIgXC1cLXNzbF9vdXRnb2lu Z19jb21wcmVzc2lvbjoKK0FsbG93IFNTTC9UTFMgY29tcHJlc3Npb24gd2hlbiBtYWtpbmcgb3V0 Z29pbmcgY29ubmVjdGlvbnMuCisuVFAKIE5vdGVzOiAKIERlZmF1bHQgdmFsdWUgZm9yIGJpbmFy eSBmbGFncyBpcyBvZmYuCiAuYnIKZGlmZiAtciAwZjliNjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0 IHBlcmRpdGlvbi9zc2wuYwotLS0gYS9wZXJkaXRpb24vc3NsLmMJV2VkIE1heSAxMSAwODo1Nzoy MiAyMDE2ICswOTAwCisrKyBiL3BlcmRpdGlvbi9zc2wuYwlXZWQgTWF5IDExIDA5OjI2OjIxIDIw MTYgKzA5MDAKQEAgLTY3MCw2ICs2NzAsMTQgQEAKIAl9CiAKIAkvKgorCSAqIFNldCBjb21wcmVz c2lvbgorCSAqLworCWlmICgoZmxhZyA9PSBQRVJESVRJT05fU1NMX0NMSUVOVCAmJiAhb3B0LnNz bF9vdXRnb2luZ19jb21wcmVzc2lvbikgJiYKKwkgICAgKGZsYWcgIT0gUEVSRElUSU9OX1NTTF9D TElFTlQgJiYgIW9wdC5zc2xfbGlzdGVuX2NvbXByZXNzaW9uKSkgeworCQlTU0xfQ1RYX3NldF9v cHRpb25zKHNzbF9jdHgsIFNTTF9PUF9OT19DT01QUkVTU0lPTik7CisJfQorCisJLyoKIAkgKiBT ZXQgdGhlIGF2YWlsYWJsZSBjaXBoZXJzCiAJICovCiAJaWYoY2lwaGVycyAmJiBTU0xfQ1RYX3Nl dF9jaXBoZXJfbGlzdChzc2xfY3R4LCBjaXBoZXJzKSA8IDApIHsKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClBlcmRpdGlvbi11c2VycyBtYWlsaW5nIGxp c3QKUGVyZGl0aW9uLXVzZXJzQHZlcmdlbmV0Lm5ldApodHRwczovL2xpc3RzLnZlcmdlbmV0Lm5l dC9saXN0aW5mby9wZXJkaXRpb24tdXNlcnMK