ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggN2ZjOGQ1YS4uN2NjY2VhYiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTY5LDE1ICs2OSwxNSBAQAogIyAgICBCZWZvcmUgY3JlYXRpbmcgYW4gYXJjaGl2ZSBmaXJzdCBkZWxldGUgYWxsIGJhY2t1cCBmaWxlcywgKi5vcmlnLCBldGMuCiAKIE1BSk9SID0gNwotTUlOT1IgPSAwYWEKK01JTk9SID0gMGIKIAogIyBVbmNvbW1lbnQgdGhpcyBsaW5lIGlmIHRoZSBXaW4zMnMgdmVyc2lvbiBpcyB0byBiZSBpbmNsdWRlZC4KLSNET1NCSU5fUyA9ICBkb3NiaW5fcworRE9TQklOX1MgPSAgZG9zYmluX3MKIAogIyBDSEVDS0xJU1QgZm9yIGNyZWF0aW5nIGEgbmV3IHZlcnNpb246CiAjCiAjIC0gVXBkYXRlIFZpbSB2ZXJzaW9uIG51bWJlci4gIEZvciBhIHRlc3QgdmVyc2lvbiBpbjogc3JjL3ZlcnNpb24uaCwgQ29udGVudHMsCi0jICAgTUFKT1IvTUlOT1IgYWJvdmUsIFZJTVJURElSIGFuZCBWRVJTSU9OIGluIHNyYy9NYWtlZmlsZSwgUkVBRE1FKi50eHQsCisjICAgTUFKT1IvTUlOT1IgYWJvdmUsIFZJTU1BSk9SIGFuZCBWSU1NSU5PUiBpbiBzcmMvTWFrZWZpbGUsIFJFQURNRSoudHh0LAogIyAgIHJ1bnRpbWUvZG9jLyoudHh0IGFuZCBuc2lzL2d2aW0ubnNpLiBPdGhlciB0aGluZ3MgaW4gUkVBRE1FX29zMi50eHQuICBGb3IgYQogIyAgIG1pbm9yL21ham9yIHZlcnNpb246IHNyYy9HdmltRXh0L0d2aW1FeHQucmVnLCBzcmMvdmltLmRlZiwgc3JjL3ZpbTE2LmRlZi4KICMgLSBDb3JyZWN0IGluY2x1ZGVkX3BhdGNoZXNbXSBpbiBzcmMvdmVyc2lvbi5jLgpAQCAtOTIsNyArOTIsNyBAQAogIyAtIENoZWNrIGZvciBtaXNzaW5nIGVudHJpZXMgaW4gcnVudGltZS9tYWtlbWVudS52aW0gKHdpdGggY2hlY2ttZW51IHNjcmlwdCkuCiAjIC0gQ2hlY2sgZm9yIG1pc3Npbmcgb3B0aW9ucyBpbiBydW50aW1lL29wdHdpbi52aW0gZXQgYWwuICh3aXRoIGNoZWNrLnZpbSkuCiAjIC0gRG8gIm1ha2UgbWVudSIgdG8gdXBkYXRlIHRoZSBydW50aW1lL3N5bm1lbnUudmltIGZpbGUuCi0jIC0gQWRkIHJlbWFya3MgZm9yIGNoYW5nZXMgdG8gcnVudGltZS9kb2MvdmVyc2lvbjYudHh0LgorIyAtIEFkZCByZW1hcmtzIGZvciBjaGFuZ2VzIHRvIHJ1bnRpbWUvZG9jL3ZlcnNpb243LnR4dC4KICMgLSBJbiBydW50aW1lL2RvYyBydW4gIm1ha2UiIGFuZCAibWFrZSBodG1sIiB0byBjaGVjayBmb3IgZXJyb3JzLgogIyAtIENoZWNrIGlmIHNyYy9NYWtlZmlsZSBhbmQgc3JjL2ZlYXR1cmUuaCBkb24ndCBjb250YWluIGFueSBwZXJzb25hbAogIyAgIHByZWZlcmVuY2VzIG9yIHRoZSBHVEssIFBlcmwsIGV0Yy4gbWVudGlvbmVkIGFib3ZlLgpAQCAtMTM5LDEzICsxMzksMTMgQEAKICMgV2luMzIgR1VJIHZlcnNpb246CiAjIC0gIm5tYWtlIC1mIE1ha2VfbXZjLm1hayBHVUk9eWVzLgogIyAtIG1vdmUgImd2aW0uZXhlIiB0byBoZXJlIChvdGhlcndpc2UgdGhlIE9MRSB2ZXJzaW9uIHdpbGwgb3ZlcndyaXRlIGl0KS4KLSMgLSBNb3ZlIE9iakMvZ3ZpbS5wZGIgdG8gaGVyZS4KKyMgLSBNb3ZlIE9iakcvZ3ZpbS5wZGIgdG8gaGVyZS4KICMgLSBEZWxldGUgdmltcnVuLmV4ZSwgaW5zdGFsbC5leGUgYW5kIHVuaW5zdGFsbC5leGUuCiAjIC0gQ29weSAiR3ZpbUV4dC9ndmltZXh0LmRsbCIgdG8gaGVyZS4KICMgV2luMzIgR1VJIHZlcnNpb24gd2l0aCBPTEUsIFBFUkwsIFRDTCwgUFlUSE9OIGFuZCBkeW5hbWljIElNRToKICMgLSBSdW4gc3JjL2JpZ3ZpbS5iYXQgKCJubWFrZSAtZiBNYWtlX212Yy5tYWsgR1VJPXllcyBPTEU9eWVzIElNRT15ZXMgLi4uKQogIyAtIFJlbmFtZSAiZ3ZpbS5leGUiIHRvICJndmltX29sZS5leGUiLgotIyAtIFJlbmFtZSBPYmpDL2d2aW0ucGRiIHRvICJndmltX29sZS5wZGIiLgorIyAtIFJlbmFtZSBPYmpHT0xZVFIvZ3ZpbS5wZGIgdG8gImd2aW1fb2xlLnBkYiIuCiAjIC0gRGVsZXRlIGluc3RhbGwuZXhlIGFuZCB1bmluc3RhbGwuZXhlLgogIyAtIElmIGJ1aWxkaW5nIHRoZSBXaW4zMnMgdmVyc2lvbiBkZWxldGUgdmltcnVuLmV4ZS4KICMgV2luMzJzIEdVSSB2ZXJzaW9uOgpkaWZmIC0tZ2l0IGEvUkVBRE1FLnR4dCBiL1JFQURNRS50eHQKaW5kZXggZmUzMjIyOS4uOGQyNmEzYiAxMDA2NDQKLS0tIGEvUkVBRE1FLnR4dAorKysgYi9SRUFETUUudHh0CkBAIC0xLDQgKzEsNCBAQAotUkVBRE1FLnR4dCBmb3IgdmVyc2lvbiA3LjBhYSBvZiBWaW06IFZpIElNcHJvdmVkLgorUkVBRE1FLnR4dCBmb3IgdmVyc2lvbiA3LjBiIG9mIFZpbTogVmkgSU1wcm92ZWQuCiAKIAogV0hBVCBJUyBWSU0KZGlmZiAtLWdpdCBhL1JFQURNRV9hbWkudHh0IGIvUkVBRE1FX2FtaS50eHQKaW5kZXggYmE1NDI2Mi4uYzFlNThkYiAxMDA2NDQKLS0tIGEvUkVBRE1FX2FtaS50eHQKKysrIGIvUkVBRE1FX2FtaS50eHQKQEAgLTEsNCArMSw0IEBACi1SRUFETUVfYW1pLnR4dCBmb3IgdmVyc2lvbiA3LjBhYSBvZiBWaW06IFZpIElNcHJvdmVkLgorUkVBRE1FX2FtaS50eHQgZm9yIHZlcnNpb24gNy4wYiBvZiBWaW06IFZpIElNcHJvdmVkLgogCiBUaGlzIGZpbGUgZXhwbGFpbnMgdGhlIGluc3RhbGxhdGlvbiBvZiBWaW0gb24gQW1pZ2Egc3lzdGVtcy4KIFNlZSBSRUFETUUudHh0IGZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IFZpbS4KZGlmZiAtLWdpdCBhL1JFQURNRV9hbWliaW4udHh0IGIvUkVBRE1FX2FtaWJpbi50eHQKaW5kZXggOWQ3ODRhMi4uZjM5ZWI1ZSAxMDA2NDQKLS0tIGEvUkVBRE1FX2FtaWJpbi50eHQKKysrIGIvUkVBRE1FX2FtaWJpbi50eHQKQEAgLTEsNCArMSw0IEBACi1SRUFETUVfYW1pYmluLnR4dCBmb3IgdmVyc2lvbiA3LjBhYSBvZiBWaW06IFZpIElNcHJvdmVkLgorUkVBRE1FX2FtaWJpbi50eHQgZm9yIHZlcnNpb24gNy4wYiBvZiBWaW06IFZpIElNcHJvdmVkLgogCiBTZWUgIlJFQURNRS50eHQiIGZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IFZpbS4KIFNlZSAiUkVBRE1FX2FtaS50eHQiIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGZvciB0aGUgQW1pZ2EuCmRpZmYgLS1naXQgYS9SRUFETUVfZG9zLnR4dCBiL1JFQURNRV9kb3MudHh0CmluZGV4IDNjZGM1MzIuLjllY2ZlYzYgMTAwNjQ0Ci0tLSBhL1JFQURNRV9kb3MudHh0CisrKyBiL1JFQURNRV9kb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotUkVBRE1FX2Rvcy50eHQgZm9yIHZlcnNpb24gNy4wYWEgb2YgVmltOiBWaSBJTXByb3ZlZC4KK1JFQURNRV9kb3MudHh0IGZvciB2ZXJzaW9uIDcuMGIgb2YgVmltOiBWaSBJTXByb3ZlZC4KIAogVGhpcyBmaWxlIGV4cGxhaW5zIHRoZSBpbnN0YWxsYXRpb24gb2YgVmltIG9uIE1TLURPUyBhbmQgTVMtV2luZG93cyBzeXN0ZW1zLgogU2VlICJSRUFETUUudHh0IiBmb3IgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBWaW0uCmRpZmYgLS1naXQgYS9SRUFETUVfZXh0cmEudHh0IGIvUkVBRE1FX2V4dHJhLnR4dAppbmRleCBkOTM1ODU2Li41ZDQ5YTRmIDEwMDY0NAotLS0gYS9SRUFETUVfZXh0cmEudHh0CisrKyBiL1JFQURNRV9leHRyYS50eHQKQEAgLTEsNCArMSw0IEBACi1SRUFETUVfZXh0cmEudHh0IGZvciB2ZXJzaW9uIDcuMGFhIG9mIFZpbTogVmkgSU1wcm92ZWQuCitSRUFETUVfZXh0cmEudHh0IGZvciB2ZXJzaW9uIDcuMGIgb2YgVmltOiBWaSBJTXByb3ZlZC4KIAogVGhlIGV4dHJhIGFyY2hpdmUgb2YgVmltIGlzIHRvIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgc291cmNlIGFyY2hpdmUKICh2aW0tNi4wLXNyYy50YXIuZ3opLiAgVGhlIGV4dHJhIGFyY2hpdmUgaXMgdXNlbGVzcyB3aXRob3V0IGl0LgpkaWZmIC0tZ2l0IGEvUkVBRE1FX21hYy50eHQgYi9SRUFETUVfbWFjLnR4dAppbmRleCA4M2UzYzY0Li4yNmQ4MDlhIDEwMDY0NAotLS0gYS9SRUFETUVfbWFjLnR4dAorKysgYi9SRUFETUVfbWFjLnR4dApAQCAtMSw0ICsxLDQgQEAKLVJFQURNRV9tYWMudHh0IGZvciB2ZXJzaW9uIDcuMGFhIG9mIFZpbTogVmkgSU1wcm92ZWQuCitSRUFETUVfbWFjLnR4dCBmb3IgdmVyc2lvbiA3LjBiIG9mIFZpbTogVmkgSU1wcm92ZWQuCiAKIFRoaXMgZmlsZSBleHBsYWlucyB0aGUgaW5zdGFsbGF0aW9uIG9mIFZpbSBvbiBNYWNpbnRvc2ggc3lzdGVtcy4KIFNlZSAiUkVBRE1FLnR4dCIgZm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgVmltLgpkaWZmIC0tZ2l0IGEvUkVBRE1FX29sZS50eHQgYi9SRUFETUVfb2xlLnR4dAppbmRleCA5MGZjZmEwLi5iZmJlNGVjIDEwMDY0NAotLS0gYS9SRUFETUVfb2xlLnR4dAorKysgYi9SRUFETUVfb2xlLnR4dApAQCAtMSw0ICsxLDQgQEAKLVJFQURNRV9vbGUudHh0IGZvciB2ZXJzaW9uIDcuMGFhIG9mIFZpbTogVmkgSU1wcm92ZWQuCitSRUFETUVfb2xlLnR4dCBmb3IgdmVyc2lvbiA3LjBiIG9mIFZpbTogVmkgSU1wcm92ZWQuCiAKIFRoaXMgYXJjaGl2ZSBjb250YWlucyBndmltLmV4ZSB3aXRoIE9MRSBpbnRlcmZhY2UgYW5kIFZpc1ZpbS4KIFRoaXMgdmVyc2lvbiBvZiBndmltLmV4ZSBjYW4gYWxzbyBsb2FkIGEgbnVtYmVyIG9mIGludGVyZmFjZSBkeW5hbWljYWxseSAoeW91CmRpZmYgLS1naXQgYS9SRUFETUVfb3MzOTAudHh0IGIvUkVBRE1FX29zMzkwLnR4dAppbmRleCAyMTNlZTM2Li4zNzYxYzBmIDEwMDY0NAotLS0gYS9SRUFETUVfb3MzOTAudHh0CisrKyBiL1JFQURNRV9vczM5MC50eHQKQEAgLTEsNCArMSw0IEBACi1SRUFETUVfb3NfMzkwLnR4dCBmb3IgdmVyc2lvbiA3LjBhYSBvZiBWaW06IFZpIElNcHJvdmVkLgorUkVBRE1FX29zXzM5MC50eHQgZm9yIHZlcnNpb24gNy4wYiBvZiBWaW06IFZpIElNcHJvdmVkLgogCiBXZWxjb21lIHRvIHRoZSBPUy8zOTAgVW5peCBwb3J0IG9mIFZJTS4KIApkaWZmIC0tZ2l0IGEvUkVBRE1FX3czMnMudHh0IGIvUkVBRE1FX3czMnMudHh0CmluZGV4IDQxYjBjZGMuLjAyN2UzMTIgMTAwNjQ0Ci0tLSBhL1JFQURNRV93MzJzLnR4dAorKysgYi9SRUFETUVfdzMycy50eHQKQEAgLTEsNCArMSw0IEBACi1SRUFETUVfdzMycy50eHQgZm9yIHZlcnNpb24gNy4wYWEgb2YgVmltOiBWaSBJTXByb3ZlZC4KK1JFQURNRV93MzJzLnR4dCBmb3IgdmVyc2lvbiA3LjBiIG9mIFZpbTogVmkgSU1wcm92ZWQuCiAKIFRoaXMgYXJjaGl2ZSBjb250YWlucyB0aGUgZ3ZpbS5leGUgdGhhdCB3YXMgc3BlY2lmaWNhbGx5IGNvbXBpbGVkIGZvciB1c2UgaW4KIHRoZSBXaW4zMnMgc3Vic3lzdGVtIGluIE1TLVdpbmRvd3MgMy4xIGFuZCAzLjExLgpkaWZmIC0tZ2l0IGEvbnNpcy9ndmltLm5zaSBiL25zaXMvZ3ZpbS5uc2kKaW5kZXggZTE4NDIzOS4uODY5OGY5MyAxMDA2NDQKLS0tIGEvbnNpcy9ndmltLm5zaQorKysgYi9uc2lzL2d2aW0ubnNpCkBAIC0yMiw3ICsyMiw3IEBACiAhZGVmaW5lIEhBVkVfTkxTCiAKICFkZWZpbmUgVkVSX01BSk9SIDcKLSFkZWZpbmUgVkVSX01JTk9SIDBhYQorIWRlZmluZSBWRVJfTUlOT1IgMGIKIAogIyAtLS0tLS0tLS0tLSBObyBjb25maWd1cmFibGUgc2V0dGluZ3MgYmVsb3cgdGhpcyBsaW5lIC0tLS0tLS0tLS0tCiAKQEAgLTIxNyw2ICsyMTcsMTIgQEAKIAlTZXRPdXRQYXRoICQwXHN5bnRheAogCUZpbGUgJHtWSU1SVH1cc3ludGF4XCouKgogCisJU2V0T3V0UGF0aCAkMFxzcGVsbAorCUZpbGUgJHtWSU1SVH1cc3BlbGxcKi50eHQKKwlGaWxlICR7VklNUlR9XHNwZWxsXCoudmltCisJRmlsZSAke1ZJTVJUfVxzcGVsbFwqLnNwbAorCUZpbGUgJHtWSU1SVH1cc3BlbGxcKi5zdWcKKwogCVNldE91dFBhdGggJDBcdG9vbHMKIAlGaWxlICR7VklNUlR9XHRvb2xzXCouKgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3LnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCmluZGV4IDRmOGYwYTEuLjM5OWY2NzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cncudmltCkBAIC0xLDcgKzEsNyBAQAogIiBuZXRydy52aW06IEhhbmRsZXMgZmlsZSB0cmFuc2ZlciBhbmQgcmVtb3RlIGRpcmVjdG9yeSBsaXN0aW5nIGFjcm9zcyBhIG5ldHdvcmsKICIgICAgICAgICAgICBBVVRPTE9BRCBQT1JUSU9OCi0iIERhdGU6CQlNYXIgMjEsIDIwMDYKLSIgVmVyc2lvbjoJODIKKyIgRGF0ZToJCU1hciAyMiwgMjAwNgorIiBWZXJzaW9uOgk4MwogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxkcmNoaXBOT1NQQU0gYXQgY2FtcGJlbGxmYW1pbHkgZG90IGJpej4KICIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTA3NSAxIDpBdXRvSW5zdGFsbDogbmV0cncudmltCiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKQEAgLTIzLDcgKzIzLDcgQEAKIGlmICZjcCB8fCBleGlzdHMoImc6bG9hZGVkX25ldHJ3IikKICAgZmluaXNoCiBlbmRpZgotbGV0IGc6bG9hZGVkX25ldHJ3ID0gInY4MiIKK2xldCBnOmxvYWRlZF9uZXRydyA9ICJ2ODMiCiBpZiB2OnZlcnNpb24gPCA3MDAKICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gIioqKm5ldHJ3KioqIHlvdSBuZWVkIHZpbSB2ZXJzaW9uIDcuMCBvciBsYXRlciBmb3IgdmVyc2lvbiAiLmc6bG9hZGVkX25ldHJ3LiIgb2YgbmV0cnciIHwgZWNob2hsIE5vbmUKICBmaW5pc2gKQEAgLTEyODAsNiArMTI4MCw4IEBACiAgIHNldGxvY2FsIGJ0PW5vZmlsZSBub2JsIG5vbnUgbm9zd2YKICAgaWYgZzpuZXRyd19mYXN0YnJvd3NlID49IDEKICAgIHNldGxvY2FsIGJoPWhpZGUKKyAgZWxzZQorICAgc2V0bG9jYWwgYmg9ZGVsZXRlCiAgIGVuZGlmCiAKICAgIiBzYXZlIGN1cnJlbnQgZGlyZWN0b3J5IG9uIGRpcmVjdG9yeSBoaXN0b3J5IGxpc3QKQEAgLTE1MDgsNiArMTUxMCw4IEBACiAgICBzZXRsb2NhbCBtYSBub2JsCiAgICBpZiBnOm5ldHJ3X2Zhc3Ricm93c2UgPj0gMQogICAgIHNldGxvY2FsIGJoPWhpZGUKKyAgIGVsc2UKKyAgICBzZXRsb2NhbCBiaD1kZWxldGUKICAgIGVuZGlmCiAgICAlZAogCkBAIC0xNTM4LDcgKzE1NDIsNyBAQAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgIE5ldEdldFdvcmQ6IGl0IGdldHMgdGhlIGRpcmVjdG9yeSBuYW1lZCB1bmRlciB0aGUgY3Vyc29yIHt7ezIKIGZ1biEgczpOZXRHZXRXb3JkKCkKLSIgIGNhbGwgRGZ1bmMoIk5ldEdldFdvcmQoKSBsaW5lIyIubGluZSgiLiIpKQorIiAgY2FsbCBEZnVuYygiTmV0R2V0V29yZCgpIGxpbmUjIi5saW5lKCIuIikuIiBsb25nbGlzdD0iLmc6bmV0cndfbG9uZ2xpc3QuIiB2aXJ0Y29sPSIudmlydGNvbCgiLiIpKQogICBjYWxsIHM6VXNlQnVmV2luVmFycygpCiAKICAgIiBpbnN1cmUgdGhhdCB3Om5ldHJ3X2xvbmdsaXN0IGlzIHNldCB1cApAQCAtMTU0OCw2ICsxNTUyLDcgQEAKICAgIGVsc2UKICAgICBsZXQgdzpuZXRyd19sb25nbGlzdD0gMAogICAgZW5kaWYKKyIgICBjYWxsIERlY2hvKCJ3Om5ldHJ3X2xvbmdsaXN0PSIudzpuZXRyd19sb25nbGlzdCkKICAgZW5kaWYKIAogICBpZiBleGlzdHMoInc6bmV0cndfYmFubmVyY250IikgJiYgbGluZSgiLiIpIDwgdzpuZXRyd19iYW5uZXJjbnQKQEAgLTE1OTYsNyArMTYwMSw3IEBACiAgICBlbmRpZgogCiAgICBsZXQgZmlsZXN0YXJ0ID0gKHZpcnRjb2woIi4iKS9iOm5ldHJ3X2NwZikqYjpuZXRyd19jcGYKLSIgICBjYWxsIERlY2hvKCJ2aXJ0Y29sPSIudmlydGNvbCgiLiIpLiIgY3BmPSIuYjpuZXRyd19jcGYuIiBiYW5uZXJjbnQ9Ii53Om5ldHJ3X2Jhbm5lcmNudC4iIGZpbGVzdGFydD0iLmZpbGVzdGFydCkKKyIgICBjYWxsIERlY2hvKCJmaWxlc3RhcnQ9IChbdmlydGNvbD0iLnZpcnRjb2woIi4iKS4iXS9bYjpuZXRyd19jcGY9Ii5iOm5ldHJ3X2NwZi4iXSkqYjpuZXRyd19jcGY9Ii5maWxlc3RhcnQuIiAgYmFubmVyY250PSIudzpuZXRyd19iYW5uZXJjbnQpCiAiICAgY2FsbCBEZWNobygiMTogZGlybmFtZTwiLmRpcm5hbWUuIj4iKQogICAgaWYgZmlsZXN0YXJ0ID4gMHxsZXQgZGlybmFtZT0gc3Vic3RpdHV0ZShkaXJuYW1lLCdeLlx7Jy5maWxlc3RhcnQuJ30nLCcnLCcnKXxlbmRpZgogIiAgIGNhbGwgRGVjaG8oIjI6IGRpcm5hbWU8Ii5kaXJuYW1lLiI+IikKQEAgLTE2MTMsNyArMTYxOCw3IEBACiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBOZXRCcm93c2VSbTogcmVtb3ZlL2RlbGV0ZSBhIHJlbW90ZSBmaWxlIG9yIGRpcmVjdG9yeSB7e3syCiBmdW4hIHM6TmV0QnJvd3NlUm0odXNyaG9zdCxwYXRoKSByYW5nZQotIiAgY2FsbCBEZnVuYygiTmV0QnJvd3NlUm0odXNyaG9zdDwiLmE6dXNyaG9zdC4iPiBwYXRoPCIuYTpwYXRoLiI+KSIpCisiICBjYWxsIERmdW5jKCJOZXRCcm93c2VSbSh1c3Job3N0PCIuYTp1c3Job3N0LiI+IHBhdGg8Ii5hOnBhdGguIj4pIHZpcnRjb2w9Ii52aXJ0Y29sKCIuIikpCiAiICBjYWxsIERlY2hvKCJmaXJzdGxpbmU9Ii5hOmZpcnN0bGluZS4iIGxhc3RsaW5lPSIuYTpsYXN0bGluZSkKIAogICAiIHByZXBhcmF0aW9uIGZvciByZW1vdmluZyBtdWx0aXBsZSBmaWxlcy9kaXJlY3RvcmllcwpAQCAtMTYyNCw3ICsxNjI5LDYgQEAKICAgd2hpbGUgY3RyIDw9IGE6bGFzdGxpbmUKICAgIGV4ZSBjdHIKIAotICAgbm9ybSEgMAogICAgbGV0IHJtZmlsZT0gczpOZXRHZXRXb3JkKCkKICIgICBjYWxsIERlY2hvKCJybWZpbGU8Ii5ybWZpbGUuIj4iKQogCkBAIC0yODQ5LDYgKzI4NTMsOCBAQAogICBzZXRsb2NhbCBidD1ub2ZpbGUgbm9ibCBtYSBub251IG5vc3dmIG5vd3JhcAogICBpZiBnOm5ldHJ3X2Zhc3Ricm93c2UgPj0gMgogICAgc2V0bG9jYWwgYmg9aGlkZQorICBlbHNlCisgICBzZXRsb2NhbCBiaD1kZWxldGUKICAgZW5kaWYKICAga2VlcGFsdCBzaWxlbnQhICVkCiAKQEAgLTMxNzgsNyArMzE4NCw3IEBACiAgIGZvciBpYnVmIGluIHM6bmV0cndfYnJvd3NlbGlzdAogICAgaWYgYnVmd2lubnIoaWJ1ZikgPT0gLTEKICIgICAgY2FsbCBEZWNobygid2lwaW5nICBidWYjIi5pYnVmKQotICAgIGV4ZSAiYncgIi5pYnVmCisgICAgZXhlICJzaWxlbnQhIGJ3ICIuaWJ1ZgogICAgIGNhbGwgcmVtb3ZlKHM6bmV0cndfYnJvd3NlbGlzdCxpYmwpCiAiICAgIGNhbGwgRGVjaG8oImJyb3dzZWxpc3Q9Ii5zdHJpbmcoczpuZXRyd19icm93c2VsaXN0KSkKICAgICBjb250aW51ZQpAQCAtMzg5OCwxMSArMzkwNCwxMSBAQAogCiAgICIgR2V0IFRlbXBvcmFyeSBGaWxlbmFtZQogICBsZXQgdzphaWtlZXAgICA9ICZhaQotICAiIHJlY29yZCBhdXRvY2hkaXIgc2V0dGluZyBhbmQgdGhlbiBpbnN1cmUgaXRzIHVuc2V0ICh0bnggdG8gRGF2aWQgRmlzaGJ1cm4pCi0gIGlmICZhY2QgJiYgKGhhcygibmV0YmVhbnNfaW50ZyIpIHx8IGhhcygic3VuX3dvcmtzaG9wIikpCi0gICBzZXQgbm9hY2QKLSAgIGVjaG9obCBXYXJuaW5nIHwgZWNob21zZyAiKioqd2FybmluZyoqKiBkaXJlY3RvcnkgYnJvd3NpbmcgYW5kIHRoZSBhY2Qgc2V0dGluZyBhcmUgaW5jb21wYXRpYmxlIiB8ZWNob2hsIE5vbmUKLSAgZW5kaWYKKyIgICIgbmV0cncgYW5kIHRoZSBhY2Qgb3B0aW9uIGRvIG5vdCB3b3JrIHRvZ2V0aGVyIHByb3Blcmx5CisiICBpZiAmYWNkICYmIChoYXMoIm5ldGJlYW5zX2ludGciKSB8fCBoYXMoInN1bl93b3Jrc2hvcCIpKQorIiAgIHNldCBub2FjZAorIiAgIGVjaG9obCBXYXJuaW5nIHwgZWNob21zZyAiKioqd2FybmluZyoqKiBkaXJlY3RvcnkgYnJvd3NpbmcgYW5kIHRoZSBhY2Qgc2V0dGluZyBhcmUgaW5jb21wYXRpYmxlIiB8ZWNob2hsIE5vbmUKKyIgIGVuZGlmCiAgIGxldCB3OmZva2VlcCAgICA9ICZmbwogICBsZXQgdzphaWtlZXAgICAgPSAmYWkKICAgbGV0IHc6Y2lrZWVwICAgID0gJmNpCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0gYi9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KaW5kZXggMjI0M2VhOC4uNDVhYTM1MyAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC96aXAudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQpAQCAtNzUsNyArNzUsNyBAQAogICAwZAogICAkCiAKLSAgY2FsbCBEZWNobygiZXhlIHNpbGVudCByISB1bnppcCAtbCAnIi5lc2NhcGUoYTp6aXBmaWxlLHM6emlwZmlsZV9lc2NhcGUpLiInIikKKyIgIGNhbGwgRGVjaG8oImV4ZSBzaWxlbnQgciEgdW56aXAgLWwgJyIuZXNjYXBlKGE6emlwZmlsZSxzOnppcGZpbGVfZXNjYXBlKS4iJyIpCiAgIGV4ZSAic2lsZW50IHIhIHVuemlwIC1sICciLmVzY2FwZShhOnppcGZpbGUsczp6aXBmaWxlX2VzY2FwZSkuIiciCiAgICRkCiAgIHNpbGVudCA0LCR2L15cc1wrXGRcK1xzXHswLDV9XGQvZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvTWFrZWZpbGUgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQppbmRleCA3ZGNiY2Y1Li41MzJjYzJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9NYWtlZmlsZQorKysgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQpAQCAtMTIzLDYgKzEyMyw3IEBACiAJdXNyXzI5LnR4dCBcCiAJdXNyXzMwLnR4dCBcCiAJdXNyXzMxLnR4dCBcCisJdXNyXzMyLnR4dCBcCiAJdXNyXzQwLnR4dCBcCiAJdXNyXzQxLnR4dCBcCiAJdXNyXzQyLnR4dCBcCkBAIC0yNTEsNiArMjUyLDcgQEAKIAl1c3JfMjkuaHRtbCBcCiAJdXNyXzMwLmh0bWwgXAogCXVzcl8zMS5odG1sIFwKKwl1c3JfMzIuaHRtbCBcCiAJdXNyXzQwLmh0bWwgXAogCXVzcl80MS5odG1sIFwKIAl1c3JfNDIuaHRtbCBcCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9hdXRvY21kLnR4dCBiL3J1bnRpbWUvZG9jL2F1dG9jbWQudHh0CmluZGV4IDRjMTlmMWQuLmNjZTc3NDUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2F1dG9jbWQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2F1dG9jbWQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmF1dG9jbWQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAxNQorKmF1dG9jbWQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDE1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9jaGFuZ2UudHh0IGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dAppbmRleCA0MDg2MzIyLi4wMDI2OWU3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDE2CisqY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggNDM5M2M0NC4uMDgyNDE1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTEsNCArMSw0IEBACi0qY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDE2CisqY21kbGluZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RlYnVnLnR4dCBiL3J1bnRpbWUvZG9jL2RlYnVnLnR4dAppbmRleCAxN2JiZTUyLi4wMDAwYTNlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9kZWJ1Zy50eHQKKysrIGIvcnVudGltZS9kb2MvZGVidWcudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRlYnVnLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IERlYyAxNworKmRlYnVnLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDE3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQgYi9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQKaW5kZXggNTY2YjgzYS4uNGY0ZDk4YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGVidWdnZXIudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RlYnVnZ2VyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpkZWJ1Z2dlci50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypkZWJ1Z2dlci50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IGI5ZTRiOTAuLjg1ZjUwMjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwOQorKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kaWZmLnR4dCBiL3J1bnRpbWUvZG9jL2RpZmYudHh0CmluZGV4IDU3N2IyMTYuLmRmZDlhYzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RpZmYudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RpZmYudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRpZmYudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAxNQorKmRpZmYudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDE1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kaWdyYXBoLnR4dCBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CmluZGV4IGM3NTcwOGUuLjk5NWUwZDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAxMQorKmRpZ3JhcGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDExCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9lZGl0aW5nLnR4dCBiL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CmluZGV4IDM4MTE1YWEuLjljODA2M2UgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0CkBAIC0xLDQgKzEsNCBAQAotKmVkaXRpbmcudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgorKmVkaXRpbmcudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9mb2xkLnR4dCBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CmluZGV4IGM3YTBhNzkuLmZhODU2OGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2ZvbGQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZvbGQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmZvbGQudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAxMAorKmZvbGQudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDEwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWkudHh0IGIvcnVudGltZS9kb2MvZ3VpLnR4dAppbmRleCBmNzlmODRlLi5jMTQ0NmRhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ndWkudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aS50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIwCisqZ3VpLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV93MTYudHh0IGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKaW5kZXggNjA1ZTc3ZS4uYjIwYmY0NCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3cxNi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqZ3VpX3cxNi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV93MzIudHh0IGIvcnVudGltZS9kb2MvZ3VpX3czMi50eHQKaW5kZXggMmM3MGViNy4uNDcyYmY0ZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3czMi50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3czMi50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3czMi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqZ3VpX3czMi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0IGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKaW5kZXggODI1ZmYzYy4uOTdiOTE0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDA2CisqZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMDYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dCBiL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dAppbmRleCA3NDg3ZTYyLi4yZjJmYjc1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQKKysrIGIvcnVudGltZS9kb2MvaGFuZ3VsaW4udHh0CkBAIC0xLDQgKzEsNCBAQAotKmhhbmd1bGluLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKmhhbmd1bGluLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IENoaS1EZW9rIEh3YW5nIGFuZCBTdW5nLUh5dW4gTmFtCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IGU2ZTNiZmEuLjhiYzRiMzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTcKKypoZWxwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKIAogCQkJVklNIC0gbWFpbiBoZWxwIGZpbGUKIAkJCQkJCQkJCSBrCkBAIC03MSw2ICs3MSw3IEBACiB8dXNyXzI5LnR4dHwgIE1vdmluZyB0aHJvdWdoIHByb2dyYW1zCiB8dXNyXzMwLnR4dHwgIEVkaXRpbmcgcHJvZ3JhbXMKIHx1c3JfMzEudHh0fCAgRXhwbG9pdGluZyB0aGUgR1VJCit8dXNyXzMyLnR4dHwgIFRoZSB1bmRvIHRyZWUKIAogVHVuaW5nIFZpbSB+CiB8dXNyXzQwLnR4dHwgIE1ha2UgbmV3IGNvbW1hbmRzCkBAIC0xOTQsMTMgKzE5NSw2IEBACiB8cGlfemlwLnR4dHwJWmlwIGFyY2hpdmUgZXhwbG9yZXIKIAogTE9DQUwgQURESVRJT05TOgkJCQkqbG9jYWwtYWRkaXRpb25zKgotfGNlY3V0aWwudHh0fAlEckNoaXAncyBVdGlsaXRpZXMJCQkJSnVuIDExLCAyMDA0Ci18ZW5nc3BjaGsudHh0fAlFbmdsaXNoIFNwZWxsaW5nIENoZWNrZXIgICAodjYxKQlNYXIgMTQsIDIwMDUKLXxleGFtcGxlLnR4dHwJRXhhbXBsZSBmb3IgYSBsb2NhbGx5IGFkZGVkIGhlbHAgZmlsZQotfG1hdGNoaXQudHh0fCAgIEV4dGVuZGVkICIlIiBtYXRjaGluZwotfHRlc3QudHh0fAlUZXN0aW5nIHRoZSBo6WxwIGP2bW3lbmQgbvR3Ci18dHlwZWNvcnIudHh0fAlQbHVnaW4gZm9yIGNvcnJlY3RpbmcgdHlwaW5nIG1pc3Rha2VzCi18aGVscHAudHh0fAlEdW1teSBsaW5lIHRvIGF2b2lkIGFuIGVycm9yIG1lc3NhZ2UKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqYmFycyoJCUJhcnMgZXhhbXBsZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0IGIvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0CmluZGV4IDE4M2NhMzAuLmYwOTM3ZDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX2NzY29wLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9jc2NvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfY3Njb3AudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqaWZfY3Njb3AudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQW5keSBLYWhuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9tenNjaC50eHQgYi9ydW50aW1lL2RvYy9pZl9tenNjaC50eHQKaW5kZXggNWQ0MWI0Yi4uYzhhMjQxNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfbXpzY2gudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX216c2NoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9tenNjaC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl9tenNjaC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTZXJnZXkgS2hvcmV2CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0IGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dAppbmRleCBlZmY3YmIyLi4yODQyMjQyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9vbGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CisqaWZfb2xlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcGVybC50eHQgYi9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dAppbmRleCA3MzA4YzBkLi42OTE3YmQ4IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9wZXJsLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKKyppZl9wZXJsLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTdmVuIFZlcmRvb2xhZWdlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CmluZGV4IGIwZjYyODYuLjlkZDIwODcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3B5dGgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3B5dGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEphbiAyMAorKmlmX3B5dGgudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSmFuIDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgTW9vcmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3J1YnkudHh0IGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKaW5kZXggMTk0YjhkMS4uY2ViMzI4MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CisqaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDYKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU2h1Z28gTWFlZGEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dAppbmRleCBhNTVjN2MxLi42ZjE4ZDEyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfc25pZmYudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3NuaWZmLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqaWZfc25pZmYudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3RjbC50eHQKaW5kZXggY2VlMDM3MC4uZTcyODBjNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl90Y2wudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNgorKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA2CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEluZ28gV2lsa2VuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0IGIvcnVudGltZS9kb2MvaW5kZW50LnR4dAppbmRleCBmMjZjNTQwLi41ODA1ZDNiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDMwCisqaW5kZW50LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dCBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dAppbmRleCA3MmZhNWUzLi4zMDVkOWEzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRleC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMAorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMDg4LDYgKzEwODgsNyBAQAogfDpjZXhwcnwJOmNleFtwcl0JcmVhZCBlcnJvcnMgZnJvbSBleHByIGFuZCBqdW1wIHRvIGZpcnN0CiB8OmNmaWxlfAk6Y2ZbaWxlXQlyZWFkIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcyBhbmQganVtcCB0byBmaXJzdAogfDpjZmlyc3R8CTpjZmlyW3N0XQlnbyB0byB0aGUgc3BlY2lmaWVkIGVycm9yLCBkZWZhdWx0IGZpcnN0IG9uZQorfDpjZ2V0YnVmZmVyfAk6Y2dldGJbdWZmZXJdCWdldCBlcnJvcnMgZnJvbSBidWZmZXIKIHw6Y2dldGV4cHJ8CTpjZ2V0ZVt4cHJdCWdldCBlcnJvcnMgZnJvbSBleHByCiB8OmNnZXRmaWxlfAk6Y2dbZXRmaWxlXQlyZWFkIGZpbGUgd2l0aCBlcnJvciBtZXNzYWdlcwogfDpjaGFuZ2VzfAk6Y2hhW25nZXNdCXByaW50IHRoZSBjaGFuZ2UgbGlzdApAQCAtMTI0Miw2ICsxMjQzLDcgQEAKIHw6bGV4cHJ8CTpsZXhbcHJdCXJlYWQgbG9jYXRpb25zIGZyb20gZXhwciBhbmQganVtcCB0byBmaXJzdAogfDpsZmlsZXwJOmxmW2lsZV0JcmVhZCBmaWxlIHdpdGggbG9jYXRpb25zIGFuZCBqdW1wIHRvIGZpcnN0CiB8OmxmaXJzdHwJOmxmaXJbc3RdCWdvIHRvIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24sIGRlZmF1bHQgZmlyc3Qgb25lCit8OmxnZXRidWZmZXJ8CTpsZ2V0Ylt1ZmZlcl0JZ2V0IGxvY2F0aW9ucyBmcm9tIGJ1ZmZlcgogfDpsZ2V0ZXhwcnwJOmxnZXRlW3hwcl0JZ2V0IGxvY2F0aW9ucyBmcm9tIGV4cHIKIHw6bGdldGZpbGV8CTpsZ1tldGZpbGVdCXJlYWQgZmlsZSB3aXRoIGxvY2F0aW9ucwogfDpsZ3JlcHwJOmxncltlcF0JcnVuICdncmVwcHJnJyBhbmQganVtcCB0byBmaXJzdCBtYXRjaApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggMWJmOGY2ZC4uMmJjZmU2YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMQorKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYXAudHh0IGIvcnVudGltZS9kb2MvbWFwLnR4dAppbmRleCBkZWZjMzA4Li5mNjAxMWZjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL21hcC50eHQKQEAgLTEsNCArMSw0IEBACi0qbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIwCisqbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21ieXRlLnR4dCBiL3J1bnRpbWUvZG9jL21ieXRlLnR4dAppbmRleCA1NGRjYmE4Li5jMTk0ZDZiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYnl0ZS50eHQKKysrIGIvcnVudGltZS9kb2MvbWJ5dGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1ieXRlLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwNQorKm1ieXRlLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIgZXQgYWwuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dCBiL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CmluZGV4IGRhZDVlMGQuLjcwYzQzZDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL21lc3NhZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1lc3NhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMQorKm1lc3NhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tbGFuZy50eHQgYi9ydW50aW1lL2RvYy9tbGFuZy50eHQKaW5kZXggMzA0NWI0Ni4uODhlZGZjNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWxhbmcudHh0CisrKyBiL3J1bnRpbWUvZG9jL21sYW5nLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptbGFuZy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBGZWIgMjQKKyptbGFuZy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA0IEZlYiAyNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbW90aW9uLnR4dCBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKaW5kZXggNTU3MGQ3My4uMTM0YzQ5MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbW90aW9uLnR4dAorKysgYi9ydW50aW1lL2RvYy9tb3Rpb24udHh0CkBAIC0xLDQgKzEsNCBAQAotKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IEphbiAwMgorKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgSmFuIDAyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQgYi9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQKaW5kZXggNzg5ZmJiYy4uMTQzNjU5YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL25ldGJlYW5zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDkKKypuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IGFlOWY1MTcuLjgwMTMxMWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9wdGlvbnMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTgKKypvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMTgKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dCBiL3J1bnRpbWUvZG9jL29zXzM5MC50eHQKaW5kZXggOTk4YTU1My4uY2RhN2IzYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc18zOTAudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgUmFsZiBTY2hhbmRsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19iZW9zLnR4dCBiL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CmluZGV4IGRhOGI3ZGMuLmQ3OTllZDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX2Jlb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX2Jlb3MudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19iZW9zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQgYi9ydW50aW1lL2RvYy9vc19tYWMudHh0CmluZGV4IDFmMGI0ZDEuLjlkMDZiYTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfbWFjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19tYWMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDkKKypvc19tYWMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhciBldCBhbC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX21pbnQudHh0IGIvcnVudGltZS9kb2Mvb3NfbWludC50eHQKaW5kZXggZDg0ZjZmNS4uNDZjODc2YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfbWludC50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfbWludC50eHQKQEAgLTEsNCArMSw0IEBACi0qb3NfbWludC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5Cisqb3NfbWludC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgSmVucyBNLiBGZWxkZXJob2ZmCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQgYi9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQKaW5kZXggMDU3ZWYxNS4uNWQwMGFlNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfbXNkb3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX21zZG9zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19tc2Rvcy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19tc2Rvcy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dCBiL3J1bnRpbWUvZG9jL29zX29zMi50eHQKaW5kZXggNTM5ZTA1MS4uYWNiZDQyNyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19vczIudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX29zMi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQorKm9zX29zMi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgU2xvb3RtYW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3FueC50eHQgYi9ydW50aW1lL2RvYy9vc19xbngudHh0CmluZGV4IDkwZGRlMzMuLjQ2ZWZkNDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3FueC50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfcW54LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19xbngudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19xbngudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBKdWxpYW4gS2lucmFpZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfcmlzYy50eHQgYi9ydW50aW1lL2RvYy9vc19yaXNjLnR4dAppbmRleCA3N2U1NTVjLi4zNjIzMjk1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19yaXNjLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19yaXNjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19yaXNjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19yaXNjLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBUaG9tYXMgTGVvbmFyZApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfdW5peC50eHQgYi9ydW50aW1lL2RvYy9vc191bml4LnR4dAppbmRleCAwYTY5ZTcwLi4zN2I4ZTdkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc191bml4LnR4dAorKysgYi9ydW50aW1lL2RvYy9vc191bml4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc191bml4LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc191bml4LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3Nfdm1zLnR4dCBiL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQKaW5kZXggNWE5MTE1OC4uZmJmNTJhZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3Nfdm1zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc192bXMudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3Ztcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMgorKm9zX3Ztcy50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9nemlwLnR4dCBiL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CmluZGV4IDE5ZWNkYzQuLjg5ZjI4NGUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX2d6aXAudHh0CkBAIC0xLDQgKzEsNCBAQAotKnBpX2d6aXAudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAyIE9jdCAyOQorKnBpX2d6aXAudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDIgT2N0IDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQgYi9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKaW5kZXggMjNjNjM0ZS4uODZkZDY1MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9uZXRydy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wLiAgTGFzdCBjaGFuZ2U6IE1hciAyMSwgMjAwNgorKnBpX25ldHJ3LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IE1hciAyMiwgMjAwNgogCiAJCVZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgogCkBAIC0zNjUsNyArMzY1LDcgQEAKIE5FVFJDCQkJCQkJCSpuZXRydy1uZXRyYyoKIAogVGhlIHR5cGljYWwgc3ludGF4IGZvciBsaW5lcyBpbiBhIDwubmV0cmM+IGZpbGUgaXMgZ2l2ZW4gYXMgc2hvd24gYmVsb3cuCi1GdHAgdW5kZXIgVW5peCB1c3VhbGx5IHN1cHBvcnQgPC5uZXRyYz47IFdpbmRvd3MnIGZ0cCB1c3VhbGx5IGRvZXNuJ3QuCitGdHAgdW5kZXIgVW5peCB1c3VhbGx5IHN1cHBvcnRzIDwubmV0cmM+OyBmdHAgdW5kZXIgV2luZG93cyB1c3VhbGx5IGRvZXNuJ3QuCiA+CiAJbWFjaGluZSB7ZnVsbCBtYWNoaW5lIG5hbWV9IGxvZ2luIHt1c2VyLWlkfSBwYXNzd29yZCAie3Bhc3N3b3JkfSIKIAlkZWZhdWx0IGxvZ2luIHt1c2VyLWlkfSBwYXNzd29yZCAie3Bhc3N3b3JkfSIKQEAgLTM5NSwxMSArMzk1LDEyIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDQuIEFjdGl2YXRpb24JCQkJCQkqbmV0cnctYWN0aXZhdGUqCiAKLU5ldHdvcmstb3JpZW50ZWQgZmlsZSB0cmFuc2ZlcnMgYXJlIGF2YWlsYWJsZSBieSBkZWZhdWx0IHdoZW5ldmVyCitOZXR3b3JrLW9yaWVudGVkIGZpbGUgdHJhbnNmZXJzIGFyZSBhdmFpbGFibGUgYnkgZGVmYXVsdCB3aGVuZXZlciBWaW0ncwogfCdub2NvbXBhdGlibGUnfCBtb2RlIGlzIGVuYWJsZWQuICBUaGUgPG5ldHJ3LnZpbT4gZmlsZSByZXNpZGVzIGluIHlvdXIKIHN5c3RlbSdzIHZpbS1wbHVnaW4gZGlyZWN0b3J5IGFuZCBpcyBzb3VyY2VkIGF1dG9tYXRpY2FsbHkgd2hlbmV2ZXIgeW91IGJyaW5nCiB1cCB2aW0uICBJIHN1Z2dlc3QgdGhhdCwgYXQgYSBtaW5pbXVtLCB5b3UgaGF2ZSBhdCBsZWFzdCB0aGUgZm9sbG93aW5nIGluIHlvdXIKIDwudmltcmM+IGN1c3RvbWl6YXRpb24gZmlsZTogPgorCiAJc2V0IG5vY3AKIAlpZiB2ZXJzaW9uID49IDYwMAogCSAgZmlsZXR5cGUgcGx1Z2luIGluZGVudCBvbgpAQCAtNDIwLDExICs0MjEsMTQgQEAKIFNlZSB8bmV0cnctYWN0aXZhdGV8IGZvciBtb3JlIG9uIGhvdyB0byBlbmNvdXJhZ2UgeW91ciB2aW0gdG8gdXNlIHBsdWdpbnMKIHN1Y2ggYXMgbmV0cncuCiAKKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA2LiBFeCBDb21tYW5kcwkJCQkJCSpuZXRydy1leCoKIAotVGhlIHVzdWFsIHJlYWQvd3JpdGUgY29tbWFuZHMgYXJlIHN1cHBvcnRlZC4gIFRoZXJlIGFyZSBhbHNvIGEgY291cGxlIG9mCi1hZGRpdGlvbmFsIGNvbW1hbmRzIGF2YWlsYWJsZS4KK1RoZSB1c3VhbCByZWFkL3dyaXRlIGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuICBUaGVyZSBhcmUgYWxzbyBhIGZldworYWRkaXRpb25hbCBjb21tYW5kcyBhdmFpbGFibGUuICBPZnRlbiB5b3Ugd29uJ3QgbmVlZCB0byB1c2UgTncgb3IKK05yZWFkIGFzIHNob3duIGluIHxuZXRydy10cmFuc3BhcmVudHwgKGllLiB1c2UgOmUgdXJsLCA6ciB1cmwsIDp3IHVybDsKK3NlZSB8bmV0cnctdXJsc3wpLgogCiA6W3JhbmdlXU53CVdyaXRlIHRoZSBzcGVjaWZpZWQgbGluZXMgdG8gdGhlIGN1cnJlbnQKIAkJZmlsZSBhcyBzcGVjaWZpZWQgaW4gYjpuZXRyd19sYXN0ZmlsZS4KQEAgLTQ1NSw3ICs0NTksNyBAQAogCQlzdHJpbmdzLgogCiA6TmV0cndTZXR0aW5ncyAgVGhpcyBjb21tYW5kIGlzIGRlc3JpYmVkIGluIHxuZXRydy1zZXR0aW5nc3wgLS0gdXNlZCB0bwotICAgICAgICAgICAgICAgIGRpc3BsYXkgbmV0cncgc2V0dGluZ3MgYW5kIGNoYW5nZSBuZXRydyBiZWhhdmlvcgorICAgICAgICAgICAgICAgIGRpc3BsYXkgbmV0cncgc2V0dGluZ3MgYW5kIGNoYW5nZSBuZXRydyBiZWhhdmlvci4KIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE0NDQsNiArMTQ0OCwxMCBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAxMS4gSGlzdG9yeQkJCQkJCSpuZXRydy1oaXN0b3J5KiB7e3sxCiAKKwl2ODM6ICogZGlzYWJsZWQgc3RvcC1hY2QgaGFuZGxpbmc7IHRoZSBjaGFuZ2UgaW4gZGlyZWN0b3J5IGhhbmRsaW5nCisJICAgICAgIG1heSBhbGxvdyBhY2QgdG8gYmUgdXNlZCBhZ2Fpbi4gIEF3YWl0aW5nIGZlZWRiYWNrLgorCSAgICAgKiBEIHdhcyByZWZ1c2luZyB0byBkZWxldGUgcmVtb3RlIGZpbGVzL2RpcmVjdG9yaWVzIGluIHdpZGUKKwkgICAgICAgbGlzdGluZyBtb2RlLgogCXY4MTogKiBGb2N1c0dhaW5lZCBhbHNvIHVzZWQgdG8gcmVmcmVzaC93aXBlIGxvY2FsIGJyb3dzZXIgZGlyZWN0b3J5CiAJICAgICAgIGJ1ZmZlcnMKIAkgICAgICogKGJ1Z2ZpeCkgbmV0cncgd2FzIGxlYXZpbmcgW1NjcmF0Y2hdIGJ1ZmZlcnMgYmVoaW5kIHdoZW4gdGhlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQgYi9ydW50aW1lL2RvYy9waV9wYXJlbi50eHQKaW5kZXggYjhjZjRkYy4uMzIxMDdmMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfcGFyZW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BpX3BhcmVuLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwaV9wYXJlbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCisqcGlfcGFyZW4udHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQgYi9ydW50aW1lL2RvYy9waV90YXIudHh0CmluZGV4IDU2N2VjZjEuLmMyNDYwMzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3Rhci50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfdGFyLnR4dApAQCAtMSw0ICsxLDYgQEAKLSp0YXIudHh0KglUYXIgRmlsZSBJbnRlcmZhY2UJCQkJRGVjIDIxLCAyMDA1CisqdGFyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKKworCVRhciBGaWxlIEludGVyZmFjZQogCiBBdXRob3I6ICBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gIDxOZHJPY2hpcEBTY2FtcGJlbGxQZmFtaWx5LkFiaXpNPgogCSAgKHJlbW92ZSBOT1NQQU0gZnJvbSBDYW1wYmVsbCdzIGVtYWlsIGZpcnN0KQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcGlfemlwLnR4dCBiL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKaW5kZXggMDQwZWQwNC4uZWJkM2I4MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcGlfemlwLnR4dAorKysgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CkBAIC0xLDQgKzEsNiBAQAotKnppcC50eHQqCVppcCBGaWxlIEludGVyZmFjZQkJCQlNYXIgMjIsIDIwMDYKKyp6aXAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNAorCisJWmlwIEZpbGUgSW50ZXJmYWNlCiAKIEF1dGhvcjogIENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiAgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+CiAJICAocmVtb3ZlIE5PU1BBTSBmcm9tIENhbXBiZWxsJ3MgZW1haWwgZmlyc3QpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wcmludC50eHQgYi9ydW50aW1lL2RvYy9wcmludC50eHQKaW5kZXggNTZmYTQ5Zi4uOTc0MTMyNCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcHJpbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ByaW50LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKKypwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0IGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CmluZGV4IGM1ZjBjNzYuLjVmYWM0NDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAorKysgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKQEAgLTEsNCArMSw0IEBACi0qcXVpY2tyZWYudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIzCisqcXVpY2tyZWYudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JlY292ZXIudHh0IGIvcnVudGltZS9kb2MvcmVjb3Zlci50eHQKaW5kZXggZDZlZmU2NC4uNDg1MzY5NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcmVjb3Zlci50eHQKKysrIGIvcnVudGltZS9kb2MvcmVjb3Zlci50eHQKQEAgLTEsNCArMSw0IEBACi0qcmVjb3Zlci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDEyCisqcmVjb3Zlci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMTIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQgYi9ydW50aW1lL2RvYy9yaWxlZnQudHh0CmluZGV4IGI4M2RjNTQuLmRiMmM1ODQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQKKysrIGIvcnVudGltZS9kb2MvcmlsZWZ0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpyaWxlZnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDQKKypyaWxlZnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBBdm5lciBMb3R0ZW0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3J1c3NpYW4udHh0IGIvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKaW5kZXggNGQ5ZDAzNi4uYzc4ZTA0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKKysrIGIvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKQEAgLTEsNCArMSw0IEBACi0qcnVzc2lhbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCisqcnVzc2lhbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgVmFzc2lseSBSYWdvc2luCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9zaWduLnR4dCBiL3J1bnRpbWUvZG9jL3NpZ24udHh0CmluZGV4IGFkZWI3ZmMuLjFlNjhmNzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NpZ24udHh0CisrKyBiL3J1bnRpbWUvZG9jL3NpZ24udHh0CkBAIC0xLDQgKzEsNCBAQAotKnNpZ24udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwNAorKnNpZ24udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEdvcmRvbiBQcmlldXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Nwb25zb3IudHh0IGIvcnVudGltZS9kb2Mvc3BvbnNvci50eHQKaW5kZXggNzY2YzNkOC4uOGU0MDExZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvc3BvbnNvci50eHQKKysrIGIvcnVudGltZS9kb2Mvc3BvbnNvci50eHQKQEAgLTEsNCArMSw0IEBACi0qc3BvbnNvci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVuIDE2Cisqc3BvbnNvci50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTcsMTMgKzcsMTMgQEAKIAogU1BPTlNPUiBWSU0gREVWRUxPUE1FTlQJCQkJCQkqc3BvbnNvcioKIAotRml4aW5nIGJ1Z3MgYW5kIGFkZGluZyBuZXcgZmVhdHVyZXMgdGFrZXMgYSBsb3Qgb2YgZWZmb3J0LiAgRm9yIGEgZmV3IHllYXJzCi1CcmFtIGhhcyBhdHRlbXB0ZWQgdG8gZG8gdGhpcyBuZXh0IHRvIGEgZnVsbC10aW1lIGpvYi4gIER1cmluZyB0aGF0IHRpbWUgdGhlCi10b2RvIGxpc3Qga2VwdCBnZXR0aW5nIGxvbmdlciBhbmQgbG9uZ2VyLgorRml4aW5nIGJ1Z3MgYW5kIGFkZGluZyBuZXcgZmVhdHVyZXMgdGFrZXMgYSBsb3Qgb2YgdGltZSBhbmQgZWZmb3J0LiAgVG8gc2hvdworeW91ciBhcHByZWNpYXRpb24gZm9yIHRoZSB3b3JrIGFuZCBtb3RpdmF0ZSBCcmFtIGFuZCBvdGhlcnMgdG8gY29udGludWUKK3dvcmtpbmcgb24gVmltIHBsZWFzZSBzZW5kIGEgZG9uYXRpb24uCiAKLUluIG9yZGVyIGZvciBCcmFtIHRvIHN1cHBvcnQgVmltIHByb3Blcmx5IGhlIG5lZWRzIHlvdXIgc3VwcG9ydC4gIFRocm91Z2ggeW91cgotZG9uYXRpb25zIEJyYW0gd2lsbCBiZSBhYmxlIHRvIGhhdmUgYSBwYXJ0LXRpbWUgam9iIGFuZCBzcGVuZCBtb3JlIHRpbWUgb24KLWZpeGluZyBidWdzIGFuZCBhZGRpbmcgbmV3IGZlYXR1cmVzLgorU2luY2UgQnJhbSBpcyBiYWNrIHRvIGEgcGFpZCBqb2IgdGhlIG1vbmV5IHdpbGwgbm93IGJlIHVzZWQgdG8gaGVscCBjaGlsZHJlbgoraW4gVWdhbmRhLiAgU2VlIHx1Z2FuZGF8LiAgQnV0IGF0IHRoZSBzYW1lIHRpbWUgZG9uYXRpb25zIGluY3JlYXNlIEJyYW0ncworbW90aXZhdGlvbiB0byB3b3JrIG9uIFZpbSEKIAogRm9yIHRoZSBtb3N0IHJlY2VudCBpbmZvcm1hdGlvbiBhYm91dCBzcG9uc29yaW5nIGxvb2sgb24gdGhlIFZpbSB3ZWIgc2l0ZToKIApAQCAtNTgsNyArNTgsNyBAQAogCiBIT1cgVE8gU0VORCBNT05FWQkJCQkJCSpzZW5kLW1vbmV5KgogCi1DcmVkaXRjYXJkCVRocm91Z2ggUGF5UGFsLCBzZWUgdGhlIFBheVBhbCBzaXRlIGZvciBpbmZvcm1hdGlvbjoKK0NyZWRpdCBjYXJkCVRocm91Z2ggUGF5UGFsLCBzZWUgdGhlIFBheVBhbCBzaXRlIGZvciBpbmZvcm1hdGlvbjoKIAkJCWh0dHBzOi8vd3d3LnBheXBhbC5jb20KIAkJVGhlIGUtbWFpbCBhZGRyZXNzIGZvciBzZW5kaW5nIHNwb25zb3JzaGlwIG1vbmV5IGlzOgogCQkJZG9uYXRlQHZpbS5vcmcKQEAgLTY4LDE1ICs2OCw3IEBACiAJCUluIEV1cm8gY291bnRyaWVzIGEgYmFuayB0cmFuc2ZlciBpcyBwcmVmZXJyZWQsIHRoaXMgaGFzIGxvd2VyCiAJCWNvc3RzLgogCi1CYW5rIHRyYW5zZmVyCVRyYW5zZmVyIHRvIEJyYW0ncyBhY2NvdW50IGF0IHRoZSBQb3N0YmFuazogMTY0NDUwMy4gIEZvcgotCQlpbnRlcm5hdGlvbmFsIHRyYW5zZmVycyB5b3UgY2FuIHVzZSB0aGVzZSBudW1iZXJzOgotCQkJSUJBTjogICAgICAgTkw3OSBQU1RCIDAwMDEgNjQ0NSAwMwotCQkJU1dJRlQvQklDOiAgUFNUQk5MMjEKLQkJVGhpcyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgYmFuazoKLQkJCUlORyBCYW5rIEFtc3RlcmRhbSwgRm9yZWlnbiBPcGVyYXRpb25zCi0JCQlQTyBCb3ggMTgwMAotCQkJMTAwMCBCViBBbXN0ZXJkYW0KLQkJCVRoZSBOZXRoZXJsYW5kcworT3RoZXIgbWV0aG9kcwlTZWUgfGljY2YtZG9uYXRpb25zfC4KIAkJSW5jbHVkZSAiVmltIHNwb25zb3IiIG9yICJWaW0gcmVnaXN0cmF0aW9uIiBpbiB0aGUgY29tbWVudCBvZgogCQl5b3VyIG1vbmV5IHRyYW5zZmVyLiAgU2VuZCBtZSBhbiBlLW1haWwgdGhhdCBtZW50aW9ucyB0aGUKIAkJYW1vdW50IHlvdSB0cmFuc2ZlcnJlZCBpZiB5b3Ugd2FudCB0byB2b3RlIGZvciBmZWF0dXJlcyBhbmQKQEAgLTg4LDM3ICs4MCwyNiBAQAogCQlmZWF0dXJlcyBhbmQgc2hvdyBvdGhlcnMgeW91IGFyZSBhIHJlZ2lzdGVyZWQgVmltIHVzZXIgb3IKIAkJc3BvbnNvci4KIAotVGhpcyBpcyBCcmFtJ3MgYWRkcmVzczogQnJhbSBNb29sZW5hYXIKLQkJCUNsZW1hdGlzc3RyYWF0IDMwCi0JCQk1OTI1IEJFIFZlbmxvCitZb3UgY2FuIHVzZSB0aGlzIHBlcm1hbmVudCBhZGRyZXNzOgorCQkJQnJhbSBNb29sZW5hYXIKKwkJCU1vbGVuc3RyYWF0IDIKKwkJCTIxNjEgSFAgTGlzc2UKIAkJCVRoZSBOZXRoZXJsYW5kcwogCiAKLUFMVEVSTkFUSVZFCi0KLUlmIHlvdSBkb24ndCBjYXJlIGFib3V0IHNwb25zb3JpbmcgVmltIERldmVsb3BtZW50IG9yIGJlY29taW5nIGEgcmVnaXN0ZXJlZAotVmltIHVzZXIsIGJ1dCBkbyBjYXJlIGFib3V0IGhlbHBpbmcgbmVlZHkgY2hpbGRyZW4sIGNvbnNpZGVyIGdpdmluZyB0byB0aGUKLUlDQ0YgSG9sbGFuZCBmb3VuZGF0aW9uLiAgVGhpcyBpcyB0aGUgY2hhcml0eSByZWNvbW1lbmRlZCBieSBWaW0ncyBhdXRob3IuCi1UaGUgbW9uZXkgaXMgdXNlZCBmb3IgYSBjaGlsZHJlbiBjZW50cmUgaW4gdGhlIHNvdXRoIG9mIFVnYW5kYSwgd2hlcmUgQUlEUyBoYXMKLWNhdXNlZCBtYW55IHZpY3RpbXMuICBTZWUgfHVnYW5kYXwuCi0KIAogUVVFU1RJT05TIEFORCBBTlNXRVJTCQkJCSpzcG9uc29yLWZhcSogKnJlZ2lzdGVyLWZhcSoKIAogV2h5IHNob3VsZCBJIGdpdmUgbW9uZXk/CiAKLUJyYW0gaGFzIHRyaWVkIHRvIHdvcmsgb24gVmltIG5leHQgdG8gYSBmdWxsLXRpbWUgam9iLiAgVGhlIGxpc3Qgb2Yga25vd24gYnVncwotYW5kIGlkZWFzIGZvciBuZXcgZmVhdHVyZXMgaGFzIGNvbnN0YW50bHkgYmVlbiBncm93aW5nIGR1cmluZyB0aGlzIHRpbWUuICBCcmFtCi1zaW1wbHkgY2FuJ3Qgc3BlbmQgZW5vdWdoIHRpbWUgb24gVmltIGRldmVsb3BtZW50IHdoZW4gaGUgaGFzIGEgZnVsbC10aW1lIGpvYi4KLVlvdXIgY29udHJpYnV0aW9uIHdpbGwgbWFrZSBpdCBwb3NzaWJsZSBmb3IgQnJhbSB0byBoYXZlIGEgcGFydC10aW1lIGpvYiBhbmQKLXNwZW5kIG11Y2ggbW9yZSB0aW1lIG9uIFZpbSBkZXZlbG9wbWVudC4gIEJ1Z3Mgd2lsbCBiZSBmaXhlZCBxdWlja2VyIGFuZCBuZXcKLVZpbSByZWxlYXNlcyB3aWxsIGJlY29tZSBhdmFpbGFibGUgbW9yZSBvZnRlbi4KK0lmIHlvdSBkbyBub3Qgc2hvdyB5b3VyIGFwcHJlY2lhdGlvbiBmb3IgVmltIHRoZW4gQnJhbSB3aWxsIGJlIGxlc3MgbW90aXZhdGVkCit0byBmaXggYnVncyBhbmQgYWRkIG5ldyBmZWF0dXJlcy4KIAogCiBIb3cgbXVjaCBtb25leSBzaG91bGQgSSBzZW5kPwogCi1UaGF0IGlzIHVwIHRvIHlvdS4gIFRoZSBtb3JlIHlvdSBnaXZlLCB0aGUgbW9yZSB0aW1lIEJyYW0gY2FuIHdvcmsgb24gVmltLiAgQW4KLWluZGljYXRpb24gZm9yIGluZGl2aWR1YWxzIHRoYXQgdXNlIFZpbSBhdCBob21lOiAxMCBFdXJvIHBlciB5ZWFyLiAgRm9yCitUaGF0IGlzIHVwIHRvIHlvdS4gIFRoZSBtb3JlIHlvdSBnaXZlLCB0aGUgbW9yZSBjaGlsZHJlbiB3aWxsIGJlIGhlbHBlZC4KK0FuIGluZGljYXRpb24gZm9yIGluZGl2aWR1YWxzIHRoYXQgdXNlIFZpbSBhdCBob21lOiAxMCBFdXJvIHBlciB5ZWFyLiAgRm9yCiBwcm9mZXNzaW9uYWwgdXNlOiAzMCBFdXJvIHBlciB5ZWFyIHBlciBwZXJzb24uICBTZW5kIGF0IGxlYXN0IDEwIGV1cm8gdG8gYmUKIGFibGUgdG8gdm90ZSBmb3IgZmVhdHVyZXMuCiAKQEAgLTE5OCwzMyArMTc5LDMwIEBACiAKIEhvdyBhYm91dCBDaGFyaXR5d2FyZT8KIAotWW91IGhhdmUgdG8gZGVjaWRlIHlvdXJzZWxmIHdoZXRoZXIgeW91IHdhbnQgdG8gc3BvbnNvciBWaW0gZGV2ZWxvcG1lbnQsIGhlbHAKLXRoZSBwb29yIGNoaWxkcmVuIGluIFVnYW5kYSAoc2VlIHx1Z2FuZGF8KSBvciBib3RoLiAgQnJhbSB3aWxsIGNlcnRhaW5seSBrZWVwCi1vbiBzdXBwb3J0aW5nIHRoZSBwcm9qZWN0IGluIFVnYW5kYS4gIEluIHRoZSAodW5saWtlbHkpIHNpdHVhdGlvbiB0aGF0IEJyYW0KLWdldHMgbW9yZSBkb25hdGlvbnMgZm9yIFZpbSBkZXZlbG9wbWVudCB0aGFuIGhlIG5lZWRzLCBoZSB3aWxsIHNlbmQgdGhlIG1vbmV5Ci10byBVZ2FuZGEuCitDdXJyZW50bHkgdGhlIFZpbSBkb25hdGlvbnMgZ28gdG8gfHVnYW5kYXwgYW55d2F5LiAgVGh1cyBpdCBkb2Vzbid0IG1hdHRlciBpZgoreW91IHNwb25zb3IgVmltIG9yIElDQ0YuICBFeGNlcHQgdGhhdCBWaW0gc3BvbnNvcmluZyB3aWxsIGFsbG93IHlvdSB0byB2b3RlCitmb3IgZmVhdHVyZXMuCiAKIAogSSBkb25hdGVkICQkJCwgbm93IHBsZWFzZSBhZGQgZmVhdHVyZSBYWVohCiAKIFRoZXJlIGlzIG5vIGRpcmVjdCByZWxhdGlvbiBiZXR3ZWVuIHlvdXIgZG9uYXRpb24gYW5kIHRoZSB3b3JrIEJyYW0gZG9lcy4KLU90aGVyd2lzZSB5b3Ugd291bGQgYmUgcGF5aW5nIGZvciB3b3JrIGFuZCBCcmFtIGhhcyB0byBwYXkgaW5jb21lIHRheCBvdmVyIHRoZQorT3RoZXJ3aXNlIHlvdSB3b3VsZCBiZSBwYXlpbmcgZm9yIHdvcmsgYW5kIHdlIHdvdWxkIGhhdmUgdG8gcGF5IHRheCBvdmVyIHRoZQogZG9uYXRpb24uICBJZiB5b3Ugd2FudCB0byBoaXJlIEJyYW0gZm9yIHNwZWNpZmljIHdvcmssIGNvbnRhY3QgaGltIGRpcmVjdGx5LAogZG9uJ3QgdXNlIHRoZSBkb25hdGlvbiBzeXN0ZW0uCiAKIAotQXJlIHRoZSBkb25hdGlvbnMgdGF4IGRlZHVjdGFibGU/CitBcmUgdGhlIGRvbmF0aW9ucyB0YXggZGVkdWN0aWJsZT8KIAotTm8uICBTZXR0aW5nIHVwIGEgc3lzdGVtIGZvciB0aGlzIGlzIGNvbXBsZXggYW5kIGltcG9zZXMgdG9vIG1hbnkgcmVzdHJpY3Rpb25zLgotVGhlIGRvbmF0aW9ucyB0byBoZWxwIHRoZSBjaGlsZHJlbiBpbiB8VWdhbmRhfCBhcmUgdGF4IGRlZHVjdGFibGUgaW4gSG9sbGFuZCwKLUdlcm1hbnksIENhbmFkYSBhbmQgcHJvYmFibHkgYWxzbyBpbiB0aGUgVVNBLgorVGhhdCBkZXBlbmRzIG9uIHlvdXIgY291bnRyeS4gIFRoZSBkb25hdGlvbnMgdG8gaGVscCB0aGUgY2hpbGRyZW4gaW4gfFVnYW5kYXwKK2FyZSB0YXggZGVkdWN0aWJsZSBpbiBIb2xsYW5kLCBHZXJtYW55LCBDYW5hZGEgYW5kIGluIHRoZSBVU0EuICBTZWUgdGhlIElDQ0YKK3dlYnNpdGUgaHR0cDovL3d3dy5pY2NmLm5sL2RvbmF0ZS5odG1sLiAgWW91IG11c3Qgc2VuZCBhbiBlLW1haWwgdG8gQnJhbSB0bworbGV0IGhpbSBrbm93IHRoYXQgdGhlIGRvbmF0aW9uIGlzIGRvbmUgYmVjYXVzZSBvZiB0aGUgdXNlIG9mIFZpbS4KIAogCiBDYW4geW91IHNlbmQgbWUgYSBiaWxsPwogCi1TZW5kaW5nIGEgYmlsbCB3b3VsZCBtZWFuIEJyYW0gZG9lcyBzb21ldGhpbmcgaW4gcmV0dXJuIGZvciB5b3VyIGNvbnRyaWJ1dGlvbi4KLVRoYXQgaXMgd29yayBhbmQgd291bGQgbWVhbiBCcmFtIGhhcyB0byBwYXkgaW5jb21lIHRheCBvdmVyIHRoZSBhbW91bnQuICBJdCBpcwotcG9zc2libGUsIGJ1dCB0aGUgbmV0IGFtb3VudCB3aWxsIGJlIGxvd2VyLgorTm8uICBCdXQgYSByZWNlaXB0IGlzIHBvc3NpYmxlLgogCiAKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWJwYWdlLnR4dCBiL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CmluZGV4IDVjN2MyZWQuLmQ2YjMyOTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CisrKyBiL3J1bnRpbWUvZG9jL3RhYnBhZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKnRhYnBhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMworKnRhYnBhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90YWdzIGIvcnVudGltZS9kb2MvdGFncwppbmRleCA1YTgwODZmLi42NjI5ZGFiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWdzCisrKyBiL3J1bnRpbWUvZG9jL3RhZ3MKQEAgLTE2MDksNiArMTYwOSw5IEBACiAzMS4zCXVzcl8zMS50eHQJLyozMS4zKgogMzEuNAl1c3JfMzEudHh0CS8qMzEuNCoKIDMxLjUJdXNyXzMxLnR4dAkvKjMxLjUqCiszMi4xCXVzcl8zMi50eHQJLyozMi4xKgorMzIuMgl1c3JfMzIudHh0CS8qMzIuMioKKzMyLjMJdXNyXzMyLnR4dAkvKjMyLjMqCiA0MC4xCXVzcl80MC50eHQJLyo0MC4xKgogNDAuMgl1c3JfNDAudHh0CS8qNDAuMioKIDQwLjMJdXNyXzQwLnR4dAkvKjQwLjMqCkBAIC01ODAzLDYgKzU4MDYsNyBAQAogaWE2NC52aW0Jc3ludGF4LnR4dAkvKmlhNjQudmltKgogaWIJbW90aW9uLnR4dAkvKmliKgogaWNjZgl1Z2FuZGEudHh0CS8qaWNjZioKK2ljY2YtZG9uYXRpb25zCXVnYW5kYS50eHQJLyppY2NmLWRvbmF0aW9ucyoKIGljb24tY2hhbmdlZAl2ZXJzaW9uNC50eHQJLyppY29uLWNoYW5nZWQqCiBpY29uaXNlCXN0YXJ0aW5nLnR4dAkvKmljb25pc2UqCiBpY29uaXplCXN0YXJ0aW5nLnR4dAkvKmljb25pemUqCkBAIC03MzUyLDYgKzczNTYsNyBAQAogdXNyXzI5LnR4dAl1c3JfMjkudHh0CS8qdXNyXzI5LnR4dCoKIHVzcl8zMC50eHQJdXNyXzMwLnR4dAkvKnVzcl8zMC50eHQqCiB1c3JfMzEudHh0CXVzcl8zMS50eHQJLyp1c3JfMzEudHh0KgordXNyXzMyLnR4dAl1c3JfMzIudHh0CS8qdXNyXzMyLnR4dCoKIHVzcl80MC50eHQJdXNyXzQwLnR4dAkvKnVzcl80MC50eHQqCiB1c3JfNDEudHh0CXVzcl80MS50eHQJLyp1c3JfNDEudHh0KgogdXNyXzQyLnR4dAl1c3JfNDIudHh0CS8qdXNyXzQyLnR4dCoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Rlcm0udHh0IGIvcnVudGltZS9kb2MvdGVybS50eHQKaW5kZXggYjBhNGJkOC4uZGE2MDc3NiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGVybS50eHQKKysrIGIvcnVudGltZS9kb2MvdGVybS50eHQKQEAgLTEsNCArMSw0IEBACi0qdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgRmViIDE0CisqdGVybS50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBGZWIgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RpcHMudHh0IGIvcnVudGltZS9kb2MvdGlwcy50eHQKaW5kZXggZTNhNjJmYi4uNjU2M2UyNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGlwcy50eHQKKysrIGIvcnVudGltZS9kb2MvdGlwcy50eHQKQEAgLTEsNCArMSw0IEBACi0qdGlwcy50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDAxCisqdGlwcy50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3VnYW5kYS5uc2lzLnR4dCBiL3J1bnRpbWUvZG9jL3VnYW5kYS5uc2lzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWIwYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdWdhbmRhLm5zaXMudHh0CkBAIC0wLDAgKzEsMjkyIEBACisgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKKworCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCisKK1NVTU1BUlkKKworVmltIGlzIENoYXJpdHl3YXJlLiAgWW91IGNhbiB1c2UgYW5kIGNvcHkgaXQgYXMgbXVjaCBhcyB5b3UgbGlrZSwgYnV0IHlvdSBhcmUKK2VuY291cmFnZWQgdG8gbWFrZSBhIGRvbmF0aW9uIGZvciBuZWVkeSBjaGlsZHJlbiBpbiBVZ2FuZGEuICBQbGVhc2Ugc2VlIHxrY2N8CitiZWxvdyBvciB2aXNpdCB0aGUgSUNDRiB3ZWIgc2l0ZSwgYXZhaWxhYmxlIGF0IHRoZXNlIFVSTHM6CisKKwlodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy8KKwlodHRwOi8vd3d3LnZpbS5vcmcvaWNjZi8KKworWW91IGNhbiBhbHNvIHNwb25zb3IgdGhlIGRldmVsb3BtZW50IG9mIFZpbS4gIFZpbSBzcG9uc29ycyBjYW4gdm90ZSBmb3IKK2ZlYXR1cmVzLiAgU2VlIHxzcG9uc29yfC4gIFRoZSBtb25leSBnb2VzIHRvIFVnYW5kYSBhbnl3YXkuCisKK1RoZSBPcGVuIFB1YmxpY2F0aW9uIExpY2Vuc2UgYXBwbGllcyB0byB0aGUgVmltIGRvY3VtZW50YXRpb24sIHNlZQorfG1hbnVhbC1jb3B5cmlnaHR8LgorCis9PT0gYmVnaW4gb2YgbGljZW5zZSA9PT0KKworVklNIExJQ0VOU0UKKworSSkgIFRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgb24gZGlzdHJpYnV0aW5nIHVubW9kaWZpZWQgY29waWVzIG9mIFZpbSBleGNlcHQKKyAgICB0aGF0IHRoZXkgbXVzdCBpbmNsdWRlIHRoaXMgbGljZW5zZSB0ZXh0LiAgWW91IGNhbiBhbHNvIGRpc3RyaWJ1dGUKKyAgICB1bm1vZGlmaWVkIHBhcnRzIG9mIFZpbSwgbGlrZXdpc2UgdW5yZXN0cmljdGVkIGV4Y2VwdCB0aGF0IHRoZXkgbXVzdAorICAgIGluY2x1ZGUgdGhpcyBsaWNlbnNlIHRleHQuICBZb3UgYXJlIGFsc28gYWxsb3dlZCB0byBpbmNsdWRlIGV4ZWN1dGFibGVzCisgICAgdGhhdCB5b3UgbWFkZSBmcm9tIHRoZSB1bm1vZGlmaWVkIFZpbSBzb3VyY2VzLCBwbHVzIHlvdXIgb3duIHVzYWdlCisgICAgZXhhbXBsZXMgYW5kIFZpbSBzY3JpcHRzLgorCitJSSkgSXQgaXMgYWxsb3dlZCB0byBkaXN0cmlidXRlIGEgbW9kaWZpZWQgKG9yIGV4dGVuZGVkKSB2ZXJzaW9uIG9mIFZpbSwKKyAgICBpbmNsdWRpbmcgZXhlY3V0YWJsZXMgYW5kL29yIHNvdXJjZSBjb2RlLCB3aGVuIHRoZSBmb2xsb3dpbmcgZm91cgorICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAgICAxKSBUaGlzIGxpY2Vuc2UgdGV4dCBtdXN0IGJlIGluY2x1ZGVkIHVubW9kaWZpZWQuCisgICAgMikgVGhlIG1vZGlmaWVkIFZpbSBtdXN0IGJlIGRpc3RyaWJ1dGVkIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZpdmUgd2F5czoKKyAgICAgICBhKSBJZiB5b3UgbWFrZSBjaGFuZ2VzIHRvIFZpbSB5b3Vyc2VsZiwgeW91IG11c3QgY2xlYXJseSBkZXNjcmliZSBpbgorCSAgdGhlIGRpc3RyaWJ1dGlvbiBob3cgdG8gY29udGFjdCB5b3UuICBXaGVuIHRoZSBtYWludGFpbmVyIGFza3MgeW91CisJICAoaW4gYW55IHdheSkgZm9yIGEgY29weSBvZiB0aGUgbW9kaWZpZWQgVmltIHlvdSBkaXN0cmlidXRlZCwgeW91CisJICBtdXN0IG1ha2UgeW91ciBjaGFuZ2VzLCBpbmNsdWRpbmcgc291cmNlIGNvZGUsIGF2YWlsYWJsZSB0byB0aGUKKwkgIG1haW50YWluZXIgd2l0aG91dCBmZWUuICBUaGUgbWFpbnRhaW5lciByZXNlcnZlcyB0aGUgcmlnaHQgdG8KKwkgIGluY2x1ZGUgeW91ciBjaGFuZ2VzIGluIHRoZSBvZmZpY2lhbCB2ZXJzaW9uIG9mIFZpbS4gIFdoYXQgdGhlCisJICBtYWludGFpbmVyIHdpbGwgZG8gd2l0aCB5b3VyIGNoYW5nZXMgYW5kIHVuZGVyIHdoYXQgbGljZW5zZSB0aGV5CisJICB3aWxsIGJlIGRpc3RyaWJ1dGVkIGlzIG5lZ290aWFibGUuICBJZiB0aGVyZSBoYXMgYmVlbiBubyBuZWdvdGlhdGlvbgorCSAgdGhlbiB0aGlzIGxpY2Vuc2UsIG9yIGEgbGF0ZXIgdmVyc2lvbiwgYWxzbyBhcHBsaWVzIHRvIHlvdXIgY2hhbmdlcy4KKwkgIFRoZSBjdXJyZW50IG1haW50YWluZXIgaXMgQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4uICBJZiB0aGlzCisJICBjaGFuZ2VzIGl0IHdpbGwgYmUgYW5ub3VuY2VkIGluIGFwcHJvcHJpYXRlIHBsYWNlcyAobW9zdCBsaWtlbHkKKwkgIHZpbS5zZi5uZXQsIHd3dy52aW0ub3JnIGFuZC9vciBjb21wLmVkaXRvcnMpLiAgV2hlbiBpdCBpcyBjb21wbGV0ZWx5CisJICBpbXBvc3NpYmxlIHRvIGNvbnRhY3QgdGhlIG1haW50YWluZXIsIHRoZSBvYmxpZ2F0aW9uIHRvIHNlbmQgaGltCisJICB5b3VyIGNoYW5nZXMgY2Vhc2VzLiAgT25jZSB0aGUgbWFpbnRhaW5lciBoYXMgY29uZmlybWVkIHRoYXQgaGUgaGFzCisJICByZWNlaXZlZCB5b3VyIGNoYW5nZXMgdGhleSB3aWxsIG5vdCBoYXZlIHRvIGJlIHNlbnQgYWdhaW4uCisgICAgICAgYikgSWYgeW91IGhhdmUgcmVjZWl2ZWQgYSBtb2RpZmllZCBWaW0gdGhhdCB3YXMgZGlzdHJpYnV0ZWQgYXMKKwkgIG1lbnRpb25lZCB1bmRlciBhKSB5b3UgYXJlIGFsbG93ZWQgdG8gZnVydGhlciBkaXN0cmlidXRlIGl0CisJICB1bm1vZGlmaWVkLCBhcyBtZW50aW9uZWQgYXQgSSkuICBJZiB5b3UgbWFrZSBhZGRpdGlvbmFsIGNoYW5nZXMgdGhlCisJICB0ZXh0IHVuZGVyIGEpIGFwcGxpZXMgdG8gdGhvc2UgY2hhbmdlcy4KKyAgICAgICBjKSBQcm92aWRlIGFsbCB0aGUgY2hhbmdlcywgaW5jbHVkaW5nIHNvdXJjZSBjb2RlLCB3aXRoIGV2ZXJ5IGNvcHkgb2YKKwkgIHRoZSBtb2RpZmllZCBWaW0geW91IGRpc3RyaWJ1dGUuICBUaGlzIG1heSBiZSBkb25lIGluIHRoZSBmb3JtIG9mIGEKKwkgIGNvbnRleHQgZGlmZi4gIFlvdSBjYW4gY2hvb3NlIHdoYXQgbGljZW5zZSB0byB1c2UgZm9yIG5ldyBjb2RlIHlvdQorCSAgYWRkLiAgVGhlIGNoYW5nZXMgYW5kIHRoZWlyIGxpY2Vuc2UgbXVzdCBub3QgcmVzdHJpY3Qgb3RoZXJzIGZyb20KKwkgIG1ha2luZyB0aGVpciBvd24gY2hhbmdlcyB0byB0aGUgb2ZmaWNpYWwgdmVyc2lvbiBvZiBWaW0uCisgICAgICAgZCkgV2hlbiB5b3UgaGF2ZSBhIG1vZGlmaWVkIFZpbSB3aGljaCBpbmNsdWRlcyBjaGFuZ2VzIGFzIG1lbnRpb25lZAorCSAgdW5kZXIgYyksIHlvdSBjYW4gZGlzdHJpYnV0ZSBpdCB3aXRob3V0IHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlCisJICBjaGFuZ2VzIGlmIHRoZSBmb2xsb3dpbmcgdGhyZWUgY29uZGl0aW9ucyBhcmUgbWV0OgorCSAgLSBUaGUgbGljZW5zZSB0aGF0IGFwcGxpZXMgdG8gdGhlIGNoYW5nZXMgcGVybWl0cyB5b3UgdG8gZGlzdHJpYnV0ZQorCSAgICB0aGUgY2hhbmdlcyB0byB0aGUgVmltIG1haW50YWluZXIgd2l0aG91dCBmZWUgb3IgcmVzdHJpY3Rpb24sIGFuZAorCSAgICBwZXJtaXRzIHRoZSBWaW0gbWFpbnRhaW5lciB0byBpbmNsdWRlIHRoZSBjaGFuZ2VzIGluIHRoZSBvZmZpY2lhbAorCSAgICB2ZXJzaW9uIG9mIFZpbSB3aXRob3V0IGZlZSBvciByZXN0cmljdGlvbi4KKwkgIC0gWW91IGtlZXAgdGhlIGNoYW5nZXMgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFmdGVyIGxhc3QKKwkgICAgZGlzdHJpYnV0aW5nIHRoZSBjb3JyZXNwb25kaW5nIG1vZGlmaWVkIFZpbS4gIFdoZW4gdGhlIG1haW50YWluZXIKKwkgICAgb3Igc29tZW9uZSB3aG8geW91IGRpc3RyaWJ1dGVkIHRoZSBtb2RpZmllZCBWaW0gdG8gYXNrcyB5b3UgKGluCisJICAgIGFueSB3YXkpIGZvciB0aGUgY2hhbmdlcyB3aXRoaW4gdGhpcyBwZXJpb2QsIHlvdSBtdXN0IG1ha2UgdGhlbQorCSAgICBhdmFpbGFibGUgdG8gaGltLgorCSAgLSBZb3UgY2xlYXJseSBkZXNjcmliZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGhvdyB0byBjb250YWN0IHlvdS4gIFRoaXMKKwkgICAgY29udGFjdCBpbmZvcm1hdGlvbiBtdXN0IHJlbWFpbiB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUgeWVhcnMKKwkgICAgYWZ0ZXIgbGFzdCBkaXN0cmlidXRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbW9kaWZpZWQgVmltLCBvciBhcyBsb25nCisJICAgIGFzIHBvc3NpYmxlLgorICAgICAgIGUpIFdoZW4gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIGFwcGxpZXMgdG8gdGhlIGNoYW5nZXMsCisJICB5b3UgY2FuIGRpc3RyaWJ1dGUgdGhlIG1vZGlmaWVkIFZpbSB1bmRlciB0aGUgR05VIEdQTCB2ZXJzaW9uIDIgb3IKKwkgIGFueSBsYXRlciB2ZXJzaW9uLgorICAgIDMpIEEgbWVzc2FnZSBtdXN0IGJlIGFkZGVkLCBhdCBsZWFzdCBpbiB0aGUgb3V0cHV0IG9mIHRoZSAiOnZlcnNpb24iCisgICAgICAgY29tbWFuZCBhbmQgaW4gdGhlIGludHJvIHNjcmVlbiwgc3VjaCB0aGF0IHRoZSB1c2VyIG9mIHRoZSBtb2RpZmllZCBWaW0KKyAgICAgICBpcyBhYmxlIHRvIHNlZSB0aGF0IGl0IHdhcyBtb2RpZmllZC4gIFdoZW4gZGlzdHJpYnV0aW5nIGFzIG1lbnRpb25lZAorICAgICAgIHVuZGVyIDIpZSkgYWRkaW5nIHRoZSBtZXNzYWdlIGlzIG9ubHkgcmVxdWlyZWQgZm9yIGFzIGZhciBhcyB0aGlzIGRvZXMKKyAgICAgICBub3QgY29uZmxpY3Qgd2l0aCB0aGUgbGljZW5zZSB1c2VkIGZvciB0aGUgY2hhbmdlcy4KKyAgICA0KSBUaGUgY29udGFjdCBpbmZvcm1hdGlvbiBhcyByZXF1aXJlZCB1bmRlciAyKWEpIGFuZCAyKWQpIG11c3Qgbm90IGJlCisgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkLCBleGNlcHQgdGhhdCB0aGUgcGVyc29uIGhpbXNlbGYgY2FuIG1ha2UKKyAgICAgICBjb3JyZWN0aW9ucy4KKworSUlJKSBJZiB5b3UgZGlzdHJpYnV0ZSBhIG1vZGlmaWVkIHZlcnNpb24gb2YgVmltLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gdXNlCisgICAgIHRoZSBWaW0gbGljZW5zZSBmb3IgeW91ciBjaGFuZ2VzIGFuZCBtYWtlIHRoZW0gYXZhaWxhYmxlIHRvIHRoZQorICAgICBtYWludGFpbmVyLCBpbmNsdWRpbmcgdGhlIHNvdXJjZSBjb2RlLiAgVGhlIHByZWZlcnJlZCB3YXkgdG8gZG8gdGhpcyBpcworICAgICBieSBlLW1haWwgb3IgYnkgdXBsb2FkaW5nIHRoZSBmaWxlcyB0byBhIHNlcnZlciBhbmQgZS1tYWlsaW5nIHRoZSBVUkwuCisgICAgIElmIHRoZSBudW1iZXIgb2YgY2hhbmdlcyBpcyBzbWFsbCAoZS5nLiwgYSBtb2RpZmllZCBNYWtlZmlsZSkgZS1tYWlsaW5nIGEKKyAgICAgY29udGV4dCBkaWZmIHdpbGwgZG8uICBUaGUgZS1tYWlsIGFkZHJlc3MgdG8gYmUgdXNlZCBpcworICAgICA8bWFpbnRhaW5lckB2aW0ub3JnPgorCitJVikgIEl0IGlzIG5vdCBhbGxvd2VkIHRvIHJlbW92ZSB0aGlzIGxpY2Vuc2UgZnJvbSB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSBWaW0KKyAgICAgc291cmNlcywgcGFydHMgb2YgaXQgb3IgZnJvbSBhIG1vZGlmaWVkIHZlcnNpb24uICBZb3UgbWF5IHVzZSB0aGlzCisgICAgIGxpY2Vuc2UgZm9yIHByZXZpb3VzIFZpbSByZWxlYXNlcyBpbnN0ZWFkIG9mIHRoZSBsaWNlbnNlIHRoYXQgdGhleSBjYW1lCisgICAgIHdpdGgsIGF0IHlvdXIgb3B0aW9uLgorCis9PT0gZW5kIG9mIGxpY2Vuc2UgPT09CisKK05vdGU6CisKKy0gSWYgeW91IGFyZSBoYXBweSB3aXRoIFZpbSwgcGxlYXNlIGV4cHJlc3MgdGhhdCBieSByZWFkaW5nIHRoZSByZXN0IG9mIHRoaXMKKyAgZmlsZSBhbmQgY29uc2lkZXIgaGVscGluZyBuZWVkeSBjaGlsZHJlbiBpbiBVZ2FuZGEuCisKKy0gSWYgeW91IHdhbnQgdG8gc3VwcG9ydCBmdXJ0aGVyIFZpbSBkZXZlbG9wbWVudCBjb25zaWRlciBiZWNvbWluZyBhCisgIHxzcG9uc29yfC4gIFRoZSBtb25leSBnb2VzIHRvIFVnYW5kYSBhbnl3YXkuCisKKy0gQWNjb3JkaW5nIHRvIFJpY2hhcmQgU3RhbGxtYW4gdGhlIFZpbSBsaWNlbnNlIGlzIEdOVSBHUEwgY29tcGF0aWJsZS4KKyAgQSBmZXcgbWlub3IgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSBzaW5jZSBoZSBjaGVja2VkIGl0LCBidXQgdGhhdCBzaG91bGQgbm90CisgIG1ha2UgYSBkaWZmZXJlbmNlLgorCistIElmIHlvdSBsaW5rIFZpbSB3aXRoIGEgbGlicmFyeSB0aGF0IGdvZXMgdW5kZXIgdGhlIEdOVSBHUEwsIHRoaXMgbGltaXRzCisgIGZ1cnRoZXIgZGlzdHJpYnV0aW9uIHRvIHRoZSBHTlUgR1BMLiAgQWxzbyB3aGVuIHlvdSBkaWRuJ3QgYWN0dWFsbHkgY2hhbmdlCisgIGFueXRoaW5nIGluIFZpbS4KKworLSBPbmNlIGEgY2hhbmdlIGlzIGluY2x1ZGVkIHRoYXQgZ29lcyB1bmRlciB0aGUgR05VIEdQTCwgdGhpcyBmb3JjZXMgYWxsCisgIGZ1cnRoZXIgY2hhbmdlcyB0byBhbHNvIGJlIG1hZGUgdW5kZXIgdGhlIEdOVSBHUEwgb3IgYSBjb21wYXRpYmxlIGxpY2Vuc2UuCisKKy0gSWYgeW91IGRpc3RyaWJ1dGUgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIFZpbSwgeW91IGNhbiBpbmNsdWRlIHlvdXIgbmFtZSBhbmQKKyAgY29udGFjdCBpbmZvcm1hdGlvbiB3aXRoIHRoZSAiLS13aXRoLW1vZGlmaWVkLWJ5IiBjb25maWd1cmUgYXJndW1lbnQgb3IgdGhlCisgIE1PRElGSUVEX0JZIGRlZmluZS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitLaWJhYWxlIENoaWxkcmVuJ3MgQ2VudHJlCisKK0tpYmFhbGUgQ2hpbGRyZW4ncyBDZW50cmUgKEtDQykgaXMgbG9jYXRlZCBpbiBLaWJhYWxlLCBhIHNtYWxsIHRvd24gaW4gdGhlCitzb3V0aCBvZiBVZ2FuZGEsIG5lYXIgVGFuemFuaWEsIGluIEVhc3QgQWZyaWNhLiAgVGhlIGFyZWEgaXMga25vd24gYXMgUmFrYWkKK0Rpc3RyaWN0LiAgVGhlIHBvcHVsYXRpb24gaXMgbW9zdGx5IGZhcm1lcnMuICBBbHRob3VnaCBwZW9wbGUgYXJlIHBvb3IsIHRoZXJlCitpcyBlbm91Z2ggZm9vZC4gIEJ1dCB0aGlzIGRpc3RyaWN0IGlzIHN1ZmZlcmluZyBmcm9tIEFJRFMgbW9yZSB0aGFuIGFueSBvdGhlcgorcGFydCBvZiB0aGUgd29ybGQuICBTb21lIHNheSB0aGF0IGl0IHN0YXJ0ZWQgdGhlcmUuICBFc3RpbWF0aW9ucyBhcmUgdGhhdCAxMAordG8gMzAlIG9mIHRoZSBVZ2FuZGFucyBhcmUgaW5mZWN0ZWQgd2l0aCBISVYuICBCZWNhdXNlIHBhcmVudHMgZGllLCB0aGVyZSBhcmUKK21hbnkgb3JwaGFucy4gIEluIHRoaXMgZGlzdHJpY3QgYWJvdXQgNjAsMDAwIGNoaWxkcmVuIGhhdmUgbG9zdCBvbmUgb3IgYm90aAorcGFyZW50cywgb3V0IG9mIGEgcG9wdWxhdGlvbiBvZiAzNTAsMDAwLiAgQW5kIHRoaXMgaXMgc3RpbGwgY29udGludWluZy4KKworVGhlIGNoaWxkcmVuIG5lZWQgYSBsb3Qgb2YgaGVscC4gIFRoZSBLQ0MgaXMgd29ya2luZyBoYXJkIHRvIHByb3ZpZGUgdGhlIG5lZWR5Cit3aXRoIGZvb2QsIG1lZGljYWwgY2FyZSBhbmQgZWR1Y2F0aW9uLiAgRm9vZCBhbmQgbWVkaWNhbCBjYXJlIHRvIGtlZXAgdGhlbQoraGVhbHRoeSBub3csIGFuZCBlZHVjYXRpb24gc28gdGhhdCB0aGV5IGNhbiB0YWtlIGNhcmUgb2YgdGhlbXNlbHZlcyBpbiB0aGUKK2Z1dHVyZS4gIEtDQyB3b3JrcyBvbiBhIENocmlzdGlhbiBiYXNlLCBidXQgaGVscCBpcyBnaXZlbiB0byBjaGlsZHJlbiBvZiBhbnkKK3JlbGlnaW9uLgorCitUaGUga2V5IHRvIHNvbHZpbmcgdGhlIHByb2JsZW1zIGluIHRoaXMgYXJlYSBpcyBlZHVjYXRpb24uICBUaGlzIGhhcyBiZWVuCituZWdsZWN0ZWQgaW4gdGhlIHBhc3QgeWVhcnMgd2l0aCBwcmVzaWRlbnQgSWRpIEFtaW4gYW5kIHRoZSBmb2xsb3dpbmcgY2l2aWwKK3dhcnMuICBOb3cgdGhhdCB0aGUgZ292ZXJubWVudCBpcyBzdGFibGUgYWdhaW4sIHRoZSBjaGlsZHJlbiBhbmQgcGFyZW50cyBoYXZlCit0byBsZWFybiBob3cgdG8gdGFrZSBjYXJlIG9mIHRoZW1zZWx2ZXMgYW5kIGhvdyB0byBhdm9pZCBpbmZlY3Rpb25zLiAgVGhlcmUgaXMKK2Fsc28gaGVscCBmb3IgcGVvcGxlIHdobyBhcmUgaWxsIGFuZCBodW5ncnksIGJ1dCB0aGUgcHJpbWFyeSBnb2FsIGlzIHRvCitwcmV2ZW50IHBlb3BsZSBmcm9tIGdldHRpbmcgaWxsIGFuZCB0byB0ZWFjaCB0aGVtIGhvdyB0byBncm93IGhlYWx0aHkgZm9vZC4KKworTW9zdCBvZiB0aGUgb3JwaGFucyBhcmUgbGl2aW5nIGluIGFuIGV4dGVuZGVkIGZhbWlseS4gIEFuIHVuY2xlIG9yIG9sZGVyCitzaXN0ZXIgaXMgdGFraW5nIGNhcmUgb2YgdGhlbS4gIEJlY2F1c2UgdGhlc2UgZmFtaWxpZXMgYXJlIGJpZyBhbmQgdGhlIGluY29tZQorKGlmIGFueSkgaXMgbG93LCBhIGNoaWxkIGlzIGx1Y2t5IGlmIGl0IGdldHMgaGVhbHRoeSBmb29kLiAgQ2xvdGhlcywgbWVkaWNhbAorY2FyZSBhbmQgc2Nob29saW5nIGlzIGJleW9uZCBpdHMgcmVhY2guICBUbyBoZWxwIHRoZXNlIG5lZWR5IGNoaWxkcmVuLCBhCitzcG9uc29yc2hpcCBwcm9ncmFtIHdhcyBwdXQgaW50byBwbGFjZS4gIEEgY2hpbGQgY2FuIGJlIGZpbmFuY2lhbGx5IGFkb3B0ZWQuCitGb3IgYSBmZXcgZG9sbGFycyBhIG1vbnRoIEtDQyBzZWVzIHRvIGl0IHRoYXQgdGhlIGNoaWxkIGdldHMgaW5kaXNwZW5zYWJsZQoraXRlbXMsIGlzIGhlYWx0aHksIGdvZXMgdG8gc2Nob29sIGFuZCBLQ0MgdGFrZXMgY2FyZSBvZiBhbnl0aGluZyBlbHNlIHRoYXQKK25lZWRzIHRvIGJlIGRvbmUgZm9yIHRoZSBjaGlsZCBhbmQgdGhlIGZhbWlseSB0aGF0IHN1cHBvcnRzIGl0LgorCitCZXNpZGVzIGhlbHBpbmcgdGhlIGNoaWxkIGRpcmVjdGx5LCB0aGUgZW52aXJvbm1lbnQgd2hlcmUgdGhlIGNoaWxkIGdyb3dzIHVwCituZWVkcyB0byBiZSBpbXByb3ZlZC4gIEtDQyBoZWxwcyBzY2hvb2xzIHRvIGltcHJvdmUgdGhlaXIgdGVhY2hpbmcgbWV0aG9kcy4KK1RoZXJlIGlzIGEgZGVtb25zdHJhdGlvbiBzY2hvb2wgYXQgdGhlIGNlbnRyZSBhbmQgdGVhY2hlciB0cmFpbmluZ3MgYXJlIGdpdmVuLgorSGVhbHRoIHdvcmtlcnMgYXJlIGJlaW5nIHRyYWluZWQsIGh5Z2llbmUgZWR1Y2F0aW9uIGlzIGNhcnJpZWQgb3V0IGFuZAoraG91c2Vob2xkcyBhcmUgc3RpbXVsYXRlZCB0byBidWlsZCBhIHByb3BlciBsYXRyaW5lLiAgSSBoZWxwZWQgc2V0dGluZyB1cCBhCitwcm9kdWN0aW9uIHNpdGUgZm9yIGNlbWVudCBzbGFicy4gIFRoZXNlIGFyZSB1c2VkIHRvIGJ1aWxkIGEgZ29vZCBsYXRyaW5lLgorVGhleSBhcmUgc29sZCBiZWxvdyBjb3N0IHByaWNlLgorCitUaGVyZSBpcyBhIHNtYWxsIGNsaW5pYyBhdCB0aGUgcHJvamVjdCwgd2hpY2ggcHJvdmlkZXMgY2hpbGRyZW4gYW5kIHRoZWlyCitmYW1pbHkgd2l0aCBtZWRpY2FsIGhlbHAuICBXaGVuIG5lZWRlZCwgdHJhbnNwb3J0IHRvIGEgaG9zcGl0YWwgaXMgb2ZmZXJlZC4KK0ltbXVuaXphdGlvbiBwcm9ncmFtcyBhcmUgY2FycmllZCBvdXQgYW5kIGhlbHAgaXMgcHJvdmlkZWQgd2hlbiBhbiBlcGlkZW1pYyBpcworYnJlYWtpbmcgb3V0IChtZWFzbGVzIGFuZCBjaG9sZXJhIGhhdmUgYmVlbiBhIHByb2JsZW0pLgorCitTdW1tZXIgMTk5NCB0byBzdW1tZXIgMTk5NSBJIHNwZW50IGEgd2hvbGUgeWVhciBhdCB0aGUgY2VudHJlLCB3b3JraW5nIGFzIGEKK3ZvbHVudGVlci4gIEkgaGF2ZSBoZWxwZWQgdG8gZXhwYW5kIHRoZSBjZW50cmUgYW5kIHdvcmtlZCBpbiB0aGUgYXJlYSBvZiB3YXRlcgorYW5kIHNhbml0YXRpb24uICBJIGxlYXJuZWQgdGhhdCB0aGUgaGVscCB0aGF0IHRoZSBLQ0MgcHJvdmlkZXMgcmVhbGx5IGhlbHBzLgorTm93IHRoYXQgSSdtIGJhY2sgaW4gSG9sbGFuZCwgSSB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIHN1cHBvcnRpbmcgS0NDLiAgVG8gZG8KK3RoaXMgSSdtIHJhaXNpbmcgZnVuZHMgYW5kIG9yZ2FuaXppbmcgdGhlIHNwb25zb3JzaGlwIHByb2dyYW0uICBQbGVhc2UKK2NvbnNpZGVyIG9uZSBvZiB0aGVzZSBwb3NzaWJpbGl0aWVzOgorCisxLiAgU3BvbnNvciBhIGNoaWxkIGluIHByaW1hcnkgc2Nob29sOiAxNyBldXJvIGEgbW9udGggKG9yIG1vcmUpLgorMi4gIFNwb25zb3IgYSBjaGlsZCBpbiBzZWNvbmRhcnkgc2Nob29sOiAyNSBldXJvIGEgbW9udGggKG9yIG1vcmUpLgorMy4gIFNwb25zb3IgdGhlIGNsaW5pYzogQW55IGFtb3VudCBhIG1vbnRoIG9yIHF1YXJ0ZXIKKzQuICBBIG9uZS10aW1lIGRvbmF0aW9uCisKK0NvbXBhcmVkIHdpdGggb3RoZXIgb3JnYW5pemF0aW9ucyB0aGF0IGRvIGNoaWxkIHNwb25zb3JzaGlwIHRoZSBhbW91bnRzIGFyZQordmVyeSBsb3cuICBUaGlzIGlzIGJlY2F1c2UgdGhlIG1vbmV5IGdvZXMgZGlyZWN0bHkgdG8gdGhlIGNlbnRyZS4gIExlc3MgdGhhbgorNSUgaXMgdXNlZCBmb3IgYWRtaW5pc3RyYXRpb24uICBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgdGhpcyBpcyBhIHNtYWxsCitvcmdhbml6YXRpb24gdGhhdCB3b3JrcyB3aXRoIHZvbHVudGVlcnMuICBJZiB5b3Ugd291bGQgbGlrZSB0byBzcG9uc29yIGEKK2NoaWxkLCB5b3Ugc2hvdWxkIGhhdmUgdGhlIGludGVudGlvbiB0byBkbyB0aGlzIGZvciBhdCBsZWFzdCBvbmUgeWVhci4KKworSG93IGRvIHlvdSBrbm93IHRoYXQgdGhlIG1vbmV5IHdpbGwgYmUgc3BlbnQgcmlnaHQ/ICBGaXJzdCBvZiBhbGwgeW91IGhhdmUgbXkKK3BlcnNvbmFsIGd1YXJhbnRlZSBhcyB0aGUgYXV0aG9yIG9mIFZpbS4gIEkgdHJ1c3QgdGhlIHBlb3BsZSB0aGF0IGFyZSB3b3JraW5nCithdCB0aGUgY2VudHJlLCBJIGtub3cgdGhlbSBwZXJzb25hbGx5LiAgRnVydGhlciBtb3JlLCB0aGUgY2VudHJlIGlzCitjby1zcG9uc29yZWQgYW5kIGluc3BlY3RlZCBieSBXb3JsZCBWaXNpb24sIFNhdmUgdGhlIENoaWxkcmVuIEZ1bmQgYW5kCitJbnRlcm5hdGlvbmFsIENoaWxkIENhcmUgRnVuZC4gIFRoZSBjZW50cmUgaXMgdmlzaXRlZCBhYm91dCBvbmNlIGEgeWVhciB0bworY2hlY2sgdGhlIHByb2dyZXNzIChhdCBvdXIgb3duIGNvc3QpLiAgSSBoYXZlIHZpc2l0ZWQgdGhlIGNlbnRyZSBteXNlbGYgaW4KKzE5OTYsIDE5OTgsIDIwMDAsIDIwMDEgYW5kIDIwMDMuICBUaGUgdmlzaXQgcmVwb3J0cyBhcmUgb24gdGhlIElDQ0Ygd2ViIHNpdGUuCisKK0lmIHlvdSBoYXZlIGFueSBmdXJ0aGVyIHF1ZXN0aW9ucywgc2VuZCBtZSBlLW1haWw6IDxCcmFtQHZpbS5vcmc+LgorCitUaGUgYWRkcmVzcyBvZiB0aGUgY2VudHJlIGlzOgorCQkJS2liYWFsZSBDaGlsZHJlbidzIENlbnRyZQorCQkJcC5vLiBib3ggMTY1OAorCQkJTWFzYWthLCBVZ2FuZGEsIEVhc3QgQWZyaWNhCisKK1NlbmRpbmcgbW9uZXk6CisKK0NoZWNrIHRoZSBJQ0NGIHdlYiBzaXRlIGZvciB0aGUgbGF0ZXN0IGluZm9ybWF0aW9uISAgU2VlIHxpY2NmfCBmb3IgdGhlIFVSTC4KKworVVNBOgkJVGhlIG1ldGhvZHMgbWVudGlvbmVkIGJlbG93IGNhbiBiZSB1c2VkLiAgQWx0ZXJuYXRpdmVseSwgeW91CisJCWNhbiBzZW5kIGEgY2hlY2sgdG8gdGhlIE5laGVtaWFoIEdyb3VwIE91dHJlYWNoIFNvY2lldHkKKwkJKE5HT1MpLiAgVGhpcyB3aWxsIHJlZHVjZSBiYW5raW5nIGNvc3RzIGFuZCB5b3UgY2FuIGdldCBhbiBJUlMKKwkJdGF4IHJlY2VpcHQuICBUaGUgTkdPUyBmb3J3YXJkcyB0aGUgZnVuZHMgZGlyZWN0bHkgdG8gdGhlCisJCUtpYmFhbGUgcHJvamVjdCBpbiBVZ2FuZGEuICBDaGVja3MgbXVzdCBiZSBtYWRlIHBheWFibGUgdG8KKwkJTkdPUyBidXQgcGxlYXNlIG5vdGUgb24gdGhlIGNoZWNrICJkb25hdGlvbiBLaWJhYWxlIi4gIE1haWwKKwkJY2hlY2tzIHRvOgorCQkJTkdPUworCQkJUC5PLiBCb3ggNTA4NjIKKwkJCUluZGlhbmFwb2xpcywgSU4gNDUyNTAKKwkJUXVlc3Rpb25zIHJlZ2FyZGluZyB0aGUgTmVoZW1pYWggR3JvdXAgT3V0cmVhY2ggU29jaWV0eSAoTkdPUykKKwkJc2hvdWxkIGJlIGRpcmVjdGVkIHRvOiBSb3NzIGRlTWVyY2hhbnQsIEV4ZWN1dGl2ZSBEaXJlY3RvciAtCisJCXIuZGVtZXJjaGFudCBBVCBzYmNnbG9iYWwgRE9UIG5ldC4KKwkJRm9yIHNwb25zb3JpbmcgYSBjaGlsZCBjb250YWN0IEtDRiBpbiBDYW5hZGEgKHNlZSBiZWxvdykgYW5kCisJCXNlbmQgdGhlIGNoZWNrIHRvIE5HT1MgaW4gSW5kaWFuYXBvbGlzLgorCitDYW5hZGE6CQlDb250YWN0IEtpYmFhbGUgQ2hpbGRyZW4ncyBGdW5kIChLQ0YpIGluIFN1cnJleSwgQ2FuYWRhLiAgVGhleQorCQl0YWtlIGNhcmUgb2YgdGhlIENhbmFkaWFuIHNwb25zb3JzIGZvciB0aGUgY2hpbGRyZW4gaW4KKwkJS2liYWFsZS4gIEtDRiBmb3J3YXJkcyAxMDAlIG9mIHRoZSBtb25leSB0byB0aGUgcHJvamVjdCBpbgorCQlVZ2FuZGEuICBZb3UgY2FuIHNlbmQgdGhlbSBhIG9uZSB0aW1lIGRvbmF0aW9uIGRpcmVjdGx5LgorCQlQbGVhc2Ugc2VuZCBtZSBhIG5vdGUgc28gdGhhdCBJIGtub3cgd2hhdCBoYXMgYmVlbiBkb25hdGVkCisJCWJlY2F1c2Ugb2YgVmltLiAgQXNrIEtDRiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgc3BvbnNvcnNoaXAuCisJCQlLaWJhYWxlIENoaWxkcmVuJ3MgRnVuZCBjL28gUGFjaWZpYyBBY2FkZW15CisJCQkxMDIzOC0xNjggU3RyZWV0CisJCQlTdXJyZXksIEIuQy4gVjROIDFaNAorCQkJQ2FuYWRhCisJCQlQaG9uZTogNjA0LTU4MS01MzUzCisJCUlmIHlvdSBtYWtlIGEgZG9uYXRpb24gdG8gS2liYWFsZSBDaGlsZHJlbidzIEZ1bmQgKEtDRikgeW91CisJCXdpbGwgcmVjZWl2ZSBhIHRheCByZWNlaXB0IHdoaWNoIGNhbiBiZSBzdWJtaXR0ZWQgd2l0aCB5b3VyCisJCXRheCByZXR1cm4uCisKK0hvbGxhbmQ6CVRyYW5zZmVyIHRvIHRoZSBhY2NvdW50IG9mICJTdGljaHRpbmcgSUNDRiBIb2xsYW5kIiBpbiBWZW5sby4KKwkJVGhpcyB3aWxsIGFsbG93IGZvciB0YXggZGVkdWN0aW9uIGlmIHlvdSBsaXZlIGluIEhvbGxhbmQuCisJCQlQb3N0YmFuaywgbnIuIDQ1NDg3NzQKKworR2VybWFueToJSXQgaXMgcG9zc2libGUgdG8gbWFrZSBkb25hdGlvbnMgdGhhdCBhbGxvdyBmb3IgYSB0YXggcmV0dXJuLgorCQlDaGVjayB0aGUgSUNDRiB3ZWIgc2l0ZSBmb3IgdGhlIGxhdGVzdCBpbmZvcm1hdGlvbjoKKwkJCWh0dHA6Ly9pY2NmLWhvbGxhbmQub3JnL2dlcm1hbnkuaHRtbAorCitXb3JsZDoJCVVzZSBhIHBvc3RhbCBtb25leSBvcmRlci4gIFRoYXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZyb20gYW55CisJCWNvdW50cnksIG1vc3RseSBmcm9tIHRoZSBwb3N0IG9mZmljZS4gIFVzZSB0aGlzIG5hbWUgKHdoaWNoIGlzCisJCWluIG15IHBhc3Nwb3J0KTogIkFicmFoYW0gTW9vbGVuYWFyIi4gIFVzZSBFdXJvIGZvciB0aGUKKwkJY3VycmVuY3kgaWYgcG9zc2libGUuCisKK0V1cm9wZToJCVVzZSBhIGJhbmsgdHJhbnNmZXIgaWYgcG9zc2libGUuICBZb3VyIGJhbmsgc2hvdWxkIGhhdmUgYSBmb3JtCisJCXRoYXQgeW91IGNhbiB1c2UgZm9yIHRoaXMuICBTZWUgIk90aGVycyIgYmVsb3cgZm9yIHRoZSBzd2lmdAorCQljb2RlIGFuZCBJQkFOIG51bWJlci4KKwkJQW55IG90aGVyIG1ldGhvZCBzaG91bGQgd29yay4gIEFzayBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKwkJc3BvbnNvcnNoaXAuCisKK0NyZWRpdCBDYXJkOglZb3UgY2FuIHVzZSBQYXlQYWwgdG8gc2VuZCBtb25leSB3aXRoIGEgQ3JlZGl0IGNhcmQuICBUaGlzIGlzCisJCXRoZSBtb3N0IHdpZGVseSB1c2VkIEludGVybmV0IGJhc2VkIHBheW1lbnQgc3lzdGVtLiAgSXQncworCQlyZWFsbHkgc2ltcGxlIHRvIHVzZS4gIFVzZSB0aGlzIGxpbmsgdG8gZmluZCBtb3JlIGluZm86CisJCSAgICBodHRwczovL3d3dy5wYXlwYWwuY29tL2FmZmlsL3BhbD1CcmFtJTQwaWNjZi1ob2xsYW5kLm9yZworCQlUaGUgZS1tYWlsIGFkZHJlc3MgZm9yIHNlbmRpbmcgdGhlIG1vbmV5IHRvIGlzOgorCQkgICAgQnJhbUBpY2NmLWhvbGxhbmQub3JnCisJCUZvciBhbW91bnRzIGFib3ZlIDQwMCBFdXJvICgkNTAwKSBzZW5kaW5nIGEgY2hlY2sgaXMKKwkJcHJlZmVycmVkLgorCitPdGhlcnM6CQlUcmFuc2ZlciB0byBvbmUgb2YgdGhlc2UgYWNjb3VudHMgaWYgcG9zc2libGU6CisJCSAgICBQb3N0YmFuaywgYWNjb3VudCA0NTQ4Nzc0CisJCQkJU3dpZnQgY29kZTogSU5HQiBOTCAyQQorCQkJCUlCQU46IE5MNDcgUFNUQiAwMDA0IDU0ODcgNzQKKwkJCXVuZGVyIHRoZSBuYW1lICJzdGljaHRpbmcgSUNDRiBIb2xsYW5kIiwgVmVubG8KKwkJICAgIElmIHRoYXQgZG9lc24ndCB3b3JrOgorCQkgICAgUmFib2JhbmsgVmVubG8sIGFjY291bnQgMzc2NS4wNS4xMTcKKwkJCQlTd2lmdCBjb2RlOiBSQUJPIE5MIDJVCisJCQl1bmRlciB0aGUgbmFtZSAiQnJhbSBNb29sZW5hYXIiLCBWZW5sbworCQlPdGhlcndpc2UsIHNlbmQgYSBjaGVjayBpbiBldXJvIG9yIFVTIGRvbGxhcnMgdG8gdGhlIGFkZHJlc3MKKwkJYmVsb3cuICBNaW5pbWFsIGFtb3VudDogJDcwIChteSBiYW5rIGRvZXMgbm90IGFjY2VwdCBzbWFsbGVyCisJCWFtb3VudHMgZm9yIGZvcmVpZ24gY2hlY2ssIHNvcnJ5KQorCitBZGRyZXNzIHRvIHNlbmQgY2hlY2tzIHRvOgorCQkJc3RpY2h0aW5nIElDQ0YgSG9sbGFuZAorCQkJQnJhbSBNb29sZW5hYXIKKwkJCU1vbGVuc3RyYWF0IDIKKwkJCTIxNjEgSFAgTGlzc2UKKwkJCVRoZSBOZXRoZXJsYW5kcworCitUaGlzIGFkZHJlc3MgaXMgZXhwZWN0ZWQgdG8gYmUgdmFsaWQgZm9yIGEgbG9uZyB0aW1lLiAgVGhlIGFkZHJlc3MgaW4gVmVubG8KK3dpbGwgbm90IGJlIHZhbGlkIGFmdGVyIEp1bmUgMjAwNi4KKworIHRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdWdhbmRhLnR4dCBiL3J1bnRpbWUvZG9jL3VnYW5kYS50eHQKaW5kZXggZDEyNmY4Yi4uNWViOWM0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdWdhbmRhLnR4dAorKysgYi9ydW50aW1lL2RvYy91Z2FuZGEudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVnYW5kYS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNQorKnVnYW5kYS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNSw3ICsxNSw3IEBACiAJaHR0cDovL3d3dy52aW0ub3JnL2ljY2YvCiAKIFlvdSBjYW4gYWxzbyBzcG9uc29yIHRoZSBkZXZlbG9wbWVudCBvZiBWaW0uICBWaW0gc3BvbnNvcnMgY2FuIHZvdGUgZm9yCi1mZWF0dXJlcy4gIFNlZSB8c3BvbnNvcnwuCitmZWF0dXJlcy4gIFNlZSB8c3BvbnNvcnwuICBUaGUgbW9uZXkgZ29lcyB0byBVZ2FuZGEgYW55d2F5LgogCiBUaGUgT3BlbiBQdWJsaWNhdGlvbiBMaWNlbnNlIGFwcGxpZXMgdG8gdGhlIFZpbSBkb2N1bWVudGF0aW9uLCBzZWUKIHxtYW51YWwtY29weXJpZ2h0fC4KQEAgLTEwOSw3ICsxMDksNyBAQAogICBmaWxlIGFuZCBjb25zaWRlciBoZWxwaW5nIG5lZWR5IGNoaWxkcmVuIGluIFVnYW5kYS4KIAogLSBJZiB5b3Ugd2FudCB0byBzdXBwb3J0IGZ1cnRoZXIgVmltIGRldmVsb3BtZW50IGNvbnNpZGVyIGJlY29taW5nIGEKLSAgfHNwb25zb3J8LgorICB8c3BvbnNvcnwuICBUaGUgbW9uZXkgZ29lcyB0byBVZ2FuZGEgYW55d2F5LgogCiAtIEFjY29yZGluZyB0byBSaWNoYXJkIFN0YWxsbWFuIHRoZSBWaW0gbGljZW5zZSBpcyBHTlUgR1BMIGNvbXBhdGlibGUuCiAgIEEgZmV3IG1pbm9yIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgc2luY2UgaGUgY2hlY2tlZCBpdCwgYnV0IHRoYXQgc2hvdWxkIG5vdApAQCAtMjA2LDcgKzIwNiw3IEBACiAJCQlwLm8uIGJveCAxNjU4CiAJCQlNYXNha2EsIFVnYW5kYSwgRWFzdCBBZnJpY2EKIAotU2VuZGluZyBtb25leToKK1NlbmRpbmcgbW9uZXk6CQkJCQkJKmljY2YtZG9uYXRpb25zKgogCiBDaGVjayB0aGUgSUNDRiB3ZWIgc2l0ZSBmb3IgdGhlIGxhdGVzdCBpbmZvcm1hdGlvbiEgIFNlZSB8aWNjZnwgZm9yIHRoZSBVUkwuCiAKQEAgLTI4Niw4ICsyODYsMTEgQEAKIEFkZHJlc3MgdG8gc2VuZCBjaGVja3MgdG86CiAJCQlzdGljaHRpbmcgSUNDRiBIb2xsYW5kCiAJCQlCcmFtIE1vb2xlbmFhcgotCQkJQ2xlbWF0aXNzdHJhYXQgMzAKLQkJCTU5MjUgQkUgIFZlbmxvCisJCQlNb2xlbnN0cmFhdCAyCisJCQkyMTYxIEhQIExpc3NlCiAJCQlUaGUgTmV0aGVybGFuZHMKIAorVGhpcyBhZGRyZXNzIGlzIGV4cGVjdGVkIHRvIGJlIHZhbGlkIGZvciBhIGxvbmcgdGltZS4gIFRoZSBhZGRyZXNzIGluIFZlbmxvCit3aWxsIG5vdCBiZSB2YWxpZCBhZnRlciBKdW5lIDIwMDYuCisKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91bmRvLnR4dCBiL3J1bnRpbWUvZG9jL3VuZG8udHh0CmluZGV4IDRmZjdlMjAuLjJhMmQ0NzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3VuZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3VuZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnVuZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMQorKnVuZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMTMsOSArMTEzLDcgQEAKIGNoYW5nZS4gIFRoZSB1bmRvbmUgY2hhbmdlcyBiZWNvbWUgYSBicmFuY2guICBZb3UgY2FuIGdvIHRvIHRoYXQgYnJhbmNoIHdpdGgKIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMuCiAKLVdoYXQgbWF0dGVycyBoZXJlIGlzIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgY2hhbmdlcyBhcmUgbWFkZS4gIFVuZG8gYW5kIHJlZG8KLWFyZSBub3QgY29uc2lkZXJlZCBjaGFuZ2VzIGluIHRoaXMgY29udGV4dC4gIEFmdGVyIGVhY2ggY2hhbmdlIHlvdSBoYXZlIGEgbmV3Ci1zdGF0ZSBvZiB0aGUgdGV4dC4KK1RoaXMgaXMgZXhwbGFpbmVkIGluIHRoZSB1c2VyIG1hbnVhbDogfHVzcl8zMi50eHR8LgogCiAJCQkJCQkJKjp1bmRvbCogKjp1bmRvbGlzdCoKIDp1bmRvbFtpc3RdCQlMaXN0IHRoZSBsZWFmcyBpbiB0aGUgdHJlZSBvZiBjaGFuZ2VzLiAgRXhhbXBsZToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMDIudHh0CmluZGV4IDRhOWE4ZDQuLjBmYWZkNGEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKKyp1c3JfMDIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMzAyLDcgKzMwMiw3IEBACiAKIFRoZSAiVSIgY29tbWFuZCBpcyBhIGNoYW5nZSBieSBpdHNlbGYsIHdoaWNoIHRoZSAidSIgY29tbWFuZCB1bmRvZXMgYW5kIENUUkwtUgogcmVkb2VzLiAgVGhpcyBtaWdodCBiZSBhIGJpdCBjb25mdXNpbmcuICBEb24ndCB3b3JyeSwgd2l0aCAidSIgYW5kIENUUkwtUiB5b3UKLWNhbiBnbyB0byBhbnkgb2YgdGhlIHNpdHVhdGlvbnMgeW91IGhhZC4KK2NhbiBnbyB0byBhbnkgb2YgdGhlIHNpdHVhdGlvbnMgeW91IGhhZC4gIE1vcmUgYWJvdXQgdGhhdCBpbiBzZWN0aW9uIHx8LgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICowMi42KglPdGhlciBlZGl0aW5nIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDMudHh0IGIvcnVudGltZS9kb2MvdXNyXzAzLnR4dAppbmRleCBkOGU0YzUwLi4yYTVkNTdhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzAzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDIyCisqdXNyXzAzLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMjIKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wOC50eHQgYi9ydW50aW1lL2RvYy91c3JfMDgudHh0CmluZGV4IDE2MGJmNjUuLjkxM2JhMWQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wOC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBGZWIgMjUKKyp1c3JfMDgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IEZlYiAyNQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA5LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQKaW5kZXggNzM5YWVjNS4uMDlkYzIyZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA5LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDkudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wOS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQorKnVzcl8wOS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTAudHh0IGIvcnVudGltZS9kb2MvdXNyXzEwLnR4dAppbmRleCBhYThmOTJmLi5kM2Q5MzA2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCisqdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjEudHh0CmluZGV4IDRhZjI4NmEuLmU4NzQyMzQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKKyp1c3JfMjEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQKaW5kZXggMTUwNjk1MC4uOTFlYjQ4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAxMAorKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDEwCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjQudHh0IGIvcnVudGltZS9kb2MvdXNyXzI0LnR4dAppbmRleCBiOTE2YWE4Li44MzRkM2NlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCisqdXNyXzI0LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjUudHh0CmluZGV4IGZjZTE5MzEuLjRmNDY0YTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI1LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjUudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKKyp1c3JfMjUudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzI2LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yNi50eHQKaW5kZXggMDE4NzYzZi4uMjAzNzUzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzI2LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAyIE9jdCAyOQorKnVzcl8yNi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDIgT2N0IDI5CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMjkudHh0IGIvcnVudGltZS9kb2MvdXNyXzI5LnR4dAppbmRleCBiOTA2Y2Y2Li4yZmM4NmViIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMjkudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8yOS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzI5LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRmViIDEyCisqdXNyXzI5LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNCBGZWIgMTIKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8zMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMzIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OTNlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy91c3JfMzIudHh0CkBAIC0wLDAgKzEsMTUxIEBACisqdXNyXzMyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjQKKworCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCisKKwkJCSAgICAgIFRoZSB1bmRvIHRyZWUKKworCitWaW0gcHJvdmlkZXMgbXVsdGktbGV2ZWwgdW5kby4gIElmIHlvdSB1bmRvIGEgZmV3IGNoYW5nZXMgYW5kIHRoZW4gbWFrZSBhIG5ldworY2hhbmdlIHlvdSBjcmVhdGUgYSBicmFuY2ggaW4gdGhlIHVuZG8gdHJlZS4gIFRoaXMgdGV4dCBpcyBhYm91dCBtb3ZpbmcKK3Rocm91Z2ggdGhlIGJyYW5jaGVzLgorCit8MzIuMXwJTnVtYmVyaW5nIGNoYW5nZXMKK3wzMi4yfAlKdW1waW5nIGFyb3VuZCB0aGUgdHJlZQorfDMyLjN8CVRpbWUgdHJhdmVsbGluZworCisgICAgIE5leHQgY2hhcHRlcjogfHVzcl80MC50eHR8ICBNYWtlIG5ldyBjb21tYW5kcworIFByZXZpb3VzIGNoYXB0ZXI6IHx1c3JfMzEudHh0fCAgRXhwbG9pdGluZyB0aGUgR1VJCitUYWJsZSBvZiBjb250ZW50czogfHVzcl90b2MudHh0fAorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyozMi4xKglOdW1iZXJpbmcgY2hhbmdlcworCitJbiBzZWN0aW9uIHwwMi41fCB3ZSBvbmx5IGRpc2N1c3NlZCBvbmUgbGluZSBvZiB1bmRvL3JlZG8uICBCdXQgaXQgaXMgYWxzbworcG9zc2libGUgdG8gYnJhbmNoIG9mZi4gIFRoaXMgaGFwcGVucyB3aGVuIHlvdSB1bmRvIGEgZmV3IGNoYW5nZXMgYW5kIHRoZW4KK21ha2UgYSBuZXcgY2hhbmdlLiAgVGhlIG5ldyBjaGFuZ2VzIGJlY29tZSBhIGJyYW5jaCBpbiB0aGUgdW5kbyB0cmVlLgorCitMZXQncyBzdGFydCB3aXRoIHRoZSB0ZXh0ICJvbmUiLiAgVGhlIGZpcnN0IGNoYW5nZSB0byBtYWtlIGlzIHRvIGFwcGVuZAorIiB0b28iLiAgQW5kIHRoZW4gbW92ZSB0byB0aGUgZmlyc3QgJ28nIGFuZCBjaGFuZ2UgaXQgaW50byAndycuICBXZSB0aGVuIGhhdmUKK3R3byBjaGFuZ2VzLCBudW1iZXJlZCAxIGFuZCAyLCBhbmQgdGhyZWUgc3RhdGVzIG9mIHRoZSB0ZXh0OgorCisJCW9uZSB+CisJCSB8CisJICAgICAgY2hhbmdlIDEKKwkgICAgICAgICB8CisJICAgICAgb25lIHRvbyB+CisJICAgICAgICAgfAorCSAgICAgIGNoYW5nZSAyCisJICAgICAgICAgfAorCSAgICAgIG9uZSB0d28gfgorCitJZiB3ZSBub3cgdW5kbyBvbmUgY2hhbmdlLCBiYWNrIHRvICJvbmUgdG9vIiwgYW5kIGNoYW5nZSAib25lIiB0byAibWUiIHdlCitjcmVhdGUgYSBicmFuY2ggaW4gdGhlIHVuZG8gdHJlZToKKworCQlvbmUgfgorCQkgfAorCSAgICAgIGNoYW5nZSAxCisJICAgICAgICAgfAorCSAgICAgIG9uZSB0b28gfgorCSAgICAgIC8gICAgIFwKKyAgICAgICAgIGNoYW5nZSAyICBjaGFuZ2UgMworICAgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgIG9uZSB0d28gICAgbWUgdG9vIH4KKworWW91IGNhbiBub3cgdXNlIHRoZSB8dXwgY29tbWFuZCB0byB1bmRvLiAgSWYgeW91IGRvIHRoaXMgdHdpY2UgeW91IGdldCB0bworIm9uZSIuICBVc2UgfENUUkwtUnwgdG8gcmVkbywgYW5kIHlvdSB3aWxsIGdvIHRvICJvbmUgdG9vIi4gIE9uZSBtb3JlIHxDVFJMLVJ8Cit0YWtlcyB5b3UgdG8gIm1lIHRvbyIuICBUaHVzIHVuZG8gYW5kIHJlZG8gZ28gdXAgYW5kIGRvd24gaW4gdGhlIHRyZWUsIHVzaW5nCit0aGUgYnJhbmNoIHRoYXQgd2FzIGxhc3QgdXNlZC4KKworV2hhdCBtYXR0ZXJzIGhlcmUgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBjaGFuZ2VzIGFyZSBtYWRlLiAgVW5kbyBhbmQgcmVkbworYXJlIG5vdCBjb25zaWRlcmVkIGNoYW5nZXMgaW4gdGhpcyBjb250ZXh0LiAgQWZ0ZXIgZWFjaCBjaGFuZ2UgeW91IGhhdmUgYSBuZXcKK3N0YXRlIG9mIHRoZSB0ZXh0LgorCitOb3RlIHRoYXQgb25seSB0aGUgY2hhbmdlcyBhcmUgbnVtYmVyZWQsIHRoZSB0ZXh0IHNob3duIGluIHRoZSB0cmVlIGFib3ZlIGhhcworbm8gaWRlbnRpZmllci4gIFRoZXkgYXJlIG1vc3RseSByZWZlcnJlZCB0byBieSB0aGUgbnVtYmVyIG9mIHRoZSBjaGFuZ2UgYWJvdmUKK2l0LiAgQnV0IHNvbWV0aW1lcyBieSB0aGUgbnVtYmVyIG9mIG9uZSBvZiB0aGUgY2hhbmdlcyBiZWxvdyBpdCwgZXNwZWNpYWxseQord2hlbiBtb3ZpbmcgdXAgaW4gdGhlIHRyZWUsIHNvIHRoYXQgeW91IGtub3cgd2hpY2ggY2hhbmdlIHdhcyBqdXN0IHVuZG9uZS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisqMzIuMioJSnVtcGluZyBhcm91bmQgdGhlIHRyZWUKKworU28gaG93IGRvIHlvdSBnZXQgdG8gIm9uZSB0d28iIG5vdz8gIFlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZDogPgorCisJOnVuZG8gMgorCitUaGUgdGV4dCBpcyBub3cgIm9uZSB0d28iLCB5b3UgYXJlIGJlbG93IGNoYW5nZSAyLiAgWW91IGNhbiB1c2UgdGhlIHw6dW5kb3wKK2NvbW1hbmQgdG8ganVtcCB0byBiZWxvdyBhbnkgY2hhbmdlIGluIHRoZSB0cmVlLgorCitOb3cgbWFrZSBhbm90aGVyIGNoYW5nZTogY2hhbmdlICJvbmUiIHRvICJub3QiOgorCisJCW9uZSB+CisJCSB8CisJICAgICAgY2hhbmdlIDEKKwkgICAgICAgICB8CisJICAgICAgb25lIHRvbyB+CisJICAgICAgLyAgICAgXAorICAgICAgICAgY2hhbmdlIDIgIGNoYW5nZSAzCisgICAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgb25lIHR3byAgICBtZSB0b28gfgorCSAgICB8CisJIGNoYW5nZSA0CisJICAgIHwKKwkgbm90IHR3byB+CisKK05vdyB5b3UgY2hhbmdlIHlvdXIgbWluZCBhbmQgd2FudCB0byBnbyBiYWNrIHRvICJtZSB0b28iLiAgVXNlIHRoZSB8Zy18Citjb21tYW5kLiAgVGhpcyBtb3ZlcyBiYWNrIGluIHRpbWUuICBUaHVzIGl0IGRvZXNuJ3Qgd2FsayB0aGUgdHJlZSB1cHdhcmRzIG9yCitkb3dud2FyZHMsIGJ1dCBnb2VzIHRvIHRoZSBjaGFuZ2UgbWFkZSBiZWZvcmUuCisKK1lvdSBjYW4gcmVwZWF0IHxnLXwgYW5kIHlvdSB3aWxsIHNlZSB0aGUgdGV4dCBjaGFuZ2U6CisJbWUgdG9vIH4KKwlvbmUgdHdvIH4KKwlvbmUgdG9vIH4KKwlvbmUgfgorCitVc2UgfGcrfCB0byBtb3ZlIGZvcndhcmQgaW4gdGltZToKKwlvbmUgfgorCW9uZSB0b28gfgorCW9uZSB0d28gfgorCW1lIHRvbyB+CisJbm90IHR3byB+CisKK1VzaW5nIHw6dW5kb3wgaXMgdXNlZnVsIGlmIHlvdSBrbm93IHdoYXQgY2hhbmdlIHlvdSB3YW50IHRvIGp1bXAgdG8uICB8Zy18IGFuZAorfGcrfCBhcmUgdXNlZnVsIGlmIHlvdSBkb24ndCBrbm93IGV4YWN0bHkgd2hhdCB0aGUgY2hhbmdlIG51bWJlciBpcy4KKworWW91IGNhbiB0eXBlIGEgY291bnQgYmVmb3JlIHxnLXwgYW5kIHxnK3wgdG8gcmVwZWF0IHRoZW0uCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKjMyLjMqCVRpbWUgdHJhdmVsbGluZworCitXaGVuIHlvdSBoYXZlIGJlZW4gd29ya2luZyBvbiB0ZXh0IGZvciBhIHdoaWxlIHRoZSB0cmVlIGdyb3dzIHRvIGJlY29tZSBiaWcuCitUaGVuIHlvdSBtYXkgd2FudCB0byBnbyB0byB0aGUgdGV4dCBvZiBzb21lIG1pbnV0ZXMgYWdvLgorCitUbyBzZWUgd2hhdCBicmFuY2hlcyB0aGVyZSBhcmUgaW4gdGhlIHVuZG8gdHJlZSB1c2UgdGhpcyBjb21tYW5kOiA+CisKKwk6dW5kb2xpc3QKKzwJbnVtYmVyIGNoYW5nZXMgIHRpbWUgfgorCSAgICAgMyAgICAgICAyICAxNiBzZWNvbmRzIGFnbworCSAgICAgNCAgICAgICAzICA1IHNlY29uZHMgYWdvCisKK0hlcmUgeW91IGNhbiBzZWUgdGhlIG51bWJlciBvZiB0aGUgbGVhdmVzIGluIGVhY2ggYnJhbmNoIGFuZCB3aGVuIHRoZSBjaGFuZ2UKK3dhcyBtYWRlLiAgQXNzdW1pbmcgd2UgYXJlIGJlbG93IGNoYW5nZSA0LCBhdCAibm90IHR3byIsIHlvdSBjYW4gZ28gYmFjayB0ZW4KK3NlY29uZHMgd2l0aCB0aGlzIGNvbW1hbmQ6ID4KKworCTplYXJsaWVyIDEwcworCitEZXBlbmRpbmcgb24gaG93IG11Y2ggdGltZSB5b3UgdG9vayBmb3IgdGhlIGNoYW5nZXMgeW91IGVuZCB1cCBhdCBhIGNlcnRhaW4KK3Bvc2l0aW9uIGluIHRoZSB0cmVlLiAgVGhlIHw6ZWFybGllcnwgY29tbWFuZCBhcmd1bWVudCBjYW4gYmUgIm0iIGZvciBtaW51dGVzCithbmQgImgiIGZvciBob3Vycy4gIFRvIGdvIGFsbCB0aGUgd2F5IGJhY2sgdXNlIGEgYmlnIG51bWJlcjogPgorCisJOmVhcmxpZXIgMTBoCisKK1RvIHRyYXZlbCBmb3J3YXJkIGluIHRpbWUgYWdhaW4gdXNlIHRoZSB8OmxhdGVyfCBjb21tYW5kOiA+CisKKwk6bGF0ZXIgMW0KKworVGhlIGFyZ3VtZW50cyBhcmUgInMiLCAibSIgYW5kICJoIiwganVzdCBsaWtlIHdpdGggfDplYXJsaWVyfC4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK05leHQgY2hhcHRlcjogfHVzcl80MC50eHR8ICBNYWtlIG5ldyBjb21tYW5kcworCitDb3B5cmlnaHQ6IHNlZSB8bWFudWFsLWNvcHlyaWdodHwgIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQgYi9ydW50aW1lL2RvYy91c3JfNDEudHh0CmluZGV4IDE5NTkzNTAuLjg2NDc5ODIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80MS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjEKKyp1c3JfNDEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMjI5Myw2ICsyMjkzLDggQEAKIEZvciB1dG1vc3QgcG9ydGFiaWxpdHkgdXNlIFZpbSBpdHNlbGYgdG8gcGFjayBzY3JpcHRzIHRvZ2V0aGVyLiAgVGhpcyBjYW4gYmUKIGRvbmUgd2l0aCB0aGUgVmltYmFsbCB1dGlsaXR5LiAgU2VlIHx2aW1iYWxsfC4KIAorSXQncyBnb29kIGlmIHlvdSBhZGQgYSBsaW5lIHRvIGFsbG93IGF1dG9tYXRpYyB1cGRhdGluZy4gIFNlZSB8Z2x2cy1wbHVnaW5zfC4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIE5leHQgY2hhcHRlcjogfHVzcl80Mi50eHR8ICBBZGQgbmV3IG1lbnVzCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDIudHh0IGIvcnVudGltZS9kb2MvdXNyXzQyLnR4dAppbmRleCBiYmYwNmU1Li4xOTQwYzQ0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80Mi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCisqdXNyXzQyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80My50eHQgYi9ydW50aW1lL2RvYy91c3JfNDMudHh0CmluZGV4IGUwNGI4YjIuLjUyMDNkNzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80My50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMiBKdWwgMTQKKyp1c3JfNDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDAyIEp1bCAxNAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQ0LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80NC50eHQKaW5kZXggZWRhZGJmYi4uMzJmNGQxNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQ0LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80NC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQorKnVzcl80NC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDUudHh0IGIvcnVudGltZS9kb2MvdXNyXzQ1LnR4dAppbmRleCAwMzRiMDQwLi4wMjY5MmJlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80NS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQ1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVuIDA4CisqdXNyXzQ1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNCBKdW4gMDgKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl85MC50eHQgYi9ydW50aW1lL2RvYy91c3JfOTAudHh0CmluZGV4IDRhOWM0ODguLmY5MWUwZWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl85MC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzkwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfOTAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBNYXIgMjEKKyp1c3JfOTAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA0IE1hciAyMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyX3RvYy50eHQgYi9ydW50aW1lL2RvYy91c3JfdG9jLnR4dAppbmRleCA3M2Q4ZWI1Li4yMmMwNTEzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfdG9jLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfdG9jLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfdG9jLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIxCisqdXNyX3RvYy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDI0CiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC0zNCw2ICszNCw3IEBACiB8dXNyXzI5LnR4dHwgIE1vdmluZyB0aHJvdWdoIHByb2dyYW1zCiB8dXNyXzMwLnR4dHwgIEVkaXRpbmcgcHJvZ3JhbXMKIHx1c3JfMzEudHh0fCAgRXhwbG9pdGluZyB0aGUgR1VJCit8dXNyXzMyLnR4dHwgIFRoZSB1bmRvIHRyZWUKIAogVHVuaW5nIFZpbQogfHVzcl80MC50eHR8ICBNYWtlIG5ldyBjb21tYW5kcwpAQCAtNDcsNyArNDgsOCBAQAogfHVzcl85MC50eHR8ICBJbnN0YWxsaW5nIFZpbQogCiAKLU1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gaW4gdGhlIHJlZmVyZW5jZSBtYW51YWw6IHxyZWYtdG9jfAorUmVmZXJlbmNlIG1hbnVhbAorfHJlZi10b2N8ICAgICBNb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uIGZvciBhbGwgY29tbWFuZHMKIAogVGhlIHVzZXIgbWFudWFsIGlzIGF2YWlsYWJsZSBhcyBhIHNpbmdsZSwgcmVhZHkgdG8gcHJpbnQgSFRNTCBhbmQgUERGIGZpbGUKIGhlcmU6CkBAIC0yNzAsNiArMjcyLDExIEBACiAJCXwzMS40fAlWaW0gd2luZG93IHBvc2l0aW9uIGFuZCBzaXplCiAJCXwzMS41fAlWYXJpb3VzCiAKK3x1c3JfMzIudHh0fCAgVGhlIHVuZG8gdHJlZQorCQl8MzIuMXwJTnVtYmVyaW5nIGNoYW5nZXMKKwkJfDMyLjJ8CUp1bXBpbmcgYXJvdW5kIHRoZSB0cmVlCisJCXwzMi4zfAlUaW1lIHRyYXZlbGxpbmcKKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBUdW5pbmcgVmltIH4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjQudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjQudHh0CmluZGV4IGYzZjc2MGYuLjhjMTNhZjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb240LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTWFyIDEyCisqdmVyc2lvbjQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGIuICBMYXN0IGNoYW5nZTogMjAwNCBNYXIgMTIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb241LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb241LnR4dAppbmRleCA0MzgxNmI4Li4wZjJmYTkyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjUudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb241LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQorKnZlcnNpb241LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQKaW5kZXggNzQ5MGE0NS4uMDgzMDc3ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBPY3QgMTcKKyp2ZXJzaW9uNi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA1IE9jdCAxNwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmlfZGlmZi50eHQgYi9ydW50aW1lL2RvYy92aV9kaWZmLnR4dAppbmRleCA0ZmU3ZmY5Li41OTY5Y2IzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92aV9kaWZmLnR4dAorKysgYi9ydW50aW1lL2RvYy92aV9kaWZmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2aV9kaWZmLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBKYW4gMDIKKyp2aV9kaWZmLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYi4gIExhc3QgY2hhbmdlOiAyMDA2IEphbiAwMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmlzdWFsLnR4dCBiL3J1bnRpbWUvZG9jL3Zpc3VhbC50eHQKaW5kZXggZjk2ODhhYi4uZmNiMzA0YyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmlzdWFsLnR4dAorKysgYi9ydW50aW1lL2RvYy92aXN1YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZpc3VhbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMAorKnZpc3VhbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBiLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3BsYWludGV4LnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vcGxhaW50ZXgudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NjBhM2EKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3BsYWludGV4LnZpbQpAQCAtMCwwICsxLDQ4IEBACisiIHBsYWluIFRlWCBmaWxldHlwZSBwbHVnaW4KKyIgTGFuZ3VhZ2U6ICAgICBwbGFpbiBUZVggKGZ0PXBsYWludGV4KQorIiBNYWludGFpbmVyOiAgIEJlbmppIEZpc2hlciwgUGguRC4gPGJlbmppQG1lbWJlci5BTVMub3JnPgorIiBWZXJzaW9uOgkxLjAKKyIgTGFzdCBDaGFuZ2U6CVdlZCAyMiBNYXIgMjAwNiAwOTozNjozMiBBTSBFU1QKKworIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyLgoraWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCisgIGZpbmlzaAorZW5kaWYKKworIiBEb24ndCBsb2FkIGFub3RoZXIgcGx1Z2luIGZvciB0aGlzIGJ1ZmZlci4KK2xldCBiOmRpZF9mdHBsdWdpbiA9IDEKKworIiBBdm9pZCBwcm9ibGVtcyBpZiBydW5uaW5nIGluICdjb21wYXRpYmxlJyBtb2RlLgorbGV0IHM6c2F2ZV9jcG8gPSAmY3BvCitzZXQgY3BvJnZpbQorCisiIFNldCAnY29tbWVudHMnIHRvIGZvcm1hdCBkYXNoZWQgbGlzdHMgaW4gY29tbWVudHMKK3NldGxvY2FsIGNvbT1zTzolXCAtLG1POiVcIFwgLGVPOiUlLDolCisKKyIgU2V0ICdjb21tZW50c3RyaW5nJyB0byByZWNvZ25pemUgdGhlICUgY29tbWVudCBjaGFyYWN0ZXI6CisiIChUaGFua3MgdG8gQWppdCBUaGFra2FyLikKK3NldGxvY2FsIGNtcz0lJXMKKworIiBBbGxvdyAiW2QiIHRvIGJlIHVzZWQgdG8gZmluZCBhIG1hY3JvIGRlZmluaXRpb246CitsZXQgJmw6ZGVmaW5lPSdcXFwoW2VneF1cfGNoYXJcfG1hdGhjaGFyXHxjb3VudFx8ZGltZW5cfG11c2tpcFx8c2tpcFx8dG9rc1wpXD0nCisJXCAuCSdkZWZcfFxcZm9udFx8XFxcKGZ1dHVyZVwpXD1sZXQnCisJXCAuICdcfFxcbmV3XChjb3VudFx8ZGltZW5cfHNraXBcfG11c2tpcFx8Ym94XHx0b2tzXHxyZWFkXHx3cml0ZScKKwlcIC4JJ1x8ZmFtXHxpbnNlcnRcKScKKworIiBUZWxsIFZpbSB0byByZWNvZ25pemUgXGlucHV0IGJhciA6CitsZXQgJmw6aW5jbHVkZSA9ICdcXGlucHV0Jworc2V0bG9jYWwgc3VmZml4ZXNhZGQ9LnRleAorCisiIFRoZSBmb2xsb3dpbmcgbGluZXMgZW5hYmxlIHRoZSBtYWNyb3MvbWF0Y2hpdC52aW0gcGx1Z2luIGZvcgorIiBleHRlbmRlZCBtYXRjaGluZyB3aXRoIHRoZSAlIGtleS4KKyIgVGhlcmUgaXMgbm8gZGVmYXVsdCBtZWFuaW5nIGZvciBcKC4uLlwpIGV0Yy4sIGJ1dCBtYW55IHVzZXJzIGRlZmluZSBvbmUuCitpZiBleGlzdHMoImxvYWRlZF9tYXRjaGl0IikKKyAgbGV0IGI6bWF0Y2hfaWdub3JlY2FzZSA9IDAKKyAgICBcIHwgbGV0IGI6bWF0Y2hfc2tpcCA9ICdyOlxcXEA8IVwlKFxcXFxcKSolJworICAgIFwgfCBsZXQgYjptYXRjaF93b3JkcyA9ICcoOiksXFs6XSx7On0sXFwoOlxcKSxcXFxbOlxcXSwnIC4KKyAgICBcICdcXGJlZ2luXHMqXCh7XGFcK1wqXD19XCk6XFxlbmRccypcMScKK2VuZGlmICIgZXhpc3RzKCJsb2FkZWRfbWF0Y2hpdCIpCisKK2xldCAmY3BvID0gczpzYXZlX2NwbworCisiIHZpbTpzdHM9Mjpzdz0yOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9mdHBsdWdpbi90ZXgudmltIGIvcnVudGltZS9mdHBsdWdpbi90ZXgudmltCmluZGV4IDE4NzFlOGYuLmIzOTJmYTIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vdGV4LnZpbQorKysgYi9ydW50aW1lL2Z0cGx1Z2luL3RleC52aW0KQEAgLTEsMTEwICsxLDQxIEBACiAiIExhVGVYIGZpbGV0eXBlIHBsdWdpbgogIiBMYW5ndWFnZTogICAgIExhVGVYIChmdD10ZXgpCiAiIE1haW50YWluZXI6ICAgQmVuamkgRmlzaGVyLCBQaC5ELiA8YmVuamlAbWVtYmVyLkFNUy5vcmc+Ci0iIFZlcnNpb246CTEuMgotIiBMYXN0IENoYW5nZToJVHVlIDExIE1heSAyMDA0IDA0OjQ5OjIwIFBNIEVEVAorIiBWZXJzaW9uOgkxLjMKKyIgTGFzdCBDaGFuZ2U6CVdlZCAyMiBNYXIgMjAwNiAwOTozNjozMiBBTSBFU1QKICIgIFVSTDoJCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHQucGhwP3NjcmlwdF9pZD00MTEKIAotIiBPbmx5IGRvIHRoaXMgd2hlbiBub3QgZG9uZSB5ZXQgZm9yIHRoaXMgYnVmZmVyCisiIE9ubHkgZG8gdGhpcyB3aGVuIG5vdCBkb25lIHlldCBmb3IgdGhpcyBidWZmZXIuCiBpZiBleGlzdHMoImI6ZGlkX2Z0cGx1Z2luIikKICAgZmluaXNoCiBlbmRpZgogCi0iIERvbid0IGxvYWQgYW5vdGhlciBwbHVnaW4gZm9yIHRoaXMgYnVmZmVyCi1sZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisiIFN0YXJ0IHdpdGggcGxhaW4gVGVYLiAgVGhpcyB3aWxsIGFsc28gZGVmaW5lIGI6ZGlkX2Z0cGx1Z2luIC4KK3NvdXJjZSAkVklNUlVOVElNRS9mdHBsdWdpbi9wbGFpbnRleC52aW0KIAorIiBBdm9pZCBwcm9ibGVtcyBpZiBydW5uaW5nIGluICdjb21wYXRpYmxlJyBtb2RlLgogbGV0IHM6c2F2ZV9jcG8gPSAmY3BvCiBzZXQgY3BvJnZpbQogCi0iIFRoaXMgbWF5IGJlIHVzZWQgdG8gc2V0IGI6dGV4X2ZsYXZvci4gIEEgbW9yZSBjb21wbGV0ZSB2ZXJzaW9uIGNhbiBiZSBmb3VuZAotIiBpbiBmb28udmltIChzZWUgaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdC5waHA/c2NyaXB0X2lkPTcyKS4KLWlmICFleGlzdHMoIipzOkdldE1vZGVsaW5lcyIpCi0gIGZ1biEgczpHZXRNb2RlbGluZXMocGF0LCAuLi4pCi0gICAgIiBMb25nIGJ1dCBzaW1wbGU6ICBzZXQgc3RhcnQgbGluZSBhbmQgZmluaXNoIGxpbmUuCi0gICAgbGV0IEVPRiA9IGxpbmUoIiQiKQotICAgIGlmIGE6MCA+IDEKLSAgICAgIGxldCBzdGFydCA9IGE6MSB8IGxldCBmaW5pc2ggPSBhOjIKLSAgICBlbHNlaWYgYTowID09IDEKLSAgICAgIGlmIGE6MSA+IDAKLQlsZXQgZmluaXNoID0gYToxCi0gICAgICBlbHNlCi0JbGV0IHN0YXJ0ID0gRU9GICsgYToxICsgMQotICAgICAgZW5kaWYKLSAgICBlbmRpZgotICAgIGlmICFleGlzdHMoInN0YXJ0IikgfHwgc3RhcnQgPCAxCi0gICAgICBsZXQgc3RhcnQgPSAxCi0gICAgZW5kaWYKLSAgICBpZiAhZXhpc3RzKCJmaW5pc2giKSB8fCBmaW5pc2ggPiBFT0YKLSAgICAgIGxldCBmaW5pc2ggPSBFT0YKLSAgICBlbmRpZgotICAgIGxldCBuID0gMAotICAgIHNpbGVudCEgZXhlY3V0ZSBzdGFydCAuIiwiLiBmaW5pc2gKLQkgIFwgJ2cvJyAuIGVzY2FwZShhOnBhdCwgIi8iKSAuICIvbGV0IG49bGluZSgnLicpIgotICAgIGlmIG4KLSAgICAgIGV4ZWN1dGUgIm5vcm1hbCFcPEMtTz4iCi0gICAgZW5kaWYKLSAgICByZXR1cm4gbiAuICI6IgotICBlbmRmdW4KLWVuZGlmICIgIWV4aXN0cygiKkdldE1vZGVsaW5lcyIpCi0KLSIgRGVmaW5lIHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUgYjp0ZXhfZmxhdm9yIHRvICJ0ZXgiIChmb3IgcGxhaW4pIG9yCi0iICJsYXRleCIuCi0iIDEuIENoZWNrIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIGZvciAiJSY8Zm9ybWF0PiIuCi0iIDIuIENoZWNrIHRoZSBmaXJzdCAxMDAwIGxpbmVzIGZvciAiXGJlZ2lue2RvY3VtZW50fSIuCi0iIDMuIENoZWNrIGZvciBhIGdsb2JhbCB2YXJpYWJsZSBnOnRleF9mbGF2b3IsIGNhbiBiZSBzZXQgaW4gdXNlcidzIHZpbXJjLgotIiA0LiBEZWZhdWx0IHRvICJsYXRleCIuCi0iIDUuIFN0cmlwICJwZGYiIGFuZCBjaGFuZ2UgInBsYWluIiB0byAidGV4Ii4KLWlmIGdldGxpbmUoMSkgPX4gJ14lJlxzKlxrXCsnCi0JbGV0IGI6dGV4X2ZsYXZvciA9IG1hdGNoc3RyKGdldGxpbmUoMSksICclJlxzKlx6c1xrXCsnKQotZWxzZWlmIHM6R2V0TW9kZWxpbmVzKCdcXGJlZ2luXHMqe1xzKmRvY3VtZW50XHMqfScsIDEwMDApICE9ICIwOiIKLQlsZXQgYjp0ZXhfZmxhdm9yID0gImxhdGV4IgotZWxzZWlmIGV4aXN0cygiZzp0ZXhfZmxhdm9yIikKLQlsZXQgYjp0ZXhfZmxhdm9yID0gZzp0ZXhfZmxhdm9yCi1lbHNlCi0JbGV0IGI6dGV4X2ZsYXZvciA9ICJsYXRleCIKLWVuZGlmCi1sZXQgYjp0ZXhfZmxhdm9yID0gc3Vic3RpdHV0ZShiOnRleF9mbGF2b3IsICdwZGYnLCAnJywgJycpCi1pZiBiOnRleF9mbGF2b3IgPT0gInBsYWluIgotCWxldCBiOnRleF9mbGF2b3IgPSAidGV4IgotZW5kaWYKLQotIiBTZXQgJ2NvbW1lbnRzJyB0byBmb3JtYXQgZGFzaGVkIGxpc3RzIGluIGNvbW1lbnRzCi1zZXRsb2NhbCBjb209c086JVwgLSxtTzolXCBcICxlTzolJSw6JQotCi0iIFNldCAnY29tbWVudHN0cmluZycgdG8gcmVjb2duaXplIHRoZSAlIGNvbW1lbnQgY2hhcmFjdGVyOgotIiAoVGhhbmtzIHRvIEFqaXQgVGhha2thci4pCi1zZXRsb2NhbCBjbXM9JSVzCi0KICIgQWxsb3cgIltkIiB0byBiZSB1c2VkIHRvIGZpbmQgYSBtYWNybyBkZWZpbml0aW9uOgogIiBSZWNvZ25pemUgcGxhaW4gVGVYIFxkZWYgYXMgd2VsbCBhcyBMYVRlWCBcbmV3Y29tbWFuZCBhbmQgXHJlbmV3Y29tbWFuZCAuCiAiIEkgbWF5IGFzIHdlbGwgYWRkIHRoZSBBTVMtTGFUZVggRGVjbGFyZU1hdGhPcGVyYXRvciBhcyB3ZWxsLgotbGV0ICZsOmRlZmluZT0nXFxcKFtlZ3hdXHxjaGFyXHxtYXRoY2hhclx8Y291bnRcfGRpbWVuXHxtdXNraXBcfHNraXBcfHRva3NcKVw9JwotCVwgLgknZGVmXHxcXGZvbnRcfFxcXChmdXR1cmVcKVw9bGV0JwotCVwgLiAnXHxcXG5ld1woY291bnRcfGRpbWVuXHxza2lwXHxtdXNraXBcfGJveFx8dG9rc1x8cmVhZFx8d3JpdGUnCi0JXCAuCSdcfGZhbVx8aW5zZXJ0XCknCi0JXCAuICdcfFxcXChyZVwpXD1uZXdcKGJvb2xlYW5cfGNvbW1hbmRcfGNvdW50ZXJcfGVudmlyb25tZW50XHxmb250JworbGV0ICZsOmRlZmluZSAuPSAnXHxcXFwocmVcKVw9bmV3XChib29sZWFuXHxjb21tYW5kXHxjb3VudGVyXHxlbnZpcm9ubWVudFx8Zm9udCcKIAlcIC4gJ1x8aWZcfGxlbmd0aFx8c2F2ZWJveFx8dGhlb3JlbVwoc3R5bGVcKVw9XClccypcKlw9XHMqe1w9JwogCVwgLiAnXHxEZWNsYXJlTWF0aE9wZXJhdG9yXHMqe1w9XHMqJwogCiAiIFRlbGwgVmltIGhvdyB0byByZWNvZ25pemUgTGFUZVggXGluY2x1ZGV7Zm9vfSBhbmQgcGxhaW4gXGlucHV0IGJhciA6Ci1zZXRsb2NhbCBpbmNsdWRlPVxcXFxpbnB1dFxcXFx8XFxcXGluY2x1ZGV7Ci1zZXRsb2NhbCBzdWZmaXhlc2FkZD0udGV4CitsZXQgJmw6aW5jbHVkZSAuPSAnXHxcXGluY2x1ZGV7JwogIiBPbiBzb21lIGZpbGUgc3lzdGVtcywgInsiIGFuZCAifSIgYXJlIGlubHVkZWQgaW4gJ2lzZm5hbWUnLiAgSW4gY2FzZSB0aGUKICIgVGVYIGZpbGUgaGFzIFxpbmNsdWRle2ZuYW1lfSAoTGFUZVggb25seSksIHN0cmlwIGV2ZXJ5dGhpbmcgZXhjZXB0ICJmbmFtZSIuCiBsZXQgJmw6aW5jbHVkZWV4cHIgPSAic3Vic3RpdHV0ZSh2OmZuYW1lLCAnXi5cXHstfXtcXHx9LionLCAnJywgJ2cnKSIKLSIgZnVuISBUZXhJbmNsdWRlRXhwcigpCi0iICAgbGV0IGZuYW1lID0gc3Vic3RpdHV0ZSh2OmZuYW1lLCAnfS4qJywgJycsICcnKQotIiAgIHJldHVybiBmbmFtZQotIiBlbmRmdW4KIAogIiBUaGUgZm9sbG93aW5nIGxpbmVzIGVuYWJsZSB0aGUgbWFjcm9zL21hdGNoaXQudmltIHBsdWdpbiBmb3IKICIgZXh0ZW5kZWQgbWF0Y2hpbmcgd2l0aCB0aGUgJSBrZXkuCi0iIFRPRE86ICBDdXN0b21pemUgdGhpcyBiYXNlZCBvbiBiOnRleF9mbGF2b3IgLgorIiBmdHBsdWdpbi9wbGFpbnRleC52aW0gYWxyZWFkeSBkZWZpbmVzIGI6bWF0Y2hfc2tpcCBhbmQgYjptYXRjaF9pZ25vcmVjYXNlCisiIGFuZCBtYXRjaGVzIFwoLCBcKSwgXFssIGFuZCBcXS4KIGlmIGV4aXN0cygibG9hZGVkX21hdGNoaXQiKQotICBsZXQgYjptYXRjaF9pZ25vcmVjYXNlID0gMAotICAgIFwgfCBsZXQgYjptYXRjaF9za2lwID0gJ3I6XFxcQDwhXCUoXFxcXFwpKiUnCi0gICAgXCB8IGxldCBiOm1hdGNoX3dvcmRzID0gJyg6KSxcWzpdLHs6fSxcXCg6XFwpLFxcXFs6XFxdLCcgLgotICAgIFwgJ1xcYmVnaW5ccypcKHtcYVwrXCpcPX1cKTpcXGVuZFxzKlwxJworICBsZXQgYjptYXRjaF93b3JkcyAuPSAnXFxiZWdpblxzKlwoe1xhXCtcKlw9fVwpOlxcZW5kXHMqXDEnCiBlbmRpZiAiIGV4aXN0cygibG9hZGVkX21hdGNoaXQiKQogCiBsZXQgJmNwbyA9IHM6c2F2ZV9jcG8KZGlmZiAtLWdpdCBhL3J1bnRpbWUva2V5bWFwL2dyZWVrX3V0Zi04LnZpbSBiL3J1bnRpbWUva2V5bWFwL2dyZWVrX3V0Zi04LnZpbQppbmRleCA3ZWI2N2NmLi5kYzllMTBlIDEwMDY0NAotLS0gYS9ydW50aW1lL2tleW1hcC9ncmVla191dGYtOC52aW0KKysrIGIvcnVudGltZS9rZXltYXAvZ3JlZWtfdXRmLTgudmltCkBAIC0xLDUgKzEsOSBAQAotIiBUaGlzIGZpbGUgd2FzIGFkYXB0ZWQgZm9yIFZpbSA2IGZyb20gdGhlIHl1ZGl0IGRpc3RyaWJ1dGlvbiBieQotIiBSb2JlcnQgR291bGRpbmcgPGdvdWxkaW5nQHByaW5jZXRvbi5lZHU+CisiIFZpbSBLZXltYXAgZmlsZSBmb3IgZ3JlZWsKKyIgTWFpbnRhaW5lcjogUGFuYWdpb3RpcyBMb3VyaWRhcyA8bG91cmlkYXNAYWNtLm9yZz4KKyIgTGFzdCBVcGRhdGVkOiBUaHUgTWFyIDIzIDIzOjQ1OjAyIEVFVCAyMDA2CisKKyIgVGhpcyBmaWxlIHdhcyBjb3JyZWN0ZWQgZm9yIFZpbSBhZnRlciB0aGUgdmVyc2lvbiBhZGFwdGVkIGZvciBWaW0gNiBmcm9tIAorIiB0aGUgeXVkaXQgZGlzdHJpYnV0aW9uIGJ5IFJvYmVydCBHb3VsZGluZyA8Z291bGRpbmdAcHJpbmNldG9uLmVkdT4KICIKICIgVGhlIG1vbm90b25pYyBwYXJ0IG9mIHRoaXMga21hcCB3YXMgbWFkZSBieSBDb25zdGFudGluZSBTdGF0aG9wb3Vsb3MKICIgPGNzdGF0aEBpcmlzbWVkaWEuZ3I+LgpAQCAtNyw4ICsxMSw3IEBACiAiIEFhcmh1cywgRGVubWFyay4KICIgSXQgd2FzIG1vZGlmaWVkIGFuZCBjb21wbGV0ZWQgYnkgQS4gVHNvbG9taXRpcyA8YXRzb2xAYWVnZWFuLmdyPgogIiBUaGUgbGljZW5jZSBhbGxvd3MgbW9kaWZpY2F0aW9ucyBidXQgcmVkaXN0cmlidXRpb24gb2YgbW9kaWZpY2F0aW9ucwotIiBzaG91bGQgYmUgd2l0aCBhbiBvdGhlciBuYW1lLgotIiBBbnkgY29tbWVudHMgY2FuIGJlIHNlbnQgdG8gQS4gVHNvbG9taXRpcyA8YXRzb2xAYWVnZWFuLmdyPgorIiBzaG91bGQgYmUgd2l0aCBhbm90aGVyIG5hbWUuCiAKICIgVGhlIGtleW1hcCBub3cgY29uZm9ybXMgd2l0aCB0aGUKICIgTGFUZVgncy1CYWJlbCBTdGFuZGFyZCBieSBBLiBTeXJvcG91bG9zIDxhcG9zdG9sb0BvY2VhbjEuZWUuZHV0aC5ncj4KQEAgLTM4LDcgKzQxLDggQEAKIAogIiA+IGRhc2lhICIgYW4gb3hpYSBvciBiYXJpYSAqYWx3YXlzKiBzaG91bGQgZm9sbG93IGRhc2lhCiAiIDwgcHNpbGkgIiBhbiBveGlhIG9yIGJhcmlhICphbHdheXMqIHNob3VsZCBmb2xsb3cgcHNpbGkKLSIgOyBveGlhCisiIDsgdG9ub3MKKyIgLyBveGlhCiAiIGAgdmFyaWEKICIgfiBwZXJpc3BvbWVuaQogIiA6IGRpYWx5dGlrYQpAQCAtOTUsMTggKzk5LDE5IEBACiA7Ogk8Y2hhci0weDAzODU+CSIgR1JFRUsgRElBTFlUSUtBIE94aWEKIDpgCTxjaGFyLTB4MUZFRD4JIiBHUkVFSyBESUFMWVRJS0EgVkFSSUEKIGA6CTxjaGFyLTB4MUZFRD4JIiBHUkVFSyBESUFMWVRJS0EgVkFSSUEKLWAJPGNoYXItMHgxRkVGPiAgICIgR3JlZWsgVmFyaWEKLX4JPGNoYXItMHgxRkMwPiAgICIgUGVyaXNwb21lbmkKLT5gCTxjaGFyLTB4MUZDRD4JIiBQc2lsaSBWYXJpYQotPGAJPGNoYXItMHgxRkREPgkiIERhc2lhIFZhcmlhCi0+Owk8Y2hhci0weDFGQ0U+CSIgUHNpbGkgT3hpYQotPDsJPGNoYXItMHgxRkRFPgkiIERhc2lhIE94aWEKLTx+CTxjaGFyLTB4MUZERj4JIiBEYXNpYSBQZXJpc3BvbWVuaQotPn4JPGNoYXItMHgxRkNGPgkiIFBzaWxpIFBlcmlzcG9tZW5pCisvCTxjaGFyLTB4MUZGRD4JIiBHUkVFSyBPWElBCitgCTxjaGFyLTB4MUZFRj4gICAiIEdSRUVLIFZBUklBCit+CTxjaGFyLTB4MUZDMD4gICAiIFBFUklTUE9NRU5JCis+YAk8Y2hhci0weDFGQ0Q+CSIgUFNJTEkgVkFSSUEKKzxgCTxjaGFyLTB4MUZERD4JIiBEQVNJQSBWQVJJQQorPjsJPGNoYXItMHgxRkNFPgkiIFBTSUxJIE9YSUEKKzw7CTxjaGFyLTB4MUZERT4JIiBEQVNJQSBPWElBCis8fgk8Y2hhci0weDFGREY+CSIgREFTSUEgUEVSSVNQT01FTkkKKz5+CTxjaGFyLTB4MUZDRj4JIiBQU0lMSSBQRVJJU1BPTUVOSQogIkZvciBwbGFpbiBwc2lsaSB1c2UgYXBvc3Ryb3BoZQogOycJPGNoYXItMHgxRkZFPgkiIChQbGFpbikgZGFzaWEKLQotCisiCisiCiAiCiAiIEdSRUVLIExFVFRFUlMKICIKQEAgLTEyNyw4ICsxMzIsNiBAQAogTwk8Y2hhci0weDAzOUY+ICAgIiBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlLUk9OCiBQCTxjaGFyLTB4MDNBMD4gICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIFBJCiBSCTxjaGFyLTB4MDNBMT4gICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIFJITwotIlcJPGNoYXItMHgwM0EzPiAgICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEgW0NBUElUQUwgQU5BTE9HVUUgRk9SCi0JCQkiIFNNQUxMIExFVFRFUiBGSU5BTCBTSUdNQV0KIFMJPGNoYXItMHgwM0EzPiAgICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKIFQJPGNoYXItMHgwM0E0PiAgICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgVEFVCiBZCTxjaGFyLTB4MDNBNT4gICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04KQEAgLTE5MSw4ICsxOTQsOSBAQAogO3kJPGNoYXItMHgwM0NEPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFRPTk9TCiA7dgk8Y2hhci0weDAzQ0U+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TCiAKLQotCisiCisiIFRoaXMgYXJlYSBjb3ZlcnMgMHgxRjAwLTB4MUZGRgorIgogIgogIiBsZXR0ZXJzIHdpdGggVmFyaWE6CiAiCkBAIC0yMTMsMjMgKzIxNywyMCBAQAogIgogIiBsZXR0ZXJzIHdpdGggT3hpYToKICIKLTtBCTxjaGFyLTB4MUZCQj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCi07RQk8Y2hhci0weDFGQzk+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCi07SAk8Y2hhci0weDFGQ0I+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIE9YSUEKLTtJCTxjaGFyLTB4MUZEQj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKLTtPCTxjaGFyLTB4MUZGOT4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKLTtZCTxjaGFyLTB4MUZFQj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIE9YSUEKLTtWCTxjaGFyLTB4MUZGQj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCi07YQk8Y2hhci0weDFGNzE+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEKLTtlCTxjaGFyLTB4MUY3Mz4gICIgR1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBPWElBCi07aAk8Y2hhci0weDFGNzU+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBCi07aQk8Y2hhci0weDFGNzc+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggT1hJQQotO28JPGNoYXItMHgxRjc5PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKLTt5CTxjaGFyLTB4MUY3Qj4gICIgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCi07dgk8Y2hhci0weDFGN0Q+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEKLSIKLSIKLSIgVGhpcyBhcmVhIGNvdmVycyAweDFGMDAtMHgxRjZGCisvQQk8Y2hhci0weDFGQkI+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQQorL0UJPGNoYXItMHgxRkM5PiAgIiBHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorL0gJPGNoYXItMHgxRkNCPiAgIiBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBCisvSQk8Y2hhci0weDFGREI+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBCisvTwk8Y2hhci0weDFGRjk+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisvWQk8Y2hhci0weDFGRUI+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisvVgk8Y2hhci0weDFGRkI+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQQorL2EJPGNoYXItMHgxRjcxPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisvZQk8Y2hhci0weDFGNzM+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorL2gJPGNoYXItMHgxRjc1PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQQorL2kJPGNoYXItMHgxRjc3PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKy9vCTxjaGFyLTB4MUY3OT4gICIgR1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisveQk8Y2hhci0weDFGN0I+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQQorL3YJPGNoYXItMHgxRjdEPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCiAiCiAiIGxldHRlcnMgd2l0aCBQc2lsaToKICIKQEAgLTM4MCw3ICszODEsNiBAQAogdnwJPGNoYXItMHgxRkYzPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JCiAiCiAiCi0iIFRoaXMgYXJlYSBjb3ZlcnMgMHgxRjgwLTB4MUZBRgogIgogIiBsZXR0ZXJzIHdpdGggUHNpbGkgYW5kIFlwb2dlZ3JhbW1lbmkvUHJvc2dlZ3JhbW1lbmk6CiAiCkBAIC0zOTMsNiArMzkzLDggQEAKID5ofAk8Y2hhci0weDFGOTA+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSQogPnZ8CTxjaGFyLTB4MUZBMD4gICIgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKICIKKyIKKyIKICIgbGV0dGVycyB3aXRoIERhc2lhIGFuZCBZcG9nZWdyYW1tZW5pL1Byb3NnZWdyYW1tZW5pOgogIgogPEF8CTxjaGFyLTB4MUY4OT4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQKQEAgLTQwNCw2ICs0MDYsOCBAQAogPGh8CTxjaGFyLTB4MUY5MT4gICIgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JCiA8dnwJPGNoYXItMHgxRkExPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSQogIgorIgorIgogIiBsZXR0ZXJzIHdpdGggUHNpbGkgYW5kIFZhcmlhIGFuZCBZcG9nZWdyYW1tZW5pL1Byb3NnZWdyYW1tZW5pOgogIgogPmBBfAk8Y2hhci0weDFGOEE+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORApAQCAtNDE5LDYgKzQyMyw4IEBACiA+YHZ8CTxjaGFyLTB4MUZBMj4gICIgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORAogCQkgICAgICAgIiBZUE9HRUdSQU1NRU5JCiAiCisiCisiCiAiIGxldHRlcnMgd2l0aCBEYXNpYSBhbmQgVmFyaWEgYW5kIFlwb2dlZ3JhbW1lbmkvUHJvc2dlZ3JhbW1lbmk6CiAiCiA8YEF8CTxjaGFyLTB4MUY4Qj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5ECkBAIC00MzYsNiArNDQyLDggQEAKICIKICIgbGV0dGVycyB3aXRoIFBzaWxpIGFuZCBPeGlhIGFuZCBZcG9nZWdyYW1tZW5pL1Byb3NnZWdyYW1tZW5pOgogIgorIgorIgogPjtBfAk8Y2hhci0weDFGOEM+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5ECiAJCSAgICAgICAiIFBST1NHRUdSQU1NRU5JCiA+O0h8CTxjaGFyLTB4MUY5Qz4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5ECkBAIC00NTEsNiArNDU5LDggQEAKICIKICIgbGV0dGVycyB3aXRoIERhc2lhIGFuZCBPeGlhIGFuZCBZcG9nZWdyYW1tZW5pL1Byb3NnZWdyYW1tZW5pOgogIgorIgorIgogPDtBfAk8Y2hhci0weDFGOEQ+ICAiIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5ECiAJCSAgICAgICAiIFBST1NHRUdSQU1NRU5JCiA8O0h8CTxjaGFyLTB4MUY5RD4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5ECkBAIC00NjYsNiArNDc2LDggQEAKICIKICIgbGV0dGVycyB3aXRoIFBzaWxpIGFuZCBQZXJpc3BvbWVuaSBhbmQgWXBvZ2VncmFtbWVuaS9Qcm9zZ2VncmFtbWVuaToKICIKKyIKKyIKID5+QXwJPGNoYXItMHgxRjhFPiAgIiBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSQogCQkgICAgICAgIiBBTkQgUFJPU0dFR1JBTU1FTkkKID5+SHwJPGNoYXItMHgxRjlFPiAgIiBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQQpAQCAtNDgxLDYgKzQ5Myw4IEBACiAiCiAiIGxldHRlcnMgd2l0aCBEYXNpYSBhbmQgUGVyaXNwb21lbmkgYW5kIFlwb2dlZ3JhbW1lbmkvUHJvc2dlZ3JhbW1lbmk6CiAiCisiCisiCiA8fkF8CTxjaGFyLTB4MUY4Rj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkKIAkJICAgICAgICIgQU5EIFBST1NHRUdSQU1NRU5JCiA8fkh8CTxjaGFyLTB4MUY5Rj4gICIgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JCkBAIC00OTYsNiArNTEwLDggQEAKICIKICIgbGV0dGVycyB3aXRoIFBlcmlzcG9tZW5pOgogIgorIgorIgogfmEJPGNoYXItMHgxRkI2PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQRVJJU1BPTUVOSQogfmgJPGNoYXItMHgxRkM2PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkKIH5pCTxjaGFyLTB4MUZENj4gICIgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQRVJJU1BPTUVOSQpAQCAtNTA0LDYgKzUyMCw4IEBACiAiCiAiIGxldHRlcnMgd2l0aCBQZXJpc3BvbWVuaSBhbmQgWXBvZ2VncmFtbWVuaToKICIKKyIKKyIKIH5hfAk8Y2hhci0weDFGQjc+ICIgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUEVSSVNQT01FTkkgQU5ECiAJCSAgICAgICIgWVBPR0VHUkFNTUVOSQogfmh8CTxjaGFyLTB4MUZDNz4gIiBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkgQU5ECkBAIC01MTQsMTIgKzUzMiwxNiBAQAogIgogIiBsZXR0ZXJzIHdpdGggVmFyaWEgYW5kIFlwb2dlZ3JhbW1lbmk6CiAiCisiCisiCiBgYXwJPGNoYXItMHgxRkIyPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQogYGh8CTxjaGFyLTB4MUZDMj4gICIgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCiBgdnwJPGNoYXItMHgxRkYyPiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQogIgogIiBsZXR0ZXJzIHdpdGggT3hpYSBhbmQgWXBvZ2VncmFtbWVuaToKICIKKyIKKyIKIDthfAk8Y2hhci0weDFGQjQ+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKIDtofAk8Y2hhci0weDFGQzQ+ICAiIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCiA7dnwJPGNoYXItMHgxRkY0PiAgIiBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCmRpZmYgLS1naXQgYS9ydW50aW1lL21hY3Jvcy9tYXRjaGl0LnR4dCBiL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudHh0CmluZGV4IDhlYTRkZTUuLjU3MzczZmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudHh0CisrKyBiL3J1bnRpbWUvbWFjcm9zL21hdGNoaXQudHh0CkBAIC00LDcgKzQsNyBAQAogCTpoZWxwIG1hdGNoaXQtaW5zdGFsbAogaW5zaWRlIFZpbS4KIAotRm9yIFZpbSB2ZXJzaW9uIDYuMy4gIExhc3QgY2hhbmdlOiAgMjAwNCBNYXkgMTIKK0ZvciBWaW0gdmVyc2lvbiA2LjMuICBMYXN0IGNoYW5nZTogIDIwMDYgRmViIDIzCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJlbmppIEZpc2hlcgpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJY29tbWVudCBjaGFyYWN0ZXIpIHlvdSBjYW4gPgogCQk6bGV0IGI6bWF0Y2hfc2tpcCA9ICdyOlwoXlx8W15cXF1cKVwoXFxcXFwpKiUnCiA8Ci0JU2VlIHRoZSAkVklNUlVOVElNRS9zeW50YXgvdmltLnZpbSBmb3IgYW4gZXhhbXBsZSB0aGF0IHVzZXMgYm90aAorCVNlZSB0aGUgJFZJTVJVTlRJTUUvZnRwbHVnaW4vdmltLnZpbSBmb3IgYW4gZXhhbXBsZSB0aGF0IHVzZXMgYm90aAogCXN5bnRheCBhbmQgYSByZWd1bGFyIGV4cHJlc3Npb24uCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjYxLDggKzI2MSwxMCBAQAogCiBUaGUgZm9ybWF0IGZvciB8YjptYXRjaF93b3Jkc3wgaXMgc2ltaWxhciB0byB0aGF0IG9mIHRoZSAnbWF0Y2hwYWlycycgb3B0aW9uOgogaXQgaXMgYSBjb21tYSAoLCktc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXBzOyBlYWNoIGdyb3VwIGlzIGEgY29sb24oOiktc2VwYXJhdGVkCi1saXN0IG9mIHBhdHRlcm5zIChyZWd1bGFyIGV4cHJlc3Npb25zKS4gIEl0IGlzIE9LIHRvIGhhdmUgb25seSBvbmUgZ3JvdXA7IHRoZQotZWZmZWN0IGlzIHVuZGVmaW5lZCBpZiBhIGdyb3VwIGhhcyBvbmx5IG9uZSBwYXR0ZXJuLiAgQSBzaW1wbGUgZXhhbXBsZSBpcyA+CitsaXN0IG9mIHBhdHRlcm5zIChyZWd1bGFyIGV4cHJlc3Npb25zKS4gIENvbW1hcyBhbmQgYmFja3NsYXNoZXMgdGhhdCBhcmUgcGFydAorb2YgYSBwYXR0ZXJuIHNob3VsZCBiZSBlc2NhcGVkIHdpdGggYmFja3NsYXNoZXMgKCdcOicgYW5kICdcLCcpLiAgSXQgaXMgT0sgdG8KK2hhdmUgb25seSBvbmUgZ3JvdXA7IHRoZSBlZmZlY3QgaXMgdW5kZWZpbmVkIGlmIGEgZ3JvdXAgaGFzIG9ubHkgb25lIHBhdHRlcm4uCitBIHNpbXBsZSBleGFtcGxlIGlzID4KIAk6bGV0IGI6bWF0Y2hfd29yZHMgPSAnXDxpZlw+Olw8ZW5kaWZcPiwnCiAJCVwgLiAnXDx3aGlsZVw+Olw8Y29udGludWVcPjpcPGJyZWFrXD46XDxlbmR3aGlsZVw+JwogKEluIFZpbSByZWd1bGFyIGV4cHJlc3Npb25zLCB8XDx8IGFuZCB8XD58IGRlbm90ZSB3b3JkIGJvdW5kYXJpZXMuICBUaHVzICJpZiIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbWFrZW1lbnUudmltIGIvcnVudGltZS9tYWtlbWVudS52aW0KaW5kZXggMzk5MTY4YS4uZGJmNmQ5MCAxMDA2NDQKLS0tIGEvcnVudGltZS9tYWtlbWVudS52aW0KKysrIGIvcnVudGltZS9tYWtlbWVudS52aW0KQEAgLTEsNiArMSw2IEBACiAiIFNjcmlwdCB0byBkZWZpbmUgdGhlIHN5bnRheCBtZW51IGluIHN5bm1lbnUudmltCiAiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+Ci0iIExhc3QgQ2hhbmdlOgkyMDA2IE1hciAyMworIiBMYXN0IENoYW5nZToJMjAwNiBNYXIgMjQKIAogIiBUaGlzIGlzIHVzZWQgYnkgIm1ha2UgbWVudSIgaW4gdGhlIHNyYyBkaXJlY3RvcnkuCiBlZGl0IDxzZmlsZT46cDpoL3N5bm1lbnUudmltCkBAIC00OCw2ICs0OCw3IEBACiAgIGxldCBzOmxudW0gPSBzOmxudW0gKyAxCiBlbmRmdW4KIAorU3luTWVudSBBQi5BMnBzXCBjb25maWc6YTJwcwogU3luTWVudSBBQi5BYXA6YWFwCiBTeW5NZW51IEFCLkFCQVAvNDphYmFwCiBTeW5NZW51IEFCLkFiYXF1czphYmFxdXMKQEAgLTgzLDYgKzg0LDggQEAKIFN5bk1lbnUgQUIuQXNzZW1ibHkuWi04MDp6OGEKIFN5bk1lbnUgQUIuQXNzZW1ibHkueGFcIDY1MDJcIGNyb3NzXCBhc3NlbWJlcjphNjUKIFN5bk1lbnUgQUIuQVNOXC4xOmFzbgorU3luTWVudSBBQi5Bc3Rlcmlza1wgY29uZmlnOmFzdGVyaXNrCitTeW5NZW51IEFCLkFzdGVyaXNrXCB2b2ljZW1haWxcIGNvbmZpZzphc3Rlcmlza3ZtCiBTeW5NZW51IEFCLkF0bGFzOmF0bGFzCiBTeW5NZW51IEFCLkF1dG9tYWtlOmF1dG9tYWtlCiBTeW5NZW51IEFCLkF2ZW51ZTphdmUKQEAgLTEyMCw2ICsxMjMsNyBAQAogU3luTWVudSBDLkNvbmZpZy5DZmdcIENvbmZpZ1wgZmlsZTpjZmcKIFN5bk1lbnUgQy5Db25maWcuR2VuZXJpY1wgQ29uZmlnXCBmaWxlOmNvbmYKIFN5bk1lbnUgQy5Db25maWcuQ29uZmlndXJlXC5pbjpjb25maWcKK1N5bk1lbnUgQy5Db25UZVh0OmNvbnRleHQKIFN5bk1lbnUgQy5DUk0xMTQ6Y3JtCiBTeW5NZW51IEMuQ3RybC1IOmN0cmxoCiBTeW5NZW51IEMuQ29ib2w6Y29ib2wKQEAgLTEzMyw2ICsxMzcsOCBAQAogU3luTWVudSBERS5EZWJpYW4uRGViaWFuXCBDaGFuZ2VMb2c6ZGViY2hhbmdlbG9nCiBTeW5NZW51IERFLkRlYmlhbi5EZWJpYW5cIENvbnRyb2w6ZGViY29udHJvbAogU3luTWVudSBERS5EZXNrdG9wOmRlc2t0b3AKK1N5bk1lbnUgREUuRGljdFwgY29uZmlnOmRpY3Rjb25mCitTeW5NZW51IERFLkRpY3RkXCBjb25maWc6ZGljdGRjb25mCiBTeW5NZW51IERFLkRpZmY6ZGlmZgogU3luTWVudSBERS5EaWdpdGFsXCBDb21tYW5kXCBMYW5nOmRjbAogU3luTWVudSBERS5EaXJjb2xvcnM6ZGlyY29sb3JzCkBAIC0xNjEsNiArMTY3LDcgQEAKIFN5bk1lbnUgREUuRXNzYmFzZVwgc2NyaXB0OmNzYwogU3luTWVudSBERS5Fc3RlcmVsOmVzdGVyZWwKIFN5bk1lbnUgREUuRXRlcm1cIGNvbmZpZzpldGVybQorU3luTWVudSBERS5Fdmlld3M6ZXZpZXdzCiBTeW5NZW51IERFLkV4aW1cIGNvbmY6ZXhpbQogU3luTWVudSBERS5FeHBlY3Q6ZXhwZWN0CiBTeW5NZW51IERFLkV4cG9ydHM6ZXhwb3J0cwpAQCAtMTgzLDYgKzE5MCw3IEBACiBTeW5NZW51IEZHLkdrcmVsbG1yYzpna3JlbGxtcmMKIFN5bk1lbnUgRkcuR1A6Z3AKIFN5bk1lbnUgRkcuR1BHOmdwZworU3luTWVudSBGRy5Hcm91cFwgZmlsZTpncm91cAogU3luTWVudSBGRy5HcnViOmdydWIKIFN5bk1lbnUgRkcuR05VXCBTZXJ2ZXJcIFBhZ2VzOmdzcAogU3luTWVudSBGRy5HTlVwbG90OmdudXBsb3QKQEAgLTIzNSwxNSArMjQzLDE5IEBACiBTeW5NZW51IEwtTWEuTGFjZTpsYWNlCiBTeW5NZW51IEwtTWEuTGFtZGFQcm9sb2c6bHByb2xvZwogU3luTWVudSBMLU1hLkxhdHRlOmxhdHRlCitTeW5NZW51IEwtTWEuTGRcIHNjcmlwdDpsZAogU3luTWVudSBMLU1hLkxEQVBcIExESUY6bGRpZgogU3luTWVudSBMLU1hLkxleDpsZXgKIFN5bk1lbnUgTC1NYS5MRlRQXCBjb25maWc6bGZ0cAogU3luTWVudSBMLU1hLkxpYmFvOmxpYmFvCiBTeW5NZW51IEwtTWEuTGlmZUxpbmVzXCBzY3JpcHQ6bGlmZWxpbmVzCiBTeW5NZW51IEwtTWEuTGlsbzpsaWxvCitTeW5NZW51IEwtTWEuTGltaXRzXCBjb25maWc6bGltaXRzCiBTeW5NZW51IEwtTWEuTGlzcDpsaXNwCiBTeW5NZW51IEwtTWEuTGl0ZTpsaXRlCiBTeW5NZW51IEwtTWEuTG9jYWxlXCBJbnB1dDpmZGNjCitTeW5NZW51IEwtTWEuTG9naW5cLmFjY2Vzczpsb2dpbmFjY2VzcworU3luTWVudSBMLU1hLkxvZ2luXC5kZWZzOmxvZ2luZGVmcwogU3luTWVudSBMLU1hLkxvZ3RhbGs6bG9ndGFsawogU3luTWVudSBMLU1hLkxPVE9TOmxvdG9zCiBTeW5NZW51IEwtTWEuTG90dXNTY3JpcHQ6bHNjcmlwdApAQCAtMjU5LDYgKzI3MSw3IEBACiBTeW5NZW51IEwtTWEuTWFrZWZpbGU6bWFrZQogU3luTWVudSBMLU1hLk1ha2VJbmRleDppc3QKIFN5bk1lbnUgTC1NYS5NYW5cIHBhZ2U6bWFuCitTeW5NZW51IEwtTWEuTWFuXC5jb25mOm1hbmNvbmYKIFN5bk1lbnUgTC1NYS5NYXBsZVwgVjptYXBsZQogU3luTWVudSBMLU1hLk1hc29uOm1hc29uCiBTeW5NZW51IEwtTWEuTWF0aGVtYXRpY2E6bW1hCkBAIC0yNjcsNiArMjgwLDcgQEAKIFN5bk1lbnUgTWUtTk8uTUVMXCAoZm9yXCBNYXlhKTptZWwKIFN5bk1lbnUgTWUtTk8uTWV0YWZvbnQ6bWYKIFN5bk1lbnUgTWUtTk8uTWV0YVBvc3Q6bXAKK1N5bk1lbnUgTWUtTk8uTUdMOm1nbAogU3luTWVudSBNZS1OTy5NTUlYOm1taXgKIFN5bk1lbnUgTWUtTk8uTW9kY29uZjptb2Rjb25mCiBTeW5NZW51IE1lLU5PLk1vZGVsOm1vZGVsCkBAIC0yODMsOCArMjk3LDEwIEBACiBTeW5NZW51IE1lLU5PLk1TLURPUy9XaW5kb3dzLlJlZ2lzdHJ5OnJlZ2lzdHJ5CiBTeW5NZW51IE1lLU5PLk1TLURPUy9XaW5kb3dzLlJlc291cmNlXCBmaWxlOnJjCiBTeW5NZW51IE1lLU5PLk1zcWw6bXNxbAorU3luTWVudSBNZS1OTy5NdVBBRDptdXBhZAogU3luTWVudSBNZS1OTy5NVVNIY29kZTptdXNoCiBTeW5NZW51IE1lLU5PLk11dHRyYzptdXR0cmMKK1N5bk1lbnUgTWUtTk8uTmFub3JjOm5hbm9yYwogU3luTWVudSBNZS1OTy5OYXN0cmFuXCBpbnB1dC9ETUFQOm5hc3RyYW4KIFN5bk1lbnUgTWUtTk8uTmF0dXJhbDpuYXR1cmFsCiBTeW5NZW51IE1lLU5PLk5ldHJjOm5ldHJjCkBAIC0zMDEsMTAgKzMxNywxMiBAQAogU3luTWVudSBNZS1OTy5PcGVuXCBQc2lvblwgTGFuZzpvcGwKIFN5bk1lbnUgTWUtTk8uT3JhY2xlXCBjb25maWc6b3JhCiAKLVN5bk1lbnUgUFEuUGFsbVwgcmVzb3VyY2VcIGNvbXBpbGVyOnBpbHJjCiBTeW5NZW51IFBRLlBhY2tldFwgZmlsdGVyXCBjb25mOnBmCitTeW5NZW51IFBRLlBhbG1cIHJlc291cmNlXCBjb21waWxlcjpwaWxyYworU3luTWVudSBQUS5QYW1cIGNvbmZpZzpwYW1jb25mCiBTeW5NZW51IFBRLlBBcHA6cGFwcAogU3luTWVudSBQUS5QYXNjYWw6cGFzY2FsCitTeW5NZW51IFBRLlBhc3N3b3JkXCBmaWxlOnBhc3N3ZAogU3luTWVudSBQUS5QQ0NUUzpwY2N0cwogU3luTWVudSBQUS5QUFdpemFyZDpwcHdpegogU3luTWVudSBQUS5QZXJsLlBlcmw6cGVybApAQCAtMzMwLDYgKzM0OCw3IEBACiBTeW5NZW51IFBRLlByb2R1Y3RcIFNwZWNcIEZpbGU6cHNmCiBTeW5NZW51IFBRLlByb2dyZXNzOnByb2dyZXNzCiBTeW5NZW51IFBRLlByb2xvZzpwcm9sb2cKK1N5bk1lbnUgUFEuUHJvdG9jb2xzOnByb3RvY29scwogU3luTWVudSBQUS5QdXJpZnlcIGxvZzpwdXJpZnlsb2cKIFN5bk1lbnUgUFEuUHlyZXg6cHlyZXgKIFN5bk1lbnUgUFEuUHl0aG9uOnB5dGhvbgpAQCAtMzM3LDYgKzM1Niw4IEBACiBTeW5NZW51IFBRLlF1aWNrZml4XCB3aW5kb3c6cWYKIAogU3luTWVudSBSLVNnLlI6cgorU3luTWVudSBSLVNnLlJcIGhlbHA6cmhlbHAKK1N5bk1lbnUgUi1TZy5SYWNjXCBpbnB1dDpyYWNjCiBTeW5NZW51IFItU2cuUmFkaWFuY2U6cmFkaWFuY2UKIFN5bk1lbnUgUi1TZy5SYXRwb2lzb246cmF0cG9pc29uCiBTeW5NZW51IFItU2cuUkNTLlJDU1wgbG9nXCBvdXRwdXQ6cmNzbG9nCkBAIC0zNjcsNiArMzg4LDEyIEBACiBTeW5NZW51IFItU2cuU2VkOnNlZAogU3luTWVudSBSLVNnLlNlbmRtYWlsXC5jZjpzbQogU3luTWVudSBSLVNnLlNlbmQtcHI6c2VuZHByCitTeW5NZW51IFItU2cuU2Vuc29yc1wuY29uZjpzZW5zb3JzCitTeW5NZW51IFItU2cuU2VydmljZVwgTG9jYXRpb25cIGNvbmZpZzpzbHBjb25mCitTeW5NZW51IFItU2cuU2VydmljZVwgTG9jYXRpb25cIHJlZ2lzdHJhdGlvbjpzbHByZWcKK1N5bk1lbnUgUi1TZy5TZXJ2aWNlXCBMb2NhdGlvblwgU1BJOnNscHNwaQorU3luTWVudSBSLVNnLlNlcnZpY2VzOnNlcnZpY2VzCitTeW5NZW51IFItU2cuU2V0c2VyaWFsXCBjb25maWc6c2V0c2VyaWFsCiBTeW5NZW51IFItU2cuU0dNTC5TR01MXCBjYXRhbG9nOmNhdGFsb2cKIFN5bk1lbnUgUi1TZy5TR01MLlNHTUxcIERURDpzZ21sCiBTeW5NZW51IFItU2cuU0dNTC5TR01MXCBEZWNsYXJhdGlvbjpzZ21sZGVjbApAQCAtNDA3LDcgKzQzNCw5IEBACiBTeW5NZW51IFNoLVMuU1FMLkVTUUwtQzplc3FsYwogU3luTWVudSBTaC1TLlNRTC5NeVNRTDpteXNxbAogU3luTWVudSBTaC1TLlNRTC5QTC9TUUw6cGxzcWwKLVN5bk1lbnUgU2gtUy5TUUwuU1FMXCAoT3JhY2xlKTpzcWwKK1N5bk1lbnUgU2gtUy5TUUwuU1FMXCBBbnl3aGVyZTpzcWxhbnl3aGVyZQorU3luTWVudSBTaC1TLlNRTC5TUUxcIChhdXRvbWF0aWMpOnNxbAorU3luTWVudSBTaC1TLlNRTC5TUUxcIChPcmFjbGUpOnNxbG9yYWNsZQogU3luTWVudSBTaC1TLlNRTC5TUUxcIEZvcm1zOnNxbGZvcm1zCiBTeW5NZW51IFNoLVMuU1FMLlNRTEo6c3FsagogU3luTWVudSBTaC1TLlNRTC5TUUwtSW5mb3JtaXg6c3FsaW5mb3JtaXgKQEAgLTQxOSw2ICs0NDgsNyBAQAogU3luTWVudSBTaC1TLlN0cmFjZTpzdHJhY2UKIFN5bk1lbnUgU2gtUy5TdWJ2ZXJzaW9uXCBjb21taXQ6c3ZuCiBTeW5NZW51IFNoLVMuU3Vkb2VyczpzdWRvZXJzCitTeW5NZW51IFNoLVMuU3lzY3RsXC5jb25mOnN5c2N0bAogCiBTeW5NZW51IFRVVi5UQURTOnRhZHMKIFN5bk1lbnUgVFVWLlRhZ3M6dGFncwpAQCAtNDM4LDExICs0NjgsMTYgQEAKIFN5bk1lbnUgVFVWLlRpbGRlOnRpbGRlCiBTeW5NZW51IFRVVi5UUFA6dHBwCiBTeW5NZW51IFRVVi5UcmFzeXNcIGlucHV0OnRyYXN5cworU3luTWVudSBUVVYuVHJ1c3RlZXM6dHJ1c3RlZXMKIFN5bk1lbnUgVFVWLlRTUy5Db21tYW5kXCBMaW5lOnRzc2NsCiBTeW5NZW51IFRVVi5UU1MuR2VvbWV0cnk6dHNzZ20KIFN5bk1lbnUgVFVWLlRTUy5PcHRpY3M6dHNzb3AKK1N5bk1lbnUgVFVWLlVkZXZcIGNvbmZpZzp1ZGV2Y29uZgorU3luTWVudSBUVVYuVWRldlwgcGVybWlzc2lvbnM6dWRldnBlcm0KK1N5bk1lbnUgVFVWLlVkZXZcIHJ1bGVzOnVkZXZydWxlcwogU3luTWVudSBUVVYuVUlUL1VJTDp1aWwKIFN5bk1lbnUgVFVWLlVucmVhbFNjcmlwdDp1YworU3luTWVudSBUVVYuVXBkYXRlZGJcLmNvbmY6dXBkYXRlZGIKIFN5bk1lbnUgVFVWLlZhbGdyaW5kOnZhbGdyaW5kCiBTeW5NZW51IFRVVi5WZXJpbG9nLUFNU1wgSERMOnZlcmlsb2dhbXMKIFN5bk1lbnUgVFVWLlZlcmlsb2dcIEhETDp2ZXJpbG9nCkBAIC00NjcsMTUgKzUwMiwxOCBAQAogU3luTWVudSBXWFlaLldpbGRQYWNrZXRzXCBFdGhlclBlZWtcIERlY29kZXI6ZGNkCiBTeW5NZW51IFdYWVouV2luQmF0Y2gvV2ViYmF0Y2g6d2luYmF0Y2gKIFN5bk1lbnUgV1hZWi5XaW5kb3dzXCBTY3JpcHRpbmdcIEhvc3Q6d3NoCitTeW5NZW51IFdYWVouV1NNTDp3c21sCiBTeW5NZW51IFdYWVouV3ZEaWFsOnd2ZGlhbAogU3luTWVudSBXWFlaLlhcIEtleWJvYXJkXCBFeHRlbnNpb246eGtiCiBTeW5NZW51IFdYWVouWFwgUGl4bWFwOnhwbQogU3luTWVudSBXWFlaLlhcIFBpeG1hcFwgKDIpOnhwbTIKIFN5bk1lbnUgV1hZWi5YXCByZXNvdXJjZXM6eGRlZmF1bHRzCitTeW5NZW51IFdYWVouWGluZXRkXC5jb25mOnhpbmV0ZAogU3luTWVudSBXWFlaLlhtb2RtYXA6eG1vZG1hcAogU3luTWVudSBXWFlaLlhtYXRoOnhtYXRoCiBTeW5NZW51IFdYWVouWE1MOnhtbAogU3luTWVudSBXWFlaLlhNTFwgU2NoZW1hXCAoWFNEKTp4c2QKK1N5bk1lbnUgV1hZWi5YUXVlcnk6eHF1ZXJ5CiBTeW5NZW51IFdYWVouWHNsdDp4c2x0CiBTeW5NZW51IFdYWVouWEZyZWU4NlwgQ29uZmlnOnhmODZjb25mCiBTeW5NZW51IFdYWVouWUFNTDp5YW1sCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VzL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9lcy9tYWluLmFhcAppbmRleCA5YWJiNzJjLi45ZmYwODJjIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VzL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZXMvbWFpbi5hYXAKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAgICAgOmZldGNoICRaSVBGSUxFX0VTCiAgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFX0VTCiAgICAgICAgIDpkZWxldGUgYWRkLXRvLS1kaWN0aW9uYXJ5LmxzdC5leGFtcGxlCi0gICAgICAgICM6ZGVsZXRlICRaSVBGSUxFX0VTCisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfRVMKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZXNfRVMub3JpZy5hZmYnKToKICAgICAgICAgICAgIDpjb3B5IGVzX0VTLmFmZiBlc19FUy5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlc19FUy5vcmlnLmRpYycpOgpAQCAtNjIsNyArNjIsNyBAQAogICAgICAgICA6ZmV0Y2ggJFpJUEZJTEVfTVgKICAgICAgICAgOnByaW50IE5vIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBmb3IgZXNfTVggd29yZGxpc3QgPiEgUkVBRE1FX2VzX01YLnR4dAogICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV9NWAotICAgICAgICAjOmRlbGV0ZSAkWklQRklMRV9NWAorICAgICAgICA6ZGVsZXRlICRaSVBGSUxFX01YCiAgICAgICAgIDpzeXMgJFZJTSAtZSAtYyAic2V0IGZmPXVuaXggfCB3cSIgZXNfTVguZGljCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VzX01YLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBlc19NWC5hZmYgZXNfTVgub3JpZy5hZmYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3lubWVudS52aW0gYi9ydW50aW1lL3N5bm1lbnUudmltCmluZGV4IGEzOTczYWMuLjM1ZjBmNzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3lubWVudS52aW0KKysrIGIvcnVudGltZS9zeW5tZW51LnZpbQpAQCAtMzEsNTUgKzMxLDU4IEBACiAiIFRoZSBmb2xsb3dpbmcgbWVudSBpdGVtcyBhcmUgZ2VuZXJhdGVkIGJ5IG1ha2VtZW51LnZpbS4KICIgVGhlIFN0YXJ0IE9mIFRoZSBTeW50YXggTWVudQogCi1hbiA1MC4xMC4xMDAgJlN5bnRheC5BQi5BYXAgOmNhbCBTZXRTeW4oImFhcCIpPENSPgotYW4gNTAuMTAuMTEwICZTeW50YXguQUIuQUJBUC80IDpjYWwgU2V0U3luKCJhYmFwIik8Q1I+Ci1hbiA1MC4xMC4xMjAgJlN5bnRheC5BQi5BYmFxdXMgOmNhbCBTZXRTeW4oImFiYXF1cyIpPENSPgotYW4gNTAuMTAuMTMwICZTeW50YXguQUIuQUJDXCBtdXNpY1wgbm90YXRpb24gOmNhbCBTZXRTeW4oImFiYyIpPENSPgotYW4gNTAuMTAuMTQwICZTeW50YXguQUIuQUJFTCA6Y2FsIFNldFN5bigiYWJlbCIpPENSPgotYW4gNTAuMTAuMTUwICZTeW50YXguQUIuQWNlREJcIG1vZGVsIDpjYWwgU2V0U3luKCJhY2VkYiIpPENSPgotYW4gNTAuMTAuMTYwICZTeW50YXguQUIuQWRhIDpjYWwgU2V0U3luKCJhZGEiKTxDUj4KLWFuIDUwLjEwLjE3MCAmU3ludGF4LkFCLkFmTGV4IDpjYWwgU2V0U3luKCJhZmxleCIpPENSPgotYW4gNTAuMTAuMTgwICZTeW50YXguQUIuQUxTQVwgY29uZmlnIDpjYWwgU2V0U3luKCJhbHNhY29uZiIpPENSPgotYW4gNTAuMTAuMTkwICZTeW50YXguQUIuQWx0ZXJhXCBBSERMIDpjYWwgU2V0U3luKCJhaGRsIik8Q1I+Ci1hbiA1MC4xMC4yMDAgJlN5bnRheC5BQi5BbWlnYVwgRE9TIDpjYWwgU2V0U3luKCJhbWlnYSIpPENSPgotYW4gNTAuMTAuMjEwICZTeW50YXguQUIuQU1QTCA6Y2FsIFNldFN5bigiYW1wbCIpPENSPgotYW4gNTAuMTAuMjIwICZTeW50YXguQUIuQW50XCBidWlsZFwgZmlsZSA6Y2FsIFNldFN5bigiYW50Iik8Q1I+Ci1hbiA1MC4xMC4yMzAgJlN5bnRheC5BQi5BTlRMUiA6Y2FsIFNldFN5bigiYW50bHIiKTxDUj4KLWFuIDUwLjEwLjI0MCAmU3ludGF4LkFCLkFwYWNoZVwgY29uZmlnIDpjYWwgU2V0U3luKCJhcGFjaGUiKTxDUj4KLWFuIDUwLjEwLjI1MCAmU3ludGF4LkFCLkFwYWNoZS1zdHlsZVwgY29uZmlnIDpjYWwgU2V0U3luKCJhcGFjaGVzdHlsZSIpPENSPgotYW4gNTAuMTAuMjYwICZTeW50YXguQUIuQXBwbGl4XCBFTEYgOmNhbCBTZXRTeW4oImVsZiIpPENSPgotYW4gNTAuMTAuMjcwICZTeW50YXguQUIuQXJjXCBNYWNyb1wgTGFuZ3VhZ2UgOmNhbCBTZXRTeW4oImFtbCIpPENSPgotYW4gNTAuMTAuMjgwICZTeW50YXguQUIuQXJjaFwgaW52ZW50b3J5IDpjYWwgU2V0U3luKCJhcmNoIik8Q1I+Ci1hbiA1MC4xMC4yOTAgJlN5bnRheC5BQi5BUlQgOmNhbCBTZXRTeW4oImFydCIpPENSPgotYW4gNTAuMTAuMzAwICZTeW50YXguQUIuQVNQXCB3aXRoXCBWQlNjcmlwdCA6Y2FsIFNldFN5bigiYXNwdmJzIik8Q1I+Ci1hbiA1MC4xMC4zMTAgJlN5bnRheC5BQi5BU1BcIHdpdGhcIFBlcmwgOmNhbCBTZXRTeW4oImFzcHBlcmwiKTxDUj4KLWFuIDUwLjEwLjMyMCAmU3ludGF4LkFCLkFzc2VtYmx5LjY4MHgwIDpjYWwgU2V0U3luKCJhc202OGsiKTxDUj4KLWFuIDUwLjEwLjMzMCAmU3ludGF4LkFCLkFzc2VtYmx5LkZsYXQgOmNhbCBTZXRTeW4oImZhc20iKTxDUj4KLWFuIDUwLjEwLjM0MCAmU3ludGF4LkFCLkFzc2VtYmx5LkdOVSA6Y2FsIFNldFN5bigiYXNtIik8Q1I+Ci1hbiA1MC4xMC4zNTAgJlN5bnRheC5BQi5Bc3NlbWJseS5HTlVcIEgtODMwMCA6Y2FsIFNldFN5bigiYXNtaDgzMDAiKTxDUj4KLWFuIDUwLjEwLjM2MCAmU3ludGF4LkFCLkFzc2VtYmx5LkludGVsXCBJQS02NCA6Y2FsIFNldFN5bigiaWE2NCIpPENSPgotYW4gNTAuMTAuMzcwICZTeW50YXguQUIuQXNzZW1ibHkuTWljcm9zb2Z0IDpjYWwgU2V0U3luKCJtYXNtIik8Q1I+Ci1hbiA1MC4xMC4zODAgJlN5bnRheC5BQi5Bc3NlbWJseS5OZXR3aWRlIDpjYWwgU2V0U3luKCJuYXNtIik8Q1I+Ci1hbiA1MC4xMC4zOTAgJlN5bnRheC5BQi5Bc3NlbWJseS5QSUMgOmNhbCBTZXRTeW4oInBpYyIpPENSPgotYW4gNTAuMTAuNDAwICZTeW50YXguQUIuQXNzZW1ibHkuVHVyYm8gOmNhbCBTZXRTeW4oInRhc20iKTxDUj4KLWFuIDUwLjEwLjQxMCAmU3ludGF4LkFCLkFzc2VtYmx5LlZBWFwgTWFjcm9cIEFzc2VtYmx5IDpjYWwgU2V0U3luKCJ2bWFzbSIpPENSPgotYW4gNTAuMTAuNDIwICZTeW50YXguQUIuQXNzZW1ibHkuWi04MCA6Y2FsIFNldFN5bigiejhhIik8Q1I+Ci1hbiA1MC4xMC40MzAgJlN5bnRheC5BQi5Bc3NlbWJseS54YVwgNjUwMlwgY3Jvc3NcIGFzc2VtYmVyIDpjYWwgU2V0U3luKCJhNjUiKTxDUj4KLWFuIDUwLjEwLjQ0MCAmU3ludGF4LkFCLkFTTlwuMSA6Y2FsIFNldFN5bigiYXNuIik8Q1I+Ci1hbiA1MC4xMC40NTAgJlN5bnRheC5BQi5BdGxhcyA6Y2FsIFNldFN5bigiYXRsYXMiKTxDUj4KLWFuIDUwLjEwLjQ2MCAmU3ludGF4LkFCLkF1dG9tYWtlIDpjYWwgU2V0U3luKCJhdXRvbWFrZSIpPENSPgotYW4gNTAuMTAuNDcwICZTeW50YXguQUIuQXZlbnVlIDpjYWwgU2V0U3luKCJhdmUiKTxDUj4KLWFuIDUwLjEwLjQ4MCAmU3ludGF4LkFCLkF3ayA6Y2FsIFNldFN5bigiYXdrIik8Q1I+Ci1hbiA1MC4xMC40OTAgJlN5bnRheC5BQi5BWWFjYyA6Y2FsIFNldFN5bigiYXlhY2MiKTxDUj4KLWFuIDUwLjEwLjUxMCAmU3ludGF4LkFCLkIgOmNhbCBTZXRTeW4oImIiKTxDUj4KLWFuIDUwLjEwLjUyMCAmU3ludGF4LkFCLkJhYW4gOmNhbCBTZXRTeW4oImJhYW4iKTxDUj4KLWFuIDUwLjEwLjUzMCAmU3ludGF4LkFCLkJBU0lDIDpjYWwgU2V0U3luKCJiYXNpYyIpPENSPgotYW4gNTAuMTAuNTQwICZTeW50YXguQUIuQkNcIGNhbGN1bGF0b3IgOmNhbCBTZXRTeW4oImJjIik8Q1I+Ci1hbiA1MC4xMC41NTAgJlN5bnRheC5BQi5CREZcIGZvbnQgOmNhbCBTZXRTeW4oImJkZiIpPENSPgotYW4gNTAuMTAuNTYwICZTeW50YXguQUIuQmliVGVYIDpjYWwgU2V0U3luKCJiaWIiKTxDUj4KLWFuIDUwLjEwLjU3MCAmU3ludGF4LkFCLkJJTkQuQklORFwgY29uZmlnIDpjYWwgU2V0U3luKCJuYW1lZCIpPENSPgotYW4gNTAuMTAuNTgwICZTeW50YXguQUIuQklORC5CSU5EXCB6b25lIDpjYWwgU2V0U3luKCJiaW5kem9uZSIpPENSPgotYW4gNTAuMTAuNTkwICZTeW50YXguQUIuQmxhbmsgOmNhbCBTZXRTeW4oImJsYW5rIik8Q1I+CithbiA1MC4xMC4xMDAgJlN5bnRheC5BQi5BMnBzXCBjb25maWcgOmNhbCBTZXRTeW4oImEycHMiKTxDUj4KK2FuIDUwLjEwLjExMCAmU3ludGF4LkFCLkFhcCA6Y2FsIFNldFN5bigiYWFwIik8Q1I+CithbiA1MC4xMC4xMjAgJlN5bnRheC5BQi5BQkFQLzQgOmNhbCBTZXRTeW4oImFiYXAiKTxDUj4KK2FuIDUwLjEwLjEzMCAmU3ludGF4LkFCLkFiYXF1cyA6Y2FsIFNldFN5bigiYWJhcXVzIik8Q1I+CithbiA1MC4xMC4xNDAgJlN5bnRheC5BQi5BQkNcIG11c2ljXCBub3RhdGlvbiA6Y2FsIFNldFN5bigiYWJjIik8Q1I+CithbiA1MC4xMC4xNTAgJlN5bnRheC5BQi5BQkVMIDpjYWwgU2V0U3luKCJhYmVsIik8Q1I+CithbiA1MC4xMC4xNjAgJlN5bnRheC5BQi5BY2VEQlwgbW9kZWwgOmNhbCBTZXRTeW4oImFjZWRiIik8Q1I+CithbiA1MC4xMC4xNzAgJlN5bnRheC5BQi5BZGEgOmNhbCBTZXRTeW4oImFkYSIpPENSPgorYW4gNTAuMTAuMTgwICZTeW50YXguQUIuQWZMZXggOmNhbCBTZXRTeW4oImFmbGV4Iik8Q1I+CithbiA1MC4xMC4xOTAgJlN5bnRheC5BQi5BTFNBXCBjb25maWcgOmNhbCBTZXRTeW4oImFsc2Fjb25mIik8Q1I+CithbiA1MC4xMC4yMDAgJlN5bnRheC5BQi5BbHRlcmFcIEFIREwgOmNhbCBTZXRTeW4oImFoZGwiKTxDUj4KK2FuIDUwLjEwLjIxMCAmU3ludGF4LkFCLkFtaWdhXCBET1MgOmNhbCBTZXRTeW4oImFtaWdhIik8Q1I+CithbiA1MC4xMC4yMjAgJlN5bnRheC5BQi5BTVBMIDpjYWwgU2V0U3luKCJhbXBsIik8Q1I+CithbiA1MC4xMC4yMzAgJlN5bnRheC5BQi5BbnRcIGJ1aWxkXCBmaWxlIDpjYWwgU2V0U3luKCJhbnQiKTxDUj4KK2FuIDUwLjEwLjI0MCAmU3ludGF4LkFCLkFOVExSIDpjYWwgU2V0U3luKCJhbnRsciIpPENSPgorYW4gNTAuMTAuMjUwICZTeW50YXguQUIuQXBhY2hlXCBjb25maWcgOmNhbCBTZXRTeW4oImFwYWNoZSIpPENSPgorYW4gNTAuMTAuMjYwICZTeW50YXguQUIuQXBhY2hlLXN0eWxlXCBjb25maWcgOmNhbCBTZXRTeW4oImFwYWNoZXN0eWxlIik8Q1I+CithbiA1MC4xMC4yNzAgJlN5bnRheC5BQi5BcHBsaXhcIEVMRiA6Y2FsIFNldFN5bigiZWxmIik8Q1I+CithbiA1MC4xMC4yODAgJlN5bnRheC5BQi5BcmNcIE1hY3JvXCBMYW5ndWFnZSA6Y2FsIFNldFN5bigiYW1sIik8Q1I+CithbiA1MC4xMC4yOTAgJlN5bnRheC5BQi5BcmNoXCBpbnZlbnRvcnkgOmNhbCBTZXRTeW4oImFyY2giKTxDUj4KK2FuIDUwLjEwLjMwMCAmU3ludGF4LkFCLkFSVCA6Y2FsIFNldFN5bigiYXJ0Iik8Q1I+CithbiA1MC4xMC4zMTAgJlN5bnRheC5BQi5BU1BcIHdpdGhcIFZCU2NyaXB0IDpjYWwgU2V0U3luKCJhc3B2YnMiKTxDUj4KK2FuIDUwLjEwLjMyMCAmU3ludGF4LkFCLkFTUFwgd2l0aFwgUGVybCA6Y2FsIFNldFN5bigiYXNwcGVybCIpPENSPgorYW4gNTAuMTAuMzMwICZTeW50YXguQUIuQXNzZW1ibHkuNjgweDAgOmNhbCBTZXRTeW4oImFzbTY4ayIpPENSPgorYW4gNTAuMTAuMzQwICZTeW50YXguQUIuQXNzZW1ibHkuRmxhdCA6Y2FsIFNldFN5bigiZmFzbSIpPENSPgorYW4gNTAuMTAuMzUwICZTeW50YXguQUIuQXNzZW1ibHkuR05VIDpjYWwgU2V0U3luKCJhc20iKTxDUj4KK2FuIDUwLjEwLjM2MCAmU3ludGF4LkFCLkFzc2VtYmx5LkdOVVwgSC04MzAwIDpjYWwgU2V0U3luKCJhc21oODMwMCIpPENSPgorYW4gNTAuMTAuMzcwICZTeW50YXguQUIuQXNzZW1ibHkuSW50ZWxcIElBLTY0IDpjYWwgU2V0U3luKCJpYTY0Iik8Q1I+CithbiA1MC4xMC4zODAgJlN5bnRheC5BQi5Bc3NlbWJseS5NaWNyb3NvZnQgOmNhbCBTZXRTeW4oIm1hc20iKTxDUj4KK2FuIDUwLjEwLjM5MCAmU3ludGF4LkFCLkFzc2VtYmx5Lk5ldHdpZGUgOmNhbCBTZXRTeW4oIm5hc20iKTxDUj4KK2FuIDUwLjEwLjQwMCAmU3ludGF4LkFCLkFzc2VtYmx5LlBJQyA6Y2FsIFNldFN5bigicGljIik8Q1I+CithbiA1MC4xMC40MTAgJlN5bnRheC5BQi5Bc3NlbWJseS5UdXJibyA6Y2FsIFNldFN5bigidGFzbSIpPENSPgorYW4gNTAuMTAuNDIwICZTeW50YXguQUIuQXNzZW1ibHkuVkFYXCBNYWNyb1wgQXNzZW1ibHkgOmNhbCBTZXRTeW4oInZtYXNtIik8Q1I+CithbiA1MC4xMC40MzAgJlN5bnRheC5BQi5Bc3NlbWJseS5aLTgwIDpjYWwgU2V0U3luKCJ6OGEiKTxDUj4KK2FuIDUwLjEwLjQ0MCAmU3ludGF4LkFCLkFzc2VtYmx5LnhhXCA2NTAyXCBjcm9zc1wgYXNzZW1iZXIgOmNhbCBTZXRTeW4oImE2NSIpPENSPgorYW4gNTAuMTAuNDUwICZTeW50YXguQUIuQVNOXC4xIDpjYWwgU2V0U3luKCJhc24iKTxDUj4KK2FuIDUwLjEwLjQ2MCAmU3ludGF4LkFCLkFzdGVyaXNrXCBjb25maWcgOmNhbCBTZXRTeW4oImFzdGVyaXNrIik8Q1I+CithbiA1MC4xMC40NzAgJlN5bnRheC5BQi5Bc3Rlcmlza1wgdm9pY2VtYWlsXCBjb25maWcgOmNhbCBTZXRTeW4oImFzdGVyaXNrdm0iKTxDUj4KK2FuIDUwLjEwLjQ4MCAmU3ludGF4LkFCLkF0bGFzIDpjYWwgU2V0U3luKCJhdGxhcyIpPENSPgorYW4gNTAuMTAuNDkwICZTeW50YXguQUIuQXV0b21ha2UgOmNhbCBTZXRTeW4oImF1dG9tYWtlIik8Q1I+CithbiA1MC4xMC41MDAgJlN5bnRheC5BQi5BdmVudWUgOmNhbCBTZXRTeW4oImF2ZSIpPENSPgorYW4gNTAuMTAuNTEwICZTeW50YXguQUIuQXdrIDpjYWwgU2V0U3luKCJhd2siKTxDUj4KK2FuIDUwLjEwLjUyMCAmU3ludGF4LkFCLkFZYWNjIDpjYWwgU2V0U3luKCJheWFjYyIpPENSPgorYW4gNTAuMTAuNTQwICZTeW50YXguQUIuQiA6Y2FsIFNldFN5bigiYiIpPENSPgorYW4gNTAuMTAuNTUwICZTeW50YXguQUIuQmFhbiA6Y2FsIFNldFN5bigiYmFhbiIpPENSPgorYW4gNTAuMTAuNTYwICZTeW50YXguQUIuQkFTSUMgOmNhbCBTZXRTeW4oImJhc2ljIik8Q1I+CithbiA1MC4xMC41NzAgJlN5bnRheC5BQi5CQ1wgY2FsY3VsYXRvciA6Y2FsIFNldFN5bigiYmMiKTxDUj4KK2FuIDUwLjEwLjU4MCAmU3ludGF4LkFCLkJERlwgZm9udCA6Y2FsIFNldFN5bigiYmRmIik8Q1I+CithbiA1MC4xMC41OTAgJlN5bnRheC5BQi5CaWJUZVggOmNhbCBTZXRTeW4oImJpYiIpPENSPgorYW4gNTAuMTAuNjAwICZTeW50YXguQUIuQklORC5CSU5EXCBjb25maWcgOmNhbCBTZXRTeW4oIm5hbWVkIik8Q1I+CithbiA1MC4xMC42MTAgJlN5bnRheC5BQi5CSU5ELkJJTkRcIHpvbmUgOmNhbCBTZXRTeW4oImJpbmR6b25lIik8Q1I+CithbiA1MC4xMC42MjAgJlN5bnRheC5BQi5CbGFuayA6Y2FsIFNldFN5bigiYmxhbmsiKTxDUj4KIGFuIDUwLjIwLjEwMCAmU3ludGF4LkMuQyA6Y2FsIFNldFN5bigiYyIpPENSPgogYW4gNTAuMjAuMTEwICZTeW50YXguQy5DKysgOmNhbCBTZXRTeW4oImNwcCIpPENSPgogYW4gNTAuMjAuMTIwICZTeW50YXguQy5DIyA6Y2FsIFNldFN5bigiY3MiKTxDUj4KQEAgLTEwMSw0NCArMTA0LDUyIEBACiBhbiA1MC4yMC4yODAgJlN5bnRheC5DLkNvbmZpZy5DZmdcIENvbmZpZ1wgZmlsZSA6Y2FsIFNldFN5bigiY2ZnIik8Q1I+CiBhbiA1MC4yMC4yOTAgJlN5bnRheC5DLkNvbmZpZy5HZW5lcmljXCBDb25maWdcIGZpbGUgOmNhbCBTZXRTeW4oImNvbmYiKTxDUj4KIGFuIDUwLjIwLjMwMCAmU3ludGF4LkMuQ29uZmlnLkNvbmZpZ3VyZVwuaW4gOmNhbCBTZXRTeW4oImNvbmZpZyIpPENSPgotYW4gNTAuMjAuMzEwICZTeW50YXguQy5DUk0xMTQgOmNhbCBTZXRTeW4oImNybSIpPENSPgotYW4gNTAuMjAuMzIwICZTeW50YXguQy5DdHJsLUggOmNhbCBTZXRTeW4oImN0cmxoIik8Q1I+Ci1hbiA1MC4yMC4zMzAgJlN5bnRheC5DLkNvYm9sIDpjYWwgU2V0U3luKCJjb2JvbCIpPENSPgotYW4gNTAuMjAuMzQwICZTeW50YXguQy5DU1AgOmNhbCBTZXRTeW4oImNzcCIpPENSPgotYW4gNTAuMjAuMzUwICZTeW50YXguQy5DVVBMLkNVUEwgOmNhbCBTZXRTeW4oImN1cGwiKTxDUj4KLWFuIDUwLjIwLjM2MCAmU3ludGF4LkMuQ1VQTC5TaW11bGF0aW9uIDpjYWwgU2V0U3luKCJjdXBsc2ltIik8Q1I+Ci1hbiA1MC4yMC4zNzAgJlN5bnRheC5DLkNWUy5jb21taXRcIGZpbGUgOmNhbCBTZXRTeW4oImN2cyIpPENSPgotYW4gNTAuMjAuMzgwICZTeW50YXguQy5DVlMuY3ZzcmMgOmNhbCBTZXRTeW4oImN2c3JjIik8Q1I+CithbiA1MC4yMC4zMTAgJlN5bnRheC5DLkNvblRlWHQgOmNhbCBTZXRTeW4oImNvbnRleHQiKTxDUj4KK2FuIDUwLjIwLjMyMCAmU3ludGF4LkMuQ1JNMTE0IDpjYWwgU2V0U3luKCJjcm0iKTxDUj4KK2FuIDUwLjIwLjMzMCAmU3ludGF4LkMuQ3RybC1IIDpjYWwgU2V0U3luKCJjdHJsaCIpPENSPgorYW4gNTAuMjAuMzQwICZTeW50YXguQy5Db2JvbCA6Y2FsIFNldFN5bigiY29ib2wiKTxDUj4KK2FuIDUwLjIwLjM1MCAmU3ludGF4LkMuQ1NQIDpjYWwgU2V0U3luKCJjc3AiKTxDUj4KK2FuIDUwLjIwLjM2MCAmU3ludGF4LkMuQ1VQTC5DVVBMIDpjYWwgU2V0U3luKCJjdXBsIik8Q1I+CithbiA1MC4yMC4zNzAgJlN5bnRheC5DLkNVUEwuU2ltdWxhdGlvbiA6Y2FsIFNldFN5bigiY3VwbHNpbSIpPENSPgorYW4gNTAuMjAuMzgwICZTeW50YXguQy5DVlMuY29tbWl0XCBmaWxlIDpjYWwgU2V0U3luKCJjdnMiKTxDUj4KK2FuIDUwLjIwLjM5MCAmU3ludGF4LkMuQ1ZTLmN2c3JjIDpjYWwgU2V0U3luKCJjdnNyYyIpPENSPgogYW4gNTAuMzAuMTAwICZTeW50YXguREUuRCA6Y2FsIFNldFN5bigiZCIpPENSPgogYW4gNTAuMzAuMTEwICZTeW50YXguREUuRGViaWFuLkRlYmlhblwgQ2hhbmdlTG9nIDpjYWwgU2V0U3luKCJkZWJjaGFuZ2Vsb2ciKTxDUj4KIGFuIDUwLjMwLjEyMCAmU3ludGF4LkRFLkRlYmlhbi5EZWJpYW5cIENvbnRyb2wgOmNhbCBTZXRTeW4oImRlYmNvbnRyb2wiKTxDUj4KIGFuIDUwLjMwLjEzMCAmU3ludGF4LkRFLkRlc2t0b3AgOmNhbCBTZXRTeW4oImRlc2t0b3AiKTxDUj4KLWFuIDUwLjMwLjE0MCAmU3ludGF4LkRFLkRpZmYgOmNhbCBTZXRTeW4oImRpZmYiKTxDUj4KLWFuIDUwLjMwLjE1MCAmU3ludGF4LkRFLkRpZ2l0YWxcIENvbW1hbmRcIExhbmcgOmNhbCBTZXRTeW4oImRjbCIpPENSPgotYW4gNTAuMzAuMTYwICZTeW50YXguREUuRGlyY29sb3JzIDpjYWwgU2V0U3luKCJkaXJjb2xvcnMiKTxDUj4KLWFuIDUwLjMwLjE3MCAmU3ludGF4LkRFLkROUy9CSU5EXCB6b25lIDpjYWwgU2V0U3luKCJkbnMiKTxDUj4KLWFuIDUwLjMwLjE4MCAmU3ludGF4LkRFLkRvY0Jvb2suYXV0by1kZXRlY3QgOmNhbCBTZXRTeW4oImRvY2JrIik8Q1I+Ci1hbiA1MC4zMC4xOTAgJlN5bnRheC5ERS5Eb2NCb29rLlNHTUwgOmNhbCBTZXRTeW4oImRvY2Jrc2dtbCIpPENSPgotYW4gNTAuMzAuMjAwICZTeW50YXguREUuRG9jQm9vay5YTUwgOmNhbCBTZXRTeW4oImRvY2JreG1sIik8Q1I+Ci1hbiA1MC4zMC4yMTAgJlN5bnRheC5ERS5Eb3QgOmNhbCBTZXRTeW4oImRvdCIpPENSPgotYW4gNTAuMzAuMjIwICZTeW50YXguREUuRHJhY3VsYSA6Y2FsIFNldFN5bigiZHJhY3VsYSIpPENSPgotYW4gNTAuMzAuMjMwICZTeW50YXguREUuRFNTU0wgOmNhbCBTZXRTeW4oImRzbCIpPENSPgotYW4gNTAuMzAuMjQwICZTeW50YXguREUuRFREIDpjYWwgU2V0U3luKCJkdGQiKTxDUj4KLWFuIDUwLjMwLjI1MCAmU3ludGF4LkRFLkRUTUxcIChab3BlKSA6Y2FsIFNldFN5bigiZHRtbCIpPENSPgotYW4gNTAuMzAuMjYwICZTeW50YXguREUuRHlsYW4uRHlsYW4gOmNhbCBTZXRTeW4oImR5bGFuIik8Q1I+Ci1hbiA1MC4zMC4yNzAgJlN5bnRheC5ERS5EeWxhbi5EeWxhblwgaW50ZXJmYWNlIDpjYWwgU2V0U3luKCJkeWxhbmludHIiKTxDUj4KLWFuIDUwLjMwLjI4MCAmU3ludGF4LkRFLkR5bGFuLkR5bGFuXCBsaWQgOmNhbCBTZXRTeW4oImR5bGFubGlkIik8Q1I+Ci1hbiA1MC4zMC4zMDAgJlN5bnRheC5ERS5FRElGIDpjYWwgU2V0U3luKCJlZGlmIik8Q1I+Ci1hbiA1MC4zMC4zMTAgJlN5bnRheC5ERS5FaWZmZWwgOmNhbCBTZXRTeW4oImVpZmZlbCIpPENSPgotYW4gNTAuMzAuMzIwICZTeW50YXguREUuRWxpbmtzXCBjb25maWcgOmNhbCBTZXRTeW4oImVsaW5rcyIpPENSPgotYW4gNTAuMzAuMzMwICZTeW50YXguREUuRWxtXCBmaWx0ZXJcIHJ1bGVzIDpjYWwgU2V0U3luKCJlbG1maWx0Iik8Q1I+Ci1hbiA1MC4zMC4zNDAgJlN5bnRheC5ERS5FbWJlZGl4XCBDb21wb25lbnRcIERlc2NyaXB0aW9uIDpjYWwgU2V0U3luKCJlY2QiKTxDUj4KLWFuIDUwLjMwLjM1MCAmU3ludGF4LkRFLkVSaWNzc29uXCBMQU5HdWFnZSA6Y2FsIFNldFN5bigiZXJsYW5nIik8Q1I+Ci1hbiA1MC4zMC4zNjAgJlN5bnRheC5ERS5Fc3NiYXNlXCBzY3JpcHQgOmNhbCBTZXRTeW4oImNzYyIpPENSPgotYW4gNTAuMzAuMzcwICZTeW50YXguREUuRXRlcm1cIGNvbmZpZyA6Y2FsIFNldFN5bigiZXRlcm0iKTxDUj4KLWFuIDUwLjMwLjM4MCAmU3ludGF4LkRFLkV4aW1cIGNvbmYgOmNhbCBTZXRTeW4oImV4aW0iKTxDUj4KLWFuIDUwLjMwLjM5MCAmU3ludGF4LkRFLkV4cGVjdCA6Y2FsIFNldFN5bigiZXhwZWN0Iik8Q1I+Ci1hbiA1MC4zMC40MDAgJlN5bnRheC5ERS5FeHBvcnRzIDpjYWwgU2V0U3luKCJleHBvcnRzIik8Q1I+CithbiA1MC4zMC4xNDAgJlN5bnRheC5ERS5EaWN0XCBjb25maWcgOmNhbCBTZXRTeW4oImRpY3Rjb25mIik8Q1I+CithbiA1MC4zMC4xNTAgJlN5bnRheC5ERS5EaWN0ZFwgY29uZmlnIDpjYWwgU2V0U3luKCJkaWN0ZGNvbmYiKTxDUj4KK2FuIDUwLjMwLjE2MCAmU3ludGF4LkRFLkRpZmYgOmNhbCBTZXRTeW4oImRpZmYiKTxDUj4KK2FuIDUwLjMwLjE3MCAmU3ludGF4LkRFLkRpZ2l0YWxcIENvbW1hbmRcIExhbmcgOmNhbCBTZXRTeW4oImRjbCIpPENSPgorYW4gNTAuMzAuMTgwICZTeW50YXguREUuRGlyY29sb3JzIDpjYWwgU2V0U3luKCJkaXJjb2xvcnMiKTxDUj4KK2FuIDUwLjMwLjE5MCAmU3ludGF4LkRFLkRqYW5nb1wgdGVtcGxhdGUgOmNhbCBTZXRTeW4oImRqYW5nbyIpPENSPgorYW4gNTAuMzAuMjAwICZTeW50YXguREUuRE5TL0JJTkRcIHpvbmUgOmNhbCBTZXRTeW4oImRucyIpPENSPgorYW4gNTAuMzAuMjEwICZTeW50YXguREUuRG9jQm9vay5hdXRvLWRldGVjdCA6Y2FsIFNldFN5bigiZG9jYmsiKTxDUj4KK2FuIDUwLjMwLjIyMCAmU3ludGF4LkRFLkRvY0Jvb2suU0dNTCA6Y2FsIFNldFN5bigiZG9jYmtzZ21sIik8Q1I+CithbiA1MC4zMC4yMzAgJlN5bnRheC5ERS5Eb2NCb29rLlhNTCA6Y2FsIFNldFN5bigiZG9jYmt4bWwiKTxDUj4KK2FuIDUwLjMwLjI0MCAmU3ludGF4LkRFLkRvdCA6Y2FsIFNldFN5bigiZG90Iik8Q1I+CithbiA1MC4zMC4yNTAgJlN5bnRheC5ERS5EcmFjdWxhIDpjYWwgU2V0U3luKCJkcmFjdWxhIik8Q1I+CithbiA1MC4zMC4yNjAgJlN5bnRheC5ERS5EU1NTTCA6Y2FsIFNldFN5bigiZHNsIik8Q1I+CithbiA1MC4zMC4yNzAgJlN5bnRheC5ERS5EVEQgOmNhbCBTZXRTeW4oImR0ZCIpPENSPgorYW4gNTAuMzAuMjgwICZTeW50YXguREUuRFRNTFwgKFpvcGUpIDpjYWwgU2V0U3luKCJkdG1sIik8Q1I+CithbiA1MC4zMC4yOTAgJlN5bnRheC5ERS5EeWxhbi5EeWxhbiA6Y2FsIFNldFN5bigiZHlsYW4iKTxDUj4KK2FuIDUwLjMwLjMwMCAmU3ludGF4LkRFLkR5bGFuLkR5bGFuXCBpbnRlcmZhY2UgOmNhbCBTZXRTeW4oImR5bGFuaW50ciIpPENSPgorYW4gNTAuMzAuMzEwICZTeW50YXguREUuRHlsYW4uRHlsYW5cIGxpZCA6Y2FsIFNldFN5bigiZHlsYW5saWQiKTxDUj4KK2FuIDUwLjMwLjMzMCAmU3ludGF4LkRFLkVESUYgOmNhbCBTZXRTeW4oImVkaWYiKTxDUj4KK2FuIDUwLjMwLjM0MCAmU3ludGF4LkRFLkVpZmZlbCA6Y2FsIFNldFN5bigiZWlmZmVsIik8Q1I+CithbiA1MC4zMC4zNTAgJlN5bnRheC5ERS5FbGlua3NcIGNvbmZpZyA6Y2FsIFNldFN5bigiZWxpbmtzIik8Q1I+CithbiA1MC4zMC4zNjAgJlN5bnRheC5ERS5FbG1cIGZpbHRlclwgcnVsZXMgOmNhbCBTZXRTeW4oImVsbWZpbHQiKTxDUj4KK2FuIDUwLjMwLjM3MCAmU3ludGF4LkRFLkVtYmVkaXhcIENvbXBvbmVudFwgRGVzY3JpcHRpb24gOmNhbCBTZXRTeW4oImVjZCIpPENSPgorYW4gNTAuMzAuMzgwICZTeW50YXguREUuRVJpY3Nzb25cIExBTkd1YWdlIDpjYWwgU2V0U3luKCJlcmxhbmciKTxDUj4KK2FuIDUwLjMwLjM5MCAmU3ludGF4LkRFLkVTTVRQXCByYyA6Y2FsIFNldFN5bigiZXNtdHByYyIpPENSPgorYW4gNTAuMzAuNDAwICZTeW50YXguREUuRVNRTC1DIDpjYWwgU2V0U3luKCJlc3FsYyIpPENSPgorYW4gNTAuMzAuNDEwICZTeW50YXguREUuRXNzYmFzZVwgc2NyaXB0IDpjYWwgU2V0U3luKCJjc2MiKTxDUj4KK2FuIDUwLjMwLjQyMCAmU3ludGF4LkRFLkVzdGVyZWwgOmNhbCBTZXRTeW4oImVzdGVyZWwiKTxDUj4KK2FuIDUwLjMwLjQzMCAmU3ludGF4LkRFLkV0ZXJtXCBjb25maWcgOmNhbCBTZXRTeW4oImV0ZXJtIik8Q1I+CithbiA1MC4zMC40NDAgJlN5bnRheC5ERS5Fdmlld3MgOmNhbCBTZXRTeW4oImV2aWV3cyIpPENSPgorYW4gNTAuMzAuNDUwICZTeW50YXguREUuRXhpbVwgY29uZiA6Y2FsIFNldFN5bigiZXhpbSIpPENSPgorYW4gNTAuMzAuNDYwICZTeW50YXguREUuRXhwZWN0IDpjYWwgU2V0U3luKCJleHBlY3QiKTxDUj4KK2FuIDUwLjMwLjQ3MCAmU3ludGF4LkRFLkV4cG9ydHMgOmNhbCBTZXRTeW4oImV4cG9ydHMiKTxDUj4KIGFuIDUwLjQwLjEwMCAmU3ludGF4LkZHLkZldGNobWFpbCA6Y2FsIFNldFN5bigiZmV0Y2htYWlsIik8Q1I+CiBhbiA1MC40MC4xMTAgJlN5bnRheC5GRy5Gb2N1c1wgRXhlY3V0YWJsZSA6Y2FsIFNldFN5bigiZm9jZXhlYyIpPENSPgogYW4gNTAuNDAuMTIwICZTeW50YXguRkcuRm9jdXNcIE1hc3RlciA6Y2FsIFNldFN5bigibWFzdGVyIik8Q1I+CkBAIC0xNTYsMTIgKzE2NywxNSBAQAogYW4gNTAuNDAuMjUwICZTeW50YXguRkcuR2tyZWxsbXJjIDpjYWwgU2V0U3luKCJna3JlbGxtcmMiKTxDUj4KIGFuIDUwLjQwLjI2MCAmU3ludGF4LkZHLkdQIDpjYWwgU2V0U3luKCJncCIpPENSPgogYW4gNTAuNDAuMjcwICZTeW50YXguRkcuR1BHIDpjYWwgU2V0U3luKCJncGciKTxDUj4KLWFuIDUwLjQwLjI4MCAmU3ludGF4LkZHLkdydWIgOmNhbCBTZXRTeW4oImdydWIiKTxDUj4KLWFuIDUwLjQwLjI5MCAmU3ludGF4LkZHLkdOVVwgU2VydmVyXCBQYWdlcyA6Y2FsIFNldFN5bigiZ3NwIik8Q1I+Ci1hbiA1MC40MC4zMDAgJlN5bnRheC5GRy5HTlVwbG90IDpjYWwgU2V0U3luKCJnbnVwbG90Iik8Q1I+Ci1hbiA1MC40MC4zMTAgJlN5bnRheC5GRy5HckFEU1wgc2NyaXB0cyA6Y2FsIFNldFN5bigiZ3JhZHMiKTxDUj4KLWFuIDUwLjQwLjMyMCAmU3ludGF4LkZHLkdyb2ZmIDpjYWwgU2V0U3luKCJncm9mZiIpPENSPgotYW4gNTAuNDAuMzMwICZTeW50YXguRkcuR1RLcmMgOmNhbCBTZXRTeW4oImd0a3JjIik8Q1I+CithbiA1MC40MC4yODAgJlN5bnRheC5GRy5Hcm91cFwgZmlsZSA6Y2FsIFNldFN5bigiZ3JvdXAiKTxDUj4KK2FuIDUwLjQwLjI5MCAmU3ludGF4LkZHLkdydWIgOmNhbCBTZXRTeW4oImdydWIiKTxDUj4KK2FuIDUwLjQwLjMwMCAmU3ludGF4LkZHLkdOVVwgU2VydmVyXCBQYWdlcyA6Y2FsIFNldFN5bigiZ3NwIik8Q1I+CithbiA1MC40MC4zMTAgJlN5bnRheC5GRy5HTlVwbG90IDpjYWwgU2V0U3luKCJnbnVwbG90Iik8Q1I+CithbiA1MC40MC4zMjAgJlN5bnRheC5GRy5HckFEU1wgc2NyaXB0cyA6Y2FsIFNldFN5bigiZ3JhZHMiKTxDUj4KK2FuIDUwLjQwLjMzMCAmU3ludGF4LkZHLkdyZXRsIDpjYWwgU2V0U3luKCJncmV0bCIpPENSPgorYW4gNTAuNDAuMzQwICZTeW50YXguRkcuR3JvZmYgOmNhbCBTZXRTeW4oImdyb2ZmIik8Q1I+CithbiA1MC40MC4zNTAgJlN5bnRheC5GRy5Hcm9vdnkgOmNhbCBTZXRTeW4oImdyb292eSIpPENSPgorYW4gNTAuNDAuMzYwICZTeW50YXguRkcuR1RLcmMgOmNhbCBTZXRTeW4oImd0a3JjIik8Q1I+CiBhbiA1MC41MC4xMDAgJlN5bnRheC5ISUpLLkhhc2tlbGwuSGFza2VsbCA6Y2FsIFNldFN5bigiaGFza2VsbCIpPENSPgogYW4gNTAuNTAuMTEwICZTeW50YXguSElKSy5IYXNrZWxsLkhhc2tlbGwtYzJocyA6Y2FsIFNldFN5bigiY2hhc2tlbGwiKTxDUj4KIGFuIDUwLjUwLjEyMCAmU3ludGF4LkhJSksuSGFza2VsbC5IYXNrZWxsLWxpdGVyYXRlIDpjYWwgU2V0U3luKCJsaGFza2VsbCIpPENSPgpAQCAtMTcwLDE2OCArMTg0LDE5MiBAQAogYW4gNTAuNTAuMTUwICZTeW50YXguSElKSy5IZXhcIGR1bXAuSW50ZWxcIE1DUzUxIDpjYWwgU2V0U3luKCJoZXgiKTxDUj4KIGFuIDUwLjUwLjE2MCAmU3ludGF4LkhJSksuSFRNTC5IVE1MIDpjYWwgU2V0U3luKCJodG1sIik8Q1I+CiBhbiA1MC41MC4xNzAgJlN5bnRheC5ISUpLLkhUTUwuSFRNTFwgd2l0aFwgTTQgOmNhbCBTZXRTeW4oImh0bWxtNCIpPENSPgotYW4gNTAuNTAuMTgwICZTeW50YXguSElKSy5IVE1MLkNoZWV0YWhcIEhUTUxcIHRlbXBsYXRlIDpjYWwgU2V0U3luKCJodG1sY2hlZXRhaCIpPENSPgotYW4gNTAuNTAuMTkwICZTeW50YXguSElKSy5IVE1MLkhUTUwvT1MgOmNhbCBTZXRTeW4oImh0bWxvcyIpPENSPgotYW4gNTAuNTAuMjAwICZTeW50YXguSElKSy5IVE1MLlhIVE1MIDpjYWwgU2V0U3luKCJ4aHRtbCIpPENSPgotYW4gNTAuNTAuMjEwICZTeW50YXguSElKSy5IeXBlclwgQnVpbGRlciA6Y2FsIFNldFN5bigiaGIiKTxDUj4KLWFuIDUwLjUwLjIzMCAmU3ludGF4LkhJSksuSWNld21cIG1lbnUgOmNhbCBTZXRTeW4oImljZW1lbnUiKTxDUj4KLWFuIDUwLjUwLjI0MCAmU3ludGF4LkhJSksuSWNvbiA6Y2FsIFNldFN5bigiaWNvbiIpPENSPgotYW4gNTAuNTAuMjUwICZTeW50YXguSElKSy5JRExcR2VuZXJpY1wgSURMIDpjYWwgU2V0U3luKCJpZGwiKTxDUj4KLWFuIDUwLjUwLjI2MCAmU3ludGF4LkhJSksuSURMXE1pY3Jvc29mdFwgSURMIDpjYWwgU2V0U3luKCJtc2lkbCIpPENSPgotYW4gNTAuNTAuMjcwICZTeW50YXguSElKSy5JbmRlbnRcIHByb2ZpbGUgOmNhbCBTZXRTeW4oImluZGVudCIpPENSPgotYW4gNTAuNTAuMjgwICZTeW50YXguSElKSy5JbmZvcm0gOmNhbCBTZXRTeW4oImluZm9ybSIpPENSPgotYW4gNTAuNTAuMjkwICZTeW50YXguSElKSy5JbmZvcm1peFwgNEdMIDpjYWwgU2V0U3luKCJmZ2wiKTxDUj4KLWFuIDUwLjUwLjMwMCAmU3ludGF4LkhJSksuSW5pdHRhYiA6Y2FsIFNldFN5bigiaW5pdHRhYiIpPENSPgotYW4gNTAuNTAuMzEwICZTeW50YXguSElKSy5Jbm5vXCBzZXR1cCA6Y2FsIFNldFN5bigiaXNzIik8Q1I+Ci1hbiA1MC41MC4zMjAgJlN5bnRheC5ISUpLLkluc3RhbGxTaGllbGRcIHNjcmlwdCA6Y2FsIFNldFN5bigiaXNoZCIpPENSPgotYW4gNTAuNTAuMzMwICZTeW50YXguSElKSy5JbnRlcmFjdGl2ZVwgRGF0YVwgTGFuZyA6Y2FsIFNldFN5bigiaWRsYW5nIik8Q1I+Ci1hbiA1MC41MC4zNDAgJlN5bnRheC5ISUpLLklQZmlsdGVyIDpjYWwgU2V0U3luKCJpcGZpbHRlciIpPENSPgotYW4gNTAuNTAuMzYwICZTeW50YXguSElKSy5KQUwgOmNhbCBTZXRTeW4oImphbCIpPENSPgotYW4gNTAuNTAuMzcwICZTeW50YXguSElKSy5KQU0gOmNhbCBTZXRTeW4oImphbSIpPENSPgotYW4gNTAuNTAuMzgwICZTeW50YXguSElKSy5KYXJnb24gOmNhbCBTZXRTeW4oImphcmdvbiIpPENSPgotYW4gNTAuNTAuMzkwICZTeW50YXguSElKSy5KYXZhLkphdmEgOmNhbCBTZXRTeW4oImphdmEiKTxDUj4KLWFuIDUwLjUwLjQwMCAmU3ludGF4LkhJSksuSmF2YS5KYXZhQ0MgOmNhbCBTZXRTeW4oImphdmFjYyIpPENSPgotYW4gNTAuNTAuNDEwICZTeW50YXguSElKSy5KYXZhLkphdmFcIFNlcnZlclwgUGFnZXMgOmNhbCBTZXRTeW4oImpzcCIpPENSPgotYW4gNTAuNTAuNDIwICZTeW50YXguSElKSy5KYXZhLkphdmFcIFByb3BlcnRpZXMgOmNhbCBTZXRTeW4oImpwcm9wZXJ0aWVzIik8Q1I+Ci1hbiA1MC41MC40MzAgJlN5bnRheC5ISUpLLkphdmFTY3JpcHQgOmNhbCBTZXRTeW4oImphdmFzY3JpcHQiKTxDUj4KLWFuIDUwLjUwLjQ0MCAmU3ludGF4LkhJSksuSmVzcyA6Y2FsIFNldFN5bigiamVzcyIpPENSPgotYW4gNTAuNTAuNDUwICZTeW50YXguSElKSy5KZ3JhcGggOmNhbCBTZXRTeW4oImpncmFwaCIpPENSPgotYW4gNTAuNTAuNDcwICZTeW50YXguSElKSy5LREVcIHNjcmlwdCA6Y2FsIFNldFN5bigia3NjcmlwdCIpPENSPgotYW4gNTAuNTAuNDgwICZTeW50YXguSElKSy5LaW13aXR1KysgOmNhbCBTZXRTeW4oImt3dCIpPENSPgotYW4gNTAuNTAuNDkwICZTeW50YXguSElKSy5LaXhUYXJ0IDpjYWwgU2V0U3luKCJraXgiKTxDUj4KK2FuIDUwLjUwLjE4MCAmU3ludGF4LkhJSksuSFRNTC5IVE1MXCB3aXRoXCBSdWJ5XCAoZVJ1YnkpIDpjYWwgU2V0U3luKCJlcnVieSIpPENSPgorYW4gNTAuNTAuMTkwICZTeW50YXguSElKSy5IVE1MLkNoZWV0YWhcIEhUTUxcIHRlbXBsYXRlIDpjYWwgU2V0U3luKCJodG1sY2hlZXRhaCIpPENSPgorYW4gNTAuNTAuMjAwICZTeW50YXguSElKSy5IVE1MLkRqYW5nb1wgSFRNTFwgdGVtcGxhdGUgOmNhbCBTZXRTeW4oImh0bWxkamFuZ28iKTxDUj4KK2FuIDUwLjUwLjIxMCAmU3ludGF4LkhJSksuSFRNTC5IVE1ML09TIDpjYWwgU2V0U3luKCJodG1sb3MiKTxDUj4KK2FuIDUwLjUwLjIyMCAmU3ludGF4LkhJSksuSFRNTC5YSFRNTCA6Y2FsIFNldFN5bigieGh0bWwiKTxDUj4KK2FuIDUwLjUwLjIzMCAmU3ludGF4LkhJSksuSHlwZXJcIEJ1aWxkZXIgOmNhbCBTZXRTeW4oImhiIik8Q1I+CithbiA1MC41MC4yNTAgJlN5bnRheC5ISUpLLkljZXdtXCBtZW51IDpjYWwgU2V0U3luKCJpY2VtZW51Iik8Q1I+CithbiA1MC41MC4yNjAgJlN5bnRheC5ISUpLLkljb24gOmNhbCBTZXRTeW4oImljb24iKTxDUj4KK2FuIDUwLjUwLjI3MCAmU3ludGF4LkhJSksuSURMXEdlbmVyaWNcIElETCA6Y2FsIFNldFN5bigiaWRsIik8Q1I+CithbiA1MC41MC4yODAgJlN5bnRheC5ISUpLLklETFxNaWNyb3NvZnRcIElETCA6Y2FsIFNldFN5bigibXNpZGwiKTxDUj4KK2FuIDUwLjUwLjI5MCAmU3ludGF4LkhJSksuSW5kZW50XCBwcm9maWxlIDpjYWwgU2V0U3luKCJpbmRlbnQiKTxDUj4KK2FuIDUwLjUwLjMwMCAmU3ludGF4LkhJSksuSW5mb3JtIDpjYWwgU2V0U3luKCJpbmZvcm0iKTxDUj4KK2FuIDUwLjUwLjMxMCAmU3ludGF4LkhJSksuSW5mb3JtaXhcIDRHTCA6Y2FsIFNldFN5bigiZmdsIik8Q1I+CithbiA1MC41MC4zMjAgJlN5bnRheC5ISUpLLkluaXR0YWIgOmNhbCBTZXRTeW4oImluaXR0YWIiKTxDUj4KK2FuIDUwLjUwLjMzMCAmU3ludGF4LkhJSksuSW5ub1wgc2V0dXAgOmNhbCBTZXRTeW4oImlzcyIpPENSPgorYW4gNTAuNTAuMzQwICZTeW50YXguSElKSy5JbnN0YWxsU2hpZWxkXCBzY3JpcHQgOmNhbCBTZXRTeW4oImlzaGQiKTxDUj4KK2FuIDUwLjUwLjM1MCAmU3ludGF4LkhJSksuSW50ZXJhY3RpdmVcIERhdGFcIExhbmcgOmNhbCBTZXRTeW4oImlkbGFuZyIpPENSPgorYW4gNTAuNTAuMzYwICZTeW50YXguSElKSy5JUGZpbHRlciA6Y2FsIFNldFN5bigiaXBmaWx0ZXIiKTxDUj4KK2FuIDUwLjUwLjM4MCAmU3ludGF4LkhJSksuSkFMIDpjYWwgU2V0U3luKCJqYWwiKTxDUj4KK2FuIDUwLjUwLjM5MCAmU3ludGF4LkhJSksuSkFNIDpjYWwgU2V0U3luKCJqYW0iKTxDUj4KK2FuIDUwLjUwLjQwMCAmU3ludGF4LkhJSksuSmFyZ29uIDpjYWwgU2V0U3luKCJqYXJnb24iKTxDUj4KK2FuIDUwLjUwLjQxMCAmU3ludGF4LkhJSksuSmF2YS5KYXZhIDpjYWwgU2V0U3luKCJqYXZhIik8Q1I+CithbiA1MC41MC40MjAgJlN5bnRheC5ISUpLLkphdmEuSmF2YUNDIDpjYWwgU2V0U3luKCJqYXZhY2MiKTxDUj4KK2FuIDUwLjUwLjQzMCAmU3ludGF4LkhJSksuSmF2YS5KYXZhXCBTZXJ2ZXJcIFBhZ2VzIDpjYWwgU2V0U3luKCJqc3AiKTxDUj4KK2FuIDUwLjUwLjQ0MCAmU3ludGF4LkhJSksuSmF2YS5KYXZhXCBQcm9wZXJ0aWVzIDpjYWwgU2V0U3luKCJqcHJvcGVydGllcyIpPENSPgorYW4gNTAuNTAuNDUwICZTeW50YXguSElKSy5KYXZhU2NyaXB0IDpjYWwgU2V0U3luKCJqYXZhc2NyaXB0Iik8Q1I+CithbiA1MC41MC40NjAgJlN5bnRheC5ISUpLLkplc3MgOmNhbCBTZXRTeW4oImplc3MiKTxDUj4KK2FuIDUwLjUwLjQ3MCAmU3ludGF4LkhJSksuSmdyYXBoIDpjYWwgU2V0U3luKCJqZ3JhcGgiKTxDUj4KK2FuIDUwLjUwLjQ5MCAmU3ludGF4LkhJSksuS0RFXCBzY3JpcHQgOmNhbCBTZXRTeW4oImtzY3JpcHQiKTxDUj4KK2FuIDUwLjUwLjUwMCAmU3ludGF4LkhJSksuS2ltd2l0dSsrIDpjYWwgU2V0U3luKCJrd3QiKTxDUj4KK2FuIDUwLjUwLjUxMCAmU3ludGF4LkhJSksuS2l4VGFydCA6Y2FsIFNldFN5bigia2l4Iik8Q1I+CiBhbiA1MC42MC4xMDAgJlN5bnRheC5MLU1hLkxhY2UgOmNhbCBTZXRTeW4oImxhY2UiKTxDUj4KIGFuIDUwLjYwLjExMCAmU3ludGF4LkwtTWEuTGFtZGFQcm9sb2cgOmNhbCBTZXRTeW4oImxwcm9sb2ciKTxDUj4KIGFuIDUwLjYwLjEyMCAmU3ludGF4LkwtTWEuTGF0dGUgOmNhbCBTZXRTeW4oImxhdHRlIik8Q1I+Ci1hbiA1MC42MC4xMzAgJlN5bnRheC5MLU1hLkxEQVBcIExESUYgOmNhbCBTZXRTeW4oImxkaWYiKTxDUj4KLWFuIDUwLjYwLjE0MCAmU3ludGF4LkwtTWEuTGV4IDpjYWwgU2V0U3luKCJsZXgiKTxDUj4KLWFuIDUwLjYwLjE1MCAmU3ludGF4LkwtTWEuTEZUUFwgY29uZmlnIDpjYWwgU2V0U3luKCJsZnRwIik8Q1I+Ci1hbiA1MC42MC4xNjAgJlN5bnRheC5MLU1hLkxpYmFvIDpjYWwgU2V0U3luKCJsaWJhbyIpPENSPgotYW4gNTAuNjAuMTcwICZTeW50YXguTC1NYS5MaWZlTGluZXNcIHNjcmlwdCA6Y2FsIFNldFN5bigibGlmZWxpbmVzIik8Q1I+Ci1hbiA1MC42MC4xODAgJlN5bnRheC5MLU1hLkxpbG8gOmNhbCBTZXRTeW4oImxpbG8iKTxDUj4KLWFuIDUwLjYwLjE5MCAmU3ludGF4LkwtTWEuTGlzcCA6Y2FsIFNldFN5bigibGlzcCIpPENSPgotYW4gNTAuNjAuMjAwICZTeW50YXguTC1NYS5MaXRlIDpjYWwgU2V0U3luKCJsaXRlIik8Q1I+Ci1hbiA1MC42MC4yMTAgJlN5bnRheC5MLU1hLkxvY2FsZVwgSW5wdXQgOmNhbCBTZXRTeW4oImZkY2MiKTxDUj4KLWFuIDUwLjYwLjIyMCAmU3ludGF4LkwtTWEuTG9ndGFsayA6Y2FsIFNldFN5bigibG9ndGFsayIpPENSPgotYW4gNTAuNjAuMjMwICZTeW50YXguTC1NYS5MT1RPUyA6Y2FsIFNldFN5bigibG90b3MiKTxDUj4KLWFuIDUwLjYwLjI0MCAmU3ludGF4LkwtTWEuTG90dXNTY3JpcHQgOmNhbCBTZXRTeW4oImxzY3JpcHQiKTxDUj4KLWFuIDUwLjYwLjI1MCAmU3ludGF4LkwtTWEuTG91dCA6Y2FsIFNldFN5bigibG91dCIpPENSPgotYW4gNTAuNjAuMjYwICZTeW50YXguTC1NYS5MUEMgOmNhbCBTZXRTeW4oImxwYyIpPENSPgotYW4gNTAuNjAuMjcwICZTeW50YXguTC1NYS5MdWEgOmNhbCBTZXRTeW4oImx1YSIpPENSPgotYW4gNTAuNjAuMjgwICZTeW50YXguTC1NYS5MeW54XCBTdHlsZSA6Y2FsIFNldFN5bigibHNzIik8Q1I+Ci1hbiA1MC42MC4yOTAgJlN5bnRheC5MLU1hLkx5bnhcIGNvbmZpZyA6Y2FsIFNldFN5bigibHlueCIpPENSPgotYW4gNTAuNjAuMzEwICZTeW50YXguTC1NYS5NNCA6Y2FsIFNldFN5bigibTQiKTxDUj4KLWFuIDUwLjYwLjMyMCAmU3ludGF4LkwtTWEuTWFHaWNcIFBvaW50IDpjYWwgU2V0U3luKCJtZ3AiKTxDUj4KLWFuIDUwLjYwLjMzMCAmU3ludGF4LkwtTWEuTWFpbCA6Y2FsIFNldFN5bigibWFpbCIpPENSPgotYW4gNTAuNjAuMzQwICZTeW50YXguTC1NYS5NYWlsY2FwIDpjYWwgU2V0U3luKCJtYWlsY2FwIik8Q1I+Ci1hbiA1MC42MC4zNTAgJlN5bnRheC5MLU1hLk1ha2VmaWxlIDpjYWwgU2V0U3luKCJtYWtlIik8Q1I+Ci1hbiA1MC42MC4zNjAgJlN5bnRheC5MLU1hLk1ha2VJbmRleCA6Y2FsIFNldFN5bigiaXN0Iik8Q1I+Ci1hbiA1MC42MC4zNzAgJlN5bnRheC5MLU1hLk1hblwgcGFnZSA6Y2FsIFNldFN5bigibWFuIik8Q1I+Ci1hbiA1MC42MC4zODAgJlN5bnRheC5MLU1hLk1hcGxlXCBWIDpjYWwgU2V0U3luKCJtYXBsZSIpPENSPgotYW4gNTAuNjAuMzkwICZTeW50YXguTC1NYS5NYXNvbiA6Y2FsIFNldFN5bigibWFzb24iKTxDUj4KLWFuIDUwLjYwLjQwMCAmU3ludGF4LkwtTWEuTWF0aGVtYXRpY2EgOmNhbCBTZXRTeW4oIm1tYSIpPENSPgotYW4gNTAuNjAuNDEwICZTeW50YXguTC1NYS5NYXRsYWIgOmNhbCBTZXRTeW4oIm1hdGxhYiIpPENSPgorYW4gNTAuNjAuMTMwICZTeW50YXguTC1NYS5MZFwgc2NyaXB0IDpjYWwgU2V0U3luKCJsZCIpPENSPgorYW4gNTAuNjAuMTQwICZTeW50YXguTC1NYS5MREFQXCBMRElGIDpjYWwgU2V0U3luKCJsZGlmIik8Q1I+CithbiA1MC42MC4xNTAgJlN5bnRheC5MLU1hLkxleCA6Y2FsIFNldFN5bigibGV4Iik8Q1I+CithbiA1MC42MC4xNjAgJlN5bnRheC5MLU1hLkxGVFBcIGNvbmZpZyA6Y2FsIFNldFN5bigibGZ0cCIpPENSPgorYW4gNTAuNjAuMTcwICZTeW50YXguTC1NYS5MaWJhbyA6Y2FsIFNldFN5bigibGliYW8iKTxDUj4KK2FuIDUwLjYwLjE4MCAmU3ludGF4LkwtTWEuTGlmZUxpbmVzXCBzY3JpcHQgOmNhbCBTZXRTeW4oImxpZmVsaW5lcyIpPENSPgorYW4gNTAuNjAuMTkwICZTeW50YXguTC1NYS5MaWxvIDpjYWwgU2V0U3luKCJsaWxvIik8Q1I+CithbiA1MC42MC4yMDAgJlN5bnRheC5MLU1hLkxpbWl0c1wgY29uZmlnIDpjYWwgU2V0U3luKCJsaW1pdHMiKTxDUj4KK2FuIDUwLjYwLjIxMCAmU3ludGF4LkwtTWEuTGlzcCA6Y2FsIFNldFN5bigibGlzcCIpPENSPgorYW4gNTAuNjAuMjIwICZTeW50YXguTC1NYS5MaXRlIDpjYWwgU2V0U3luKCJsaXRlIik8Q1I+CithbiA1MC42MC4yMzAgJlN5bnRheC5MLU1hLkxvY2FsZVwgSW5wdXQgOmNhbCBTZXRTeW4oImZkY2MiKTxDUj4KK2FuIDUwLjYwLjI0MCAmU3ludGF4LkwtTWEuTG9naW5cLmFjY2VzcyA6Y2FsIFNldFN5bigibG9naW5hY2Nlc3MiKTxDUj4KK2FuIDUwLjYwLjI1MCAmU3ludGF4LkwtTWEuTG9naW5cLmRlZnMgOmNhbCBTZXRTeW4oImxvZ2luZGVmcyIpPENSPgorYW4gNTAuNjAuMjYwICZTeW50YXguTC1NYS5Mb2d0YWxrIDpjYWwgU2V0U3luKCJsb2d0YWxrIik8Q1I+CithbiA1MC42MC4yNzAgJlN5bnRheC5MLU1hLkxPVE9TIDpjYWwgU2V0U3luKCJsb3RvcyIpPENSPgorYW4gNTAuNjAuMjgwICZTeW50YXguTC1NYS5Mb3R1c1NjcmlwdCA6Y2FsIFNldFN5bigibHNjcmlwdCIpPENSPgorYW4gNTAuNjAuMjkwICZTeW50YXguTC1NYS5Mb3V0IDpjYWwgU2V0U3luKCJsb3V0Iik8Q1I+CithbiA1MC42MC4zMDAgJlN5bnRheC5MLU1hLkxQQyA6Y2FsIFNldFN5bigibHBjIik8Q1I+CithbiA1MC42MC4zMTAgJlN5bnRheC5MLU1hLkx1YSA6Y2FsIFNldFN5bigibHVhIik8Q1I+CithbiA1MC42MC4zMjAgJlN5bnRheC5MLU1hLkx5bnhcIFN0eWxlIDpjYWwgU2V0U3luKCJsc3MiKTxDUj4KK2FuIDUwLjYwLjMzMCAmU3ludGF4LkwtTWEuTHlueFwgY29uZmlnIDpjYWwgU2V0U3luKCJseW54Iik8Q1I+CithbiA1MC42MC4zNTAgJlN5bnRheC5MLU1hLk00IDpjYWwgU2V0U3luKCJtNCIpPENSPgorYW4gNTAuNjAuMzYwICZTeW50YXguTC1NYS5NYUdpY1wgUG9pbnQgOmNhbCBTZXRTeW4oIm1ncCIpPENSPgorYW4gNTAuNjAuMzcwICZTeW50YXguTC1NYS5NYWlsIDpjYWwgU2V0U3luKCJtYWlsIik8Q1I+CithbiA1MC42MC4zODAgJlN5bnRheC5MLU1hLk1haWxjYXAgOmNhbCBTZXRTeW4oIm1haWxjYXAiKTxDUj4KK2FuIDUwLjYwLjM5MCAmU3ludGF4LkwtTWEuTWFrZWZpbGUgOmNhbCBTZXRTeW4oIm1ha2UiKTxDUj4KK2FuIDUwLjYwLjQwMCAmU3ludGF4LkwtTWEuTWFrZUluZGV4IDpjYWwgU2V0U3luKCJpc3QiKTxDUj4KK2FuIDUwLjYwLjQxMCAmU3ludGF4LkwtTWEuTWFuXCBwYWdlIDpjYWwgU2V0U3luKCJtYW4iKTxDUj4KK2FuIDUwLjYwLjQyMCAmU3ludGF4LkwtTWEuTWFuXC5jb25mIDpjYWwgU2V0U3luKCJtYW5jb25mIik8Q1I+CithbiA1MC42MC40MzAgJlN5bnRheC5MLU1hLk1hcGxlXCBWIDpjYWwgU2V0U3luKCJtYXBsZSIpPENSPgorYW4gNTAuNjAuNDQwICZTeW50YXguTC1NYS5NYXNvbiA6Y2FsIFNldFN5bigibWFzb24iKTxDUj4KK2FuIDUwLjYwLjQ1MCAmU3ludGF4LkwtTWEuTWF0aGVtYXRpY2EgOmNhbCBTZXRTeW4oIm1tYSIpPENSPgorYW4gNTAuNjAuNDYwICZTeW50YXguTC1NYS5NYXRsYWIgOmNhbCBTZXRTeW4oIm1hdGxhYiIpPENSPgogYW4gNTAuNzAuMTAwICZTeW50YXguTWUtTk8uTUVMXCAoZm9yXCBNYXlhKSA6Y2FsIFNldFN5bigibWVsIik8Q1I+CiBhbiA1MC43MC4xMTAgJlN5bnRheC5NZS1OTy5NZXRhZm9udCA6Y2FsIFNldFN5bigibWYiKTxDUj4KIGFuIDUwLjcwLjEyMCAmU3ludGF4Lk1lLU5PLk1ldGFQb3N0IDpjYWwgU2V0U3luKCJtcCIpPENSPgotYW4gNTAuNzAuMTMwICZTeW50YXguTWUtTk8uTU1JWCA6Y2FsIFNldFN5bigibW1peCIpPENSPgotYW4gNTAuNzAuMTQwICZTeW50YXguTWUtTk8uTW9kY29uZiA6Y2FsIFNldFN5bigibW9kY29uZiIpPENSPgotYW4gNTAuNzAuMTUwICZTeW50YXguTWUtTk8uTW9kZWwgOmNhbCBTZXRTeW4oIm1vZGVsIik8Q1I+Ci1hbiA1MC43MC4xNjAgJlN5bnRheC5NZS1OTy5Nb2RzaW1cIElJSSA6Y2FsIFNldFN5bigibW9kc2ltMyIpPENSPgotYW4gNTAuNzAuMTcwICZTeW50YXguTWUtTk8uTW9kdWxhXCAyIDpjYWwgU2V0U3luKCJtb2R1bGEyIik8Q1I+Ci1hbiA1MC43MC4xODAgJlN5bnRheC5NZS1OTy5Nb2R1bGFcIDMgOmNhbCBTZXRTeW4oIm1vZHVsYTMiKTxDUj4KLWFuIDUwLjcwLjE5MCAmU3ludGF4Lk1lLU5PLk1vbmsgOmNhbCBTZXRTeW4oIm1vbmsiKTxDUj4KLWFuIDUwLjcwLjIwMCAmU3ludGF4Lk1lLU5PLk1wbGF5ZXJcIGNvbmZpZyA6Y2FsIFNldFN5bigibXBsYXllcmNvbmYiKTxDUj4KLWFuIDUwLjcwLjIxMCAmU3ludGF4Lk1lLU5PLk1PTyA6Y2FsIFNldFN5bigibW9vIik8Q1I+Ci1hbiA1MC43MC4yMjAgJlN5bnRheC5NZS1OTy5NUy1ET1MvV2luZG93cy40RE9TXCBcLmJhdFwgZmlsZSA6Y2FsIFNldFN5bigiYnRtIik8Q1I+Ci1hbiA1MC43MC4yMzAgJlN5bnRheC5NZS1OTy5NUy1ET1MvV2luZG93cy5cLmJhdFwvXC5jbWRcIGZpbGUgOmNhbCBTZXRTeW4oImRvc2JhdGNoIik8Q1I+Ci1hbiA1MC43MC4yNDAgJlN5bnRheC5NZS1OTy5NUy1ET1MvV2luZG93cy5cLmluaVwgZmlsZSA6Y2FsIFNldFN5bigiZG9zaW5pIik8Q1I+Ci1hbiA1MC43MC4yNTAgJlN5bnRheC5NZS1OTy5NUy1ET1MvV2luZG93cy5Nb2R1bGVcIERlZmluaXRpb24gOmNhbCBTZXRTeW4oImRlZiIpPENSPgotYW4gNTAuNzAuMjYwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuUmVnaXN0cnkgOmNhbCBTZXRTeW4oInJlZ2lzdHJ5Iik8Q1I+Ci1hbiA1MC43MC4yNzAgJlN5bnRheC5NZS1OTy5NUy1ET1MvV2luZG93cy5SZXNvdXJjZVwgZmlsZSA6Y2FsIFNldFN5bigicmMiKTxDUj4KLWFuIDUwLjcwLjI4MCAmU3ludGF4Lk1lLU5PLk1zcWwgOmNhbCBTZXRTeW4oIm1zcWwiKTxDUj4KLWFuIDUwLjcwLjI5MCAmU3ludGF4Lk1lLU5PLk1VU0hjb2RlIDpjYWwgU2V0U3luKCJtdXNoIik8Q1I+Ci1hbiA1MC43MC4zMDAgJlN5bnRheC5NZS1OTy5NdXR0cmMgOmNhbCBTZXRTeW4oIm11dHRyYyIpPENSPgotYW4gNTAuNzAuMzIwICZTeW50YXguTWUtTk8uTmFzdHJhblwgaW5wdXQvRE1BUCA6Y2FsIFNldFN5bigibmFzdHJhbiIpPENSPgotYW4gNTAuNzAuMzMwICZTeW50YXguTWUtTk8uTmF0dXJhbCA6Y2FsIFNldFN5bigibmF0dXJhbCIpPENSPgotYW4gNTAuNzAuMzQwICZTeW50YXguTWUtTk8uTm92ZWxsXCBOQ0ZcIGJhdGNoIDpjYWwgU2V0U3luKCJuY2YiKTxDUj4KLWFuIDUwLjcwLjM1MCAmU3ludGF4Lk1lLU5PLk5vdFwgUXVpdGVcIENcIChMRUdPKSA6Y2FsIFNldFN5bigibnFjIik8Q1I+Ci1hbiA1MC43MC4zNjAgJlN5bnRheC5NZS1OTy5Ocm9mZiA6Y2FsIFNldFN5bigibnJvZmYiKTxDUj4KLWFuIDUwLjcwLjM3MCAmU3ludGF4Lk1lLU5PLk5TSVNcIHNjcmlwdCA6Y2FsIFNldFN5bigibnNpcyIpPENSPgotYW4gNTAuNzAuMzkwICZTeW50YXguTWUtTk8uT2JqZWN0aXZlXCBDIDpjYWwgU2V0U3luKCJvYmpjIik8Q1I+Ci1hbiA1MC43MC40MDAgJlN5bnRheC5NZS1OTy5PYmplY3RpdmVcIEMrKyA6Y2FsIFNldFN5bigib2JqY3BwIik8Q1I+Ci1hbiA1MC43MC40MTAgJlN5bnRheC5NZS1OTy5PQ0FNTCA6Y2FsIFNldFN5bigib2NhbWwiKTxDUj4KLWFuIDUwLjcwLjQyMCAmU3ludGF4Lk1lLU5PLk9jY2FtIDpjYWwgU2V0U3luKCJvY2NhbSIpPENSPgotYW4gNTAuNzAuNDMwICZTeW50YXguTWUtTk8uT21uaW1hcmsgOmNhbCBTZXRTeW4oIm9tbmltYXJrIik8Q1I+Ci1hbiA1MC43MC40NDAgJlN5bnRheC5NZS1OTy5PcGVuUk9BRCA6Y2FsIFNldFN5bigib3BlbnJvYWQiKTxDUj4KLWFuIDUwLjcwLjQ1MCAmU3ludGF4Lk1lLU5PLk9wZW5cIFBzaW9uXCBMYW5nIDpjYWwgU2V0U3luKCJvcGwiKTxDUj4KLWFuIDUwLjcwLjQ2MCAmU3ludGF4Lk1lLU5PLk9yYWNsZVwgY29uZmlnIDpjYWwgU2V0U3luKCJvcmEiKTxDUj4KLWFuIDUwLjgwLjEwMCAmU3ludGF4LlBRLlBhbG1cIHJlc291cmNlXCBjb21waWxlciA6Y2FsIFNldFN5bigicGlscmMiKTxDUj4KLWFuIDUwLjgwLjExMCAmU3ludGF4LlBRLlBhY2tldFwgZmlsdGVyXCBjb25mIDpjYWwgU2V0U3luKCJwZiIpPENSPgotYW4gNTAuODAuMTIwICZTeW50YXguUFEuUEFwcCA6Y2FsIFNldFN5bigicGFwcCIpPENSPgotYW4gNTAuODAuMTMwICZTeW50YXguUFEuUGFzY2FsIDpjYWwgU2V0U3luKCJwYXNjYWwiKTxDUj4KLWFuIDUwLjgwLjE0MCAmU3ludGF4LlBRLlBDQ1RTIDpjYWwgU2V0U3luKCJwY2N0cyIpPENSPgotYW4gNTAuODAuMTUwICZTeW50YXguUFEuUFBXaXphcmQgOmNhbCBTZXRTeW4oInBwd2l6Iik8Q1I+Ci1hbiA1MC44MC4xNjAgJlN5bnRheC5QUS5QZXJsLlBlcmwgOmNhbCBTZXRTeW4oInBlcmwiKTxDUj4KLWFuIDUwLjgwLjE3MCAmU3ludGF4LlBRLlBlcmwuUGVybFwgUE9EIDpjYWwgU2V0U3luKCJwb2QiKTxDUj4KLWFuIDUwLjgwLjE4MCAmU3ludGF4LlBRLlBlcmwuUGVybFwgWFMgOmNhbCBTZXRTeW4oInhzIik8Q1I+Ci1hbiA1MC44MC4xOTAgJlN5bnRheC5QUS5QSFAuUEhQXCAzLTQgOmNhbCBTZXRTeW4oInBocCIpPENSPgotYW4gNTAuODAuMjAwICZTeW50YXguUFEuUEhQLlBodG1sXCAoUEhQXCAyKSA6Y2FsIFNldFN5bigicGh0bWwiKTxDUj4KLWFuIDUwLjgwLjIxMCAmU3ludGF4LlBRLlBpa2UgOmNhbCBTZXRTeW4oInBpa2UiKTxDUj4KLWFuIDUwLjgwLjIyMCAmU3ludGF4LlBRLlBpbmVcIFJDIDpjYWwgU2V0U3luKCJwaW5lIik8Q1I+Ci1hbiA1MC44MC4yMzAgJlN5bnRheC5QUS5QaW5mb1wgUkMgOmNhbCBTZXRTeW4oInBpbmZvIik8Q1I+Ci1hbiA1MC44MC4yNDAgJlN5bnRheC5QUS5QTC9NIDpjYWwgU2V0U3luKCJwbG0iKTxDUj4KLWFuIDUwLjgwLjI1MCAmU3ludGF4LlBRLlBMUCA6Y2FsIFNldFN5bigicGxwIik8Q1I+Ci1hbiA1MC44MC4yNjAgJlN5bnRheC5QUS5QT1wgKEdOVVwgZ2V0dGV4dCkgOmNhbCBTZXRTeW4oInBvIik8Q1I+Ci1hbiA1MC44MC4yNzAgJlN5bnRheC5QUS5Qb3N0Zml4XCBtYWluXCBjb25maWcgOmNhbCBTZXRTeW4oInBmbWFpbiIpPENSPgotYW4gNTAuODAuMjgwICZTeW50YXguUFEuUG9zdFNjcmlwdC5Qb3N0U2NyaXB0IDpjYWwgU2V0U3luKCJwb3N0c2NyIik8Q1I+Ci1hbiA1MC44MC4yOTAgJlN5bnRheC5QUS5Qb3N0U2NyaXB0LlBvc3RTY3JpcHRcIFByaW50ZXJcIERlc2NyaXB0aW9uIDpjYWwgU2V0U3luKCJwcGQiKTxDUj4KLWFuIDUwLjgwLjMwMCAmU3ludGF4LlBRLlBvdnJheS5Qb3ZyYXlcIHNjZW5lXCBkZXNjciA6Y2FsIFNldFN5bigicG92Iik8Q1I+Ci1hbiA1MC44MC4zMTAgJlN5bnRheC5QUS5Qb3ZyYXkuUG92cmF5XCBjb25maWd1cmF0aW9uIDpjYWwgU2V0U3luKCJwb3ZpbmkiKTxDUj4KLWFuIDUwLjgwLjMyMCAmU3ludGF4LlBRLlByaW50Y2FwIDpjYWwgU2V0U3luKCJwY2FwIik8Q1I+Ci1hbiA1MC44MC4zMzAgJlN5bnRheC5QUS5Qcm9jbWFpbCA6Y2FsIFNldFN5bigicHJvY21haWwiKTxDUj4KLWFuIDUwLjgwLjM0MCAmU3ludGF4LlBRLlByb2R1Y3RcIFNwZWNcIEZpbGUgOmNhbCBTZXRTeW4oInBzZiIpPENSPgotYW4gNTAuODAuMzUwICZTeW50YXguUFEuUHJvZ3Jlc3MgOmNhbCBTZXRTeW4oInByb2dyZXNzIik8Q1I+Ci1hbiA1MC44MC4zNjAgJlN5bnRheC5QUS5Qcm9sb2cgOmNhbCBTZXRTeW4oInByb2xvZyIpPENSPgotYW4gNTAuODAuMzcwICZTeW50YXguUFEuUHVyaWZ5XCBsb2cgOmNhbCBTZXRTeW4oInB1cmlmeWxvZyIpPENSPgotYW4gNTAuODAuMzgwICZTeW50YXguUFEuUHlyZXggOmNhbCBTZXRTeW4oInB5cmV4Iik8Q1I+Ci1hbiA1MC44MC4zOTAgJlN5bnRheC5QUS5QeXRob24gOmNhbCBTZXRTeW4oInB5dGhvbiIpPENSPgotYW4gNTAuODAuNDEwICZTeW50YXguUFEuUXVha2UgOmNhbCBTZXRTeW4oInF1YWtlIik8Q1I+Ci1hbiA1MC44MC40MjAgJlN5bnRheC5QUS5RdWlja2ZpeFwgd2luZG93IDpjYWwgU2V0U3luKCJxZiIpPENSPgorYW4gNTAuNzAuMTMwICZTeW50YXguTWUtTk8uTUdMIDpjYWwgU2V0U3luKCJtZ2wiKTxDUj4KK2FuIDUwLjcwLjE0MCAmU3ludGF4Lk1lLU5PLk1NSVggOmNhbCBTZXRTeW4oIm1taXgiKTxDUj4KK2FuIDUwLjcwLjE1MCAmU3ludGF4Lk1lLU5PLk1vZGNvbmYgOmNhbCBTZXRTeW4oIm1vZGNvbmYiKTxDUj4KK2FuIDUwLjcwLjE2MCAmU3ludGF4Lk1lLU5PLk1vZGVsIDpjYWwgU2V0U3luKCJtb2RlbCIpPENSPgorYW4gNTAuNzAuMTcwICZTeW50YXguTWUtTk8uTW9kc2ltXCBJSUkgOmNhbCBTZXRTeW4oIm1vZHNpbTMiKTxDUj4KK2FuIDUwLjcwLjE4MCAmU3ludGF4Lk1lLU5PLk1vZHVsYVwgMiA6Y2FsIFNldFN5bigibW9kdWxhMiIpPENSPgorYW4gNTAuNzAuMTkwICZTeW50YXguTWUtTk8uTW9kdWxhXCAzIDpjYWwgU2V0U3luKCJtb2R1bGEzIik8Q1I+CithbiA1MC43MC4yMDAgJlN5bnRheC5NZS1OTy5Nb25rIDpjYWwgU2V0U3luKCJtb25rIik8Q1I+CithbiA1MC43MC4yMTAgJlN5bnRheC5NZS1OTy5NcGxheWVyXCBjb25maWcgOmNhbCBTZXRTeW4oIm1wbGF5ZXJjb25mIik8Q1I+CithbiA1MC43MC4yMjAgJlN5bnRheC5NZS1OTy5NT08gOmNhbCBTZXRTeW4oIm1vbyIpPENSPgorYW4gNTAuNzAuMjMwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuNERPU1wgXC5iYXRcIGZpbGUgOmNhbCBTZXRTeW4oImJ0bSIpPENSPgorYW4gNTAuNzAuMjQwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuXC5iYXRcL1wuY21kXCBmaWxlIDpjYWwgU2V0U3luKCJkb3NiYXRjaCIpPENSPgorYW4gNTAuNzAuMjUwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuXC5pbmlcIGZpbGUgOmNhbCBTZXRTeW4oImRvc2luaSIpPENSPgorYW4gNTAuNzAuMjYwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuTW9kdWxlXCBEZWZpbml0aW9uIDpjYWwgU2V0U3luKCJkZWYiKTxDUj4KK2FuIDUwLjcwLjI3MCAmU3ludGF4Lk1lLU5PLk1TLURPUy9XaW5kb3dzLlJlZ2lzdHJ5IDpjYWwgU2V0U3luKCJyZWdpc3RyeSIpPENSPgorYW4gNTAuNzAuMjgwICZTeW50YXguTWUtTk8uTVMtRE9TL1dpbmRvd3MuUmVzb3VyY2VcIGZpbGUgOmNhbCBTZXRTeW4oInJjIik8Q1I+CithbiA1MC43MC4yOTAgJlN5bnRheC5NZS1OTy5Nc3FsIDpjYWwgU2V0U3luKCJtc3FsIik8Q1I+CithbiA1MC43MC4zMDAgJlN5bnRheC5NZS1OTy5NdVBBRCA6Y2FsIFNldFN5bigibXVwYWQiKTxDUj4KK2FuIDUwLjcwLjMxMCAmU3ludGF4Lk1lLU5PLk1VU0hjb2RlIDpjYWwgU2V0U3luKCJtdXNoIik8Q1I+CithbiA1MC43MC4zMjAgJlN5bnRheC5NZS1OTy5NdXR0cmMgOmNhbCBTZXRTeW4oIm11dHRyYyIpPENSPgorYW4gNTAuNzAuMzQwICZTeW50YXguTWUtTk8uTmFub3JjIDpjYWwgU2V0U3luKCJuYW5vcmMiKTxDUj4KK2FuIDUwLjcwLjM1MCAmU3ludGF4Lk1lLU5PLk5hc3RyYW5cIGlucHV0L0RNQVAgOmNhbCBTZXRTeW4oIm5hc3RyYW4iKTxDUj4KK2FuIDUwLjcwLjM2MCAmU3ludGF4Lk1lLU5PLk5hdHVyYWwgOmNhbCBTZXRTeW4oIm5hdHVyYWwiKTxDUj4KK2FuIDUwLjcwLjM3MCAmU3ludGF4Lk1lLU5PLk5ldHJjIDpjYWwgU2V0U3luKCJuZXRyYyIpPENSPgorYW4gNTAuNzAuMzgwICZTeW50YXguTWUtTk8uTm92ZWxsXCBOQ0ZcIGJhdGNoIDpjYWwgU2V0U3luKCJuY2YiKTxDUj4KK2FuIDUwLjcwLjM5MCAmU3ludGF4Lk1lLU5PLk5vdFwgUXVpdGVcIENcIChMRUdPKSA6Y2FsIFNldFN5bigibnFjIik8Q1I+CithbiA1MC43MC40MDAgJlN5bnRheC5NZS1OTy5Ocm9mZiA6Y2FsIFNldFN5bigibnJvZmYiKTxDUj4KK2FuIDUwLjcwLjQxMCAmU3ludGF4Lk1lLU5PLk5TSVNcIHNjcmlwdCA6Y2FsIFNldFN5bigibnNpcyIpPENSPgorYW4gNTAuNzAuNDMwICZTeW50YXguTWUtTk8uT2JqZWN0aXZlXCBDIDpjYWwgU2V0U3luKCJvYmpjIik8Q1I+CithbiA1MC43MC40NDAgJlN5bnRheC5NZS1OTy5PYmplY3RpdmVcIEMrKyA6Y2FsIFNldFN5bigib2JqY3BwIik8Q1I+CithbiA1MC43MC40NTAgJlN5bnRheC5NZS1OTy5PQ0FNTCA6Y2FsIFNldFN5bigib2NhbWwiKTxDUj4KK2FuIDUwLjcwLjQ2MCAmU3ludGF4Lk1lLU5PLk9jY2FtIDpjYWwgU2V0U3luKCJvY2NhbSIpPENSPgorYW4gNTAuNzAuNDcwICZTeW50YXguTWUtTk8uT21uaW1hcmsgOmNhbCBTZXRTeW4oIm9tbmltYXJrIik8Q1I+CithbiA1MC43MC40ODAgJlN5bnRheC5NZS1OTy5PcGVuUk9BRCA6Y2FsIFNldFN5bigib3BlbnJvYWQiKTxDUj4KK2FuIDUwLjcwLjQ5MCAmU3ludGF4Lk1lLU5PLk9wZW5cIFBzaW9uXCBMYW5nIDpjYWwgU2V0U3luKCJvcGwiKTxDUj4KK2FuIDUwLjcwLjUwMCAmU3ludGF4Lk1lLU5PLk9yYWNsZVwgY29uZmlnIDpjYWwgU2V0U3luKCJvcmEiKTxDUj4KK2FuIDUwLjgwLjEwMCAmU3ludGF4LlBRLlBhY2tldFwgZmlsdGVyXCBjb25mIDpjYWwgU2V0U3luKCJwZiIpPENSPgorYW4gNTAuODAuMTEwICZTeW50YXguUFEuUGFsbVwgcmVzb3VyY2VcIGNvbXBpbGVyIDpjYWwgU2V0U3luKCJwaWxyYyIpPENSPgorYW4gNTAuODAuMTIwICZTeW50YXguUFEuUGFtXCBjb25maWcgOmNhbCBTZXRTeW4oInBhbWNvbmYiKTxDUj4KK2FuIDUwLjgwLjEzMCAmU3ludGF4LlBRLlBBcHAgOmNhbCBTZXRTeW4oInBhcHAiKTxDUj4KK2FuIDUwLjgwLjE0MCAmU3ludGF4LlBRLlBhc2NhbCA6Y2FsIFNldFN5bigicGFzY2FsIik8Q1I+CithbiA1MC44MC4xNTAgJlN5bnRheC5QUS5QYXNzd29yZFwgZmlsZSA6Y2FsIFNldFN5bigicGFzc3dkIik8Q1I+CithbiA1MC44MC4xNjAgJlN5bnRheC5QUS5QQ0NUUyA6Y2FsIFNldFN5bigicGNjdHMiKTxDUj4KK2FuIDUwLjgwLjE3MCAmU3ludGF4LlBRLlBQV2l6YXJkIDpjYWwgU2V0U3luKCJwcHdpeiIpPENSPgorYW4gNTAuODAuMTgwICZTeW50YXguUFEuUGVybC5QZXJsIDpjYWwgU2V0U3luKCJwZXJsIik8Q1I+CithbiA1MC44MC4xOTAgJlN5bnRheC5QUS5QZXJsLlBlcmxcIFBPRCA6Y2FsIFNldFN5bigicG9kIik8Q1I+CithbiA1MC44MC4yMDAgJlN5bnRheC5QUS5QZXJsLlBlcmxcIFhTIDpjYWwgU2V0U3luKCJ4cyIpPENSPgorYW4gNTAuODAuMjEwICZTeW50YXguUFEuUEhQLlBIUFwgMy00IDpjYWwgU2V0U3luKCJwaHAiKTxDUj4KK2FuIDUwLjgwLjIyMCAmU3ludGF4LlBRLlBIUC5QaHRtbFwgKFBIUFwgMikgOmNhbCBTZXRTeW4oInBodG1sIik8Q1I+CithbiA1MC44MC4yMzAgJlN5bnRheC5QUS5QaWtlIDpjYWwgU2V0U3luKCJwaWtlIik8Q1I+CithbiA1MC44MC4yNDAgJlN5bnRheC5QUS5QaW5lXCBSQyA6Y2FsIFNldFN5bigicGluZSIpPENSPgorYW4gNTAuODAuMjUwICZTeW50YXguUFEuUGluZm9cIFJDIDpjYWwgU2V0U3luKCJwaW5mbyIpPENSPgorYW4gNTAuODAuMjYwICZTeW50YXguUFEuUEwvTSA6Y2FsIFNldFN5bigicGxtIik8Q1I+CithbiA1MC44MC4yNzAgJlN5bnRheC5QUS5QTC9TUUwgOmNhbCBTZXRTeW4oInBsc3FsIik8Q1I+CithbiA1MC44MC4yODAgJlN5bnRheC5QUS5QTFAgOmNhbCBTZXRTeW4oInBscCIpPENSPgorYW4gNTAuODAuMjkwICZTeW50YXguUFEuUE9cIChHTlVcIGdldHRleHQpIDpjYWwgU2V0U3luKCJwbyIpPENSPgorYW4gNTAuODAuMzAwICZTeW50YXguUFEuUG9zdGZpeFwgbWFpblwgY29uZmlnIDpjYWwgU2V0U3luKCJwZm1haW4iKTxDUj4KK2FuIDUwLjgwLjMxMCAmU3ludGF4LlBRLlBvc3RTY3JpcHQuUG9zdFNjcmlwdCA6Y2FsIFNldFN5bigicG9zdHNjciIpPENSPgorYW4gNTAuODAuMzIwICZTeW50YXguUFEuUG9zdFNjcmlwdC5Qb3N0U2NyaXB0XCBQcmludGVyXCBEZXNjcmlwdGlvbiA6Y2FsIFNldFN5bigicHBkIik8Q1I+CithbiA1MC44MC4zMzAgJlN5bnRheC5QUS5Qb3ZyYXkuUG92cmF5XCBzY2VuZVwgZGVzY3IgOmNhbCBTZXRTeW4oInBvdiIpPENSPgorYW4gNTAuODAuMzQwICZTeW50YXguUFEuUG92cmF5LlBvdnJheVwgY29uZmlndXJhdGlvbiA6Y2FsIFNldFN5bigicG92aW5pIik8Q1I+CithbiA1MC44MC4zNTAgJlN5bnRheC5QUS5QcmVzY3JpYmVcIChLeW9jZXJhKSA6Y2FsIFNldFN5bigicHJlc2NyaWJlIik8Q1I+CithbiA1MC44MC4zNjAgJlN5bnRheC5QUS5QcmludGNhcCA6Y2FsIFNldFN5bigicGNhcCIpPENSPgorYW4gNTAuODAuMzcwICZTeW50YXguUFEuUHJvY21haWwgOmNhbCBTZXRTeW4oInByb2NtYWlsIik8Q1I+CithbiA1MC44MC4zODAgJlN5bnRheC5QUS5Qcm9kdWN0XCBTcGVjXCBGaWxlIDpjYWwgU2V0U3luKCJwc2YiKTxDUj4KK2FuIDUwLjgwLjM5MCAmU3ludGF4LlBRLlByb2dyZXNzIDpjYWwgU2V0U3luKCJwcm9ncmVzcyIpPENSPgorYW4gNTAuODAuNDAwICZTeW50YXguUFEuUHJvbG9nIDpjYWwgU2V0U3luKCJwcm9sb2ciKTxDUj4KK2FuIDUwLjgwLjQxMCAmU3ludGF4LlBRLlByb3RvY29scyA6Y2FsIFNldFN5bigicHJvdG9jb2xzIik8Q1I+CithbiA1MC44MC40MjAgJlN5bnRheC5QUS5QdXJpZnlcIGxvZyA6Y2FsIFNldFN5bigicHVyaWZ5bG9nIik8Q1I+CithbiA1MC44MC40MzAgJlN5bnRheC5QUS5QeXJleCA6Y2FsIFNldFN5bigicHlyZXgiKTxDUj4KK2FuIDUwLjgwLjQ0MCAmU3ludGF4LlBRLlB5dGhvbiA6Y2FsIFNldFN5bigicHl0aG9uIik8Q1I+CithbiA1MC44MC40NjAgJlN5bnRheC5QUS5RdWFrZSA6Y2FsIFNldFN5bigicXVha2UiKTxDUj4KK2FuIDUwLjgwLjQ3MCAmU3ludGF4LlBRLlF1aWNrZml4XCB3aW5kb3cgOmNhbCBTZXRTeW4oInFmIik8Q1I+CiBhbiA1MC45MC4xMDAgJlN5bnRheC5SLVNnLlIgOmNhbCBTZXRTeW4oInIiKTxDUj4KLWFuIDUwLjkwLjExMCAmU3ludGF4LlItU2cuUmFkaWFuY2UgOmNhbCBTZXRTeW4oInJhZGlhbmNlIik8Q1I+Ci1hbiA1MC45MC4xMjAgJlN5bnRheC5SLVNnLlJhdHBvaXNvbiA6Y2FsIFNldFN5bigicmF0cG9pc29uIik8Q1I+Ci1hbiA1MC45MC4xMzAgJlN5bnRheC5SLVNnLlJDUy5SQ1NcIGxvZ1wgb3V0cHV0IDpjYWwgU2V0U3luKCJyY3Nsb2ciKTxDUj4KLWFuIDUwLjkwLjE0MCAmU3ludGF4LlItU2cuUkNTLlJDU1wgZmlsZSA6Y2FsIFNldFN5bigicmNzIik8Q1I+Ci1hbiA1MC45MC4xNTAgJlN5bnRheC5SLVNnLlJlYWRsaW5lXCBjb25maWcgOmNhbCBTZXRTeW4oInJlYWRsaW5lIik8Q1I+Ci1hbiA1MC45MC4xNjAgJlN5bnRheC5SLVNnLlJlYm9sIDpjYWwgU2V0U3luKCJyZWJvbCIpPENSPgotYW4gNTAuOTAuMTcwICZTeW50YXguUi1TZy5SZW1pbmQgOmNhbCBTZXRTeW4oInJlbWluZCIpPENSPgotYW4gNTAuOTAuMTgwICZTeW50YXguUi1TZy5SZWxheFwgTkdcIGNvbXBhY3QgOmNhbCBTZXRTeW4oInJuYyIpPENSPgotYW4gNTAuOTAuMTkwICZTeW50YXguUi1TZy5SZW5kZXJtYW4uUmVuZGVybWFuXCBTaGFkZXJcIExhbmcgOmNhbCBTZXRTeW4oInNsIik8Q1I+Ci1hbiA1MC45MC4yMDAgJlN5bnRheC5SLVNnLlJlbmRlcm1hbi5SZW5kZXJtYW5cIEludGVyZmFjZVwgQnl0ZXN0cmVhbSA6Y2FsIFNldFN5bigicmliIik8Q1I+Ci1hbiA1MC45MC4yMTAgJlN5bnRheC5SLVNnLlJlc29sdlwuY29uZiA6Y2FsIFNldFN5bigicmVzb2x2Iik8Q1I+Ci1hbiA1MC45MC4yMjAgJlN5bnRheC5SLVNnLlJleHggOmNhbCBTZXRTeW4oInJleHgiKTxDUj4KLWFuIDUwLjkwLjIzMCAmU3ludGF4LlItU2cuUm9ib3RzXC50eHQgOmNhbCBTZXRTeW4oInJvYm90cyIpPENSPgotYW4gNTAuOTAuMjQwICZTeW50YXguUi1TZy5Sb2NrTGludXhcIHBhY2thZ2VcIGRlc2NcLiA6Y2FsIFNldFN5bigiZGVzYyIpPENSPgotYW4gNTAuOTAuMjUwICZTeW50YXguUi1TZy5ScGNnZW4gOmNhbCBTZXRTeW4oInJwY2dlbiIpPENSPgotYW4gNTAuOTAuMjYwICZTeW50YXguUi1TZy5SUEwvMiA6Y2FsIFNldFN5bigicnBsIik8Q1I+Ci1hbiA1MC45MC4yNzAgJlN5bnRheC5SLVNnLlJlU3RydWN0dXJlZFRleHQgOmNhbCBTZXRTeW4oInJzdCIpPENSPgotYW4gNTAuOTAuMjgwICZTeW50YXguUi1TZy5SVEYgOmNhbCBTZXRTeW4oInJ0ZiIpPENSPgotYW4gNTAuOTAuMjkwICZTeW50YXguUi1TZy5SdWJ5IDpjYWwgU2V0U3luKCJydWJ5Iik8Q1I+Ci1hbiA1MC45MC4zMTAgJlN5bnRheC5SLVNnLlMtTGFuZyA6Y2FsIFNldFN5bigic2xhbmciKTxDUj4KLWFuIDUwLjkwLjMyMCAmU3ludGF4LlItU2cuU2FtYmFcIGNvbmZpZyA6Y2FsIFNldFN5bigic2FtYmEiKTxDUj4KLWFuIDUwLjkwLjMzMCAmU3ludGF4LlItU2cuU0FTIDpjYWwgU2V0U3luKCJzYXMiKTxDUj4KLWFuIDUwLjkwLjM0MCAmU3ludGF4LlItU2cuU2F0aGVyIDpjYWwgU2V0U3luKCJzYXRoZXIiKTxDUj4KLWFuIDUwLjkwLjM1MCAmU3ludGF4LlItU2cuU2NoZW1lIDpjYWwgU2V0U3luKCJzY2hlbWUiKTxDUj4KLWFuIDUwLjkwLjM2MCAmU3ludGF4LlItU2cuU2NpbGFiIDpjYWwgU2V0U3luKCJzY2lsYWIiKTxDUj4KLWFuIDUwLjkwLjM3MCAmU3ludGF4LlItU2cuU2NyZWVuXCBSQyA6Y2FsIFNldFN5bigic2NyZWVuIik8Q1I+Ci1hbiA1MC45MC4zODAgJlN5bnRheC5SLVNnLlNETCA6Y2FsIFNldFN5bigic2RsIik8Q1I+Ci1hbiA1MC45MC4zOTAgJlN5bnRheC5SLVNnLlNlZCA6Y2FsIFNldFN5bigic2VkIik8Q1I+Ci1hbiA1MC45MC40MDAgJlN5bnRheC5SLVNnLlNlbmRtYWlsXC5jZiA6Y2FsIFNldFN5bigic20iKTxDUj4KLWFuIDUwLjkwLjQxMCAmU3ludGF4LlItU2cuU2VuZC1wciA6Y2FsIFNldFN5bigic2VuZHByIik8Q1I+Ci1hbiA1MC45MC40MjAgJlN5bnRheC5SLVNnLlNHTUwuU0dNTFwgY2F0YWxvZyA6Y2FsIFNldFN5bigiY2F0YWxvZyIpPENSPgotYW4gNTAuOTAuNDMwICZTeW50YXguUi1TZy5TR01MLlNHTUxcIERURCA6Y2FsIFNldFN5bigic2dtbCIpPENSPgotYW4gNTAuOTAuNDQwICZTeW50YXguUi1TZy5TR01MLlNHTUxcIERlY2xhcmF0aW9uIDpjYWwgU2V0U3luKCJzZ21sZGVjbCIpPENSPgotYW4gNTAuOTAuNDUwICZTeW50YXguUi1TZy5TR01MLlNHTUwtbGludXhkb2MgOmNhbCBTZXRTeW4oInNnbWxsbngiKTxDUj4KK2FuIDUwLjkwLjExMCAmU3ludGF4LlItU2cuUlwgaGVscCA6Y2FsIFNldFN5bigicmhlbHAiKTxDUj4KK2FuIDUwLjkwLjEyMCAmU3ludGF4LlItU2cuUmFjY1wgaW5wdXQgOmNhbCBTZXRTeW4oInJhY2MiKTxDUj4KK2FuIDUwLjkwLjEzMCAmU3ludGF4LlItU2cuUmFkaWFuY2UgOmNhbCBTZXRTeW4oInJhZGlhbmNlIik8Q1I+CithbiA1MC45MC4xNDAgJlN5bnRheC5SLVNnLlJhdHBvaXNvbiA6Y2FsIFNldFN5bigicmF0cG9pc29uIik8Q1I+CithbiA1MC45MC4xNTAgJlN5bnRheC5SLVNnLlJDUy5SQ1NcIGxvZ1wgb3V0cHV0IDpjYWwgU2V0U3luKCJyY3Nsb2ciKTxDUj4KK2FuIDUwLjkwLjE2MCAmU3ludGF4LlItU2cuUkNTLlJDU1wgZmlsZSA6Y2FsIFNldFN5bigicmNzIik8Q1I+CithbiA1MC45MC4xNzAgJlN5bnRheC5SLVNnLlJlYWRsaW5lXCBjb25maWcgOmNhbCBTZXRTeW4oInJlYWRsaW5lIik8Q1I+CithbiA1MC45MC4xODAgJlN5bnRheC5SLVNnLlJlYm9sIDpjYWwgU2V0U3luKCJyZWJvbCIpPENSPgorYW4gNTAuOTAuMTkwICZTeW50YXguUi1TZy5SZW1pbmQgOmNhbCBTZXRTeW4oInJlbWluZCIpPENSPgorYW4gNTAuOTAuMjAwICZTeW50YXguUi1TZy5SZWxheFwgTkdcIGNvbXBhY3QgOmNhbCBTZXRTeW4oInJuYyIpPENSPgorYW4gNTAuOTAuMjEwICZTeW50YXguUi1TZy5SZW5kZXJtYW4uUmVuZGVybWFuXCBTaGFkZXJcIExhbmcgOmNhbCBTZXRTeW4oInNsIik8Q1I+CithbiA1MC45MC4yMjAgJlN5bnRheC5SLVNnLlJlbmRlcm1hbi5SZW5kZXJtYW5cIEludGVyZmFjZVwgQnl0ZXN0cmVhbSA6Y2FsIFNldFN5bigicmliIik8Q1I+CithbiA1MC45MC4yMzAgJlN5bnRheC5SLVNnLlJlc29sdlwuY29uZiA6Y2FsIFNldFN5bigicmVzb2x2Iik8Q1I+CithbiA1MC45MC4yNDAgJlN5bnRheC5SLVNnLlJleHggOmNhbCBTZXRTeW4oInJleHgiKTxDUj4KK2FuIDUwLjkwLjI1MCAmU3ludGF4LlItU2cuUm9ib3RzXC50eHQgOmNhbCBTZXRTeW4oInJvYm90cyIpPENSPgorYW4gNTAuOTAuMjYwICZTeW50YXguUi1TZy5Sb2NrTGludXhcIHBhY2thZ2VcIGRlc2NcLiA6Y2FsIFNldFN5bigiZGVzYyIpPENSPgorYW4gNTAuOTAuMjcwICZTeW50YXguUi1TZy5ScGNnZW4gOmNhbCBTZXRTeW4oInJwY2dlbiIpPENSPgorYW4gNTAuOTAuMjgwICZTeW50YXguUi1TZy5SUEwvMiA6Y2FsIFNldFN5bigicnBsIik8Q1I+CithbiA1MC45MC4yOTAgJlN5bnRheC5SLVNnLlJlU3RydWN0dXJlZFRleHQgOmNhbCBTZXRTeW4oInJzdCIpPENSPgorYW4gNTAuOTAuMzAwICZTeW50YXguUi1TZy5SVEYgOmNhbCBTZXRTeW4oInJ0ZiIpPENSPgorYW4gNTAuOTAuMzEwICZTeW50YXguUi1TZy5SdWJ5IDpjYWwgU2V0U3luKCJydWJ5Iik8Q1I+CithbiA1MC45MC4zMzAgJlN5bnRheC5SLVNnLlMtTGFuZyA6Y2FsIFNldFN5bigic2xhbmciKTxDUj4KK2FuIDUwLjkwLjM0MCAmU3ludGF4LlItU2cuU2FtYmFcIGNvbmZpZyA6Y2FsIFNldFN5bigic2FtYmEiKTxDUj4KK2FuIDUwLjkwLjM1MCAmU3ludGF4LlItU2cuU0FTIDpjYWwgU2V0U3luKCJzYXMiKTxDUj4KK2FuIDUwLjkwLjM2MCAmU3ludGF4LlItU2cuU2F0aGVyIDpjYWwgU2V0U3luKCJzYXRoZXIiKTxDUj4KK2FuIDUwLjkwLjM3MCAmU3ludGF4LlItU2cuU2NoZW1lIDpjYWwgU2V0U3luKCJzY2hlbWUiKTxDUj4KK2FuIDUwLjkwLjM4MCAmU3ludGF4LlItU2cuU2NpbGFiIDpjYWwgU2V0U3luKCJzY2lsYWIiKTxDUj4KK2FuIDUwLjkwLjM5MCAmU3ludGF4LlItU2cuU2NyZWVuXCBSQyA6Y2FsIFNldFN5bigic2NyZWVuIik8Q1I+CithbiA1MC45MC40MDAgJlN5bnRheC5SLVNnLlNETCA6Y2FsIFNldFN5bigic2RsIik8Q1I+CithbiA1MC45MC40MTAgJlN5bnRheC5SLVNnLlNlZCA6Y2FsIFNldFN5bigic2VkIik8Q1I+CithbiA1MC45MC40MjAgJlN5bnRheC5SLVNnLlNlbmRtYWlsXC5jZiA6Y2FsIFNldFN5bigic20iKTxDUj4KK2FuIDUwLjkwLjQzMCAmU3ludGF4LlItU2cuU2VuZC1wciA6Y2FsIFNldFN5bigic2VuZHByIik8Q1I+CithbiA1MC45MC40NDAgJlN5bnRheC5SLVNnLlNlbnNvcnNcLmNvbmYgOmNhbCBTZXRTeW4oInNlbnNvcnMiKTxDUj4KK2FuIDUwLjkwLjQ1MCAmU3ludGF4LlItU2cuU2VydmljZVwgTG9jYXRpb25cIGNvbmZpZyA6Y2FsIFNldFN5bigic2xwY29uZiIpPENSPgorYW4gNTAuOTAuNDYwICZTeW50YXguUi1TZy5TZXJ2aWNlXCBMb2NhdGlvblwgcmVnaXN0cmF0aW9uIDpjYWwgU2V0U3luKCJzbHByZWciKTxDUj4KK2FuIDUwLjkwLjQ3MCAmU3ludGF4LlItU2cuU2VydmljZVwgTG9jYXRpb25cIFNQSSA6Y2FsIFNldFN5bigic2xwc3BpIik8Q1I+CithbiA1MC45MC40ODAgJlN5bnRheC5SLVNnLlNlcnZpY2VzIDpjYWwgU2V0U3luKCJzZXJ2aWNlcyIpPENSPgorYW4gNTAuOTAuNDkwICZTeW50YXguUi1TZy5TZXRzZXJpYWxcIGNvbmZpZyA6Y2FsIFNldFN5bigic2V0c2VyaWFsIik8Q1I+CithbiA1MC45MC41MDAgJlN5bnRheC5SLVNnLlNHTUwuU0dNTFwgY2F0YWxvZyA6Y2FsIFNldFN5bigiY2F0YWxvZyIpPENSPgorYW4gNTAuOTAuNTEwICZTeW50YXguUi1TZy5TR01MLlNHTUxcIERURCA6Y2FsIFNldFN5bigic2dtbCIpPENSPgorYW4gNTAuOTAuNTIwICZTeW50YXguUi1TZy5TR01MLlNHTUxcIERlY2xhcmF0aW9uIDpjYWwgU2V0U3luKCJzZ21sZGVjbCIpPENSPgorYW4gNTAuOTAuNTMwICZTeW50YXguUi1TZy5TR01MLlNHTUwtbGludXhkb2MgOmNhbCBTZXRTeW4oInNnbWxsbngiKTxDUj4KIGFuIDUwLjEwMC4xMDAgJlN5bnRheC5TaC1TLlNoZWxsXCBzY3JpcHQuc2hcIGFuZFwga3NoIDpjYWwgU2V0U3luKCJzaCIpPENSPgogYW4gNTAuMTAwLjExMCAmU3ludGF4LlNoLVMuU2hlbGxcIHNjcmlwdC5jc2ggOmNhbCBTZXRTeW4oImNzaCIpPENSPgogYW4gNTAuMTAwLjEyMCAmU3ludGF4LlNoLVMuU2hlbGxcIHNjcmlwdC50Y3NoIDpjYWwgU2V0U3luKCJ0Y3NoIik8Q1I+CkBAIC0zNjcsMTcgKzQwNSwyMSBAQAogYW4gNTAuMTAwLjQyMCAmU3ludGF4LlNoLVMuU1FMLkVTUUwtQyA6Y2FsIFNldFN5bigiZXNxbGMiKTxDUj4KIGFuIDUwLjEwMC40MzAgJlN5bnRheC5TaC1TLlNRTC5NeVNRTCA6Y2FsIFNldFN5bigibXlzcWwiKTxDUj4KIGFuIDUwLjEwMC40NDAgJlN5bnRheC5TaC1TLlNRTC5QTC9TUUwgOmNhbCBTZXRTeW4oInBsc3FsIik8Q1I+Ci1hbiA1MC4xMDAuNDUwICZTeW50YXguU2gtUy5TUUwuU1FMXCAoT3JhY2xlKSA6Y2FsIFNldFN5bigic3FsIik8Q1I+Ci1hbiA1MC4xMDAuNDYwICZTeW50YXguU2gtUy5TUUwuU1FMXCBGb3JtcyA6Y2FsIFNldFN5bigic3FsZm9ybXMiKTxDUj4KLWFuIDUwLjEwMC40NzAgJlN5bnRheC5TaC1TLlNRTC5TUUxKIDpjYWwgU2V0U3luKCJzcWxqIik8Q1I+Ci1hbiA1MC4xMDAuNDgwICZTeW50YXguU2gtUy5TUUwuU1FMLUluZm9ybWl4IDpjYWwgU2V0U3luKCJzcWxpbmZvcm1peCIpPENSPgotYW4gNTAuMTAwLjQ5MCAmU3ludGF4LlNoLVMuU1FSIDpjYWwgU2V0U3luKCJzcXIiKTxDUj4KLWFuIDUwLjEwMC41MDAgJlN5bnRheC5TaC1TLlNzaC5zc2hfY29uZmlnIDpjYWwgU2V0U3luKCJzc2hjb25maWciKTxDUj4KLWFuIDUwLjEwMC41MTAgJlN5bnRheC5TaC1TLlNzaC5zc2hkX2NvbmZpZyA6Y2FsIFNldFN5bigic3NoZGNvbmZpZyIpPENSPgotYW4gNTAuMTAwLjUyMCAmU3ludGF4LlNoLVMuU3RhbmRhcmRcIE1MIDpjYWwgU2V0U3luKCJzbWwiKTxDUj4KLWFuIDUwLjEwMC41MzAgJlN5bnRheC5TaC1TLlN0b3JlZFwgUHJvY2VkdXJlcyA6Y2FsIFNldFN5bigic3RwIik8Q1I+Ci1hbiA1MC4xMDAuNTQwICZTeW50YXguU2gtUy5TdHJhY2UgOmNhbCBTZXRTeW4oInN0cmFjZSIpPENSPgotYW4gNTAuMTAwLjU1MCAmU3ludGF4LlNoLVMuU3VidmVyc2lvblwgY29tbWl0IDpjYWwgU2V0U3luKCJzdm4iKTxDUj4KK2FuIDUwLjEwMC40NTAgJlN5bnRheC5TaC1TLlNRTC5TUUxcIEFueXdoZXJlIDpjYWwgU2V0U3luKCJzcWxhbnl3aGVyZSIpPENSPgorYW4gNTAuMTAwLjQ2MCAmU3ludGF4LlNoLVMuU1FMLlNRTFwgKGF1dG9tYXRpYykgOmNhbCBTZXRTeW4oInNxbCIpPENSPgorYW4gNTAuMTAwLjQ3MCAmU3ludGF4LlNoLVMuU1FMLlNRTFwgKE9yYWNsZSkgOmNhbCBTZXRTeW4oInNxbG9yYWNsZSIpPENSPgorYW4gNTAuMTAwLjQ4MCAmU3ludGF4LlNoLVMuU1FMLlNRTFwgRm9ybXMgOmNhbCBTZXRTeW4oInNxbGZvcm1zIik8Q1I+CithbiA1MC4xMDAuNDkwICZTeW50YXguU2gtUy5TUUwuU1FMSiA6Y2FsIFNldFN5bigic3FsaiIpPENSPgorYW4gNTAuMTAwLjUwMCAmU3ludGF4LlNoLVMuU1FMLlNRTC1JbmZvcm1peCA6Y2FsIFNldFN5bigic3FsaW5mb3JtaXgiKTxDUj4KK2FuIDUwLjEwMC41MTAgJlN5bnRheC5TaC1TLlNRUiA6Y2FsIFNldFN5bigic3FyIik8Q1I+CithbiA1MC4xMDAuNTIwICZTeW50YXguU2gtUy5Tc2guc3NoX2NvbmZpZyA6Y2FsIFNldFN5bigic3NoY29uZmlnIik8Q1I+CithbiA1MC4xMDAuNTMwICZTeW50YXguU2gtUy5Tc2guc3NoZF9jb25maWcgOmNhbCBTZXRTeW4oInNzaGRjb25maWciKTxDUj4KK2FuIDUwLjEwMC41NDAgJlN5bnRheC5TaC1TLlN0YW5kYXJkXCBNTCA6Y2FsIFNldFN5bigic21sIik8Q1I+CithbiA1MC4xMDAuNTUwICZTeW50YXguU2gtUy5TdG9yZWRcIFByb2NlZHVyZXMgOmNhbCBTZXRTeW4oInN0cCIpPENSPgorYW4gNTAuMTAwLjU2MCAmU3ludGF4LlNoLVMuU3RyYWNlIDpjYWwgU2V0U3luKCJzdHJhY2UiKTxDUj4KK2FuIDUwLjEwMC41NzAgJlN5bnRheC5TaC1TLlN1YnZlcnNpb25cIGNvbW1pdCA6Y2FsIFNldFN5bigic3ZuIik8Q1I+CithbiA1MC4xMDAuNTgwICZTeW50YXguU2gtUy5TdWRvZXJzIDpjYWwgU2V0U3luKCJzdWRvZXJzIik8Q1I+CithbiA1MC4xMDAuNTkwICZTeW50YXguU2gtUy5TeXNjdGxcLmNvbmYgOmNhbCBTZXRTeW4oInN5c2N0bCIpPENSPgogYW4gNTAuMTEwLjEwMCAmU3ludGF4LlRVVi5UQURTIDpjYWwgU2V0U3luKCJ0YWRzIik8Q1I+CiBhbiA1MC4xMTAuMTEwICZTeW50YXguVFVWLlRhZ3MgOmNhbCBTZXRTeW4oInRhZ3MiKTxDUj4KIGFuIDUwLjExMC4xMjAgJlN5bnRheC5UVVYuVEFLLlRBS1wgY29tcGFyZSA6Y2FsIFNldFN5bigidGFrY21wIik8Q1I+CkBAIC0zOTYsMjIgKzQzOCwyOCBAQAogYW4gNTAuMTEwLjI1MCAmU3ludGF4LlRVVi5UaWxkZSA6Y2FsIFNldFN5bigidGlsZGUiKTxDUj4KIGFuIDUwLjExMC4yNjAgJlN5bnRheC5UVVYuVFBQIDpjYWwgU2V0U3luKCJ0cHAiKTxDUj4KIGFuIDUwLjExMC4yNzAgJlN5bnRheC5UVVYuVHJhc3lzXCBpbnB1dCA6Y2FsIFNldFN5bigidHJhc3lzIik8Q1I+Ci1hbiA1MC4xMTAuMjgwICZTeW50YXguVFVWLlRTUy5Db21tYW5kXCBMaW5lIDpjYWwgU2V0U3luKCJ0c3NjbCIpPENSPgotYW4gNTAuMTEwLjI5MCAmU3ludGF4LlRVVi5UU1MuR2VvbWV0cnkgOmNhbCBTZXRTeW4oInRzc2dtIik8Q1I+Ci1hbiA1MC4xMTAuMzAwICZTeW50YXguVFVWLlRTUy5PcHRpY3MgOmNhbCBTZXRTeW4oInRzc29wIik8Q1I+Ci1hbiA1MC4xMTAuMzIwICZTeW50YXguVFVWLlVJVC9VSUwgOmNhbCBTZXRTeW4oInVpbCIpPENSPgotYW4gNTAuMTEwLjMzMCAmU3ludGF4LlRVVi5VbnJlYWxTY3JpcHQgOmNhbCBTZXRTeW4oInVjIik8Q1I+Ci1hbiA1MC4xMTAuMzUwICZTeW50YXguVFVWLlZhbGdyaW5kIDpjYWwgU2V0U3luKCJ2YWxncmluZCIpPENSPgotYW4gNTAuMTEwLjM2MCAmU3ludGF4LlRVVi5WZXJpbG9nXCBIREwgOmNhbCBTZXRTeW4oInZlcmlsb2ciKTxDUj4KLWFuIDUwLjExMC4zNzAgJlN5bnRheC5UVVYuVmdyaW5kZWZzIDpjYWwgU2V0U3luKCJ2Z3JpbmRlZnMiKTxDUj4KLWFuIDUwLjExMC4zODAgJlN5bnRheC5UVVYuVkhETCA6Y2FsIFNldFN5bigidmhkbCIpPENSPgotYW4gNTAuMTEwLjM5MCAmU3ludGF4LlRVVi5WaW0uVmltXCBoZWxwXCBmaWxlIDpjYWwgU2V0U3luKCJoZWxwIik8Q1I+Ci1hbiA1MC4xMTAuNDAwICZTeW50YXguVFVWLlZpbS5WaW1cIHNjcmlwdCA6Y2FsIFNldFN5bigidmltIik8Q1I+Ci1hbiA1MC4xMTAuNDEwICZTeW50YXguVFVWLlZpbS5WaW1pbmZvXCBmaWxlIDpjYWwgU2V0U3luKCJ2aW1pbmZvIik8Q1I+Ci1hbiA1MC4xMTAuNDIwICZTeW50YXguVFVWLlZpcmF0YVwgY29uZmlnIDpjYWwgU2V0U3luKCJ2aXJhdGEiKTxDUj4KLWFuIDUwLjExMC40MzAgJlN5bnRheC5UVVYuVmlzdWFsXCBCYXNpYyA6Y2FsIFNldFN5bigidmIiKTxDUj4KLWFuIDUwLjExMC40NDAgJlN5bnRheC5UVVYuVlJNTCA6Y2FsIFNldFN5bigidnJtbCIpPENSPgotYW4gNTAuMTEwLjQ1MCAmU3ludGF4LlRVVi5WU0VcIEpDTCA6Y2FsIFNldFN5bigidnNlamNsIik8Q1I+CithbiA1MC4xMTAuMjgwICZTeW50YXguVFVWLlRydXN0ZWVzIDpjYWwgU2V0U3luKCJ0cnVzdGVlcyIpPENSPgorYW4gNTAuMTEwLjI5MCAmU3ludGF4LlRVVi5UU1MuQ29tbWFuZFwgTGluZSA6Y2FsIFNldFN5bigidHNzY2wiKTxDUj4KK2FuIDUwLjExMC4zMDAgJlN5bnRheC5UVVYuVFNTLkdlb21ldHJ5IDpjYWwgU2V0U3luKCJ0c3NnbSIpPENSPgorYW4gNTAuMTEwLjMxMCAmU3ludGF4LlRVVi5UU1MuT3B0aWNzIDpjYWwgU2V0U3luKCJ0c3NvcCIpPENSPgorYW4gNTAuMTEwLjMzMCAmU3ludGF4LlRVVi5VZGV2XCBjb25maWcgOmNhbCBTZXRTeW4oInVkZXZjb25mIik8Q1I+CithbiA1MC4xMTAuMzQwICZTeW50YXguVFVWLlVkZXZcIHBlcm1pc3Npb25zIDpjYWwgU2V0U3luKCJ1ZGV2cGVybSIpPENSPgorYW4gNTAuMTEwLjM1MCAmU3ludGF4LlRVVi5VZGV2XCBydWxlcyA6Y2FsIFNldFN5bigidWRldnJ1bGVzIik8Q1I+CithbiA1MC4xMTAuMzYwICZTeW50YXguVFVWLlVJVC9VSUwgOmNhbCBTZXRTeW4oInVpbCIpPENSPgorYW4gNTAuMTEwLjM3MCAmU3ludGF4LlRVVi5VbnJlYWxTY3JpcHQgOmNhbCBTZXRTeW4oInVjIik8Q1I+CithbiA1MC4xMTAuMzgwICZTeW50YXguVFVWLlVwZGF0ZWRiXC5jb25mIDpjYWwgU2V0U3luKCJ1cGRhdGVkYiIpPENSPgorYW4gNTAuMTEwLjQwMCAmU3ludGF4LlRVVi5WYWxncmluZCA6Y2FsIFNldFN5bigidmFsZ3JpbmQiKTxDUj4KK2FuIDUwLjExMC40MTAgJlN5bnRheC5UVVYuVmVyaWxvZy1BTVNcIEhETCA6Y2FsIFNldFN5bigidmVyaWxvZ2FtcyIpPENSPgorYW4gNTAuMTEwLjQyMCAmU3ludGF4LlRVVi5WZXJpbG9nXCBIREwgOmNhbCBTZXRTeW4oInZlcmlsb2ciKTxDUj4KK2FuIDUwLjExMC40MzAgJlN5bnRheC5UVVYuVmdyaW5kZWZzIDpjYWwgU2V0U3luKCJ2Z3JpbmRlZnMiKTxDUj4KK2FuIDUwLjExMC40NDAgJlN5bnRheC5UVVYuVkhETCA6Y2FsIFNldFN5bigidmhkbCIpPENSPgorYW4gNTAuMTEwLjQ1MCAmU3ludGF4LlRVVi5WaW0uVmltXCBoZWxwXCBmaWxlIDpjYWwgU2V0U3luKCJoZWxwIik8Q1I+CithbiA1MC4xMTAuNDYwICZTeW50YXguVFVWLlZpbS5WaW1cIHNjcmlwdCA6Y2FsIFNldFN5bigidmltIik8Q1I+CithbiA1MC4xMTAuNDcwICZTeW50YXguVFVWLlZpbS5WaW1pbmZvXCBmaWxlIDpjYWwgU2V0U3luKCJ2aW1pbmZvIik8Q1I+CithbiA1MC4xMTAuNDgwICZTeW50YXguVFVWLlZpcmF0YVwgY29uZmlnIDpjYWwgU2V0U3luKCJ2aXJhdGEiKTxDUj4KK2FuIDUwLjExMC40OTAgJlN5bnRheC5UVVYuVmlzdWFsXCBCYXNpYyA6Y2FsIFNldFN5bigidmIiKTxDUj4KK2FuIDUwLjExMC41MDAgJlN5bnRheC5UVVYuVlJNTCA6Y2FsIFNldFN5bigidnJtbCIpPENSPgorYW4gNTAuMTEwLjUxMCAmU3ludGF4LlRVVi5WU0VcIEpDTCA6Y2FsIFNldFN5bigidnNlamNsIik8Q1I+CiBhbiA1MC4xMjAuMTAwICZTeW50YXguV1hZWi5XRUIuQ1dFQiA6Y2FsIFNldFN5bigiY3dlYiIpPENSPgogYW4gNTAuMTIwLjExMCAmU3ludGF4LldYWVouV0VCLldFQiA6Y2FsIFNldFN5bigid2ViIik8Q1I+CiBhbiA1MC4xMjAuMTIwICZTeW50YXguV1hZWi5XRUIuV0VCXCBDaGFuZ2VzIDpjYWwgU2V0U3luKCJjaGFuZ2UiKTxDUj4KQEAgLTQyMywxOSArNDcxLDIyIEBACiBhbiA1MC4xMjAuMjAwICZTeW50YXguV1hZWi5XaWxkUGFja2V0c1wgRXRoZXJQZWVrXCBEZWNvZGVyIDpjYWwgU2V0U3luKCJkY2QiKTxDUj4KIGFuIDUwLjEyMC4yMTAgJlN5bnRheC5XWFlaLldpbkJhdGNoL1dlYmJhdGNoIDpjYWwgU2V0U3luKCJ3aW5iYXRjaCIpPENSPgogYW4gNTAuMTIwLjIyMCAmU3ludGF4LldYWVouV2luZG93c1wgU2NyaXB0aW5nXCBIb3N0IDpjYWwgU2V0U3luKCJ3c2giKTxDUj4KLWFuIDUwLjEyMC4yMzAgJlN5bnRheC5XWFlaLld2RGlhbCA6Y2FsIFNldFN5bigid3ZkaWFsIik8Q1I+Ci1hbiA1MC4xMjAuMjUwICZTeW50YXguV1hZWi5YXCBLZXlib2FyZFwgRXh0ZW5zaW9uIDpjYWwgU2V0U3luKCJ4a2IiKTxDUj4KLWFuIDUwLjEyMC4yNjAgJlN5bnRheC5XWFlaLlhcIFBpeG1hcCA6Y2FsIFNldFN5bigieHBtIik8Q1I+Ci1hbiA1MC4xMjAuMjcwICZTeW50YXguV1hZWi5YXCBQaXhtYXBcICgyKSA6Y2FsIFNldFN5bigieHBtMiIpPENSPgotYW4gNTAuMTIwLjI4MCAmU3ludGF4LldYWVouWFwgcmVzb3VyY2VzIDpjYWwgU2V0U3luKCJ4ZGVmYXVsdHMiKTxDUj4KLWFuIDUwLjEyMC4yOTAgJlN5bnRheC5XWFlaLlhtb2RtYXAgOmNhbCBTZXRTeW4oInhtb2RtYXAiKTxDUj4KLWFuIDUwLjEyMC4zMDAgJlN5bnRheC5XWFlaLlhtYXRoIDpjYWwgU2V0U3luKCJ4bWF0aCIpPENSPgotYW4gNTAuMTIwLjMxMCAmU3ludGF4LldYWVouWE1MIDpjYWwgU2V0U3luKCJ4bWwiKTxDUj4KLWFuIDUwLjEyMC4zMjAgJlN5bnRheC5XWFlaLlhNTFwgU2NoZW1hXCAoWFNEKSA6Y2FsIFNldFN5bigieHNkIik8Q1I+Ci1hbiA1MC4xMjAuMzMwICZTeW50YXguV1hZWi5Yc2x0IDpjYWwgU2V0U3luKCJ4c2x0Iik8Q1I+Ci1hbiA1MC4xMjAuMzQwICZTeW50YXguV1hZWi5YRnJlZTg2XCBDb25maWcgOmNhbCBTZXRTeW4oInhmODZjb25mIik8Q1I+Ci1hbiA1MC4xMjAuMzYwICZTeW50YXguV1hZWi5ZQU1MIDpjYWwgU2V0U3luKCJ5YW1sIik8Q1I+Ci1hbiA1MC4xMjAuMzcwICZTeW50YXguV1hZWi5ZYWNjIDpjYWwgU2V0U3luKCJ5YWNjIik8Q1I+CithbiA1MC4xMjAuMjMwICZTeW50YXguV1hZWi5XU01MIDpjYWwgU2V0U3luKCJ3c21sIik8Q1I+CithbiA1MC4xMjAuMjQwICZTeW50YXguV1hZWi5XdkRpYWwgOmNhbCBTZXRTeW4oInd2ZGlhbCIpPENSPgorYW4gNTAuMTIwLjI2MCAmU3ludGF4LldYWVouWFwgS2V5Ym9hcmRcIEV4dGVuc2lvbiA6Y2FsIFNldFN5bigieGtiIik8Q1I+CithbiA1MC4xMjAuMjcwICZTeW50YXguV1hZWi5YXCBQaXhtYXAgOmNhbCBTZXRTeW4oInhwbSIpPENSPgorYW4gNTAuMTIwLjI4MCAmU3ludGF4LldYWVouWFwgUGl4bWFwXCAoMikgOmNhbCBTZXRTeW4oInhwbTIiKTxDUj4KK2FuIDUwLjEyMC4yOTAgJlN5bnRheC5XWFlaLlhcIHJlc291cmNlcyA6Y2FsIFNldFN5bigieGRlZmF1bHRzIik8Q1I+CithbiA1MC4xMjAuMzAwICZTeW50YXguV1hZWi5YaW5ldGRcLmNvbmYgOmNhbCBTZXRTeW4oInhpbmV0ZCIpPENSPgorYW4gNTAuMTIwLjMxMCAmU3ludGF4LldYWVouWG1vZG1hcCA6Y2FsIFNldFN5bigieG1vZG1hcCIpPENSPgorYW4gNTAuMTIwLjMyMCAmU3ludGF4LldYWVouWG1hdGggOmNhbCBTZXRTeW4oInhtYXRoIik8Q1I+CithbiA1MC4xMjAuMzMwICZTeW50YXguV1hZWi5YTUwgOmNhbCBTZXRTeW4oInhtbCIpPENSPgorYW4gNTAuMTIwLjM0MCAmU3ludGF4LldYWVouWE1MXCBTY2hlbWFcIChYU0QpIDpjYWwgU2V0U3luKCJ4c2QiKTxDUj4KK2FuIDUwLjEyMC4zNTAgJlN5bnRheC5XWFlaLlhRdWVyeSA6Y2FsIFNldFN5bigieHF1ZXJ5Iik8Q1I+CithbiA1MC4xMjAuMzYwICZTeW50YXguV1hZWi5Yc2x0IDpjYWwgU2V0U3luKCJ4c2x0Iik8Q1I+CithbiA1MC4xMjAuMzcwICZTeW50YXguV1hZWi5YRnJlZTg2XCBDb25maWcgOmNhbCBTZXRTeW4oInhmODZjb25mIik8Q1I+CithbiA1MC4xMjAuMzkwICZTeW50YXguV1hZWi5ZQU1MIDpjYWwgU2V0U3luKCJ5YW1sIik8Q1I+CithbiA1MC4xMjAuNDAwICZTeW50YXguV1hZWi5ZYWNjIDpjYWwgU2V0U3luKCJ5YWNjIik8Q1I+CiAKICIgVGhlIEVuZCBPZiBUaGUgU3ludGF4IE1lbnUKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvZ3Jvb3Z5LnZpbSBiL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5NmRmYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2dyb292eS52aW0KQEAgLTAsMCArMSw0NTAgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOglHcm9vdnkKKyIgTWFpbnRhaW5lcjoJQWxlc3NpbyBQYWNlIDxiaWxseS5jb3JnYW5AdGlzY2FsaS5pdD4KKyIgVmVyc2lvbjogCTAuMS45YgorIiBVUkw6CSAgaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9OTQ1CQorIiBMYXN0IENoYW5nZToJNi80LzIwMDQKKworIiBUaGlzIGlzIG15IHZlcnkgZmlyc3QgdmltIHNjcmlwdCwgSSBob3BlIHRvIGhhdmUKKyIgZG9uZSBpdCB0aGUgcmlnaHQgd2F5LgorIiAKKyIgSSBtdXN0IGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhhbmsgdGhlIGF1dGhvciBvZiBqYXZhLnZpbSBhbmQgcnVieS52aW06CisiIEkgY29waWVkIGZyb20gdGhlbSBtb3N0IG9mIHRoZSBzdHVmZiA6LSkKKyIKKyIgUmVsaWVzIG9uIGh0bWwudmltCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCisiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCisiCisiIEhPV1RPIFVTRSBJVCAoSU5TVEFMTCk6CisiIFtncm9vdnkgaXMgc3RpbGwgbm90IHJlY29nbml6ZWQgYnkgdmltISA6LSggXQorIgorIiAxKSBjb3B5IHRoZSBmaWxlIGluIHRoZSAoZ2xvYmFsIG9yIHVzZXIncyAkSE9NRS8udmltL3N5bnRheC8pIHN5bnRheCBmb2xkZXIKKyIgCisiIDIpIGFkZCB0aGlzIGxpbmUgdG8gcmVjb2duaXplIGdyb292eSBmaWxlcyBieSBmaWxlbmFtZSBleHRlbnNpb246CisiCisiIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmdyb292eSAgc2V0ZiBncm9vdnkKKyIgaW4gdGhlIGdsb2JhbCB2aW0gZmlsZXR5cGUudmltIGZpbGUgb3IgaW5zaWRlICRIT01FLy52aW0vZmlsZXR5cGUudmltCisiCisiIDMpIGFkZCB0aGlzIHBhcnQgdG8gcmVjb2duaXplIGJ5IGNvbnRlbnQgZ3Jvb3Z5IHNjcmlwdCAobm8gZXh0ZW5zaW9uIG5lZWRlZCA6LSkKKyIKKyIgIGlmIGRpZF9maWxldHlwZSgpCisiICAgIGZpbmlzaAorIiAgZW5kaWYKKyIgIGlmIGdldGxpbmUoMSkgPX4gJ14jIS4qWy9cXF1ncm9vdnlcPicKKyIgICAgc2V0ZiBncm9vdnkKKyIgIGVuZGlmCisiCisiICBpbiB0aGUgZ2xvYmFsIHNjcmlwdHMudmltIGZpbGUgb3IgaW4gJEhPTUUvLnZpbS9zY3JpcHRzLnZpbQorIiAKKyIgNCkgb3Blbi93cml0ZSBhIC5ncm9vdnkgZmlsZSBvciBhIGdyb292eSBzY3JpcHQgOi0pCisiCisiIExldCBtZSBrbm93IGlmIHlvdSBsaWtlIGl0IG9yIHNlbmQgbWUgcGF0Y2hlcywgc28gdGhhdCBJIGNhbiBpbXByb3ZlIGl0CisiIHdoZW4gSSBoYXZlIHRpbWUKKworIiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmICFleGlzdHMoIm1haW5fc3ludGF4IikKKyAgaWYgdmVyc2lvbiA8IDYwMAorICAgIHN5bnRheCBjbGVhcgorICBlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKKyAgZW5kaWYKKyAgIiB3ZSBkZWZpbmUgaXQgaGVyZSBzbyB0aGF0IGluY2x1ZGVkIGZpbGVzIGNhbiB0ZXN0IGZvciBpdAorICBsZXQgbWFpbl9zeW50YXg9J2dyb292eScKK2VuZGlmCisKKyIgZG9uJ3QgdXNlIHN0YW5kYXJkIEhpTGluaywgaXQgd2lsbCBub3Qgd29yayB3aXRoIGluY2x1ZGVkIHN5bnRheCBmaWxlcworaWYgdmVyc2lvbiA8IDUwOAorICBjb21tYW5kISAtbmFyZ3M9KyBHcm9vdnlIaUxpbmsgaGkgbGluayA8YXJncz4KK2Vsc2UKKyAgY29tbWFuZCEgLW5hcmdzPSsgR3Jvb3Z5SGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorZW5kaWYKKworIiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIiBKYXZhIHN0dWZmIHRha2VuIGZyb20gamF2YS52aW0KKyIgc29tZSBjaGFyYWN0ZXJzIHRoYXQgY2Fubm90IGJlIGluIGEgZ3Jvb3Z5IHByb2dyYW0gKG91dHNpZGUgYSBzdHJpbmcpCisiIHN5biBtYXRjaCBncm9vdnlFcnJvciAiW1xcQGBdIgorInN5biBtYXRjaCBncm9vdnlFcnJvciAiPDw8XHxcLlwuXHw9Plx8PD5cfHx8PVx8JiY9XHxbXi1dLT5cfFwqXC8iCisic3luIG1hdGNoIGdyb292eU9LICJcLlwuXC4iCisKKyIga2V5d29yZCBkZWZpbml0aW9ucworc3luIGtleXdvcmQgZ3Jvb3Z5RXh0ZXJuYWwgICAgICAgIG5hdGl2ZSBwYWNrYWdlCitzeW4gbWF0Y2ggZ3Jvb3Z5RXh0ZXJuYWwgICAgICAgICAgIlw8aW1wb3J0XChcc1wrc3RhdGljXD5cKVw/Igorc3luIGtleXdvcmQgZ3Jvb3Z5RXJyb3IgICAgICAgICAgIGdvdG8gY29uc3QKK3N5biBrZXl3b3JkIGdyb292eUNvbmRpdGlvbmFsICAgICBpZiBlbHNlIHN3aXRjaAorc3luIGtleXdvcmQgZ3Jvb3Z5UmVwZWF0ICAgICAgICAgIHdoaWxlIGZvciBkbworc3luIGtleXdvcmQgZ3Jvb3Z5Qm9vbGVhbiAgICAgICAgIHRydWUgZmFsc2UKK3N5biBrZXl3b3JkIGdyb292eUNvbnN0YW50ICAgICAgICBudWxsCitzeW4ga2V5d29yZCBncm9vdnlUeXBlZGVmICAgICAgICAgdGhpcyBzdXBlcgorc3luIGtleXdvcmQgZ3Jvb3Z5T3BlcmF0b3IgICAgICAgIG5ldyBpbnN0YW5jZW9mCitzeW4ga2V5d29yZCBncm9vdnlUeXBlICAgICAgICAgICAgYm9vbGVhbiBjaGFyIGJ5dGUgc2hvcnQgaW50IGxvbmcgZmxvYXQgZG91YmxlCitzeW4ga2V5d29yZCBncm9vdnlUeXBlICAgICAgICAgICAgdm9pZAorc3luIGtleXdvcmQgZ3Jvb3Z5VHlwZQkJICBJbnRlZ2VyIERvdWJsZSBEYXRlIEJvb2xlYW4gRmxvYXQgU3RyaW5nIEFycmF5IFZlY3RvciBMaXN0CitzeW4ga2V5d29yZCBncm9vdnlTdGF0ZW1lbnQgICAgICAgcmV0dXJuCitzeW4ga2V5d29yZCBncm9vdnlTdG9yYWdlQ2xhc3MgICAgc3RhdGljIHN5bmNocm9uaXplZCB0cmFuc2llbnQgdm9sYXRpbGUgZmluYWwgc3RyaWN0ZnAgc2VyaWFsaXphYmxlCitzeW4ga2V5d29yZCBncm9vdnlFeGNlcHRpb25zICAgICAgdGhyb3cgdHJ5IGNhdGNoIGZpbmFsbHkKK3N5biBrZXl3b3JkIGdyb292eUFzc2VydCAgICAgICAgICBhc3NlcnQKK3N5biBrZXl3b3JkIGdyb292eU1ldGhvZERlY2wgICAgICBzeW5jaHJvbml6ZWQgdGhyb3dzCitzeW4ga2V5d29yZCBncm9vdnlDbGFzc0RlY2wgICAgICAgZXh0ZW5kcyBpbXBsZW1lbnRzIGludGVyZmFjZQorIiB0byBkaWZmZXJlbnRpYXRlIHRoZSBrZXl3b3JkIGNsYXNzIGZyb20gTXlDbGFzcy5jbGFzcyB3ZSB1c2UgYSBtYXRjaCBoZXJlCitzeW4gbWF0Y2ggICBncm9vdnlUeXBlZGVmICAgICAgICAgIlwuXHMqXDxjbGFzc1w+Im1zPXMrMQorc3luIGtleXdvcmQgZ3Jvb3Z5Q2xhc3NEZWNsICAgICAgICAgZW51bQorc3luIG1hdGNoICAgZ3Jvb3Z5Q2xhc3NEZWNsICAgICAgICJeY2xhc3NcPiIKK3N5biBtYXRjaCAgIGdyb292eUNsYXNzRGVjbCAgICAgICAiW14uXVxzKlw8Y2xhc3NcPiJtcz1zKzEKK3N5biBrZXl3b3JkIGdyb292eUJyYW5jaCAgICAgICAgICBicmVhayBjb250aW51ZSBuZXh0Z3JvdXA9Z3Jvb3Z5VXNlckxhYmVsUmVmIHNraXB3aGl0ZQorc3luIG1hdGNoICAgZ3Jvb3Z5VXNlckxhYmVsUmVmICAgICJca1wrIiBjb250YWluZWQKK3N5biBrZXl3b3JkIGdyb292eVNjb3BlRGVjbCAgICAgICBwdWJsaWMgcHJvdGVjdGVkIHByaXZhdGUgYWJzdHJhY3QKKworCitpZiBleGlzdHMoImdyb292eV9oaWdobGlnaHRfZ3Jvb3Z5X2xhbmdfaWRzIikgfHwgZXhpc3RzKCJncm9vdnlfaGlnaGxpZ2h0X2dyb292eV9sYW5nIikgfHwgZXhpc3RzKCJncm9vdnlfaGlnaGxpZ2h0X2FsbCIpCisgICIgZ3Jvb3Z5LmxhbmcuKgorICBzeW4ga2V5d29yZCBncm9vdnlMYW5nQ2xhc3MgIENsb3N1cmUgTWV0YU1ldGhvZCBHcm9vdnlPYmplY3QKKyAgCisgIHN5biBtYXRjaCBncm9vdnlKYXZhTGFuZ0NsYXNzICJcPFN5c3RlbVw+IgorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBDbG9uZWFibGUgQ29tcGFyYWJsZSBSdW5uYWJsZSBTZXJpYWxpemFibGUgQm9vbGVhbiBCeXRlIENsYXNzIE9iamVjdAorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBDaGFyYWN0ZXIgQ2hhclNlcXVlbmNlIENsYXNzTG9hZGVyIENvbXBpbGVyCisgICIgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSW50ZWdlciBEb3VibGUgRmxvYXQgTG9uZyAKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSW5oZXJpdGFibGVUaHJlYWRMb2NhbCBNYXRoIE51bWJlciBPYmplY3QgUGFja2FnZSBQcm9jZXNzCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIFJ1bnRpbWUgUnVudGltZVBlcm1pc3Npb24gSW5oZXJpdGFibGVUaHJlYWRMb2NhbAorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBTZWN1cml0eU1hbmFnZXIgU2hvcnQgU3RyaWN0TWF0aCBTdGFja1RyYWNlRWxlbWVudAorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBTdHJpbmdCdWZmZXIgVGhyZWFkIFRocmVhZEdyb3VwCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIFRocmVhZExvY2FsIFRocm93YWJsZSBWb2lkIEFyaXRobWV0aWNFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIEFzc2VydGlvbkVycm9yCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIEFycmF5U3RvcmVFeGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIElsbGVnYWxUaHJlYWRTdGF0ZUV4Y2VwdGlvbgorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIEluc3RhbnRpYXRpb25FeGNlcHRpb24gSW50ZXJydXB0ZWRFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgTmVnYXRpdmVBcnJheVNpemVFeGNlcHRpb24gTm9TdWNoRmllbGRFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgTm9TdWNoTWV0aG9kRXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBSdW50aW1lRXhjZXB0aW9uCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIFNlY3VyaXR5RXhjZXB0aW9uIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQWJzdHJhY3RNZXRob2RFcnJvciBDbGFzc0NpcmN1bGFyaXR5RXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgQ2xhc3NGb3JtYXRFcnJvciBFcnJvciBFeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgSWxsZWdhbEFjY2Vzc0Vycm9yIEluc3RhbnRpYXRpb25FcnJvcgorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ0NsYXNzICBJbmNvbXBhdGlibGVDbGFzc0NoYW5nZUVycm9yIEludGVybmFsRXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgTGlua2FnZUVycm9yIE5vQ2xhc3NEZWZGb3VuZEVycm9yCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIE5vU3VjaEZpZWxkRXJyb3IgTm9TdWNoTWV0aG9kRXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgT3V0T2ZNZW1vcnlFcnJvciBTdGFja092ZXJmbG93RXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgVGhyZWFkRGVhdGggVW5rbm93bkVycm9yIFVuc2F0aXNmaWVkTGlua0Vycm9yCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nQ2xhc3MgIFVuc3VwcG9ydGVkQ2xhc3NWZXJzaW9uRXJyb3IgVmVyaWZ5RXJyb3IKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5SmF2YUxhbmdDbGFzcyAgVmlydHVhbE1hY2hpbmVFcnJvcgorCisgIHN5biBrZXl3b3JkIGdyb292eUphdmFMYW5nT2JqZWN0IGNsb25lIGVxdWFscyBmaW5hbGl6ZSBnZXRDbGFzcyBoYXNoQ29kZQorICBzeW4ga2V5d29yZCBncm9vdnlKYXZhTGFuZ09iamVjdCBub3RpZnkgbm90aWZ5QWxsIHRvU3RyaW5nIHdhaXQKKworICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5TGFuZ0NsYXNzICAgICAgICAgICAgICAgICAgIGdyb292eUNvbnN0YW50CisgIEdyb292eUhpTGluayBncm9vdnlKYXZhTGFuZ0NsYXNzICAgICAgICAgICAgICAgZ3Jvb3Z5RXh0ZXJuYWwKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eUphdmFMYW5nT2JqZWN0ICAgICAgICAgICAgICBncm9vdnlDb25zdGFudAorICBzeW4gY2x1c3RlciBncm9vdnlUb3AgYWRkPWdyb292eUphdmFMYW5nT2JqZWN0LGdyb292eUphdmFMYW5nQ2xhc3MsZ3Jvb3Z5TGFuZ0NsYXNzCisgIHN5biBjbHVzdGVyIGdyb292eUNsYXNzZXMgYWRkPWdyb292eUphdmFMYW5nQ2xhc3MsZ3Jvb3Z5TGFuZ0NsYXNzCitlbmRpZgorCisKKyIgR3Jvb3Z5IHN0dWZmCitzeW4gbWF0Y2ggZ3Jvb3Z5T3BlcmF0b3IgIlwuXC4iCitzeW4gbWF0Y2ggZ3Jvb3Z5T3BlcmF0b3IgIjxcezIsM30iCitzeW4gbWF0Y2ggZ3Jvb3Z5T3BlcmF0b3IgIj5cezIsM30iCitzeW4gbWF0Y2ggZ3Jvb3Z5T3BlcmF0b3IgIi0+Igorc3luIG1hdGNoIGdyb292eUV4dGVybmFsCQknXiMhLipbL1xcXWdyb292eVw+Jworc3luIG1hdGNoIGdyb292eUV4Y2VwdGlvbnMgICAgICAgICJcPEV4Y2VwdGlvblw+XHxcPFtBLVpdXHsxLH1bYS16QS1aMC05XSpFeGNlcHRpb25cPiIKKworIiBHcm9vdnkgSkRLIHN0dWZmCitzeW4ga2V5d29yZCBncm9vdnlKREtCdWlsdGluICAgIGFzIGRlZiBpbgorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLT3Blck92ZXJsICBkaXYgbWludXMgcGx1cyBhYnMgcm91bmQgcG93ZXIgbXVsdGlwbHkgCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzIAllYWNoIGNhbGwgaW5qZWN0IHNvcnQgcHJpbnQgcHJpbnRsbiAKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgZ2V0QXQgcHV0QXQgc2l6ZSBwdXNoIHBvcCB0b0xpc3QgZ2V0VGV4dCB3cml0ZUxpbmUgZWFjaExpbmUgcmVhZExpbmVzCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIHdpdGhSZWFkZXIgd2l0aFN0cmVhbSB3aXRoV3JpdGVyIHdpdGhQcmludFdyaXRlciB3cml0ZSByZWFkIGxlZnRTaGlmdCAKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgd2l0aFdyaXRlckFwcGVuZCByZWFkQnl0ZXMgc3BsaXRFYWNoTGluZQorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICBuZXdJbnB1dFN0cmVhbSBuZXdPdXRwdXRTdHJlYW0gbmV3UHJpbnRXcml0ZXIgbmV3UmVhZGVyIG5ld1dyaXRlciAKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgY29tcGFyZVRvIG5leHQgcHJldmlvdXMgaXNDYXNlIAorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICB0aW1lcyBzdGVwIHRvSW50ZWdlciB1cHRvIGFueSBjb2xsZWN0IGR1bXAgZXZlcnkgZmluZCBmaW5kQWxsIGdyZXAKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgaW5zcGVjdCBpbnZva2VNZXRob2RzIGpvaW4gCitzeW4ga2V5d29yZCBncm9vdnlKREtNZXRob2RzICAgIGdldEVyciBnZXRJbiBnZXRPdXQgd2FpdEZvck9yS2lsbAorc3luIGtleXdvcmQgZ3Jvb3Z5SkRLTWV0aG9kcyAgICBjb3VudCB0b2tlbml6ZSBhc0xpc3QgZmxhdHRlbiBpbW11dGFibGUgaW50ZXJzZWN0IHJldmVyc2UgcmV2ZXJzZUVhY2gKK3N5biBrZXl3b3JkIGdyb292eUpES01ldGhvZHMgICAgc3ViTWFwIGFwcGVuZCBhc1dyaXRhYmxlIGVhY2hCeXRlIGVhY2hMaW5lIGVhY2hGaWxlIAorc3luIGNsdXN0ZXIgZ3Jvb3Z5VG9wIGFkZD1ncm9vdnlKREtCdWlsdGluLGdyb292eUpES09wZXJPdmVybCxncm9vdnlKREtNZXRob2RzCisKKyIgbm8gdXNlZnVsIEkgdGhpbmssIHNvIEkgY29tbWVudCBpdC4uCisiaWYgZmlsZXJlYWRhYmxlKGV4cGFuZCgiPHNmaWxlPjpwOmgiKS4iL2dyb292eWlkLnZpbSIpCisgIiBzb3VyY2UgPHNmaWxlPjpwOmgvZ3Jvb3Z5aWQudmltCisiZW5kaWYKKworaWYgZXhpc3RzKCJncm9vdnlfc3BhY2VfZXJyb3JzIikKKyAgaWYgIWV4aXN0cygiZ3Jvb3Z5X25vX3RyYWlsX3NwYWNlX2Vycm9yIikKKyAgICBzeW4gbWF0Y2ggICBncm9vdnlTcGFjZUVycm9yICAiXHNcKyQiCisgIGVuZGlmCisgIGlmICFleGlzdHMoImdyb292eV9ub190YWJfc3BhY2VfZXJyb3IiKQorICAgIHN5biBtYXRjaCAgIGdyb292eVNwYWNlRXJyb3IgICIgXCtcdCJtZT1lLTEKKyAgZW5kaWYKK2VuZGlmCisKKyIgaXQgaXMgYSBiZXR0ZXIgY2FzZSBjb25zdHJ1Y3QgdGhhbiBqYXZhLnZpbSB0byBtYXRjaCBncm9vdnkgc3ludGF4CitzeW4gcmVnaW9uICBncm9vdnlMYWJlbFJlZ2lvbiAgICAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1ncm9vdnlMYWJlbCBzdGFydD0iXDxjYXNlXD4iIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9IjpcfCQiIGNvbnRhaW5zPWdyb292eU51bWJlcixncm9vdnlTdHJpbmcsZ3Jvb3Z5TGFuZ0NsYXNzLGdyb292eUphdmFMYW5nQ2xhc3MKK3N5biBtYXRjaCAgIGdyb292eVVzZXJMYWJlbCAgICAgICAiXlxzKltfJGEtekEtWl1bXyRhLXpBLVowLTlfXSpccyo6ImhlPWUtMSBjb250YWlucz1ncm9vdnlMYWJlbAorc3luIGtleXdvcmQgZ3Jvb3Z5TGFiZWwgICAgICAgICAgIGRlZmF1bHQKKworaWYgIWV4aXN0cygiZ3Jvb3Z5X2FsbG93X2NwcF9rZXl3b3JkcyIpCisgIHN5biBrZXl3b3JkIGdyb292eUVycm9yIGF1dG8gZGVsZXRlIGV4dGVybiBmcmllbmQgaW5saW5lIHJlZGVjbGFyZWQKKyAgc3luIGtleXdvcmQgZ3Jvb3Z5RXJyb3IgcmVnaXN0ZXIgc2lnbmVkIHNpemVvZiBzdHJ1Y3QgdGVtcGxhdGUgdHlwZWRlZiB1bmlvbgorICBzeW4ga2V5d29yZCBncm9vdnlFcnJvciB1bnNpZ25lZCBvcGVyYXRvcgorZW5kaWYKKworIiBUaGUgZm9sbG93aW5nIGNsdXN0ZXIgY29udGFpbnMgYWxsIGdyb292eSBncm91cHMgZXhjZXB0IHRoZSBjb250YWluZWQgb25lcworc3luIGNsdXN0ZXIgZ3Jvb3Z5VG9wIGFkZD1ncm9vdnlFeHRlcm5hbCxncm9vdnlFcnJvcixncm9vdnlFcnJvcixncm9vdnlCcmFuY2gsZ3Jvb3Z5TGFiZWxSZWdpb24sZ3Jvb3Z5TGFiZWwsZ3Jvb3Z5Q29uZGl0aW9uYWwsZ3Jvb3Z5UmVwZWF0LGdyb292eUJvb2xlYW4sZ3Jvb3Z5Q29uc3RhbnQsZ3Jvb3Z5VHlwZWRlZixncm9vdnlPcGVyYXRvcixncm9vdnlUeXBlLGdyb292eVR5cGUsZ3Jvb3Z5U3RhdGVtZW50LGdyb292eVN0b3JhZ2VDbGFzcyxncm9vdnlBc3NlcnQsZ3Jvb3Z5RXhjZXB0aW9ucyxncm9vdnlNZXRob2REZWNsLGdyb292eUNsYXNzRGVjbCxncm9vdnlDbGFzc0RlY2wsZ3Jvb3Z5Q2xhc3NEZWNsLGdyb292eVNjb3BlRGVjbCxncm9vdnlFcnJvcixncm9vdnlFcnJvcjIsZ3Jvb3Z5VXNlckxhYmVsLGdyb292eUxhbmdPYmplY3QKKworCisiIENvbW1lbnRzCitzeW4ga2V5d29yZCBncm9vdnlUb2RvICAgICAgICAgICAgIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWAoraWYgZXhpc3RzKCJncm9vdnlfY29tbWVudF9zdHJpbmdzIikKKyAgc3luIHJlZ2lvbiAgZ3Jvb3Z5Q29tbWVudFN0cmluZyAgICBjb250YWluZWQgc3RhcnQ9KyIrIGVuZD0rIisgZW5kPSskKyBlbmQ9K1wqLyttZT1zLTEsaGU9cy0xIGNvbnRhaW5zPWdyb292eVNwZWNpYWwsZ3Jvb3Z5Q29tbWVudFN0YXIsZ3Jvb3Z5U3BlY2lhbENoYXIsQFNwZWxsCisgIHN5biByZWdpb24gIGdyb292eUNvbW1lbnQyU3RyaW5nICAgY29udGFpbmVkIHN0YXJ0PSsiKyAgZW5kPSskXHwiKyAgY29udGFpbnM9Z3Jvb3Z5U3BlY2lhbCxncm9vdnlTcGVjaWFsQ2hhcixAU3BlbGwKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5Q29tbWVudENoYXJhY3RlciBjb250YWluZWQgIidcXFteJ11cezEsNlx9JyIgY29udGFpbnM9Z3Jvb3Z5U3BlY2lhbENoYXIKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5Q29tbWVudENoYXJhY3RlciBjb250YWluZWQgIidcXCcnIiBjb250YWlucz1ncm9vdnlTcGVjaWFsQ2hhcgorICBzeW4gbWF0Y2ggICBncm9vdnlDb21tZW50Q2hhcmFjdGVyIGNvbnRhaW5lZCAiJ1teXFxdJyIKKyAgc3luIGNsdXN0ZXIgZ3Jvb3Z5Q29tbWVudFNwZWNpYWwgYWRkPWdyb292eUNvbW1lbnRTdHJpbmcsZ3Jvb3Z5Q29tbWVudENoYXJhY3Rlcixncm9vdnlOdW1iZXIKKyAgc3luIGNsdXN0ZXIgZ3Jvb3Z5Q29tbWVudFNwZWNpYWwyIGFkZD1ncm9vdnlDb21tZW50MlN0cmluZyxncm9vdnlDb21tZW50Q2hhcmFjdGVyLGdyb292eU51bWJlcgorZW5kaWYKK3N5biByZWdpb24gIGdyb292eUNvbW1lbnQgICAgICAgICAgc3RhcnQ9Ii9cKiIgIGVuZD0iXCovIiBjb250YWlucz1AZ3Jvb3Z5Q29tbWVudFNwZWNpYWwsZ3Jvb3Z5VG9kbyxAU3BlbGwKK3N5biBtYXRjaCAgIGdyb292eUNvbW1lbnRTdGFyICAgICAgY29udGFpbmVkICJeXHMqXCpbXi9dIm1lPWUtMQorc3luIG1hdGNoICAgZ3Jvb3Z5Q29tbWVudFN0YXIgICAgICBjb250YWluZWQgIl5ccypcKiQiCitzeW4gbWF0Y2ggICBncm9vdnlMaW5lQ29tbWVudCAgICAgICIvLy4qIiBjb250YWlucz1AZ3Jvb3Z5Q29tbWVudFNwZWNpYWwyLGdyb292eVRvZG8sQFNwZWxsCitzeW4gbWF0Y2ggICBncm9vdnlMaW5lQ29tbWVudCAgICAgICIjLioiIGNvbnRhaW5zPUBncm9vdnlDb21tZW50U3BlY2lhbDIsZ3Jvb3Z5VG9kbyxAU3BlbGwKK0dyb292eUhpTGluayBncm9vdnlDb21tZW50U3RyaW5nIGdyb292eVN0cmluZworR3Jvb3Z5SGlMaW5rIGdyb292eUNvbW1lbnQyU3RyaW5nIGdyb292eVN0cmluZworR3Jvb3Z5SGlMaW5rIGdyb292eUNvbW1lbnRDaGFyYWN0ZXIgZ3Jvb3Z5Q2hhcmFjdGVyCisKK3N5biBjbHVzdGVyIGdyb292eVRvcCBhZGQ9Z3Jvb3Z5Q29tbWVudCxncm9vdnlMaW5lQ29tbWVudAorCitpZiAhZXhpc3RzKCJncm9vdnlfaWdub3JlX2dyb292eWRvYyIpICYmIG1haW5fc3ludGF4ICE9ICdqc3AnCisgIHN5bnRheCBjYXNlIGlnbm9yZQorICAiIHN5bnRheCBjb2xvcmluZyBmb3IgZ3Jvb3Z5ZG9jIGNvbW1lbnRzIChIVE1MKQorICAiIHN5bnRheCBpbmNsdWRlIEBncm9vdnlIdG1sIDxzZmlsZT46cDpoL2h0bWwudmltCisgICBzeW50YXggaW5jbHVkZSBAZ3Jvb3Z5SHRtbCBydW50aW1lISBzeW50YXgvaHRtbC52aW0KKyAgdW5sZXQgYjpjdXJyZW50X3N5bnRheAorICBzeW4gcmVnaW9uICBncm9vdnlEb2NDb21tZW50ICAgIHN0YXJ0PSIvXCpcKiIgIGVuZD0iXCovIiBrZWVwZW5kIGNvbnRhaW5zPWdyb292eUNvbW1lbnRUaXRsZSxAZ3Jvb3Z5SHRtbCxncm9vdnlEb2NUYWdzLGdyb292eVRvZG8sQFNwZWxsCisgIHN5biByZWdpb24gIGdyb292eUNvbW1lbnRUaXRsZSAgY29udGFpbmVkIG1hdGNoZ3JvdXA9Z3Jvb3Z5RG9jQ29tbWVudCBzdGFydD0iL1wqXCoiICAgbWF0Y2hncm91cD1ncm9vdnlDb21tZW50VGl0bGUga2VlcGVuZCBlbmQ9IlwuJCIgZW5kPSJcLlsgXHRccjwmXSJtZT1lLTEgZW5kPSJbXntdQCJtZT1zLTIsaGU9cy0xIGVuZD0iXCovIm1lPXMtMSxoZT1zLTEgY29udGFpbnM9QGdyb292eUh0bWwsZ3Jvb3Z5Q29tbWVudFN0YXIsZ3Jvb3Z5VG9kbyxAU3BlbGwsZ3Jvb3Z5RG9jVGFncworCisgIHN5biByZWdpb24gZ3Jvb3Z5RG9jVGFncyAgY29udGFpbmVkIHN0YXJ0PSJ7QFwobGlua1x8bGlua3BsYWluXHxpbmhlcml0W0RkXW9jXHxkb2NbclJdb290XHx2YWx1ZVwpIiBlbmQ9In0iCisgIHN5biBtYXRjaCAgZ3Jvb3Z5RG9jVGFncyAgY29udGFpbmVkICJAXChzZWVcfHBhcmFtXHxleGNlcHRpb25cfHRocm93c1x8c2luY2VcKVxzXCtcU1wrIiBjb250YWlucz1ncm9vdnlEb2NQYXJhbQorICBzeW4gbWF0Y2ggIGdyb292eURvY1BhcmFtIGNvbnRhaW5lZCAiXHNcU1wrIgorICBzeW4gbWF0Y2ggIGdyb292eURvY1RhZ3MgIGNvbnRhaW5lZCAiQFwodmVyc2lvblx8YXV0aG9yXHxyZXR1cm5cfGRlcHJlY2F0ZWRcfHNlcmlhbFx8c2VyaWFsRmllbGRcfHNlcmlhbERhdGFcKVw+IgorICBzeW50YXggY2FzZSBtYXRjaAorZW5kaWYKKworIiBtYXRjaCB0aGUgc3BlY2lhbCBjb21tZW50IC8qKi8KK3N5biBtYXRjaCAgIGdyb292eUNvbW1lbnQgICAgICAgICAgIi9cKlwqLyIKKworIiBTdHJpbmdzIGFuZCBjb25zdGFudHMKK3N5biBtYXRjaCAgIGdyb292eVNwZWNpYWxFcnJvciAgICAgY29udGFpbmVkICJcXC4iCitzeW4gbWF0Y2ggICBncm9vdnlTcGVjaWFsQ2hhckVycm9yIGNvbnRhaW5lZCAiW14nXSIKK3N5biBtYXRjaCAgIGdyb292eVNwZWNpYWxDaGFyICAgICAgY29udGFpbmVkICJcXFwoWzQtOV1cZFx8WzAtM11cZFxkXHxbXCJcXCdudGJyZl1cfHVceFx7NFx9XCkiCitzeW4gcmVnaW9uICBncm9vdnlTdHJpbmcgICAgICAgICAgc3RhcnQ9KyIrIGVuZD0rIisgZW5kPSskKyBjb250YWlucz1ncm9vdnlTcGVjaWFsQ2hhcixncm9vdnlTcGVjaWFsRXJyb3IsQFNwZWxsLGdyb292eUVMRXhwcgorc3luIHJlZ2lvbiAgZ3Jvb3Z5U3RyaW5nICAgICAgICAgIHN0YXJ0PSsnKyBlbmQ9KycrIGVuZD0rJCsgY29udGFpbnM9Z3Jvb3Z5U3BlY2lhbENoYXIsZ3Jvb3Z5U3BlY2lhbEVycm9yLEBTcGVsbCxncm9vdnlFTEV4cHIKKyIgc3luIHJlZ2lvbiBncm9vdnlFTEV4cHIgc3RhcnQ9KyR7KyBlbmQ9K30rIGtlZXBlbmQgY29udGFpbmVkCisgc3luIG1hdGNoIGdyb292eUVMRXhwciAvXCR7Llx7LX19LyBjb250YWluZWQKK0dyb292eUhpTGluayBncm9vdnlFTEV4cHIgSWRlbnRpZmllcgorCisiIFRPRE86IGJldHRlciBtYXRjaGluZy4gSSBhbSB3YWl0aW5nIHRvIHVuZGVyc3RhbmQgaG93IGl0IHJlYWxseSB3b3JrcyBpbiBncm9vdnkKKyIgc3luIHJlZ2lvbiAgZ3Jvb3Z5Q2xvc3VyZVBhcmFtc0JyYWNlcyAgICAgICAgICBzdGFydD0rfCsgZW5kPSt8KyBjb250YWlucz1ncm9vdnlDbG9zdXJlUGFyYW1zCisiIHN5biBtYXRjaCBncm9vdnlDbG9zdXJlUGFyYW1zCSJbIGEtekEtWjAtOV8qXVwrIiBjb250YWluZWQKKyIgR3Jvb3Z5SGlMaW5rIGdyb292eUNsb3N1cmVQYXJhbXMgSWRlbnRpZmllcgorCisiIG5leHQgbGluZSBkaXNhYmxlZCwgaXQgY2FuIGNhdXNlIGEgY3Jhc2ggZm9yIGEgbG9uZyBsaW5lCisic3luIG1hdGNoICAgZ3Jvb3Z5U3RyaW5nRXJyb3IgICAgICArIlwoW14iXFxdXHxcXC5cKSokKworCisiIGRpc2FibGVkOiBpbiBncm9vdnkgc3RyaW5ncyBvciBjaGFyYWN0ZXJzIGFyZSB3cml0dGVuIHRoZSBzYW1lCisiIHN5biBtYXRjaCAgIGdyb292eUNoYXJhY3RlciAgICAgICAgIidbXiddKiciIGNvbnRhaW5zPWdyb292eVNwZWNpYWxDaGFyLGdyb292eVNwZWNpYWxDaGFyRXJyb3IKKyIgc3luIG1hdGNoICAgZ3Jvb3Z5Q2hhcmFjdGVyICAgICAgICAiJ1xcJyciIGNvbnRhaW5zPWdyb292eVNwZWNpYWxDaGFyCisiIHN5biBtYXRjaCAgIGdyb292eUNoYXJhY3RlciAgICAgICAgIidbXlxcXSciCitzeW4gbWF0Y2ggICBncm9vdnlOdW1iZXIgICAgICAgICAgICJcPFwoMFswLTddKlx8MFt4WF1ceFwrXHxcZFwrXClbbExdXD1cPiIKK3N5biBtYXRjaCAgIGdyb292eU51bWJlciAgICAgICAgICAgIlwoXDxcZFwrXC5cZCpcfFwuXGRcK1wpXChbZUVdWy0rXVw9XGRcK1wpXD1bZkZkRF1cPSIKK3N5biBtYXRjaCAgIGdyb292eU51bWJlciAgICAgICAgICAgIlw8XGRcK1tlRV1bLStdXD1cZFwrW2ZGZERdXD1cPiIKK3N5biBtYXRjaCAgIGdyb292eU51bWJlciAgICAgICAgICAgIlw8XGRcK1woW2VFXVstK11cPVxkXCtcKVw9W2ZGZERdXD4iCisKKyIgdW5pY29kZSBjaGFyYWN0ZXJzCitzeW4gbWF0Y2ggICBncm9vdnlTcGVjaWFsICJcXHVcZFx7NFx9IgorCitzeW4gY2x1c3RlciBncm9vdnlUb3AgYWRkPWdyb292eVN0cmluZyxncm9vdnlDaGFyYWN0ZXIsZ3Jvb3Z5TnVtYmVyLGdyb292eVNwZWNpYWwsZ3Jvb3Z5U3RyaW5nRXJyb3IKKworaWYgZXhpc3RzKCJncm9vdnlfaGlnaGxpZ2h0X2Z1bmN0aW9ucyIpCisgIGlmIGdyb292eV9oaWdobGlnaHRfZnVuY3Rpb25zID09ICJpbmRlbnQiCisgICAgc3luIG1hdGNoICBncm9vdnlGdW5jRGVmICJeXChcdFx8IFx7OFx9XClbXyRhLXpBLVpdW18kYS16QS1aMC05Xy4gXFtcXV0qKFteLSsqLygpXSopIiBjb250YWlucz1ncm9vdnlTY29wZURlY2wsZ3Jvb3Z5VHlwZSxncm9vdnlTdG9yYWdlQ2xhc3MsQGdyb292eUNsYXNzZXMKKyAgICBzeW4gcmVnaW9uIGdyb292eUZ1bmNEZWYgc3RhcnQ9K15cKFx0XHwgXHs4XH1cKVskX2EtekEtWl1bJF9hLXpBLVowLTlfLiBcW1xdXSooW14tKyovKCldKixccyorIGVuZD0rKSsgY29udGFpbnM9Z3Jvb3Z5U2NvcGVEZWNsLGdyb292eVR5cGUsZ3Jvb3Z5U3RvcmFnZUNsYXNzLEBncm9vdnlDbGFzc2VzCisgICAgc3luIG1hdGNoICBncm9vdnlGdW5jRGVmICJeICBbJF9hLXpBLVpdWyRfYS16QS1aMC05Xy4gXFtcXV0qKFteLSsqLygpXSopIiBjb250YWlucz1ncm9vdnlTY29wZURlY2wsZ3Jvb3Z5VHlwZSxncm9vdnlTdG9yYWdlQ2xhc3MsQGdyb292eUNsYXNzZXMKKyAgICBzeW4gcmVnaW9uIGdyb292eUZ1bmNEZWYgc3RhcnQ9K14gIFskX2EtekEtWl1bJF9hLXpBLVowLTlfLiBcW1xdXSooW14tKyovKCldKixccyorIGVuZD0rKSsgY29udGFpbnM9Z3Jvb3Z5U2NvcGVEZWNsLGdyb292eVR5cGUsZ3Jvb3Z5U3RvcmFnZUNsYXNzLEBncm9vdnlDbGFzc2VzCisgIGVsc2UKKyAgICAiIFRoaXMgbGluZSBjYXRjaGVzIG1ldGhvZCBkZWNsYXJhdGlvbnMgYXQgYW55IGluZGVudGF0aW9uPjAsIGJ1dCBpdCBhc3N1bWVzCisgICAgIiB0d28gdGhpbmdzOgorICAgICIgICAxLiBjbGFzcyBuYW1lcyBhcmUgYWx3YXlzIGNhcGl0YWxpemVkIChpZTogQnV0dG9uKQorICAgICIgICAyLiBtZXRob2QgbmFtZXMgYXJlIG5ldmVyIGNhcGl0YWxpemVkIChleGNlcHQgY29uc3RydWN0b3JzLCBvZiBjb3Vyc2UpCisgICAgc3luIHJlZ2lvbiBncm9vdnlGdW5jRGVmIHN0YXJ0PSteXHNcK1woXChwdWJsaWNcfHByb3RlY3RlZFx8cHJpdmF0ZVx8c3RhdGljXHxhYnN0cmFjdFx8ZmluYWxcfG5hdGl2ZVx8c3luY2hyb25pemVkXClcc1wrXCkqXChcKHZvaWRcfGJvb2xlYW5cfGNoYXJcfGJ5dGVcfHNob3J0XHxpbnRcfGxvbmdcfGZsb2F0XHxkb3VibGVcfFwoW0EtWmEtel9dW0EtWmEtejAtOV8kXSpcLlwpKltBLVpdW0EtWmEtejAtOV8kXSpcKVwoPFtePl0qPlwpXD1cKFxbXF1cKSpcc1wrW2Etel1bQS1aYS16MC05XyRdKlx8W0EtWl1bQS1aYS16MC05XyRdKlwpXHMqKFteMC05XSsgZW5kPSspKyBjb250YWlucz1ncm9vdnlTY29wZURlY2wsZ3Jvb3Z5VHlwZSxncm9vdnlTdG9yYWdlQ2xhc3MsZ3Jvb3Z5Q29tbWVudCxncm9vdnlMaW5lQ29tbWVudCxAZ3Jvb3Z5Q2xhc3NlcworICBlbmRpZgorICBzeW4gbWF0Y2ggIGdyb292eUJyYWNlcyAgIlt7fV0iCisgIHN5biBjbHVzdGVyIGdyb292eVRvcCBhZGQ9Z3Jvb3Z5RnVuY0RlZixncm9vdnlCcmFjZXMKK2VuZGlmCisKK2lmIGV4aXN0cygiZ3Jvb3Z5X2hpZ2hsaWdodF9kZWJ1ZyIpCisKKyAgIiBTdHJpbmdzIGFuZCBjb25zdGFudHMKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5RGVidWdTcGVjaWFsICAgICAgICAgIGNvbnRhaW5lZCAiXFxcZFxkXGRcfFxcLiIKKyAgc3luIHJlZ2lvbiAgZ3Jvb3Z5RGVidWdTdHJpbmcgICAgICAgICAgIGNvbnRhaW5lZCBzdGFydD0rIisgIGVuZD0rIisgIGNvbnRhaW5zPWdyb292eURlYnVnU3BlY2lhbAorICBzeW4gbWF0Y2ggICBncm9vdnlEZWJ1Z1N0cmluZ0Vycm9yICAgICAgKyJcKFteIlxcXVx8XFwuXCkqJCsKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5RGVidWdDaGFyYWN0ZXIgICAgICAgIGNvbnRhaW5lZCAiJ1teXFxdJyIKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5RGVidWdTcGVjaWFsQ2hhcmFjdGVyIGNvbnRhaW5lZCAiJ1xcLiciCisgIHN5biBtYXRjaCAgIGdyb292eURlYnVnU3BlY2lhbENoYXJhY3RlciBjb250YWluZWQgIidcXCcnIgorICBzeW4gbWF0Y2ggICBncm9vdnlEZWJ1Z051bWJlciAgICAgICAgICAgY29udGFpbmVkICJcPFwoMFswLTddKlx8MFt4WF1ceFwrXHxcZFwrXClbbExdXD1cPiIKKyAgc3luIG1hdGNoICAgZ3Jvb3Z5RGVidWdOdW1iZXIgICAgICAgICAgIGNvbnRhaW5lZCAiXChcPFxkXCtcLlxkKlx8XC5cZFwrXClcKFtlRV1bLStdXD1cZFwrXClcPVtmRmREXVw9IgorICBzeW4gbWF0Y2ggICBncm9vdnlEZWJ1Z051bWJlciAgICAgICAgICAgY29udGFpbmVkICJcPFxkXCtbZUVdWy0rXVw9XGRcK1tmRmREXVw9XD4iCisgIHN5biBtYXRjaCAgIGdyb292eURlYnVnTnVtYmVyICAgICAgICAgICBjb250YWluZWQgIlw8XGRcK1woW2VFXVstK11cPVxkXCtcKVw9W2ZGZERdXD4iCisgIHN5biBrZXl3b3JkIGdyb292eURlYnVnQm9vbGVhbiAgICAgICAgICBjb250YWluZWQgdHJ1ZSBmYWxzZQorICBzeW4ga2V5d29yZCBncm9vdnlEZWJ1Z1R5cGUgICAgICAgICAgICAgY29udGFpbmVkIG51bGwgdGhpcyBzdXBlcgorICBzeW4gcmVnaW9uIGdyb292eURlYnVnUGFyZW4gIHN0YXJ0PSsoKyBlbmQ9KykrIGNvbnRhaW5lZCBjb250YWlucz1ncm9vdnlEZWJ1Zy4qLGdyb292eURlYnVnUGFyZW4KKworICAiIHRvIG1ha2UgdGhpcyB3b3JrIHlvdSBtdXN0IGRlZmluZSB0aGUgaGlnaGxpZ2h0aW5nIGZvciB0aGVzZSBncm91cHMKKyAgc3luIG1hdGNoIGdyb292eURlYnVnICJcPFN5c3RlbVwuXChvdXRcfGVyclwpXC5wcmludFwobG5cKSpccyooIm1lPWUtMSBjb250YWlucz1ncm9vdnlEZWJ1Zy4qIG5leHRncm91cD1ncm9vdnlEZWJ1Z1BhcmVuCisgIHN5biBtYXRjaCBncm9vdnlEZWJ1ZyAiXDxwXHMqKCJtZT1lLTEgY29udGFpbnM9Z3Jvb3Z5RGVidWcuKiBuZXh0Z3JvdXA9Z3Jvb3Z5RGVidWdQYXJlbgorICBzeW4gbWF0Y2ggZ3Jvb3Z5RGVidWcgIltBLVphLXpdW2EtekEtWjAtOV9dKlwucHJpbnRTdGFja1RyYWNlXHMqKCJtZT1lLTEgY29udGFpbnM9Z3Jvb3Z5RGVidWcuKiBuZXh0Z3JvdXA9Z3Jvb3Z5RGVidWdQYXJlbgorICBzeW4gbWF0Y2ggZ3Jvb3Z5RGVidWcgIlw8dHJhY2VbU0xdXD1ccyooIm1lPWUtMSBjb250YWlucz1ncm9vdnlEZWJ1Zy4qIG5leHRncm91cD1ncm9vdnlEZWJ1Z1BhcmVuCisKKyAgc3luIGNsdXN0ZXIgZ3Jvb3Z5VG9wIGFkZD1ncm9vdnlEZWJ1ZworCisgIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9jX3N5bl9pbml0cyIpCisgICAgR3Jvb3Z5SGlMaW5rIGdyb292eURlYnVnICAgICAgICAgICAgICAgICBEZWJ1ZworICAgIEdyb292eUhpTGluayBncm9vdnlEZWJ1Z1N0cmluZyAgICAgICAgICAgRGVidWdTdHJpbmcKKyAgICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RGVidWdTdHJpbmdFcnJvciAgICAgIGdyb292eUVycm9yCisgICAgR3Jvb3Z5SGlMaW5rIGdyb292eURlYnVnVHlwZSAgICAgICAgICAgICBEZWJ1Z1R5cGUKKyAgICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RGVidWdCb29sZWFuICAgICAgICAgIERlYnVnQm9vbGVhbgorICAgIEdyb292eUhpTGluayBncm9vdnlEZWJ1Z051bWJlciAgICAgICAgICAgRGVidWcKKyAgICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RGVidWdTcGVjaWFsICAgICAgICAgIERlYnVnU3BlY2lhbAorICAgIEdyb292eUhpTGluayBncm9vdnlEZWJ1Z1NwZWNpYWxDaGFyYWN0ZXIgRGVidWdTcGVjaWFsCisgICAgR3Jvb3Z5SGlMaW5rIGdyb292eURlYnVnQ2hhcmFjdGVyICAgICAgICBEZWJ1Z1N0cmluZworICAgIEdyb292eUhpTGluayBncm9vdnlEZWJ1Z1BhcmVuICAgICAgICAgICAgRGVidWcKKyAgCisgICAgR3Jvb3Z5SGlMaW5rIERlYnVnU3RyaW5nICAgICAgICAgICAgICAgU3RyaW5nCisgICAgR3Jvb3Z5SGlMaW5rIERlYnVnU3BlY2lhbCAgICAgICAgICAgICAgU3BlY2lhbAorICAgIEdyb292eUhpTGluayBEZWJ1Z0Jvb2xlYW4gICAgICAgICAgICAgIEJvb2xlYW4KKyAgICBHcm9vdnlIaUxpbmsgRGVidWdUeXBlICAgICAgICAgICAgICAgICBUeXBlCisgIGVuZGlmCitlbmRpZgorCisiIE1hdGNoIGFsbCBFeGNlcHRpb24gY2xhc3NlcyAKK3N5biBtYXRjaCBncm9vdnlFeGNlcHRpb25zICAgICAgICAiXDxFeGNlcHRpb25cPlx8XDxbQS1aXVx7MSx9W2EtekEtWjAtOV0qRXhjZXB0aW9uXD4iCisKKworaWYgIWV4aXN0cygiZ3Jvb3Z5X21pbmxpbmVzIikKKyAgbGV0IGdyb292eV9taW5saW5lcyA9IDEwCitlbmRpZgorZXhlYyAic3luIHN5bmMgY2NvbW1lbnQgZ3Jvb3Z5Q29tbWVudCBtaW5saW5lcz0iIC4gZ3Jvb3Z5X21pbmxpbmVzCisKKworIiAjIyMjIyMjIyMjIyMjIyMjIyMjIAorIiBHcm9vdnkgc3R1ZmYKKyIgc3luIG1hdGNoIGdyb292eU9wZXJhdG9yCQkifFsgLGEtekEtWjAtOV8qXVwrfCIKKworIiBBbGwgZ3Jvb3Z5IHZhbGlkIHRva2VucworIiBzeW4gbWF0Y2ggZ3Jvb3Z5VG9rZW5zICI7XHwsXHw8PT5cfDw+XHw6XHw6PVx8Plx8Pj1cfD1cfD09XHw8XHw8PVx8IT1cfC9cfC89XHxcLlwufFwuXC5cLlx8XH49XHxcfj09IgorIiBzeW4gbWF0Y2ggZ3Jvb3Z5VG9rZW5zICJcKj1cfCZcfCY9XHxcKlx8LT5cfFx+XHwrXHwtXHwvXHw/XHw8PDxcfD4+Plx8PDxcfD4+IgorCisiIE11c3QgcHV0IGV4cGxpY2l0IHRoZXNlIG9uZXMgYmVjYXVzZSBncm9vdnkudmltIG1hcmsgdGhlbSBhcyBlcnJvcnMgb3RoZXJ3aXNlCisiIHN5biBtYXRjaCBncm9vdnlUb2tlbnMgIjw9Plx8PD5cfD09XH4iCisic3luIGNsdXN0ZXIgZ3Jvb3Z5VG9wIGFkZD1ncm9vdnlUb2tlbnMKKworIiBNYXJrIHRoZXNlIGFzIG9wZXJhdG9ycworCisiIEhpZ2h0bGlnaHQgYnJhY2tldHMKKyIgc3luIG1hdGNoICBncm9vdnlCcmFjZXMJCSJbe31dIgorIiBzeW4gbWF0Y2ggIGdyb292eUJyYWNlcwkJIltcW1xdXSIKKyIgc3luIG1hdGNoICBncm9vdnlCcmFjZXMJCSJbXHxdIgorCitpZiBleGlzdHMoImdyb292eV9tYXJrX2JyYWNlc19pbl9wYXJlbnNfYXNfZXJyb3JzIikKKyAgc3luIG1hdGNoIGdyb292eUluUGFyZW4gICAgICAgICAgY29udGFpbmVkICJbe31dIgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5SW5QYXJlbiAgICAgICAgZ3Jvb3Z5RXJyb3IKKyAgc3luIGNsdXN0ZXIgZ3Jvb3Z5VG9wIGFkZD1ncm9vdnlJblBhcmVuCitlbmRpZgorCisiIGNhdGNoIGVycm9ycyBjYXVzZWQgYnkgd3JvbmcgcGFyZW50aGVzaXMKK3N5biByZWdpb24gIGdyb292eVBhcmVuVCAgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1ncm9vdnlQYXJlbiAgc3RhcnQ9IigiICBlbmQ9IikiIGNvbnRhaW5zPUBncm9vdnlUb3AsZ3Jvb3Z5UGFyZW5UMQorc3luIHJlZ2lvbiAgZ3Jvb3Z5UGFyZW5UMSB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWdyb292eVBhcmVuMSBzdGFydD0iKCIgZW5kPSIpIiBjb250YWlucz1AZ3Jvb3Z5VG9wLGdyb292eVBhcmVuVDIgY29udGFpbmVkCitzeW4gcmVnaW9uICBncm9vdnlQYXJlblQyIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9Z3Jvb3Z5UGFyZW4yIHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUBncm9vdnlUb3AsZ3Jvb3Z5UGFyZW5UICBjb250YWluZWQKK3N5biBtYXRjaCAgIGdyb292eVBhcmVuRXJyb3IgICAgICAgIikiCitHcm9vdnlIaUxpbmsgZ3Jvb3Z5UGFyZW5FcnJvciAgICAgICBncm9vdnlFcnJvcgorCisiIGNhdGNoIGVycm9ycyBjYXVzZWQgYnkgd3Jvbmcgc3F1YXJlIHBhcmVudGhlc2lzCitzeW4gcmVnaW9uICBncm9vdnlQYXJlblQgIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9Z3Jvb3Z5UGFyZW4gIHN0YXJ0PSJcWyIgIGVuZD0iXF0iIGNvbnRhaW5zPUBncm9vdnlUb3AsZ3Jvb3Z5UGFyZW5UMQorc3luIHJlZ2lvbiAgZ3Jvb3Z5UGFyZW5UMSB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWdyb292eVBhcmVuMSBzdGFydD0iXFsiIGVuZD0iXF0iIGNvbnRhaW5zPUBncm9vdnlUb3AsZ3Jvb3Z5UGFyZW5UMiBjb250YWluZWQKK3N5biByZWdpb24gIGdyb292eVBhcmVuVDIgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1ncm9vdnlQYXJlbjIgc3RhcnQ9IlxbIiBlbmQ9IlxdIiBjb250YWlucz1AZ3Jvb3Z5VG9wLGdyb292eVBhcmVuVCAgY29udGFpbmVkCitzeW4gbWF0Y2ggICBncm9vdnlQYXJlbkVycm9yICAgICAgICJcXSIKKworIiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisiIGphdmEudmltIGRlZmF1bHQgaGlnaGxpZ2h0aW5nCitpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfZ3Jvb3Z5X3N5bl9pbml0cyIpCisgIGlmIHZlcnNpb24gPCA1MDgKKyAgICBsZXQgZGlkX2dyb292eV9zeW5faW5pdHMgPSAxCisgIGVuZGlmCisgIEdyb292eUhpTGluayBncm9vdnlGdW5jRGVmCQlGdW5jdGlvbgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5QnJhY2VzCQlGdW5jdGlvbgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5QnJhbmNoCQlDb25kaXRpb25hbAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5VXNlckxhYmVsUmVmCWdyb292eVVzZXJMYWJlbAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5TGFiZWwJCUxhYmVsCisgIEdyb292eUhpTGluayBncm9vdnlVc2VyTGFiZWwJCUxhYmVsCisgIEdyb292eUhpTGluayBncm9vdnlDb25kaXRpb25hbAlDb25kaXRpb25hbAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5UmVwZWF0CQlSZXBlYXQKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eUV4Y2VwdGlvbnMJCUV4Y2VwdGlvbgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5QXNzZXJ0IAkJU3RhdGVtZW50CisgIEdyb292eUhpTGluayBncm9vdnlTdG9yYWdlQ2xhc3MJU3RvcmFnZUNsYXNzCisgIEdyb292eUhpTGluayBncm9vdnlNZXRob2REZWNsCQlncm9vdnlTdG9yYWdlQ2xhc3MKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eUNsYXNzRGVjbAkJZ3Jvb3Z5U3RvcmFnZUNsYXNzCisgIEdyb292eUhpTGluayBncm9vdnlTY29wZURlY2wJCWdyb292eVN0b3JhZ2VDbGFzcworICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5Qm9vbGVhbgkJQm9vbGVhbgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5U3BlY2lhbAkJU3BlY2lhbAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5U3BlY2lhbEVycm9yCUVycm9yCisgIEdyb292eUhpTGluayBncm9vdnlTcGVjaWFsQ2hhckVycm9yCUVycm9yCisgIEdyb292eUhpTGluayBncm9vdnlTdHJpbmcJCVN0cmluZworICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5Q2hhcmFjdGVyCQlDaGFyYWN0ZXIKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eVNwZWNpYWxDaGFyCVNwZWNpYWxDaGFyCisgIEdyb292eUhpTGluayBncm9vdnlOdW1iZXIJCU51bWJlcgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RXJyb3IJCUVycm9yCisgIEdyb292eUhpTGluayBncm9vdnlTdHJpbmdFcnJvcglFcnJvcgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5U3RhdGVtZW50CQlTdGF0ZW1lbnQKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eU9wZXJhdG9yCQlPcGVyYXRvcgorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5Q29tbWVudAkJQ29tbWVudAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5RG9jQ29tbWVudAkJQ29tbWVudAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5TGluZUNvbW1lbnQJQ29tbWVudAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5Q29uc3RhbnQJCUNvbnN0YW50CisgIEdyb292eUhpTGluayBncm9vdnlUeXBlZGVmCQlUeXBlZGVmCisgIEdyb292eUhpTGluayBncm9vdnlUb2RvCQlUb2RvCisgIAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5Q29tbWVudFRpdGxlCVNwZWNpYWxDb21tZW50CisgIEdyb292eUhpTGluayBncm9vdnlEb2NUYWdzCQlTcGVjaWFsCisgIEdyb292eUhpTGluayBncm9vdnlEb2NQYXJhbQkJRnVuY3Rpb24KKyAgR3Jvb3Z5SGlMaW5rIGdyb292eUNvbW1lbnRTdGFyCWdyb292eUNvbW1lbnQKKyAgCisgIEdyb292eUhpTGluayBncm9vdnlUeXBlCQlUeXBlCisgIEdyb292eUhpTGluayBncm9vdnlFeHRlcm5hbAkJSW5jbHVkZQorICAKKyAgR3Jvb3Z5SGlMaW5rIGh0bWxDb21tZW50CQlTcGVjaWFsCisgIEdyb292eUhpTGluayBodG1sQ29tbWVudFBhcnQJCVNwZWNpYWwKKyAgR3Jvb3Z5SGlMaW5rIGdyb292eVNwYWNlRXJyb3IJCUVycm9yCisgIEdyb292eUhpTGluayBncm9vdnlKREtCdWlsdGluICAgICAgICAgU3BlY2lhbAorICBHcm9vdnlIaUxpbmsgZ3Jvb3Z5SkRLT3Blck92ZXJsICAgICAgIE9wZXJhdG9yCisgIEdyb292eUhpTGluayBncm9vdnlKREtNZXRob2RzICAgICAgICAgRnVuY3Rpb24KK2VuZGlmCisKK2RlbGNvbW1hbmQgR3Jvb3Z5SGlMaW5rCisKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZ3Jvb3Z5IgoraWYgbWFpbl9zeW50YXggPT0gJ2dyb292eScKKyAgdW5sZXQgbWFpbl9zeW50YXgKK2VuZGlmCisKK2xldCBiOnNwZWxsX29wdGlvbnM9ImNvbnRhaW5lZCIKKworIiB2aW06IHRzPTgKZGlmZiAtLWdpdCBhL3NyYy9HdmltRXh0L0d2aW1FeHQucmVnIGIvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKaW5kZXggZGI0OWQyNC4uNjA0ZTkxMSAxMDA2NDQKLS0tIGEvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKKysrIGIvc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcKQEAgLTE1LDYgKzE1LDYgQEAKIFtIS0VZX0xPQ0FMX01BQ0hJTkVcU29mdHdhcmVcVmltXEd2aW1dCiAgICAicGF0aCI9Imd2aW0uZXhlIgogCi1bSEtFWV9MT0NBTF9NQUNISU5FXFNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFxWaW0gNy4wYWFdCi0gICAiRGlzcGxheU5hbWUiPSJWaW0gNy4wYWE6IEVkaXQgd2l0aCBWaW0gcG9wdXAgbWVudSBlbnRyeSIKK1tIS0VZX0xPQ0FMX01BQ0hJTkVcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXFZpbSA3LjBiXQorICAgIkRpc3BsYXlOYW1lIj0iVmltIDcuMGI6IEVkaXQgd2l0aCBWaW0gcG9wdXAgbWVudSBlbnRyeSIKICAgICJVbmluc3RhbGxTdHJpbmciPSJ1bmluc3RhbC5leGUiCmRpZmYgLS1naXQgYS9zcmMvTWFrZV9iYzMubWFrIGIvc3JjL01ha2VfYmMzLm1hawppbmRleCAyMGE5YjFmLi40NjE3NjMwIDEwMDY0NAotLS0gYS9zcmMvTWFrZV9iYzMubWFrCisrKyBiL3NyYy9NYWtlX2JjMy5tYWsKQEAgLTY2LDcgKzY2LDcgQEAKIAlmb2xkLm9iaiBcCiAJZ2V0Y2hhci5vYmogXAogCWhhcmRjb3B5Lm9iaiBcCi0JaGFzaHRhYmxlLm9iaiBcCisJaGFzaHRhYi5vYmogXAogCW1haW4ub2JqIFwKIAltYXJrLm9iaiBcCiAJbWVtZmlsZS5vYmogXApAQCAtODAsNyArODAsNyBAQAogCW5vcm1hbC5vYmogXAogCW9wcy5vYmogXAogCW9wdGlvbi5vYmogXAotCXBvcHVwbWVudS5vYmogXAorCXBvcHVwbW51Lm9iaiBcCiAJcXVpY2tmaXgub2JqIFwKIAlyZWdleHAub2JqIFwKIAlzY3JlZW4ub2JqIFwKZGlmZiAtLWdpdCBhL3NyYy9NYWtlX2JjNS5tYWsgYi9zcmMvTWFrZV9iYzUubWFrCmluZGV4IDNlMTY0MGUuLmIwNjNjZTAgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX2JjNS5tYWsKKysrIGIvc3JjL01ha2VfYmM1Lm1hawpAQCAtNTQ3LDcgKzU0Nyw3IEBACiAJJChPQkpESVIpXGZvbGQub2JqIFwKIAkkKE9CSkRJUilcZ2V0Y2hhci5vYmogXAogCSQoT0JKRElSKVxoYXJkY29weS5vYmogXAotCSQoT0JKRElSKVxoYXNodGFibGUub2JqIFwKKwkkKE9CSkRJUilcaGFzaHRhYi5vYmogXAogCSQoT0JKRElSKVxtYWluLm9iaiBcCiAJJChPQkpESVIpXG1hcmsub2JqIFwKIAkkKE9CSkRJUilcbWVtZmlsZS5vYmogXApAQCAtNTYxLDcgKzU2MSw3IEBACiAJJChPQkpESVIpXG5vcm1hbC5vYmogXAogCSQoT0JKRElSKVxvcHMub2JqIFwKIAkkKE9CSkRJUilcb3B0aW9uLm9iaiBcCi0JJChPQkpESVIpXHBvcHVwbWVudS5vYmogXAorCSQoT0JKRElSKVxwb3B1cG1udS5vYmogXAogCSQoT0JKRElSKVxxdWlja2ZpeC5vYmogXAogCSQoT0JKRElSKVxyZWdleHAub2JqIFwKIAkkKE9CSkRJUilcc2NyZWVuLm9iaiBcCmRpZmYgLS1naXQgYS9zcmMvTWFrZV9pdmMubWFrIGIvc3JjL01ha2VfaXZjLm1hawppbmRleCBmNmIzNjk0Li4yZDExOGQ1IDEwMDY0NAotLS0gYS9zcmMvTWFrZV9pdmMubWFrCisrKyBiL3NyYy9NYWtlX2l2Yy5tYWsKQEAgLTIyNSw3ICsyMjUsNyBAQAogCSIkKElOVERJUikvZm9sZC5vYmoiIFwKIAkiJChJTlRESVIpL2dldGNoYXIub2JqIiBcCiAJIiQoSU5URElSKS9oYXJkY29weS5vYmoiIFwKLQkiJChJTlRESVIpL2hhc2h0YWJsZS5vYmoiIFwKKwkiJChJTlRESVIpL2hhc2h0YWIub2JqIiBcCiAJIiQoSU5URElSKS9tYWluLm9iaiIgXAogCSIkKElOVERJUikvbWFyay5vYmoiIFwKIAkiJChJTlRESVIpL21ieXRlLm9iaiIgXApAQCAtMjQxLDcgKzI0MSw3IEBACiAJIiQoSU5URElSKS9vcHRpb24ub2JqIiBcCiAJIiQoSU5URElSKS9vc19tc3dpbi5vYmoiIFwKIAkiJChJTlRESVIpL29zX3dpbjMyLm9iaiIgXAotCSIkKElOVERJUikvcG9wdXBtZW51Lm9iaiIgXAorCSIkKElOVERJUikvcG9wdXBtbnUub2JqIiBcCiAJIiQoSU5URElSKS9xdWlja2ZpeC5vYmoiIFwKIAkiJChJTlRESVIpL3JlZ2V4cC5vYmoiIFwKIAkiJChJTlRESVIpL3NjcmVlbi5vYmoiIFwKQEAgLTM4NCw3ICszODQsNyBAQAogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIAotU09VUkNFPS5caGFzaHRhYmxlLmMKK1NPVVJDRT0uXGhhc2h0YWIuYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIApAQCAtNTk4LDcgKzU5OCw3IEBACiAjIEVuZCBTb3VyY2UgRmlsZQogIyBCZWdpbiBTb3VyY2UgRmlsZQogCi1TT1VSQ0U9Llxwb3B1cG1lbnUuYworU09VUkNFPS5ccG9wdXBtbnUuYwogIyBFbmQgU291cmNlIEZpbGUKICMgQmVnaW4gU291cmNlIEZpbGUKIApkaWZmIC0tZ2l0IGEvc3JjL01ha2VfbWFueC5tYWsgYi9zcmMvTWFrZV9tYW54Lm1hawppbmRleCA0NmMwMDE1Li5iOGU3ODUyIDEwMDY0NAotLS0gYS9zcmMvTWFrZV9tYW54Lm1haworKysgYi9zcmMvTWFrZV9tYW54Lm1hawpAQCAtNDksNyArNDksNyBAQAogCWZvbGQuYyBcCiAJZ2V0Y2hhci5jIFwKIAloYXJkY29weS5jIFwKLQloYXNodGFibGUuYyBcCisJaGFzaHRhYi5jIFwKIAltYWluLmMgXAogCW1hcmsuYyBcCiAJbWVtZmlsZS5jIFwKQEAgLTY0LDcgKzY0LDcgQEAKIAlvcHMuYyBcCiAJb3B0aW9uLmMgXAogCW9zX2FtaWdhLmMgXAotCXBvcHVwbWVudS5jIFwKKwlwb3B1cG1udS5jIFwKIAlxdWlja2ZpeC5jIFwKIAlyZWdleHAuYyBcCiAJc2NyZWVuLmMgXApAQCAtOTUsNyArOTUsNyBAQAogCW9iai9mb2xkLm8gXAogCW9iai9nZXRjaGFyLm8gXAogCW9iai9oYXJkY29weS5vIFwKLQlvYmovaGFzaHRhYmxlLm8gXAorCW9iai9oYXNodGFiLm8gXAogCW9iai9tYWluLm8gXAogCW9iai9tYXJrLm8gXAogCW9iai9tZW1maWxlLm8gXApAQCAtMTEwLDcgKzExMCw3IEBACiAJb2JqL29wcy5vIFwKIAlvYmovb3B0aW9uLm8gXAogCW9iai9vc19hbWlnYS5vIFwKLQlvYmovcG9wdXBtZW51Lm8gXAorCW9iai9wb3B1cG1udS5vIFwKIAlvYmovcXVpY2tmaXgubyBcCiAJb2JqL3JlZ2V4cC5vIFwKIAlvYmovc2NyZWVuLm8gXApAQCAtMTM5LDcgKzEzOSw3IEBACiAJcHJvdG8vZm9sZC5wcm8gXAogCXByb3RvL2dldGNoYXIucHJvIFwKIAlwcm90by9oYXJkY29weS5wcm8gXAotCXByb3RvL2hhc2h0YWJsZS5wcm8gXAorCXByb3RvL2hhc2h0YWIucHJvIFwKIAlwcm90by9tYWluLnBybyBcCiAJcHJvdG8vbWFyay5wcm8gXAogCXByb3RvL21lbWZpbGUucHJvIFwKQEAgLTE1NCw3ICsxNTQsNyBAQAogCXByb3RvL29wcy5wcm8gXAogCXByb3RvL29wdGlvbi5wcm8gXAogCXByb3RvL29zX2FtaWdhLnBybyBcCi0JcHJvdG8vcG9wdXBtZW51LnBybyBcCisJcHJvdG8vcG9wdXBtbnUucHJvIFwKIAlwcm90by9xdWlja2ZpeC5wcm8gXAogCXByb3RvL3JlZ2V4cC5wcm8gXAogCXByb3RvL3NjcmVlbi5wcm8gXApAQCAtMjU4LDggKzI1OCw4IEBACiBvYmovaGFyZGNvcHkubzoJaGFyZGNvcHkuYwogCSQoQ0NTWU0pICRAIGhhcmRjb3B5LmMKIAotb2JqL2hhc2h0YWJsZS5vOgloYXNodGFibGUuYwotCSQoQ0NTWU0pICRAIGhhc2h0YWJsZS5jCitvYmovaGFzaHRhYi5vOgloYXNodGFiLmMKKwkkKENDU1lNKSAkQCBoYXNodGFiLmMKIAogIyBEb24ndCB1c2UgJChTWU1TKSBoZXJlLCBiZWNhdXNlIG1haW4uYyBkZWZpbmVzIEVYVEVSTgogb2JqL21haW4ubzoJbWFpbi5jIG9wdGlvbi5oIGdsb2JhbHMuaApAQCAtMzA2LDggKzMwNiw4IEBACiBvYmovb3NfYW1pZ2EubzoJb3NfYW1pZ2EuYwogCSQoQ0NTWU0pICRAIG9zX2FtaWdhLmMKIAotb2JqL3BvcHVwbWVudS5vOglwb3B1cG1lbnUuYwotCSQoQ0NTWU0pICRAIHBvcHVwbWVudS5jCitvYmovcG9wdXBtbnUubzoJcG9wdXBtbnUuYworCSQoQ0NTWU0pICRAIHBvcHVwbW51LmMKIAogb2JqL3F1aWNrZml4Lm86CXF1aWNrZml4LmMKIAkkKENDU1lNKSAkQCBxdWlja2ZpeC5jCmRpZmYgLS1naXQgYS9zcmMvTWFrZV9taW5nLm1hayBiL3NyYy9NYWtlX21pbmcubWFrCmluZGV4IDdiNjAxY2MuLmUwOWJhOGMgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX21pbmcubWFrCisrKyBiL3NyYy9NYWtlX21pbmcubWFrCkBAIC0zNzIsNyArMzcyLDcgQEAKIAkkKE9VVERJUikvZm9sZC5vIFwKIAkkKE9VVERJUikvZ2V0Y2hhci5vIFwKIAkkKE9VVERJUikvaGFyZGNvcHkubyBcCi0JJChPVVRESVIpL2hhc2h0YWJsZS5vIFwKKwkkKE9VVERJUikvaGFzaHRhYi5vIFwKIAkkKE9VVERJUikvbWFpbi5vIFwKIAkkKE9VVERJUikvbWFyay5vIFwKIAkkKE9VVERJUikvbWVtZmlsZS5vIFwKQEAgLTM4OSw3ICszODksNyBAQAogCSQoT1VURElSKS9vc193aW4zMi5vIFwKIAkkKE9VVERJUikvb3NfbXN3aW4ubyBcCiAJJChPVVRESVIpL3BhdGhkZWYubyBcCi0JJChPVVRESVIpL3BvcHVwbWVudS5vIFwKKwkkKE9VVERJUikvcG9wdXBtbnUubyBcCiAJJChPVVRESVIpL3F1aWNrZml4Lm8gXAogCSQoT1VURElSKS9yZWdleHAubyBcCiAJJChPVVRESVIpL3NjcmVlbi5vIFwKZGlmZiAtLWdpdCBhL3NyYy9NYWtlX212Yy5tYWsgYi9zcmMvTWFrZV9tdmMubWFrCmluZGV4IGRiZWJiZDcuLjliYjA0ODcgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX212Yy5tYWsKKysrIGIvc3JjL01ha2VfbXZjLm1hawpAQCAtMzkwLDcgKzM5MCw3IEBACiAJJChPVVRESVIpXGZvbGQub2JqIFwKIAkkKE9VVERJUilcZ2V0Y2hhci5vYmogXAogCSQoT1VURElSKVxoYXJkY29weS5vYmogXAotCSQoT1VURElSKVxoYXNodGFibGUub2JqIFwKKwkkKE9VVERJUilcaGFzaHRhYi5vYmogXAogCSQoT1VURElSKVxtYWluLm9iaiBcCiAJJChPVVRESVIpXG1hcmsub2JqIFwKIAkkKE9VVERJUilcbWJ5dGUub2JqIFwKQEAgLTQwNyw3ICs0MDcsNyBAQAogCSQoT1VURElSKVxvc19tc3dpbi5vYmogXAogCSQoT1VURElSKVxvc193aW4zMi5vYmogXAogCSQoT1VURElSKVxwYXRoZGVmLm9iaiBcCi0JJChPVVRESVIpXHBvcHVwbWVudS5vYmogXAorCSQoT1VURElSKVxwb3B1cG1udS5vYmogXAogCSQoT1VURElSKVxxdWlja2ZpeC5vYmogXAogCSQoT1VURElSKVxyZWdleHAub2JqIFwKIAkkKE9VVERJUilcc2NyZWVuLm9iaiBcCkBAIC04MjgsNyArODI4LDcgQEAKIAogJChPVVRESVIpL2hhcmRjb3B5Lm9iajoJJChPVVRESVIpIGhhcmRjb3B5LmMgICQoSU5DTCkKIAotJChPVVRESVIpL2hhc2h0YWJsZS5vYmo6CSQoT1VURElSKSBoYXNodGFibGUuYyAgJChJTkNMKQorJChPVVRESVIpL2hhc2h0YWIub2JqOgkkKE9VVERJUikgaGFzaHRhYi5jICAkKElOQ0wpCiAKICQoT1VURElSKS9ndWkub2JqOgkkKE9VVERJUikgZ3VpLmMgICQoSU5DTCkgJChHVUlfSU5DTCkKIApAQCAtOTAzLDcgKzkwMyw3IEBACiAkKE9VVERJUikvcGF0aGRlZi5vYmo6CSQoT1VURElSKSAkKFBBVEhERUZfU1JDKSAkKElOQ0wpCiAJJChDQykgJChDRkxBR1MpICQoUEFUSERFRl9TUkMpCiAKLSQoT1VURElSKS9wb3B1cG1lbnUub2JqOgkkKE9VVERJUikgcG9wdXBtZW51LmMgICQoSU5DTCkKKyQoT1VURElSKS9wb3B1cG1udS5vYmo6CSQoT1VURElSKSBwb3B1cG1udS5jICAkKElOQ0wpCiAKICQoT1VURElSKS9xdWlja2ZpeC5vYmo6CSQoT1VURElSKSBxdWlja2ZpeC5jICAkKElOQ0wpCiAKQEAgLTk3OSw3ICs5NzksNyBAQAogCXByb3RvL2ZpbGVpby5wcm8gXAogCXByb3RvL2dldGNoYXIucHJvIFwKIAlwcm90by9oYXJkY29weS5wcm8gXAotCXByb3RvL2hhc2h0YWJsZS5wcm8gXAorCXByb3RvL2hhc2h0YWIucHJvIFwKIAlwcm90by9tYWluLnBybyBcCiAJcHJvdG8vbWFyay5wcm8gXAogCXByb3RvL21lbWZpbGUucHJvIFwKQEAgLTk5NSw3ICs5OTUsNyBAQAogCXByb3RvL29wdGlvbi5wcm8gXAogCXByb3RvL29zX21zd2luLnBybyBcCiAJcHJvdG8vb3Nfd2luMzIucHJvIFwKLQlwcm90by9wb3B1cG1lbnUucHJvIFwKKwlwcm90by9wb3B1cG1udS5wcm8gXAogCXByb3RvL3F1aWNrZml4LnBybyBcCiAJcHJvdG8vcmVnZXhwLnBybyBcCiAJcHJvdG8vc2NyZWVuLnBybyBcCmRpZmYgLS1naXQgYS9zcmMvTWFrZV9vczIubWFrIGIvc3JjL01ha2Vfb3MyLm1hawppbmRleCAxYTY0YzExLi5lOTBmMjNlIDEwMDY0NAotLS0gYS9zcmMvTWFrZV9vczIubWFrCisrKyBiL3NyYy9NYWtlX29zMi5tYWsKQEAgLTU0LDcgKzU0LDcgQEAKIAlmb2xkLm8gXAogCWdldGNoYXIubyBcCiAJaGFyZGNvcHkubyBcCi0JaGFzaHRhYmxlLm8gXAorCWhhc2h0YWIubyBcCiAJbWFpbi5vIFwKIAltYXJrLm8gXAogCW1lbWZpbGUubyBcCkBAIC02OCw3ICs2OCw3IEBACiAJbm9ybWFsLm8gXAogCW9wcy5vIFwKIAlvcHRpb24ubyBcCi0JcG9wdXBtZW51Lm8gXAorCXBvcHVwbW51Lm8gXAogCXF1aWNrZml4Lm8gXAogCXJlZ2V4cC5vIFwKIAlzY3JlZW4ubyBcCkBAIC0xMjcsNyArMTI3LDcgQEAKIGZvbGQubzoJCWZvbGQuYyAgJChJTkNMKQogZ2V0Y2hhci5vOglnZXRjaGFyLmMgICQoSU5DTCkKIGhhcmRjb3B5Lm86CWhhcmRjb3B5LmMgICQoSU5DTCkKLWhhc2h0YWJsZS5vOgloYXNodGFibGUuYyAgJChJTkNMKQoraGFzaHRhYi5vOgloYXNodGFiLmMgICQoSU5DTCkKIG1haW4ubzoJCW1haW4uYyAgJChJTkNMKQogbWFyay5vOgkJbWFyay5jICAkKElOQ0wpCiBtZW1maWxlLm86CW1lbWZpbGUuYyAgJChJTkNMKQpAQCAtMTQxLDcgKzE0MSw3IEBACiBub3JtYWwubzoJbm9ybWFsLmMgICQoSU5DTCkKIG9wcy5vOgkJb3BzLmMgICQoSU5DTCkKIG9wdGlvbi5vOglvcHRpb24uYyAgJChJTkNMKQotcG9wdXBtZW51Lm86CXBvcHVwbWVudS5jICAkKElOQ0wpCitwb3B1cG1udS5vOglwb3B1cG1udS5jICAkKElOQ0wpCiBxdWlja2ZpeC5vOglxdWlja2ZpeC5jICAkKElOQ0wpCiByZWdleHAubzoJcmVnZXhwLmMgICQoSU5DTCkKIHNjcmVlbi5vOglzY3JlZW4uYyAgJChJTkNMKQpkaWZmIC0tZ2l0IGEvc3JjL01ha2Vfcm8ubWFrIGIvc3JjL01ha2Vfcm8ubWFrCmluZGV4IDE1Nzc0MDkuLjIwM2ExOGEgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX3JvLm1haworKysgYi9zcmMvTWFrZV9yby5tYWsKQEAgLTEzLDkgKzEzLDkgQEAKIAogT0JKUyA9ICBvLmJ1ZmZlciBvLmNoYXJzZXQgby5kaWZmIG8uZGlncmFwaCBvLmVkaXQgby5ldmFsIG8uZXhfY21kcyBvLmV4X2NtZHMyICBcCiAJby5leF9kb2NtZCBvLmV4X2V2YWwgby5leF9nZXRsbiBvLmZpbGVpbyBvLmZvbGQgby5nZXRjaGFyIFwKLQlvLmhhcmRjb3B5IG8uaGFzaHRhYmxlIG8ubWFpbiBvLm1hcmsgby5tYnl0ZSAgXAorCW8uaGFyZGNvcHkgby5oYXNodGFiIG8ubWFpbiBvLm1hcmsgby5tYnl0ZSAgXAogCW8ubWVtZmlsZSBvLm1lbWxpbmUgby5tZW51IG8ubWVzc2FnZSBvLm1pc2MxIG8ubWlzYzIgby5tb3ZlICAgICBcCi0Jby5ub3JtYWwgby5vcHMgby5vcHRpb24gby5wb3B1cG1lbnUgby5xdWlja2ZpeCBvLnJlZ2V4cCBvLnNjcmVlbiBcCisJby5ub3JtYWwgby5vcHMgby5vcHRpb24gby5wb3B1cG1udSBvLnF1aWNrZml4IG8ucmVnZXhwIG8uc2NyZWVuIFwKIAlvLnNlYXJjaCAgIFwKIAlvLnNwZWxsIG8uc3ludGF4IG8udGFnIG8udGVybSBvLnRlcm1saWIgby51aSBvLnVuZG8gby52ZXJzaW9uCVwKIAlvLndpbmRvdyBvLm9zX3Jpc2NvcyBvLnN3aXMgby5ndWkgby5ndWlfcmlzY29zCkBAIC02OSw3ICs2OSw3IEBACiAKIG8uaGFyZGNvcHk6CWMuaGFyZGNvcHkKIAotby5oYXNodGFibGU6CWMuaGFzaHRhYmxlCitvLmhhc2h0YWI6CWMuaGFzaHRhYgogCiBvLmd1aToJCWMuZ3VpCiAKQEAgLTEwNSw3ICsxMDUsNyBAQAogCiBvLnB0eToJCWMucHR5CiAKLW8ucG9wdXBtZW51OgljLnBvcHVwbWVudQorby5wb3B1cG1udToJYy5wb3B1cG1udQogCiBvLnF1aWNrZml4OgljLnF1aWNrZml4CiAKZGlmZiAtLWdpdCBhL3NyYy9NYWtlX3Nhcy5tYWsgYi9zcmMvTWFrZV9zYXMubWFrCmluZGV4IDljYWFkZDAuLjk4ZWM1MjggMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX3Nhcy5tYWsKKysrIGIvc3JjL01ha2Vfc2FzLm1hawpAQCAtMTA0LDcgKzEwNCw3IEBACiAJZm9sZC5jIFwKIAlnZXRjaGFyLmMgXAogCWhhcmRjb3B5LmMgXAotCWhhc2h0YWJsZS5jIFwKKwloYXNodGFiLmMgXAogCW1haW4uYyBcCiAJbWFyay5jIFwKIAltZW1maWxlLmMgXApAQCAtMTE5LDcgKzExOSw3IEBACiAJb3BzLmMgXAogCW9wdGlvbi5jIFwKIAlvc19hbWlnYS5jIFwKLQlwb3B1cG1lbnUuYyBcCisJcG9wdXBtbnUuYyBcCiAJcXVpY2tmaXguYyBcCiAJcmVnZXhwLmMgXAogCXNjcmVlbi5jIFwKQEAgLTE0OSw3ICsxNDksNyBAQAogCWZvbGQubyBcCiAJZ2V0Y2hhci5vIFwKIAloYXJkY29weS5vIFwKLQloYXNodGFibGUubyBcCisJaGFzaHRhYi5vIFwKIAltYWluLm8gXAogCW1hcmsubyBcCiAJbWVtZmlsZS5vIFwKQEAgLTE2NCw3ICsxNjQsNyBAQAogCW9wcy5vIFwKIAlvcHRpb24ubyBcCiAJb3NfYW1pZ2EubyBcCi0JcG9wdXBtZW51Lm8gXAorCXBvcHVwbW51Lm8gXAogCXF1aWNrZml4Lm8gXAogCXJlZ2V4cC5vIFwKIAlzY3JlZW4ubyBcCkBAIC0xOTQsNyArMTk0LDcgQEAKIAlwcm90by9mb2xkLnBybyBcCiAJcHJvdG8vZ2V0Y2hhci5wcm8gXAogCXByb3RvL2hhcmRjb3B5LnBybyBcCi0JcHJvdG8vaGFzaHRhYmxlLnBybyBcCisJcHJvdG8vaGFzaHRhYi5wcm8gXAogCXByb3RvL21haW4ucHJvIFwKIAlwcm90by9tYXJrLnBybyBcCiAJcHJvdG8vbWVtZmlsZS5wcm8gXApAQCAtMjA5LDcgKzIwOSw3IEBACiAJcHJvdG8vb3BzLnBybyBcCiAJcHJvdG8vb3B0aW9uLnBybyBcCiAJcHJvdG8vb3NfYW1pZ2EucHJvIFwKLQlwcm90by9wb3B1cG1lbnUucHJvIFwKKwlwcm90by9wb3B1cG1udS5wcm8gXAogCXByb3RvL3F1aWNrZml4LnBybyBcCiAJcHJvdG8vcmVnZXhwLnBybyBcCiAJcHJvdG8vc2NyZWVuLnBybyBcCkBAIC0zMDgsOCArMzA4LDggQEAKIHByb3RvL2dldGNoYXIucHJvOglnZXRjaGFyLmMKIGhhcmRjb3B5Lm86CQloYXJkY29weS5jCiBwcm90by9oYXJkY29weS5wcm86CWhhcmRjb3B5LmMKLWhhc2h0YWJsZS5vOgkJaGFzaHRhYmxlLmMKLXByb3RvL2hhc2h0YWJsZS5wcm86CWhhc2h0YWJsZS5jCitoYXNodGFiLm86CQloYXNodGFiLmMKK3Byb3RvL2hhc2h0YWIucHJvOgloYXNodGFiLmMKIG1haW4ubzoJCQltYWluLmMKIHByb3RvL21haW4ucHJvOgkJbWFpbi5jCiBtYXJrLm86CQkJbWFyay5jCkBAIC0zMzgsOCArMzM4LDggQEAKIHByb3RvL29wdGlvbi5wcm86CW9wdGlvbi5jCiBvc19hbWlnYS5vOgkJb3NfYW1pZ2EuYwogcHJvdG8vb3NfYW1pZ2EucHJvOglvc19hbWlnYS5jCi1wb3B1cG1lbnUubzoJCXBvcHVwbWVudS5jCi1wcm90by9wb3B1cG1lbnUucHJvOglwb3B1cG1lbnUuYworcG9wdXBtbnUubzoJCXBvcHVwbW51LmMKK3Byb3RvL3BvcHVwbW51LnBybzoJcG9wdXBtbnUuYwogcXVpY2tmaXgubzoJCXF1aWNrZml4LmMKIHByb3RvL3F1aWNrZml4LnBybzoJcXVpY2tmaXguYwogcmVnZXhwLm86CQlyZWdleHAuYwpkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlCmluZGV4IDRjNDE1Y2IuLjg2MjkxYjYgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlZmlsZQorKysgYi9zcmMvTWFrZWZpbGUKQEAgLTMwNCw3ICszMDQsNyBAQAogCiAjIGV4YW1wbGVzIChjYW4gb25seSB1c2Ugb25lISk6CiAjQ09ORl9BUkdTID0gLS1leGVjLXByZWZpeD0vdXNyCi0jQ09ORl9BUkdTID0gLS13aXRoLXZpbS1uYW1lPXZpbTYgLS13aXRoLWV4LW5hbWU9ZXg2IC0td2l0aC12aWV3LW5hbWU9dmlldzYKKyNDT05GX0FSR1MgPSAtLXdpdGgtdmltLW5hbWU9dmltNyAtLXdpdGgtZXgtbmFtZT1leDcgLS13aXRoLXZpZXctbmFtZT12aWV3NwogI0NPTkZfQVJHUyA9IC0td2l0aC1nbG9iYWwtcnVudGltZT0vZXRjL3ZpbQogCiAjIFVzZSB0aGlzIG9uZSBpZiB5b3UgZGlzdHJpYnV0ZSBhIG1vZGlmaWVkIHZlcnNpb24gb2YgVmltLgpAQCAtODc2LDcgKzg3Niw3IEBACiAKICMjIyBWaW0gdmVyc2lvbiAoYWRqdXN0ZWQgYnkgYSBzY3JpcHQpCiBWSU1NQUpPUiA9IDcKLVZJTU1JTk9SID0gMGFhCitWSU1NSU5PUiA9IDBiCiAKICMjIyBMb2NhdGlvbiBvZiBWaW0gZmlsZXMgKHNob3VsZCBub3QgbmVlZCB0byBiZSBjaGFuZ2VkLCBhbmQgIHt7ezEKICMjIyBzb21lIHRoaW5ncyBtaWdodCBub3Qgd29yayB3aGVuIHRoZXkgYXJlIGNoYW5nZWQhKQpAQCAtMTM0OCw3ICsxMzQ4LDcgQEAKIAlmb2xkLmMgXAogCWdldGNoYXIuYyBcCiAJaGFyZGNvcHkuYyBcCi0JaGFzaHRhYmxlLmMgXAorCWhhc2h0YWIuYyBcCiAJaWZfY3Njb3BlLmMgXAogCWlmX3hjbWRzcnYuYyBcCiAJbWFpbi5jIFwKQEAgLTEzNjYsNyArMTM2Niw3IEBACiAJb3B0aW9uLmMgXAogCW9zX3VuaXguYyBcCiAJYXV0by9wYXRoZGVmLmMgXAotCXBvcHVwbWVudS5jIFwKKwlwb3B1cG1udS5jIFwKIAlxdWlja2ZpeC5jIFwKIAlyZWdleHAuYyBcCiAJc2NyZWVuLmMgXApAQCAtMTQxOCw3ICsxNDE4LDcgQEAKIAlvYmplY3RzL2ZvbGQubyBcCiAJb2JqZWN0cy9nZXRjaGFyLm8gXAogCW9iamVjdHMvaGFyZGNvcHkubyBcCi0Jb2JqZWN0cy9oYXNodGFibGUubyBcCisJb2JqZWN0cy9oYXNodGFiLm8gXAogCSQoSEFOR1VMSU5fT0JKKSBcCiAJb2JqZWN0cy9pZl9jc2NvcGUubyBcCiAJb2JqZWN0cy9pZl94Y21kc3J2Lm8gXApAQCAtMTQzNyw3ICsxNDM3LDcgQEAKIAlvYmplY3RzL29wdGlvbi5vIFwKIAlvYmplY3RzL29zX3VuaXgubyBcCiAJb2JqZWN0cy9wYXRoZGVmLm8gXAotCW9iamVjdHMvcG9wdXBtZW51Lm8gXAorCW9iamVjdHMvcG9wdXBtbnUubyBcCiAJb2JqZWN0cy9xdWlja2ZpeC5vIFwKIAlvYmplY3RzL3JlZ2V4cC5vIFwKIAlvYmplY3RzL3NjcmVlbi5vIFwKQEAgLTE0NzcsNyArMTQ3Nyw3IEBACiAJZm9sZC5wcm8gXAogCWdldGNoYXIucHJvIFwKIAloYXJkY29weS5wcm8gXAotCWhhc2h0YWJsZS5wcm8gXAorCWhhc2h0YWIucHJvIFwKIAloYW5ndWxpbi5wcm8gXAogCWlmX2NzY29wZS5wcm8gXAogCWlmX3hjbWRzcnYucHJvIFwKQEAgLTE0OTcsNyArMTQ5Nyw3IEBACiAJb3BzLnBybyBcCiAJb3B0aW9uLnBybyBcCiAJb3NfdW5peC5wcm8gXAotCXBvcHVwbWVudS5wcm8gXAorCXBvcHVwbW51LnBybyBcCiAJcXVpY2tmaXgucHJvIFwKIAlyZWdleHAucHJvIFwKIAlzY3JlZW4ucHJvIFwKQEAgLTIyOTgsOCArMjI5OCw4IEBACiBvYmplY3RzL2hhcmRjb3B5Lm86IGhhcmRjb3B5LmMKIAkkKENDQykgLW8gJEAgaGFyZGNvcHkuYwogCi1vYmplY3RzL2hhc2h0YWJsZS5vOiBoYXNodGFibGUuYwotCSQoQ0NDKSAtbyAkQCBoYXNodGFibGUuYworb2JqZWN0cy9oYXNodGFiLm86IGhhc2h0YWIuYworCSQoQ0NDKSAtbyAkQCBoYXNodGFiLmMKIAogb2JqZWN0cy9ndWkubzogZ3VpLmMKIAkkKENDQykgLW8gJEAgZ3VpLmMKQEAgLTI0NDUsOCArMjQ0NSw4IEBACiBvYmplY3RzL3B0eS5vOiBwdHkuYwogCSQoQ0NDKSAtbyAkQCBwdHkuYwogCi1vYmplY3RzL3BvcHVwbWVudS5vOiBwb3B1cG1lbnUuYwotCSQoQ0NDKSAtbyAkQCBwb3B1cG1lbnUuYworb2JqZWN0cy9wb3B1cG1udS5vOiBwb3B1cG1udS5jCisJJChDQ0MpIC1vICRAIHBvcHVwbW51LmMKIAogb2JqZWN0cy9xdWlja2ZpeC5vOiBxdWlja2ZpeC5jCiAJJChDQ0MpIC1vICRAIHF1aWNrZml4LmMKQEAgLTI1ODksMjA1ICsyNTg5LDIwMSBAQAogIyMjIChhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSAnbWFrZSBkZXBlbmQnKQogIyMjIERlcGVuZGVuY2llczoKIG9iamVjdHMvYnVmZmVyLm86IGJ1ZmZlci5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oIHZlcnNpb24uaAogb2JqZWN0cy9jaGFyc2V0Lm86IGNoYXJzZXQuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL2RpZmYubzogZGlmZi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvZGlncmFwaC5vOiBkaWdyYXBoLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9lZGl0Lm86IGVkaXQuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL2V2YWwubzogZXZhbC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oIHZlcnNpb24uaAogb2JqZWN0cy9leF9jbWRzLm86IGV4X2NtZHMuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmggdmVyc2lvbi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaCB2ZXJzaW9uLmgKIG9iamVjdHMvZXhfY21kczIubzogZXhfY21kczIuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggdmVyc2lvbi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggdmVyc2lvbi5oCiBvYmplY3RzL2V4X2RvY21kLm86IGV4X2RvY21kLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvZXhfZXZhbC5vOiBleF9ldmFsLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9leF9nZXRsbi5vOiBleF9nZXRsbi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIFwKKyAgcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBcCisgIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oCiBvYmplY3RzL2ZpbGVpby5vOiBmaWxlaW8uYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL2ZvbGQubzogZm9sZC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvZ2V0Y2hhci5vOiBnZXRjaGFyLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9oYXJkY29weS5vOiBoYXJkY29weS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKLW9iamVjdHMvaGFzaHRhYmxlLm86IGhhc2h0YWJsZS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIFwKKyAgcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBcCisgIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oIHZlcnNpb24uaAorb2JqZWN0cy9oYXNodGFiLm86IGhhc2h0YWIuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL2lmX2NzY29wZS5vOiBpZl9jc2NvcGUuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggaWZfY3Njb3BlLmgKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBpZl9jc2NvcGUuaAogb2JqZWN0cy9pZl94Y21kc3J2Lm86IGlmX3hjbWRzcnYuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggdmVyc2lvbi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggdmVyc2lvbi5oCiBvYmplY3RzL21haW4ubzogbWFpbi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCBmYXJzaS5jIGFyYWJpYy5jCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaCBmYXJzaS5jIGFyYWJpYy5jCiBvYmplY3RzL21hcmsubzogbWFyay5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvbWVtZmlsZS5vOiBtZW1maWxlLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9tZW1saW5lLm86IG1lbWxpbmUuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL21lbnUubzogbWVudS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvbWVzc2FnZS5vOiBtZXNzYWdlLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9taXNjMS5vOiBtaXNjMS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oIHZlcnNpb24uaAogb2JqZWN0cy9taXNjMi5vOiBtaXNjMi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvbW92ZS5vOiBtb3ZlLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9tYnl0ZS5vOiBtYnl0ZS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvbm9ybWFsLm86IG5vcm1hbC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvb3BzLm86IG9wcy5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggYXNjaWkuaCBcCi0gIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKKyAgcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAogb2JqZWN0cy9vcHRpb24ubzogb3B0aW9uLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9vc191bml4Lm86IG9zX3VuaXguYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmggb3NfdW5peHguaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmggb3NfdW5peHguaAogb2JqZWN0cy9wYXRoZGVmLm86IGF1dG8vcGF0aGRlZi5jIC4vdmltLmggLi9hdXRvL2NvbmZpZy5oIC4vZmVhdHVyZS5oIC4vb3NfdW5peC5oIFwKLSAgLi9hdXRvL29zZGVmLmggLi9hc2NpaS5oIC4va2V5bWFwLmggLi90ZXJtLmggLi9tYWNyb3MuaCAuL3N0cnVjdHMuaCBcCi0gIC4vcmVnZXhwLmggLi9ndWkuaCAuL2d1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gLi9vcHRpb24uaCBcCi0gIC4vZXhfY21kcy5oIC4vcHJvdG8uaCAuL2dsb2JhbHMuaCAuL2ZhcnNpLmggLi9hcmFiaWMuaCAuL2lmX3NuaWZmLmgKLW9iamVjdHMvcG9wdXBtZW51Lm86IHBvcHVwbWVudS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICAuL2F1dG8vb3NkZWYuaCAuL2FzY2lpLmggLi9rZXltYXAuaCAuL3Rlcm0uaCAuL21hY3Jvcy5oIC4vb3B0aW9uLmggXAorICAuL3N0cnVjdHMuaCAuL3JlZ2V4cC5oIC4vZ3VpLmggLi9ndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIFwKKyAgLi9leF9jbWRzLmggLi9wcm90by5oIC4vZ2xvYmFscy5oIC4vZmFyc2kuaCAuL2FyYWJpYy5oCitvYmplY3RzL3BvcHVwbW51Lm86IHBvcHVwbW51LmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAogb2JqZWN0cy9xdWlja2ZpeC5vOiBxdWlja2ZpeC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIFwKKyAgcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBcCisgIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oCiBvYmplY3RzL3JlZ2V4cC5vOiByZWdleHAuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL3NjcmVlbi5vOiBzY3JlZW4uYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL3NlYXJjaC5vOiBzZWFyY2guYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL3NwZWxsLm86IHNwZWxsLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy9zeW50YXgubzogc3ludGF4LmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy90YWcubzogdGFnLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBhc2NpaS5oIFwKLSAga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAorICBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oCiBvYmplY3RzL3Rlcm0ubzogdGVybS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvdWkubzogdWkuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIGFzY2lpLmggXAotICBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCisgIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvdW5kby5vOiB1bmRvLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBcCi0gIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBcCi0gIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAotICBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaAogb2JqZWN0cy92ZXJzaW9uLm86IHZlcnNpb24uYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmggdmVyc2lvbi5oCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaCB2ZXJzaW9uLmgKIG9iamVjdHMvd2luZG93Lm86IHdpbmRvdy5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAorICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKKyAgYXJhYmljLmgKIG9iamVjdHMvZ3VpLm86IGd1aS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggYXNjaWkuaCBcCi0gIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKKyAgcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAogb2JqZWN0cy9ndWlfZ3RrLm86IGd1aV9ndGsuYyBndWlfZ3RrX2YuaCB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggLi4vcGl4bWFwcy9zdG9ja19pY29ucy5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggLi4vcGl4bWFwcy9zdG9ja19pY29ucy5oCiBvYmplY3RzL2d1aV9ndGtfZi5vOiBndWlfZ3RrX2YuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggZ3VpX2d0a19mLmgKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBndWlfZ3RrX2YuaAogb2JqZWN0cy9ndWlfbW90aWYubzogZ3VpX21vdGlmLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oIGd1aV94bWVidy5oIC4uL3BpeG1hcHMvYWxlcnQueHBtIFwKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBndWlfeG1lYncuaCAuLi9waXhtYXBzL2FsZXJ0LnhwbSBcCiAgIC4uL3BpeG1hcHMvZXJyb3IueHBtIC4uL3BpeG1hcHMvZ2VuZXJpYy54cG0gLi4vcGl4bWFwcy9pbmZvLnhwbSBcCiAgIC4uL3BpeG1hcHMvcXVlc3QueHBtIGd1aV94MTFfcG0uaCAuLi9waXhtYXBzL3RiX25ldy54cG0gXAogICAuLi9waXhtYXBzL3RiX29wZW4ueHBtIC4uL3BpeG1hcHMvdGJfY2xvc2UueHBtIC4uL3BpeG1hcHMvdGJfc2F2ZS54cG0gXApAQCAtMjgwNiwxNyArMjgwMiwxNyBAQAogICAuLi9waXhtYXBzL3RiX3ZzcGxpdC54cG0gLi4vcGl4bWFwcy90Yl9tYXh3aWR0aC54cG0gXAogICAuLi9waXhtYXBzL3RiX21pbndpZHRoLnhwbQogb2JqZWN0cy9ndWlfeG1kbGcubzogZ3VpX3htZGxnLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvZ3VpX3htZWJ3Lm86IGd1aV94bWVidy5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCBndWlfeG1lYndwLmggZ3VpX3htZWJ3LmgKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBndWlfeG1lYndwLmggZ3VpX3htZWJ3LmgKIG9iamVjdHMvZ3VpX2F0aGVuYS5vOiBndWlfYXRoZW5hLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oIGd1aV9hdF9zYi5oIGd1aV94MTFfcG0uaCBcCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggZ3VpX2F0X3NiLmggZ3VpX3gxMV9wbS5oIFwKICAgLi4vcGl4bWFwcy90Yl9uZXcueHBtIC4uL3BpeG1hcHMvdGJfb3Blbi54cG0gLi4vcGl4bWFwcy90Yl9jbG9zZS54cG0gXAogICAuLi9waXhtYXBzL3RiX3NhdmUueHBtIC4uL3BpeG1hcHMvdGJfcHJpbnQueHBtIC4uL3BpeG1hcHMvdGJfY3V0LnhwbSBcCiAgIC4uL3BpeG1hcHMvdGJfY29weS54cG0gLi4vcGl4bWFwcy90Yl9wYXN0ZS54cG0gLi4vcGl4bWFwcy90Yl9maW5kLnhwbSBcCkBAIC0yODMzLDY5ICsyODI5LDcyIEBACiAgIC4uL3BpeG1hcHMvdGJfdnNwbGl0LnhwbSAuLi9waXhtYXBzL3RiX21heHdpZHRoLnhwbSBcCiAgIC4uL3BpeG1hcHMvdGJfbWlud2lkdGgueHBtCiBvYmplY3RzL2d1aV9ndGtfeDExLm86IGd1aV9ndGtfeDExLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oIGd1aV9ndGtfZi5oIC4uL3J1bnRpbWUvdmltMzJ4MzIueHBtIFwKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBndWlfZ3RrX2YuaCAuLi9ydW50aW1lL3ZpbTMyeDMyLnhwbSBcCiAgIC4uL3J1bnRpbWUvdmltMTZ4MTYueHBtIC4uL3J1bnRpbWUvdmltNDh4NDgueHBtCiBvYmplY3RzL2d1aV94MTEubzogZ3VpX3gxMS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCAuLi9ydW50aW1lL3ZpbTMyeDMyLnhwbSAuLi9ydW50aW1lL3ZpbTE2eDE2LnhwbSBcCisgIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCisgIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggXAorICBhcmFiaWMuaCAuLi9ydW50aW1lL3ZpbTMyeDMyLnhwbSAuLi9ydW50aW1lL3ZpbTE2eDE2LnhwbSBcCiAgIC4uL3J1bnRpbWUvdmltNDh4NDgueHBtCiBvYmplY3RzL2d1aV9hdF9zYi5vOiBndWlfYXRfc2IuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAotICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKLSAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggXAotICBmYXJzaS5oIGFyYWJpYy5oIGlmX3NuaWZmLmggZ3VpX2F0X3NiLmgKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBndWlfYXRfc2IuaAogb2JqZWN0cy9ndWlfYXRfZnMubzogZ3VpX2F0X2ZzLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oIGd1aV9hdF9zYi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggZ3VpX2F0X3NiLmgKIG9iamVjdHMvcHR5Lm86IHB0eS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggYXNjaWkuaCBcCi0gIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaAorICBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKKyAgcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAogb2JqZWN0cy9oYW5ndWxpbi5vOiBoYW5ndWxpbi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIFwKKyAgcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBcCisgIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oCitvYmplY3RzL2lmX216c2NoLm86IGlmX216c2NoLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCBpZl9tenNjaC5oCiBvYmplY3RzL2lmX3BlcmwubzogYXV0by9pZl9wZXJsLmMgLi92aW0uaCAuL2F1dG8vY29uZmlnLmggLi9mZWF0dXJlLmggLi9vc191bml4LmggXAotICAuL2F1dG8vb3NkZWYuaCAuL2FzY2lpLmggLi9rZXltYXAuaCAuL3Rlcm0uaCAuL21hY3Jvcy5oIC4vc3RydWN0cy5oIFwKLSAgLi9yZWdleHAuaCAuL2d1aS5oIC4vZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyAuL29wdGlvbi5oIFwKLSAgLi9leF9jbWRzLmggLi9wcm90by5oIC4vZ2xvYmFscy5oIC4vZmFyc2kuaCAuL2FyYWJpYy5oIC4vaWZfc25pZmYuaAorICAuL2F1dG8vb3NkZWYuaCAuL2FzY2lpLmggLi9rZXltYXAuaCAuL3Rlcm0uaCAuL21hY3Jvcy5oIC4vb3B0aW9uLmggXAorICAuL3N0cnVjdHMuaCAuL3JlZ2V4cC5oIC4vZ3VpLmggLi9ndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIFwKKyAgLi9leF9jbWRzLmggLi9wcm90by5oIC4vZ2xvYmFscy5oIC4vZmFyc2kuaCAuL2FyYWJpYy5oCiBvYmplY3RzL2lmX3BlcmxzZmlvLm86IGlmX3BlcmxzZmlvLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvaWZfcHl0aG9uLm86IGlmX3B5dGhvbi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaAorICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIFwKKyAgcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBcCisgIGdsb2JhbHMuaCBmYXJzaS5oIGFyYWJpYy5oCiBvYmplY3RzL2lmX3RjbC5vOiBpZl90Y2wuYyB2aW0uaCBhdXRvL2NvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggYXV0by9vc2RlZi5oIFwKLSAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIFwKLSAgcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCi0gIGFyYWJpYy5oIGlmX3NuaWZmLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oCiBvYmplY3RzL2lmX3J1YnkubzogaWZfcnVieS5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBhdXRvL29zZGVmLmggXAotICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggZ3VpX2JldmFsLmggXAotICBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBmYXJzaS5oIFwKLSAgYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKKyAgYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggb3B0aW9uLmggc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIFwKKyAgZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBleF9jbWRzLmggcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBcCisgIGFyYWJpYy5oIHZlcnNpb24uaAogb2JqZWN0cy9pZl9zbmlmZi5vOiBpZl9zbmlmZi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCBvc191bml4eC5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggb3NfdW5peHguaAogb2JqZWN0cy9ndWlfYmV2YWwubzogZ3VpX2JldmFsLmMgdmltLmggYXV0by9jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKLSAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBndWkuaCBcCi0gIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gb3B0aW9uLmggZXhfY21kcy5oIHByb3RvLmggZ2xvYmFscy5oIFwKLSAgZmFyc2kuaCBhcmFiaWMuaCBpZl9zbmlmZi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvd29ya3Nob3Aubzogd29ya3Nob3AuYyBhdXRvL2NvbmZpZy5oIGludGVncmF0aW9uLmggdmltLmggZmVhdHVyZS5oIFwKLSAgb3NfdW5peC5oIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggXAotICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBcCi0gIHByb3RvLmggZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmggd29ya3Nob3AuaAorICBvc191bml4LmggYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIFwKKyAgc3RydWN0cy5oIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIFwKKyAgcHJvdG8uaCBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCB2ZXJzaW9uLmggd29ya3Nob3AuaAogb2JqZWN0cy93c2RlYnVnLm86IHdzZGVidWcuYwogb2JqZWN0cy9pbnRlZ3JhdGlvbi5vOiBpbnRlZ3JhdGlvbi5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCBpbnRlZ3JhdGlvbi5oCisgIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBvcHRpb24uaCBzdHJ1Y3RzLmggXAorICByZWdleHAuaCBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIGV4X2NtZHMuaCBwcm90by5oIFwKKyAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmggaW50ZWdyYXRpb24uaAogb2JqZWN0cy9uZXRiZWFucy5vOiBuZXRiZWFucy5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCi0gIGF1dG8vb3NkZWYuaCBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggZ3VpLmggXAotICBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIGdsb2JhbHMuaCBcCi0gIGZhcnNpLmggYXJhYmljLmggaWZfc25pZmYuaCB2ZXJzaW9uLmgKKyAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIG9wdGlvbi5oIHN0cnVjdHMuaCBcCisgIHJlZ2V4cC5oIGd1aS5oIGd1aV9iZXZhbC5oIHByb3RvL2d1aV9iZXZhbC5wcm8gZXhfY21kcy5oIHByb3RvLmggXAorICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaCB2ZXJzaW9uLmgKZGlmZiAtLWdpdCBhL3NyYy9maWxlaW8uYyBiL3NyYy9maWxlaW8uYwppbmRleCBhNWZkZmI3Li5jZjE0YzUxIDEwMDY0NAotLS0gYS9zcmMvZmlsZWlvLmMKKysrIGIvc3JjL2ZpbGVpby5jCkBAIC0xNDMyLDcgKzE0MzIsNiBAQAogCSAgICBpZiAoZmlvX2ZsYWdzICYgRklPX0NPREVQQUdFKQogCSAgICB7CiAJCWNoYXJfdQkqc3JjLCAqZHN0OwotCQlpbnQJdThjOwogCQlXQ0hBUgl1Y3MyYnVmWzNdOwogCQlpbnQJdWNzMmxlbjsKIAkJaW50CWNvZGVwYWdlID0gRklPX0dFVF9DUChmaW9fZmxhZ3MpOwpAQCAtMTQ5Niw3ICsxNDk1LDggQEAKIAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCSAgICB1OGMgPSB1dGZfcHRyMmNoYXIoc3JjKTsKKwkJCSAgICBpbnQJICAgIHU4YyA9IHV0Zl9wdHIyY2hhcihzcmMpOworCiAJCQkgICAgaWYgKHU4YyA+IDB4ZmZmZiB8fCAoKnNyYyA+PSAweDgwICYmIGJ5dGVsZW4gPT0gMSkpCiAJCQkJZm91bmRfYmFkID0gVFJVRTsKIAkJCSAgICB1Y3MyYnVmWzBdID0gdThjOwpkaWZmIC0tZ2l0IGEvc3JjL2hhc2h0YWIuYyBiL3NyYy9oYXNodGFiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMzMDZiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9oYXNodGFiLmMKQEAgLTAsMCArMSw1MTggQEAKKy8qIHZpOnNldCB0cz04IHN0cz00IHN3PTQ6CisgKgorICogVklNIC0gVmkgSU1wcm92ZWQJYnkgQnJhbSBNb29sZW5hYXIKKyAqCisgKiBEbyAiOmhlbHAgdWdhbmRhIiAgaW4gVmltIHRvIHJlYWQgY29weWluZyBhbmQgdXNhZ2UgY29uZGl0aW9ucy4KKyAqIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgorICogU2VlIFJFQURNRS50eHQgZm9yIGFuIG92ZXJ2aWV3IG9mIHRoZSBWaW0gc291cmNlIGNvZGUuCisgKi8KKworLyoKKyAqIGhhc2h0YWIuYzogSGFuZGxpbmcgb2YgYSBoYXNodGFibGUgd2l0aCBWaW0tc3BlY2lmaWMgcHJvcGVydGllcy4KKyAqCisgKiBFYWNoIGl0ZW0gaW4gYSBoYXNodGFibGUgaGFzIGEgTlVMIHRlcm1pbmF0ZWQgc3RyaW5nIGtleS4gIEEga2V5IGNhbiBhcHBlYXIKKyAqIG9ubHkgb25jZSBpbiB0aGUgdGFibGUuCisgKgorICogQSBoYXNoIG51bWJlciBpcyBjb21wdXRlZCBmcm9tIHRoZSBrZXkgZm9yIHF1aWNrIGxvb2t1cC4gIFdoZW4gdGhlIGhhc2hlcworICogb2YgdHdvIGRpZmZlcmVudCBrZXlzIHBvaW50IHRvIHRoZSBzYW1lIGVudHJ5IGFuIGFsZ29yaXRobSBpcyB1c2VkIHRvCisgKiBpdGVyYXRlIG92ZXIgb3RoZXIgZW50cmllcyBpbiB0aGUgdGFibGUgdW50aWwgdGhlIHJpZ2h0IG9uZSBpcyBmb3VuZC4KKyAqIFRvIG1ha2UgdGhlIGl0ZXJhdGlvbiB3b3JrIHJlbW92ZWQga2V5cyBhcmUgZGlmZmVyZW50IGZyb20gZW50cmllcyB3aGVyZSBhCisgKiBrZXkgd2FzIG5ldmVyIHByZXNlbnQuCisgKgorICogVGhlIG1lY2hhbmlzbSBoYXMgYmVlbiBwYXJ0bHkgYmFzZWQgb24gaG93IFB5dGhvbiBEaWN0aW9uYXJpZXMgYXJlCisgKiBpbXBsZW1lbnRlZC4gIFRoZSBhbGdvcml0aG0gaXMgZnJvbSBLbnV0aCBWb2wuIDMsIFNlYy4gNi40LgorICoKKyAqIFRoZSBoYXNodGFibGUgZ3Jvd3MgdG8gYWNjb21tb2RhdGUgbW9yZSBlbnRyaWVzIHdoZW4gbmVlZGVkLiAgQXQgbGVhc3QgMS8zCisgKiBvZiB0aGUgZW50cmllcyBpcyBlbXB0eSB0byBrZWVwIHRoZSBsb29rdXAgZWZmaWNpZW50IChhdCB0aGUgY29zdCBvZiBleHRyYQorICogbWVtb3J5KS4KKyAqLworCisjaW5jbHVkZSAidmltLmgiCisKKyNpZiBkZWZpbmVkKEZFQVRfRVZBTCkgfHwgZGVmaW5lZChGRUFUX1NZTl9ITCkgfHwgZGVmaW5lZChQUk9UTykKKworI2lmIDAKKyMgZGVmaW5lIEhUX0RFQlVHCS8qIGV4dHJhIGNoZWNrcyBmb3IgdGFibGUgY29uc2lzdGVuY3kgIGFuZCBzdGF0aXN0aWNzICovCisKK3N0YXRpYyBsb25nIGhhc2hfY291bnRfbG9va3VwID0gMDsJLyogY291bnQgbnVtYmVyIG9mIGhhc2h0YWIgbG9va3VwcyAqLworc3RhdGljIGxvbmcgaGFzaF9jb3VudF9wZXJ0dXJiID0gMDsJLyogY291bnQgbnVtYmVyIG9mICJtaXNzZXMiICovCisjZW5kaWYKKworLyogTWFnaWMgdmFsdWUgZm9yIGFsZ29yaXRobSB0aGF0IHdhbGtzIHRocm91Z2ggdGhlIGFycmF5LiAqLworI2RlZmluZSBQRVJUVVJCX1NISUZUIDUKKworc3RhdGljIGludCBoYXNoX21heV9yZXNpemUgX19BUkdTKChoYXNodGFiX1QgKmh0LCBpbnQgbWluaXRlbXMpKTsKKworI2lmIDAgLyogY3VycmVudGx5IG5vdCB1c2VkICovCisvKgorICogQ3JlYXRlIGFuIGVtcHR5IGhhc2ggdGFibGUuCisgKiBSZXR1cm5zIE5VTEwgd2hlbiBvdXQgb2YgbWVtb3J5LgorICovCisgICAgaGFzaHRhYl9UICoKK2hhc2hfY3JlYXRlKCkKK3sKKyAgICBoYXNodGFiX1QgKmh0OworCisgICAgaHQgPSAoaGFzaHRhYl9UICopYWxsb2Moc2l6ZW9mKGhhc2h0YWJfVCkpOworICAgIGlmIChodCAhPSBOVUxMKQorCWhhc2hfaW5pdChodCk7CisgICAgcmV0dXJuIGh0OworfQorI2VuZGlmCisKKy8qCisgKiBJbml0aWFsaXplIGFuIGVtcHR5IGhhc2ggdGFibGUuCisgKi8KKyAgICB2b2lkCitoYXNoX2luaXQoaHQpCisgICAgaGFzaHRhYl9UICpodDsKK3sKKyAgICAvKiBUaGlzIHplcm9lcyBhbGwgImh0XyIgZW50cmllcyBhbmQgYWxsIHRoZSAiaGlfa2V5IiBpbiAiaHRfc21hbGxhcnJheSIuICovCisgICAgdmltX21lbXNldChodCwgMCwgc2l6ZW9mKGhhc2h0YWJfVCkpOworICAgIGh0LT5odF9hcnJheSA9IGh0LT5odF9zbWFsbGFycmF5OworICAgIGh0LT5odF9tYXNrID0gSFRfSU5JVF9TSVpFIC0gMTsKK30KKworLyoKKyAqIEZyZWUgdGhlIGFycmF5IG9mIGEgaGFzaCB0YWJsZS4gIERvZXMgbm90IGZyZWUgdGhlIGl0ZW1zIGl0IGNvbnRhaW5zIQorICogSWYgImh0IiBpcyBub3QgZnJlZWQgdGhlbiB5b3Ugc2hvdWxkIGNhbGwgaGFzaF9pbml0KCkgbmV4dCEKKyAqLworICAgIHZvaWQKK2hhc2hfY2xlYXIoaHQpCisgICAgaGFzaHRhYl9UICpodDsKK3sKKyAgICBpZiAoaHQtPmh0X2FycmF5ICE9IGh0LT5odF9zbWFsbGFycmF5KQorCXZpbV9mcmVlKGh0LT5odF9hcnJheSk7Cit9CisKKy8qCisgKiBGcmVlIHRoZSBhcnJheSBvZiBhIGhhc2ggdGFibGUgYW5kIGFsbCB0aGUga2V5cyBpdCBjb250YWlucy4gIFRoZSBrZXlzIG11c3QKKyAqIGhhdmUgYmVlbiBhbGxvY2F0ZWQuICAib2ZmIiBpcyB0aGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBhbGxvY2F0ZQorICogbWVtb3J5IHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUga2V5IChpdCdzIGFsd2F5cyBwb3NpdGl2ZSkuCisgKi8KKyAgICB2b2lkCitoYXNoX2NsZWFyX2FsbChodCwgb2ZmKQorICAgIGhhc2h0YWJfVAkqaHQ7CisgICAgaW50CQlvZmY7Cit7CisgICAgaW50CQl0b2RvOworICAgIGhhc2hpdGVtX1QJKmhpOworCisgICAgdG9kbyA9IGh0LT5odF91c2VkOworICAgIGZvciAoaGkgPSBodC0+aHRfYXJyYXk7IHRvZG8gPiAwOyArK2hpKQorICAgIHsKKwlpZiAoIUhBU0hJVEVNX0VNUFRZKGhpKSkKKwl7CisJICAgIHZpbV9mcmVlKGhpLT5oaV9rZXkgLSBvZmYpOworCSAgICAtLXRvZG87CisJfQorICAgIH0KKyAgICBoYXNoX2NsZWFyKGh0KTsKK30KKworLyoKKyAqIEZpbmQgImtleSIgaW4gaGFzaHRhYmxlICJodCIuICAia2V5IiBtdXN0IG5vdCBiZSBOVUxMLgorICogQWx3YXlzIHJldHVybnMgYSBwb2ludGVyIHRvIGEgaGFzaGl0ZW0uICBJZiB0aGUgaXRlbSB3YXMgbm90IGZvdW5kIHRoZW4KKyAqIEhBU0hJVEVNX0VNUFRZKCkgaXMgVFJVRS4gIFRoZSBwb2ludGVyIGlzIHRoZW4gdGhlIHBsYWNlIHdoZXJlIHRoZSBrZXkKKyAqIHdvdWxkIGJlIGFkZGVkLgorICogV0FSTklORzogVGhlIHJldHVybmVkIHBvaW50ZXIgYmVjb21lcyBpbnZhbGlkIHdoZW4gdGhlIGhhc2h0YWJsZSBpcyBjaGFuZ2VkCisgKiAoYWRkaW5nLCBzZXR0aW5nIG9yIHJlbW92aW5nIGFuIGl0ZW0pIQorICovCisgICAgaGFzaGl0ZW1fVCAqCitoYXNoX2ZpbmQoaHQsIGtleSkKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGNoYXJfdQkqa2V5OworeworICAgIHJldHVybiBoYXNoX2xvb2t1cChodCwga2V5LCBoYXNoX2hhc2goa2V5KSk7Cit9CisKKy8qCisgKiBMaWtlIGhhc2hfZmluZCgpLCBidXQgY2FsbGVyIGNvbXB1dGVzICJoYXNoIi4KKyAqLworICAgIGhhc2hpdGVtX1QgKgoraGFzaF9sb29rdXAoaHQsIGtleSwgaGFzaCkKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGNoYXJfdQkqa2V5OworICAgIGhhc2hfVAloYXNoOworeworICAgIGhhc2hfVAlwZXJ0dXJiOworICAgIGhhc2hpdGVtX1QJKmZyZWVpdGVtOworICAgIGhhc2hpdGVtX1QJKmhpOworICAgIGludAkJaWR4OworCisjaWZkZWYgSFRfREVCVUcKKyAgICArK2hhc2hfY291bnRfbG9va3VwOworI2VuZGlmCisKKyAgICAvKgorICAgICAqIFF1aWNrbHkgaGFuZGxlIHRoZSBtb3N0IGNvbW1vbiBzaXR1YXRpb25zOgorICAgICAqIC0gcmV0dXJuIGlmIHRoZXJlIGlzIG5vIGl0ZW0gYXQgYWxsCisgICAgICogLSBza2lwIG92ZXIgYSByZW1vdmVkIGl0ZW0KKyAgICAgKiAtIHJldHVybiBpZiB0aGUgaXRlbSBtYXRjaGVzCisgICAgICovCisgICAgaWR4ID0gaGFzaCAmIGh0LT5odF9tYXNrOworICAgIGhpID0gJmh0LT5odF9hcnJheVtpZHhdOworCisgICAgaWYgKGhpLT5oaV9rZXkgPT0gTlVMTCkKKwlyZXR1cm4gaGk7CisgICAgaWYgKGhpLT5oaV9rZXkgPT0gSElfS0VZX1JFTU9WRUQpCisJZnJlZWl0ZW0gPSBoaTsKKyAgICBlbHNlIGlmIChoaS0+aGlfaGFzaCA9PSBoYXNoICYmIFNUUkNNUChoaS0+aGlfa2V5LCBrZXkpID09IDApCisJcmV0dXJuIGhpOworICAgIGVsc2UKKwlmcmVlaXRlbSA9IE5VTEw7CisKKyAgICAvKgorICAgICAqIE5lZWQgdG8gc2VhcmNoIHRocm91Z2ggdGhlIHRhYmxlIHRvIGZpbmQgdGhlIGtleS4gIFRoZSBhbGdvcml0aG0KKyAgICAgKiB0byBzdGVwIHRocm91Z2ggdGhlIHRhYmxlIHN0YXJ0cyB3aXRoIGxhcmdlIHN0ZXBzLCBncmFkdWFsbHkgYmVjb21pbmcKKyAgICAgKiBzbWFsbGVyIGRvd24gdG8gKDEvNCB0YWJsZSBzaXplICsgMSkuICBUaGlzIG1lYW5zIGl0IGdvZXMgdGhyb3VnaCBhbGwKKyAgICAgKiB0YWJsZSBlbnRyaWVzIGluIHRoZSBlbmQuCisgICAgICogV2hlbiB3ZSBydW4gaW50byBhIE5VTEwga2V5IGl0J3MgY2xlYXIgdGhhdCB0aGUga2V5IGlzbid0IHRoZXJlLgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgYXZhaWxhYmxlIHNsb3QgZm91bmQgKGNhbiBiZSBhIHNsb3Qgb2YgYSByZW1vdmVkCisgICAgICogaXRlbSkuCisgICAgICovCisgICAgZm9yIChwZXJ0dXJiID0gaGFzaDsgOyBwZXJ0dXJiID4+PSBQRVJUVVJCX1NISUZUKQorICAgIHsKKyNpZmRlZiBIVF9ERUJVRworCSsraGFzaF9jb3VudF9wZXJ0dXJiOwkgICAgLyogY291bnQgYSAibWlzcyIgZm9yIGhhc2h0YWIgbG9va3VwICovCisjZW5kaWYKKwlpZHggPSAoaWR4IDw8IDIpICsgaWR4ICsgcGVydHVyYiArIDE7CisJaGkgPSAmaHQtPmh0X2FycmF5W2lkeCAmIGh0LT5odF9tYXNrXTsKKwlpZiAoaGktPmhpX2tleSA9PSBOVUxMKQorCSAgICByZXR1cm4gZnJlZWl0ZW0gPT0gTlVMTCA/IGhpIDogZnJlZWl0ZW07CisJaWYgKGhpLT5oaV9oYXNoID09IGhhc2gKKwkJJiYgaGktPmhpX2tleSAhPSBISV9LRVlfUkVNT1ZFRAorCQkmJiBTVFJDTVAoaGktPmhpX2tleSwga2V5KSA9PSAwKQorCSAgICByZXR1cm4gaGk7CisJaWYgKGhpLT5oaV9rZXkgPT0gSElfS0VZX1JFTU9WRUQgJiYgZnJlZWl0ZW0gPT0gTlVMTCkKKwkgICAgZnJlZWl0ZW0gPSBoaTsKKyAgICB9Cit9CisKKy8qCisgKiBQcmludCB0aGUgZWZmaWNpZW5jeSBvZiBoYXNodGFibGUgbG9va3Vwcy4KKyAqIFVzZWZ1bCB3aGVuIHRyeWluZyBkaWZmZXJlbnQgaGFzaCBhbGdvcml0aG1zLgorICogQ2FsbGVkIHdoZW4gZXhpdGluZy4KKyAqLworICAgIHZvaWQKK2hhc2hfZGVidWdfcmVzdWx0cygpCit7CisjaWZkZWYgSFRfREVCVUcKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlxyXG5cclxuXHJcblxyXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIk51bWJlciBvZiBoYXNodGFibGUgbG9va3VwczogJWxkXHJcbiIsIGhhc2hfY291bnRfbG9va3VwKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIk51bWJlciBvZiBwZXJ0dXJiIGxvb3BzOiAlbGRcclxuIiwgaGFzaF9jb3VudF9wZXJ0dXJiKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlBlcmNlbnRhZ2Ugb2YgcGVydHVyYiBsb29wczogJWxkJSVcclxuIiwKKwkJCQloYXNoX2NvdW50X3BlcnR1cmIgKiAxMDAgLyBoYXNoX2NvdW50X2xvb2t1cCk7CisjZW5kaWYKK30KKworLyoKKyAqIEFkZCBpdGVtIHdpdGgga2V5ICJrZXkiIHRvIGhhc2h0YWJsZSAiaHQiLgorICogUmV0dXJucyBGQUlMIHdoZW4gb3V0IG9mIG1lbW9yeSBvciB0aGUga2V5IGlzIGFscmVhZHkgcHJlc2VudC4KKyAqLworICAgIGludAoraGFzaF9hZGQoaHQsIGtleSkKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGNoYXJfdQkqa2V5OworeworICAgIGhhc2hfVAloYXNoID0gaGFzaF9oYXNoKGtleSk7CisgICAgaGFzaGl0ZW1fVAkqaGk7CisKKyAgICBoaSA9IGhhc2hfbG9va3VwKGh0LCBrZXksIGhhc2gpOworICAgIGlmICghSEFTSElURU1fRU1QVFkoaGkpKQorICAgIHsKKwlFTVNHMihfKGVfaW50ZXJuMiksICJoYXNoX2FkZCgpIik7CisJcmV0dXJuIEZBSUw7CisgICAgfQorICAgIHJldHVybiBoYXNoX2FkZF9pdGVtKGh0LCBoaSwga2V5LCBoYXNoKTsKK30KKworLyoKKyAqIEFkZCBpdGVtICJoaSIgd2l0aCAia2V5IiB0byBoYXNodGFibGUgImh0Ii4gICJrZXkiIG11c3Qgbm90IGJlIE5VTEwgYW5kCisgKiAiaGkiIG11c3QgaGF2ZSBiZWVuIG9idGFpbmVkIHdpdGggaGFzaF9sb29rdXAoKSBhbmQgcG9pbnQgdG8gYW4gZW1wdHkgaXRlbS4KKyAqICJoaSIgaXMgaW52YWxpZCBhZnRlciB0aGlzIQorICogUmV0dXJucyBPSyBvciBGQUlMIChvdXQgb2YgbWVtb3J5KS4KKyAqLworICAgIGludAoraGFzaF9hZGRfaXRlbShodCwgaGksIGtleSwgaGFzaCkKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGhhc2hpdGVtX1QJKmhpOworICAgIGNoYXJfdQkqa2V5OworICAgIGhhc2hfVAloYXNoOworeworICAgIC8qIElmIHJlc2l6aW5nIGZhaWxlZCBiZWZvcmUgYW5kIGl0IGZhaWxzIGFnYWluIHdlIGNhbid0IGFkZCBhbiBpdGVtLiAqLworICAgIGlmIChodC0+aHRfZXJyb3IgJiYgaGFzaF9tYXlfcmVzaXplKGh0LCAwKSA9PSBGQUlMKQorCXJldHVybiBGQUlMOworCisgICAgKytodC0+aHRfdXNlZDsKKyAgICBpZiAoaGktPmhpX2tleSA9PSBOVUxMKQorCSsraHQtPmh0X2ZpbGxlZDsKKyAgICBoaS0+aGlfa2V5ID0ga2V5OworICAgIGhpLT5oaV9oYXNoID0gaGFzaDsKKworICAgIC8qIFdoZW4gdGhlIHNwYWNlIGdldHMgbG93IG1heSByZXNpemUgdGhlIGFycmF5LiAqLworICAgIHJldHVybiBoYXNoX21heV9yZXNpemUoaHQsIDApOworfQorCisjaWYgMCAgLyogbm90IHVzZWQgKi8KKy8qCisgKiBPdmVyd3JpdGUgaGFzaHRhYmxlIGl0ZW0gImhpIiB3aXRoICJrZXkiLiAgImhpIiBtdXN0IHBvaW50IHRvIHRoZSBpdGVtIHRoYXQKKyAqIGlzIHRvIGJlIG92ZXJ3cml0dGVuLiAgVGh1cyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBoYXNodGFibGUgZG9lc24ndAorICogY2hhbmdlLgorICogQWx0aG91Z2ggdGhlIGtleSBtdXN0IGJlIGlkZW50aWNhbCwgdGhlIHBvaW50ZXIgbWF5IGJlIGRpZmZlcmVudCwgdGh1cyBpdCdzCisgKiBzZXQgYW55d2F5ICh0aGUga2V5IGlzIHBhcnQgb2YgYW4gaXRlbSB3aXRoIHRoYXQga2V5KS4KKyAqIFRoZSBjYWxsZXIgbXVzdCB0YWtlIGNhcmUgb2YgZnJlZWluZyB0aGUgb2xkIGl0ZW0uCisgKiAiaGkiIGlzIGludmFsaWQgYWZ0ZXIgdGhpcyEKKyAqLworICAgIHZvaWQKK2hhc2hfc2V0KGhpLCBrZXkpCisgICAgaGFzaGl0ZW1fVAkqaGk7CisgICAgY2hhcl91CSprZXk7Cit7CisgICAgaGktPmhpX2tleSA9IGtleTsKK30KKyNlbmRpZgorCisvKgorICogUmVtb3ZlIGl0ZW0gImhpIiBmcm9tICBoYXNodGFibGUgImh0Ii4gICJoaSIgbXVzdCBoYXZlIGJlZW4gb2J0YWluZWQgd2l0aAorICogaGFzaF9sb29rdXAoKS4KKyAqIFRoZSBjYWxsZXIgbXVzdCB0YWtlIGNhcmUgb2YgZnJlZWluZyB0aGUgaXRlbSBpdHNlbGYuCisgKi8KKyAgICB2b2lkCitoYXNoX3JlbW92ZShodCwgaGkpCisgICAgaGFzaHRhYl9UCSpodDsKKyAgICBoYXNoaXRlbV9UCSpoaTsKK3sKKyAgICAtLWh0LT5odF91c2VkOworICAgIGhpLT5oaV9rZXkgPSBISV9LRVlfUkVNT1ZFRDsKKyAgICBoYXNoX21heV9yZXNpemUoaHQsIDApOworfQorCisvKgorICogTG9jayBhIGhhc2h0YWJsZTogcHJldmVudCB0aGF0IGh0X2FycmF5IGNoYW5nZXMuCisgKiBEb24ndCB1c2UgdGhpcyB3aGVuIGl0ZW1zIGFyZSB0byBiZSBhZGRlZCEKKyAqIE11c3QgY2FsbCBoYXNoX3VubG9jaygpIGxhdGVyLgorICovCisgICAgdm9pZAoraGFzaF9sb2NrKGh0KQorICAgIGhhc2h0YWJfVAkqaHQ7Cit7CisgICAgKytodC0+aHRfbG9ja2VkOworfQorCisjaWYgMAkgICAgLyogY3VycmVudGx5IG5vdCB1c2VkICovCisvKgorICogTG9jayBhIGhhc2h0YWJsZSBhdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBlbnRyaWVzLgorICogQ2FsbGVyIG11c3QgbWFrZSBzdXJlIG5vIG1vcmUgdGhhbiAic2l6ZSIgZW50cmllcyB3aWxsIGJlIGFkZGVkLgorICogTXVzdCBjYWxsIGhhc2hfdW5sb2NrKCkgbGF0ZXIuCisgKi8KKyAgICB2b2lkCitoYXNoX2xvY2tfc2l6ZShodCwgc2l6ZSkKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGludAkJc2l6ZTsKK3sKKyAgICAodm9pZCloYXNoX21heV9yZXNpemUoaHQsIHNpemUpOworICAgICsraHQtPmh0X2xvY2tlZDsKK30KKyNlbmRpZgorCisvKgorICogVW5sb2NrIGEgaGFzaHRhYmxlOiBhbGxvdyBodF9hcnJheSBjaGFuZ2VzIGFnYWluLgorICogVGFibGUgd2lsbCBiZSByZXNpemVkIChzaHJpbmspIHdoZW4gbmVjZXNzYXJ5LgorICogVGhpcyBtdXN0IGJhbGFuY2UgYSBjYWxsIHRvIGhhc2hfbG9jaygpLgorICovCisgICAgdm9pZAoraGFzaF91bmxvY2soaHQpCisgICAgaGFzaHRhYl9UCSpodDsKK3sKKyAgICAtLWh0LT5odF9sb2NrZWQ7CisgICAgKHZvaWQpaGFzaF9tYXlfcmVzaXplKGh0LCAwKTsKK30KKworLyoKKyAqIFNocmluayBhIGhhc2h0YWJsZSB3aGVuIHRoZXJlIGlzIHRvbyBtdWNoIGVtcHR5IHNwYWNlLgorICogR3JvdyBhIGhhc2h0YWJsZSB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggZW1wdHkgc3BhY2UuCisgKiBSZXR1cm5zIE9LIG9yIEZBSUwgKG91dCBvZiBtZW1vcnkpLgorICovCisgICAgc3RhdGljIGludAoraGFzaF9tYXlfcmVzaXplKGh0LCBtaW5pdGVtcykKKyAgICBoYXNodGFiX1QJKmh0OworICAgIGludAkJbWluaXRlbXM7CQkvKiBtaW5pbWFsIG51bWJlciBvZiBpdGVtcyAqLworeworICAgIGhhc2hpdGVtX1QJdGVtcGFycmF5W0hUX0lOSVRfU0laRV07CisgICAgaGFzaGl0ZW1fVAkqb2xkYXJyYXksICpuZXdhcnJheTsKKyAgICBoYXNoaXRlbV9UCSpvbGRpdGVtLCAqbmV3aXRlbTsKKyAgICBpbnQJCW5ld2k7CisgICAgaW50CQl0b2RvOworICAgIGxvbmdfdQlvbGRzaXplLCBuZXdzaXplOworICAgIGxvbmdfdQltaW5zaXplOworICAgIGxvbmdfdQluZXdtYXNrOworICAgIGhhc2hfVAlwZXJ0dXJiOworCisgICAgLyogRG9uJ3QgcmVzaXplIGEgbG9ja2VkIHRhYmxlLiAqLworICAgIGlmIChodC0+aHRfbG9ja2VkID4gMCkKKwlyZXR1cm4gT0s7CisKKyNpZmRlZiBIVF9ERUJVRworICAgIGlmIChodC0+aHRfdXNlZCA+IGh0LT5odF9maWxsZWQpCisJRU1TRygiaGFzaF9tYXlfcmVzaXplKCk6IG1vcmUgdXNlZCB0aGFuIGZpbGxlZCIpOworICAgIGlmIChodC0+aHRfZmlsbGVkID49IGh0LT5odF9tYXNrICsgMSkKKwlFTVNHKCJoYXNoX21heV9yZXNpemUoKTogdGFibGUgY29tcGxldGVseSBmaWxsZWQiKTsKKyNlbmRpZgorCisgICAgaWYgKG1pbml0ZW1zID09IDApCisgICAgeworCS8qIFJldHVybiBxdWlja2x5IGZvciBzbWFsbCB0YWJsZXMgd2l0aCBhdCBsZWFzdCB0d28gTlVMTCBpdGVtcy4gIE5VTEwKKwkgKiBpdGVtcyBhcmUgcmVxdWlyZWQgZm9yIHRoZSBsb29rdXAgdG8gZGVjaWRlIGEga2V5IGlzbid0IHRoZXJlLiAqLworCWlmIChodC0+aHRfZmlsbGVkIDwgSFRfSU5JVF9TSVpFIC0gMQorCQkJCQkgJiYgaHQtPmh0X2FycmF5ID09IGh0LT5odF9zbWFsbGFycmF5KQorCSAgICByZXR1cm4gT0s7CisKKwkvKgorCSAqIEdyb3cgb3IgcmVmaWxsIHRoZSBhcnJheSB3aGVuIGl0J3MgbW9yZSB0aGFuIDIvMyBmdWxsIChpbmNsdWRpbmcKKwkgKiByZW1vdmVkIGl0ZW1zLCBzbyB0aGF0IHRoZXkgZ2V0IGNsZWFuZWQgdXApLgorCSAqIFNocmluayB0aGUgYXJyYXkgd2hlbiBpdCdzIGxlc3MgdGhhbiAxLzUgZnVsbC4gIFdoZW4gZ3Jvd2luZyBpdCBpcworCSAqIGF0IGxlYXN0IDEvNCBmdWxsIChhdm9pZHMgcmVwZWF0ZWQgZ3Jvdy1zaHJpbmsgb3BlcmF0aW9ucykKKwkgKi8KKwlvbGRzaXplID0gaHQtPmh0X21hc2sgKyAxOworCWlmIChodC0+aHRfZmlsbGVkICogMyA8IG9sZHNpemUgKiAyICYmIGh0LT5odF91c2VkID4gb2xkc2l6ZSAvIDUpCisJICAgIHJldHVybiBPSzsKKworCWlmIChodC0+aHRfdXNlZCA+IDEwMDApCisJICAgIG1pbnNpemUgPSBodC0+aHRfdXNlZCAqIDI7ICAvKiBpdCdzIGJpZywgZG9uJ3QgbWFrZSB0b28gbXVjaCByb29tICovCisJZWxzZQorCSAgICBtaW5zaXplID0gaHQtPmh0X3VzZWQgKiA0OyAgLyogbWFrZSBwbGVudHkgb2Ygcm9vbSAqLworICAgIH0KKyAgICBlbHNlCisgICAgeworCS8qIFVzZSBzcGVjaWZpZWQgc2l6ZS4gKi8KKwlpZiAoKGxvbmdfdSltaW5pdGVtcyA8IGh0LT5odF91c2VkKQkvKiBqdXN0IGluIGNhc2UuLi4gKi8KKwkgICAgbWluaXRlbXMgPSBodC0+aHRfdXNlZDsKKwltaW5zaXplID0gbWluaXRlbXMgKiAzIC8gMjsJLyogYXJyYXkgaXMgdXAgdG8gMi8zIGZ1bGwgKi8KKyAgICB9CisKKyAgICBuZXdzaXplID0gSFRfSU5JVF9TSVpFOworICAgIHdoaWxlIChuZXdzaXplIDwgbWluc2l6ZSkKKyAgICB7CisJbmV3c2l6ZSA8PD0gMTsJCS8qIG1ha2Ugc3VyZSBpdCdzIGFsd2F5cyBhIHBvd2VyIG9mIDIgKi8KKwlpZiAobmV3c2l6ZSA9PSAwKQorCSAgICByZXR1cm4gRkFJTDsJLyogb3ZlcmZsb3cgKi8KKyAgICB9CisKKyAgICBpZiAobmV3c2l6ZSA9PSBIVF9JTklUX1NJWkUpCisgICAgeworCS8qIFVzZSB0aGUgc21hbGwgYXJyYXkgaW5zaWRlIHRoZSBoYXNoZGljdCBzdHJ1Y3R1cmUuICovCisJbmV3YXJyYXkgPSBodC0+aHRfc21hbGxhcnJheTsKKwlpZiAoaHQtPmh0X2FycmF5ID09IG5ld2FycmF5KQorCXsKKwkgICAgLyogTW92aW5nIGZyb20gaHRfc21hbGxhcnJheSB0byBodF9zbWFsbGFycmF5ISAgSGFwcGVucyB3aGVuIHRoZXJlCisJICAgICAqIGFyZSBtYW55IHJlbW92ZWQgaXRlbXMuICBDb3B5IHRoZSBpdGVtcyB0byBiZSBhYmxlIHRvIGNsZWFuIHVwCisJICAgICAqIHJlbW92ZWQgaXRlbXMuICovCisJICAgIG1jaF9tZW1tb3ZlKHRlbXBhcnJheSwgbmV3YXJyYXksIHNpemVvZih0ZW1wYXJyYXkpKTsKKwkgICAgb2xkYXJyYXkgPSB0ZW1wYXJyYXk7CisJfQorCWVsc2UKKwkgICAgb2xkYXJyYXkgPSBodC0+aHRfYXJyYXk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisJLyogQWxsb2NhdGUgYW4gYXJyYXkuICovCisJbmV3YXJyYXkgPSAoaGFzaGl0ZW1fVCAqKWFsbG9jKCh1bnNpZ25lZCkKKwkJCQkJICAgICAgKHNpemVvZihoYXNoaXRlbV9UKSAqIG5ld3NpemUpKTsKKwlpZiAobmV3YXJyYXkgPT0gTlVMTCkKKwl7CisJICAgIC8qIE91dCBvZiBtZW1vcnkuICBXaGVuIHRoZXJlIGFyZSBOVUxMIGl0ZW1zIHN0aWxsIHJldHVybiBPSy4KKwkgICAgICogT3RoZXJ3aXNlIHNldCBodF9lcnJvciwgYmVjYXVzZSBsb29rdXAgbWF5IHJlc3VsdCBpbiBhIGhhbmcgaWYKKwkgICAgICogd2UgYWRkIGFub3RoZXIgaXRlbS4gKi8KKwkgICAgaWYgKGh0LT5odF9maWxsZWQgPCBodC0+aHRfbWFzaykKKwkJcmV0dXJuIE9LOworCSAgICBodC0+aHRfZXJyb3IgPSBUUlVFOworCSAgICByZXR1cm4gRkFJTDsKKwl9CisJb2xkYXJyYXkgPSBodC0+aHRfYXJyYXk7CisgICAgfQorICAgIHZpbV9tZW1zZXQobmV3YXJyYXksIDAsIChzaXplX3QpKHNpemVvZihoYXNoaXRlbV9UKSAqIG5ld3NpemUpKTsKKworICAgIC8qCisgICAgICogTW92ZSBhbGwgdGhlIGl0ZW1zIGZyb20gdGhlIG9sZCBhcnJheSB0byB0aGUgbmV3IG9uZSwgcGxhY2luZyB0aGVtIGluCisgICAgICogdGhlIHJpZ2h0IHNwb3QuICBUaGUgbmV3IGFycmF5IHdvbid0IGhhdmUgYW55IHJlbW92ZWQgaXRlbXMsIHRodXMgdGhpcworICAgICAqIGlzIGFsc28gYSBjbGVhbnVwIGFjdGlvbi4KKyAgICAgKi8KKyAgICBuZXdtYXNrID0gbmV3c2l6ZSAtIDE7CisgICAgdG9kbyA9IGh0LT5odF91c2VkOworICAgIGZvciAob2xkaXRlbSA9IG9sZGFycmF5OyB0b2RvID4gMDsgKytvbGRpdGVtKQorCWlmICghSEFTSElURU1fRU1QVFkob2xkaXRlbSkpCisJeworCSAgICAvKgorCSAgICAgKiBUaGUgYWxnb3JpdGhtIHRvIGZpbmQgdGhlIHNwb3QgdG8gYWRkIHRoZSBpdGVtIGlzIGlkZW50aWNhbCB0bworCSAgICAgKiB0aGUgYWxnb3JpdGhtIHRvIGZpbmQgYW4gaXRlbSBpbiBoYXNoX2xvb2t1cCgpLiAgQnV0IHdlIG9ubHkKKwkgICAgICogbmVlZCB0byBzZWFyY2ggZm9yIGEgTlVMTCBrZXksIHRodXMgaXQncyBzaW1wbGVyLgorCSAgICAgKi8KKwkgICAgbmV3aSA9IG9sZGl0ZW0tPmhpX2hhc2ggJiBuZXdtYXNrOworCSAgICBuZXdpdGVtID0gJm5ld2FycmF5W25ld2ldOworCisJICAgIGlmIChuZXdpdGVtLT5oaV9rZXkgIT0gTlVMTCkKKwkJZm9yIChwZXJ0dXJiID0gb2xkaXRlbS0+aGlfaGFzaDsgOyBwZXJ0dXJiID4+PSBQRVJUVVJCX1NISUZUKQorCQl7CisJCSAgICBuZXdpID0gKG5ld2kgPDwgMikgKyBuZXdpICsgcGVydHVyYiArIDE7CisJCSAgICBuZXdpdGVtID0gJm5ld2FycmF5W25ld2kgJiBuZXdtYXNrXTsKKwkJICAgIGlmIChuZXdpdGVtLT5oaV9rZXkgPT0gTlVMTCkKKwkJCWJyZWFrOworCQl9CisJICAgICpuZXdpdGVtID0gKm9sZGl0ZW07CisJICAgIC0tdG9kbzsKKwl9CisKKyAgICBpZiAoaHQtPmh0X2FycmF5ICE9IGh0LT5odF9zbWFsbGFycmF5KQorCXZpbV9mcmVlKGh0LT5odF9hcnJheSk7CisgICAgaHQtPmh0X2FycmF5ID0gbmV3YXJyYXk7CisgICAgaHQtPmh0X21hc2sgPSBuZXdtYXNrOworICAgIGh0LT5odF9maWxsZWQgPSBodC0+aHRfdXNlZDsKKyAgICBodC0+aHRfZXJyb3IgPSBGQUxTRTsKKworICAgIHJldHVybiBPSzsKK30KKworLyoKKyAqIEdldCB0aGUgaGFzaCBudW1iZXIgZm9yIGEga2V5LgorICogSWYgeW91IHRoaW5rIHlvdSBrbm93IGEgYmV0dGVyIGhhc2ggZnVuY3Rpb246IENvbXBpbGUgd2l0aCBIVF9ERUJVRyBzZXQgYW5kCisgKiBydW4gYSBzY3JpcHQgdGhhdCB1c2VzIGhhc2h0YWJsZXMgYSBsb3QuICBWaW0gd2lsbCB0aGVuIHByaW50IHN0YXRpc3RpY3MKKyAqIHdoZW4gZXhpdGluZy4gIFRyeSB0aGF0IHdpdGggdGhlIGN1cnJlbnQgaGFzaCBhbGdvcml0aG0gYW5kIHlvdXJzLiAgVGhlCisgKiBsb3dlciB0aGUgcGVyY2VudGFnZSB0aGUgYmV0dGVyLgorICovCisgICAgaGFzaF9UCitoYXNoX2hhc2goa2V5KQorICAgIGNoYXJfdQkqa2V5OworeworICAgIGhhc2hfVAloYXNoOworICAgIGNoYXJfdQkqcDsKKworICAgIGlmICgoaGFzaCA9ICprZXkpID09IDApCisJcmV0dXJuIChoYXNoX1QpMDsJLyogRW1wdHkga2V5cyBhcmUgbm90IGFsbG93ZWQsIGJ1dCB3ZSBkb24ndAorCQkJCSAgIHdhbnQgdG8gY3Jhc2ggaWYgd2UgZ2V0IG9uZS4gKi8KKyAgICBwID0ga2V5ICsgMTsKKworI2lmIDAKKyAgICAvKiBFbGZIYXNoIGFsZ29yaXRobSwgd2hpY2ggaXMgc3VwcG9zZWQgdG8gaGF2ZSBhbiBldmVuIGRpc3RyaWJ1dGlvbi4KKyAgICAgKiBTdWdnZXN0ZWQgYnkgQ2hhcmxlcyBDYW1wYmVsbC4gKi8KKyAgICBoYXNoX1QJZzsKKworICAgIHdoaWxlICgqcCAhPSBOVUwpCisgICAgeworCWhhc2ggPSAoaGFzaCA8PCA0KSArICpwKys7CS8qIGNsZWFyIGxvdyA0IGJpdHMgb2YgaGFzaCwgYWRkIGNoYXIgKi8KKwlnID0gaGFzaCAmIDB4ZjAwMDAwMDBMOwkJLyogZyBoYXMgaGlnaCA0IGJpdHMgb2YgaGFzaCBvbmx5ICovCisJaWYgKGcgIT0gMCkKKwkgICAgaGFzaCBePSBnID4+IDI0OwkJLyogeG9yIGcncyBoaWdoIDQgYml0cyBpbnRvIGhhc2ggKi8KKyAgICB9CisjZWxzZQorCisgICAgLyogQSBzaW1wbGlzdGljIGFsZ29yaXRobSB0aGF0IGFwcGVhcnMgdG8gZG8gdmVyeSB3ZWxsLgorICAgICAqIFN1Z2dlc3RlZCBieSBHZW9yZ2UgUmVpbGx5LiAqLworICAgIHdoaWxlICgqcCAhPSBOVUwpCisJaGFzaCA9IGhhc2ggKiAxMDEgKyAqcCsrOworI2VuZGlmCisKKyAgICByZXR1cm4gaGFzaDsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvbWVzc2FnZS5jIGIvc3JjL21lc3NhZ2UuYwppbmRleCBlMDk3MWI2Li5kMjVkNDg1IDEwMDY0NAotLS0gYS9zcmMvbWVzc2FnZS5jCisrKyBiL3NyYy9tZXNzYWdlLmMKQEAgLTQxNjcsOCArNDE2Nyw4IEBACiAJCSAgICB7CiAJCQkvKiBtZW1jaHIgb24gSFAgZG9lcyBub3QgbGlrZSBuID4gMl4zMSAgISEhICovCiAJCQljaGFyICpxID0gbWVtY2hyKHN0cl9hcmcsICdcMCcsCi0JCQkJcHJlY2lzaW9uIDw9IDB4N2ZmZmZmZmYgPyBwcmVjaXNpb24KLQkJCQkJCQkJOiAweDdmZmZmZmZmKTsKKwkJCQlwcmVjaXNpb24gPD0gKHNpemVfdCkweDdmZmZmZmZmTCA/IHByZWNpc2lvbgorCQkJCQkJICAgICAgIDogKHNpemVfdCkweDdmZmZmZmZmTCk7CiAJCQlzdHJfYXJnX2wgPSAocSA9PSBOVUxMKSA/IHByZWNpc2lvbiA6IHEgLSBzdHJfYXJnOwogCQkgICAgfQogCQkgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvb3NfbXNkb3MuYyBiL3NyYy9vc19tc2Rvcy5jCmluZGV4IDg0MzQxZWQuLmRlZTZkOTEgMTAwNjQ0Ci0tLSBhL3NyYy9vc19tc2Rvcy5jCisrKyBiL3NyYy9vc19tc2Rvcy5jCkBAIC03MTEsOSArNzExLDcgQEAKICAgICBzdGF0aWMgIGludAogV2FpdEZvckNoYXIobG9uZyBtc2VjKQogewotICAgIHVuaW9uIFJFR1MJcmVnczsKICAgICBsb25nCXN0YXJ0dGltZSA9IDA7Ci0gICAgaW50CQl4LCB5OwogCiAgICAgaWYgKG1zZWMgIT0gMCkKIAlzdGFydHRpbWUgPSBiaW9zdGltZSgwLCAwTCk7CkBAIC03MjMsNiArNzIxLDggQEAKICNpZmRlZiBGRUFUX01PVVNFCiAJbG9uZwkJY2xpY2t0aW1lOwogCXN0YXRpYyBpbnQJb2xkX3N0YXR1cyA9IDA7CisJdW5pb24gUkVHUwlyZWdzOworCWludAkJeCwgeTsKIAogCWlmIChtb3VzZV9hdmFpbCAmJiBtb3VzZV9hY3RpdmUgJiYgbW91c2VfY2xpY2sgPCAwKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9vc19tc2Rvcy5oIGIvc3JjL29zX21zZG9zLmgKaW5kZXggYjhlOTBlMS4uNDk0MjBhOCAxMDA2NDQKLS0tIGEvc3JjL29zX21zZG9zLmgKKysrIGIvc3JjL29zX21zZG9zLmgKQEAgLTIxLDYgKzIxLDcgQEAKICMgZGVmaW5lIFVTRV9MT05HX0ZOQU1FIF9VU0VfTEZOICAgIC8qIGRlY2lkZSBhdCBydW4gdGltZSAqLwogIyBkZWZpbmUgVVNFX0ZOQU1FX0NBU0UKICMgZGVmaW5lIEhBVkVfUFVURU5WCisjIGRlZmluZSBIQVZFX1NUREFSR19ICiAjZWxzZQogIyBkZWZpbmUgU0hPUlRfRk5BTUUJCS8qIGFsd2F5cyA4LjMgZmlsZSBuYW1lICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wcm90by5oIGIvc3JjL3Byb3RvLmgKaW5kZXggNTE5MWU3NS4uODVmNDkzNyAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvLmgKKysrIGIvc3JjL3Byb3RvLmgKQEAgLTkwLDcgKzkwLDcgQEAKICMgIGluY2x1ZGUgImhhbmd1bGluLnBybyIKICMgZW5kaWYKICMgaW5jbHVkZSAiaGFyZGNvcHkucHJvIgotIyBpbmNsdWRlICJoYXNodGFibGUucHJvIgorIyBpbmNsdWRlICJoYXNodGFiLnBybyIKICMgaW5jbHVkZSAibWFpbi5wcm8iCiAjIGluY2x1ZGUgIm1hcmsucHJvIgogIyBpbmNsdWRlICJtZW1maWxlLnBybyIKQEAgLTE0MCw4ICsxNDAsMTAgQEAKICMgaW5jbHVkZSAibm9ybWFsLnBybyIKICMgaW5jbHVkZSAib3BzLnBybyIKICMgaW5jbHVkZSAib3B0aW9uLnBybyIKLSMgaW5jbHVkZSAicG9wdXBtZW51LnBybyIKLSMgaW5jbHVkZSAicXVpY2tmaXgucHJvIgorIyBpbmNsdWRlICJwb3B1cG1udS5wcm8iCisjIGlmZGVmIEZFQVRfUVVJQ0tGSVgKKyMgIGluY2x1ZGUgInF1aWNrZml4LnBybyIKKyMgZW5kaWYKICMgaW5jbHVkZSAicmVnZXhwLnBybyIKICMgaW5jbHVkZSAic2NyZWVuLnBybyIKICMgaW5jbHVkZSAic2VhcmNoLnBybyIKZGlmZiAtLWdpdCBhL3NyYy9wcm90by9idWZmZXIucHJvIGIvc3JjL3Byb3RvL2J1ZmZlci5wcm8KaW5kZXggOTE5MzQ0My4uOWRhOGMzZSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2J1ZmZlci5wcm8KKysrIGIvc3JjL3Byb3RvL2J1ZmZlci5wcm8KQEAgLTEsNjkgKzEsNjkgQEAKIC8qIGJ1ZmZlci5jICovCi1pbnQgb3Blbl9idWZmZXIgX19BUkdTKChpbnQgcmVhZF9zdGRpbiwgZXhhcmdfVCAqZWFwKSk7Ci1pbnQgYnVmX3ZhbGlkIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotdm9pZCBjbG9zZV9idWZmZXIgX19BUkdTKCh3aW5fVCAqd2luLCBidWZfVCAqYnVmLCBpbnQgYWN0aW9uKSk7Ci12b2lkIGJ1Zl9jbGVhcl9maWxlIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotdm9pZCBidWZfZnJlZWFsbCBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBkZWxfYnVmLCBpbnQgd2lwZV9idWYpKTsKLXZvaWQgZ290b19idWZmZXIgX19BUkdTKChleGFyZ19UICplYXAsIGludCBzdGFydCwgaW50IGRpciwgaW50IGNvdW50KSk7Ci12b2lkIGhhbmRsZV9zd2FwX2V4aXN0cyBfX0FSR1MoKGJ1Zl9UICpvbGRfY3VyYnVmKSk7Ci1jaGFyX3UgKmRvX2J1ZmRlbCBfX0FSR1MoKGludCBjb21tYW5kLCBjaGFyX3UgKmFyZywgaW50IGFkZHJfY291bnQsIGludCBzdGFydF9ibnIsIGludCBlbmRfYm5yLCBpbnQgZm9yY2VpdCkpOwotaW50IGRvX2J1ZmZlciBfX0FSR1MoKGludCBhY3Rpb24sIGludCBzdGFydCwgaW50IGRpciwgaW50IGNvdW50LCBpbnQgZm9yY2VpdCkpOwotdm9pZCBzZXRfY3VyYnVmIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGFjdGlvbikpOwotdm9pZCBlbnRlcl9idWZmZXIgX19BUkdTKChidWZfVCAqYnVmKSk7Ci1idWZfVCAqYnVmbGlzdF9uZXcgX19BUkdTKChjaGFyX3UgKmZmbmFtZSwgY2hhcl91ICpzZm5hbWUsIGxpbmVucl9UIGxudW0sIGludCBmbGFncykpOwotdm9pZCBmcmVlX2J1Zl9vcHRpb25zIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGZyZWVfcF9mZikpOwotaW50IGJ1Zmxpc3RfZ2V0ZmlsZSBfX0FSR1MoKGludCBuLCBsaW5lbnJfVCBsbnVtLCBpbnQgb3B0aW9ucywgaW50IGZvcmNlaXQpKTsKLXZvaWQgYnVmbGlzdF9nZXRmcG9zIF9fQVJHUygodm9pZCkpOwotYnVmX1QgKmJ1Zmxpc3RfZmluZG5hbWVfZXhwIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOwotYnVmX1QgKmJ1Zmxpc3RfZmluZG5hbWUgX19BUkdTKChjaGFyX3UgKmZmbmFtZSkpOwotaW50IGJ1Zmxpc3RfZmluZHBhdCBfX0FSR1MoKGNoYXJfdSAqcGF0dGVybiwgY2hhcl91ICpwYXR0ZXJuX2VuZCwgaW50IHVubGlzdGVkLCBpbnQgZGlmZm1vZGUpKTsKLWludCBFeHBhbmRCdWZuYW1lcyBfX0FSR1MoKGNoYXJfdSAqcGF0LCBpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSwgaW50IG9wdGlvbnMpKTsKLWJ1Zl9UICpidWZsaXN0X2ZpbmRuciBfX0FSR1MoKGludCBucikpOwotY2hhcl91ICpidWZsaXN0X25yMm5hbWUgX19BUkdTKChpbnQgbiwgaW50IGZ1bGxuYW1lLCBpbnQgaGVscHRhaWwpKTsKLXZvaWQgZ2V0X3dpbm9wdHMgX19BUkdTKChidWZfVCAqYnVmKSk7Ci1wb3NfVCAqYnVmbGlzdF9maW5kZnBvcyBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLWxpbmVucl9UIGJ1Zmxpc3RfZmluZGxudW0gX19BUkdTKChidWZfVCAqYnVmKSk7Ci12b2lkIGJ1Zmxpc3RfbGlzdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotaW50IGJ1Zmxpc3RfbmFtZV9uciBfX0FSR1MoKGludCBmbnVtLCBjaGFyX3UgKipmbmFtZSwgbGluZW5yX1QgKmxudW0pKTsKLWludCBzZXRmbmFtZSBfX0FSR1MoKGJ1Zl9UICpidWYsIGNoYXJfdSAqZmZuYW1lLCBjaGFyX3UgKnNmbmFtZSwgaW50IG1lc3NhZ2UpKTsKLXZvaWQgYnVmX3NldF9uYW1lIF9fQVJHUygoaW50IGZudW0sIGNoYXJfdSAqbmFtZSkpOwotdm9pZCBidWZfbmFtZV9jaGFuZ2VkIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotYnVmX1QgKnNldGFsdGZuYW1lIF9fQVJHUygoY2hhcl91ICpmZm5hbWUsIGNoYXJfdSAqc2ZuYW1lLCBsaW5lbnJfVCBsbnVtKSk7Ci1jaGFyX3UgKmdldGFsdGZuYW1lIF9fQVJHUygoaW50IGVycm1zZykpOwotaW50IGJ1Zmxpc3RfYWRkIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgaW50IGZsYWdzKSk7Ci12b2lkIGJ1Zmxpc3Rfc2xhc2hfYWRqdXN0IF9fQVJHUygodm9pZCkpOwotdm9pZCBidWZsaXN0X2FsdGZwb3MgX19BUkdTKCh2b2lkKSk7Ci1pbnQgb3RoZXJmaWxlIF9fQVJHUygoY2hhcl91ICpmZm5hbWUpKTsKLXZvaWQgYnVmX3NldGlubyBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgZmlsZWluZm8gX19BUkdTKChpbnQgZnVsbG5hbWUsIGludCBzaG9ydGhlbHAsIGludCBkb250X3RydW5jYXRlKSk7Ci12b2lkIGNvbF9wcmludCBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgY29sLCBpbnQgdmNvbCkpOwotdm9pZCBtYWtldGl0bGUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHJlc2V0dGl0bGUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGZyZWVfdGl0bGVzIF9fQVJHUygodm9pZCkpOwotaW50IGJ1aWxkX3N0bF9zdHJfaGwgX19BUkdTKCh3aW5fVCAqd3AsIGNoYXJfdSAqb3V0LCBzaXplX3Qgb3V0bGVuLCBjaGFyX3UgKmZtdCwgaW50IHVzZV9zYW5kYm94LCBpbnQgZmlsbGNoYXIsIGludCBtYXh3aWR0aCwgc3RydWN0IHN0bF9obHJlYyAqaGx0YWIsIHN0cnVjdCBzdGxfaGxyZWMgKnRhYnRhYikpOwotdm9pZCBnZXRfcmVsX3BvcyBfX0FSR1MoKHdpbl9UICp3cCwgY2hhcl91ICpzdHIpKTsKLWludCBhcHBlbmRfYXJnX251bWJlciBfX0FSR1MoKHdpbl9UICp3cCwgY2hhcl91ICpidWYsIGludCBhZGRfZmlsZSwgaW50IG1heGxlbikpOwotY2hhcl91ICpmaXhfZm5hbWUgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7Ci12b2lkIGZuYW1lX2V4cGFuZCBfX0FSR1MoKGJ1Zl9UICpidWYsIGNoYXJfdSAqKmZmbmFtZSwgY2hhcl91ICoqc2ZuYW1lKSk7Ci1jaGFyX3UgKmFsaXN0X25hbWUgX19BUkdTKChhZW50cnlfVCAqYWVwKSk7Ci12b2lkIGRvX2FyZ19hbGwgX19BUkdTKChpbnQgY291bnQsIGludCBmb3JjZWl0LCBpbnQga2VlcF90YWJzKSk7Ci12b2lkIGV4X2J1ZmZlcl9hbGwgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZG9fbW9kZWxpbmVzIF9fQVJHUygoaW50IGZsYWdzKSk7Ci1pbnQgcmVhZF92aW1pbmZvX2J1ZmZlcmxpc3QgX19BUkdTKCh2aXJfVCAqdmlycCwgaW50IHdyaXRpbmcpKTsKLXZvaWQgd3JpdGVfdmltaW5mb19idWZmZXJsaXN0IF9fQVJHUygoRklMRSAqZnApKTsKLWNoYXIgKmJ1Zl9zcG5hbWUgX19BUkdTKChidWZfVCAqYnVmKSk7Ci12b2lkIGJ1Zl9hZGRzaWduIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGlkLCBsaW5lbnJfVCBsbnVtLCBpbnQgdHlwZW5yKSk7Ci1pbnQgYnVmX2NoYW5nZV9zaWduX3R5cGUgX19BUkdTKChidWZfVCAqYnVmLCBpbnQgbWFya0lkLCBpbnQgdHlwZW5yKSk7Ci1pbnRfdSBidWZfZ2V0c2lnbnR5cGUgX19BUkdTKChidWZfVCAqYnVmLCBsaW5lbnJfVCBsbnVtLCBpbnQgdHlwZSkpOwotbGluZW5yX1QgYnVmX2RlbHNpZ24gX19BUkdTKChidWZfVCAqYnVmLCBpbnQgaWQpKTsKLWludCBidWZfZmluZHNpZ24gX19BUkdTKChidWZfVCAqYnVmLCBpbnQgaWQpKTsKLWludCBidWZfZmluZHNpZ25faWQgX19BUkdTKChidWZfVCAqYnVmLCBsaW5lbnJfVCBsbnVtKSk7Ci1pbnQgYnVmX2ZpbmRzaWdudHlwZV9pZCBfX0FSR1MoKGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0sIGludCB0eXBlbnIpKTsKLWludCBidWZfc2lnbmNvdW50IF9fQVJHUygoYnVmX1QgKmJ1ZiwgbGluZW5yX1QgbG51bSkpOwotdm9pZCBidWZfZGVsZXRlX2FsbF9zaWducyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgc2lnbl9saXN0X3BsYWNlZCBfX0FSR1MoKGJ1Zl9UICpyYnVmKSk7Ci12b2lkIHNpZ25fbWFya19hZGp1c3QgX19BUkdTKChsaW5lbnJfVCBsaW5lMSwgbGluZW5yX1QgbGluZTIsIGxvbmcgYW1vdW50LCBsb25nIGFtb3VudF9hZnRlcikpOwotdm9pZCBzZXRfYnVmbGlzdGVkIF9fQVJHUygoaW50IG9uKSk7Ci1pbnQgYnVmX2NvbnRlbnRzX2NoYW5nZWQgX19BUkdTKChidWZfVCAqYnVmKSk7Ci12b2lkIHdpcGVfYnVmZmVyIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGF1Y21kKSk7CitleHRlcm4gaW50IG9wZW5fYnVmZmVyIF9fQVJHUygoaW50IHJlYWRfc3RkaW4sIGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIGludCBidWZfdmFsaWQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCBjbG9zZV9idWZmZXIgX19BUkdTKCh3aW5fVCAqd2luLCBidWZfVCAqYnVmLCBpbnQgYWN0aW9uKSk7CitleHRlcm4gdm9pZCBidWZfY2xlYXJfZmlsZSBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiB2b2lkIGJ1Zl9mcmVlYWxsIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGRlbF9idWYsIGludCB3aXBlX2J1ZikpOworZXh0ZXJuIHZvaWQgZ290b19idWZmZXIgX19BUkdTKChleGFyZ19UICplYXAsIGludCBzdGFydCwgaW50IGRpciwgaW50IGNvdW50KSk7CitleHRlcm4gdm9pZCBoYW5kbGVfc3dhcF9leGlzdHMgX19BUkdTKChidWZfVCAqb2xkX2N1cmJ1ZikpOworZXh0ZXJuIGNoYXJfdSAqZG9fYnVmZGVsIF9fQVJHUygoaW50IGNvbW1hbmQsIGNoYXJfdSAqYXJnLCBpbnQgYWRkcl9jb3VudCwgaW50IHN0YXJ0X2JuciwgaW50IGVuZF9ibnIsIGludCBmb3JjZWl0KSk7CitleHRlcm4gaW50IGRvX2J1ZmZlciBfX0FSR1MoKGludCBhY3Rpb24sIGludCBzdGFydCwgaW50IGRpciwgaW50IGNvdW50LCBpbnQgZm9yY2VpdCkpOworZXh0ZXJuIHZvaWQgc2V0X2N1cmJ1ZiBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBhY3Rpb24pKTsKK2V4dGVybiB2b2lkIGVudGVyX2J1ZmZlciBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiBidWZfVCAqYnVmbGlzdF9uZXcgX19BUkdTKChjaGFyX3UgKmZmbmFtZSwgY2hhcl91ICpzZm5hbWUsIGxpbmVucl9UIGxudW0sIGludCBmbGFncykpOworZXh0ZXJuIHZvaWQgZnJlZV9idWZfb3B0aW9ucyBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBmcmVlX3BfZmYpKTsKK2V4dGVybiBpbnQgYnVmbGlzdF9nZXRmaWxlIF9fQVJHUygoaW50IG4sIGxpbmVucl9UIGxudW0sIGludCBvcHRpb25zLCBpbnQgZm9yY2VpdCkpOworZXh0ZXJuIHZvaWQgYnVmbGlzdF9nZXRmcG9zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGJ1Zl9UICpidWZsaXN0X2ZpbmRuYW1lX2V4cCBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKK2V4dGVybiBidWZfVCAqYnVmbGlzdF9maW5kbmFtZSBfX0FSR1MoKGNoYXJfdSAqZmZuYW1lKSk7CitleHRlcm4gaW50IGJ1Zmxpc3RfZmluZHBhdCBfX0FSR1MoKGNoYXJfdSAqcGF0dGVybiwgY2hhcl91ICpwYXR0ZXJuX2VuZCwgaW50IHVubGlzdGVkLCBpbnQgZGlmZm1vZGUpKTsKK2V4dGVybiBpbnQgRXhwYW5kQnVmbmFtZXMgX19BUkdTKChjaGFyX3UgKnBhdCwgaW50ICpudW1fZmlsZSwgY2hhcl91ICoqKmZpbGUsIGludCBvcHRpb25zKSk7CitleHRlcm4gYnVmX1QgKmJ1Zmxpc3RfZmluZG5yIF9fQVJHUygoaW50IG5yKSk7CitleHRlcm4gY2hhcl91ICpidWZsaXN0X25yMm5hbWUgX19BUkdTKChpbnQgbiwgaW50IGZ1bGxuYW1lLCBpbnQgaGVscHRhaWwpKTsKK2V4dGVybiB2b2lkIGdldF93aW5vcHRzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHBvc19UICpidWZsaXN0X2ZpbmRmcG9zIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGxpbmVucl9UIGJ1Zmxpc3RfZmluZGxudW0gX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCBidWZsaXN0X2xpc3QgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgYnVmbGlzdF9uYW1lX25yIF9fQVJHUygoaW50IGZudW0sIGNoYXJfdSAqKmZuYW1lLCBsaW5lbnJfVCAqbG51bSkpOworZXh0ZXJuIGludCBzZXRmbmFtZSBfX0FSR1MoKGJ1Zl9UICpidWYsIGNoYXJfdSAqZmZuYW1lLCBjaGFyX3UgKnNmbmFtZSwgaW50IG1lc3NhZ2UpKTsKK2V4dGVybiB2b2lkIGJ1Zl9zZXRfbmFtZSBfX0FSR1MoKGludCBmbnVtLCBjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIGJ1Zl9uYW1lX2NoYW5nZWQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gYnVmX1QgKnNldGFsdGZuYW1lIF9fQVJHUygoY2hhcl91ICpmZm5hbWUsIGNoYXJfdSAqc2ZuYW1lLCBsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gY2hhcl91ICpnZXRhbHRmbmFtZSBfX0FSR1MoKGludCBlcnJtc2cpKTsKK2V4dGVybiBpbnQgYnVmbGlzdF9hZGQgX19BUkdTKChjaGFyX3UgKmZuYW1lLCBpbnQgZmxhZ3MpKTsKK2V4dGVybiB2b2lkIGJ1Zmxpc3Rfc2xhc2hfYWRqdXN0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgYnVmbGlzdF9hbHRmcG9zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBvdGhlcmZpbGUgX19BUkdTKChjaGFyX3UgKmZmbmFtZSkpOworZXh0ZXJuIHZvaWQgYnVmX3NldGlubyBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiB2b2lkIGZpbGVpbmZvIF9fQVJHUygoaW50IGZ1bGxuYW1lLCBpbnQgc2hvcnRoZWxwLCBpbnQgZG9udF90cnVuY2F0ZSkpOworZXh0ZXJuIHZvaWQgY29sX3ByaW50IF9fQVJHUygoY2hhcl91ICpidWYsIGludCBjb2wsIGludCB2Y29sKSk7CitleHRlcm4gdm9pZCBtYWtldGl0bGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXNldHRpdGxlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZnJlZV90aXRsZXMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGJ1aWxkX3N0bF9zdHJfaGwgX19BUkdTKCh3aW5fVCAqd3AsIGNoYXJfdSAqb3V0LCBzaXplX3Qgb3V0bGVuLCBjaGFyX3UgKmZtdCwgaW50IHVzZV9zYW5kYm94LCBpbnQgZmlsbGNoYXIsIGludCBtYXh3aWR0aCwgc3RydWN0IHN0bF9obHJlYyAqaGx0YWIsIHN0cnVjdCBzdGxfaGxyZWMgKnRhYnRhYikpOworZXh0ZXJuIHZvaWQgZ2V0X3JlbF9wb3MgX19BUkdTKCh3aW5fVCAqd3AsIGNoYXJfdSAqc3RyKSk7CitleHRlcm4gaW50IGFwcGVuZF9hcmdfbnVtYmVyIF9fQVJHUygod2luX1QgKndwLCBjaGFyX3UgKmJ1ZiwgaW50IGFkZF9maWxlLCBpbnQgbWF4bGVuKSk7CitleHRlcm4gY2hhcl91ICpmaXhfZm5hbWUgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7CitleHRlcm4gdm9pZCBmbmFtZV9leHBhbmQgX19BUkdTKChidWZfVCAqYnVmLCBjaGFyX3UgKipmZm5hbWUsIGNoYXJfdSAqKnNmbmFtZSkpOworZXh0ZXJuIGNoYXJfdSAqYWxpc3RfbmFtZSBfX0FSR1MoKGFlbnRyeV9UICphZXApKTsKK2V4dGVybiB2b2lkIGRvX2FyZ19hbGwgX19BUkdTKChpbnQgY291bnQsIGludCBmb3JjZWl0LCBpbnQga2VlcF90YWJzKSk7CitleHRlcm4gdm9pZCBleF9idWZmZXJfYWxsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBkb19tb2RlbGluZXMgX19BUkdTKChpbnQgZmxhZ3MpKTsKK2V4dGVybiBpbnQgcmVhZF92aW1pbmZvX2J1ZmZlcmxpc3QgX19BUkdTKCh2aXJfVCAqdmlycCwgaW50IHdyaXRpbmcpKTsKK2V4dGVybiB2b2lkIHdyaXRlX3ZpbWluZm9fYnVmZmVybGlzdCBfX0FSR1MoKEZJTEUgKmZwKSk7CitleHRlcm4gY2hhciAqYnVmX3NwbmFtZSBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiB2b2lkIGJ1Zl9hZGRzaWduIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGlkLCBsaW5lbnJfVCBsbnVtLCBpbnQgdHlwZW5yKSk7CitleHRlcm4gaW50IGJ1Zl9jaGFuZ2Vfc2lnbl90eXBlIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IG1hcmtJZCwgaW50IHR5cGVucikpOworZXh0ZXJuIGludF91IGJ1Zl9nZXRzaWdudHlwZSBfX0FSR1MoKGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0sIGludCB0eXBlKSk7CitleHRlcm4gbGluZW5yX1QgYnVmX2RlbHNpZ24gX19BUkdTKChidWZfVCAqYnVmLCBpbnQgaWQpKTsKK2V4dGVybiBpbnQgYnVmX2ZpbmRzaWduIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGlkKSk7CitleHRlcm4gaW50IGJ1Zl9maW5kc2lnbl9pZCBfX0FSR1MoKGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiBpbnQgYnVmX2ZpbmRzaWdudHlwZV9pZCBfX0FSR1MoKGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0sIGludCB0eXBlbnIpKTsKK2V4dGVybiBpbnQgYnVmX3NpZ25jb3VudCBfX0FSR1MoKGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiB2b2lkIGJ1Zl9kZWxldGVfYWxsX3NpZ25zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc2lnbl9saXN0X3BsYWNlZCBfX0FSR1MoKGJ1Zl9UICpyYnVmKSk7CitleHRlcm4gdm9pZCBzaWduX21hcmtfYWRqdXN0IF9fQVJHUygobGluZW5yX1QgbGluZTEsIGxpbmVucl9UIGxpbmUyLCBsb25nIGFtb3VudCwgbG9uZyBhbW91bnRfYWZ0ZXIpKTsKK2V4dGVybiB2b2lkIHNldF9idWZsaXN0ZWQgX19BUkdTKChpbnQgb24pKTsKK2V4dGVybiBpbnQgYnVmX2NvbnRlbnRzX2NoYW5nZWQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCB3aXBlX2J1ZmZlciBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBhdWNtZCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vY2hhcnNldC5wcm8gYi9zcmMvcHJvdG8vY2hhcnNldC5wcm8KaW5kZXggNGI2ODkwZC4uYTZmNDgwMiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2NoYXJzZXQucHJvCisrKyBiL3NyYy9wcm90by9jaGFyc2V0LnBybwpAQCAtMSw1NiArMSw1NiBAQAogLyogY2hhcnNldC5jICovCi1pbnQgaW5pdF9jaGFydGFiIF9fQVJHUygodm9pZCkpOwotaW50IGJ1Zl9pbml0X2NoYXJ0YWIgX19BUkdTKChidWZfVCAqYnVmLCBpbnQgZ2xvYmFsKSk7Ci12b2lkIHRyYW5zX2NoYXJhY3RlcnMgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGJ1ZnNpemUpKTsKLWNoYXJfdSAqdHJhbnNzdHIgX19BUkdTKChjaGFyX3UgKnMpKTsKLWNoYXJfdSAqc3RyX2ZvbGRjYXNlIF9fQVJHUygoY2hhcl91ICpzdHIsIGludCBvcmdsZW4sIGNoYXJfdSAqYnVmLCBpbnQgYnVmbGVuKSk7Ci1jaGFyX3UgKnRyYW5zY2hhciBfX0FSR1MoKGludCBjKSk7Ci1jaGFyX3UgKnRyYW5zY2hhcl9ieXRlIF9fQVJHUygoaW50IGMpKTsKLXZvaWQgdHJhbnNjaGFyX25vbnByaW50IF9fQVJHUygoY2hhcl91ICpidWYsIGludCBjKSk7Ci12b2lkIHRyYW5zY2hhcl9oZXggX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGMpKTsKLWludCBieXRlMmNlbGxzIF9fQVJHUygoaW50IGIpKTsKLWludCBjaGFyMmNlbGxzIF9fQVJHUygoaW50IGMpKTsKLWludCBwdHIyY2VsbHMgX19BUkdTKChjaGFyX3UgKnApKTsKLWludCB2aW1fc3Ryc2l6ZSBfX0FSR1MoKGNoYXJfdSAqcykpOwotaW50IHZpbV9zdHJuc2l6ZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOwotaW50IGNoYXJ0YWJzaXplIF9fQVJHUygoY2hhcl91ICpwLCBjb2xucl9UIGNvbCkpOwotaW50IGxpbmV0YWJzaXplIF9fQVJHUygoY2hhcl91ICpzKSk7Ci1pbnQgd2luX2xpbmV0YWJzaXplIF9fQVJHUygod2luX1QgKndwLCBjaGFyX3UgKnAsIGNvbG5yX1QgbGVuKSk7Ci1pbnQgdmltX2lzSURjIF9fQVJHUygoaW50IGMpKTsKLWludCB2aW1faXN3b3JkYyBfX0FSR1MoKGludCBjKSk7Ci1pbnQgdmltX2lzd29yZHAgX19BUkdTKChjaGFyX3UgKnApKTsKLWludCB2aW1faXN3b3JkY19idWYgX19BUkdTKChjaGFyX3UgKnAsIGJ1Zl9UICpidWYpKTsKLWludCB2aW1faXNmaWxlYyBfX0FSR1MoKGludCBjKSk7Ci1pbnQgdmltX2lzcHJpbnRjIF9fQVJHUygoaW50IGMpKTsKLWludCB2aW1faXNwcmludGNfc3RyaWN0IF9fQVJHUygoaW50IGMpKTsKLWludCBsYnJfY2hhcnRhYnNpemUgX19BUkdTKCh1bnNpZ25lZCBjaGFyICpzLCBjb2xucl9UIGNvbCkpOwotaW50IGxicl9jaGFydGFic2l6ZV9hZHYgX19BUkdTKChjaGFyX3UgKipzLCBjb2xucl9UIGNvbCkpOwotaW50IHdpbl9sYnJfY2hhcnRhYnNpemUgX19BUkdTKCh3aW5fVCAqd3AsIGNoYXJfdSAqcywgY29sbnJfVCBjb2wsIGludCAqaGVhZHApKTsKLWludCBpbl93aW5fYm9yZGVyIF9fQVJHUygod2luX1QgKndwLCBjb2xucl9UIHZjb2wpKTsKLXZvaWQgZ2V0dmNvbCBfX0FSR1MoKHdpbl9UICp3cCwgcG9zX1QgKnBvcywgY29sbnJfVCAqc3RhcnQsIGNvbG5yX1QgKmN1cnNvciwgY29sbnJfVCAqZW5kKSk7Ci1jb2xucl9UIGdldHZjb2xfbm9saXN0IF9fQVJHUygocG9zX1QgKnBvc3ApKTsKLXZvaWQgZ2V0dnZjb2wgX19BUkdTKCh3aW5fVCAqd3AsIHBvc19UICpwb3MsIGNvbG5yX1QgKnN0YXJ0LCBjb2xucl9UICpjdXJzb3IsIGNvbG5yX1QgKmVuZCkpOwotdm9pZCBnZXR2Y29scyBfX0FSR1MoKHdpbl9UICp3cCwgcG9zX1QgKnBvczEsIHBvc19UICpwb3MyLCBjb2xucl9UICpsZWZ0LCBjb2xucl9UICpyaWdodCkpOwotY2hhcl91ICpza2lwd2hpdGUgX19BUkdTKChjaGFyX3UgKnApKTsKLWNoYXJfdSAqc2tpcGRpZ2l0cyBfX0FSR1MoKGNoYXJfdSAqcCkpOwotY2hhcl91ICpza2lwaGV4IF9fQVJHUygoY2hhcl91ICpwKSk7Ci1jaGFyX3UgKnNraXB0b2RpZ2l0IF9fQVJHUygoY2hhcl91ICpwKSk7Ci1jaGFyX3UgKnNraXB0b2hleCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IHZpbV9pc2RpZ2l0IF9fQVJHUygoaW50IGMpKTsKLWludCB2aW1faXN4ZGlnaXQgX19BUkdTKChpbnQgYykpOwotaW50IHZpbV9pc2xvd2VyIF9fQVJHUygoaW50IGMpKTsKLWludCB2aW1faXN1cHBlciBfX0FSR1MoKGludCBjKSk7Ci1pbnQgdmltX3RvdXBwZXIgX19BUkdTKChpbnQgYykpOwotaW50IHZpbV90b2xvd2VyIF9fQVJHUygoaW50IGMpKTsKLWNoYXJfdSAqc2tpcHRvd2hpdGUgX19BUkdTKChjaGFyX3UgKnApKTsKLWNoYXJfdSAqc2tpcHRvd2hpdGVfZXNjIF9fQVJHUygoY2hhcl91ICpwKSk7Ci1sb25nIGdldGRpZ2l0cyBfX0FSR1MoKGNoYXJfdSAqKnBwKSk7Ci1pbnQgdmltX2lzYmxhbmtsaW5lIF9fQVJHUygoY2hhcl91ICpsYnVmKSk7Ci12b2lkIHZpbV9zdHIybnIgX19BUkdTKChjaGFyX3UgKnN0YXJ0LCBpbnQgKmhleHAsIGludCAqbGVuLCBpbnQgZG9vY3QsIGludCBkb2hleCwgbG9uZyAqbnB0ciwgdW5zaWduZWQgbG9uZyAqdW5wdHIpKTsKLWludCBoZXgybnIgX19BUkdTKChpbnQgYykpOwotaW50IGhleGhleDJuciBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IHJlbV9iYWNrc2xhc2ggX19BUkdTKChjaGFyX3UgKnN0cikpOwotdm9pZCBiYWNrc2xhc2hfaGFsdmUgX19BUkdTKChjaGFyX3UgKnApKTsKLWNoYXJfdSAqYmFja3NsYXNoX2hhbHZlX3NhdmUgX19BUkdTKChjaGFyX3UgKnApKTsKLXZvaWQgZWJjZGljMmFzY2lpIF9fQVJHUygoY2hhcl91ICpidWZmZXIsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgaW5pdF9jaGFydGFiIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBidWZfaW5pdF9jaGFydGFiIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGdsb2JhbCkpOworZXh0ZXJuIHZvaWQgdHJhbnNfY2hhcmFjdGVycyBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgYnVmc2l6ZSkpOworZXh0ZXJuIGNoYXJfdSAqdHJhbnNzdHIgX19BUkdTKChjaGFyX3UgKnMpKTsKK2V4dGVybiBjaGFyX3UgKnN0cl9mb2xkY2FzZSBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgb3JnbGVuLCBjaGFyX3UgKmJ1ZiwgaW50IGJ1ZmxlbikpOworZXh0ZXJuIGNoYXJfdSAqdHJhbnNjaGFyIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBjaGFyX3UgKnRyYW5zY2hhcl9ieXRlIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiB2b2lkIHRyYW5zY2hhcl9ub25wcmludCBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgYykpOworZXh0ZXJuIHZvaWQgdHJhbnNjaGFyX2hleCBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgYykpOworZXh0ZXJuIGludCBieXRlMmNlbGxzIF9fQVJHUygoaW50IGIpKTsKK2V4dGVybiBpbnQgY2hhcjJjZWxscyBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHB0cjJjZWxscyBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGludCB2aW1fc3Ryc2l6ZSBfX0FSR1MoKGNoYXJfdSAqcykpOworZXh0ZXJuIGludCB2aW1fc3RybnNpemUgX19BUkdTKChjaGFyX3UgKnMsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgY2hhcnRhYnNpemUgX19BUkdTKChjaGFyX3UgKnAsIGNvbG5yX1QgY29sKSk7CitleHRlcm4gaW50IGxpbmV0YWJzaXplIF9fQVJHUygoY2hhcl91ICpzKSk7CitleHRlcm4gaW50IHdpbl9saW5ldGFic2l6ZSBfX0FSR1MoKHdpbl9UICp3cCwgY2hhcl91ICpwLCBjb2xucl9UIGxlbikpOworZXh0ZXJuIGludCB2aW1faXNJRGMgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGludCB2aW1faXN3b3JkYyBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV9pc3dvcmRwIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gaW50IHZpbV9pc3dvcmRjX2J1ZiBfX0FSR1MoKGNoYXJfdSAqcCwgYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGludCB2aW1faXNmaWxlYyBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV9pc3ByaW50YyBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV9pc3ByaW50Y19zdHJpY3QgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGludCBsYnJfY2hhcnRhYnNpemUgX19BUkdTKCh1bnNpZ25lZCBjaGFyICpzLCBjb2xucl9UIGNvbCkpOworZXh0ZXJuIGludCBsYnJfY2hhcnRhYnNpemVfYWR2IF9fQVJHUygoY2hhcl91ICoqcywgY29sbnJfVCBjb2wpKTsKK2V4dGVybiBpbnQgd2luX2xicl9jaGFydGFic2l6ZSBfX0FSR1MoKHdpbl9UICp3cCwgY2hhcl91ICpzLCBjb2xucl9UIGNvbCwgaW50ICpoZWFkcCkpOworZXh0ZXJuIGludCBpbl93aW5fYm9yZGVyIF9fQVJHUygod2luX1QgKndwLCBjb2xucl9UIHZjb2wpKTsKK2V4dGVybiB2b2lkIGdldHZjb2wgX19BUkdTKCh3aW5fVCAqd3AsIHBvc19UICpwb3MsIGNvbG5yX1QgKnN0YXJ0LCBjb2xucl9UICpjdXJzb3IsIGNvbG5yX1QgKmVuZCkpOworZXh0ZXJuIGNvbG5yX1QgZ2V0dmNvbF9ub2xpc3QgX19BUkdTKChwb3NfVCAqcG9zcCkpOworZXh0ZXJuIHZvaWQgZ2V0dnZjb2wgX19BUkdTKCh3aW5fVCAqd3AsIHBvc19UICpwb3MsIGNvbG5yX1QgKnN0YXJ0LCBjb2xucl9UICpjdXJzb3IsIGNvbG5yX1QgKmVuZCkpOworZXh0ZXJuIHZvaWQgZ2V0dmNvbHMgX19BUkdTKCh3aW5fVCAqd3AsIHBvc19UICpwb3MxLCBwb3NfVCAqcG9zMiwgY29sbnJfVCAqbGVmdCwgY29sbnJfVCAqcmlnaHQpKTsKK2V4dGVybiBjaGFyX3UgKnNraXB3aGl0ZSBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGNoYXJfdSAqc2tpcGRpZ2l0cyBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGNoYXJfdSAqc2tpcGhleCBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGNoYXJfdSAqc2tpcHRvZGlnaXQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBjaGFyX3UgKnNraXB0b2hleCBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGludCB2aW1faXNkaWdpdCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV9pc3hkaWdpdCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV9pc2xvd2VyIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBpbnQgdmltX2lzdXBwZXIgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGludCB2aW1fdG91cHBlciBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZpbV90b2xvd2VyIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBjaGFyX3UgKnNraXB0b3doaXRlIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gY2hhcl91ICpza2lwdG93aGl0ZV9lc2MgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBsb25nIGdldGRpZ2l0cyBfX0FSR1MoKGNoYXJfdSAqKnBwKSk7CitleHRlcm4gaW50IHZpbV9pc2JsYW5rbGluZSBfX0FSR1MoKGNoYXJfdSAqbGJ1ZikpOworZXh0ZXJuIHZvaWQgdmltX3N0cjJuciBfX0FSR1MoKGNoYXJfdSAqc3RhcnQsIGludCAqaGV4cCwgaW50ICpsZW4sIGludCBkb29jdCwgaW50IGRvaGV4LCBsb25nICpucHRyLCB1bnNpZ25lZCBsb25nICp1bnB0cikpOworZXh0ZXJuIGludCBoZXgybnIgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGludCBoZXhoZXgybnIgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgcmVtX2JhY2tzbGFzaCBfX0FSR1MoKGNoYXJfdSAqc3RyKSk7CitleHRlcm4gdm9pZCBiYWNrc2xhc2hfaGFsdmUgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBjaGFyX3UgKmJhY2tzbGFzaF9oYWx2ZV9zYXZlIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gdm9pZCBlYmNkaWMyYXNjaWkgX19BUkdTKChjaGFyX3UgKmJ1ZmZlciwgaW50IGxlbikpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZGlmZi5wcm8gYi9zcmMvcHJvdG8vZGlmZi5wcm8KaW5kZXggZTQ1MTI3YS4uNjViOTc4ZiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2RpZmYucHJvCisrKyBiL3NyYy9wcm90by9kaWZmLnBybwpAQCAtMSwyNiArMSwyNiBAQAogLyogZGlmZi5jICovCi12b2lkIGRpZmZfYnVmX2RlbGV0ZSBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgZGlmZl9idWZfYWRqdXN0IF9fQVJHUygod2luX1QgKndpbikpOwotdm9pZCBkaWZmX2J1Zl9hZGQgX19BUkdTKChidWZfVCAqYnVmKSk7Ci12b2lkIGRpZmZfaW52YWxpZGF0ZSBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgZGlmZl9tYXJrX2FkanVzdCBfX0FSR1MoKGxpbmVucl9UIGxpbmUxLCBsaW5lbnJfVCBsaW5lMiwgbG9uZyBhbW91bnQsIGxvbmcgYW1vdW50X2FmdGVyKSk7Ci12b2lkIGV4X2RpZmZ1cGRhdGUgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZGlmZnBhdGNoIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGV4X2RpZmZzcGxpdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9kaWZmdGhpcyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBkaWZmX3dpbl9vcHRpb25zIF9fQVJHUygod2luX1QgKndwLCBpbnQgYWRkYnVmKSk7Ci12b2lkIGV4X2RpZmZvZmYgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZGlmZl9jbGVhciBfX0FSR1MoKHRhYnBhZ2VfVCAqdHApKTsKLWludCBkaWZmX2NoZWNrIF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtKSk7Ci1pbnQgZGlmZl9jaGVja19maWxsIF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtKSk7Ci12b2lkIGRpZmZfc2V0X3RvcGxpbmUgX19BUkdTKCh3aW5fVCAqZnJvbXdpbiwgd2luX1QgKnRvd2luKSk7Ci1pbnQgZGlmZm9wdF9jaGFuZ2VkIF9fQVJHUygodm9pZCkpOwotaW50IGRpZmZvcHRfaG9yaXpvbnRhbCBfX0FSR1MoKHZvaWQpKTsKLWludCBkaWZmX2ZpbmRfY2hhbmdlIF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtLCBpbnQgKnN0YXJ0cCwgaW50ICplbmRwKSk7Ci1pbnQgZGlmZl9pbmZvbGQgX19BUkdTKCh3aW5fVCAqd3AsIGxpbmVucl9UIGxudW0pKTsKLXZvaWQgbnZfZGlmZmdldHB1dCBfX0FSR1MoKGludCBwdXQpKTsKLXZvaWQgZXhfZGlmZmdldHB1dCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotaW50IGRpZmZfbW9kZV9idWYgX19BUkdTKChidWZfVCAqYnVmKSk7Ci1pbnQgZGlmZl9tb3ZlX3RvIF9fQVJHUygoaW50IGRpciwgbG9uZyBjb3VudCkpOwotbGluZW5yX1QgZGlmZl9sbnVtX3dpbiBfX0FSR1MoKGxpbmVucl9UIGxudW0sIHdpbl9UICp3cCkpOworZXh0ZXJuIHZvaWQgZGlmZl9idWZfZGVsZXRlIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgZGlmZl9idWZfYWRqdXN0IF9fQVJHUygod2luX1QgKndpbikpOworZXh0ZXJuIHZvaWQgZGlmZl9idWZfYWRkIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgZGlmZl9pbnZhbGlkYXRlIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgZGlmZl9tYXJrX2FkanVzdCBfX0FSR1MoKGxpbmVucl9UIGxpbmUxLCBsaW5lbnJfVCBsaW5lMiwgbG9uZyBhbW91bnQsIGxvbmcgYW1vdW50X2FmdGVyKSk7CitleHRlcm4gdm9pZCBleF9kaWZmdXBkYXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9kaWZmcGF0Y2ggX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X2RpZmZzcGxpdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZGlmZnRoaXMgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGRpZmZfd2luX29wdGlvbnMgX19BUkdTKCh3aW5fVCAqd3AsIGludCBhZGRidWYpKTsKK2V4dGVybiB2b2lkIGV4X2RpZmZvZmYgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGRpZmZfY2xlYXIgX19BUkdTKCh0YWJwYWdlX1QgKnRwKSk7CitleHRlcm4gaW50IGRpZmZfY2hlY2sgX19BUkdTKCh3aW5fVCAqd3AsIGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiBpbnQgZGlmZl9jaGVja19maWxsIF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gdm9pZCBkaWZmX3NldF90b3BsaW5lIF9fQVJHUygod2luX1QgKmZyb213aW4sIHdpbl9UICp0b3dpbikpOworZXh0ZXJuIGludCBkaWZmb3B0X2NoYW5nZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGRpZmZvcHRfaG9yaXpvbnRhbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZGlmZl9maW5kX2NoYW5nZSBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbG51bSwgaW50ICpzdGFydHAsIGludCAqZW5kcCkpOworZXh0ZXJuIGludCBkaWZmX2luZm9sZCBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbG51bSkpOworZXh0ZXJuIHZvaWQgbnZfZGlmZmdldHB1dCBfX0FSR1MoKGludCBwdXQpKTsKK2V4dGVybiB2b2lkIGV4X2RpZmZnZXRwdXQgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgZGlmZl9tb2RlX2J1ZiBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiBpbnQgZGlmZl9tb3ZlX3RvIF9fQVJHUygoaW50IGRpciwgbG9uZyBjb3VudCkpOworZXh0ZXJuIGxpbmVucl9UIGRpZmZfbG51bV93aW4gX19BUkdTKChsaW5lbnJfVCBsbnVtLCB3aW5fVCAqd3ApKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2RpZ3JhcGgucHJvIGIvc3JjL3Byb3RvL2RpZ3JhcGgucHJvCmluZGV4IGJlNWJlNzEuLjY4MjFmODggMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9kaWdyYXBoLnBybworKysgYi9zcmMvcHJvdG8vZGlncmFwaC5wcm8KQEAgLTEsOSArMSw5IEBACiAvKiBkaWdyYXBoLmMgKi8KLWludCBkb19kaWdyYXBoIF9fQVJHUygoaW50IGMpKTsKLWludCBnZXRfZGlncmFwaCBfX0FSR1MoKGludCBjbWRsaW5lKSk7Ci1pbnQgZ2V0ZGlncmFwaCBfX0FSR1MoKGludCBjaGFyMSwgaW50IGNoYXIyLCBpbnQgbWV0YSkpOwotdm9pZCBwdXRkaWdyYXBoIF9fQVJHUygoY2hhcl91ICpzdHIpKTsKLXZvaWQgbGlzdGRpZ3JhcGhzIF9fQVJHUygodm9pZCkpOwotY2hhcl91ICprZXltYXBfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZXhfbG9hZGtleW1hcCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIGludCBkb19kaWdyYXBoIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBpbnQgZ2V0X2RpZ3JhcGggX19BUkdTKChpbnQgY21kbGluZSkpOworZXh0ZXJuIGludCBnZXRkaWdyYXBoIF9fQVJHUygoaW50IGNoYXIxLCBpbnQgY2hhcjIsIGludCBtZXRhKSk7CitleHRlcm4gdm9pZCBwdXRkaWdyYXBoIF9fQVJHUygoY2hhcl91ICpzdHIpKTsKK2V4dGVybiB2b2lkIGxpc3RkaWdyYXBocyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmtleW1hcF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZXhfbG9hZGtleW1hcCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZXZhbC5wcm8gYi9zcmMvcHJvdG8vZXZhbC5wcm8KaW5kZXggYTBlODY4NS4uYjJjODIwMCAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2V2YWwucHJvCisrKyBiL3NyYy9wcm90by9ldmFsLnBybwpAQCAtMSw5OSArMSw5OSBAQAogLyogZXZhbC5jICovCi12b2lkIGV2YWxfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZXZhbF9jbGVhciBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqZnVuY19uYW1lIF9fQVJHUygodm9pZCAqY29va2llKSk7Ci1saW5lbnJfVCAqZnVuY19icmVha3BvaW50IF9fQVJHUygodm9pZCAqY29va2llKSk7Ci1pbnQgKmZ1bmNfZGJnX3RpY2sgX19BUkdTKCh2b2lkICpjb29raWUpKTsKLWludCBmdW5jX2xldmVsIF9fQVJHUygodm9pZCAqY29va2llKSk7Ci1pbnQgY3VycmVudF9mdW5jX3JldHVybmVkIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfaW50ZXJuYWxfc3RyaW5nX3ZhciBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgY2hhcl91ICp2YWx1ZSkpOwotaW50IHZhcl9yZWRpcl9zdGFydCBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IGFwcGVuZCkpOwotdm9pZCB2YXJfcmVkaXJfc3RyIF9fQVJHUygoY2hhcl91ICp2YWx1ZSwgaW50IGxlbikpOwotdm9pZCB2YXJfcmVkaXJfc3RvcCBfX0FSR1MoKHZvaWQpKTsKLWludCBldmFsX2NoYXJjb252ZXJ0IF9fQVJHUygoY2hhcl91ICplbmNfZnJvbSwgY2hhcl91ICplbmNfdG8sIGNoYXJfdSAqZm5hbWVfZnJvbSwgY2hhcl91ICpmbmFtZV90bykpOwotaW50IGV2YWxfcHJpbnRleHByIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICphcmdzKSk7Ci12b2lkIGV2YWxfZGlmZiBfX0FSR1MoKGNoYXJfdSAqb3JpZ2ZpbGUsIGNoYXJfdSAqbmV3ZmlsZSwgY2hhcl91ICpvdXRmaWxlKSk7Ci12b2lkIGV2YWxfcGF0Y2ggX19BUkdTKChjaGFyX3UgKm9yaWdmaWxlLCBjaGFyX3UgKmRpZmZmaWxlLCBjaGFyX3UgKm91dGZpbGUpKTsKLWludCBldmFsX3RvX2Jvb2wgX19BUkdTKChjaGFyX3UgKmFyZywgaW50ICplcnJvciwgY2hhcl91ICoqbmV4dGNtZCwgaW50IHNraXApKTsKLWNoYXJfdSAqZXZhbF90b19zdHJpbmdfc2tpcCBfX0FSR1MoKGNoYXJfdSAqYXJnLCBjaGFyX3UgKipuZXh0Y21kLCBpbnQgc2tpcCkpOwotaW50IHNraXBfZXhwciBfX0FSR1MoKGNoYXJfdSAqKnBwKSk7Ci1jaGFyX3UgKmV2YWxfdG9fc3RyaW5nIF9fQVJHUygoY2hhcl91ICphcmcsIGNoYXJfdSAqKm5leHRjbWQsIGludCBkb2xpc3QpKTsKLWNoYXJfdSAqZXZhbF90b19zdHJpbmdfc2FmZSBfX0FSR1MoKGNoYXJfdSAqYXJnLCBjaGFyX3UgKipuZXh0Y21kLCBpbnQgdXNlX3NhbmRib3gpKTsKLWludCBldmFsX3RvX251bWJlciBfX0FSR1MoKGNoYXJfdSAqZXhwcikpOwotbGlzdF9UICpldmFsX3NwZWxsX2V4cHIgX19BUkdTKChjaGFyX3UgKmJhZHdvcmQsIGNoYXJfdSAqZXhwcikpOwotaW50IGdldF9zcGVsbHdvcmQgX19BUkdTKChsaXN0X1QgKmxpc3QsIGNoYXJfdSAqKnBwKSk7Ci10eXB2YWxfVCAqZXZhbF9leHByIF9fQVJHUygoY2hhcl91ICphcmcsIGNoYXJfdSAqKm5leHRjbWQpKTsKLXZvaWQgKmNhbGxfZnVuY19yZXRzdHIgX19BUkdTKChjaGFyX3UgKmZ1bmMsIGludCBhcmdjLCBjaGFyX3UgKiphcmd2LCBpbnQgc2FmZSkpOwotbG9uZyBjYWxsX2Z1bmNfcmV0bnIgX19BUkdTKChjaGFyX3UgKmZ1bmMsIGludCBhcmdjLCBjaGFyX3UgKiphcmd2LCBpbnQgc2FmZSkpOwotdm9pZCAqY2FsbF9mdW5jX3JldGxpc3QgX19BUkdTKChjaGFyX3UgKmZ1bmMsIGludCBhcmdjLCBjaGFyX3UgKiphcmd2LCBpbnQgc2FmZSkpOwotdm9pZCAqc2F2ZV9mdW5jY2FsIF9fQVJHUygodm9pZCkpOwotdm9pZCByZXN0b3JlX2Z1bmNjYWwgX19BUkdTKCh2b2lkICp2ZmMpKTsKLXZvaWQgcHJvZl9jaGlsZF9lbnRlciBfX0FSR1MoKHByb2Z0aW1lX1QgKnRtKSk7Ci12b2lkIHByb2ZfY2hpbGRfZXhpdCBfX0FSR1MoKHByb2Z0aW1lX1QgKnRtKSk7Ci1pbnQgZXZhbF9mb2xkZXhwciBfX0FSR1MoKGNoYXJfdSAqYXJnLCBpbnQgKmNwKSk7Ci12b2lkIGV4X2xldCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCAqZXZhbF9mb3JfbGluZSBfX0FSR1MoKGNoYXJfdSAqYXJnLCBpbnQgKmVycnAsIGNoYXJfdSAqKm5leHRjbWRwLCBpbnQgc2tpcCkpOwotaW50IG5leHRfZm9yX2l0ZW0gX19BUkdTKCh2b2lkICpmaV92b2lkLCBjaGFyX3UgKmFyZykpOwotdm9pZCBmcmVlX2Zvcl9pbmZvIF9fQVJHUygodm9pZCAqZmlfdm9pZCkpOwotdm9pZCBzZXRfY29udGV4dF9mb3JfZXhwcmVzc2lvbiBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICphcmcsIGNtZGlkeF9UIGNtZGlkeCkpOwotdm9pZCBleF9jYWxsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGV4X3VubGV0IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGV4X2xvY2t2YXIgX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBkb191bmxldCBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IGZvcmNlaXQpKTsKLXZvaWQgZGVsX21lbnV0cmFuc192YXJzIF9fQVJHUygodm9pZCkpOwotY2hhcl91ICpnZXRfdXNlcl92YXJfbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOwotbGlzdF9UICpsaXN0X2FsbG9jIF9fQVJHUygodm9pZCkpOwotdm9pZCBsaXN0X3VucmVmIF9fQVJHUygobGlzdF9UICpsKSk7Ci12b2lkIGxpc3RfZnJlZSBfX0FSR1MoKGxpc3RfVCAqbCkpOwotZGljdGl0ZW1fVCAqZGljdF9sb29rdXAgX19BUkdTKChoYXNoaXRlbV9UICpoaSkpOwotaW50IGxpc3RfYXBwZW5kX2RpY3QgX19BUkdTKChsaXN0X1QgKmxpc3QsIGRpY3RfVCAqZGljdCkpOwotaW50IGdhcmJhZ2VfY29sbGVjdCBfX0FSR1MoKHZvaWQpKTsKLWRpY3RfVCAqZGljdF9hbGxvYyBfX0FSR1MoKHZvaWQpKTsKLWludCBkaWN0X2FkZF9ucl9zdHIgX19BUkdTKChkaWN0X1QgKmQsIGNoYXIgKmtleSwgbG9uZyBuciwgY2hhcl91ICpzdHIpKTsKLWNoYXJfdSAqZ2V0X2RpY3Rfc3RyaW5nIF9fQVJHUygoZGljdF9UICpkLCBjaGFyX3UgKmtleSwgaW50IHNhdmUpKTsKLWxvbmcgZ2V0X2RpY3RfbnVtYmVyIF9fQVJHUygoZGljdF9UICpkLCBjaGFyX3UgKmtleSkpOwotY2hhcl91ICpnZXRfZnVuY3Rpb25fbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOwotY2hhcl91ICpnZXRfZXhwcl9uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7Ci1sb25nIGRvX3NlYXJjaHBhaXIgX19BUkdTKChjaGFyX3UgKnNwYXQsIGNoYXJfdSAqbXBhdCwgY2hhcl91ICplcGF0LCBpbnQgZGlyLCBjaGFyX3UgKnNraXAsIGludCBmbGFncywgcG9zX1QgKm1hdGNoX3BvcywgbGluZW5yX1QgbG51bV9zdG9wKSk7Ci12b2lkIHNldF92aW1fdmFyX25yIF9fQVJHUygoaW50IGlkeCwgbG9uZyB2YWwpKTsKLWxvbmcgZ2V0X3ZpbV92YXJfbnIgX19BUkdTKChpbnQgaWR4KSk7Ci1jaGFyX3UgKmdldF92aW1fdmFyX3N0ciBfX0FSR1MoKGludCBpZHgpKTsKLXZvaWQgc2V0X3Zjb3VudCBfX0FSR1MoKGxvbmcgY291bnQsIGxvbmcgY291bnQxKSk7Ci12b2lkIHNldF92aW1fdmFyX3N0cmluZyBfX0FSR1MoKGludCBpZHgsIGNoYXJfdSAqdmFsLCBpbnQgbGVuKSk7Ci12b2lkIHNldF9yZWdfdmFyIF9fQVJHUygoaW50IGMpKTsKLWNoYXJfdSAqdl9leGNlcHRpb24gX19BUkdTKChjaGFyX3UgKm9sZHZhbCkpOwotY2hhcl91ICp2X3Rocm93cG9pbnQgX19BUkdTKChjaGFyX3UgKm9sZHZhbCkpOwotY2hhcl91ICpzZXRfY21kYXJnIF9fQVJHUygoZXhhcmdfVCAqZWFwLCBjaGFyX3UgKm9sZGFyZykpOwotdm9pZCBmcmVlX3R2IF9fQVJHUygodHlwdmFsX1QgKnZhcnApKTsKLXZvaWQgY2xlYXJfdHYgX19BUkdTKCh0eXB2YWxfVCAqdmFycCkpOwotbG9uZyBnZXRfdHZfbnVtYmVyX2NoayBfX0FSR1MoKHR5cHZhbF9UICp2YXJwLCBpbnQgKmRlbm90ZSkpOwotY2hhcl91ICpnZXRfdHZfc3RyaW5nX2NoayBfX0FSR1MoKHR5cHZhbF9UICp2YXJwKSk7Ci1jaGFyX3UgKmdldF92YXJfdmFsdWUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgbmV3X3NjcmlwdF92YXJzIF9fQVJHUygoc2NpZF9UIGlkKSk7Ci12b2lkIGluaXRfdmFyX2RpY3QgX19BUkdTKChkaWN0X1QgKmRpY3QsIGRpY3RpdGVtX1QgKmRpY3RfdmFyKSk7Ci12b2lkIHZhcnNfY2xlYXIgX19BUkdTKChoYXNodGFiX1QgKmh0KSk7Ci12b2lkIGV4X2VjaG8gX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZWNob2hsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGV4X2V4ZWN1dGUgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZnVuY3Rpb24gX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZnJlZV9hbGxfZnVuY3Rpb25zIF9fQVJHUygodm9pZCkpOwotdm9pZCBmdW5jX2R1bXBfcHJvZmlsZSBfX0FSR1MoKEZJTEUgKmZkKSk7Ci1jaGFyX3UgKmdldF91c2VyX2Z1bmNfbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOwotdm9pZCBleF9kZWxmdW5jdGlvbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9yZXR1cm4gX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBkb19yZXR1cm4gX19BUkdTKChleGFyZ19UICplYXAsIGludCByZWFuaW1hdGUsIGludCBpc19jbWQsIHZvaWQgKnJldHR2KSk7Ci12b2lkIGRpc2NhcmRfcGVuZGluZ19yZXR1cm4gX19BUkdTKCh2b2lkICpyZXR0dikpOwotY2hhcl91ICpnZXRfcmV0dXJuX2NtZCBfX0FSR1MoKHZvaWQgKnJldHR2KSk7Ci1jaGFyX3UgKmdldF9mdW5jX2xpbmUgX19BUkdTKChpbnQgYywgdm9pZCAqY29va2llLCBpbnQgaW5kZW50KSk7Ci12b2lkIGZ1bmNfbGluZV9zdGFydCBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOwotdm9pZCBmdW5jX2xpbmVfZXhlYyBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOwotdm9pZCBmdW5jX2xpbmVfZW5kIF9fQVJHUygodm9pZCAqY29va2llKSk7Ci1pbnQgZnVuY19oYXNfZW5kZWQgX19BUkdTKCh2b2lkICpjb29raWUpKTsKLWludCBmdW5jX2hhc19hYm9ydCBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOwotaW50IHJlYWRfdmltaW5mb192YXJsaXN0IF9fQVJHUygodmlyX1QgKnZpcnAsIGludCB3cml0aW5nKSk7Ci12b2lkIHdyaXRlX3ZpbWluZm9fdmFybGlzdCBfX0FSR1MoKEZJTEUgKmZwKSk7Ci1pbnQgc3RvcmVfc2Vzc2lvbl9nbG9iYWxzIF9fQVJHUygoRklMRSAqZmQpKTsKLXZvaWQgbGFzdF9zZXRfbXNnIF9fQVJHUygoc2NpZF9UIHNjcmlwdElEKSk7Ci1pbnQgbW9kaWZ5X2ZuYW1lIF9fQVJHUygoY2hhcl91ICpzcmMsIGludCAqdXNlZGxlbiwgY2hhcl91ICoqZm5hbWVwLCBjaGFyX3UgKipidWZwLCBpbnQgKmZuYW1lbGVuKSk7Ci1jaGFyX3UgKmRvX3N0cmluZ19zdWIgX19BUkdTKChjaGFyX3UgKnN0ciwgY2hhcl91ICpwYXQsIGNoYXJfdSAqc3ViLCBjaGFyX3UgKmZsYWdzKSk7CitleHRlcm4gdm9pZCBldmFsX2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBldmFsX2NsZWFyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqZnVuY19uYW1lIF9fQVJHUygodm9pZCAqY29va2llKSk7CitleHRlcm4gbGluZW5yX1QgKmZ1bmNfYnJlYWtwb2ludCBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOworZXh0ZXJuIGludCAqZnVuY19kYmdfdGljayBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOworZXh0ZXJuIGludCBmdW5jX2xldmVsIF9fQVJHUygodm9pZCAqY29va2llKSk7CitleHRlcm4gaW50IGN1cnJlbnRfZnVuY19yZXR1cm5lZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNldF9pbnRlcm5hbF9zdHJpbmdfdmFyIF9fQVJHUygoY2hhcl91ICpuYW1lLCBjaGFyX3UgKnZhbHVlKSk7CitleHRlcm4gaW50IHZhcl9yZWRpcl9zdGFydCBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IGFwcGVuZCkpOworZXh0ZXJuIHZvaWQgdmFyX3JlZGlyX3N0ciBfX0FSR1MoKGNoYXJfdSAqdmFsdWUsIGludCBsZW4pKTsKK2V4dGVybiB2b2lkIHZhcl9yZWRpcl9zdG9wIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBldmFsX2NoYXJjb252ZXJ0IF9fQVJHUygoY2hhcl91ICplbmNfZnJvbSwgY2hhcl91ICplbmNfdG8sIGNoYXJfdSAqZm5hbWVfZnJvbSwgY2hhcl91ICpmbmFtZV90bykpOworZXh0ZXJuIGludCBldmFsX3ByaW50ZXhwciBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGNoYXJfdSAqYXJncykpOworZXh0ZXJuIHZvaWQgZXZhbF9kaWZmIF9fQVJHUygoY2hhcl91ICpvcmlnZmlsZSwgY2hhcl91ICpuZXdmaWxlLCBjaGFyX3UgKm91dGZpbGUpKTsKK2V4dGVybiB2b2lkIGV2YWxfcGF0Y2ggX19BUkdTKChjaGFyX3UgKm9yaWdmaWxlLCBjaGFyX3UgKmRpZmZmaWxlLCBjaGFyX3UgKm91dGZpbGUpKTsKK2V4dGVybiBpbnQgZXZhbF90b19ib29sIF9fQVJHUygoY2hhcl91ICphcmcsIGludCAqZXJyb3IsIGNoYXJfdSAqKm5leHRjbWQsIGludCBza2lwKSk7CitleHRlcm4gY2hhcl91ICpldmFsX3RvX3N0cmluZ19za2lwIF9fQVJHUygoY2hhcl91ICphcmcsIGNoYXJfdSAqKm5leHRjbWQsIGludCBza2lwKSk7CitleHRlcm4gaW50IHNraXBfZXhwciBfX0FSR1MoKGNoYXJfdSAqKnBwKSk7CitleHRlcm4gY2hhcl91ICpldmFsX3RvX3N0cmluZyBfX0FSR1MoKGNoYXJfdSAqYXJnLCBjaGFyX3UgKipuZXh0Y21kLCBpbnQgZG9saXN0KSk7CitleHRlcm4gY2hhcl91ICpldmFsX3RvX3N0cmluZ19zYWZlIF9fQVJHUygoY2hhcl91ICphcmcsIGNoYXJfdSAqKm5leHRjbWQsIGludCB1c2Vfc2FuZGJveCkpOworZXh0ZXJuIGludCBldmFsX3RvX251bWJlciBfX0FSR1MoKGNoYXJfdSAqZXhwcikpOworZXh0ZXJuIGxpc3RfVCAqZXZhbF9zcGVsbF9leHByIF9fQVJHUygoY2hhcl91ICpiYWR3b3JkLCBjaGFyX3UgKmV4cHIpKTsKK2V4dGVybiBpbnQgZ2V0X3NwZWxsd29yZCBfX0FSR1MoKGxpc3RfVCAqbGlzdCwgY2hhcl91ICoqcHApKTsKK2V4dGVybiB0eXB2YWxfVCAqZXZhbF9leHByIF9fQVJHUygoY2hhcl91ICphcmcsIGNoYXJfdSAqKm5leHRjbWQpKTsKK2V4dGVybiB2b2lkICpjYWxsX2Z1bmNfcmV0c3RyIF9fQVJHUygoY2hhcl91ICpmdW5jLCBpbnQgYXJnYywgY2hhcl91ICoqYXJndiwgaW50IHNhZmUpKTsKK2V4dGVybiBsb25nIGNhbGxfZnVuY19yZXRuciBfX0FSR1MoKGNoYXJfdSAqZnVuYywgaW50IGFyZ2MsIGNoYXJfdSAqKmFyZ3YsIGludCBzYWZlKSk7CitleHRlcm4gdm9pZCAqY2FsbF9mdW5jX3JldGxpc3QgX19BUkdTKChjaGFyX3UgKmZ1bmMsIGludCBhcmdjLCBjaGFyX3UgKiphcmd2LCBpbnQgc2FmZSkpOworZXh0ZXJuIHZvaWQgKnNhdmVfZnVuY2NhbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHJlc3RvcmVfZnVuY2NhbCBfX0FSR1MoKHZvaWQgKnZmYykpOworZXh0ZXJuIHZvaWQgcHJvZl9jaGlsZF9lbnRlciBfX0FSR1MoKHByb2Z0aW1lX1QgKnRtKSk7CitleHRlcm4gdm9pZCBwcm9mX2NoaWxkX2V4aXQgX19BUkdTKChwcm9mdGltZV9UICp0bSkpOworZXh0ZXJuIGludCBldmFsX2ZvbGRleHByIF9fQVJHUygoY2hhcl91ICphcmcsIGludCAqY3ApKTsKK2V4dGVybiB2b2lkIGV4X2xldCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgKmV2YWxfZm9yX2xpbmUgX19BUkdTKChjaGFyX3UgKmFyZywgaW50ICplcnJwLCBjaGFyX3UgKipuZXh0Y21kcCwgaW50IHNraXApKTsKK2V4dGVybiBpbnQgbmV4dF9mb3JfaXRlbSBfX0FSR1MoKHZvaWQgKmZpX3ZvaWQsIGNoYXJfdSAqYXJnKSk7CitleHRlcm4gdm9pZCBmcmVlX2Zvcl9pbmZvIF9fQVJHUygodm9pZCAqZmlfdm9pZCkpOworZXh0ZXJuIHZvaWQgc2V0X2NvbnRleHRfZm9yX2V4cHJlc3Npb24gX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqYXJnLCBjbWRpZHhfVCBjbWRpZHgpKTsKK2V4dGVybiB2b2lkIGV4X2NhbGwgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X3VubGV0IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9sb2NrdmFyIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gaW50IGRvX3VubGV0IF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgZm9yY2VpdCkpOworZXh0ZXJuIHZvaWQgZGVsX21lbnV0cmFuc192YXJzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3VzZXJfdmFyX25hbWUgX19BUkdTKChleHBhbmRfVCAqeHAsIGludCBpZHgpKTsKK2V4dGVybiBsaXN0X1QgKmxpc3RfYWxsb2MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBsaXN0X3VucmVmIF9fQVJHUygobGlzdF9UICpsKSk7CitleHRlcm4gdm9pZCBsaXN0X2ZyZWUgX19BUkdTKChsaXN0X1QgKmwpKTsKK2V4dGVybiBkaWN0aXRlbV9UICpkaWN0X2xvb2t1cCBfX0FSR1MoKGhhc2hpdGVtX1QgKmhpKSk7CitleHRlcm4gaW50IGxpc3RfYXBwZW5kX2RpY3QgX19BUkdTKChsaXN0X1QgKmxpc3QsIGRpY3RfVCAqZGljdCkpOworZXh0ZXJuIGludCBnYXJiYWdlX2NvbGxlY3QgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gZGljdF9UICpkaWN0X2FsbG9jIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBkaWN0X2FkZF9ucl9zdHIgX19BUkdTKChkaWN0X1QgKmQsIGNoYXIgKmtleSwgbG9uZyBuciwgY2hhcl91ICpzdHIpKTsKK2V4dGVybiBjaGFyX3UgKmdldF9kaWN0X3N0cmluZyBfX0FSR1MoKGRpY3RfVCAqZCwgY2hhcl91ICprZXksIGludCBzYXZlKSk7CitleHRlcm4gbG9uZyBnZXRfZGljdF9udW1iZXIgX19BUkdTKChkaWN0X1QgKmQsIGNoYXJfdSAqa2V5KSk7CitleHRlcm4gY2hhcl91ICpnZXRfZnVuY3Rpb25fbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X2V4cHJfbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOworZXh0ZXJuIGxvbmcgZG9fc2VhcmNocGFpciBfX0FSR1MoKGNoYXJfdSAqc3BhdCwgY2hhcl91ICptcGF0LCBjaGFyX3UgKmVwYXQsIGludCBkaXIsIGNoYXJfdSAqc2tpcCwgaW50IGZsYWdzLCBwb3NfVCAqbWF0Y2hfcG9zLCBsaW5lbnJfVCBsbnVtX3N0b3ApKTsKK2V4dGVybiB2b2lkIHNldF92aW1fdmFyX25yIF9fQVJHUygoaW50IGlkeCwgbG9uZyB2YWwpKTsKK2V4dGVybiBsb25nIGdldF92aW1fdmFyX25yIF9fQVJHUygoaW50IGlkeCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3ZpbV92YXJfc3RyIF9fQVJHUygoaW50IGlkeCkpOworZXh0ZXJuIHZvaWQgc2V0X3Zjb3VudCBfX0FSR1MoKGxvbmcgY291bnQsIGxvbmcgY291bnQxKSk7CitleHRlcm4gdm9pZCBzZXRfdmltX3Zhcl9zdHJpbmcgX19BUkdTKChpbnQgaWR4LCBjaGFyX3UgKnZhbCwgaW50IGxlbikpOworZXh0ZXJuIHZvaWQgc2V0X3JlZ192YXIgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGNoYXJfdSAqdl9leGNlcHRpb24gX19BUkdTKChjaGFyX3UgKm9sZHZhbCkpOworZXh0ZXJuIGNoYXJfdSAqdl90aHJvd3BvaW50IF9fQVJHUygoY2hhcl91ICpvbGR2YWwpKTsKK2V4dGVybiBjaGFyX3UgKnNldF9jbWRhcmcgX19BUkdTKChleGFyZ19UICplYXAsIGNoYXJfdSAqb2xkYXJnKSk7CitleHRlcm4gdm9pZCBmcmVlX3R2IF9fQVJHUygodHlwdmFsX1QgKnZhcnApKTsKK2V4dGVybiB2b2lkIGNsZWFyX3R2IF9fQVJHUygodHlwdmFsX1QgKnZhcnApKTsKK2V4dGVybiBsb25nIGdldF90dl9udW1iZXJfY2hrIF9fQVJHUygodHlwdmFsX1QgKnZhcnAsIGludCAqZGVub3RlKSk7CitleHRlcm4gY2hhcl91ICpnZXRfdHZfc3RyaW5nX2NoayBfX0FSR1MoKHR5cHZhbF9UICp2YXJwKSk7CitleHRlcm4gY2hhcl91ICpnZXRfdmFyX3ZhbHVlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBuZXdfc2NyaXB0X3ZhcnMgX19BUkdTKChzY2lkX1QgaWQpKTsKK2V4dGVybiB2b2lkIGluaXRfdmFyX2RpY3QgX19BUkdTKChkaWN0X1QgKmRpY3QsIGRpY3RpdGVtX1QgKmRpY3RfdmFyKSk7CitleHRlcm4gdm9pZCB2YXJzX2NsZWFyIF9fQVJHUygoaGFzaHRhYl9UICpodCkpOworZXh0ZXJuIHZvaWQgZXhfZWNobyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZWNob2hsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9leGVjdXRlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9mdW5jdGlvbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZnJlZV9hbGxfZnVuY3Rpb25zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZnVuY19kdW1wX3Byb2ZpbGUgX19BUkdTKChGSUxFICpmZCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3VzZXJfZnVuY19uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7CitleHRlcm4gdm9pZCBleF9kZWxmdW5jdGlvbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfcmV0dXJuIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gaW50IGRvX3JldHVybiBfX0FSR1MoKGV4YXJnX1QgKmVhcCwgaW50IHJlYW5pbWF0ZSwgaW50IGlzX2NtZCwgdm9pZCAqcmV0dHYpKTsKK2V4dGVybiB2b2lkIGRpc2NhcmRfcGVuZGluZ19yZXR1cm4gX19BUkdTKCh2b2lkICpyZXR0dikpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3JldHVybl9jbWQgX19BUkdTKCh2b2lkICpyZXR0dikpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X2Z1bmNfbGluZSBfX0FSR1MoKGludCBjLCB2b2lkICpjb29raWUsIGludCBpbmRlbnQpKTsKK2V4dGVybiB2b2lkIGZ1bmNfbGluZV9zdGFydCBfX0FSR1MoKHZvaWQgKmNvb2tpZSkpOworZXh0ZXJuIHZvaWQgZnVuY19saW5lX2V4ZWMgX19BUkdTKCh2b2lkICpjb29raWUpKTsKK2V4dGVybiB2b2lkIGZ1bmNfbGluZV9lbmQgX19BUkdTKCh2b2lkICpjb29raWUpKTsKK2V4dGVybiBpbnQgZnVuY19oYXNfZW5kZWQgX19BUkdTKCh2b2lkICpjb29raWUpKTsKK2V4dGVybiBpbnQgZnVuY19oYXNfYWJvcnQgX19BUkdTKCh2b2lkICpjb29raWUpKTsKK2V4dGVybiBpbnQgcmVhZF92aW1pbmZvX3Zhcmxpc3QgX19BUkdTKCh2aXJfVCAqdmlycCwgaW50IHdyaXRpbmcpKTsKK2V4dGVybiB2b2lkIHdyaXRlX3ZpbWluZm9fdmFybGlzdCBfX0FSR1MoKEZJTEUgKmZwKSk7CitleHRlcm4gaW50IHN0b3JlX3Nlc3Npb25fZ2xvYmFscyBfX0FSR1MoKEZJTEUgKmZkKSk7CitleHRlcm4gdm9pZCBsYXN0X3NldF9tc2cgX19BUkdTKChzY2lkX1Qgc2NyaXB0SUQpKTsKK2V4dGVybiBpbnQgbW9kaWZ5X2ZuYW1lIF9fQVJHUygoY2hhcl91ICpzcmMsIGludCAqdXNlZGxlbiwgY2hhcl91ICoqZm5hbWVwLCBjaGFyX3UgKipidWZwLCBpbnQgKmZuYW1lbGVuKSk7CitleHRlcm4gY2hhcl91ICpkb19zdHJpbmdfc3ViIF9fQVJHUygoY2hhcl91ICpzdHIsIGNoYXJfdSAqcGF0LCBjaGFyX3UgKnN1YiwgY2hhcl91ICpmbGFncykpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZXhfZG9jbWQucHJvIGIvc3JjL3Byb3RvL2V4X2RvY21kLnBybwppbmRleCBlYzZlNTczLi45OTI0MDliIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vZXhfZG9jbWQucHJvCisrKyBiL3NyYy9wcm90by9leF9kb2NtZC5wcm8KQEAgLTEsNTIgKzEsNTIgQEAKIC8qIGV4X2RvY21kLmMgKi8KLXZvaWQgZG9fZXhtb2RlIF9fQVJHUygoaW50IGltcHJvdmVkKSk7Ci1pbnQgZG9fY21kbGluZV9jbWQgX19BUkdTKChjaGFyX3UgKmNtZCkpOwotaW50IGRvX2NtZGxpbmUgX19BUkdTKChjaGFyX3UgKmNtZGxpbmUsIGNoYXJfdSAqKCpnZXRsaW5lKShpbnQsIHZvaWQgKiwgaW50KSwgdm9pZCAqY29va2llLCBpbnQgZmxhZ3MpKTsKLWludCBnZXRsaW5lX2VxdWFsIF9fQVJHUygoY2hhcl91ICooKmdldGxpbmUpKGludCwgdm9pZCAqLCBpbnQpLCB2b2lkICpjb29raWUsIGNoYXJfdSAqKCpmdW5jKShpbnQsIHZvaWQgKiwgaW50KSkpOwotdm9pZCAqZ2V0bGluZV9jb29raWUgX19BUkdTKChjaGFyX3UgKigqZ2V0bGluZSkoaW50LCB2b2lkICosIGludCksIHZvaWQgKmNvb2tpZSkpOwotaW50IGNoZWNrZm9yY21kIF9fQVJHUygoY2hhcl91ICoqcHAsIGNoYXIgKmNtZCwgaW50IGxlbikpOwotaW50IGNtZF9leGlzdHMgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWNoYXJfdSAqc2V0X29uZV9jbWRfY29udGV4dCBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICpidWZmKSk7Ci1jaGFyX3UgKnNraXBfcmFuZ2UgX19BUkdTKChjaGFyX3UgKmNtZCwgaW50ICpjdHgpKTsKLXZvaWQgZXhfbmkgX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBleHBhbmRfZmlsZW5hbWUgX19BUkdTKChleGFyZ19UICplYXAsIGNoYXJfdSAqKmNtZGxpbmVwLCBjaGFyX3UgKiplcnJvcm1zZ3ApKTsKLXZvaWQgc2VwYXJhdGVfbmV4dGNtZCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotaW50IGVuZHNfZXhjbWQgX19BUkdTKChpbnQgYykpOwotY2hhcl91ICpmaW5kX25leHRjbWQgX19BUkdTKChjaGFyX3UgKnApKTsKLWNoYXJfdSAqY2hlY2tfbmV4dGNtZCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotY2hhcl91ICpnZXRfY29tbWFuZF9uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7Ci12b2lkIGV4X2NvbWNsZWFyIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIHVjX2NsZWFyIF9fQVJHUygoZ2FycmF5X1QgKmdhcCkpOwotY2hhcl91ICpnZXRfdXNlcl9jb21tYW5kcyBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOwotY2hhcl91ICpnZXRfdXNlcl9jbWRfZmxhZ3MgX19BUkdTKChleHBhbmRfVCAqeHAsIGludCBpZHgpKTsKLWNoYXJfdSAqZ2V0X3VzZXJfY21kX25hcmdzIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7Ci1jaGFyX3UgKmdldF91c2VyX2NtZF9jb21wbGV0ZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOwotaW50IHBhcnNlX2NvbXBsX2FyZyBfX0FSR1MoKGNoYXJfdSAqdmFsdWUsIGludCB2YWxsZW4sIGludCAqY29tcGxwLCBsb25nICphcmd0LCBjaGFyX3UgKipjb21wbF9hcmcpKTsKLXZvaWQgbm90X2V4aXRpbmcgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHRhYnBhZ2VfY2xvc2UgX19BUkdTKChpbnQgZm9yY2VpdCkpOwotdm9pZCB0YWJwYWdlX2Nsb3NlX290aGVyIF9fQVJHUygodGFicGFnZV9UICp0cCwgaW50IGZvcmNlaXQpKTsKLXZvaWQgZXhfYWxsIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGhhbmRsZV9kcm9wIF9fQVJHUygoaW50IGZpbGVjLCBjaGFyX3UgKipmaWxldiwgaW50IHNwbGl0KSk7Ci12b2lkIGFsaXN0X2NsZWFyIF9fQVJHUygoYWxpc3RfVCAqYWwpKTsKLXZvaWQgYWxpc3RfaW5pdCBfX0FSR1MoKGFsaXN0X1QgKmFsKSk7Ci12b2lkIGFsaXN0X3VubGluayBfX0FSR1MoKGFsaXN0X1QgKmFsKSk7Ci12b2lkIGFsaXN0X25ldyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgYWxpc3RfZXhwYW5kIF9fQVJHUygoaW50ICpmbnVtX2xpc3QsIGludCBmbnVtX2xlbikpOwotdm9pZCBhbGlzdF9zZXQgX19BUkdTKChhbGlzdF9UICphbCwgaW50IGNvdW50LCBjaGFyX3UgKipmaWxlcywgaW50IHVzZV9jdXJidWYsIGludCAqZm51bV9saXN0LCBpbnQgZm51bV9sZW4pKTsKLXZvaWQgYWxpc3RfYWRkIF9fQVJHUygoYWxpc3RfVCAqYWwsIGNoYXJfdSAqZm5hbWUsIGludCBzZXRfZm51bSkpOwotdm9pZCBhbGlzdF9zbGFzaF9hZGp1c3QgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGV4X3NwbGl0dmlldyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCB0YWJwYWdlX25ldyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZG9fZXhlZGl0IF9fQVJHUygoZXhhcmdfVCAqZWFwLCB3aW5fVCAqb2xkX2N1cndpbikpOwotdm9pZCBmcmVlX2NkX2RpciBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZG9fc2xlZXAgX19BUkdTKChsb25nIG1zZWMpKTsKLWludCB2aW1fbWtkaXJfZW1zZyBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IHByb3QpKTsKLUZJTEUgKm9wZW5fZXhmaWxlIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgaW50IGZvcmNlaXQsIGNoYXIgKm1vZGUpKTsKLXZvaWQgdXBkYXRlX3RvcGxpbmVfY3Vyc29yIF9fQVJHUygodm9pZCkpOwotdm9pZCBleGVjX25vcm1hbF9jbWQgX19BUkdTKChjaGFyX3UgKmNtZCwgaW50IHJlbWFwLCBpbnQgc2lsZW50KSk7Ci1jaGFyX3UgKmV2YWxfdmFycyBfX0FSR1MoKGNoYXJfdSAqc3JjLCBpbnQgKnVzZWRsZW4sIGxpbmVucl9UICpsbnVtcCwgY2hhcl91ICoqZXJyb3Jtc2csIGNoYXJfdSAqc3Jjc3RhcnQpKTsKLWNoYXJfdSAqZXhwYW5kX3NmaWxlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKLWludCBwdXRfZW9sIF9fQVJHUygoRklMRSAqZmQpKTsKLWludCBwdXRfbGluZSBfX0FSR1MoKEZJTEUgKmZkLCBjaGFyICpzKSk7Ci12b2lkIGRpYWxvZ19tc2cgX19BUkdTKChjaGFyX3UgKmJ1ZmYsIGNoYXIgKmZvcm1hdCwgY2hhcl91ICpmbmFtZSkpOworZXh0ZXJuIHZvaWQgZG9fZXhtb2RlIF9fQVJHUygoaW50IGltcHJvdmVkKSk7CitleHRlcm4gaW50IGRvX2NtZGxpbmVfY21kIF9fQVJHUygoY2hhcl91ICpjbWQpKTsKK2V4dGVybiBpbnQgZG9fY21kbGluZSBfX0FSR1MoKGNoYXJfdSAqY21kbGluZSwgY2hhcl91ICooKmdldGxpbmUpKGludCwgdm9pZCAqLCBpbnQpLCB2b2lkICpjb29raWUsIGludCBmbGFncykpOworZXh0ZXJuIGludCBnZXRsaW5lX2VxdWFsIF9fQVJHUygoY2hhcl91ICooKmdldGxpbmUpKGludCwgdm9pZCAqLCBpbnQpLCB2b2lkICpjb29raWUsIGNoYXJfdSAqKCpmdW5jKShpbnQsIHZvaWQgKiwgaW50KSkpOworZXh0ZXJuIHZvaWQgKmdldGxpbmVfY29va2llIF9fQVJHUygoY2hhcl91ICooKmdldGxpbmUpKGludCwgdm9pZCAqLCBpbnQpLCB2b2lkICpjb29raWUpKTsKK2V4dGVybiBpbnQgY2hlY2tmb3JjbWQgX19BUkdTKChjaGFyX3UgKipwcCwgY2hhciAqY21kLCBpbnQgbGVuKSk7CitleHRlcm4gaW50IGNtZF9leGlzdHMgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiBjaGFyX3UgKnNldF9vbmVfY21kX2NvbnRleHQgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqYnVmZikpOworZXh0ZXJuIGNoYXJfdSAqc2tpcF9yYW5nZSBfX0FSR1MoKGNoYXJfdSAqY21kLCBpbnQgKmN0eCkpOworZXh0ZXJuIHZvaWQgZXhfbmkgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgZXhwYW5kX2ZpbGVuYW1lIF9fQVJHUygoZXhhcmdfVCAqZWFwLCBjaGFyX3UgKipjbWRsaW5lcCwgY2hhcl91ICoqZXJyb3Jtc2dwKSk7CitleHRlcm4gdm9pZCBzZXBhcmF0ZV9uZXh0Y21kIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gaW50IGVuZHNfZXhjbWQgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGNoYXJfdSAqZmluZF9uZXh0Y21kIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gY2hhcl91ICpjaGVja19uZXh0Y21kIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gY2hhcl91ICpnZXRfY29tbWFuZF9uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7CitleHRlcm4gdm9pZCBleF9jb21jbGVhciBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgdWNfY2xlYXIgX19BUkdTKChnYXJyYXlfVCAqZ2FwKSk7CitleHRlcm4gY2hhcl91ICpnZXRfdXNlcl9jb21tYW5kcyBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3VzZXJfY21kX2ZsYWdzIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7CitleHRlcm4gY2hhcl91ICpnZXRfdXNlcl9jbWRfbmFyZ3MgX19BUkdTKChleHBhbmRfVCAqeHAsIGludCBpZHgpKTsKK2V4dGVybiBjaGFyX3UgKmdldF91c2VyX2NtZF9jb21wbGV0ZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOworZXh0ZXJuIGludCBwYXJzZV9jb21wbF9hcmcgX19BUkdTKChjaGFyX3UgKnZhbHVlLCBpbnQgdmFsbGVuLCBpbnQgKmNvbXBscCwgbG9uZyAqYXJndCwgY2hhcl91ICoqY29tcGxfYXJnKSk7CitleHRlcm4gdm9pZCBub3RfZXhpdGluZyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHRhYnBhZ2VfY2xvc2UgX19BUkdTKChpbnQgZm9yY2VpdCkpOworZXh0ZXJuIHZvaWQgdGFicGFnZV9jbG9zZV9vdGhlciBfX0FSR1MoKHRhYnBhZ2VfVCAqdHAsIGludCBmb3JjZWl0KSk7CitleHRlcm4gdm9pZCBleF9hbGwgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGhhbmRsZV9kcm9wIF9fQVJHUygoaW50IGZpbGVjLCBjaGFyX3UgKipmaWxldiwgaW50IHNwbGl0KSk7CitleHRlcm4gdm9pZCBhbGlzdF9jbGVhciBfX0FSR1MoKGFsaXN0X1QgKmFsKSk7CitleHRlcm4gdm9pZCBhbGlzdF9pbml0IF9fQVJHUygoYWxpc3RfVCAqYWwpKTsKK2V4dGVybiB2b2lkIGFsaXN0X3VubGluayBfX0FSR1MoKGFsaXN0X1QgKmFsKSk7CitleHRlcm4gdm9pZCBhbGlzdF9uZXcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBhbGlzdF9leHBhbmQgX19BUkdTKChpbnQgKmZudW1fbGlzdCwgaW50IGZudW1fbGVuKSk7CitleHRlcm4gdm9pZCBhbGlzdF9zZXQgX19BUkdTKChhbGlzdF9UICphbCwgaW50IGNvdW50LCBjaGFyX3UgKipmaWxlcywgaW50IHVzZV9jdXJidWYsIGludCAqZm51bV9saXN0LCBpbnQgZm51bV9sZW4pKTsKK2V4dGVybiB2b2lkIGFsaXN0X2FkZCBfX0FSR1MoKGFsaXN0X1QgKmFsLCBjaGFyX3UgKmZuYW1lLCBpbnQgc2V0X2ZudW0pKTsKK2V4dGVybiB2b2lkIGFsaXN0X3NsYXNoX2FkanVzdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X3NwbGl0dmlldyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgdGFicGFnZV9uZXcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBkb19leGVkaXQgX19BUkdTKChleGFyZ19UICplYXAsIHdpbl9UICpvbGRfY3Vyd2luKSk7CitleHRlcm4gdm9pZCBmcmVlX2NkX2RpciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGRvX3NsZWVwIF9fQVJHUygobG9uZyBtc2VjKSk7CitleHRlcm4gaW50IHZpbV9ta2Rpcl9lbXNnIF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgcHJvdCkpOworZXh0ZXJuIEZJTEUgKm9wZW5fZXhmaWxlIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgaW50IGZvcmNlaXQsIGNoYXIgKm1vZGUpKTsKK2V4dGVybiB2b2lkIHVwZGF0ZV90b3BsaW5lX2N1cnNvciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4ZWNfbm9ybWFsX2NtZCBfX0FSR1MoKGNoYXJfdSAqY21kLCBpbnQgcmVtYXAsIGludCBzaWxlbnQpKTsKK2V4dGVybiBjaGFyX3UgKmV2YWxfdmFycyBfX0FSR1MoKGNoYXJfdSAqc3JjLCBpbnQgKnVzZWRsZW4sIGxpbmVucl9UICpsbnVtcCwgY2hhcl91ICoqZXJyb3Jtc2csIGNoYXJfdSAqc3Jjc3RhcnQpKTsKK2V4dGVybiBjaGFyX3UgKmV4cGFuZF9zZmlsZSBfX0FSR1MoKGNoYXJfdSAqYXJnKSk7CitleHRlcm4gaW50IHB1dF9lb2wgX19BUkdTKChGSUxFICpmZCkpOworZXh0ZXJuIGludCBwdXRfbGluZSBfX0FSR1MoKEZJTEUgKmZkLCBjaGFyICpzKSk7CitleHRlcm4gdm9pZCBkaWFsb2dfbXNnIF9fQVJHUygoY2hhcl91ICpidWZmLCBjaGFyICpmb3JtYXQsIGNoYXJfdSAqZm5hbWUpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2V4X2V2YWwucHJvIGIvc3JjL3Byb3RvL2V4X2V2YWwucHJvCmluZGV4IDhmYjIzNDIuLjIwNjAxZjggMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9leF9ldmFsLnBybworKysgYi9zcmMvcHJvdG8vZXhfZXZhbC5wcm8KQEAgLTEsMzIgKzEsMzIgQEAKIC8qIGV4X2V2YWwuYyAqLwotaW50IGFib3J0aW5nIF9fQVJHUygodm9pZCkpOwotdm9pZCB1cGRhdGVfZm9yY2VfYWJvcnQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgc2hvdWxkX2Fib3J0IF9fQVJHUygoaW50IHJldGNvZGUpKTsKLWludCBhYm9ydGVkX2luX3RyeSBfX0FSR1MoKHZvaWQpKTsKLWludCBjYXVzZV9lcnJ0aHJvdyBfX0FSR1MoKGNoYXJfdSAqbWVzZywgaW50IHNldmVyZSwgaW50ICppZ25vcmUpKTsKLXZvaWQgZG9fZXJydGhyb3cgX19BUkdTKChzdHJ1Y3QgY29uZHN0YWNrICpjc3RhY2ssIGNoYXJfdSAqY21kbmFtZSkpOwotaW50IGRvX2ludHRocm93IF9fQVJHUygoc3RydWN0IGNvbmRzdGFjayAqY3N0YWNrKSk7Ci12b2lkIGRpc2NhcmRfY3VycmVudF9leGNlcHRpb24gX19BUkdTKCh2b2lkKSk7Ci12b2lkIHJlcG9ydF9tYWtlX3BlbmRpbmcgX19BUkdTKChpbnQgcGVuZGluZywgdm9pZCAqdmFsdWUpKTsKLXZvaWQgcmVwb3J0X3Jlc3VtZV9wZW5kaW5nIF9fQVJHUygoaW50IHBlbmRpbmcsIHZvaWQgKnZhbHVlKSk7Ci12b2lkIHJlcG9ydF9kaXNjYXJkX3BlbmRpbmcgX19BUkdTKChpbnQgcGVuZGluZywgdm9pZCAqdmFsdWUpKTsKLXZvaWQgZXhfaWYgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZW5kaWYgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZWxzZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF93aGlsZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9jb250aW51ZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9icmVhayBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9lbmR3aGlsZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF90aHJvdyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBkb190aHJvdyBfX0FSR1MoKHN0cnVjdCBjb25kc3RhY2sgKmNzdGFjaykpOwotdm9pZCBleF90cnkgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfY2F0Y2ggX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZXhfZmluYWxseSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9lbmR0cnkgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZW50ZXJfY2xlYW51cCBfX0FSR1MoKGNsZWFudXBfVCAqY3NwKSk7Ci12b2lkIGxlYXZlX2NsZWFudXAgX19BUkdTKChjbGVhbnVwX1QgKmNzcCkpOwotaW50IGNsZWFudXBfY29uZGl0aW9uYWxzIF9fQVJHUygoc3RydWN0IGNvbmRzdGFjayAqY3N0YWNrLCBpbnQgc2VhcmNoZWRfY29uZCwgaW50IGluY2x1c2l2ZSkpOwotdm9pZCByZXdpbmRfY29uZGl0aW9uYWxzIF9fQVJHUygoc3RydWN0IGNvbmRzdGFjayAqY3N0YWNrLCBpbnQgaWR4LCBpbnQgY29uZF90eXBlLCBpbnQgKmNvbmRfbGV2ZWwpKTsKLXZvaWQgZXhfZW5kZnVuY3Rpb24gX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBoYXNfbG9vcF9jbWQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgYWJvcnRpbmcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB1cGRhdGVfZm9yY2VfYWJvcnQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHNob3VsZF9hYm9ydCBfX0FSR1MoKGludCByZXRjb2RlKSk7CitleHRlcm4gaW50IGFib3J0ZWRfaW5fdHJ5IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBjYXVzZV9lcnJ0aHJvdyBfX0FSR1MoKGNoYXJfdSAqbWVzZywgaW50IHNldmVyZSwgaW50ICppZ25vcmUpKTsKK2V4dGVybiB2b2lkIGRvX2VycnRocm93IF9fQVJHUygoc3RydWN0IGNvbmRzdGFjayAqY3N0YWNrLCBjaGFyX3UgKmNtZG5hbWUpKTsKK2V4dGVybiBpbnQgZG9faW50dGhyb3cgX19BUkdTKChzdHJ1Y3QgY29uZHN0YWNrICpjc3RhY2spKTsKK2V4dGVybiB2b2lkIGRpc2NhcmRfY3VycmVudF9leGNlcHRpb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXBvcnRfbWFrZV9wZW5kaW5nIF9fQVJHUygoaW50IHBlbmRpbmcsIHZvaWQgKnZhbHVlKSk7CitleHRlcm4gdm9pZCByZXBvcnRfcmVzdW1lX3BlbmRpbmcgX19BUkdTKChpbnQgcGVuZGluZywgdm9pZCAqdmFsdWUpKTsKK2V4dGVybiB2b2lkIHJlcG9ydF9kaXNjYXJkX3BlbmRpbmcgX19BUkdTKChpbnQgcGVuZGluZywgdm9pZCAqdmFsdWUpKTsKK2V4dGVybiB2b2lkIGV4X2lmIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9lbmRpZiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZWxzZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfd2hpbGUgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X2NvbnRpbnVlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9icmVhayBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZW5kd2hpbGUgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X3Rocm93IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBkb190aHJvdyBfX0FSR1MoKHN0cnVjdCBjb25kc3RhY2sgKmNzdGFjaykpOworZXh0ZXJuIHZvaWQgZXhfdHJ5IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9jYXRjaCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZmluYWxseSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfZW5kdHJ5IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBlbnRlcl9jbGVhbnVwIF9fQVJHUygoY2xlYW51cF9UICpjc3ApKTsKK2V4dGVybiB2b2lkIGxlYXZlX2NsZWFudXAgX19BUkdTKChjbGVhbnVwX1QgKmNzcCkpOworZXh0ZXJuIGludCBjbGVhbnVwX2NvbmRpdGlvbmFscyBfX0FSR1MoKHN0cnVjdCBjb25kc3RhY2sgKmNzdGFjaywgaW50IHNlYXJjaGVkX2NvbmQsIGludCBpbmNsdXNpdmUpKTsKK2V4dGVybiB2b2lkIHJld2luZF9jb25kaXRpb25hbHMgX19BUkdTKChzdHJ1Y3QgY29uZHN0YWNrICpjc3RhY2ssIGludCBpZHgsIGludCBjb25kX3R5cGUsIGludCAqY29uZF9sZXZlbCkpOworZXh0ZXJuIHZvaWQgZXhfZW5kZnVuY3Rpb24gX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgaGFzX2xvb3BfY21kIF9fQVJHUygoY2hhcl91ICpwKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9leF9nZXRsbi5wcm8gYi9zcmMvcHJvdG8vZXhfZ2V0bG4ucHJvCmluZGV4IDZiNGZhNGYuLmJhMThmMzggMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9leF9nZXRsbi5wcm8KKysrIGIvc3JjL3Byb3RvL2V4X2dldGxuLnBybwpAQCAtMSw1MyArMSw1MyBAQAogLyogZXhfZ2V0bG4uYyAqLwotY2hhcl91ICpnZXRjbWRsaW5lIF9fQVJHUygoaW50IGZpcnN0YywgbG9uZyBjb3VudCwgaW50IGluZGVudCkpOwotY2hhcl91ICpnZXRjbWRsaW5lX3Byb21wdCBfX0FSR1MoKGludCBmaXJzdGMsIGNoYXJfdSAqcHJvbXB0LCBpbnQgYXR0ciwgaW50IHhwX2NvbnRleHQsIGNoYXJfdSAqeHBfYXJnKSk7Ci1pbnQgdGV4dF9sb2NrZWQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHRleHRfbG9ja2VkX21zZyBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqZ2V0ZXhsaW5lIF9fQVJHUygoaW50IGMsIHZvaWQgKmR1bW15LCBpbnQgaW5kZW50KSk7Ci1jaGFyX3UgKmdldGV4bW9kZWxpbmUgX19BUkdTKChpbnQgcHJvbXB0Yywgdm9pZCAqZHVtbXksIGludCBpbmRlbnQpKTsKLWludCBjbWRsaW5lX292ZXJzdHJpa2UgX19BUkdTKCh2b2lkKSk7Ci1pbnQgY21kbGluZV9hdF9lbmQgX19BUkdTKCh2b2lkKSk7Ci1jb2xucl9UIGNtZGxpbmVfZ2V0dmNvbF9jdXJzb3IgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGZyZWVfY21kbGluZV9idWYgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHB1dGNtZGxpbmUgX19BUkdTKChpbnQgYywgaW50IHNoaWZ0KSk7Ci12b2lkIHVucHV0Y21kbGluZSBfX0FSR1MoKHZvaWQpKTsKLWludCBwdXRfb25fY21kbGluZSBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgbGVuLCBpbnQgcmVkcmF3KSk7Ci12b2lkIGNtZGxpbmVfcGFzdGVfc3RyIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGl0ZXJhbGx5KSk7Ci12b2lkIHJlZHJhd2NtZGxpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHJlZHJhd2NtZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY29tcHV0ZV9jbWRyb3cgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGdvdG9jbWRsaW5lIF9fQVJHUygoaW50IGNscikpOwotY2hhcl91ICpFeHBhbmRPbmUgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqc3RyLCBjaGFyX3UgKm9yaWcsIGludCBvcHRpb25zLCBpbnQgbW9kZSkpOwotdm9pZCBFeHBhbmRJbml0IF9fQVJHUygoZXhwYW5kX1QgKnhwKSk7Ci12b2lkIEV4cGFuZENsZWFudXAgX19BUkdTKChleHBhbmRfVCAqeHApKTsKLXZvaWQgRXhwYW5kRXNjYXBlIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKnN0ciwgaW50IG51bWZpbGVzLCBjaGFyX3UgKipmaWxlcywgaW50IG9wdGlvbnMpKTsKLXZvaWQgdGlsZGVfcmVwbGFjZSBfX0FSR1MoKGNoYXJfdSAqb3JpZ19wYXQsIGludCBudW1fZmlsZXMsIGNoYXJfdSAqKmZpbGVzKSk7Ci1jaGFyX3UgKnNtX2dldHRhaWwgX19BUkdTKChjaGFyX3UgKnMpKTsKLWNoYXJfdSAqYWRkc3RhciBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGludCBsZW4sIGludCBjb250ZXh0KSk7Ci12b2lkIHNldF9jbWRfY29udGV4dCBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICpzdHIsIGludCBsZW4sIGludCBjb2wpKTsKLWludCBleHBhbmRfY21kbGluZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICpzdHIsIGludCBjb2wsIGludCAqbWF0Y2hjb3VudCwgY2hhcl91ICoqKm1hdGNoZXMpKTsKLWludCBFeHBhbmRHZW5lcmljIF9fQVJHUygoZXhwYW5kX1QgKnhwLCByZWdtYXRjaF9UICpyZWdtYXRjaCwgaW50ICpudW1fZmlsZSwgY2hhcl91ICoqKmZpbGUsIGNoYXJfdSAqKCgqZnVuYykoZXhwYW5kX1QgKiwgaW50KSkpKTsKLWNoYXJfdSAqZ2xvYnBhdGggX19BUkdTKChjaGFyX3UgKnBhdGgsIGNoYXJfdSAqZmlsZSkpOwotdm9pZCBpbml0X2hpc3RvcnkgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ2V0X2hpc3R0eXBlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGFkZF90b19oaXN0b3J5IF9fQVJHUygoaW50IGhpc3R5cGUsIGNoYXJfdSAqbmV3X2VudHJ5LCBpbnQgaW5fbWFwLCBpbnQgc2VwKSk7Ci1pbnQgZ2V0X2hpc3RvcnlfaWR4IF9fQVJHUygoaW50IGhpc3R5cGUpKTsKLWNoYXJfdSAqZ2V0X2NtZGxpbmVfc3RyIF9fQVJHUygodm9pZCkpOwotaW50IGdldF9jbWRsaW5lX3BvcyBfX0FSR1MoKHZvaWQpKTsKLWludCBzZXRfY21kbGluZV9wb3MgX19BUkdTKChpbnQgcG9zKSk7Ci1pbnQgZ2V0X2NtZGxpbmVfdHlwZSBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqZ2V0X2hpc3RvcnlfZW50cnkgX19BUkdTKChpbnQgaGlzdHlwZSwgaW50IGlkeCkpOwotaW50IGNscl9oaXN0b3J5IF9fQVJHUygoaW50IGhpc3R5cGUpKTsKLWludCBkZWxfaGlzdG9yeV9lbnRyeSBfX0FSR1MoKGludCBoaXN0eXBlLCBjaGFyX3UgKnN0cikpOwotaW50IGRlbF9oaXN0b3J5X2lkeCBfX0FSR1MoKGludCBoaXN0eXBlLCBpbnQgaWR4KSk7Ci12b2lkIHJlbW92ZV9rZXlfZnJvbV9oaXN0b3J5IF9fQVJHUygodm9pZCkpOwotaW50IGdldF9saXN0X3JhbmdlIF9fQVJHUygoY2hhcl91ICoqc3RyLCBpbnQgKm51bTEsIGludCAqbnVtMikpOwotdm9pZCBleF9oaXN0b3J5IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIHByZXBhcmVfdmltaW5mb19oaXN0b3J5IF9fQVJHUygoaW50IGFza2xlbikpOwotaW50IHJlYWRfdmltaW5mb19oaXN0b3J5IF9fQVJHUygodmlyX1QgKnZpcnApKTsKLXZvaWQgZmluaXNoX3ZpbWluZm9faGlzdG9yeSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd3JpdGVfdmltaW5mb19oaXN0b3J5IF9fQVJHUygoRklMRSAqZnApKTsKLXZvaWQgY21kX3BjaGFyIF9fQVJHUygoaW50IGMsIGludCBvZmZzZXQpKTsKLWludCBjbWRfZ2NoYXIgX19BUkdTKChpbnQgb2Zmc2V0KSk7Ci1jaGFyX3UgKnNjcmlwdF9nZXQgX19BUkdTKChleGFyZ19UICplYXAsIGNoYXJfdSAqY21kKSk7CitleHRlcm4gY2hhcl91ICpnZXRjbWRsaW5lIF9fQVJHUygoaW50IGZpcnN0YywgbG9uZyBjb3VudCwgaW50IGluZGVudCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0Y21kbGluZV9wcm9tcHQgX19BUkdTKChpbnQgZmlyc3RjLCBjaGFyX3UgKnByb21wdCwgaW50IGF0dHIsIGludCB4cF9jb250ZXh0LCBjaGFyX3UgKnhwX2FyZykpOworZXh0ZXJuIGludCB0ZXh0X2xvY2tlZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHRleHRfbG9ja2VkX21zZyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmdldGV4bGluZSBfX0FSR1MoKGludCBjLCB2b2lkICpkdW1teSwgaW50IGluZGVudCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0ZXhtb2RlbGluZSBfX0FSR1MoKGludCBwcm9tcHRjLCB2b2lkICpkdW1teSwgaW50IGluZGVudCkpOworZXh0ZXJuIGludCBjbWRsaW5lX292ZXJzdHJpa2UgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGNtZGxpbmVfYXRfZW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNvbG5yX1QgY21kbGluZV9nZXR2Y29sX2N1cnNvciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGZyZWVfY21kbGluZV9idWYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBwdXRjbWRsaW5lIF9fQVJHUygoaW50IGMsIGludCBzaGlmdCkpOworZXh0ZXJuIHZvaWQgdW5wdXRjbWRsaW5lIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBwdXRfb25fY21kbGluZSBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgbGVuLCBpbnQgcmVkcmF3KSk7CitleHRlcm4gdm9pZCBjbWRsaW5lX3Bhc3RlX3N0ciBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxpdGVyYWxseSkpOworZXh0ZXJuIHZvaWQgcmVkcmF3Y21kbGluZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHJlZHJhd2NtZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNvbXB1dGVfY21kcm93IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ290b2NtZGxpbmUgX19BUkdTKChpbnQgY2xyKSk7CitleHRlcm4gY2hhcl91ICpFeHBhbmRPbmUgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqc3RyLCBjaGFyX3UgKm9yaWcsIGludCBvcHRpb25zLCBpbnQgbW9kZSkpOworZXh0ZXJuIHZvaWQgRXhwYW5kSW5pdCBfX0FSR1MoKGV4cGFuZF9UICp4cCkpOworZXh0ZXJuIHZvaWQgRXhwYW5kQ2xlYW51cCBfX0FSR1MoKGV4cGFuZF9UICp4cCkpOworZXh0ZXJuIHZvaWQgRXhwYW5kRXNjYXBlIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKnN0ciwgaW50IG51bWZpbGVzLCBjaGFyX3UgKipmaWxlcywgaW50IG9wdGlvbnMpKTsKK2V4dGVybiB2b2lkIHRpbGRlX3JlcGxhY2UgX19BUkdTKChjaGFyX3UgKm9yaWdfcGF0LCBpbnQgbnVtX2ZpbGVzLCBjaGFyX3UgKipmaWxlcykpOworZXh0ZXJuIGNoYXJfdSAqc21fZ2V0dGFpbCBfX0FSR1MoKGNoYXJfdSAqcykpOworZXh0ZXJuIGNoYXJfdSAqYWRkc3RhciBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGludCBsZW4sIGludCBjb250ZXh0KSk7CitleHRlcm4gdm9pZCBzZXRfY21kX2NvbnRleHQgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqc3RyLCBpbnQgbGVuLCBpbnQgY29sKSk7CitleHRlcm4gaW50IGV4cGFuZF9jbWRsaW5lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKnN0ciwgaW50IGNvbCwgaW50ICptYXRjaGNvdW50LCBjaGFyX3UgKioqbWF0Y2hlcykpOworZXh0ZXJuIGludCBFeHBhbmRHZW5lcmljIF9fQVJHUygoZXhwYW5kX1QgKnhwLCByZWdtYXRjaF9UICpyZWdtYXRjaCwgaW50ICpudW1fZmlsZSwgY2hhcl91ICoqKmZpbGUsIGNoYXJfdSAqKCgqZnVuYykoZXhwYW5kX1QgKiwgaW50KSkpKTsKK2V4dGVybiBjaGFyX3UgKmdsb2JwYXRoIF9fQVJHUygoY2hhcl91ICpwYXRoLCBjaGFyX3UgKmZpbGUpKTsKK2V4dGVybiB2b2lkIGluaXRfaGlzdG9yeSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZ2V0X2hpc3R0eXBlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBhZGRfdG9faGlzdG9yeSBfX0FSR1MoKGludCBoaXN0eXBlLCBjaGFyX3UgKm5ld19lbnRyeSwgaW50IGluX21hcCwgaW50IHNlcCkpOworZXh0ZXJuIGludCBnZXRfaGlzdG9yeV9pZHggX19BUkdTKChpbnQgaGlzdHlwZSkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X2NtZGxpbmVfc3RyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBnZXRfY21kbGluZV9wb3MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHNldF9jbWRsaW5lX3BvcyBfX0FSR1MoKGludCBwb3MpKTsKK2V4dGVybiBpbnQgZ2V0X2NtZGxpbmVfdHlwZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmdldF9oaXN0b3J5X2VudHJ5IF9fQVJHUygoaW50IGhpc3R5cGUsIGludCBpZHgpKTsKK2V4dGVybiBpbnQgY2xyX2hpc3RvcnkgX19BUkdTKChpbnQgaGlzdHlwZSkpOworZXh0ZXJuIGludCBkZWxfaGlzdG9yeV9lbnRyeSBfX0FSR1MoKGludCBoaXN0eXBlLCBjaGFyX3UgKnN0cikpOworZXh0ZXJuIGludCBkZWxfaGlzdG9yeV9pZHggX19BUkdTKChpbnQgaGlzdHlwZSwgaW50IGlkeCkpOworZXh0ZXJuIHZvaWQgcmVtb3ZlX2tleV9mcm9tX2hpc3RvcnkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGdldF9saXN0X3JhbmdlIF9fQVJHUygoY2hhcl91ICoqc3RyLCBpbnQgKm51bTEsIGludCAqbnVtMikpOworZXh0ZXJuIHZvaWQgZXhfaGlzdG9yeSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgcHJlcGFyZV92aW1pbmZvX2hpc3RvcnkgX19BUkdTKChpbnQgYXNrbGVuKSk7CitleHRlcm4gaW50IHJlYWRfdmltaW5mb19oaXN0b3J5IF9fQVJHUygodmlyX1QgKnZpcnApKTsKK2V4dGVybiB2b2lkIGZpbmlzaF92aW1pbmZvX2hpc3RvcnkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3cml0ZV92aW1pbmZvX2hpc3RvcnkgX19BUkdTKChGSUxFICpmcCkpOworZXh0ZXJuIHZvaWQgY21kX3BjaGFyIF9fQVJHUygoaW50IGMsIGludCBvZmZzZXQpKTsKK2V4dGVybiBpbnQgY21kX2djaGFyIF9fQVJHUygoaW50IG9mZnNldCkpOworZXh0ZXJuIGNoYXJfdSAqc2NyaXB0X2dldCBfX0FSR1MoKGV4YXJnX1QgKmVhcCwgY2hhcl91ICpjbWQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2ZvbGQucHJvIGIvc3JjL3Byb3RvL2ZvbGQucHJvCmluZGV4IDMzMThiYmQuLjg1NTEwOTMgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9mb2xkLnBybworKysgYi9zcmMvcHJvdG8vZm9sZC5wcm8KQEAgLTEsNDEgKzEsNDEgQEAKIC8qIGZvbGQuYyAqLwotdm9pZCBjb3B5Rm9sZGluZ1N0YXRlIF9fQVJHUygod2luX1QgKndwX2Zyb20sIHdpbl9UICp3cF90bykpOwotaW50IGhhc0FueUZvbGRpbmcgX19BUkdTKCh3aW5fVCAqd2luKSk7Ci1pbnQgaGFzRm9sZGluZyBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxpbmVucl9UICpmaXJzdHAsIGxpbmVucl9UICpsYXN0cCkpOwotaW50IGhhc0ZvbGRpbmdXaW4gX19BUkdTKCh3aW5fVCAqd2luLCBsaW5lbnJfVCBsbnVtLCBsaW5lbnJfVCAqZmlyc3RwLCBsaW5lbnJfVCAqbGFzdHAsIGludCBjYWNoZSwgZm9sZGluZm9fVCAqaW5mb3ApKTsKLWludCBmb2xkTGV2ZWwgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7Ci1pbnQgbGluZUZvbGRlZCBfX0FSR1MoKHdpbl9UICp3aW4sIGxpbmVucl9UIGxudW0pKTsKLWxvbmcgZm9sZGVkQ291bnQgX19BUkdTKCh3aW5fVCAqd2luLCBsaW5lbnJfVCBsbnVtLCBmb2xkaW5mb19UICppbmZvcCkpOwotaW50IGZvbGRtZXRob2RJc01hbnVhbCBfX0FSR1MoKHdpbl9UICp3cCkpOwotaW50IGZvbGRtZXRob2RJc0luZGVudCBfX0FSR1MoKHdpbl9UICp3cCkpOwotaW50IGZvbGRtZXRob2RJc0V4cHIgX19BUkdTKCh3aW5fVCAqd3ApKTsKLWludCBmb2xkbWV0aG9kSXNNYXJrZXIgX19BUkdTKCh3aW5fVCAqd3ApKTsKLWludCBmb2xkbWV0aG9kSXNTeW50YXggX19BUkdTKCh3aW5fVCAqd3ApKTsKLWludCBmb2xkbWV0aG9kSXNEaWZmIF9fQVJHUygod2luX1QgKndwKSk7Ci12b2lkIGNsb3NlRm9sZCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgY291bnQpKTsKLXZvaWQgY2xvc2VGb2xkUmVjdXJzZSBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKLXZvaWQgb3BGb2xkUmFuZ2UgX19BUkdTKChsaW5lbnJfVCBmaXJzdCwgbGluZW5yX1QgbGFzdCwgaW50IG9wZW5pbmcsIGludCByZWN1cnNlLCBpbnQgaGFkX3Zpc3VhbCkpOwotdm9pZCBvcGVuRm9sZCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgY291bnQpKTsKLXZvaWQgb3BlbkZvbGRSZWN1cnNlIF9fQVJHUygobGluZW5yX1QgbG51bSkpOwotdm9pZCBmb2xkT3BlbkN1cnNvciBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbmV3Rm9sZExldmVsIF9fQVJHUygodm9pZCkpOwotdm9pZCBmb2xkQ2hlY2tDbG9zZSBfX0FSR1MoKHZvaWQpKTsKLWludCBmb2xkTWFudWFsQWxsb3dlZCBfX0FSR1MoKGludCBjcmVhdGUpKTsKLXZvaWQgZm9sZENyZWF0ZSBfX0FSR1MoKGxpbmVucl9UIHN0YXJ0LCBsaW5lbnJfVCBlbmQpKTsKLXZvaWQgZGVsZXRlRm9sZCBfX0FSR1MoKGxpbmVucl9UIHN0YXJ0LCBsaW5lbnJfVCBlbmQsIGludCByZWN1cnNpdmUsIGludCBoYWRfdmlzdWFsKSk7Ci12b2lkIGNsZWFyRm9sZGluZyBfX0FSR1MoKHdpbl9UICp3aW4pKTsKLXZvaWQgZm9sZFVwZGF0ZSBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgdG9wLCBsaW5lbnJfVCBib3QpKTsKLXZvaWQgZm9sZFVwZGF0ZUFsbCBfX0FSR1MoKHdpbl9UICp3aW4pKTsKLWludCBmb2xkTW92ZVRvIF9fQVJHUygoaW50IHVwZG93biwgaW50IGRpciwgbG9uZyBjb3VudCkpOwotdm9pZCBmb2xkSW5pdFdpbiBfX0FSR1MoKHdpbl9UICpuZXd3aW4pKTsKLWludCBmaW5kX3dsX2VudHJ5IF9fQVJHUygod2luX1QgKndpbiwgbGluZW5yX1QgbG51bSkpOwotdm9pZCBmb2xkQWRqdXN0VmlzdWFsIF9fQVJHUygodm9pZCkpOwotdm9pZCBmb2xkQWRqdXN0Q3Vyc29yIF9fQVJHUygodm9pZCkpOwotdm9pZCBjbG9uZUZvbGRHcm93QXJyYXkgX19BUkdTKChnYXJyYXlfVCAqZnJvbSwgZ2FycmF5X1QgKnRvKSk7Ci12b2lkIGRlbGV0ZUZvbGRSZWN1cnNlIF9fQVJHUygoZ2FycmF5X1QgKmdhcCkpOwotdm9pZCBmb2xkTWFya0FkanVzdCBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbGluZTEsIGxpbmVucl9UIGxpbmUyLCBsb25nIGFtb3VudCwgbG9uZyBhbW91bnRfYWZ0ZXIpKTsKLWludCBnZXREZWVwZXN0TmVzdGluZyBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqZ2V0X2ZvbGR0ZXh0IF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtLCBsaW5lbnJfVCBsbnVtZSwgZm9sZGluZm9fVCAqZm9sZGluZm8sIGNoYXJfdSAqYnVmKSk7Ci12b2lkIGZvbGR0ZXh0X2NsZWFudXAgX19BUkdTKChjaGFyX3UgKnN0cikpOwotaW50IHB1dF9mb2xkcyBfX0FSR1MoKEZJTEUgKmZkLCB3aW5fVCAqd3ApKTsKK2V4dGVybiB2b2lkIGNvcHlGb2xkaW5nU3RhdGUgX19BUkdTKCh3aW5fVCAqd3BfZnJvbSwgd2luX1QgKndwX3RvKSk7CitleHRlcm4gaW50IGhhc0FueUZvbGRpbmcgX19BUkdTKCh3aW5fVCAqd2luKSk7CitleHRlcm4gaW50IGhhc0ZvbGRpbmcgX19BUkdTKChsaW5lbnJfVCBsbnVtLCBsaW5lbnJfVCAqZmlyc3RwLCBsaW5lbnJfVCAqbGFzdHApKTsKK2V4dGVybiBpbnQgaGFzRm9sZGluZ1dpbiBfX0FSR1MoKHdpbl9UICp3aW4sIGxpbmVucl9UIGxudW0sIGxpbmVucl9UICpmaXJzdHAsIGxpbmVucl9UICpsYXN0cCwgaW50IGNhY2hlLCBmb2xkaW5mb19UICppbmZvcCkpOworZXh0ZXJuIGludCBmb2xkTGV2ZWwgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gaW50IGxpbmVGb2xkZWQgX19BUkdTKCh3aW5fVCAqd2luLCBsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gbG9uZyBmb2xkZWRDb3VudCBfX0FSR1MoKHdpbl9UICp3aW4sIGxpbmVucl9UIGxudW0sIGZvbGRpbmZvX1QgKmluZm9wKSk7CitleHRlcm4gaW50IGZvbGRtZXRob2RJc01hbnVhbCBfX0FSR1MoKHdpbl9UICp3cCkpOworZXh0ZXJuIGludCBmb2xkbWV0aG9kSXNJbmRlbnQgX19BUkdTKCh3aW5fVCAqd3ApKTsKK2V4dGVybiBpbnQgZm9sZG1ldGhvZElzRXhwciBfX0FSR1MoKHdpbl9UICp3cCkpOworZXh0ZXJuIGludCBmb2xkbWV0aG9kSXNNYXJrZXIgX19BUkdTKCh3aW5fVCAqd3ApKTsKK2V4dGVybiBpbnQgZm9sZG1ldGhvZElzU3ludGF4IF9fQVJHUygod2luX1QgKndwKSk7CitleHRlcm4gaW50IGZvbGRtZXRob2RJc0RpZmYgX19BUkdTKCh3aW5fVCAqd3ApKTsKK2V4dGVybiB2b2lkIGNsb3NlRm9sZCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgY291bnQpKTsKK2V4dGVybiB2b2lkIGNsb3NlRm9sZFJlY3Vyc2UgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gdm9pZCBvcEZvbGRSYW5nZSBfX0FSR1MoKGxpbmVucl9UIGZpcnN0LCBsaW5lbnJfVCBsYXN0LCBpbnQgb3BlbmluZywgaW50IHJlY3Vyc2UsIGludCBoYWRfdmlzdWFsKSk7CitleHRlcm4gdm9pZCBvcGVuRm9sZCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgY291bnQpKTsKK2V4dGVybiB2b2lkIG9wZW5Gb2xkUmVjdXJzZSBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiB2b2lkIGZvbGRPcGVuQ3Vyc29yIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbmV3Rm9sZExldmVsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZm9sZENoZWNrQ2xvc2UgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGZvbGRNYW51YWxBbGxvd2VkIF9fQVJHUygoaW50IGNyZWF0ZSkpOworZXh0ZXJuIHZvaWQgZm9sZENyZWF0ZSBfX0FSR1MoKGxpbmVucl9UIHN0YXJ0LCBsaW5lbnJfVCBlbmQpKTsKK2V4dGVybiB2b2lkIGRlbGV0ZUZvbGQgX19BUkdTKChsaW5lbnJfVCBzdGFydCwgbGluZW5yX1QgZW5kLCBpbnQgcmVjdXJzaXZlLCBpbnQgaGFkX3Zpc3VhbCkpOworZXh0ZXJuIHZvaWQgY2xlYXJGb2xkaW5nIF9fQVJHUygod2luX1QgKndpbikpOworZXh0ZXJuIHZvaWQgZm9sZFVwZGF0ZSBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgdG9wLCBsaW5lbnJfVCBib3QpKTsKK2V4dGVybiB2b2lkIGZvbGRVcGRhdGVBbGwgX19BUkdTKCh3aW5fVCAqd2luKSk7CitleHRlcm4gaW50IGZvbGRNb3ZlVG8gX19BUkdTKChpbnQgdXBkb3duLCBpbnQgZGlyLCBsb25nIGNvdW50KSk7CitleHRlcm4gdm9pZCBmb2xkSW5pdFdpbiBfX0FSR1MoKHdpbl9UICpuZXd3aW4pKTsKK2V4dGVybiBpbnQgZmluZF93bF9lbnRyeSBfX0FSR1MoKHdpbl9UICp3aW4sIGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiB2b2lkIGZvbGRBZGp1c3RWaXN1YWwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBmb2xkQWRqdXN0Q3Vyc29yIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgY2xvbmVGb2xkR3Jvd0FycmF5IF9fQVJHUygoZ2FycmF5X1QgKmZyb20sIGdhcnJheV9UICp0bykpOworZXh0ZXJuIHZvaWQgZGVsZXRlRm9sZFJlY3Vyc2UgX19BUkdTKChnYXJyYXlfVCAqZ2FwKSk7CitleHRlcm4gdm9pZCBmb2xkTWFya0FkanVzdCBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbGluZTEsIGxpbmVucl9UIGxpbmUyLCBsb25nIGFtb3VudCwgbG9uZyBhbW91bnRfYWZ0ZXIpKTsKK2V4dGVybiBpbnQgZ2V0RGVlcGVzdE5lc3RpbmcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhcl91ICpnZXRfZm9sZHRleHQgX19BUkdTKCh3aW5fVCAqd3AsIGxpbmVucl9UIGxudW0sIGxpbmVucl9UIGxudW1lLCBmb2xkaW5mb19UICpmb2xkaW5mbywgY2hhcl91ICpidWYpKTsKK2V4dGVybiB2b2lkIGZvbGR0ZXh0X2NsZWFudXAgX19BUkdTKChjaGFyX3UgKnN0cikpOworZXh0ZXJuIGludCBwdXRfZm9sZHMgX19BUkdTKChGSUxFICpmZCwgd2luX1QgKndwKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9nZXRjaGFyLnBybyBiL3NyYy9wcm90by9nZXRjaGFyLnBybwppbmRleCA5MjEyMzQyLi42MDgxMjRiIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vZ2V0Y2hhci5wcm8KKysrIGIvc3JjL3Byb3RvL2dldGNoYXIucHJvCkBAIC0xLDYzICsxLDYzIEBACiAvKiBnZXRjaGFyLmMgKi8KLXZvaWQgZnJlZV9idWZmIF9fQVJHUygoc3RydWN0IGJ1ZmZoZWFkZXIgKmJ1ZikpOwotY2hhcl91ICpnZXRfcmVjb3JkZWQgX19BUkdTKCh2b2lkKSk7Ci1jaGFyX3UgKmdldF9pbnNlcnRlZCBfX0FSR1MoKHZvaWQpKTsKLWludCBzdHVmZl9lbXB0eSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgdHlwZWFoZWFkX25vZmx1c2ggX19BUkdTKChpbnQgYykpOwotdm9pZCBmbHVzaF9idWZmZXJzIF9fQVJHUygoaW50IHR5cGVhaGVhZCkpOwotdm9pZCBSZXNldFJlZG9idWZmIF9fQVJHUygodm9pZCkpOwotdm9pZCBzYXZlUmVkb2J1ZmYgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHJlc3RvcmVSZWRvYnVmZiBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgQXBwZW5kVG9SZWRvYnVmZiBfX0FSR1MoKGNoYXJfdSAqcykpOwotdm9pZCBBcHBlbmRUb1JlZG9idWZmTGl0IF9fQVJHUygoY2hhcl91ICpzdHIsIGludCBsZW4pKTsKLXZvaWQgQXBwZW5kQ2hhclRvUmVkb2J1ZmYgX19BUkdTKChpbnQgYykpOwotdm9pZCBBcHBlbmROdW1iZXJUb1JlZG9idWZmIF9fQVJHUygobG9uZyBuKSk7Ci12b2lkIHN0dWZmUmVhZGJ1ZmYgX19BUkdTKChjaGFyX3UgKnMpKTsKLXZvaWQgc3R1ZmZSZWFkYnVmZkxlbiBfX0FSR1MoKGNoYXJfdSAqcywgbG9uZyBsZW4pKTsKLXZvaWQgc3R1ZmZSZWFkYnVmZlNwZWMgX19BUkdTKChjaGFyX3UgKnMpKTsKLXZvaWQgc3R1ZmZjaGFyUmVhZGJ1ZmYgX19BUkdTKChpbnQgYykpOwotdm9pZCBzdHVmZm51bVJlYWRidWZmIF9fQVJHUygobG9uZyBuKSk7Ci1pbnQgc3RhcnRfcmVkbyBfX0FSR1MoKGxvbmcgY291bnQsIGludCBvbGRfcmVkbykpOwotaW50IHN0YXJ0X3JlZG9faW5zIF9fQVJHUygodm9pZCkpOwotdm9pZCBzdG9wX3JlZG9faW5zIF9fQVJHUygodm9pZCkpOwotaW50IGluc190eXBlYnVmIF9fQVJHUygoY2hhcl91ICpzdHIsIGludCBub3JlbWFwLCBpbnQgb2Zmc2V0LCBpbnQgbm90dHlwZWQsIGludCBzaWxlbnQpKTsKLWludCB0eXBlYnVmX2NoYW5nZWQgX19BUkdTKChpbnQgdGJfY2hhbmdlX2NudCkpOwotaW50IHR5cGVidWZfdHlwZWQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgdHlwZWJ1Zl9tYXBsZW4gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGRlbF90eXBlYnVmIF9fQVJHUygoaW50IGxlbiwgaW50IG9mZnNldCkpOwotaW50IGFsbG9jX3R5cGVidWYgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGZyZWVfdHlwZWJ1ZiBfX0FSR1MoKHZvaWQpKTsKLWludCBzYXZlX3R5cGVidWYgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNhdmVfdHlwZWFoZWFkIF9fQVJHUygodGFzYXZlX1QgKnRwKSk7Ci12b2lkIHJlc3RvcmVfdHlwZWFoZWFkIF9fQVJHUygodGFzYXZlX1QgKnRwKSk7Ci12b2lkIG9wZW5zY3JpcHQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBkaXJlY3RseSkpOwotdm9pZCBjbG9zZV9hbGxfc2NyaXB0cyBfX0FSR1MoKHZvaWQpKTsKLWludCB1c2luZ19zY3JpcHQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGJlZm9yZV9ibG9ja2luZyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgdXBkYXRlc2NyaXB0IF9fQVJHUygoaW50IGMpKTsKLWludCB2Z2V0YyBfX0FSR1MoKHZvaWQpKTsKLWludCBzYWZlX3ZnZXRjIF9fQVJHUygodm9pZCkpOwotaW50IHZwZWVrYyBfX0FSR1MoKHZvaWQpKTsKLWludCB2cGVla2Nfbm9tYXAgX19BUkdTKCh2b2lkKSk7Ci1pbnQgdnBlZWtjX2FueSBfX0FSR1MoKHZvaWQpKTsKLWludCBjaGFyX2F2YWlsIF9fQVJHUygodm9pZCkpOwotdm9pZCB2dW5nZXRjIF9fQVJHUygoaW50IGMpKTsKLWludCBpbmNoYXIgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IG1heGxlbiwgbG9uZyB3YWl0X3RpbWUsIGludCB0Yl9jaGFuZ2VfY250KSk7Ci1pbnQgZml4X2lucHV0X2J1ZmZlciBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgbGVuLCBpbnQgc2NyaXB0KSk7Ci1pbnQgaW5wdXRfYXZhaWxhYmxlIF9fQVJHUygodm9pZCkpOwotaW50IGRvX21hcCBfX0FSR1MoKGludCBtYXB0eXBlLCBjaGFyX3UgKmFyZywgaW50IG1vZGUsIGludCBhYmJyZXYpKTsKLWludCBnZXRfbWFwX21vZGUgX19BUkdTKChjaGFyX3UgKipjbWRwLCBpbnQgZm9yY2VpdCkpOwotdm9pZCBtYXBfY2xlYXIgX19BUkdTKChjaGFyX3UgKmNtZHAsIGNoYXJfdSAqYXJnLCBpbnQgZm9yY2VpdCwgaW50IGFiYnIpKTsKLXZvaWQgbWFwX2NsZWFyX2ludCBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBtb2RlLCBpbnQgbG9jYWwsIGludCBhYmJyKSk7Ci1pbnQgbWFwX3RvX2V4aXN0cyBfX0FSR1MoKGNoYXJfdSAqc3RyLCBjaGFyX3UgKm1vZGVjaGFycywgaW50IGFiYnIpKTsKLWludCBtYXBfdG9fZXhpc3RzX21vZGUgX19BUkdTKChjaGFyX3UgKnJocywgaW50IG1vZGUsIGludCBhYmJyKSk7Ci1jaGFyX3UgKnNldF9jb250ZXh0X2luX21hcF9jbWQgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqY21kLCBjaGFyX3UgKmFyZywgaW50IGZvcmNlaXQsIGludCBpc2FiYnJldiwgaW50IGlzdW5tYXAsIGNtZGlkeF9UIGNtZGlkeCkpOwotaW50IEV4cGFuZE1hcHBpbmdzIF9fQVJHUygocmVnbWF0Y2hfVCAqcmVnbWF0Y2gsIGludCAqbnVtX2ZpbGUsIGNoYXJfdSAqKipmaWxlKSk7Ci1pbnQgY2hlY2tfYWJiciBfX0FSR1MoKGludCBjLCBjaGFyX3UgKnB0ciwgaW50IGNvbCwgaW50IG1pbmNvbCkpOwotaW50IG1ha2VtYXAgX19BUkdTKChGSUxFICpmZCwgYnVmX1QgKmJ1ZikpOwotaW50IHB1dF9lc2NzdHIgX19BUkdTKChGSUxFICpmZCwgY2hhcl91ICpzdHJzdGFydCwgaW50IHdoYXQpKTsKLXZvaWQgY2hlY2tfbWFwX2tleWNvZGVzIF9fQVJHUygodm9pZCkpOwotY2hhcl91ICpjaGVja19tYXAgX19BUkdTKChjaGFyX3UgKmtleXMsIGludCBtb2RlLCBpbnQgZXhhY3QsIGludCBpZ25fbW9kLCBpbnQgYWJicikpOwotdm9pZCBpbml0X21hcHBpbmdzIF9fQVJHUygodm9pZCkpOwotdm9pZCBhZGRfbWFwIF9fQVJHUygoY2hhcl91ICptYXAsIGludCBtb2RlKSk7CitleHRlcm4gdm9pZCBmcmVlX2J1ZmYgX19BUkdTKChzdHJ1Y3QgYnVmZmhlYWRlciAqYnVmKSk7CitleHRlcm4gY2hhcl91ICpnZXRfcmVjb3JkZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhcl91ICpnZXRfaW5zZXJ0ZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHN0dWZmX2VtcHR5IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgdHlwZWFoZWFkX25vZmx1c2ggX19BUkdTKChpbnQgYykpOworZXh0ZXJuIHZvaWQgZmx1c2hfYnVmZmVycyBfX0FSR1MoKGludCB0eXBlYWhlYWQpKTsKK2V4dGVybiB2b2lkIFJlc2V0UmVkb2J1ZmYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzYXZlUmVkb2J1ZmYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXN0b3JlUmVkb2J1ZmYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBBcHBlbmRUb1JlZG9idWZmIF9fQVJHUygoY2hhcl91ICpzKSk7CitleHRlcm4gdm9pZCBBcHBlbmRUb1JlZG9idWZmTGl0IF9fQVJHUygoY2hhcl91ICpzdHIsIGludCBsZW4pKTsKK2V4dGVybiB2b2lkIEFwcGVuZENoYXJUb1JlZG9idWZmIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiB2b2lkIEFwcGVuZE51bWJlclRvUmVkb2J1ZmYgX19BUkdTKChsb25nIG4pKTsKK2V4dGVybiB2b2lkIHN0dWZmUmVhZGJ1ZmYgX19BUkdTKChjaGFyX3UgKnMpKTsKK2V4dGVybiB2b2lkIHN0dWZmUmVhZGJ1ZmZMZW4gX19BUkdTKChjaGFyX3UgKnMsIGxvbmcgbGVuKSk7CitleHRlcm4gdm9pZCBzdHVmZlJlYWRidWZmU3BlYyBfX0FSR1MoKGNoYXJfdSAqcykpOworZXh0ZXJuIHZvaWQgc3R1ZmZjaGFyUmVhZGJ1ZmYgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIHZvaWQgc3R1ZmZudW1SZWFkYnVmZiBfX0FSR1MoKGxvbmcgbikpOworZXh0ZXJuIGludCBzdGFydF9yZWRvIF9fQVJHUygobG9uZyBjb3VudCwgaW50IG9sZF9yZWRvKSk7CitleHRlcm4gaW50IHN0YXJ0X3JlZG9faW5zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc3RvcF9yZWRvX2lucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgaW5zX3R5cGVidWYgX19BUkdTKChjaGFyX3UgKnN0ciwgaW50IG5vcmVtYXAsIGludCBvZmZzZXQsIGludCBub3R0eXBlZCwgaW50IHNpbGVudCkpOworZXh0ZXJuIGludCB0eXBlYnVmX2NoYW5nZWQgX19BUkdTKChpbnQgdGJfY2hhbmdlX2NudCkpOworZXh0ZXJuIGludCB0eXBlYnVmX3R5cGVkIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB0eXBlYnVmX21hcGxlbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGRlbF90eXBlYnVmIF9fQVJHUygoaW50IGxlbiwgaW50IG9mZnNldCkpOworZXh0ZXJuIGludCBhbGxvY190eXBlYnVmIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZnJlZV90eXBlYnVmIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBzYXZlX3R5cGVidWYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzYXZlX3R5cGVhaGVhZCBfX0FSR1MoKHRhc2F2ZV9UICp0cCkpOworZXh0ZXJuIHZvaWQgcmVzdG9yZV90eXBlYWhlYWQgX19BUkdTKCh0YXNhdmVfVCAqdHApKTsKK2V4dGVybiB2b2lkIG9wZW5zY3JpcHQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBkaXJlY3RseSkpOworZXh0ZXJuIHZvaWQgY2xvc2VfYWxsX3NjcmlwdHMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHVzaW5nX3NjcmlwdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGJlZm9yZV9ibG9ja2luZyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHVwZGF0ZXNjcmlwdCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHZnZXRjIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBzYWZlX3ZnZXRjIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2cGVla2MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHZwZWVrY19ub21hcCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgdnBlZWtjX2FueSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgY2hhcl9hdmFpbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHZ1bmdldGMgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIGludCBpbmNoYXIgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IG1heGxlbiwgbG9uZyB3YWl0X3RpbWUsIGludCB0Yl9jaGFuZ2VfY250KSk7CitleHRlcm4gaW50IGZpeF9pbnB1dF9idWZmZXIgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGxlbiwgaW50IHNjcmlwdCkpOworZXh0ZXJuIGludCBpbnB1dF9hdmFpbGFibGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGRvX21hcCBfX0FSR1MoKGludCBtYXB0eXBlLCBjaGFyX3UgKmFyZywgaW50IG1vZGUsIGludCBhYmJyZXYpKTsKK2V4dGVybiBpbnQgZ2V0X21hcF9tb2RlIF9fQVJHUygoY2hhcl91ICoqY21kcCwgaW50IGZvcmNlaXQpKTsKK2V4dGVybiB2b2lkIG1hcF9jbGVhciBfX0FSR1MoKGNoYXJfdSAqY21kcCwgY2hhcl91ICphcmcsIGludCBmb3JjZWl0LCBpbnQgYWJicikpOworZXh0ZXJuIHZvaWQgbWFwX2NsZWFyX2ludCBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBtb2RlLCBpbnQgbG9jYWwsIGludCBhYmJyKSk7CitleHRlcm4gaW50IG1hcF90b19leGlzdHMgX19BUkdTKChjaGFyX3UgKnN0ciwgY2hhcl91ICptb2RlY2hhcnMsIGludCBhYmJyKSk7CitleHRlcm4gaW50IG1hcF90b19leGlzdHNfbW9kZSBfX0FSR1MoKGNoYXJfdSAqcmhzLCBpbnQgbW9kZSwgaW50IGFiYnIpKTsKK2V4dGVybiBjaGFyX3UgKnNldF9jb250ZXh0X2luX21hcF9jbWQgX19BUkdTKChleHBhbmRfVCAqeHAsIGNoYXJfdSAqY21kLCBjaGFyX3UgKmFyZywgaW50IGZvcmNlaXQsIGludCBpc2FiYnJldiwgaW50IGlzdW5tYXAsIGNtZGlkeF9UIGNtZGlkeCkpOworZXh0ZXJuIGludCBFeHBhbmRNYXBwaW5ncyBfX0FSR1MoKHJlZ21hdGNoX1QgKnJlZ21hdGNoLCBpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSkpOworZXh0ZXJuIGludCBjaGVja19hYmJyIF9fQVJHUygoaW50IGMsIGNoYXJfdSAqcHRyLCBpbnQgY29sLCBpbnQgbWluY29sKSk7CitleHRlcm4gaW50IG1ha2VtYXAgX19BUkdTKChGSUxFICpmZCwgYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGludCBwdXRfZXNjc3RyIF9fQVJHUygoRklMRSAqZmQsIGNoYXJfdSAqc3Ryc3RhcnQsIGludCB3aGF0KSk7CitleHRlcm4gdm9pZCBjaGVja19tYXBfa2V5Y29kZXMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhcl91ICpjaGVja19tYXAgX19BUkdTKChjaGFyX3UgKmtleXMsIGludCBtb2RlLCBpbnQgZXhhY3QsIGludCBpZ25fbW9kLCBpbnQgYWJicikpOworZXh0ZXJuIHZvaWQgaW5pdF9tYXBwaW5ncyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGFkZF9tYXAgX19BUkdTKChjaGFyX3UgKm1hcCwgaW50IG1vZGUpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aS5wcm8gYi9zcmMvcHJvdG8vZ3VpLnBybwppbmRleCAwODdjMWE4Li43MDRjZDFiIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vZ3VpLnBybworKysgYi9zcmMvcHJvdG8vZ3VpLnBybwpAQCAtMSw2NCArMSw2NCBAQAogLyogZ3VpLmMgKi8KLXZvaWQgZ3VpX3N0YXJ0IF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfcHJlcGFyZSBfX0FSR1MoKGludCAqYXJnYywgY2hhciAqKmFyZ3YpKTsKLWludCBndWlfaW5pdF9jaGVjayBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX2luaXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9leGl0IF9fQVJHUygoaW50IHJjKSk7Ci12b2lkIGd1aV9zaGVsbF9jbG9zZWQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqZm9udF9saXN0LCBpbnQgZm9udHNldCkpOwotaW50IGd1aV9nZXRfd2lkZV9mb250IF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfc2V0X2N1cnNvciBfX0FSR1MoKGludCByb3csIGludCBjb2wpKTsKLXZvaWQgZ3VpX3VwZGF0ZV9jdXJzb3IgX19BUkdTKChpbnQgZm9yY2UsIGludCBjbGVhcl9zZWxlY3Rpb24pKTsKLXZvaWQgZ3VpX3Bvc2l0aW9uX21lbnUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX2dldF9iYXNlX3dpZHRoIF9fQVJHUygodm9pZCkpOwotaW50IGd1aV9nZXRfYmFzZV9oZWlnaHQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9yZXNpemVfc2hlbGwgX19BUkdTKChpbnQgcGl4ZWxfd2lkdGgsIGludCBwaXhlbF9oZWlnaHQpKTsKLXZvaWQgZ3VpX21heV9yZXNpemVfc2hlbGwgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX2dldF9zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9zZXRfc2hlbGxzaXplIF9fQVJHUygoaW50IG11c3RzZXQsIGludCBmaXRfdG9fZGlzcGxheSkpOwotdm9pZCBndWlfbmV3X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX3Jlc2V0X3Njcm9sbF9yZWdpb24gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9zdGFydF9oaWdobGlnaHQgX19BUkdTKChpbnQgbWFzaykpOwotdm9pZCBndWlfc3RvcF9oaWdobGlnaHQgX19BUkdTKChpbnQgbWFzaykpOwotdm9pZCBndWlfY2xlYXJfYmxvY2sgX19BUkdTKChpbnQgcm93MSwgaW50IGNvbDEsIGludCByb3cyLCBpbnQgY29sMikpOwotdm9pZCBndWlfdXBkYXRlX2N1cnNvcl9sYXRlciBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX3dyaXRlIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7Ci12b2lkIGd1aV9kb250X3VwZGF0ZV9jdXJzb3IgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9jYW5fdXBkYXRlX2N1cnNvciBfX0FSR1MoKHZvaWQpKTsKLWludCBndWlfb3V0c3RyX25vd3JhcCBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbiwgaW50IGZsYWdzLCBndWljb2xvcl9UIGZnLCBndWljb2xvcl9UIGJnLCBpbnQgYmFjaykpOwotdm9pZCBndWlfdW5kcmF3X2N1cnNvciBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX3JlZHJhdyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci1pbnQgZ3VpX3JlZHJhd19ibG9jayBfX0FSR1MoKGludCByb3cxLCBpbnQgY29sMSwgaW50IHJvdzIsIGludCBjb2wyLCBpbnQgZmxhZ3MpKTsKLWludCBndWlfd2FpdF9mb3JfY2hhcnMgX19BUkdTKChsb25nIHd0aW1lKSk7Ci12b2lkIGd1aV9zZW5kX21vdXNlX2V2ZW50IF9fQVJHUygoaW50IGJ1dHRvbiwgaW50IHgsIGludCB5LCBpbnQgcmVwZWF0ZWRfY2xpY2ssIGludF91IG1vZGlmaWVycykpOwotaW50IGd1aV94eTJjb2xyb3cgX19BUkdTKChpbnQgeCwgaW50IHksIGludCAqY29scCkpOwotdm9pZCBndWlfbWVudV9jYiBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOwotdm9pZCBndWlfaW5pdF93aGljaF9jb21wb25lbnRzIF9fQVJHUygoY2hhcl91ICpvbGR2YWwpKTsKLWludCBndWlfdXNlX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV91cGRhdGVfdGFibGluZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ2V0X3RhYmxpbmVfbGFiZWwgX19BUkdTKCh0YWJwYWdlX1QgKnRwKSk7Ci1pbnQgc2VuZF90YWJsaW5lX2V2ZW50IF9fQVJHUygoaW50IG5yKSk7Ci12b2lkIGd1aV9yZW1vdmVfc2Nyb2xsYmFycyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB0eXBlLCB3aW5fVCAqd3ApKTsKLXNjcm9sbGJhcl9UICpndWlfZmluZF9zY3JvbGxiYXIgX19BUkdTKChsb25nIGlkZW50KSk7Ci12b2lkIGd1aV9kcmFnX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgbG9uZyB2YWx1ZSwgaW50IHN0aWxsX2RyYWdnaW5nKSk7Ci12b2lkIGd1aV91cGRhdGVfc2Nyb2xsYmFycyBfX0FSR1MoKGludCBmb3JjZSkpOwotaW50IGd1aV9kb19zY3JvbGwgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX2RvX2hvcml6X3Njcm9sbCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX2NoZWNrX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLWd1aWNvbG9yX1QgZ3VpX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IGd1aV9nZXRfbGlnaHRuZXNzIF9fQVJHUygoZ3VpY29sb3JfVCBwaXhlbCkpOwotdm9pZCBndWlfbmV3X3Njcm9sbGJhcl9jb2xvcnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9mb2N1c19jaGFuZ2UgX19BUkdTKChpbnQgaW5fZm9jdXMpKTsKLXZvaWQgZ3VpX21vdXNlX21vdmVkIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIGd1aV9tb3VzZV9jb3JyZWN0IF9fQVJHUygodm9pZCkpOwotdm9pZCBleF9ndWkgX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBndWlfZmluZF9iaXRtYXAgX19BUkdTKChjaGFyX3UgKm5hbWUsIGNoYXJfdSAqYnVmZmVyLCBjaGFyICpleHQpKTsKLXZvaWQgZ3VpX2ZpbmRfaWNvbmZpbGUgX19BUkdTKChjaGFyX3UgKm5hbWUsIGNoYXJfdSAqYnVmZmVyLCBjaGFyICpleHQpKTsKLXZvaWQgZGlzcGxheV9lcnJvcnMgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbm9fY29uc29sZV9pbnB1dCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX3VwZGF0ZV9zY3JlZW4gX19BUkdTKCh2b2lkKSk7Ci1jaGFyX3UgKmdldF9maW5kX2RpYWxvZ190ZXh0IF9fQVJHUygoY2hhcl91ICphcmcsIGludCAqd3dvcmRwLCBpbnQgKm1jYXNlcCkpOwotaW50IGd1aV9kb19maW5kcmVwbCBfX0FSR1MoKGludCBmbGFncywgY2hhcl91ICpmaW5kX3RleHQsIGNoYXJfdSAqcmVwbF90ZXh0LCBpbnQgZG93bikpOwotdm9pZCBndWlfaGFuZGxlX2Ryb3AgX19BUkdTKChpbnQgeCwgaW50IHksIGludF91IG1vZGlmaWVycywgY2hhcl91ICoqZm5hbWVzLCBpbnQgY291bnQpKTsKK2V4dGVybiB2b2lkIGd1aV9zdGFydCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9wcmVwYXJlIF9fQVJHUygoaW50ICphcmdjLCBjaGFyICoqYXJndikpOworZXh0ZXJuIGludCBndWlfaW5pdF9jaGVjayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX2V4aXQgX19BUkdTKChpbnQgcmMpKTsKK2V4dGVybiB2b2lkIGd1aV9zaGVsbF9jbG9zZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9pbml0X2ZvbnQgX19BUkdTKChjaGFyX3UgKmZvbnRfbGlzdCwgaW50IGZvbnRzZXQpKTsKK2V4dGVybiBpbnQgZ3VpX2dldF93aWRlX2ZvbnQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfc2V0X2N1cnNvciBfX0FSR1MoKGludCByb3csIGludCBjb2wpKTsKK2V4dGVybiB2b2lkIGd1aV91cGRhdGVfY3Vyc29yIF9fQVJHUygoaW50IGZvcmNlLCBpbnQgY2xlYXJfc2VsZWN0aW9uKSk7CitleHRlcm4gdm9pZCBndWlfcG9zaXRpb25fbWVudSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZ3VpX2dldF9iYXNlX3dpZHRoIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfZ2V0X2Jhc2VfaGVpZ2h0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX3Jlc2l6ZV9zaGVsbCBfX0FSR1MoKGludCBwaXhlbF93aWR0aCwgaW50IHBpeGVsX2hlaWdodCkpOworZXh0ZXJuIHZvaWQgZ3VpX21heV9yZXNpemVfc2hlbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9nZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgbXVzdHNldCwgaW50IGZpdF90b19kaXNwbGF5KSk7CitleHRlcm4gdm9pZCBndWlfbmV3X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9yZXNldF9zY3JvbGxfcmVnaW9uIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX3N0YXJ0X2hpZ2hsaWdodCBfX0FSR1MoKGludCBtYXNrKSk7CitleHRlcm4gdm9pZCBndWlfc3RvcF9oaWdobGlnaHQgX19BUkdTKChpbnQgbWFzaykpOworZXh0ZXJuIHZvaWQgZ3VpX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKK2V4dGVybiB2b2lkIGd1aV91cGRhdGVfY3Vyc29yX2xhdGVyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX3dyaXRlIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7CitleHRlcm4gdm9pZCBndWlfZG9udF91cGRhdGVfY3Vyc29yIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX2Nhbl91cGRhdGVfY3Vyc29yIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfb3V0c3RyX25vd3JhcCBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbiwgaW50IGZsYWdzLCBndWljb2xvcl9UIGZnLCBndWljb2xvcl9UIGJnLCBpbnQgYmFjaykpOworZXh0ZXJuIHZvaWQgZ3VpX3VuZHJhd19jdXJzb3IgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfcmVkcmF3IF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiBpbnQgZ3VpX3JlZHJhd19ibG9jayBfX0FSR1MoKGludCByb3cxLCBpbnQgY29sMSwgaW50IHJvdzIsIGludCBjb2wyLCBpbnQgZmxhZ3MpKTsKK2V4dGVybiBpbnQgZ3VpX3dhaXRfZm9yX2NoYXJzIF9fQVJHUygobG9uZyB3dGltZSkpOworZXh0ZXJuIHZvaWQgZ3VpX3NlbmRfbW91c2VfZXZlbnQgX19BUkdTKChpbnQgYnV0dG9uLCBpbnQgeCwgaW50IHksIGludCByZXBlYXRlZF9jbGljaywgaW50X3UgbW9kaWZpZXJzKSk7CitleHRlcm4gaW50IGd1aV94eTJjb2xyb3cgX19BUkdTKChpbnQgeCwgaW50IHksIGludCAqY29scCkpOworZXh0ZXJuIHZvaWQgZ3VpX21lbnVfY2IgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKK2V4dGVybiB2b2lkIGd1aV9pbml0X3doaWNoX2NvbXBvbmVudHMgX19BUkdTKChjaGFyX3UgKm9sZHZhbCkpOworZXh0ZXJuIGludCBndWlfdXNlX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfdXBkYXRlX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBnZXRfdGFibGluZV9sYWJlbCBfX0FSR1MoKHRhYnBhZ2VfVCAqdHApKTsKK2V4dGVybiBpbnQgc2VuZF90YWJsaW5lX2V2ZW50IF9fQVJHUygoaW50IG5yKSk7CitleHRlcm4gdm9pZCBndWlfcmVtb3ZlX3Njcm9sbGJhcnMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfY3JlYXRlX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IHR5cGUsIHdpbl9UICp3cCkpOworZXh0ZXJuIHNjcm9sbGJhcl9UICpndWlfZmluZF9zY3JvbGxiYXIgX19BUkdTKChsb25nIGlkZW50KSk7CitleHRlcm4gdm9pZCBndWlfZHJhZ19zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGxvbmcgdmFsdWUsIGludCBzdGlsbF9kcmFnZ2luZykpOworZXh0ZXJuIHZvaWQgZ3VpX3VwZGF0ZV9zY3JvbGxiYXJzIF9fQVJHUygoaW50IGZvcmNlKSk7CitleHRlcm4gaW50IGd1aV9kb19zY3JvbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9kb19ob3Jpel9zY3JvbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfY2hlY2tfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGd1aWNvbG9yX1QgZ3VpX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBndWlfZ2V0X2xpZ2h0bmVzcyBfX0FSR1MoKGd1aWNvbG9yX1QgcGl4ZWwpKTsKK2V4dGVybiB2b2lkIGd1aV9uZXdfc2Nyb2xsYmFyX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9mb2N1c19jaGFuZ2UgX19BUkdTKChpbnQgaW5fZm9jdXMpKTsKK2V4dGVybiB2b2lkIGd1aV9tb3VzZV9tb3ZlZCBfX0FSR1MoKGludCB4LCBpbnQgeSkpOworZXh0ZXJuIHZvaWQgZ3VpX21vdXNlX2NvcnJlY3QgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBleF9ndWkgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgZ3VpX2ZpbmRfYml0bWFwIF9fQVJHUygoY2hhcl91ICpuYW1lLCBjaGFyX3UgKmJ1ZmZlciwgY2hhciAqZXh0KSk7CitleHRlcm4gdm9pZCBndWlfZmluZF9pY29uZmlsZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgY2hhcl91ICpidWZmZXIsIGNoYXIgKmV4dCkpOworZXh0ZXJuIHZvaWQgZGlzcGxheV9lcnJvcnMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG5vX2NvbnNvbGVfaW5wdXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfdXBkYXRlX3NjcmVlbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmdldF9maW5kX2RpYWxvZ190ZXh0IF9fQVJHUygoY2hhcl91ICphcmcsIGludCAqd3dvcmRwLCBpbnQgKm1jYXNlcCkpOworZXh0ZXJuIGludCBndWlfZG9fZmluZHJlcGwgX19BUkdTKChpbnQgZmxhZ3MsIGNoYXJfdSAqZmluZF90ZXh0LCBjaGFyX3UgKnJlcGxfdGV4dCwgaW50IGRvd24pKTsKK2V4dGVybiB2b2lkIGd1aV9oYW5kbGVfZHJvcCBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50X3UgbW9kaWZpZXJzLCBjaGFyX3UgKipmbmFtZXMsIGludCBjb3VudCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZ3VpX2F0aGVuYS5wcm8gYi9zcmMvcHJvdG8vZ3VpX2F0aGVuYS5wcm8KaW5kZXggMzUzYzMzYi4uOTZjMDU5YSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2d1aV9hdGhlbmEucHJvCisrKyBiL3NyYy9wcm90by9ndWlfYXRoZW5hLnBybwpAQCAtMSwzMSArMSwzMSBAQAogLyogZ3VpX2F0aGVuYS5jICovCi12b2lkIGd1aV94MTFfY3JlYXRlX3dpZGdldHMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV94MTFfZGVzdHJveV93aWRnZXRzIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX3NldF90b29sYmFyX3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfeDExX3NldF9iYWNrX2NvbG9yIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2VuYWJsZV9tZW51IF9fQVJHUygoaW50IGZsYWcpKTsKLXZvaWQgZ3VpX21jaF9zZXRfbWVudV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaWR4KSk7Ci12b2lkIGd1aV9tY2hfbmV3X21lbnVfZm9udCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9uZXdfdG9vbHRpcF9mb250IF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX25ld190b29sdGlwX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9hZGRfbWVudV9pdGVtIF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaWR4KSk7Ci12b2lkIGd1aV9tY2hfc2hvd190b29sYmFyIF9fQVJHUygoaW50IHNob3dpdCkpOwotaW50IGd1aV9tY2hfY29tcHV0ZV90b29sYmFyX2hlaWdodCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9nZXRfdG9vbGJhcl9jb2xvcnMgX19BUkdTKChQaXhlbCAqYmdwLCBQaXhlbCAqZmdwLCBQaXhlbCAqYnNwLCBQaXhlbCAqdHNwLCBQaXhlbCAqaHNwKSk7Ci12b2lkIGd1aV9tY2hfdG9nZ2xlX3RlYXJvZmZzIF9fQVJHUygoaW50IGVuYWJsZSkpOwotdm9pZCBndWlfbWNoX25ld19tZW51X2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21jaF9zaG93X3BvcHVwbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOwotdm9pZCBndWlfbWNoX2RlZl9jb2xvcnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl90aHVtYiBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgbG9uZyB2YWwsIGxvbmcgc2l6ZSwgbG9uZyBtYXgpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3BvcyBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKLXZvaWQgZ3VpX21jaF9lbmFibGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgZmxhZykpOwotdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYikpOwotdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfY29sb3JzIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7Ci1XaW5kb3cgZ3VpX3gxMV9nZXRfd2lkIF9fQVJHUygodm9pZCkpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGZsdCwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKLWludCBndWlfbWNoX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRmbHRidXR0b24sIGNoYXJfdSAqdGV4dGZpZWxkKSk7CitleHRlcm4gdm9pZCBndWlfeDExX2NyZWF0ZV93aWRnZXRzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX3gxMV9kZXN0cm95X3dpZGdldHMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF90b29sYmFyX3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF90ZXh0X2FyZWFfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiB2b2lkIGd1aV94MTFfc2V0X2JhY2tfY29sb3IgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2VuYWJsZV9tZW51IF9fQVJHUygoaW50IGZsYWcpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X21lbnVfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfYWRkX21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3X21lbnVfZm9udCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3X3Rvb2x0aXBfZm9udCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3X3Rvb2x0aXBfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9hZGRfbWVudV9pdGVtIF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaWR4KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3Nob3dfdG9vbGJhciBfX0FSR1MoKGludCBzaG93aXQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9jb21wdXRlX3Rvb2xiYXJfaGVpZ2h0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9nZXRfdG9vbGJhcl9jb2xvcnMgX19BUkdTKChQaXhlbCAqYmdwLCBQaXhlbCAqZmdwLCBQaXhlbCAqYnNwLCBQaXhlbCAqdHNwLCBQaXhlbCAqaHNwKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3RvZ2dsZV90ZWFyb2ZmcyBfX0FSR1MoKGludCBlbmFibGUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3X21lbnVfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2hvd19wb3B1cG1lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVmX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl90aHVtYiBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgbG9uZyB2YWwsIGxvbmcgc2l6ZSwgbG9uZyBtYXgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9wb3MgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2VuYWJsZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBmbGFnKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVzdHJveV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9jb2xvcnMgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IpKTsKK2V4dGVybiBXaW5kb3cgZ3VpX3gxMV9nZXRfd2lkIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9icm93c2UgX19BUkdTKChpbnQgc2F2aW5nLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmRmbHQsIGNoYXJfdSAqZXh0LCBjaGFyX3UgKmluaXRkaXIsIGNoYXJfdSAqZmlsdGVyKSk7CitleHRlcm4gaW50IGd1aV9tY2hfZGlhbG9nIF9fQVJHUygoaW50IHR5cGUsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqbWVzc2FnZSwgY2hhcl91ICpidXR0b25zLCBpbnQgZGZsdGJ1dHRvbiwgY2hhcl91ICp0ZXh0ZmllbGQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aV9ndGsucHJvIGIvc3JjL3Byb3RvL2d1aV9ndGsucHJvCmluZGV4IDk2MGQ2MzEuLmYxZmRiZTYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ndWlfZ3RrLnBybworKysgYi9zcmMvcHJvdG8vZ3VpX2d0ay5wcm8KQEAgLTEsMjMgKzEsMjMgQEAKIC8qIGd1aV9ndGsuYyAqLwotdm9pZCBndWlfZ3RrX3JlZ2lzdGVyX3N0b2NrX2ljb25zIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaWR4KSk7Ci12b2lkIGd1aV9tY2hfYWRkX21lbnVfaXRlbSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGlkeCkpOwotdm9pZCBndWlfbWNoX3NldF90ZXh0X2FyZWFfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKLXZvaWQgZ3VpX2d0a19zZXRfbW5lbW9uaWNzIF9fQVJHUygoaW50IGVuYWJsZSkpOwotdm9pZCBndWlfbWNoX3RvZ2dsZV90ZWFyb2ZmcyBfX0FSR1MoKGludCBlbmFibGUpKTsKLXZvaWQgZ3VpX21jaF9tZW51X3NldF90aXAgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBsb25nIHZhbCwgbG9uZyBzaXplLCBsb25nIG1heCkpOwotdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfcG9zIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYikpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGZsdCwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKLWNoYXJfdSAqZ3VpX21jaF9icm93c2VkaXIgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmluaXRkaXIpKTsKLWludCBndWlfbWNoX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRlZl9idXQsIGNoYXJfdSAqdGV4dGZpZWxkKSk7Ci12b2lkIGd1aV9tY2hfc2hvd19wb3B1cG1lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21ha2VfcG9wdXAgX19BUkdTKChjaGFyX3UgKnBhdGhfbmFtZSwgaW50IG1vdXNlX3BvcykpOwotdm9pZCBndWlfbWNoX2ZpbmRfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGd1aV9tY2hfcmVwbGFjZV9kaWFsb2cgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZ3VpX2d0a19zeW5jaF9mb250cyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZXhfaGVscGZpbmQgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGd1aV9ndGtfcmVnaXN0ZXJfc3RvY2tfaWNvbnMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaWR4KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51X2l0ZW0gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOworZXh0ZXJuIHZvaWQgZ3VpX2d0a19zZXRfbW5lbW9uaWNzIF9fQVJHUygoaW50IGVuYWJsZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF90b2dnbGVfdGVhcm9mZnMgX19BUkdTKChpbnQgZW5hYmxlKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfc2V0X3RpcCBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl90aHVtYiBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgbG9uZyB2YWwsIGxvbmcgc2l6ZSwgbG9uZyBtYXgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9wb3MgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVzdHJveV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IpKTsKK2V4dGVybiBjaGFyX3UgKmd1aV9tY2hfYnJvd3NlIF9fQVJHUygoaW50IHNhdmluZywgY2hhcl91ICp0aXRsZSwgY2hhcl91ICpkZmx0LCBjaGFyX3UgKmV4dCwgY2hhcl91ICppbml0ZGlyLCBjaGFyX3UgKmZpbHRlcikpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9icm93c2VkaXIgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmluaXRkaXIpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9kaWFsb2cgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBjaGFyX3UgKmJ1dHRvbnMsIGludCBkZWZfYnV0LCBjaGFyX3UgKnRleHRmaWVsZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zaG93X3BvcHVwbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOworZXh0ZXJuIHZvaWQgZ3VpX21ha2VfcG9wdXAgX19BUkdTKChjaGFyX3UgKnBhdGhfbmFtZSwgaW50IG1vdXNlX3BvcykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9maW5kX2RpYWxvZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9yZXBsYWNlX2RpYWxvZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZ3VpX2d0a19zeW5jaF9mb250cyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X2hlbHBmaW5kIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9ndWlfZ3RrX3gxMS5wcm8gYi9zcmMvcHJvdG8vZ3VpX2d0a194MTEucHJvCmluZGV4IGFmYjM4NGUuLjQ2ZmNjOWYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ndWlfZ3RrX3gxMS5wcm8KKysrIGIvc3JjL3Byb3RvL2d1aV9ndGtfeDExLnBybwpAQCAtMSw3MyArMSw3MyBAQAogLyogZ3VpX2d0a194MTEuYyAqLwotdm9pZCBndWlfbWNoX3ByZXBhcmUgX19BUkdTKChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2KSk7Ci12b2lkIGd1aV9tY2hfZnJlZV9hbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0X2JsaW5raW5nIF9fQVJHUygobG9uZyB3YWl0dGltZSwgbG9uZyBvbiwgbG9uZyBvZmYpKTsKLXZvaWQgZ3VpX21jaF9zdG9wX2JsaW5rIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX3N0YXJ0X2JsaW5rIF9fQVJHUygodm9pZCkpOwotaW50IGd1aV9tY2hfaW5pdF9jaGVjayBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zaG93X3RhYmxpbmUgX19BUkdTKChpbnQgc2hvd2l0KSk7Ci1pbnQgZ3VpX21jaF9zaG93aW5nX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfdXBkYXRlX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0X2N1cnRhYiBfX0FSR1MoKGludCBucikpOwotaW50IGd1aV9tY2hfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9mb3JrZWQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfbmV3X2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLWludCBndWlfbWNoX29wZW4gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZXhpdCBfX0FSR1MoKGludCByYykpOwotaW50IGd1aV9tY2hfZ2V0X3dpbnBvcyBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7Ci12b2lkIGd1aV9tY2hfc2V0X3dpbnBvcyBfX0FSR1MoKGludCB4LCBpbnQgeSkpOwotdm9pZCBndWlfbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtaW5fd2lkdGgsIGludCBtaW5faGVpZ2h0LCBpbnQgYmFzZV93aWR0aCwgaW50IGJhc2VfaGVpZ2h0KSk7Ci12b2lkIGd1aV9tY2hfZ2V0X3NjcmVlbl9kaW1lbnNpb25zIF9fQVJHUygoaW50ICpzY3JlZW5fdywgaW50ICpzY3JlZW5faCkpOwotdm9pZCBndWlfbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7Ci12b2lkIGd1aV9tY2hfZW5hYmxlX21lbnUgX19BUkdTKChpbnQgc2hvd2l0KSk7Ci12b2lkIGd1aV9tY2hfc2hvd190b29sYmFyIF9fQVJHUygoaW50IHNob3dpdCkpOwotaW50IGd1aV9tY2hfYWRqdXN0X2NoYXJoZWlnaHQgX19BUkdTKCh2b2lkKSk7Ci1HdWlGb250c2V0IGd1aV9tY2hfZ2V0X2ZvbnRzZXQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCByZXBvcnRfZXJyb3IsIGludCBmaXhlZF93aWR0aCkpOwotY2hhcl91ICpndWlfbWNoX2ZvbnRfZGlhbG9nIF9fQVJHUygoY2hhcl91ICpvbGR2YWwpKTsKLWludCBndWlfbWNoX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lLCBpbnQgZm9udHNldCkpOwotR3VpRm9udCBndWlfbWNoX2dldF9mb250IF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgcmVwb3J0X2Vycm9yKSk7Ci1jaGFyX3UgKmd1aV9tY2hfZ2V0X2ZvbnRuYW1lIF9fQVJHUygoR3VpRm9udCBmb250LCBjaGFyX3UgKm5hbWUpKTsKLXZvaWQgZ3VpX21jaF9zZXRfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOwotdm9pZCBndWlfbWNoX3NldF9mb250c2V0IF9fQVJHUygoR3VpRm9udHNldCBmb250c2V0KSk7Ci12b2lkIGd1aV9tY2hfZnJlZV9mb250IF9fQVJHUygoR3VpRm9udCBmb250KSk7Ci12b2lkIGd1aV9tY2hfZnJlZV9mb250c2V0IF9fQVJHUygoR3VpRm9udHNldCBmb250c2V0KSk7Ci1ndWljb2xvcl9UIGd1aV9tY2hfZ2V0X2NvbG9yIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGd1aV9tY2hfc2V0X2ZnX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX3NldF9iZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc3BfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7Ci1pbnQgZ3VpX2d0azJfZHJhd19zdHJpbmcgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBjaGFyX3UgKnMsIGludCBsZW4sIGludCBmbGFncykpOwotdm9pZCBndWlfbWNoX2RyYXdfc3RyaW5nIF9fQVJHUygoaW50IHJvdywgaW50IGNvbCwgY2hhcl91ICpzLCBpbnQgbGVuLCBpbnQgZmxhZ3MpKTsKLWludCBndWlfbWNoX2hhc2tleSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IGd1aV9nZXRfeDExX3dpbmRpcyBfX0FSR1MoKFdpbmRvdyAqd2luLCBEaXNwbGF5ICoqZGlzKSk7Ci1EaXNwbGF5ICpndWlfbWNoX2dldF9kaXNwbGF5IF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2JlZXAgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZmxhc2ggX19BUkdTKChpbnQgbXNlYykpOwotdm9pZCBndWlfbWNoX2ludmVydF9yZWN0YW5nbGUgX19BUkdTKChpbnQgciwgaW50IGMsIGludCBuciwgaW50IG5jKSk7Ci12b2lkIGd1aV9tY2hfaWNvbmlmeSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfZm9yZWdyb3VuZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9kcmF3X2hvbGxvd19jdXJzb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19wYXJ0X2N1cnNvciBfX0FSR1MoKGludCB3LCBpbnQgaCwgZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX3VwZGF0ZSBfX0FSR1MoKHZvaWQpKTsKLWludCBndWlfbWNoX3dhaXRfZm9yX2NoYXJzIF9fQVJHUygobG9uZyB3dGltZSkpOwotdm9pZCBndWlfbWNoX2ZsdXNoIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKLXZvaWQgZ3VpX21jaF9jbGVhcl9hbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZGVsZXRlX2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOwotdm9pZCBndWlfbWNoX2luc2VydF9saW5lcyBfX0FSR1MoKGludCByb3csIGludCBudW1fbGluZXMpKTsKLXZvaWQgY2xpcF9tY2hfcmVxdWVzdF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOwotdm9pZCBjbGlwX21jaF9sb3NlX3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7Ci1pbnQgY2xpcF9tY2hfb3duX3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7Ci12b2lkIGNsaXBfbWNoX3NldF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOwotdm9pZCBndWlfbWNoX21lbnVfZ3JleSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGdyZXkpKTsKLXZvaWQgZ3VpX21jaF9tZW51X2hpZGRlbiBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGhpZGRlbikpOwotdm9pZCBndWlfbWNoX2RyYXdfbWVudWJhciBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9lbmFibGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgZmxhZykpOwotbG9uZ191IGd1aV9tY2hfZ2V0X3JnYiBfX0FSR1MoKGd1aWNvbG9yX1QgcGl4ZWwpKTsKLXZvaWQgZ3VpX21jaF9nZXRtb3VzZSBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7Ci12b2lkIGd1aV9tY2hfc2V0bW91c2UgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKLXZvaWQgZ3VpX21jaF9tb3VzZWhpZGUgX19BUkdTKChpbnQgaGlkZSkpOwotdm9pZCBtY2hfc2V0X21vdXNlX3NoYXBlIF9fQVJHUygoaW50IHNoYXBlKSk7Ci12b2lkIGd1aV9tY2hfZHJhd3NpZ24gX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBpbnQgdHlwZW5yKSk7Ci12b2lkICpndWlfbWNoX3JlZ2lzdGVyX3NpZ24gX19BUkdTKChjaGFyX3UgKnNpZ25maWxlKSk7Ci12b2lkIGd1aV9tY2hfZGVzdHJveV9zaWduIF9fQVJHUygodm9pZCAqc2lnbikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9wcmVwYXJlIF9fQVJHUygoaW50ICphcmdjLCBjaGFyICoqYXJndikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mcmVlX2FsbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2JsaW5raW5nIF9fQVJHUygobG9uZyB3YWl0dGltZSwgbG9uZyBvbiwgbG9uZyBvZmYpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc3RvcF9ibGluayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc3RhcnRfYmxpbmsgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9tY2hfaW5pdF9jaGVjayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2hvd190YWJsaW5lIF9fQVJHUygoaW50IHNob3dpdCkpOworZXh0ZXJuIGludCBndWlfbWNoX3Nob3dpbmdfdGFibGluZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfdXBkYXRlX3RhYmxpbmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9jdXJ0YWIgX19BUkdTKChpbnQgbnIpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mb3JrZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX25ld19jb2xvcnMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9tY2hfb3BlbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZXhpdCBfX0FSR1MoKGludCByYykpOworZXh0ZXJuIGludCBndWlfbWNoX2dldF93aW5wb3MgX19BUkdTKChpbnQgKngsIGludCAqeSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtaW5fd2lkdGgsIGludCBtaW5faGVpZ2h0LCBpbnQgYmFzZV93aWR0aCwgaW50IGJhc2VfaGVpZ2h0KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2dldF9zY3JlZW5fZGltZW5zaW9ucyBfX0FSR1MoKGludCAqc2NyZWVuX3csIGludCAqc2NyZWVuX2gpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZW5hYmxlX21lbnUgX19BUkdTKChpbnQgc2hvd2l0KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3Nob3dfdG9vbGJhciBfX0FSR1MoKGludCBzaG93aXQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9hZGp1c3RfY2hhcmhlaWdodCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBHdWlGb250c2V0IGd1aV9tY2hfZ2V0X2ZvbnRzZXQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCByZXBvcnRfZXJyb3IsIGludCBmaXhlZF93aWR0aCkpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9mb250X2RpYWxvZyBfX0FSR1MoKGNoYXJfdSAqb2xkdmFsKSk7CitleHRlcm4gaW50IGd1aV9tY2hfaW5pdF9mb250IF9fQVJHUygoY2hhcl91ICpmb250X25hbWUsIGludCBmb250c2V0KSk7CitleHRlcm4gR3VpRm9udCBndWlfbWNoX2dldF9mb250IF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgcmVwb3J0X2Vycm9yKSk7CitleHRlcm4gY2hhcl91ICpndWlfbWNoX2dldF9mb250bmFtZSBfX0FSR1MoKEd1aUZvbnQgZm9udCwgY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9mb250IF9fQVJHUygoR3VpRm9udCBmb250KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9mb250c2V0IF9fQVJHUygoR3VpRm9udHNldCBmb250c2V0KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZyZWVfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mcmVlX2ZvbnRzZXQgX19BUkdTKChHdWlGb250c2V0IGZvbnRzZXQpKTsKK2V4dGVybiBndWljb2xvcl9UIGd1aV9tY2hfZ2V0X2NvbG9yIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9mZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2JnX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc3BfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gaW50IGd1aV9ndGsyX2RyYXdfc3RyaW5nIF9fQVJHUygoaW50IHJvdywgaW50IGNvbCwgY2hhcl91ICpzLCBpbnQgbGVuLCBpbnQgZmxhZ3MpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19zdHJpbmcgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBjaGFyX3UgKnMsIGludCBsZW4sIGludCBmbGFncykpOworZXh0ZXJuIGludCBndWlfbWNoX2hhc2tleSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBndWlfZ2V0X3gxMV93aW5kaXMgX19BUkdTKChXaW5kb3cgKndpbiwgRGlzcGxheSAqKmRpcykpOworZXh0ZXJuIERpc3BsYXkgKmd1aV9tY2hfZ2V0X2Rpc3BsYXkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2JlZXAgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZsYXNoIF9fQVJHUygoaW50IG1zZWMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfaW52ZXJ0X3JlY3RhbmdsZSBfX0FSR1MoKGludCByLCBpbnQgYywgaW50IG5yLCBpbnQgbmMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfaWNvbmlmeSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2ZvcmVncm91bmQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfaG9sbG93X2N1cnNvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19wYXJ0X2N1cnNvciBfX0FSR1MoKGludCB3LCBpbnQgaCwgZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF91cGRhdGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9tY2hfd2FpdF9mb3JfY2hhcnMgX19BUkdTKChsb25nIHd0aW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZsdXNoIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9jbGVhcl9ibG9jayBfX0FSR1MoKGludCByb3cxLCBpbnQgY29sMSwgaW50IHJvdzIsIGludCBjb2wyKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NsZWFyX2FsbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVsZXRlX2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9pbnNlcnRfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7CitleHRlcm4gdm9pZCBjbGlwX21jaF9yZXF1ZXN0X3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gdm9pZCBjbGlwX21jaF9sb3NlX3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gaW50IGNsaXBfbWNoX293bl9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHZvaWQgY2xpcF9tY2hfc2V0X3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfZ3JleSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGdyZXkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbWVudV9oaWRkZW4gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBoaWRkZW4pKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19tZW51YmFyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9lbmFibGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgZmxhZykpOworZXh0ZXJuIGxvbmdfdSBndWlfbWNoX2dldF9yZ2IgX19BUkdTKChndWljb2xvcl9UIHBpeGVsKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2dldG1vdXNlIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0bW91c2UgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbW91c2VoaWRlIF9fQVJHUygoaW50IGhpZGUpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRfbW91c2Vfc2hhcGUgX19BUkdTKChpbnQgc2hhcGUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd3NpZ24gX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBpbnQgdHlwZW5yKSk7CitleHRlcm4gdm9pZCAqZ3VpX21jaF9yZWdpc3Rlcl9zaWduIF9fQVJHUygoY2hhcl91ICpzaWduZmlsZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X3NpZ24gX19BUkdTKCh2b2lkICpzaWduKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9ndWlfcGhvdG9uLnBybyBiL3NyYy9wcm90by9ndWlfcGhvdG9uLnBybwppbmRleCAwOThjZGM3Li4wZmZiYWFhIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vZ3VpX3Bob3Rvbi5wcm8KKysrIGIvc3JjL3Byb3RvL2d1aV9waG90b24ucHJvCkBAIC0xLDY3ICsxLDY3IEBACiAvKiBndWlfcGhvdG9uLmMgKi8KLXZvaWQgZ3VpX3BoX2VuY29kaW5nX2NoYW5nZWQgX19BUkdTKChpbnQgbmV3X2VuY29kaW5nKSk7Ci12b2lkIGd1aV9tY2hfcHJlcGFyZSBfX0FSR1MoKGludCAqYXJnYywgY2hhciAqKmFyZ3YpKTsKLWludCBndWlfbWNoX2luaXQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX21jaF9pbml0X2NoZWNrIF9fQVJHUygodm9pZCkpOwotaW50IGd1aV9tY2hfb3BlbiBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9leGl0IF9fQVJHUygoaW50IHJjKSk7Ci12b2lkIGd1aV9tY2hfdXBkYXRlIF9fQVJHUygodm9pZCkpOwotaW50IGd1aV9tY2hfd2FpdF9mb3JfY2hhcnMgX19BUkdTKChpbnQgd3RpbWUpKTsKLWNoYXJfdSAqZ3VpX21jaF9icm93c2UgX19BUkdTKChpbnQgc2F2aW5nLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmRlZmF1bHRfbmFtZSwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKLWludCBndWlfbWNoX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRlZmF1bHRfYnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOwotaW50IGd1aV9tY2hfZ2V0X3dpbnBvcyBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7Ci12b2lkIGd1aV9tY2hfc2V0X3dpbnBvcyBfX0FSR1MoKGludCB4LCBpbnQgeSkpOwotdm9pZCBndWlfbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtaW5fd2lkdGgsIGludCBtaW5faGVpZ2h0LCBpbnQgYmFzZV93aWR0aCwgaW50IGJhc2VfaGVpZ2h0KSk7Ci12b2lkIGd1aV9tY2hfZ2V0X3NjcmVlbl9kaW1lbnNpb25zIF9fQVJHUygoaW50ICpzY3JlZW5fdywgaW50ICpzY3JlZW5faCkpOwotdm9pZCBndWlfbWNoX2ljb25pZnkgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0X2ZvcmVncm91bmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKLXZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgdmFsLCBpbnQgc2l6ZSwgaW50IG1heCkpOwotdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfcG9zIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKLXZvaWQgZ3VpX21jaF9lbmFibGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgZmxhZykpOwotdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7Ci12b2lkIG1jaF9zZXRfbW91c2Vfc2hhcGUgX19BUkdTKChpbnQgc2hhcGUpKTsKLXZvaWQgZ3VpX21jaF9tb3VzZWhpZGUgX19BUkdTKChpbnQgaGlkZSkpOwotdm9pZCBndWlfbWNoX2dldG1vdXNlIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKLXZvaWQgZ3VpX21jaF9zZXRtb3VzZSBfX0FSR1MoKGludCB4LCBpbnQgeSkpOwotbG9uZ191IGd1aV9tY2hfZ2V0X3JnYiBfX0FSR1MoKGd1aWNvbG9yX1QgcGl4ZWwpKTsKLXZvaWQgZ3VpX21jaF9uZXdfY29sb3JzIF9fQVJHUygodm9pZCkpOwotZ3VpY29sb3JfVCBndWlfbWNoX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotdm9pZCBndWlfbWNoX3NldF9mZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF9zZXRfYmdfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3NwX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX2ludmVydF9yZWN0YW5nbGUgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBpbnQgbnIsIGludCBuYykpOwotdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKLXZvaWQgZ3VpX21jaF9jbGVhcl9hbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZGVsZXRlX2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOwotdm9pZCBndWlfbWNoX2luc2VydF9saW5lcyBfX0FSR1MoKGludCByb3csIGludCBudW1fbGluZXMpKTsKLXZvaWQgZ3VpX21jaF9kcmF3X3N0cmluZyBfX0FSR1MoKGludCByb3csIGludCBjb2wsIGNoYXJfdSAqcywgaW50IGxlbiwgaW50IGZsYWdzKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19ob2xsb3dfY3Vyc29yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX2RyYXdfcGFydF9jdXJzb3IgX19BUkdTKChpbnQgdywgaW50IGgsIGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF9zZXRfYmxpbmtpbmcgX19BUkdTKChsb25nIHdhaXQsIGxvbmcgb24sIGxvbmcgb2ZmKSk7Ci12b2lkIGd1aV9tY2hfc3RhcnRfYmxpbmsgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc3RvcF9ibGluayBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9iZWVwIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2ZsYXNoIF9fQVJHUygoaW50IG1zZWMpKTsKLXZvaWQgZ3VpX21jaF9mbHVzaCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfdGV4dF9hcmVhX3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci1pbnQgZ3VpX21jaF9oYXNrZXkgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgZ3VpX21jaF9lbmFibGVfbWVudSBfX0FSR1MoKGludCBmbGFnKSk7Ci12b2lkIGd1aV9tY2hfc2V0X21lbnVfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKLXZvaWQgZ3VpX21jaF9hZGRfbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGluZGV4KSk7Ci12b2lkIGd1aV9tY2hfYWRkX21lbnVfaXRlbSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGluZGV4KSk7Ci12b2lkIGd1aV9tY2hfZGVzdHJveV9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51KSk7Ci12b2lkIGd1aV9tY2hfbWVudV9ncmV5IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgZ3JleSkpOwotdm9pZCBndWlfbWNoX21lbnVfaGlkZGVuIF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaGlkZGVuKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19tZW51YmFyIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX3Nob3dfcG9wdXBtZW51IF9fQVJHUygodmltbWVudV9UICptZW51KSk7Ci12b2lkIGd1aV9tY2hfdG9nZ2xlX3RlYXJvZmZzIF9fQVJHUygoaW50IGVuYWJsZSkpOwotdm9pZCBndWlfbWNoX3Nob3dfdG9vbGJhciBfX0FSR1MoKGludCBzaG93aXQpKTsKLWludCBndWlfbWNoX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqdmltX2ZvbnRfbmFtZSwgaW50IGZvbnRzZXQpKTsKLWludCBndWlfbWNoX2FkanVzdF9jaGFyaGVpZ2h0IF9fQVJHUygodm9pZCkpOwotR3VpRm9udCBndWlfbWNoX2dldF9mb250IF9fQVJHUygoY2hhcl91ICp2aW1fZm9udF9uYW1lLCBpbnQgcmVwb3J0X2Vycm9yKSk7Ci1jaGFyX3UgKmd1aV9tY2hfZ2V0X2ZvbnRuYW1lIF9fQVJHUygoR3VpRm9udCBmb250LCBjaGFyX3UgKm5hbWUpKTsKLXZvaWQgZ3VpX21jaF9zZXRfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOwotdm9pZCBndWlfbWNoX2ZyZWVfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOworZXh0ZXJuIHZvaWQgZ3VpX3BoX2VuY29kaW5nX2NoYW5nZWQgX19BUkdTKChpbnQgbmV3X2VuY29kaW5nKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3ByZXBhcmUgX19BUkdTKChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2KSk7CitleHRlcm4gaW50IGd1aV9tY2hfaW5pdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9pbml0X2NoZWNrIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfbWNoX29wZW4gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2V4aXQgX19BUkdTKChpbnQgcmMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfdXBkYXRlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfbWNoX3dhaXRfZm9yX2NoYXJzIF9fQVJHUygoaW50IHd0aW1lKSk7CitleHRlcm4gY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGVmYXVsdF9uYW1lLCBjaGFyX3UgKmV4dCwgY2hhcl91ICppbml0ZGlyLCBjaGFyX3UgKmZpbHRlcikpOworZXh0ZXJuIGludCBndWlfbWNoX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRlZmF1bHRfYnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOworZXh0ZXJuIGludCBndWlfbWNoX2dldF93aW5wb3MgX19BUkdTKChpbnQgKngsIGludCAqeSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBtaW5fd2lkdGgsIGludCBtaW5faGVpZ2h0LCBpbnQgYmFzZV93aWR0aCwgaW50IGJhc2VfaGVpZ2h0KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2dldF9zY3JlZW5fZGltZW5zaW9ucyBfX0FSR1MoKGludCAqc2NyZWVuX3csIGludCAqc2NyZWVuX2gpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfaWNvbmlmeSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2ZvcmVncm91bmQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfdGh1bWIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB2YWwsIGludCBzaXplLCBpbnQgbWF4KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfcG9zIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9jcmVhdGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgb3JpZW50KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2VuYWJsZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBmbGFnKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X21vdXNlX3NoYXBlIF9fQVJHUygoaW50IHNoYXBlKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21vdXNlaGlkZSBfX0FSR1MoKGludCBoaWRlKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2dldG1vdXNlIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0bW91c2UgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKK2V4dGVybiBsb25nX3UgZ3VpX21jaF9nZXRfcmdiIF9fQVJHUygoZ3VpY29sb3JfVCBwaXhlbCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9uZXdfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGd1aWNvbG9yX1QgZ3VpX21jaF9nZXRfY29sb3IgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2ZnX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfYmdfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9zcF9jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfaW52ZXJ0X3JlY3RhbmdsZSBfX0FSR1MoKGludCByb3csIGludCBjb2wsIGludCBuciwgaW50IG5jKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfY2xlYXJfYWxsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZWxldGVfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2luc2VydF9saW5lcyBfX0FSR1MoKGludCByb3csIGludCBudW1fbGluZXMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19zdHJpbmcgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBjaGFyX3UgKnMsIGludCBsZW4sIGludCBmbGFncykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kcmF3X2hvbGxvd19jdXJzb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfcGFydF9jdXJzb3IgX19BUkdTKChpbnQgdywgaW50IGgsIGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X2JsaW5raW5nIF9fQVJHUygobG9uZyB3YWl0LCBsb25nIG9uLCBsb25nIG9mZikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zdGFydF9ibGluayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc3RvcF9ibGluayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfYmVlcCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZmxhc2ggX19BUkdTKChpbnQgbXNlYykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mbHVzaCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOworZXh0ZXJuIGludCBndWlfbWNoX2hhc2tleSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9lbmFibGVfbWVudSBfX0FSR1MoKGludCBmbGFnKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9tZW51X3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaW5kZXgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfYWRkX21lbnVfaXRlbSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGluZGV4KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2Rlc3Ryb3lfbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9tZW51X2dyZXkgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBncmV5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfaGlkZGVuIF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaGlkZGVuKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfbWVudWJhciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2hvd19wb3B1cG1lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfdG9nZ2xlX3RlYXJvZmZzIF9fQVJHUygoaW50IGVuYWJsZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zaG93X3Rvb2xiYXIgX19BUkdTKChpbnQgc2hvd2l0KSk7CitleHRlcm4gaW50IGd1aV9tY2hfaW5pdF9mb250IF9fQVJHUygoY2hhcl91ICp2aW1fZm9udF9uYW1lLCBpbnQgZm9udHNldCkpOworZXh0ZXJuIGludCBndWlfbWNoX2FkanVzdF9jaGFyaGVpZ2h0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIEd1aUZvbnQgZ3VpX21jaF9nZXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqdmltX2ZvbnRfbmFtZSwgaW50IHJlcG9ydF9lcnJvcikpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9nZXRfZm9udG5hbWUgX19BUkdTKChHdWlGb250IGZvbnQsIGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mcmVlX2ZvbnQgX19BUkdTKChHdWlGb250IGZvbnQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aV93MTYucHJvIGIvc3JjL3Byb3RvL2d1aV93MTYucHJvCmluZGV4IDI1NGE2OGYuLjRjYTNkZWQgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ndWlfdzE2LnBybworKysgYi9zcmMvcHJvdG8vZ3VpX3cxNi5wcm8KQEAgLTEsNzUgKzEsNzUgQEAKIC8qIGd1aV93MTYuYyAqLwotdm9pZCBndWlfbWNoX3NldF9ibGlua2luZyBfX0FSR1MoKGxvbmcgd2FpdCwgbG9uZyBvbiwgbG9uZyBvZmYpKTsKLXZvaWQgZ3VpX21jaF9zdG9wX2JsaW5rIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX3N0YXJ0X2JsaW5rIF9fQVJHUygodm9pZCkpOwotTFJFU1VMVCBXSU5BUEkgdmltX1dpbmRvd1Byb2MgX19BUkdTKChIV05EIGh3bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkpOwotdm9pZCBndWlfbWNoX25ld19jb2xvcnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZGVmX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLWludCBndWlfbWNoX29wZW4gX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX21jaF9nZXRfd2lucG9zIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKLXZvaWQgZ3VpX21jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfbWNoX2VuYWJsZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBmbGFnKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9wb3MgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci12b2lkIGd1aV9tY2hfY3JlYXRlX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IG9yaWVudCkpOwotaW50IGd1aV9tY2hfYWRqdXN0X2NoYXJoZWlnaHQgX19BUkdTKCh2b2lkKSk7Ci1HdWlGb250IGd1aV9tY2hfZ2V0X2ZvbnQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBnaXZlRXJyb3JJZk1pc3NpbmcpKTsKLWNoYXJfdSAqZ3VpX21jaF9nZXRfZm9udG5hbWUgX19BUkdTKChHdWlGb250IGZvbnQsIGNoYXJfdSAqbmFtZSkpOwotdm9pZCBndWlfbWNoX2ZyZWVfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOwotZ3VpY29sb3JfVCBndWlfbWNoX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IGd1aV9tY2hfaGFza2V5IF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGd1aV9tY2hfYmVlcCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9pbnZlcnRfcmVjdGFuZ2xlIF9fQVJHUygoaW50IHIsIGludCBjLCBpbnQgbnIsIGludCBuYykpOwotdm9pZCBndWlfbWNoX2ljb25pZnkgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19ob2xsb3dfY3Vyc29yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX2RyYXdfcGFydF9jdXJzb3IgX19BUkdTKChpbnQgdywgaW50IGgsIGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF91cGRhdGUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX21jaF93YWl0X2Zvcl9jaGFycyBfX0FSR1MoKGludCB3dGltZSkpOwotdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKLXZvaWQgZ3VpX21jaF9jbGVhcl9hbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZW5hYmxlX21lbnUgX19BUkdTKChpbnQgZmxhZykpOwotdm9pZCBndWlfbWNoX3NldF9tZW51X3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci12b2lkIGd1aV9tY2hfbWVudV9oaWRkZW4gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBoaWRkZW4pKTsKLXZvaWQgZ3VpX21jaF9kcmF3X21lbnViYXIgX19BUkdTKCh2b2lkKSk7Ci1sb25nX3UgZ3VpX21jaF9nZXRfcmdiIF9fQVJHUygoZ3VpY29sb3JfVCBwaXhlbCkpOwotdm9pZCBndWlfbWNoX2FjdGl2YXRlX3dpbmRvdyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zaG93X3Rvb2xiYXIgX19BUkdTKChpbnQgc2hvd2l0KSk7Ci12b2lkIGV4X3NpbWFsdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBndWlfbWNoX2ZpbmRfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGd1aV9tY2hfcmVwbGFjZV9kaWFsb2cgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZ3VpX21jaF9tb3VzZWhpZGUgX19BUkdTKChpbnQgaGlkZSkpOwotdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7Ci12b2lkIGd1aV9tY2hfZ2V0bW91c2UgX19BUkdTKChpbnQgKngsIGludCAqeSkpOwotdm9pZCBndWlfbWNoX3NldG1vdXNlIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIGd1aV9tY2hfZ2V0X3NjcmVlbl9kaW1lbnNpb25zIF9fQVJHUygoaW50ICpzY3JlZW5fdywgaW50ICpzY3JlZW5faCkpOwotdm9pZCBndWlfbWNoX2ZsYXNoIF9fQVJHUygoaW50IG1zZWMpKTsKLXZvaWQgZ3VpX21jaF9kZWxldGVfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7Ci12b2lkIGd1aV9tY2hfaW5zZXJ0X2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOwotdm9pZCBndWlfbWNoX2V4aXQgX19BUkdTKChpbnQgcmMpKTsKLWludCBndWlfbWNoX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lLCBpbnQgZm9udHNldCkpOwotaW50IGd1aV9tY2hfbWF4aW1pemVkIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX25ld2ZvbnQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKLXZvaWQgbWNoX3NldF9tb3VzZV9zaGFwZSBfX0FSR1MoKGludCBzaGFwZSkpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZWRpciBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaW5pdGRpcikpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGZsdCwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKLWludCBnZXRfY21kX2FyZ3MgX19BUkdTKChjaGFyICpwcm9nLCBjaGFyICpjbWRsaW5lLCBjaGFyICoqKmFyZ3ZwLCBjaGFyICoqdG9mcmVlKSk7Ci12b2lkIGd1aV9tY2hfcHJlcGFyZSBfX0FSR1MoKGludCAqYXJnYywgY2hhciAqKmFyZ3YpKTsKLWludCBndWlfbWNoX2luaXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1pbl93aWR0aCwgaW50IG1pbl9oZWlnaHQsIGludCBiYXNlX3dpZHRoLCBpbnQgYmFzZV9oZWlnaHQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBsb25nIHZhbCwgbG9uZyBzaXplLCBsb25nIG1heCkpOwotdm9pZCBndWlfbWNoX3NldF9mb250IF9fQVJHUygoR3VpRm9udCBmb250KSk7Ci12b2lkIGd1aV9tY2hfc2V0X2ZnX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX3NldF9iZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc3BfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19zdHJpbmcgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBjaGFyX3UgKnRleHQsIGludCBsZW4sIGludCBmbGFncykpOwotdm9pZCBndWlfbWNoX2ZsdXNoIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgcG9zKSk7Ci12b2lkIGd1aV9tY2hfc2hvd19wb3B1cG1lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21ha2VfcG9wdXAgX19BUkdTKChjaGFyX3UgKnBhdGhfbmFtZSwgaW50IG1vdXNlX3BvcykpOwotdm9pZCBndWlfbWNoX2FkZF9tZW51X2l0ZW0gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21jaF9tZW51X2dyZXkgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBncmV5KSk7Ci1pbnQgZ3VpX21jaF9kaWFsb2cgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBjaGFyX3UgKmJ1dHRvbnMsIGludCBkZmx0YnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOwotdm9pZCBndWlfbWNoX3NldF9mb3JlZ3JvdW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfYmxpbmtpbmcgX19BUkdTKChsb25nIHdhaXQsIGxvbmcgb24sIGxvbmcgb2ZmKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3N0b3BfYmxpbmsgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3N0YXJ0X2JsaW5rIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIExSRVNVTFQgV0lOQVBJIHZpbV9XaW5kb3dQcm9jIF9fQVJHUygoSFdORCBod25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3X2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVmX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9vcGVuIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfbWNoX2dldF93aW5wb3MgX19BUkdTKChpbnQgKngsIGludCAqeSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF90ZXh0X2FyZWFfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZW5hYmxlX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IGZsYWcpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9wb3MgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NyZWF0ZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBvcmllbnQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9hZGp1c3RfY2hhcmhlaWdodCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBHdWlGb250IGd1aV9tY2hfZ2V0X2ZvbnQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBnaXZlRXJyb3JJZk1pc3NpbmcpKTsKK2V4dGVybiBjaGFyX3UgKmd1aV9tY2hfZ2V0X2ZvbnRuYW1lIF9fQVJHUygoR3VpRm9udCBmb250LCBjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZnJlZV9mb250IF9fQVJHUygoR3VpRm9udCBmb250KSk7CitleHRlcm4gZ3VpY29sb3JfVCBndWlfbWNoX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBndWlfbWNoX2hhc2tleSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9iZWVwIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9pbnZlcnRfcmVjdGFuZ2xlIF9fQVJHUygoaW50IHIsIGludCBjLCBpbnQgbnIsIGludCBuYykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9pY29uaWZ5IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kcmF3X2hvbGxvd19jdXJzb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfcGFydF9jdXJzb3IgX19BUkdTKChpbnQgdywgaW50IGgsIGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfdXBkYXRlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfbWNoX3dhaXRfZm9yX2NoYXJzIF9fQVJHUygoaW50IHd0aW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfY2xlYXJfYWxsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9lbmFibGVfbWVudSBfX0FSR1MoKGludCBmbGFnKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9tZW51X3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfaGlkZGVuIF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgaGlkZGVuKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfbWVudWJhciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBsb25nX3UgZ3VpX21jaF9nZXRfcmdiIF9fQVJHUygoZ3VpY29sb3JfVCBwaXhlbCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9hY3RpdmF0ZV93aW5kb3cgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3Nob3dfdG9vbGJhciBfX0FSR1MoKGludCBzaG93aXQpKTsKK2V4dGVybiB2b2lkIGV4X3NpbWFsdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9maW5kX2RpYWxvZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9yZXBsYWNlX2RpYWxvZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9tb3VzZWhpZGUgX19BUkdTKChpbnQgaGlkZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9nZXRtb3VzZSBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldG1vdXNlIF9fQVJHUygoaW50IHgsIGludCB5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZsYXNoIF9fQVJHUygoaW50IG1zZWMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVsZXRlX2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9pbnNlcnRfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2V4aXQgX19BUkdTKChpbnQgcmMpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9pbml0X2ZvbnQgX19BUkdTKChjaGFyX3UgKmZvbnRfbmFtZSwgaW50IGZvbnRzZXQpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9tYXhpbWl6ZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX25ld2ZvbnQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X21vdXNlX3NoYXBlIF9fQVJHUygoaW50IHNoYXBlKSk7CitleHRlcm4gY2hhcl91ICpndWlfbWNoX2Jyb3dzZWRpciBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaW5pdGRpcikpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9icm93c2UgX19BUkdTKChpbnQgc2F2aW5nLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmRmbHQsIGNoYXJfdSAqZXh0LCBjaGFyX3UgKmluaXRkaXIsIGNoYXJfdSAqZmlsdGVyKSk7CitleHRlcm4gaW50IGdldF9jbWRfYXJncyBfX0FSR1MoKGNoYXIgKnByb2csIGNoYXIgKmNtZGxpbmUsIGNoYXIgKioqYXJndnAsIGNoYXIgKip0b2ZyZWUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfcHJlcGFyZSBfX0FSR1MoKGludCAqYXJnYywgY2hhciAqKmFyZ3YpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWluX3dpZHRoLCBpbnQgbWluX2hlaWdodCwgaW50IGJhc2Vfd2lkdGgsIGludCBiYXNlX2hlaWdodCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBsb25nIHZhbCwgbG9uZyBzaXplLCBsb25nIG1heCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZmdfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9iZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3NwX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kcmF3X3N0cmluZyBfX0FSR1MoKGludCByb3csIGludCBjb2wsIGNoYXJfdSAqdGV4dCwgaW50IGxlbiwgaW50IGZsYWdzKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZsdXNoIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9nZXRfc2NyZWVuX2RpbWVuc2lvbnMgX19BUkdTKChpbnQgKnNjcmVlbl93LCBpbnQgKnNjcmVlbl9oKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51LCBpbnQgcG9zKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3Nob3dfcG9wdXBtZW51IF9fQVJHUygodmltbWVudV9UICptZW51KSk7CitleHRlcm4gdm9pZCBndWlfbWFrZV9wb3B1cCBfX0FSR1MoKGNoYXJfdSAqcGF0aF9uYW1lLCBpbnQgbW91c2VfcG9zKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51X2l0ZW0gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVzdHJveV9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfZ3JleSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGdyZXkpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9kaWFsb2cgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBjaGFyX3UgKmJ1dHRvbnMsIGludCBkZmx0YnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZm9yZWdyb3VuZCBfX0FSR1MoKHZvaWQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aV93MzIucHJvIGIvc3JjL3Byb3RvL2d1aV93MzIucHJvCmluZGV4IDMxZjQ0YWEuLjllNDExNTYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ndWlfdzMyLnBybworKysgYi9zcmMvcHJvdG8vZ3VpX3czMi5wcm8KQEAgLTEsOTIgKzEsOTIgQEAKIC8qIGd1aV93MzIuYyAqLwotdm9pZCBndWlfbWNoX3NldF9ibGlua2luZyBfX0FSR1MoKGxvbmcgd2FpdCwgbG9uZyBvbiwgbG9uZyBvZmYpKTsKLXZvaWQgZ3VpX21jaF9zdG9wX2JsaW5rIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX3N0YXJ0X2JsaW5rIF9fQVJHUygodm9pZCkpOwotTFJFU1VMVCBXSU5BUEkgdmltX1dpbmRvd1Byb2MgX19BUkdTKChIV05EIGh3bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkpOwotdm9pZCBndWlfbWNoX25ld19jb2xvcnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZGVmX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLWludCBndWlfbWNoX29wZW4gX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX21jaF9nZXRfd2lucG9zIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKLXZvaWQgZ3VpX21jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOwotdm9pZCBndWlfbWNoX2VuYWJsZV9zY3JvbGxiYXIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCBmbGFnKSk7Ci12b2lkIGd1aV9tY2hfc2V0X3Njcm9sbGJhcl9wb3MgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci12b2lkIGd1aV9tY2hfY3JlYXRlX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IG9yaWVudCkpOwotaW50IGd1aV9tY2hfYWRqdXN0X2NoYXJoZWlnaHQgX19BUkdTKCh2b2lkKSk7Ci1HdWlGb250IGd1aV9tY2hfZ2V0X2ZvbnQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBnaXZlRXJyb3JJZk1pc3NpbmcpKTsKLWNoYXJfdSAqZ3VpX21jaF9nZXRfZm9udG5hbWUgX19BUkdTKChHdWlGb250IGZvbnQsIGNoYXJfdSAqbmFtZSkpOwotdm9pZCBndWlfbWNoX2ZyZWVfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOwotZ3VpY29sb3JfVCBndWlfbWNoX2dldF9jb2xvciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IGd1aV9tY2hfaGFza2V5IF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGd1aV9tY2hfYmVlcCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9pbnZlcnRfcmVjdGFuZ2xlIF9fQVJHUygoaW50IHIsIGludCBjLCBpbnQgbnIsIGludCBuYykpOwotdm9pZCBndWlfbWNoX2ljb25pZnkgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZHJhd19ob2xsb3dfY3Vyc29yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX2RyYXdfcGFydF9jdXJzb3IgX19BUkdTKChpbnQgdywgaW50IGgsIGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgZ3VpX21jaF91cGRhdGUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZ3VpX21jaF93YWl0X2Zvcl9jaGFycyBfX0FSR1MoKGludCB3dGltZSkpOwotdm9pZCBndWlfbWNoX2NsZWFyX2Jsb2NrIF9fQVJHUygoaW50IHJvdzEsIGludCBjb2wxLCBpbnQgcm93MiwgaW50IGNvbDIpKTsKLXZvaWQgZ3VpX21jaF9jbGVhcl9hbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZW5hYmxlX21lbnUgX19BUkdTKChpbnQgZmxhZykpOwotdm9pZCBndWlfbWNoX3NldF9tZW51X3BvcyBfX0FSR1MoKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSk7Ci12b2lkIGd1aV9tY2hfbWVudV9oaWRkZW4gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBoaWRkZW4pKTsKLXZvaWQgZ3VpX21jaF9kcmF3X21lbnViYXIgX19BUkdTKCh2b2lkKSk7Ci1sb25nX3UgZ3VpX21jaF9nZXRfcmdiIF9fQVJHUygoZ3VpY29sb3JfVCBwaXhlbCkpOwotdm9pZCBndWlfbWNoX2FjdGl2YXRlX3dpbmRvdyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zaG93X3Rvb2xiYXIgX19BUkdTKChpbnQgc2hvd2l0KSk7Ci12b2lkIGV4X3NpbWFsdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBndWlfbWNoX2ZpbmRfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGd1aV9tY2hfcmVwbGFjZV9kaWFsb2cgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZ3VpX21jaF9tb3VzZWhpZGUgX19BUkdTKChpbnQgaGlkZSkpOwotdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7Ci12b2lkIGd1aV9tY2hfZ2V0bW91c2UgX19BUkdTKChpbnQgKngsIGludCAqeSkpOwotdm9pZCBndWlfbWNoX3NldG1vdXNlIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIGd1aV9tY2hfZ2V0X3NjcmVlbl9kaW1lbnNpb25zIF9fQVJHUygoaW50ICpzY3JlZW5fdywgaW50ICpzY3JlZW5faCkpOwotdm9pZCBndWlfbWNoX2ZsYXNoIF9fQVJHUygoaW50IG1zZWMpKTsKLXZvaWQgZ3VpX21jaF9kZWxldGVfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7Ci12b2lkIGd1aV9tY2hfaW5zZXJ0X2xpbmVzIF9fQVJHUygoaW50IHJvdywgaW50IG51bV9saW5lcykpOwotdm9pZCBndWlfbWNoX2V4aXQgX19BUkdTKChpbnQgcmMpKTsKLWludCBndWlfbWNoX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lLCBpbnQgZm9udHNldCkpOwotaW50IGd1aV9tY2hfbWF4aW1pemVkIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX25ld2ZvbnQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKLXZvaWQgbWNoX3NldF9tb3VzZV9zaGFwZSBfX0FSR1MoKGludCBzaGFwZSkpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZWRpciBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaW5pdGRpcikpOwotY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGZsdCwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKLWludCBnZXRfY21kX2FyZ3MgX19BUkdTKChjaGFyICpwcm9nLCBjaGFyICpjbWRsaW5lLCBjaGFyICoqKmFyZ3ZwLCBjaGFyICoqdG9mcmVlKSk7Ci1pbnQgZ3VpX2lzX3dpbjMycyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfcGFyZW50IF9fQVJHUygoY2hhciAqdGl0bGUpKTsKLXZvaWQgZ3VpX21jaF9wcmVwYXJlIF9fQVJHUygoaW50ICphcmdjLCBjaGFyICoqYXJndikpOwotaW50IGd1aV9tY2hfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWluX3dpZHRoLCBpbnQgbWluX2hlaWdodCwgaW50IGJhc2Vfd2lkdGgsIGludCBiYXNlX2hlaWdodCkpOwotdm9pZCBndWlfbWNoX3NldF9zY3JvbGxiYXJfdGh1bWIgX19BUkdTKChzY3JvbGxiYXJfVCAqc2IsIGxvbmcgdmFsLCBsb25nIHNpemUsIGxvbmcgbWF4KSk7Ci12b2lkIGd1aV9tY2hfc2V0X2ZvbnQgX19BUkdTKChHdWlGb250IGZvbnQpKTsKLXZvaWQgZ3VpX21jaF9zZXRfZmdfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7Ci12b2lkIGd1aV9tY2hfc2V0X2JnX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOwotdm9pZCBndWlfbWNoX3NldF9zcF9jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKLXZvaWQgaW1fc2V0X2ZvbnQgX19BUkdTKChMT0dGT05UICpsZikpOwotdm9pZCBpbV9zZXRfcG9zaXRpb24gX19BUkdTKChpbnQgcm93LCBpbnQgY29sKSk7Ci12b2lkIGltX3NldF9hY3RpdmUgX19BUkdTKChpbnQgYWN0aXZlKSk7Ci1pbnQgaW1fZ2V0X3N0YXR1cyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZ3VpX21jaF9kcmF3X3N0cmluZyBfX0FSR1MoKGludCByb3csIGludCBjb2wsIGNoYXJfdSAqdGV4dCwgaW50IGxlbiwgaW50IGZsYWdzKSk7Ci12b2lkIGd1aV9tY2hfZmx1c2ggX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfYWRkX21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBwb3MpKTsKLXZvaWQgZ3VpX21jaF9zaG93X3BvcHVwbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOwotdm9pZCBndWlfbWFrZV9wb3B1cCBfX0FSR1MoKGNoYXJfdSAqcGF0aF9uYW1lLCBpbnQgbW91c2VfcG9zKSk7Ci12b2lkIGd1aV9tYWtlX3RlYXJvZmYgX19BUkdTKChjaGFyX3UgKnBhdGhfbmFtZSkpOwotdm9pZCBndWlfbWNoX2FkZF9tZW51X2l0ZW0gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKLXZvaWQgZ3VpX21jaF9kZXN0cm95X21lbnUgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUpKTsKLXZvaWQgZ3VpX21jaF9tZW51X2dyZXkgX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBncmV5KSk7Ci1pbnQgZ3VpX21jaF9kaWFsb2cgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBjaGFyX3UgKmJ1dHRvbnMsIGludCBkZmx0YnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOwotdm9pZCBndWlfbWNoX3NldF9mb3JlZ3JvdW5kIF9fQVJHUygodm9pZCkpOwotdm9pZCBndWlfbWNoX2RyYXdzaWduIF9fQVJHUygoaW50IHJvdywgaW50IGNvbCwgaW50IHR5cGVucikpOwotdm9pZCAqZ3VpX21jaF9yZWdpc3Rlcl9zaWduIF9fQVJHUygoY2hhcl91ICpzaWduZmlsZSkpOwotdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2lnbiBfX0FSR1MoKHZvaWQgKnNpZ24pKTsKLWludCBtdWx0aWxpbmVfYmFsbG9vbl9hdmFpbGFibGUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGd1aV9tY2hfZGlzYWJsZV9iZXZhbF9hcmVhIF9fQVJHUygoQmFsbG9vbkV2YWwgKmJldmFsKSk7Ci12b2lkIGd1aV9tY2hfZW5hYmxlX2JldmFsX2FyZWEgX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwpKTsKLXZvaWQgZ3VpX21jaF9wb3N0X2JhbGxvb24gX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwsIGNoYXJfdSAqbWVzZykpOwotQmFsbG9vbkV2YWwgKmd1aV9tY2hfY3JlYXRlX2JldmFsX2FyZWEgX19BUkdTKCh2b2lkICp0YXJnZXQsIGNoYXJfdSAqbWVzZywgdm9pZCAoKm1lc2dDQikoQmFsbG9vbkV2YWwgKiwgaW50KSwgdm9pZCAqY2xpZW50RGF0YSkpOwotdm9pZCBndWlfbWNoX2Rlc3Ryb3lfYmV2YWxfYXJlYSBfX0FSR1MoKEJhbGxvb25FdmFsICpiZXZhbCkpOwotdm9pZCBuZXRiZWFuc19kcmF3X211bHRpc2lnbl9pbmRpY2F0b3IgX19BUkdTKChpbnQgcm93KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9ibGlua2luZyBfX0FSR1MoKGxvbmcgd2FpdCwgbG9uZyBvbiwgbG9uZyBvZmYpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc3RvcF9ibGluayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc3RhcnRfYmxpbmsgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gTFJFU1VMVCBXSU5BUEkgdmltX1dpbmRvd1Byb2MgX19BUkdTKChIV05EIGh3bmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9uZXdfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZWZfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBndWlfbWNoX29wZW4gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9tY2hfZ2V0X3dpbnBvcyBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF93aW5wb3MgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3RleHRfYXJlYV9wb3MgX19BUkdTKChpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9lbmFibGVfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBpbnQgZmxhZykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3BvcyBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfY3JlYXRlX3Njcm9sbGJhciBfX0FSR1MoKHNjcm9sbGJhcl9UICpzYiwgaW50IG9yaWVudCkpOworZXh0ZXJuIGludCBndWlfbWNoX2FkanVzdF9jaGFyaGVpZ2h0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIEd1aUZvbnQgZ3VpX21jaF9nZXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IGdpdmVFcnJvcklmTWlzc2luZykpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX21jaF9nZXRfZm9udG5hbWUgX19BUkdTKChHdWlGb250IGZvbnQsIGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mcmVlX2ZvbnQgX19BUkdTKChHdWlGb250IGZvbnQpKTsKK2V4dGVybiBndWljb2xvcl9UIGd1aV9tY2hfZ2V0X2NvbG9yIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IGd1aV9tY2hfaGFza2V5IF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2JlZXAgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ludmVydF9yZWN0YW5nbGUgX19BUkdTKChpbnQgciwgaW50IGMsIGludCBuciwgaW50IG5jKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ljb25pZnkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2RyYXdfaG9sbG93X2N1cnNvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19wYXJ0X2N1cnNvciBfX0FSR1MoKGludCB3LCBpbnQgaCwgZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF91cGRhdGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGd1aV9tY2hfd2FpdF9mb3JfY2hhcnMgX19BUkdTKChpbnQgd3RpbWUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfY2xlYXJfYmxvY2sgX19BUkdTKChpbnQgcm93MSwgaW50IGNvbDEsIGludCByb3cyLCBpbnQgY29sMikpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9jbGVhcl9hbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2VuYWJsZV9tZW51IF9fQVJHUygoaW50IGZsYWcpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X21lbnVfcG9zIF9fQVJHUygoaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbWVudV9oaWRkZW4gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBoaWRkZW4pKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19tZW51YmFyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGxvbmdfdSBndWlfbWNoX2dldF9yZ2IgX19BUkdTKChndWljb2xvcl9UIHBpeGVsKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FjdGl2YXRlX3dpbmRvdyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2hvd190b29sYmFyIF9fQVJHUygoaW50IHNob3dpdCkpOworZXh0ZXJuIHZvaWQgZXhfc2ltYWx0IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2ZpbmRfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3JlcGxhY2VfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21vdXNlaGlkZSBfX0FSR1MoKGludCBoaWRlKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2Nyb2xsYmFyIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2dldG1vdXNlIF9fQVJHUygoaW50ICp4LCBpbnQgKnkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0bW91c2UgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZmxhc2ggX19BUkdTKChpbnQgbXNlYykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZWxldGVfbGluZXMgX19BUkdTKChpbnQgcm93LCBpbnQgbnVtX2xpbmVzKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2luc2VydF9saW5lcyBfX0FSR1MoKGludCByb3csIGludCBudW1fbGluZXMpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZXhpdCBfX0FSR1MoKGludCByYykpOworZXh0ZXJuIGludCBndWlfbWNoX2luaXRfZm9udCBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lLCBpbnQgZm9udHNldCkpOworZXh0ZXJuIGludCBndWlfbWNoX21heGltaXplZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfbmV3Zm9udCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRfbW91c2Vfc2hhcGUgX19BUkdTKChpbnQgc2hhcGUpKTsKK2V4dGVybiBjaGFyX3UgKmd1aV9tY2hfYnJvd3NlZGlyIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppbml0ZGlyKSk7CitleHRlcm4gY2hhcl91ICpndWlfbWNoX2Jyb3dzZSBfX0FSR1MoKGludCBzYXZpbmcsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqZGZsdCwgY2hhcl91ICpleHQsIGNoYXJfdSAqaW5pdGRpciwgY2hhcl91ICpmaWx0ZXIpKTsKK2V4dGVybiBpbnQgZ2V0X2NtZF9hcmdzIF9fQVJHUygoY2hhciAqcHJvZywgY2hhciAqY21kbGluZSwgY2hhciAqKiphcmd2cCwgY2hhciAqKnRvZnJlZSkpOworZXh0ZXJuIGludCBndWlfaXNfd2luMzJzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfcGFyZW50IF9fQVJHUygoY2hhciAqdGl0bGUpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfcHJlcGFyZSBfX0FSR1MoKGludCAqYXJnYywgY2hhciAqKmFyZ3YpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgbWluX3dpZHRoLCBpbnQgbWluX2hlaWdodCwgaW50IGJhc2Vfd2lkdGgsIGludCBiYXNlX2hlaWdodCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfc2Nyb2xsYmFyX3RodW1iIF9fQVJHUygoc2Nyb2xsYmFyX1QgKnNiLCBsb25nIHZhbCwgbG9uZyBzaXplLCBsb25nIG1heCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZm9udCBfX0FSR1MoKEd1aUZvbnQgZm9udCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZmdfY29sb3IgX19BUkdTKChndWljb2xvcl9UIGNvbG9yKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3NldF9iZ19jb2xvciBfX0FSR1MoKGd1aWNvbG9yX1QgY29sb3IpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfc2V0X3NwX2NvbG9yIF9fQVJHUygoZ3VpY29sb3JfVCBjb2xvcikpOworZXh0ZXJuIHZvaWQgaW1fc2V0X2ZvbnQgX19BUkdTKChMT0dGT05UICpsZikpOworZXh0ZXJuIHZvaWQgaW1fc2V0X3Bvc2l0aW9uIF9fQVJHUygoaW50IHJvdywgaW50IGNvbCkpOworZXh0ZXJuIHZvaWQgaW1fc2V0X2FjdGl2ZSBfX0FSR1MoKGludCBhY3RpdmUpKTsKK2V4dGVybiBpbnQgaW1fZ2V0X3N0YXR1cyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd19zdHJpbmcgX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBjaGFyX3UgKnRleHQsIGludCBsZW4sIGludCBmbGFncykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9mbHVzaCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZ2V0X3NjcmVlbl9kaW1lbnNpb25zIF9fQVJHUygoaW50ICpzY3JlZW5fdywgaW50ICpzY3JlZW5faCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9hZGRfbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IHBvcykpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zaG93X3BvcHVwbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOworZXh0ZXJuIHZvaWQgZ3VpX21ha2VfcG9wdXAgX19BUkdTKChjaGFyX3UgKnBhdGhfbmFtZSwgaW50IG1vdXNlX3BvcykpOworZXh0ZXJuIHZvaWQgZ3VpX21ha2VfdGVhcm9mZiBfX0FSR1MoKGNoYXJfdSAqcGF0aF9uYW1lKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2FkZF9tZW51X2l0ZW0gX19BUkdTKCh2aW1tZW51X1QgKm1lbnUsIGludCBpZHgpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGVzdHJveV9tZW51IF9fQVJHUygodmltbWVudV9UICptZW51KSk7CitleHRlcm4gdm9pZCBndWlfbWNoX21lbnVfZ3JleSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSwgaW50IGdyZXkpKTsKK2V4dGVybiBpbnQgZ3VpX21jaF9kaWFsb2cgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBjaGFyX3UgKmJ1dHRvbnMsIGludCBkZmx0YnV0dG9uLCBjaGFyX3UgKnRleHRmaWVsZCkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9zZXRfZm9yZWdyb3VuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZHJhd3NpZ24gX19BUkdTKChpbnQgcm93LCBpbnQgY29sLCBpbnQgdHlwZW5yKSk7CitleHRlcm4gdm9pZCAqZ3VpX21jaF9yZWdpc3Rlcl9zaWduIF9fQVJHUygoY2hhcl91ICpzaWduZmlsZSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X3NpZ24gX19BUkdTKCh2b2lkICpzaWduKSk7CitleHRlcm4gaW50IG11bHRpbGluZV9iYWxsb29uX2F2YWlsYWJsZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGd1aV9tY2hfZGlzYWJsZV9iZXZhbF9hcmVhIF9fQVJHUygoQmFsbG9vbkV2YWwgKmJldmFsKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX2VuYWJsZV9iZXZhbF9hcmVhIF9fQVJHUygoQmFsbG9vbkV2YWwgKmJldmFsKSk7CitleHRlcm4gdm9pZCBndWlfbWNoX3Bvc3RfYmFsbG9vbiBfX0FSR1MoKEJhbGxvb25FdmFsICpiZXZhbCwgY2hhcl91ICptZXNnKSk7CitleHRlcm4gQmFsbG9vbkV2YWwgKmd1aV9tY2hfY3JlYXRlX2JldmFsX2FyZWEgX19BUkdTKCh2b2lkICp0YXJnZXQsIGNoYXJfdSAqbWVzZywgdm9pZCAoKm1lc2dDQikoQmFsbG9vbkV2YWwgKiwgaW50KSwgdm9pZCAqY2xpZW50RGF0YSkpOworZXh0ZXJuIHZvaWQgZ3VpX21jaF9kZXN0cm95X2JldmFsX2FyZWEgX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwpKTsKK2V4dGVybiB2b2lkIG5ldGJlYW5zX2RyYXdfbXVsdGlzaWduX2luZGljYXRvciBfX0FSR1MoKGludCByb3cpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aV94bWRsZy5wcm8gYi9zcmMvcHJvdG8vZ3VpX3htZGxnLnBybwppbmRleCA0Zjg4YzJmLi5kYzY2NTVhIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vZ3VpX3htZGxnLnBybworKysgYi9zcmMvcHJvdG8vZ3VpX3htZGxnLnBybwpAQCAtMSwzICsxLDMgQEAKIC8qIGd1aV94bWRsZy5jICovCi1jaGFyX3UgKmd1aV94bV9zZWxlY3RfZm9udCBfX0FSR1MoKGNoYXJfdSAqY3VycmVudCkpOworZXh0ZXJuIGNoYXJfdSAqZ3VpX3htX3NlbGVjdF9mb250IF9fQVJHUygoY2hhcl91ICpjdXJyZW50KSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9oYXJkY29weS5wcm8gYi9zcmMvcHJvdG8vaGFyZGNvcHkucHJvCmluZGV4IGYxOTI4MTQuLmZkZTdjMmEgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9oYXJkY29weS5wcm8KKysrIGIvc3JjL3Byb3RvL2hhcmRjb3B5LnBybwpAQCAtMSwyMSArMSwyMCBAQAogLyogaGFyZGNvcHkuYyAqLwotY2hhcl91ICpwYXJzZV9wcmludG9wdGlvbnMgX19BUkdTKCh2b2lkKSk7Ci1jaGFyX3UgKnBhcnNlX3ByaW50bWJmb250IF9fQVJHUygodm9pZCkpOwotaW50IGdldF9wcmludGVyX3BhZ2VfbnVtIF9fQVJHUygodm9pZCkpOwotaW50IHBydF9oZWFkZXJfaGVpZ2h0IF9fQVJHUygodm9pZCkpOwotaW50IHBydF91c2VfbnVtYmVyIF9fQVJHUygodm9pZCkpOwotaW50IHBydF9nZXRfdW5pdCBfX0FSR1MoKGludCBpZHgpKTsKLXZvaWQgZXhfaGFyZGNvcHkgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgbWNoX3ByaW50X2NsZWFudXAgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX3ByaW50X2luaXQgX19BUkdTKChwcnRfc2V0dGluZ3NfVCAqcHNldHRpbmdzLCBjaGFyX3UgKmpvYm5hbWUsIGludCBmb3JjZWl0KSk7Ci1pbnQgbWNoX3ByaW50X2JlZ2luIF9fQVJHUygocHJ0X3NldHRpbmdzX1QgKnBzZXR0aW5ncykpOwotdm9pZCBtY2hfcHJpbnRfZW5kIF9fQVJHUygocHJ0X3NldHRpbmdzX1QgKnBzZXR0aW5ncykpOwotaW50IG1jaF9wcmludF9lbmRfcGFnZSBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfcHJpbnRfYmVnaW5fcGFnZSBfX0FSR1MoKGNoYXJfdSAqc3RyKSk7Ci1pbnQgbWNoX3ByaW50X2JsYW5rX3BhZ2UgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9wcmludF9zdGFydF9saW5lIF9fQVJHUygoaW50IG1hcmdpbiwgaW50IHBhZ2VfbGluZSkpOwotaW50IG1jaF9wcmludF90ZXh0X291dCBfX0FSR1MoKGNoYXJfdSAqcCwgaW50IGxlbikpOwotdm9pZCBtY2hfcHJpbnRfc2V0X2ZvbnQgX19BUkdTKChpbnQgaUJvbGQsIGludCBpSXRhbGljLCBpbnQgaVVuZGVybGluZSkpOwotdm9pZCBtY2hfcHJpbnRfc2V0X2JnIF9fQVJHUygobG9uZ191IGJnY29sKSk7Ci12b2lkIG1jaF9wcmludF9zZXRfZmcgX19BUkdTKChsb25nX3UgZmdjb2wpKTsKK2V4dGVybiBjaGFyX3UgKnBhcnNlX3ByaW50b3B0aW9ucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKnBhcnNlX3ByaW50bWJmb250IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBwcnRfaGVhZGVyX2hlaWdodCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgcHJ0X3VzZV9udW1iZXIgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHBydF9nZXRfdW5pdCBfX0FSR1MoKGludCBpZHgpKTsKK2V4dGVybiB2b2lkIGV4X2hhcmRjb3B5IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBtY2hfcHJpbnRfY2xlYW51cCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX3ByaW50X2luaXQgX19BUkdTKChwcnRfc2V0dGluZ3NfVCAqcHNldHRpbmdzLCBjaGFyX3UgKmpvYm5hbWUsIGludCBmb3JjZWl0KSk7CitleHRlcm4gaW50IG1jaF9wcmludF9iZWdpbiBfX0FSR1MoKHBydF9zZXR0aW5nc19UICpwc2V0dGluZ3MpKTsKK2V4dGVybiB2b2lkIG1jaF9wcmludF9lbmQgX19BUkdTKChwcnRfc2V0dGluZ3NfVCAqcHNldHRpbmdzKSk7CitleHRlcm4gaW50IG1jaF9wcmludF9lbmRfcGFnZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX3ByaW50X2JlZ2luX3BhZ2UgX19BUkdTKChjaGFyX3UgKnN0cikpOworZXh0ZXJuIGludCBtY2hfcHJpbnRfYmxhbmtfcGFnZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9wcmludF9zdGFydF9saW5lIF9fQVJHUygoaW50IG1hcmdpbiwgaW50IHBhZ2VfbGluZSkpOworZXh0ZXJuIGludCBtY2hfcHJpbnRfdGV4dF9vdXQgX19BUkdTKChjaGFyX3UgKnAsIGludCBsZW4pKTsKK2V4dGVybiB2b2lkIG1jaF9wcmludF9zZXRfZm9udCBfX0FSR1MoKGludCBpQm9sZCwgaW50IGlJdGFsaWMsIGludCBpVW5kZXJsaW5lKSk7CitleHRlcm4gdm9pZCBtY2hfcHJpbnRfc2V0X2JnIF9fQVJHUygobG9uZ191IGJnY29sKSk7CitleHRlcm4gdm9pZCBtY2hfcHJpbnRfc2V0X2ZnIF9fQVJHUygobG9uZ191IGZnY29sKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9oYXNodGFiLnBybyBiL3NyYy9wcm90by9oYXNodGFiLnBybwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGFiYjlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Byb3RvL2hhc2h0YWIucHJvCkBAIC0wLDAgKzEsMTQgQEAKKy8qIGhhc2h0YWIuYyAqLworZXh0ZXJuIHZvaWQgaGFzaF9pbml0IF9fQVJHUygoaGFzaHRhYl9UICpodCkpOworZXh0ZXJuIHZvaWQgaGFzaF9jbGVhciBfX0FSR1MoKGhhc2h0YWJfVCAqaHQpKTsKK2V4dGVybiB2b2lkIGhhc2hfY2xlYXJfYWxsIF9fQVJHUygoaGFzaHRhYl9UICpodCwgaW50IG9mZikpOworZXh0ZXJuIGhhc2hpdGVtX1QgKmhhc2hfZmluZCBfX0FSR1MoKGhhc2h0YWJfVCAqaHQsIGNoYXJfdSAqa2V5KSk7CitleHRlcm4gaGFzaGl0ZW1fVCAqaGFzaF9sb29rdXAgX19BUkdTKChoYXNodGFiX1QgKmh0LCBjaGFyX3UgKmtleSwgaGFzaF9UIGhhc2gpKTsKK2V4dGVybiB2b2lkIGhhc2hfZGVidWdfcmVzdWx0cyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgaGFzaF9hZGQgX19BUkdTKChoYXNodGFiX1QgKmh0LCBjaGFyX3UgKmtleSkpOworZXh0ZXJuIGludCBoYXNoX2FkZF9pdGVtIF9fQVJHUygoaGFzaHRhYl9UICpodCwgaGFzaGl0ZW1fVCAqaGksIGNoYXJfdSAqa2V5LCBoYXNoX1QgaGFzaCkpOworZXh0ZXJuIHZvaWQgaGFzaF9yZW1vdmUgX19BUkdTKChoYXNodGFiX1QgKmh0LCBoYXNoaXRlbV9UICpoaSkpOworZXh0ZXJuIHZvaWQgaGFzaF9sb2NrIF9fQVJHUygoaGFzaHRhYl9UICpodCkpOworZXh0ZXJuIHZvaWQgaGFzaF91bmxvY2sgX19BUkdTKChoYXNodGFiX1QgKmh0KSk7CitleHRlcm4gaGFzaF9UIGhhc2hfaGFzaCBfX0FSR1MoKGNoYXJfdSAqa2V5KSk7CisvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9pZl9jc2NvcGUucHJvIGIvc3JjL3Byb3RvL2lmX2NzY29wZS5wcm8KaW5kZXggMDYxN2QxMy4uYWFlOWVkZiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2lmX2NzY29wZS5wcm8KKysrIGIvc3JjL3Byb3RvL2lmX2NzY29wZS5wcm8KQEAgLTEsOSArMSw5IEBACiAvKiBpZl9jc2NvcGUuYyAqLwotdm9pZCBkb19jc2NvcGUgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgZG9fc2NzY29wZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBkb19jc3RhZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotaW50IGNzX2ZnZXRzIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBzaXplKSk7Ci12b2lkIGNzX2ZyZWVfdGFncyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY3NfcHJpbnRfdGFncyBfX0FSR1MoKHZvaWQpKTsKLWludCBjc19jb25uZWN0aW9uIF9fQVJHUygoaW50IG51bSwgY2hhcl91ICpkYnBhdGgsIGNoYXJfdSAqcHBhdGgpKTsKK2V4dGVybiB2b2lkIGRvX2NzY29wZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZG9fc2NzY29wZSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZG9fY3N0YWcgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgY3NfZmdldHMgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IHNpemUpKTsKK2V4dGVybiB2b2lkIGNzX2ZyZWVfdGFncyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNzX3ByaW50X3RhZ3MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGNzX2Nvbm5lY3Rpb24gX19BUkdTKChpbnQgbnVtLCBjaGFyX3UgKmRicGF0aCwgY2hhcl91ICpwcGF0aCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vaWZfcGVybHNmaW8ucHJvIGIvc3JjL3Byb3RvL2lmX3BlcmxzZmlvLnBybwppbmRleCBiYjkwNDY4Li4xNGZhNGNjIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vaWZfcGVybHNmaW8ucHJvCisrKyBiL3NyYy9wcm90by9pZl9wZXJsc2Zpby5wcm8KQEAgLTEsMyArMSwzIEBACiAvKiBpZl9wZXJsc2Zpby5jICovCi1pbnQgKnNmZGNuZXd2aW0gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50ICpzZmRjbmV3dmltIF9fQVJHUygodm9pZCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vaWZfdGNsLnBybyBiL3NyYy9wcm90by9pZl90Y2wucHJvCmluZGV4IDA2NzllZDQuLjJhZjkxNzQgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9pZl90Y2wucHJvCisrKyBiL3NyYy9wcm90by9pZl90Y2wucHJvCkBAIC0xLDEwICsxLDEwIEBACiAvKiBpZl90Y2wuYyAqLwotdm9pZCB2aW1fdGNsX2luaXQgX19BUkdTKChjaGFyICphcmcpKTsKLWludCB0Y2xfZW5hYmxlZCBfX0FSR1MoKGludCB2ZXJib3NlKSk7Ci12b2lkIHRjbF9lbmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGV4X3RjbCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF90Y2xmaWxlIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIGV4X3RjbGRvIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIHRjbF9idWZmZXJfZnJlZSBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgdGNsX3dpbmRvd19mcmVlIF9fQVJHUygod2luX1QgKndpbikpOworZXh0ZXJuIHZvaWQgdmltX3RjbF9pbml0IF9fQVJHUygoY2hhciAqYXJnKSk7CitleHRlcm4gaW50IHRjbF9lbmFibGVkIF9fQVJHUygoaW50IHZlcmJvc2UpKTsKK2V4dGVybiB2b2lkIHRjbF9lbmQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBleF90Y2wgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X3RjbGZpbGUgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X3RjbGRvIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCB0Y2xfYnVmZmVyX2ZyZWUgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCB0Y2xfd2luZG93X2ZyZWUgX19BUkdTKCh3aW5fVCAqd2luKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9tYWluLnBybyBiL3NyYy9wcm90by9tYWluLnBybwppbmRleCAyZWNjZTc5Li45M2EzMTJmIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vbWFpbi5wcm8KKysrIGIvc3JjL3Byb3RvL21haW4ucHJvCkBAIC0xLDI2ICsxLDI2IEBACiAvKiBtYWluLmMgKi8KLXZvaWQgbWFpbl9sb29wIF9fQVJHUygoaW50IGNtZHdpbiwgaW50IG5vZXhtb2RlKSk7Ci12b2lkIGdldG91dF9wcmVzZXJ2ZV9tb2RpZmllZCBfX0FSR1MoKGludCBleGl0dmFsKSk7Ci12b2lkIGdldG91dCBfX0FSR1MoKGludCBleGl0dmFsKSk7Ci1pbnQgcHJvY2Vzc19lbnYgX19BUkdTKChjaGFyX3UgKmVudiwgaW50IGlzX3ZpbWluaXQpKTsKLXZvaWQgbWFpbmVycl9hcmdfbWlzc2luZyBfX0FSR1MoKGNoYXJfdSAqc3RyKSk7Ci12b2lkIHRpbWVfcHVzaCBfX0FSR1MoKHZvaWQgKnR2X3JlbCwgdm9pZCAqdHZfc3RhcnQpKTsKLXZvaWQgdGltZV9wb3AgX19BUkdTKCh2b2lkICp0cCkpOwotdm9pZCB0aW1lX21zZyBfX0FSR1MoKGNoYXIgKm1zZywgdm9pZCAqdHZfc3RhcnQpKTsKLXZvaWQgc2VydmVyX3RvX2lucHV0X2J1ZiBfX0FSR1MoKGNoYXJfdSAqc3RyKSk7Ci1jaGFyX3UgKmV2YWxfY2xpZW50X2V4cHJfdG9fc3RyaW5nIF9fQVJHUygoY2hhcl91ICpleHByKSk7Ci1jaGFyX3UgKnNlcnZlckNvbnZlcnQgX19BUkdTKChjaGFyX3UgKmNsaWVudF9lbmMsIGNoYXJfdSAqZGF0YSwgY2hhcl91ICoqdG9mcmVlKSk7Ci1pbnQgdG9GX1R5QSBfX0FSR1MoKGludCBjKSk7Ci1pbnQgZmttYXAgX19BUkdTKChpbnQgYykpOwotdm9pZCBjb252X3RvX3B2aW0gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGNvbnZfdG9fcHN0ZCBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqbHJzd2FwIF9fQVJHUygoY2hhcl91ICppYnVmKSk7Ci1jaGFyX3UgKmxyRnN3YXAgX19BUkdTKChjaGFyX3UgKmNtZGJ1ZiwgaW50IGxlbikpOwotY2hhcl91ICpsckZfc3ViIF9fQVJHUygoY2hhcl91ICppYnVmKSk7Ci1pbnQgY21kbF9ma21hcCBfX0FSR1MoKGludCBjKSk7Ci1pbnQgRl9pc2FscGhhIF9fQVJHUygoaW50IGMpKTsKLWludCBGX2lzZGlnaXQgX19BUkdTKChpbnQgYykpOwotaW50IEZfaXNjaGFyIF9fQVJHUygoaW50IGMpKTsKLXZvaWQgZmFyc2lfZmtleSBfX0FSR1MoKGNtZGFyZ19UICpjYXApKTsKLWludCBhcmFiaWNfc2hhcGUgX19BUkdTKChpbnQgYywgaW50ICpjY3AsIGludCAqYzFwLCBpbnQgcHJldl9jLCBpbnQgcHJldl9jMSwgaW50IG5leHRfYykpOworZXh0ZXJuIHZvaWQgbWFpbl9sb29wIF9fQVJHUygoaW50IGNtZHdpbiwgaW50IG5vZXhtb2RlKSk7CitleHRlcm4gdm9pZCBnZXRvdXRfcHJlc2VydmVfbW9kaWZpZWQgX19BUkdTKChpbnQgZXhpdHZhbCkpOworZXh0ZXJuIHZvaWQgZ2V0b3V0IF9fQVJHUygoaW50IGV4aXR2YWwpKTsKK2V4dGVybiBpbnQgcHJvY2Vzc19lbnYgX19BUkdTKChjaGFyX3UgKmVudiwgaW50IGlzX3ZpbWluaXQpKTsKK2V4dGVybiB2b2lkIG1haW5lcnJfYXJnX21pc3NpbmcgX19BUkdTKChjaGFyX3UgKnN0cikpOworZXh0ZXJuIHZvaWQgdGltZV9wdXNoIF9fQVJHUygodm9pZCAqdHZfcmVsLCB2b2lkICp0dl9zdGFydCkpOworZXh0ZXJuIHZvaWQgdGltZV9wb3AgX19BUkdTKCh2b2lkICp0cCkpOworZXh0ZXJuIHZvaWQgdGltZV9tc2cgX19BUkdTKChjaGFyICptc2csIHZvaWQgKnR2X3N0YXJ0KSk7CitleHRlcm4gdm9pZCBzZXJ2ZXJfdG9faW5wdXRfYnVmIF9fQVJHUygoY2hhcl91ICpzdHIpKTsKK2V4dGVybiBjaGFyX3UgKmV2YWxfY2xpZW50X2V4cHJfdG9fc3RyaW5nIF9fQVJHUygoY2hhcl91ICpleHByKSk7CitleHRlcm4gY2hhcl91ICpzZXJ2ZXJDb252ZXJ0IF9fQVJHUygoY2hhcl91ICpjbGllbnRfZW5jLCBjaGFyX3UgKmRhdGEsIGNoYXJfdSAqKnRvZnJlZSkpOworZXh0ZXJuIGludCB0b0ZfVHlBIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBpbnQgZmttYXAgX19BUkdTKChpbnQgYykpOworZXh0ZXJuIHZvaWQgY29udl90b19wdmltIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgY29udl90b19wc3RkIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqbHJzd2FwIF9fQVJHUygoY2hhcl91ICppYnVmKSk7CitleHRlcm4gY2hhcl91ICpsckZzd2FwIF9fQVJHUygoY2hhcl91ICpjbWRidWYsIGludCBsZW4pKTsKK2V4dGVybiBjaGFyX3UgKmxyRl9zdWIgX19BUkdTKChjaGFyX3UgKmlidWYpKTsKK2V4dGVybiBpbnQgY21kbF9ma21hcCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IEZfaXNhbHBoYSBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IEZfaXNkaWdpdCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IEZfaXNjaGFyIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiB2b2lkIGZhcnNpX2ZrZXkgX19BUkdTKChjbWRhcmdfVCAqY2FwKSk7CitleHRlcm4gaW50IGFyYWJpY19zaGFwZSBfX0FSR1MoKGludCBjLCBpbnQgKmNjcCwgaW50ICpjMXAsIGludCBwcmV2X2MsIGludCBwcmV2X2MxLCBpbnQgbmV4dF9jKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9tYXJrLnBybyBiL3NyYy9wcm90by9tYXJrLnBybwppbmRleCAxM2UxODY4Li5mZTQ0MDMxIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vbWFyay5wcm8KKysrIGIvc3JjL3Byb3RvL21hcmsucHJvCkBAIC0xLDMwICsxLDMwIEBACiAvKiBtYXJrLmMgKi8KLWludCBzZXRtYXJrIF9fQVJHUygoaW50IGMpKTsKLWludCBzZXRtYXJrX3BvcyBfX0FSR1MoKGludCBjLCBwb3NfVCAqcG9zLCBpbnQgZm51bSkpOwotdm9pZCBzZXRwY21hcmsgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGNoZWNrcGNtYXJrIF9fQVJHUygodm9pZCkpOwotcG9zX1QgKm1vdmVtYXJrIF9fQVJHUygoaW50IGNvdW50KSk7Ci1wb3NfVCAqbW92ZWNoYW5nZWxpc3QgX19BUkdTKChpbnQgY291bnQpKTsKLXBvc19UICpnZXRtYXJrIF9fQVJHUygoaW50IGMsIGludCBjaGFuZ2VmaWxlKSk7Ci1wb3NfVCAqZ2V0bWFya19mbnVtIF9fQVJHUygoaW50IGMsIGludCBjaGFuZ2VmaWxlLCBpbnQgKmZudW0pKTsKLXBvc19UICpnZXRuZXh0bWFyayBfX0FSR1MoKHBvc19UICpzdGFydHBvcywgaW50IGRpciwgaW50IGJlZ2luX2xpbmUpKTsKLXZvaWQgZm1hcmtzX2NoZWNrX25hbWVzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotaW50IGNoZWNrX21hcmsgX19BUkdTKChwb3NfVCAqcG9zKSk7Ci12b2lkIGNscmFsbG1hcmtzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotY2hhcl91ICpmbV9nZXRuYW1lIF9fQVJHUygoZm1hcmtfVCAqZm1hcmssIGludCBsZWFkX2xlbikpOwotdm9pZCBkb19tYXJrcyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9kZWxtYXJrcyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9qdW1wcyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF9jaGFuZ2VzIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIG1hcmtfYWRqdXN0IF9fQVJHUygobGluZW5yX1QgbGluZTEsIGxpbmVucl9UIGxpbmUyLCBsb25nIGFtb3VudCwgbG9uZyBhbW91bnRfYWZ0ZXIpKTsKLXZvaWQgbWFya19jb2xfYWRqdXN0IF9fQVJHUygobGluZW5yX1QgbG51bSwgY29sbnJfVCBtaW5jb2wsIGxvbmcgbG51bV9hbW91bnQsIGxvbmcgY29sX2Ftb3VudCkpOwotdm9pZCBjb3B5X2p1bXBsaXN0IF9fQVJHUygod2luX1QgKmZyb20sIHdpbl9UICp0bykpOwotdm9pZCBmcmVlX2p1bXBsaXN0IF9fQVJHUygod2luX1QgKndwKSk7Ci12b2lkIHNldF9sYXN0X2N1cnNvciBfX0FSR1MoKHdpbl9UICp3aW4pKTsKLXZvaWQgZnJlZV9hbGxfbWFya3MgX19BUkdTKCh2b2lkKSk7Ci1pbnQgcmVhZF92aW1pbmZvX2ZpbGVtYXJrIF9fQVJHUygodmlyX1QgKnZpcnAsIGludCBmb3JjZSkpOwotdm9pZCB3cml0ZV92aW1pbmZvX2ZpbGVtYXJrcyBfX0FSR1MoKEZJTEUgKmZwKSk7Ci1pbnQgcmVtb3ZhYmxlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgd3JpdGVfdmltaW5mb19tYXJrcyBfX0FSR1MoKEZJTEUgKmZwX291dCkpOwotdm9pZCBjb3B5X3ZpbWluZm9fbWFya3MgX19BUkdTKCh2aXJfVCAqdmlycCwgRklMRSAqZnBfb3V0LCBpbnQgY291bnQsIGludCBlb2YpKTsKK2V4dGVybiBpbnQgc2V0bWFyayBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gaW50IHNldG1hcmtfcG9zIF9fQVJHUygoaW50IGMsIHBvc19UICpwb3MsIGludCBmbnVtKSk7CitleHRlcm4gdm9pZCBzZXRwY21hcmsgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBjaGVja3BjbWFyayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBwb3NfVCAqbW92ZW1hcmsgX19BUkdTKChpbnQgY291bnQpKTsKK2V4dGVybiBwb3NfVCAqbW92ZWNoYW5nZWxpc3QgX19BUkdTKChpbnQgY291bnQpKTsKK2V4dGVybiBwb3NfVCAqZ2V0bWFyayBfX0FSR1MoKGludCBjLCBpbnQgY2hhbmdlZmlsZSkpOworZXh0ZXJuIHBvc19UICpnZXRtYXJrX2ZudW0gX19BUkdTKChpbnQgYywgaW50IGNoYW5nZWZpbGUsIGludCAqZm51bSkpOworZXh0ZXJuIHBvc19UICpnZXRuZXh0bWFyayBfX0FSR1MoKHBvc19UICpzdGFydHBvcywgaW50IGRpciwgaW50IGJlZ2luX2xpbmUpKTsKK2V4dGVybiB2b2lkIGZtYXJrc19jaGVja19uYW1lcyBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiBpbnQgY2hlY2tfbWFyayBfX0FSR1MoKHBvc19UICpwb3MpKTsKK2V4dGVybiB2b2lkIGNscmFsbG1hcmtzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGNoYXJfdSAqZm1fZ2V0bmFtZSBfX0FSR1MoKGZtYXJrX1QgKmZtYXJrLCBpbnQgbGVhZF9sZW4pKTsKK2V4dGVybiB2b2lkIGRvX21hcmtzIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF9kZWxtYXJrcyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZXhfanVtcHMgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGV4X2NoYW5nZXMgX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIG1hcmtfYWRqdXN0IF9fQVJHUygobGluZW5yX1QgbGluZTEsIGxpbmVucl9UIGxpbmUyLCBsb25nIGFtb3VudCwgbG9uZyBhbW91bnRfYWZ0ZXIpKTsKK2V4dGVybiB2b2lkIG1hcmtfY29sX2FkanVzdCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGNvbG5yX1QgbWluY29sLCBsb25nIGxudW1fYW1vdW50LCBsb25nIGNvbF9hbW91bnQpKTsKK2V4dGVybiB2b2lkIGNvcHlfanVtcGxpc3QgX19BUkdTKCh3aW5fVCAqZnJvbSwgd2luX1QgKnRvKSk7CitleHRlcm4gdm9pZCBmcmVlX2p1bXBsaXN0IF9fQVJHUygod2luX1QgKndwKSk7CitleHRlcm4gdm9pZCBzZXRfbGFzdF9jdXJzb3IgX19BUkdTKCh3aW5fVCAqd2luKSk7CitleHRlcm4gdm9pZCBmcmVlX2FsbF9tYXJrcyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgcmVhZF92aW1pbmZvX2ZpbGVtYXJrIF9fQVJHUygodmlyX1QgKnZpcnAsIGludCBmb3JjZSkpOworZXh0ZXJuIHZvaWQgd3JpdGVfdmltaW5mb19maWxlbWFya3MgX19BUkdTKChGSUxFICpmcCkpOworZXh0ZXJuIGludCByZW1vdmFibGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiBpbnQgd3JpdGVfdmltaW5mb19tYXJrcyBfX0FSR1MoKEZJTEUgKmZwX291dCkpOworZXh0ZXJuIHZvaWQgY29weV92aW1pbmZvX21hcmtzIF9fQVJHUygodmlyX1QgKnZpcnAsIEZJTEUgKmZwX291dCwgaW50IGNvdW50LCBpbnQgZW9mKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9tZW1maWxlLnBybyBiL3NyYy9wcm90by9tZW1maWxlLnBybwppbmRleCAzOTgzYjQ3Li42YzQzMjlhIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vbWVtZmlsZS5wcm8KKysrIGIvc3JjL3Byb3RvL21lbWZpbGUucHJvCkBAIC0xLDE4ICsxLDE4IEBACiAvKiBtZW1maWxlLmMgKi8KLW1lbWZpbGVfVCAqbWZfb3BlbiBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGludCBmbGFncykpOwotaW50IG1mX29wZW5fZmlsZSBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBjaGFyX3UgKmZuYW1lKSk7Ci12b2lkIG1mX2Nsb3NlIF9fQVJHUygobWVtZmlsZV9UICptZnAsIGludCBkZWxfZmlsZSkpOwotdm9pZCBtZl9jbG9zZV9maWxlIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGdldGxpbmVzKSk7Ci12b2lkIG1mX25ld19wYWdlX3NpemUgX19BUkdTKChtZW1maWxlX1QgKm1mcCwgdW5zaWduZWQgbmV3X3NpemUpKTsKLWJoZHJfVCAqbWZfbmV3IF9fQVJHUygobWVtZmlsZV9UICptZnAsIGludCBuZWdhdGl2ZSwgaW50IHBhZ2VfY291bnQpKTsKLWJoZHJfVCAqbWZfZ2V0IF9fQVJHUygobWVtZmlsZV9UICptZnAsIGJsb2NrbnJfVCBuciwgaW50IHBhZ2VfY291bnQpKTsKLXZvaWQgbWZfcHV0IF9fQVJHUygobWVtZmlsZV9UICptZnAsIGJoZHJfVCAqaHAsIGludCBkaXJ0eSwgaW50IGluZmlsZSkpOwotdm9pZCBtZl9mcmVlIF9fQVJHUygobWVtZmlsZV9UICptZnAsIGJoZHJfVCAqaHApKTsKLWludCBtZl9zeW5jIF9fQVJHUygobWVtZmlsZV9UICptZnAsIGludCBmbGFncykpOwotdm9pZCBtZl9zZXRfZGlydHkgX19BUkdTKChtZW1maWxlX1QgKm1mcCkpOwotaW50IG1mX3JlbGVhc2VfYWxsIF9fQVJHUygodm9pZCkpOwotYmxvY2tucl9UIG1mX3RyYW5zX2RlbCBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBibG9ja25yX1Qgb2xkX25yKSk7Ci12b2lkIG1mX3NldF9mZm5hbWUgX19BUkdTKChtZW1maWxlX1QgKm1mcCkpOwotdm9pZCBtZl9mdWxsbmFtZSBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwKSk7Ci1pbnQgbWZfbmVlZF90cmFucyBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwKSk7CitleHRlcm4gbWVtZmlsZV9UICptZl9vcGVuIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IG1mX29wZW5fZmlsZSBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBjaGFyX3UgKmZuYW1lKSk7CitleHRlcm4gdm9pZCBtZl9jbG9zZSBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBpbnQgZGVsX2ZpbGUpKTsKK2V4dGVybiB2b2lkIG1mX2Nsb3NlX2ZpbGUgX19BUkdTKChidWZfVCAqYnVmLCBpbnQgZ2V0bGluZXMpKTsKK2V4dGVybiB2b2lkIG1mX25ld19wYWdlX3NpemUgX19BUkdTKChtZW1maWxlX1QgKm1mcCwgdW5zaWduZWQgbmV3X3NpemUpKTsKK2V4dGVybiBiaGRyX1QgKm1mX25ldyBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBpbnQgbmVnYXRpdmUsIGludCBwYWdlX2NvdW50KSk7CitleHRlcm4gYmhkcl9UICptZl9nZXQgX19BUkdTKChtZW1maWxlX1QgKm1mcCwgYmxvY2tucl9UIG5yLCBpbnQgcGFnZV9jb3VudCkpOworZXh0ZXJuIHZvaWQgbWZfcHV0IF9fQVJHUygobWVtZmlsZV9UICptZnAsIGJoZHJfVCAqaHAsIGludCBkaXJ0eSwgaW50IGluZmlsZSkpOworZXh0ZXJuIHZvaWQgbWZfZnJlZSBfX0FSR1MoKG1lbWZpbGVfVCAqbWZwLCBiaGRyX1QgKmhwKSk7CitleHRlcm4gaW50IG1mX3N5bmMgX19BUkdTKChtZW1maWxlX1QgKm1mcCwgaW50IGZsYWdzKSk7CitleHRlcm4gdm9pZCBtZl9zZXRfZGlydHkgX19BUkdTKChtZW1maWxlX1QgKm1mcCkpOworZXh0ZXJuIGludCBtZl9yZWxlYXNlX2FsbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBibG9ja25yX1QgbWZfdHJhbnNfZGVsIF9fQVJHUygobWVtZmlsZV9UICptZnAsIGJsb2NrbnJfVCBvbGRfbnIpKTsKK2V4dGVybiB2b2lkIG1mX3NldF9mZm5hbWUgX19BUkdTKChtZW1maWxlX1QgKm1mcCkpOworZXh0ZXJuIHZvaWQgbWZfZnVsbG5hbWUgX19BUkdTKChtZW1maWxlX1QgKm1mcCkpOworZXh0ZXJuIGludCBtZl9uZWVkX3RyYW5zIF9fQVJHUygobWVtZmlsZV9UICptZnApKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL21lc3NhZ2UucHJvIGIvc3JjL3Byb3RvL21lc3NhZ2UucHJvCmluZGV4IGUwMjk5NjQuLjkxNjFiMDUgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9tZXNzYWdlLnBybworKysgYi9zcmMvcHJvdG8vbWVzc2FnZS5wcm8KQEAgLTEsNzAgKzEsNzAgQEAKIC8qIG1lc3NhZ2UuYyAqLwotaW50IG1zZyBfX0FSR1MoKGNoYXJfdSAqcykpOwotaW50IHZlcmJfbXNnIF9fQVJHUygoY2hhcl91ICpzKSk7Ci1pbnQgbXNnX2F0dHIgX19BUkdTKChjaGFyX3UgKnMsIGludCBhdHRyKSk7Ci1pbnQgbXNnX2F0dHJfa2VlcCBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGF0dHIsIGludCBrZWVwKSk7Ci1jaGFyX3UgKm1zZ19zdHJ0cnVuYyBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGZvcmNlKSk7Ci12b2lkIHRydW5jX3N0cmluZyBfX0FSR1MoKGNoYXJfdSAqcywgY2hhcl91ICpidWYsIGludCByb29tKSk7Ci12b2lkIHJlc2V0X2xhc3Rfc291cmNpbmcgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1zZ19zb3VyY2UgX19BUkdTKChpbnQgYXR0cikpOwotaW50IGVtc2cgX19BUkdTKChjaGFyX3UgKnMpKTsKLWludCBlbXNnMiBfX0FSR1MoKGNoYXJfdSAqcywgY2hhcl91ICphMSkpOwotdm9pZCBlbXNnX2ludnJlZyBfX0FSR1MoKGludCBuYW1lKSk7Ci1jaGFyX3UgKm1zZ190cnVuY19hdHRyIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgZm9yY2UsIGludCBhdHRyKSk7Ci1jaGFyX3UgKm1zZ19tYXlfdHJ1bmMgX19BUkdTKChpbnQgZm9yY2UsIGNoYXJfdSAqcykpOwotaW50IGRlbGV0ZV9maXJzdF9tc2cgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGV4X21lc3NhZ2VzIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7Ci12b2lkIG1zZ19lbmRfcHJvbXB0IF9fQVJHUygodm9pZCkpOwotdm9pZCB3YWl0X3JldHVybiBfX0FSR1MoKGludCByZWRyYXcpKTsKLXZvaWQgc2V0X2tlZXBfbXNnIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgYXR0cikpOwotdm9pZCBzZXRfa2VlcF9tc2dfZnJvbV9oaXN0IF9fQVJHUygodm9pZCkpOwotdm9pZCBtc2dfc3RhcnQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1zZ19zdGFydGhlcmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1zZ19wdXRjaGFyIF9fQVJHUygoaW50IGMpKTsKLXZvaWQgbXNnX3B1dGNoYXJfYXR0ciBfX0FSR1MoKGludCBjLCBpbnQgYXR0cikpOwotdm9pZCBtc2dfb3V0bnVtIF9fQVJHUygobG9uZyBuKSk7Ci12b2lkIG1zZ19ob21lX3JlcGxhY2UgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7Ci12b2lkIG1zZ19ob21lX3JlcGxhY2VfaGwgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7Ci1pbnQgbXNnX291dHRyYW5zIF9fQVJHUygoY2hhcl91ICpzdHIpKTsKLWludCBtc2dfb3V0dHJhbnNfYXR0ciBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgYXR0cikpOwotaW50IG1zZ19vdXR0cmFuc19sZW4gX19BUkdTKChjaGFyX3UgKnN0ciwgaW50IGxlbikpOwotY2hhcl91ICptc2dfb3V0dHJhbnNfb25lIF9fQVJHUygoY2hhcl91ICpwLCBpbnQgYXR0cikpOwotaW50IG1zZ19vdXR0cmFuc19sZW5fYXR0ciBfX0FSR1MoKGNoYXJfdSAqbXNnc3RyLCBpbnQgbGVuLCBpbnQgYXR0cikpOwotdm9pZCBtc2dfbWFrZSBfX0FSR1MoKGNoYXJfdSAqYXJnKSk7Ci1pbnQgbXNnX291dHRyYW5zX3NwZWNpYWwgX19BUkdTKChjaGFyX3UgKnN0cnN0YXJ0LCBpbnQgZnJvbSkpOwotY2hhcl91ICpzdHIyc3BlY2lhbCBfX0FSR1MoKGNoYXJfdSAqKnNwLCBpbnQgZnJvbSkpOwotdm9pZCBzdHIyc3BlY2lhbGJ1ZiBfX0FSR1MoKGNoYXJfdSAqc3AsIGNoYXJfdSAqYnVmLCBpbnQgbGVuKSk7Ci12b2lkIG1zZ19wcnRfbGluZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxpc3QpKTsKLXZvaWQgbXNnX3B1dHMgX19BUkdTKChjaGFyX3UgKnMpKTsKLXZvaWQgbXNnX3B1dHNfdGl0bGUgX19BUkdTKChjaGFyX3UgKnMpKTsKLXZvaWQgbXNnX3B1dHNfbG9uZ19hdHRyIF9fQVJHUygoY2hhcl91ICpsb25nc3RyLCBpbnQgYXR0cikpOwotdm9pZCBtc2dfcHV0c19sb25nX2xlbl9hdHRyIF9fQVJHUygoY2hhcl91ICpsb25nc3RyLCBpbnQgbGVuLCBpbnQgYXR0cikpOwotdm9pZCBtc2dfcHV0c19hdHRyIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgYXR0cikpOwotdm9pZCBtYXlfY2xlYXJfc2JfdGV4dCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY2xlYXJfc2JfdGV4dCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgc2hvd19zYl90ZXh0IF9fQVJHUygodm9pZCkpOwotaW50IG1zZ191c2VfcHJpbnRmIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfZXJybXNnIF9fQVJHUygoY2hhciAqc3RyKSk7Ci12b2lkIG1jaF9tc2cgX19BUkdTKChjaGFyICpzdHIpKTsKLXZvaWQgbXNnX21vcmVtc2cgX19BUkdTKChpbnQgZnVsbCkpOwotdm9pZCByZXBlYXRfbWVzc2FnZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbXNnX2Nscl9lb3MgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1zZ19jbHJfZW9zX2ZvcmNlIF9fQVJHUygodm9pZCkpOwotdm9pZCBtc2dfY2xyX2NtZGxpbmUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbXNnX2VuZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbXNnX2NoZWNrIF9fQVJHUygodm9pZCkpOwotdm9pZCB2ZXJib3NlX2VudGVyIF9fQVJHUygodm9pZCkpOwotdm9pZCB2ZXJib3NlX2xlYXZlIF9fQVJHUygodm9pZCkpOwotdm9pZCB2ZXJib3NlX2VudGVyX3Njcm9sbCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgdmVyYm9zZV9sZWF2ZV9zY3JvbGwgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHZlcmJvc2Vfc3RvcCBfX0FSR1MoKHZvaWQpKTsKLWludCB2ZXJib3NlX29wZW4gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGdpdmVfd2FybmluZyBfX0FSR1MoKGNoYXJfdSAqbWVzc2FnZSwgaW50IGhsKSk7Ci12b2lkIG1zZ19hZHZhbmNlIF9fQVJHUygoaW50IGNvbCkpOwotaW50IGRvX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRmbHRidXR0b24sIGNoYXJfdSAqdGV4dGZpZWxkKSk7Ci12b2lkIGRpc3BsYXlfY29uZmlybV9tc2cgX19BUkdTKCh2b2lkKSk7Ci1pbnQgdmltX2RpYWxvZ195ZXNubyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGludCBkZmx0KSk7Ci1pbnQgdmltX2RpYWxvZ195ZXNub2NhbmNlbCBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGludCBkZmx0KSk7Ci1pbnQgdmltX2RpYWxvZ195ZXNub2FsbGNhbmNlbCBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGludCBkZmx0KSk7Ci1jaGFyX3UgKmRvX2Jyb3dzZSBfX0FSR1MoKGludCBmbGFncywgY2hhcl91ICp0aXRsZSwgY2hhcl91ICpkZmx0LCBjaGFyX3UgKmV4dCwgY2hhcl91ICppbml0ZGlyLCBjaGFyX3UgKmZpbHRlciwgYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGludCBtc2cgX19BUkdTKChjaGFyX3UgKnMpKTsKK2V4dGVybiBpbnQgdmVyYl9tc2cgX19BUkdTKChjaGFyX3UgKnMpKTsKK2V4dGVybiBpbnQgbXNnX2F0dHIgX19BUkdTKChjaGFyX3UgKnMsIGludCBhdHRyKSk7CitleHRlcm4gaW50IG1zZ19hdHRyX2tlZXAgX19BUkdTKChjaGFyX3UgKnMsIGludCBhdHRyLCBpbnQga2VlcCkpOworZXh0ZXJuIGNoYXJfdSAqbXNnX3N0cnRydW5jIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgZm9yY2UpKTsKK2V4dGVybiB2b2lkIHRydW5jX3N0cmluZyBfX0FSR1MoKGNoYXJfdSAqcywgY2hhcl91ICpidWYsIGludCByb29tKSk7CitleHRlcm4gdm9pZCByZXNldF9sYXN0X3NvdXJjaW5nIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbXNnX3NvdXJjZSBfX0FSR1MoKGludCBhdHRyKSk7CitleHRlcm4gaW50IGVtc2cgX19BUkdTKChjaGFyX3UgKnMpKTsKK2V4dGVybiBpbnQgZW1zZzIgX19BUkdTKChjaGFyX3UgKnMsIGNoYXJfdSAqYTEpKTsKK2V4dGVybiB2b2lkIGVtc2dfaW52cmVnIF9fQVJHUygoaW50IG5hbWUpKTsKK2V4dGVybiBjaGFyX3UgKm1zZ190cnVuY19hdHRyIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgZm9yY2UsIGludCBhdHRyKSk7CitleHRlcm4gY2hhcl91ICptc2dfbWF5X3RydW5jIF9fQVJHUygoaW50IGZvcmNlLCBjaGFyX3UgKnMpKTsKK2V4dGVybiBpbnQgZGVsZXRlX2ZpcnN0X21zZyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X21lc3NhZ2VzIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBtc2dfZW5kX3Byb21wdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdhaXRfcmV0dXJuIF9fQVJHUygoaW50IHJlZHJhdykpOworZXh0ZXJuIHZvaWQgc2V0X2tlZXBfbXNnIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgYXR0cikpOworZXh0ZXJuIHZvaWQgc2V0X2tlZXBfbXNnX2Zyb21faGlzdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1zZ19zdGFydCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1zZ19zdGFydGhlcmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtc2dfcHV0Y2hhciBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gdm9pZCBtc2dfcHV0Y2hhcl9hdHRyIF9fQVJHUygoaW50IGMsIGludCBhdHRyKSk7CitleHRlcm4gdm9pZCBtc2dfb3V0bnVtIF9fQVJHUygobG9uZyBuKSk7CitleHRlcm4gdm9pZCBtc2dfaG9tZV9yZXBsYWNlIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOworZXh0ZXJuIHZvaWQgbXNnX2hvbWVfcmVwbGFjZV9obCBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKK2V4dGVybiBpbnQgbXNnX291dHRyYW5zIF9fQVJHUygoY2hhcl91ICpzdHIpKTsKK2V4dGVybiBpbnQgbXNnX291dHRyYW5zX2F0dHIgX19BUkdTKChjaGFyX3UgKnN0ciwgaW50IGF0dHIpKTsKK2V4dGVybiBpbnQgbXNnX291dHRyYW5zX2xlbiBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgbGVuKSk7CitleHRlcm4gY2hhcl91ICptc2dfb3V0dHJhbnNfb25lIF9fQVJHUygoY2hhcl91ICpwLCBpbnQgYXR0cikpOworZXh0ZXJuIGludCBtc2dfb3V0dHJhbnNfbGVuX2F0dHIgX19BUkdTKChjaGFyX3UgKm1zZ3N0ciwgaW50IGxlbiwgaW50IGF0dHIpKTsKK2V4dGVybiB2b2lkIG1zZ19tYWtlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKK2V4dGVybiBpbnQgbXNnX291dHRyYW5zX3NwZWNpYWwgX19BUkdTKChjaGFyX3UgKnN0cnN0YXJ0LCBpbnQgZnJvbSkpOworZXh0ZXJuIGNoYXJfdSAqc3RyMnNwZWNpYWwgX19BUkdTKChjaGFyX3UgKipzcCwgaW50IGZyb20pKTsKK2V4dGVybiB2b2lkIHN0cjJzcGVjaWFsYnVmIF9fQVJHUygoY2hhcl91ICpzcCwgY2hhcl91ICpidWYsIGludCBsZW4pKTsKK2V4dGVybiB2b2lkIG1zZ19wcnRfbGluZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxpc3QpKTsKK2V4dGVybiB2b2lkIG1zZ19wdXRzIF9fQVJHUygoY2hhcl91ICpzKSk7CitleHRlcm4gdm9pZCBtc2dfcHV0c190aXRsZSBfX0FSR1MoKGNoYXJfdSAqcykpOworZXh0ZXJuIHZvaWQgbXNnX3B1dHNfbG9uZ19hdHRyIF9fQVJHUygoY2hhcl91ICpsb25nc3RyLCBpbnQgYXR0cikpOworZXh0ZXJuIHZvaWQgbXNnX3B1dHNfbG9uZ19sZW5fYXR0ciBfX0FSR1MoKGNoYXJfdSAqbG9uZ3N0ciwgaW50IGxlbiwgaW50IGF0dHIpKTsKK2V4dGVybiB2b2lkIG1zZ19wdXRzX2F0dHIgX19BUkdTKChjaGFyX3UgKnMsIGludCBhdHRyKSk7CitleHRlcm4gdm9pZCBtYXlfY2xlYXJfc2JfdGV4dCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNsZWFyX3NiX3RleHQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzaG93X3NiX3RleHQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1zZ191c2VfcHJpbnRmIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2Vycm1zZyBfX0FSR1MoKGNoYXIgKnN0cikpOworZXh0ZXJuIHZvaWQgbWNoX21zZyBfX0FSR1MoKGNoYXIgKnN0cikpOworZXh0ZXJuIHZvaWQgbXNnX21vcmVtc2cgX19BUkdTKChpbnQgZnVsbCkpOworZXh0ZXJuIHZvaWQgcmVwZWF0X21lc3NhZ2UgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtc2dfY2xyX2VvcyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1zZ19jbHJfZW9zX2ZvcmNlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbXNnX2Nscl9jbWRsaW5lIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtc2dfZW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbXNnX2NoZWNrIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgdmVyYm9zZV9lbnRlciBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHZlcmJvc2VfbGVhdmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB2ZXJib3NlX2VudGVyX3Njcm9sbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHZlcmJvc2VfbGVhdmVfc2Nyb2xsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgdmVyYm9zZV9zdG9wIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2ZXJib3NlX29wZW4gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBnaXZlX3dhcm5pbmcgX19BUkdTKChjaGFyX3UgKm1lc3NhZ2UsIGludCBobCkpOworZXh0ZXJuIHZvaWQgbXNnX2FkdmFuY2UgX19BUkdTKChpbnQgY29sKSk7CitleHRlcm4gaW50IGRvX2RpYWxvZyBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGNoYXJfdSAqYnV0dG9ucywgaW50IGRmbHRidXR0b24sIGNoYXJfdSAqdGV4dGZpZWxkKSk7CitleHRlcm4gdm9pZCBkaXNwbGF5X2NvbmZpcm1fbXNnIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2aW1fZGlhbG9nX3llc25vIF9fQVJHUygoaW50IHR5cGUsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqbWVzc2FnZSwgaW50IGRmbHQpKTsKK2V4dGVybiBpbnQgdmltX2RpYWxvZ195ZXNub2NhbmNlbCBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKm1lc3NhZ2UsIGludCBkZmx0KSk7CitleHRlcm4gaW50IHZpbV9kaWFsb2dfeWVzbm9hbGxjYW5jZWwgX19BUkdTKChpbnQgdHlwZSwgY2hhcl91ICp0aXRsZSwgY2hhcl91ICptZXNzYWdlLCBpbnQgZGZsdCkpOworZXh0ZXJuIGNoYXJfdSAqZG9fYnJvd3NlIF9fQVJHUygoaW50IGZsYWdzLCBjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmRmbHQsIGNoYXJfdSAqZXh0LCBjaGFyX3UgKmluaXRkaXIsIGNoYXJfdSAqZmlsdGVyLCBidWZfVCAqYnVmKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9uZXRiZWFucy5wcm8gYi9zcmMvcHJvdG8vbmV0YmVhbnMucHJvCmluZGV4IDc1ZDAxNDkuLjcxYTVlYzQgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9uZXRiZWFucy5wcm8KKysrIGIvc3JjL3Byb3RvL25ldGJlYW5zLnBybwpAQCAtMSwyNSArMSwyNSBAQAogLyogbmV0YmVhbnMuYyAqLwotdm9pZCBtZXNzYWdlRnJvbU5ldGJlYW5zVzMyIF9fQVJHUygodm9pZCkpOwotaW50IGlzTmV0YmVhbnNCdWZmZXIgX19BUkdTKChidWZfVCAqYnVmcCkpOwotaW50IGlzTmV0YmVhbnNNb2RpZmllZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7Ci12b2lkIG5ldGJlYW5zX2VuZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZXhfbmJrZXkgX19BUkdTKChleGFyZ19UICplYXApKTsKLXZvaWQgbmV0YmVhbnNfYmV2YWxfY2IgX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwsIGludCBzdGF0ZSkpOwotdm9pZCBuZXRiZWFuc19zdGFydHVwX2RvbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG5ldGJlYW5zX3NlbmRfZGlzY29ubmVjdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbmV0YmVhbnNfZnJhbWVfbW92ZWQgX19BUkdTKChpbnQgbmV3X3gsIGludCBuZXdfeSkpOwotdm9pZCBuZXRiZWFuc19maWxlX2FjdGl2YXRlZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7Ci12b2lkIG5ldGJlYW5zX2ZpbGVfb3BlbmVkIF9fQVJHUygoYnVmX1QgKmJ1ZnApKTsKLXZvaWQgbmV0YmVhbnNfZmlsZV9jbG9zZWQgX19BUkdTKChidWZfVCAqYnVmcCkpOwotdm9pZCBuZXRiZWFuc19pbnNlcnRlZCBfX0FSR1MoKGJ1Zl9UICpidWZwLCBsaW5lbnJfVCBsaW5lbnIsIGNvbG5yX1QgY29sLCBjaGFyX3UgKnR4dCwgaW50IG5ld2xlbikpOwotdm9pZCBuZXRiZWFuc19yZW1vdmVkIF9fQVJHUygoYnVmX1QgKmJ1ZnAsIGxpbmVucl9UIGxpbmVuciwgY29sbnJfVCBjb2wsIGxvbmcgbGVuKSk7Ci12b2lkIG5ldGJlYW5zX3VubW9kaWZpZWQgX19BUkdTKChidWZfVCAqYnVmcCkpOwotdm9pZCBuZXRiZWFuc19idXR0b25fcmVsZWFzZSBfX0FSR1MoKGludCBidXR0b24pKTsKLXZvaWQgbmV0YmVhbnNfa2V5Y29tbWFuZCBfX0FSR1MoKGludCBrZXkpKTsKLXZvaWQgbmV0YmVhbnNfc2F2ZV9idWZmZXIgX19BUkdTKChidWZfVCAqYnVmcCkpOwotdm9pZCBuZXRiZWFuc19kZWxldGVkX2FsbF9saW5lcyBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7Ci1pbnQgbmV0YmVhbnNfaXNfZ3VhcmRlZCBfX0FSR1MoKGxpbmVucl9UIHRvcCwgbGluZW5yX1QgYm90KSk7Ci12b2lkIG5ldGJlYW5zX2RyYXdfbXVsdGlzaWduX2luZGljYXRvciBfX0FSR1MoKGludCByb3cpKTsKLXZvaWQgbmV0YmVhbnNfZHJhd19tdWx0aXNpZ25faW5kaWNhdG9yIF9fQVJHUygoaW50IHJvdykpOwotdm9pZCBuZXRiZWFuc19ndXR0ZXJfY2xpY2sgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gdm9pZCBtZXNzYWdlRnJvbU5ldGJlYW5zVzMyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBpc05ldGJlYW5zQnVmZmVyIF9fQVJHUygoYnVmX1QgKmJ1ZnApKTsKK2V4dGVybiBpbnQgaXNOZXRiZWFuc01vZGlmaWVkIF9fQVJHUygoYnVmX1QgKmJ1ZnApKTsKK2V4dGVybiB2b2lkIG5ldGJlYW5zX2VuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X25ia2V5IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19iZXZhbF9jYiBfX0FSR1MoKEJhbGxvb25FdmFsICpiZXZhbCwgaW50IHN0YXRlKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19zdGFydHVwX2RvbmUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19zZW5kX2Rpc2Nvbm5lY3QgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19mcmFtZV9tb3ZlZCBfX0FSR1MoKGludCBuZXdfeCwgaW50IG5ld195KSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19maWxlX2FjdGl2YXRlZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19maWxlX29wZW5lZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19maWxlX2Nsb3NlZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19pbnNlcnRlZCBfX0FSR1MoKGJ1Zl9UICpidWZwLCBsaW5lbnJfVCBsaW5lbnIsIGNvbG5yX1QgY29sLCBjaGFyX3UgKnR4dCwgaW50IG5ld2xlbikpOworZXh0ZXJuIHZvaWQgbmV0YmVhbnNfcmVtb3ZlZCBfX0FSR1MoKGJ1Zl9UICpidWZwLCBsaW5lbnJfVCBsaW5lbnIsIGNvbG5yX1QgY29sLCBsb25nIGxlbikpOworZXh0ZXJuIHZvaWQgbmV0YmVhbnNfdW5tb2RpZmllZCBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19idXR0b25fcmVsZWFzZSBfX0FSR1MoKGludCBidXR0b24pKTsKK2V4dGVybiB2b2lkIG5ldGJlYW5zX2tleWNvbW1hbmQgX19BUkdTKChpbnQga2V5KSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19zYXZlX2J1ZmZlciBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gdm9pZCBuZXRiZWFuc19kZWxldGVkX2FsbF9saW5lcyBfX0FSR1MoKGJ1Zl9UICpidWZwKSk7CitleHRlcm4gaW50IG5ldGJlYW5zX2lzX2d1YXJkZWQgX19BUkdTKChsaW5lbnJfVCB0b3AsIGxpbmVucl9UIGJvdCkpOworZXh0ZXJuIHZvaWQgbmV0YmVhbnNfZHJhd19tdWx0aXNpZ25faW5kaWNhdG9yIF9fQVJHUygoaW50IHJvdykpOworZXh0ZXJuIHZvaWQgbmV0YmVhbnNfZHJhd19tdWx0aXNpZ25faW5kaWNhdG9yIF9fQVJHUygoaW50IHJvdykpOworZXh0ZXJuIHZvaWQgbmV0YmVhbnNfZ3V0dGVyX2NsaWNrIF9fQVJHUygobGluZW5yX1QgbG51bSkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vbm9ybWFsLnBybyBiL3NyYy9wcm90by9ub3JtYWwucHJvCmluZGV4IDU1ZTgxNjMuLjgyODBlNDUgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ub3JtYWwucHJvCisrKyBiL3NyYy9wcm90by9ub3JtYWwucHJvCkBAIC0xLDI2ICsxLDI2IEBACiAvKiBub3JtYWwuYyAqLwotdm9pZCBpbml0X25vcm1hbF9jbWRzIF9fQVJHUygodm9pZCkpOwotdm9pZCBub3JtYWxfY21kIF9fQVJHUygob3BhcmdfVCAqb2FwLCBpbnQgdG9wbGV2ZWwpKTsKLXZvaWQgZG9fcGVuZGluZ19vcGVyYXRvciBfX0FSR1MoKGNtZGFyZ19UICpjYXAsIGludCBvbGRfY29sLCBpbnQgZ3VpX3lhbmspKTsKLWludCBkb19tb3VzZSBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGMsIGludCBkaXIsIGxvbmcgY291bnQsIGludCBmaXhpbmRlbnQpKTsKLXZvaWQgY2hlY2tfdmlzdWFsX2hpZ2hsaWdodCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZW5kX3Zpc3VhbF9tb2RlIF9fQVJHUygodm9pZCkpOwotdm9pZCByZXNldF9WSXN1YWxfYW5kX3Jlc2VsIF9fQVJHUygodm9pZCkpOwotdm9pZCByZXNldF9WSXN1YWwgX19BUkdTKCh2b2lkKSk7Ci1pbnQgZmluZF9pZGVudF91bmRlcl9jdXJzb3IgX19BUkdTKChjaGFyX3UgKipzdHJpbmcsIGludCBmaW5kX3R5cGUpKTsKLWludCBmaW5kX2lkZW50X2F0X3BvcyBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbG51bSwgY29sbnJfVCBzdGFydGNvbCwgY2hhcl91ICoqc3RyaW5nLCBpbnQgZmluZF90eXBlKSk7Ci12b2lkIGNsZWFyX3Nob3djbWQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgYWRkX3RvX3Nob3djbWQgX19BUkdTKChpbnQgYykpOwotdm9pZCBhZGRfdG9fc2hvd2NtZF9jIF9fQVJHUygoaW50IGMpKTsKLXZvaWQgcHVzaF9zaG93Y21kIF9fQVJHUygodm9pZCkpOwotdm9pZCBwb3Bfc2hvd2NtZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgZG9fY2hlY2tfc2Nyb2xsYmluZCBfX0FSR1MoKGludCBjaGVjaykpOwotdm9pZCBjaGVja19zY3JvbGxiaW5kIF9fQVJHUygobGluZW5yX1QgdG9wbGluZV9kaWZmLCBsb25nIGxlZnRjb2xfZGlmZikpOwotaW50IGZpbmRfZGVjbCBfX0FSR1MoKGNoYXJfdSAqcHRyLCBpbnQgbGVuLCBpbnQgbG9jYWxseSwgaW50IHRoaXNibG9jaywgaW50IHNlYXJjaGZsYWdzKSk7Ci12b2lkIHNjcm9sbF9yZWRyYXcgX19BUkdTKChpbnQgdXAsIGxvbmcgY291bnQpKTsKLXZvaWQgaGFuZGxlX3RhYm1lbnUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGRvX252X2lkZW50IF9fQVJHUygoaW50IGMxLCBpbnQgYzIpKTsKLWludCBnZXRfdmlzdWFsX3RleHQgX19BUkdTKChjbWRhcmdfVCAqY2FwLCBjaGFyX3UgKipwcCwgaW50ICpsZW5wKSk7Ci12b2lkIHN0YXJ0X3NlbGVjdGlvbiBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWF5X3N0YXJ0X3NlbGVjdCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gdm9pZCBpbml0X25vcm1hbF9jbWRzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbm9ybWFsX2NtZCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IHRvcGxldmVsKSk7CitleHRlcm4gdm9pZCBkb19wZW5kaW5nX29wZXJhdG9yIF9fQVJHUygoY21kYXJnX1QgKmNhcCwgaW50IG9sZF9jb2wsIGludCBndWlfeWFuaykpOworZXh0ZXJuIGludCBkb19tb3VzZSBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGMsIGludCBkaXIsIGxvbmcgY291bnQsIGludCBmaXhpbmRlbnQpKTsKK2V4dGVybiB2b2lkIGNoZWNrX3Zpc3VhbF9oaWdobGlnaHQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBlbmRfdmlzdWFsX21vZGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXNldF9WSXN1YWxfYW5kX3Jlc2VsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgcmVzZXRfVklzdWFsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBmaW5kX2lkZW50X3VuZGVyX2N1cnNvciBfX0FSR1MoKGNoYXJfdSAqKnN0cmluZywgaW50IGZpbmRfdHlwZSkpOworZXh0ZXJuIGludCBmaW5kX2lkZW50X2F0X3BvcyBfX0FSR1MoKHdpbl9UICp3cCwgbGluZW5yX1QgbG51bSwgY29sbnJfVCBzdGFydGNvbCwgY2hhcl91ICoqc3RyaW5nLCBpbnQgZmluZF90eXBlKSk7CitleHRlcm4gdm9pZCBjbGVhcl9zaG93Y21kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBhZGRfdG9fc2hvd2NtZCBfX0FSR1MoKGludCBjKSk7CitleHRlcm4gdm9pZCBhZGRfdG9fc2hvd2NtZF9jIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiB2b2lkIHB1c2hfc2hvd2NtZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHBvcF9zaG93Y21kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZG9fY2hlY2tfc2Nyb2xsYmluZCBfX0FSR1MoKGludCBjaGVjaykpOworZXh0ZXJuIHZvaWQgY2hlY2tfc2Nyb2xsYmluZCBfX0FSR1MoKGxpbmVucl9UIHRvcGxpbmVfZGlmZiwgbG9uZyBsZWZ0Y29sX2RpZmYpKTsKK2V4dGVybiBpbnQgZmluZF9kZWNsIF9fQVJHUygoY2hhcl91ICpwdHIsIGludCBsZW4sIGludCBsb2NhbGx5LCBpbnQgdGhpc2Jsb2NrLCBpbnQgc2VhcmNoZmxhZ3MpKTsKK2V4dGVybiB2b2lkIHNjcm9sbF9yZWRyYXcgX19BUkdTKChpbnQgdXAsIGxvbmcgY291bnQpKTsKK2V4dGVybiB2b2lkIGhhbmRsZV90YWJtZW51IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgZG9fbnZfaWRlbnQgX19BUkdTKChpbnQgYzEsIGludCBjMikpOworZXh0ZXJuIGludCBnZXRfdmlzdWFsX3RleHQgX19BUkdTKChjbWRhcmdfVCAqY2FwLCBjaGFyX3UgKipwcCwgaW50ICpsZW5wKSk7CitleHRlcm4gdm9pZCBzdGFydF9zZWxlY3Rpb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtYXlfc3RhcnRfc2VsZWN0IF9fQVJHUygoaW50IGMpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL29wcy5wcm8gYi9zcmMvcHJvdG8vb3BzLnBybwppbmRleCAzYjRjOWM0Li5mYjUxY2FiIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vb3BzLnBybworKysgYi9zcmMvcHJvdG8vb3BzLnBybwpAQCAtMSw2MCArMSw2MCBAQAogLyogb3BzLmMgKi8KLWludCBnZXRfb3BfdHlwZSBfX0FSR1MoKGludCBjaGFyMSwgaW50IGNoYXIyKSk7Ci1pbnQgb3Bfb25fbGluZXMgX19BUkdTKChpbnQgb3ApKTsKLWludCBnZXRfb3BfY2hhciBfX0FSR1MoKGludCBvcHR5cGUpKTsKLWludCBnZXRfZXh0cmFfb3BfY2hhciBfX0FSR1MoKGludCBvcHR5cGUpKTsKLXZvaWQgb3Bfc2hpZnQgX19BUkdTKChvcGFyZ19UICpvYXAsIGludCBjdXJzX3RvcCwgaW50IGFtb3VudCkpOwotdm9pZCBzaGlmdF9saW5lIF9fQVJHUygoaW50IGxlZnQsIGludCByb3VuZCwgaW50IGFtb3VudCkpOwotdm9pZCBvcF9yZWluZGVudCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50ICgqaG93KSh2b2lkKSkpOwotaW50IGdldF9leHByX3JlZ2lzdGVyIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfZXhwcl9saW5lIF9fQVJHUygoY2hhcl91ICpuZXdfbGluZSkpOwotY2hhcl91ICpnZXRfZXhwcl9saW5lIF9fQVJHUygodm9pZCkpOwotY2hhcl91ICpnZXRfZXhwcl9saW5lX3NyYyBfX0FSR1MoKHZvaWQpKTsKLWludCB2YWxpZF95YW5rX3JlZyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgd3JpdGluZykpOwotdm9pZCBnZXRfeWFua19yZWdpc3RlciBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgd3JpdGluZykpOwotaW50IG1heV9nZXRfc2VsZWN0aW9uIF9fQVJHUygoaW50IHJlZ25hbWUpKTsKLXZvaWQgKmdldF9yZWdpc3RlciBfX0FSR1MoKGludCBuYW1lLCBpbnQgY29weSkpOwotdm9pZCBwdXRfcmVnaXN0ZXIgX19BUkdTKChpbnQgbmFtZSwgdm9pZCAqcmVnKSk7Ci1pbnQgeWFua19yZWdpc3Rlcl9tbGluZSBfX0FSR1MoKGludCByZWduYW1lKSk7Ci1pbnQgZG9fcmVjb3JkIF9fQVJHUygoaW50IGMpKTsKLWludCBkb19leGVjcmVnIF9fQVJHUygoaW50IHJlZ25hbWUsIGludCBjb2xvbiwgaW50IGFkZGNyKSk7Ci1pbnQgaW5zZXJ0X3JlZyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgbGl0ZXJhbGx5KSk7Ci1pbnQgZ2V0X3NwZWNfcmVnIF9fQVJHUygoaW50IHJlZ25hbWUsIGNoYXJfdSAqKmFyZ3AsIGludCAqYWxsb2NhdGVkLCBpbnQgZXJybXNnKSk7Ci1pbnQgY21kbGluZV9wYXN0ZV9yZWcgX19BUkdTKChpbnQgcmVnbmFtZSwgaW50IGxpdGVyYWxseSkpOwotdm9pZCBhZGp1c3RfY2xpcF9yZWcgX19BUkdTKChpbnQgKnJwKSk7Ci1pbnQgb3BfZGVsZXRlIF9fQVJHUygob3BhcmdfVCAqb2FwKSk7Ci1pbnQgb3BfcmVwbGFjZSBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGMpKTsKLXZvaWQgb3BfdGlsZGUgX19BUkdTKChvcGFyZ19UICpvYXApKTsKLWludCBzd2FwY2hhciBfX0FSR1MoKGludCBvcF90eXBlLCBwb3NfVCAqcG9zKSk7Ci12b2lkIG9wX2luc2VydCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgbG9uZyBjb3VudDEpKTsKLWludCBvcF9jaGFuZ2UgX19BUkdTKChvcGFyZ19UICpvYXApKTsKLXZvaWQgaW5pdF95YW5rIF9fQVJHUygodm9pZCkpOwotdm9pZCBjbGVhcl9yZWdpc3RlcnMgX19BUkdTKCh2b2lkKSk7Ci1pbnQgb3BfeWFuayBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGRlbGV0aW5nLCBpbnQgbWVzcykpOwotdm9pZCBkb19wdXQgX19BUkdTKChpbnQgcmVnbmFtZSwgaW50IGRpciwgbG9uZyBjb3VudCwgaW50IGZsYWdzKSk7Ci1pbnQgcHJlcHJvY3NfbGVmdCBfX0FSR1MoKHZvaWQpKTsKLWludCBnZXRfcmVnaXN0ZXJfbmFtZSBfX0FSR1MoKGludCBudW0pKTsKLXZvaWQgZXhfZGlzcGxheSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBkb19kb19qb2luIF9fQVJHUygobG9uZyBjb3VudCwgaW50IGluc2VydF9zcGFjZSkpOwotaW50IGRvX2pvaW4gX19BUkdTKChpbnQgaW5zZXJ0X3NwYWNlKSk7Ci12b2lkIG9wX2Zvcm1hdCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGtlZXBfY3Vyc29yKSk7Ci12b2lkIG9wX2Zvcm1hdGV4cHIgX19BUkdTKChvcGFyZ19UICpvYXApKTsKLWludCBmZXhfZm9ybWF0IF9fQVJHUygobGluZW5yX1QgbG51bSwgbG9uZyBjb3VudCkpOwotdm9pZCBmb3JtYXRfbGluZXMgX19BUkdTKChsaW5lbnJfVCBsaW5lX2NvdW50KSk7Ci1pbnQgcGFyYWdyYXBoX3N0YXJ0IF9fQVJHUygobGluZW5yX1QgbG51bSkpOwotaW50IGRvX2FkZHN1YiBfX0FSR1MoKGludCBjb21tYW5kLCBsaW5lbnJfVCBQcmVudW0xKSk7Ci1pbnQgcmVhZF92aW1pbmZvX3JlZ2lzdGVyIF9fQVJHUygodmlyX1QgKnZpcnAsIGludCBmb3JjZSkpOwotdm9pZCB3cml0ZV92aW1pbmZvX3JlZ2lzdGVycyBfX0FSR1MoKEZJTEUgKmZwKSk7Ci12b2lkIHgxMV9leHBvcnRfZmluYWxfc2VsZWN0aW9uIF9fQVJHUygodm9pZCkpOwotdm9pZCBjbGlwX2ZyZWVfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLXZvaWQgY2xpcF9nZXRfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLXZvaWQgY2xpcF95YW5rX3NlbGVjdGlvbiBfX0FSR1MoKGludCB0eXBlLCBjaGFyX3UgKnN0ciwgbG9uZyBsZW4sIFZpbUNsaXBib2FyZCAqY2JkKSk7Ci1pbnQgY2xpcF9jb252ZXJ0X3NlbGVjdGlvbiBfX0FSR1MoKGNoYXJfdSAqKnN0ciwgbG9uZ191ICpsZW4sIFZpbUNsaXBib2FyZCAqY2JkKSk7Ci12b2lkIGRuZF95YW5rX2RyYWdfZGF0YSBfX0FSR1MoKGNoYXJfdSAqc3RyLCBsb25nIGxlbikpOwotY2hhcl91IGdldF9yZWdfdHlwZSBfX0FSR1MoKGludCByZWduYW1lLCBsb25nICpyZWdsZW4pKTsKLWNoYXJfdSAqZ2V0X3JlZ19jb250ZW50cyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgYWxsb3dleHByLCBpbnQgZXhwcl9zcmMpKTsKLXZvaWQgd3JpdGVfcmVnX2NvbnRlbnRzIF9fQVJHUygoaW50IG5hbWUsIGNoYXJfdSAqc3RyLCBpbnQgbWF4bGVuLCBpbnQgbXVzdF9hcHBlbmQpKTsKLXZvaWQgd3JpdGVfcmVnX2NvbnRlbnRzX2V4IF9fQVJHUygoaW50IG5hbWUsIGNoYXJfdSAqc3RyLCBpbnQgbWF4bGVuLCBpbnQgbXVzdF9hcHBlbmQsIGludCB5YW5rX3R5cGUsIGxvbmcgYmxvY2tfbGVuKSk7Ci12b2lkIGNsZWFyX29wYXJnIF9fQVJHUygob3BhcmdfVCAqb2FwKSk7Ci12b2lkIGN1cnNvcl9wb3NfaW5mbyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZ2V0X29wX3R5cGUgX19BUkdTKChpbnQgY2hhcjEsIGludCBjaGFyMikpOworZXh0ZXJuIGludCBvcF9vbl9saW5lcyBfX0FSR1MoKGludCBvcCkpOworZXh0ZXJuIGludCBnZXRfb3BfY2hhciBfX0FSR1MoKGludCBvcHR5cGUpKTsKK2V4dGVybiBpbnQgZ2V0X2V4dHJhX29wX2NoYXIgX19BUkdTKChpbnQgb3B0eXBlKSk7CitleHRlcm4gdm9pZCBvcF9zaGlmdCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGN1cnNfdG9wLCBpbnQgYW1vdW50KSk7CitleHRlcm4gdm9pZCBzaGlmdF9saW5lIF9fQVJHUygoaW50IGxlZnQsIGludCByb3VuZCwgaW50IGFtb3VudCkpOworZXh0ZXJuIHZvaWQgb3BfcmVpbmRlbnQgX19BUkdTKChvcGFyZ19UICpvYXAsIGludCAoKmhvdykodm9pZCkpKTsKK2V4dGVybiBpbnQgZ2V0X2V4cHJfcmVnaXN0ZXIgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzZXRfZXhwcl9saW5lIF9fQVJHUygoY2hhcl91ICpuZXdfbGluZSkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X2V4cHJfbGluZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmdldF9leHByX2xpbmVfc3JjIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2YWxpZF95YW5rX3JlZyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgd3JpdGluZykpOworZXh0ZXJuIHZvaWQgZ2V0X3lhbmtfcmVnaXN0ZXIgX19BUkdTKChpbnQgcmVnbmFtZSwgaW50IHdyaXRpbmcpKTsKK2V4dGVybiBpbnQgbWF5X2dldF9zZWxlY3Rpb24gX19BUkdTKChpbnQgcmVnbmFtZSkpOworZXh0ZXJuIHZvaWQgKmdldF9yZWdpc3RlciBfX0FSR1MoKGludCBuYW1lLCBpbnQgY29weSkpOworZXh0ZXJuIHZvaWQgcHV0X3JlZ2lzdGVyIF9fQVJHUygoaW50IG5hbWUsIHZvaWQgKnJlZykpOworZXh0ZXJuIGludCB5YW5rX3JlZ2lzdGVyX21saW5lIF9fQVJHUygoaW50IHJlZ25hbWUpKTsKK2V4dGVybiBpbnQgZG9fcmVjb3JkIF9fQVJHUygoaW50IGMpKTsKK2V4dGVybiBpbnQgZG9fZXhlY3JlZyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgY29sb24sIGludCBhZGRjcikpOworZXh0ZXJuIGludCBpbnNlcnRfcmVnIF9fQVJHUygoaW50IHJlZ25hbWUsIGludCBsaXRlcmFsbHkpKTsKK2V4dGVybiBpbnQgZ2V0X3NwZWNfcmVnIF9fQVJHUygoaW50IHJlZ25hbWUsIGNoYXJfdSAqKmFyZ3AsIGludCAqYWxsb2NhdGVkLCBpbnQgZXJybXNnKSk7CitleHRlcm4gaW50IGNtZGxpbmVfcGFzdGVfcmVnIF9fQVJHUygoaW50IHJlZ25hbWUsIGludCBsaXRlcmFsbHkpKTsKK2V4dGVybiB2b2lkIGFkanVzdF9jbGlwX3JlZyBfX0FSR1MoKGludCAqcnApKTsKK2V4dGVybiBpbnQgb3BfZGVsZXRlIF9fQVJHUygob3BhcmdfVCAqb2FwKSk7CitleHRlcm4gaW50IG9wX3JlcGxhY2UgX19BUkdTKChvcGFyZ19UICpvYXAsIGludCBjKSk7CitleHRlcm4gdm9pZCBvcF90aWxkZSBfX0FSR1MoKG9wYXJnX1QgKm9hcCkpOworZXh0ZXJuIGludCBzd2FwY2hhciBfX0FSR1MoKGludCBvcF90eXBlLCBwb3NfVCAqcG9zKSk7CitleHRlcm4gdm9pZCBvcF9pbnNlcnQgX19BUkdTKChvcGFyZ19UICpvYXAsIGxvbmcgY291bnQxKSk7CitleHRlcm4gaW50IG9wX2NoYW5nZSBfX0FSR1MoKG9wYXJnX1QgKm9hcCkpOworZXh0ZXJuIHZvaWQgaW5pdF95YW5rIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgY2xlYXJfcmVnaXN0ZXJzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBvcF95YW5rIF9fQVJHUygob3BhcmdfVCAqb2FwLCBpbnQgZGVsZXRpbmcsIGludCBtZXNzKSk7CitleHRlcm4gdm9pZCBkb19wdXQgX19BUkdTKChpbnQgcmVnbmFtZSwgaW50IGRpciwgbG9uZyBjb3VudCwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IHByZXByb2NzX2xlZnQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGdldF9yZWdpc3Rlcl9uYW1lIF9fQVJHUygoaW50IG51bSkpOworZXh0ZXJuIHZvaWQgZXhfZGlzcGxheSBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgZG9fZG9fam9pbiBfX0FSR1MoKGxvbmcgY291bnQsIGludCBpbnNlcnRfc3BhY2UpKTsKK2V4dGVybiBpbnQgZG9fam9pbiBfX0FSR1MoKGludCBpbnNlcnRfc3BhY2UpKTsKK2V4dGVybiB2b2lkIG9wX2Zvcm1hdCBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgaW50IGtlZXBfY3Vyc29yKSk7CitleHRlcm4gdm9pZCBvcF9mb3JtYXRleHByIF9fQVJHUygob3BhcmdfVCAqb2FwKSk7CitleHRlcm4gaW50IGZleF9mb3JtYXQgX19BUkdTKChsaW5lbnJfVCBsbnVtLCBsb25nIGNvdW50KSk7CitleHRlcm4gdm9pZCBmb3JtYXRfbGluZXMgX19BUkdTKChsaW5lbnJfVCBsaW5lX2NvdW50KSk7CitleHRlcm4gaW50IHBhcmFncmFwaF9zdGFydCBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiBpbnQgZG9fYWRkc3ViIF9fQVJHUygoaW50IGNvbW1hbmQsIGxpbmVucl9UIFByZW51bTEpKTsKK2V4dGVybiBpbnQgcmVhZF92aW1pbmZvX3JlZ2lzdGVyIF9fQVJHUygodmlyX1QgKnZpcnAsIGludCBmb3JjZSkpOworZXh0ZXJuIHZvaWQgd3JpdGVfdmltaW5mb19yZWdpc3RlcnMgX19BUkdTKChGSUxFICpmcCkpOworZXh0ZXJuIHZvaWQgeDExX2V4cG9ydF9maW5hbF9zZWxlY3Rpb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBjbGlwX2ZyZWVfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKK2V4dGVybiB2b2lkIGNsaXBfZ2V0X3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gdm9pZCBjbGlwX3lhbmtfc2VsZWN0aW9uIF9fQVJHUygoaW50IHR5cGUsIGNoYXJfdSAqc3RyLCBsb25nIGxlbiwgVmltQ2xpcGJvYXJkICpjYmQpKTsKK2V4dGVybiBpbnQgY2xpcF9jb252ZXJ0X3NlbGVjdGlvbiBfX0FSR1MoKGNoYXJfdSAqKnN0ciwgbG9uZ191ICpsZW4sIFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gdm9pZCBkbmRfeWFua19kcmFnX2RhdGEgX19BUkdTKChjaGFyX3UgKnN0ciwgbG9uZyBsZW4pKTsKK2V4dGVybiBjaGFyX3UgZ2V0X3JlZ190eXBlIF9fQVJHUygoaW50IHJlZ25hbWUsIGxvbmcgKnJlZ2xlbikpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3JlZ19jb250ZW50cyBfX0FSR1MoKGludCByZWduYW1lLCBpbnQgYWxsb3dleHByLCBpbnQgZXhwcl9zcmMpKTsKK2V4dGVybiB2b2lkIHdyaXRlX3JlZ19jb250ZW50cyBfX0FSR1MoKGludCBuYW1lLCBjaGFyX3UgKnN0ciwgaW50IG1heGxlbiwgaW50IG11c3RfYXBwZW5kKSk7CitleHRlcm4gdm9pZCB3cml0ZV9yZWdfY29udGVudHNfZXggX19BUkdTKChpbnQgbmFtZSwgY2hhcl91ICpzdHIsIGludCBtYXhsZW4sIGludCBtdXN0X2FwcGVuZCwgaW50IHlhbmtfdHlwZSwgbG9uZyBibG9ja19sZW4pKTsKK2V4dGVybiB2b2lkIGNsZWFyX29wYXJnIF9fQVJHUygob3BhcmdfVCAqb2FwKSk7CitleHRlcm4gdm9pZCBjdXJzb3JfcG9zX2luZm8gX19BUkdTKCh2b2lkKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9vcHRpb24ucHJvIGIvc3JjL3Byb3RvL29wdGlvbi5wcm8KaW5kZXggZmFlZWM2My4uNjIxZDc4MSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29wdGlvbi5wcm8KKysrIGIvc3JjL3Byb3RvL29wdGlvbi5wcm8KQEAgLTEsNTcgKzEsNTYgQEAKIC8qIG9wdGlvbi5jICovCi12b2lkIHNldF9pbml0XzEgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNldF9zdHJpbmdfZGVmYXVsdCBfX0FSR1MoKGNoYXIgKm5hbWUsIGNoYXJfdSAqdmFsKSk7Ci12b2lkIHNldF9udW1iZXJfZGVmYXVsdCBfX0FSR1MoKGNoYXIgKm5hbWUsIGxvbmcgdmFsKSk7Ci12b2lkIGZyZWVfYWxsX29wdGlvbnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNldF9pbml0XzIgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNldF9pbml0XzMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNldF9oZWxwbGFuZ19kZWZhdWx0IF9fQVJHUygoY2hhcl91ICpsYW5nKSk7Ci12b2lkIGluaXRfZ3VpX29wdGlvbnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNldF90aXRsZV9kZWZhdWx0cyBfX0FSR1MoKHZvaWQpKTsKLWludCBkb19zZXQgX19BUkdTKChjaGFyX3UgKmFyZywgaW50IG9wdF9mbGFncykpOwotdm9pZCBzZXRfb3B0aW9uc19iaW4gX19BUkdTKChpbnQgb2xkdmFsLCBpbnQgbmV3dmFsLCBpbnQgb3B0X2ZsYWdzKSk7Ci1pbnQgZ2V0X3ZpbWluZm9fcGFyYW1ldGVyIF9fQVJHUygoaW50IHR5cGUpKTsKLWNoYXJfdSAqZmluZF92aW1pbmZvX3BhcmFtZXRlciBfX0FSR1MoKGludCB0eXBlKSk7Ci12b2lkIGNoZWNrX29wdGlvbnMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGNoZWNrX2J1Zl9vcHRpb25zIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotdm9pZCBmcmVlX3N0cmluZ19vcHRpb24gX19BUkdTKChjaGFyX3UgKnApKTsKLXZvaWQgY2xlYXJfc3RyaW5nX29wdGlvbiBfX0FSR1MoKGNoYXJfdSAqKnBwKSk7Ci12b2lkIHNldF90ZXJtX29wdGlvbl9hbGxvY2VkIF9fQVJHUygoY2hhcl91ICoqcCkpOwotaW50IHdhc19zZXRfaW5zZWN1cmVseSBfX0FSR1MoKGNoYXJfdSAqb3B0LCBpbnQgb3B0X2ZsYWdzKSk7Ci12b2lkIHNldF9zdHJpbmdfb3B0aW9uX2RpcmVjdCBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgaW50IG9wdF9pZHgsIGNoYXJfdSAqdmFsLCBpbnQgb3B0X2ZsYWdzLCBpbnQgc2V0X3NpZCkpOwotY2hhcl91ICpjaGVja19zdGxfb3B0aW9uIF9fQVJHUygoY2hhcl91ICpzKSk7Ci12b2lkIHNldF9vcHRpb25fc2NyaXB0SUQgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBpZCkpOwotaW50IGdldF9vcHRpb25fdmFsdWUgX19BUkdTKChjaGFyX3UgKm5hbWUsIGxvbmcgKm51bXZhbCwgY2hhcl91ICoqc3RyaW5ndmFsLCBpbnQgb3B0X2ZsYWdzKSk7Ci12b2lkIHNldF9vcHRpb25fdmFsdWUgX19BUkdTKChjaGFyX3UgKm5hbWUsIGxvbmcgbnVtYmVyLCBjaGFyX3UgKnN0cmluZywgaW50IG9wdF9mbGFncykpOwotY2hhcl91ICpnZXRfdGVybV9jb2RlIF9fQVJHUygoY2hhcl91ICp0bmFtZSkpOwotY2hhcl91ICpnZXRfaGlnaGxpZ2h0X2RlZmF1bHQgX19BUkdTKCh2b2lkKSk7Ci1jaGFyX3UgKmdldF9lbmNvZGluZ19kZWZhdWx0IF9fQVJHUygodm9pZCkpOwotaW50IG1ha2VzZXQgX19BUkdTKChGSUxFICpmZCwgaW50IG9wdF9mbGFncywgaW50IGxvY2FsX29ubHkpKTsKLWludCBtYWtlZm9sZHNldCBfX0FSR1MoKEZJTEUgKmZkKSk7Ci12b2lkIGNsZWFyX3Rlcm1vcHRpb25zIF9fQVJHUygodm9pZCkpOwotdm9pZCBmcmVlX3Rlcm1vcHRpb25zIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfdGVybV9kZWZhdWx0cyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY29tcF9jb2wgX19BUkdTKCh2b2lkKSk7Ci1jaGFyX3UgKmdldF9lcXVhbHByZyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd2luX2NvcHlfb3B0aW9ucyBfX0FSR1MoKHdpbl9UICp3cF9mcm9tLCB3aW5fVCAqd3BfdG8pKTsKLXZvaWQgY29weV93aW5vcHQgX19BUkdTKCh3aW5vcHRfVCAqZnJvbSwgd2lub3B0X1QgKnRvKSk7Ci12b2lkIGNoZWNrX3dpbl9vcHRpb25zIF9fQVJHUygod2luX1QgKndpbikpOwotdm9pZCBjaGVja193aW5vcHQgX19BUkdTKCh3aW5vcHRfVCAqd29wKSk7Ci12b2lkIGNsZWFyX3dpbm9wdCBfX0FSR1MoKHdpbm9wdF9UICp3b3ApKTsKLXZvaWQgYnVmX2NvcHlfb3B0aW9ucyBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBmbGFncykpOwotdm9pZCByZXNldF9tb2RpZmlhYmxlIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfaW1pbnNlcnRfZ2xvYmFsIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfaW1zZWFyY2hfZ2xvYmFsIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfY29udGV4dF9pbl9zZXRfY21kIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKmFyZywgaW50IG9wdF9mbGFncykpOwotaW50IEV4cGFuZFNldHRpbmdzIF9fQVJHUygoZXhwYW5kX1QgKnhwLCByZWdtYXRjaF9UICpyZWdtYXRjaCwgaW50ICpudW1fZmlsZSwgY2hhcl91ICoqKmZpbGUpKTsKLWludCBFeHBhbmRPbGRTZXR0aW5nIF9fQVJHUygoaW50ICpudW1fZmlsZSwgY2hhcl91ICoqKmZpbGUpKTsKLWludCBoYXNfZm9ybWF0X29wdGlvbiBfX0FSR1MoKGludCB4KSk7Ci1pbnQgc2hvcnRtZXNzIF9fQVJHUygoaW50IHgpKTsKLXZvaWQgdmltcmNfZm91bmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGNoYW5nZV9jb21wYXRpYmxlIF9fQVJHUygoaW50IG9uKSk7Ci1pbnQgb3B0aW9uX3dhc19zZXQgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBjYW5fYnMgX19BUkdTKChpbnQgd2hhdCkpOwotdm9pZCBzYXZlX2ZpbGVfZmYgX19BUkdTKChidWZfVCAqYnVmKSk7Ci1pbnQgZmlsZV9mZl9kaWZmZXJzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotaW50IGNoZWNrX2ZmX3ZhbHVlIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gdm9pZCBzZXRfaW5pdF8xIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc2V0X3N0cmluZ19kZWZhdWx0IF9fQVJHUygoY2hhciAqbmFtZSwgY2hhcl91ICp2YWwpKTsKK2V4dGVybiB2b2lkIHNldF9udW1iZXJfZGVmYXVsdCBfX0FSR1MoKGNoYXIgKm5hbWUsIGxvbmcgdmFsKSk7CitleHRlcm4gdm9pZCBmcmVlX2FsbF9vcHRpb25zIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc2V0X2luaXRfMiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNldF9pbml0XzMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzZXRfaGVscGxhbmdfZGVmYXVsdCBfX0FSR1MoKGNoYXJfdSAqbGFuZykpOworZXh0ZXJuIHZvaWQgaW5pdF9ndWlfb3B0aW9ucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNldF90aXRsZV9kZWZhdWx0cyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgZG9fc2V0IF9fQVJHUygoY2hhcl91ICphcmcsIGludCBvcHRfZmxhZ3MpKTsKK2V4dGVybiB2b2lkIHNldF9vcHRpb25zX2JpbiBfX0FSR1MoKGludCBvbGR2YWwsIGludCBuZXd2YWwsIGludCBvcHRfZmxhZ3MpKTsKK2V4dGVybiBpbnQgZ2V0X3ZpbWluZm9fcGFyYW1ldGVyIF9fQVJHUygoaW50IHR5cGUpKTsKK2V4dGVybiBjaGFyX3UgKmZpbmRfdmltaW5mb19wYXJhbWV0ZXIgX19BUkdTKChpbnQgdHlwZSkpOworZXh0ZXJuIHZvaWQgY2hlY2tfb3B0aW9ucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNoZWNrX2J1Zl9vcHRpb25zIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgZnJlZV9zdHJpbmdfb3B0aW9uIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gdm9pZCBjbGVhcl9zdHJpbmdfb3B0aW9uIF9fQVJHUygoY2hhcl91ICoqcHApKTsKK2V4dGVybiB2b2lkIHNldF90ZXJtX29wdGlvbl9hbGxvY2VkIF9fQVJHUygoY2hhcl91ICoqcCkpOworZXh0ZXJuIGludCB3YXNfc2V0X2luc2VjdXJlbHkgX19BUkdTKChjaGFyX3UgKm9wdCwgaW50IG9wdF9mbGFncykpOworZXh0ZXJuIHZvaWQgc2V0X3N0cmluZ19vcHRpb25fZGlyZWN0IF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgb3B0X2lkeCwgY2hhcl91ICp2YWwsIGludCBvcHRfZmxhZ3MsIGludCBzZXRfc2lkKSk7CitleHRlcm4gY2hhcl91ICpjaGVja19zdGxfb3B0aW9uIF9fQVJHUygoY2hhcl91ICpzKSk7CitleHRlcm4gaW50IGdldF9vcHRpb25fdmFsdWUgX19BUkdTKChjaGFyX3UgKm5hbWUsIGxvbmcgKm51bXZhbCwgY2hhcl91ICoqc3RyaW5ndmFsLCBpbnQgb3B0X2ZsYWdzKSk7CitleHRlcm4gdm9pZCBzZXRfb3B0aW9uX3ZhbHVlIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIG51bWJlciwgY2hhcl91ICpzdHJpbmcsIGludCBvcHRfZmxhZ3MpKTsKK2V4dGVybiBjaGFyX3UgKmdldF90ZXJtX2NvZGUgX19BUkdTKChjaGFyX3UgKnRuYW1lKSk7CitleHRlcm4gY2hhcl91ICpnZXRfaGlnaGxpZ2h0X2RlZmF1bHQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhcl91ICpnZXRfZW5jb2RpbmdfZGVmYXVsdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWFrZXNldCBfX0FSR1MoKEZJTEUgKmZkLCBpbnQgb3B0X2ZsYWdzLCBpbnQgbG9jYWxfb25seSkpOworZXh0ZXJuIGludCBtYWtlZm9sZHNldCBfX0FSR1MoKEZJTEUgKmZkKSk7CitleHRlcm4gdm9pZCBjbGVhcl90ZXJtb3B0aW9ucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGZyZWVfdGVybW9wdGlvbnMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzZXRfdGVybV9kZWZhdWx0cyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNvbXBfY29sIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X2VxdWFscHJnIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd2luX2NvcHlfb3B0aW9ucyBfX0FSR1MoKHdpbl9UICp3cF9mcm9tLCB3aW5fVCAqd3BfdG8pKTsKK2V4dGVybiB2b2lkIGNvcHlfd2lub3B0IF9fQVJHUygod2lub3B0X1QgKmZyb20sIHdpbm9wdF9UICp0bykpOworZXh0ZXJuIHZvaWQgY2hlY2tfd2luX29wdGlvbnMgX19BUkdTKCh3aW5fVCAqd2luKSk7CitleHRlcm4gdm9pZCBjaGVja193aW5vcHQgX19BUkdTKCh3aW5vcHRfVCAqd29wKSk7CitleHRlcm4gdm9pZCBjbGVhcl93aW5vcHQgX19BUkdTKCh3aW5vcHRfVCAqd29wKSk7CitleHRlcm4gdm9pZCBidWZfY29weV9vcHRpb25zIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGZsYWdzKSk7CitleHRlcm4gdm9pZCByZXNldF9tb2RpZmlhYmxlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc2V0X2ltaW5zZXJ0X2dsb2JhbCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNldF9pbXNlYXJjaF9nbG9iYWwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzZXRfY29udGV4dF9pbl9zZXRfY21kIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKmFyZywgaW50IG9wdF9mbGFncykpOworZXh0ZXJuIGludCBFeHBhbmRTZXR0aW5ncyBfX0FSR1MoKGV4cGFuZF9UICp4cCwgcmVnbWF0Y2hfVCAqcmVnbWF0Y2gsIGludCAqbnVtX2ZpbGUsIGNoYXJfdSAqKipmaWxlKSk7CitleHRlcm4gaW50IEV4cGFuZE9sZFNldHRpbmcgX19BUkdTKChpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSkpOworZXh0ZXJuIGludCBoYXNfZm9ybWF0X29wdGlvbiBfX0FSR1MoKGludCB4KSk7CitleHRlcm4gaW50IHNob3J0bWVzcyBfX0FSR1MoKGludCB4KSk7CitleHRlcm4gdm9pZCB2aW1yY19mb3VuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNoYW5nZV9jb21wYXRpYmxlIF9fQVJHUygoaW50IG9uKSk7CitleHRlcm4gaW50IG9wdGlvbl93YXNfc2V0IF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IGNhbl9icyBfX0FSR1MoKGludCB3aGF0KSk7CitleHRlcm4gdm9pZCBzYXZlX2ZpbGVfZmYgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gaW50IGZpbGVfZmZfZGlmZmVycyBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiBpbnQgY2hlY2tfZmZfdmFsdWUgX19BUkdTKChjaGFyX3UgKnApKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL29zX2FtaWdhLnBybyBiL3NyYy9wcm90by9vc19hbWlnYS5wcm8KaW5kZXggMzE3ZTIxMS4uNDc5Mjk3ZCAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29zX2FtaWdhLnBybworKysgYi9zcmMvcHJvdG8vb3NfYW1pZ2EucHJvCkBAIC0xLDQ2ICsxLDQ2IEBACiAvKiBvc19hbWlnYS5jICovCi12b2lkIHdpbl9yZXNpemVfb24gX19BUkdTKCh2b2lkKSk7Ci12b2lkIHdpbl9yZXNpemVfb2ZmIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfd3JpdGUgX19BUkdTKChjaGFyX3UgKnAsIGludCBsZW4pKTsKLWludCBtY2hfaW5jaGFyIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBtYXhsZW4sIGxvbmcgdGltZSwgaW50IHRiX2NoYW5nZV9jbnQpKTsKLWludCBtY2hfY2hhcl9hdmFpbCBfX0FSR1MoKHZvaWQpKTsKLWxvbmdfdSBtY2hfYXZhaWxfbWVtIF9fQVJHUygoaW50IHNwZWNpYWwpKTsKLXZvaWQgbWNoX2RlbGF5IF9fQVJHUygobG9uZyBtc2VjLCBpbnQgaWdub3JlaW5wdXQpKTsKLXZvaWQgbWNoX3N1c3BlbmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jaGVja193aW4gX19BUkdTKChpbnQgYXJnYywgY2hhciAqKmFyZ3YpKTsKLWludCBtY2hfaW5wdXRfaXNhdHR5IF9fQVJHUygodm9pZCkpOwotdm9pZCBmbmFtZV9jYXNlIF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgbGVuKSk7Ci12b2lkIG1jaF9zZXR0aXRsZSBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaWNvbikpOwotdm9pZCBtY2hfcmVzdG9yZV90aXRsZSBfX0FSR1MoKGludCB3aGljaCkpOwotaW50IG1jaF9jYW5fcmVzdG9yZV90aXRsZSBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfY2FuX3Jlc3RvcmVfaWNvbiBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfZ2V0X3VzZXJfbmFtZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOwotdm9pZCBtY2hfZ2V0X2hvc3RfbmFtZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOwotbG9uZyBtY2hfZ2V0X3BpZCBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfZGlybmFtZSBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgbGVuKSk7Ci1pbnQgbWNoX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOwotaW50IG1jaF9pc0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOwotbG9uZyBtY2hfZ2V0cGVybSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IG1jaF9zZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIHBlcm0pKTsKLXZvaWQgbWNoX2hpZGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfaXNkaXIgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgbWNoX21rZGlyIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgbWNoX2Nhbl9leGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfbm9kZXR5cGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgbWNoX2Vhcmx5X2luaXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9leGl0IF9fQVJHUygoaW50IHIpKTsKLXZvaWQgbWNoX3NldHRtb2RlIF9fQVJHUygoaW50IHRtb2RlKSk7Ci1pbnQgbWNoX3NjcmVlbm1vZGUgX19BUkdTKChjaGFyX3UgKmFyZykpOwotaW50IG1jaF9nZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX25ld19zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX2NhbGxfc2hlbGwgX19BUkdTKChjaGFyX3UgKmNtZCwgaW50IG9wdGlvbnMpKTsKLXZvaWQgbWNoX2JyZWFrY2hlY2sgX19BUkdTKCh2b2lkKSk7Ci1sb25nIENoa19BYm9ydCBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfZXhwYW5kcGF0aCBfX0FSR1MoKGdhcnJheV9UICpnYXAsIGNoYXJfdSAqcGF0LCBpbnQgZmxhZ3MpKTsKLWludCBtY2hfaGFzX2V4cF93aWxkY2FyZCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKLWNoYXJfdSAqbWNoX2dldGVudiBfX0FSR1MoKGNoYXJfdSAqdmFyKSk7Ci1pbnQgbWNoX3NldGVudiBfX0FSR1MoKGNoYXIgKnZhciwgY2hhciAqdmFsdWUsIGludCB4KSk7CitleHRlcm4gdm9pZCB3aW5fcmVzaXplX29uIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd2luX3Jlc2l6ZV9vZmYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfd3JpdGUgX19BUkdTKChjaGFyX3UgKnAsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgbWNoX2luY2hhciBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgbWF4bGVuLCBsb25nIHRpbWUsIGludCB0Yl9jaGFuZ2VfY250KSk7CitleHRlcm4gaW50IG1jaF9jaGFyX2F2YWlsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGxvbmdfdSBtY2hfYXZhaWxfbWVtIF9fQVJHUygoaW50IHNwZWNpYWwpKTsKK2V4dGVybiB2b2lkIG1jaF9kZWxheSBfX0FSR1MoKGxvbmcgbXNlYywgaW50IGlnbm9yZWlucHV0KSk7CitleHRlcm4gdm9pZCBtY2hfc3VzcGVuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfY2hlY2tfd2luIF9fQVJHUygoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSk7CitleHRlcm4gaW50IG1jaF9pbnB1dF9pc2F0dHkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBmbmFtZV9jYXNlIF9fQVJHUygoY2hhcl91ICpuYW1lLCBpbnQgbGVuKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKK2V4dGVybiB2b2lkIG1jaF9yZXN0b3JlX3RpdGxlIF9fQVJHUygoaW50IHdoaWNoKSk7CitleHRlcm4gaW50IG1jaF9jYW5fcmVzdG9yZV90aXRsZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2Nhbl9yZXN0b3JlX2ljb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9nZXRfdXNlcl9uYW1lIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7CitleHRlcm4gdm9pZCBtY2hfZ2V0X2hvc3RfbmFtZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOworZXh0ZXJuIGxvbmcgbWNoX2dldF9waWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9kaXJuYW1lIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgbWNoX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOworZXh0ZXJuIGludCBtY2hfaXNGdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKK2V4dGVybiBsb25nIG1jaF9nZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9zZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIHBlcm0pKTsKK2V4dGVybiB2b2lkIG1jaF9oaWRlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9pc2RpciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgbWNoX21rZGlyIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9jYW5fZXhlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9ub2RldHlwZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIHZvaWQgbWNoX2Vhcmx5X2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfZXhpdCBfX0FSR1MoKGludCByKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0dG1vZGUgX19BUkdTKChpbnQgdG1vZGUpKTsKK2V4dGVybiBpbnQgbWNoX3NjcmVlbm1vZGUgX19BUkdTKChjaGFyX3UgKmFyZykpOworZXh0ZXJuIGludCBtY2hfZ2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX25ld19zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9jYWxsX3NoZWxsIF9fQVJHUygoY2hhcl91ICpjbWQsIGludCBvcHRpb25zKSk7CitleHRlcm4gdm9pZCBtY2hfYnJlYWtjaGVjayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBsb25nIENoa19BYm9ydCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2V4cGFuZHBhdGggX19BUkdTKChnYXJyYXlfVCAqZ2FwLCBjaGFyX3UgKnBhdCwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IG1jaF9oYXNfZXhwX3dpbGRjYXJkIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBjaGFyX3UgKm1jaF9nZXRlbnYgX19BUkdTKChjaGFyX3UgKnZhcikpOworZXh0ZXJuIGludCBtY2hfc2V0ZW52IF9fQVJHUygoY2hhciAqdmFyLCBjaGFyICp2YWx1ZSwgaW50IHgpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL29zX21zd2luLnBybyBiL3NyYy9wcm90by9vc19tc3dpbi5wcm8KaW5kZXggOTY2YjAxOC4uYWFlZjA1YiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29zX21zd2luLnBybworKysgYi9zcmMvcHJvdG8vb3NfbXN3aW4ucHJvCkBAIC0xLDYzICsxLDYzIEBACiAvKiBvc19tc3dpbi5jICovCi12b2lkIG1jaF9leGl0IF9fQVJHUygoaW50IHIpKTsKLXZvaWQgbWNoX2Vhcmx5X2luaXQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX2lucHV0X2lzYXR0eSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7Ci12b2lkIG1jaF9yZXN0b3JlX3RpdGxlIF9fQVJHUygoaW50IHdoaWNoKSk7Ci1pbnQgbWNoX2Nhbl9yZXN0b3JlX3RpdGxlIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jYW5fcmVzdG9yZV9pY29uIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9GdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGNoYXJfdSAqYnVmLCBpbnQgbGVuLCBpbnQgZm9yY2UpKTsKLWludCBtY2hfaXNGdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKLXZvaWQgc2xhc2hfYWRqdXN0IF9fQVJHUygoY2hhcl91ICpwKSk7Ci1pbnQgdmltX3N0YXQgX19BUkdTKChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RhdCAqc3RwKSk7Ci12b2lkIG1jaF9zZXR0bW9kZSBfX0FSR1MoKGludCB0bW9kZSkpOwotaW50IG1jaF9nZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX25ld19zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9zdXNwZW5kIF9fQVJHUygodm9pZCkpOwotdm9pZCBkaXNwbGF5X2Vycm9ycyBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfaGFzX2V4cF93aWxkY2FyZCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKLWludCBtY2hfY2hkaXIgX19BUkdTKChjaGFyICpwYXRoKSk7Ci1pbnQgY2FuX2VuZF90ZXJtY2FwX21vZGUgX19BUkdTKChpbnQgZ2l2ZV9tc2cpKTsKLWludCBtY2hfc2NyZWVubW9kZSBfX0FSR1MoKGNoYXJfdSAqYXJnKSk7Ci1pbnQgbWNoX2xpYmNhbGwgX19BUkdTKChjaGFyX3UgKmxpYm5hbWUsIGNoYXJfdSAqZnVuY25hbWUsIGNoYXJfdSAqYXJnc3RyaW5nLCBpbnQgYXJnaW50LCBjaGFyX3UgKipzdHJpbmdfcmVzdWx0LCBpbnQgKm51bWJlcl9yZXN1bHQpKTsKLWludCB1dGY4X3RvX3VjczIgX19BUkdTKChjaGFyX3UgKmluc3RyLCBpbnQgaW5sZW4sIHNob3J0X3UgKm91dHN0ciwgaW50ICp1bmNvbnZsZW5wKSk7Ci1pbnQgdWNzMl90b191dGY4IF9fQVJHUygoc2hvcnRfdSAqaW5zdHIsIGludCBpbmxlbiwgY2hhcl91ICpvdXRzdHIpKTsKLXZvaWQgTXVsdGlCeXRlVG9XaWRlQ2hhcl9hbGxvYyBfX0FSR1MoKFVJTlQgY3AsIERXT1JEIGZsYWdzLCBMUENTVFIgaW4sIGludCBpbmxlbiwgTFBXU1RSICpvdXQsIGludCAqb3V0bGVuKSk7Ci12b2lkIFdpZGVDaGFyVG9NdWx0aUJ5dGVfYWxsb2MgX19BUkdTKChVSU5UIGNwLCBEV09SRCBmbGFncywgTFBDV1NUUiBpbiwgaW50IGlubGVuLCBMUFNUUiAqb3V0LCBpbnQgKm91dGxlbiwgTFBDU1RSIGRlZiwgTFBCT09MIHVzZWRkZWYpKTsKLWludCBjbGlwX21jaF9vd25fc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLXZvaWQgY2xpcF9tY2hfbG9zZV9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOwotc2hvcnRfdSAqZW5jX3RvX3VjczIgX19BUkdTKChjaGFyX3UgKnN0ciwgaW50ICpsZW5wKSk7Ci1jaGFyX3UgKnVjczJfdG9fZW5jIF9fQVJHUygoc2hvcnRfdSAqc3RyLCBpbnQgKmxlbnApKTsKLXZvaWQgY2xpcF9tY2hfcmVxdWVzdF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOwotdm9pZCBhY3BfdG9fZW5jIF9fQVJHUygoY2hhcl91ICpzdHIsIGludCBzdHJfc2l6ZSwgY2hhcl91ICoqb3V0LCBpbnQgKm91dGxlbikpOwotdm9pZCBjbGlwX21jaF9zZXRfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLXZvaWQgRHVtcFB1dFMgX19BUkdTKChjb25zdCBjaGFyICpwc3opKTsKLWludCBtY2hfZ2V0X3dpbnBvcyBfX0FSR1MoKGludCAqeCwgaW50ICp5KSk7Ci12b2lkIG1jaF9zZXRfd2lucG9zIF9fQVJHUygoaW50IHgsIGludCB5KSk7Ci12b2lkIG1jaF9wcmludF9jbGVhbnVwIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9wcmludF9pbml0IF9fQVJHUygocHJ0X3NldHRpbmdzX1QgKnBzZXR0aW5ncywgY2hhcl91ICpqb2JuYW1lLCBpbnQgZm9yY2VpdCkpOwotaW50IG1jaF9wcmludF9iZWdpbiBfX0FSR1MoKHBydF9zZXR0aW5nc19UICpwc2V0dGluZ3MpKTsKLXZvaWQgbWNoX3ByaW50X2VuZCBfX0FSR1MoKHBydF9zZXR0aW5nc19UICpwc2V0dGluZ3MpKTsKLWludCBtY2hfcHJpbnRfZW5kX3BhZ2UgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX3ByaW50X2JlZ2luX3BhZ2UgX19BUkdTKChjaGFyX3UgKm1zZykpOwotaW50IG1jaF9wcmludF9ibGFua19wYWdlIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfcHJpbnRfc3RhcnRfbGluZSBfX0FSR1MoKGludCBtYXJnaW4sIGludCBwYWdlX2xpbmUpKTsKLWludCBtY2hfcHJpbnRfdGV4dF9vdXQgX19BUkdTKChjaGFyX3UgKnAsIGludCBsZW4pKTsKLXZvaWQgbWNoX3ByaW50X3NldF9mb250IF9fQVJHUygoaW50IGlCb2xkLCBpbnQgaUl0YWxpYywgaW50IGlVbmRlcmxpbmUpKTsKLXZvaWQgbWNoX3ByaW50X3NldF9iZyBfX0FSR1MoKHVuc2lnbmVkIGxvbmcgYmdjb2wpKTsKLXZvaWQgbWNoX3ByaW50X3NldF9mZyBfX0FSR1MoKHVuc2lnbmVkIGxvbmcgZmdjb2wpKTsKLWNoYXJfdSAqbWNoX3Jlc29sdmVfc2hvcnRjdXQgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7Ci12b2lkIHdpbjMyX3NldF9mb3JlZ3JvdW5kIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXJ2ZXJJbml0TWVzc2FnaW5nIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXJ2ZXJTZXROYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1jaGFyX3UgKnNlcnZlckdldFZpbU5hbWVzIF9fQVJHUygodm9pZCkpOwotaW50IHNlcnZlclNlbmRSZXBseSBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgY2hhcl91ICpyZXBseSkpOwotaW50IHNlcnZlclNlbmRUb1ZpbSBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgY2hhcl91ICpjbWQsIGNoYXJfdSAqKnJlc3VsdCwgdm9pZCAqcHRhcmdldCwgaW50IGFzRXhwciwgaW50IHNpbGVudCkpOwotdm9pZCBzZXJ2ZXJGb3JlZ3JvdW5kIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1jaGFyX3UgKnNlcnZlckdldFJlcGx5IF9fQVJHUygoSFdORCBzZXJ2ZXIsIGludCAqZXhwcl9yZXMsIGludCByZW1vdmUsIGludCB3YWl0KSk7Ci12b2lkIHNlcnZlclByb2Nlc3NQZW5kaW5nTWVzc2FnZXMgX19BUkdTKCh2b2lkKSk7Ci1jaGFyICpjaGFyc2V0X2lkMm5hbWUgX19BUkdTKChpbnQgaWQpKTsKLWludCBnZXRfbG9nZm9udCBfX0FSR1MoKExPR0ZPTlQgKmxmLCBjaGFyX3UgKm5hbWUsIEhEQyBwcmludGVyX2RjLCBpbnQgdmVyYm9zZSkpOworZXh0ZXJuIHZvaWQgbWNoX2V4aXQgX19BUkdTKChpbnQgcikpOworZXh0ZXJuIHZvaWQgbWNoX2Vhcmx5X2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9pbnB1dF9pc2F0dHkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKK2V4dGVybiB2b2lkIG1jaF9yZXN0b3JlX3RpdGxlIF9fQVJHUygoaW50IHdoaWNoKSk7CitleHRlcm4gaW50IG1jaF9jYW5fcmVzdG9yZV90aXRsZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2Nhbl9yZXN0b3JlX2ljb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9GdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGNoYXJfdSAqYnVmLCBpbnQgbGVuLCBpbnQgZm9yY2UpKTsKK2V4dGVybiBpbnQgbWNoX2lzRnVsbE5hbWUgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7CitleHRlcm4gdm9pZCBzbGFzaF9hZGp1c3QgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgdmltX3N0YXQgX19BUkdTKChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RhdCAqc3RwKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0dG1vZGUgX19BUkdTKChpbnQgdG1vZGUpKTsKK2V4dGVybiBpbnQgbWNoX2dldF9zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9uZXdfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX3N1c3BlbmQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBkaXNwbGF5X2Vycm9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2hhc19leHBfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgbWNoX2hhc193aWxkY2FyZCBfX0FSR1MoKGNoYXJfdSAqcCkpOworZXh0ZXJuIGludCBtY2hfY2hkaXIgX19BUkdTKChjaGFyICpwYXRoKSk7CitleHRlcm4gaW50IGNhbl9lbmRfdGVybWNhcF9tb2RlIF9fQVJHUygoaW50IGdpdmVfbXNnKSk7CitleHRlcm4gaW50IG1jaF9zY3JlZW5tb2RlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKK2V4dGVybiBpbnQgbWNoX2xpYmNhbGwgX19BUkdTKChjaGFyX3UgKmxpYm5hbWUsIGNoYXJfdSAqZnVuY25hbWUsIGNoYXJfdSAqYXJnc3RyaW5nLCBpbnQgYXJnaW50LCBjaGFyX3UgKipzdHJpbmdfcmVzdWx0LCBpbnQgKm51bWJlcl9yZXN1bHQpKTsKK2V4dGVybiBpbnQgdXRmOF90b191Y3MyIF9fQVJHUygoY2hhcl91ICppbnN0ciwgaW50IGlubGVuLCBzaG9ydF91ICpvdXRzdHIsIGludCAqdW5jb252bGVucCkpOworZXh0ZXJuIGludCB1Y3MyX3RvX3V0ZjggX19BUkdTKChzaG9ydF91ICppbnN0ciwgaW50IGlubGVuLCBjaGFyX3UgKm91dHN0cikpOworZXh0ZXJuIHZvaWQgTXVsdGlCeXRlVG9XaWRlQ2hhcl9hbGxvYyBfX0FSR1MoKFVJTlQgY3AsIERXT1JEIGZsYWdzLCBMUENTVFIgaW4sIGludCBpbmxlbiwgTFBXU1RSICpvdXQsIGludCAqb3V0bGVuKSk7CitleHRlcm4gdm9pZCBXaWRlQ2hhclRvTXVsdGlCeXRlX2FsbG9jIF9fQVJHUygoVUlOVCBjcCwgRFdPUkQgZmxhZ3MsIExQQ1dTVFIgaW4sIGludCBpbmxlbiwgTFBTVFIgKm91dCwgaW50ICpvdXRsZW4sIExQQ1NUUiBkZWYsIExQQk9PTCB1c2VkZGVmKSk7CitleHRlcm4gaW50IGNsaXBfbWNoX293bl9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHZvaWQgY2xpcF9tY2hfbG9zZV9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHNob3J0X3UgKmVuY190b191Y3MyIF9fQVJHUygoY2hhcl91ICpzdHIsIGludCAqbGVucCkpOworZXh0ZXJuIGNoYXJfdSAqdWNzMl90b19lbmMgX19BUkdTKChzaG9ydF91ICpzdHIsIGludCAqbGVucCkpOworZXh0ZXJuIHZvaWQgY2xpcF9tY2hfcmVxdWVzdF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHZvaWQgYWNwX3RvX2VuYyBfX0FSR1MoKGNoYXJfdSAqc3RyLCBpbnQgc3RyX3NpemUsIGNoYXJfdSAqKm91dCwgaW50ICpvdXRsZW4pKTsKK2V4dGVybiB2b2lkIGNsaXBfbWNoX3NldF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHZvaWQgRHVtcFB1dFMgX19BUkdTKChjb25zdCBjaGFyICpwc3opKTsKK2V4dGVybiBpbnQgbWNoX2dldF93aW5wb3MgX19BUkdTKChpbnQgKngsIGludCAqeSkpOworZXh0ZXJuIHZvaWQgbWNoX3NldF93aW5wb3MgX19BUkdTKChpbnQgeCwgaW50IHkpKTsKK2V4dGVybiB2b2lkIG1jaF9wcmludF9jbGVhbnVwIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfcHJpbnRfaW5pdCBfX0FSR1MoKHBydF9zZXR0aW5nc19UICpwc2V0dGluZ3MsIGNoYXJfdSAqam9ibmFtZSwgaW50IGZvcmNlaXQpKTsKK2V4dGVybiBpbnQgbWNoX3ByaW50X2JlZ2luIF9fQVJHUygocHJ0X3NldHRpbmdzX1QgKnBzZXR0aW5ncykpOworZXh0ZXJuIHZvaWQgbWNoX3ByaW50X2VuZCBfX0FSR1MoKHBydF9zZXR0aW5nc19UICpwc2V0dGluZ3MpKTsKK2V4dGVybiBpbnQgbWNoX3ByaW50X2VuZF9wYWdlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfcHJpbnRfYmVnaW5fcGFnZSBfX0FSR1MoKGNoYXJfdSAqbXNnKSk7CitleHRlcm4gaW50IG1jaF9wcmludF9ibGFua19wYWdlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX3ByaW50X3N0YXJ0X2xpbmUgX19BUkdTKChpbnQgbWFyZ2luLCBpbnQgcGFnZV9saW5lKSk7CitleHRlcm4gaW50IG1jaF9wcmludF90ZXh0X291dCBfX0FSR1MoKGNoYXJfdSAqcCwgaW50IGxlbikpOworZXh0ZXJuIHZvaWQgbWNoX3ByaW50X3NldF9mb250IF9fQVJHUygoaW50IGlCb2xkLCBpbnQgaUl0YWxpYywgaW50IGlVbmRlcmxpbmUpKTsKK2V4dGVybiB2b2lkIG1jaF9wcmludF9zZXRfYmcgX19BUkdTKCh1bnNpZ25lZCBsb25nIGJnY29sKSk7CitleHRlcm4gdm9pZCBtY2hfcHJpbnRfc2V0X2ZnIF9fQVJHUygodW5zaWduZWQgbG9uZyBmZ2NvbCkpOworZXh0ZXJuIGNoYXJfdSAqbWNoX3Jlc29sdmVfc2hvcnRjdXQgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7CitleHRlcm4gdm9pZCB3aW4zMl9zZXRfZm9yZWdyb3VuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNlcnZlckluaXRNZXNzYWdpbmcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzZXJ2ZXJTZXROYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gY2hhcl91ICpzZXJ2ZXJHZXRWaW1OYW1lcyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgc2VydmVyU2VuZFJlcGx5IF9fQVJHUygoY2hhcl91ICpuYW1lLCBjaGFyX3UgKnJlcGx5KSk7CitleHRlcm4gaW50IHNlcnZlclNlbmRUb1ZpbSBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgY2hhcl91ICpjbWQsIGNoYXJfdSAqKnJlc3VsdCwgdm9pZCAqcHRhcmdldCwgaW50IGFzRXhwciwgaW50IHNpbGVudCkpOworZXh0ZXJuIHZvaWQgc2VydmVyRm9yZWdyb3VuZCBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGNoYXJfdSAqc2VydmVyR2V0UmVwbHkgX19BUkdTKChIV05EIHNlcnZlciwgaW50ICpleHByX3JlcywgaW50IHJlbW92ZSwgaW50IHdhaXQpKTsKK2V4dGVybiB2b2lkIHNlcnZlclByb2Nlc3NQZW5kaW5nTWVzc2FnZXMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhciAqY2hhcnNldF9pZDJuYW1lIF9fQVJHUygoaW50IGlkKSk7CitleHRlcm4gaW50IGdldF9sb2dmb250IF9fQVJHUygoTE9HRk9OVCAqbGYsIGNoYXJfdSAqbmFtZSwgSERDIHByaW50ZXJfZGMsIGludCB2ZXJib3NlKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9vc19yaXNjb3MucHJvIGIvc3JjL3Byb3RvL29zX3Jpc2Nvcy5wcm8KaW5kZXggOWVhNGNkNS4uZWM4MDU1YiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29zX3Jpc2Nvcy5wcm8KKysrIGIvc3JjL3Byb3RvL29zX3Jpc2Nvcy5wcm8KQEAgLTEsNDkgKzEsNDkgQEAKIC8qIG9zX3Jpc2Nvcy5jICovCi12b2lkIG1jaF93cml0ZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOwotaW50IG1jaF9pbmNoYXIgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IG1heGxlbiwgbG9uZyB3dGltZSwgaW50IHRiX2NoYW5nZV9jbnQpKTsKLWludCBtY2hfY2hhcl9hdmFpbCBfX0FSR1MoKHZvaWQpKTsKLWxvbmdfdSBtY2hfYXZhaWxfbWVtIF9fQVJHUygoaW50IHNwZWNpYWwpKTsKLXZvaWQgbWNoX2RlbGF5IF9fQVJHUygobG9uZyBtc2VjLCBpbnQgaWdub3JlaW5wdXQpKTsKLXZvaWQgbWNoX3N1c3BlbmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jaGVja193aW4gX19BUkdTKChpbnQgYXJnYywgY2hhciAqKmFyZ3YpKTsKLWludCBtY2hfaW5wdXRfaXNhdHR5IF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jYW5fcmVzdG9yZV90aXRsZSBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfY2FuX3Jlc3RvcmVfaWNvbiBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7Ci12b2lkIG1jaF9yZXN0b3JlX3RpdGxlIF9fQVJHUygoaW50IHdoaWNoKSk7Ci1pbnQgbWNoX2dldF91c2VyX25hbWUgX19BUkdTKChjaGFyX3UgKnMsIGludCBsZW4pKTsKLXZvaWQgbWNoX2dldF9ob3N0X25hbWUgX19BUkdTKChjaGFyX3UgKnMsIGludCBsZW4pKTsKLWxvbmcgbWNoX2dldF9waWQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX2Rpcm5hbWUgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IGxlbikpOwotaW50IG1jaF9GdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGNoYXJfdSAqYnVmLCBpbnQgbGVuLCBpbnQgZm9yY2UpKTsKLWludCBtY2hfaXNGdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKLWxvbmcgbWNoX2dldHBlcm0gX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfc2V0cGVybSBfX0FSR1MoKGNoYXJfdSAqbmFtZSwgbG9uZyBwZXJtKSk7Ci12b2lkIG1jaF9oaWRlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgbWNoX2lzZGlyIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgbWNoX2Nhbl9leGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfbm9kZXR5cGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgbWNoX2Vhcmx5X2luaXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9leGl0IF9fQVJHUygoaW50IHIpKTsKLXZvaWQgbWNoX3NldHRtb2RlIF9fQVJHUygoaW50IHRtb2RlKSk7Ci12b2lkIG1jaF9zZXRtb3VzZSBfX0FSR1MoKGludCBvbikpOwotaW50IG1jaF9zY3JlZW5tb2RlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKLWludCBtY2hfZ2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9uZXdfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jYWxsX3NoZWxsIF9fQVJHUygoY2hhcl91ICpjbWQsIGludCBvcHRpb25zKSk7Ci12b2lkIG1jaF9icmVha2NoZWNrIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9leHBhbmRwYXRoIF9fQVJHUygoZ2FycmF5X1QgKmdhcCwgY2hhcl91ICpwYXRoLCBpbnQgZmxhZ3MpKTsKLWludCBleHBhbmRfc2VjdGlvbiBfX0FSR1MoKGdhcnJheV9UICpnYXAsIGNoYXJfdSAqcm9vdCwgY2hhcl91ICpyZXN0LCBpbnQgZmxhZ3MpKTsKLWludCBtY2hfZXhwYW5kX3dpbGRjYXJkcyBfX0FSR1MoKGludCBudW1fcGF0LCBjaGFyX3UgKipwYXQsIGludCAqbnVtX2ZpbGUsIGNoYXJfdSAqKipmaWxlLCBpbnQgZmxhZ3MpKTsKLWludCBtY2hfaGFzX2V4cF93aWxkY2FyZCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKLWludCBtY2hfcmVtb3ZlIF9fQVJHUygoY2hhcl91ICpmaWxlKSk7Ci1jaGFyX3UgKm1jaF9tdW5nZV9mbmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKLWludCByb19idWZsaXN0X2FkZCBfX0FSR1MoKGNoYXJfdSAqb2xkX25hbWUpKTsKLWludCBtY2hfY2hkaXIgX19BUkdTKChjaGFyX3UgKmRpcikpOwotdm9pZCBtY2hfcmVhZF9maWxldHlwZSBfX0FSR1MoKGNoYXJfdSAqZmlsZSkpOwotdm9pZCBtY2hfc2V0X2ZpbGV0eXBlIF9fQVJHUygoY2hhcl91ICpmaWxlLCBjaGFyX3UgKnR5cGUpKTsKLWludCBtY2hfY2hlY2tfZmlsZXR5cGUgX19BUkdTKChjaGFyX3UgKmZuYW1lLCBjaGFyX3UgKnR5cGUpKTsKK2V4dGVybiB2b2lkIG1jaF93cml0ZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOworZXh0ZXJuIGludCBtY2hfaW5jaGFyIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBtYXhsZW4sIGxvbmcgd3RpbWUsIGludCB0Yl9jaGFuZ2VfY250KSk7CitleHRlcm4gaW50IG1jaF9jaGFyX2F2YWlsIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGxvbmdfdSBtY2hfYXZhaWxfbWVtIF9fQVJHUygoaW50IHNwZWNpYWwpKTsKK2V4dGVybiB2b2lkIG1jaF9kZWxheSBfX0FSR1MoKGxvbmcgbXNlYywgaW50IGlnbm9yZWlucHV0KSk7CitleHRlcm4gdm9pZCBtY2hfc3VzcGVuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfY2hlY2tfd2luIF9fQVJHUygoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSk7CitleHRlcm4gaW50IG1jaF9pbnB1dF9pc2F0dHkgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9jYW5fcmVzdG9yZV90aXRsZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2Nhbl9yZXN0b3JlX2ljb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0dGl0bGUgX19BUkdTKChjaGFyX3UgKnRpdGxlLCBjaGFyX3UgKmljb24pKTsKK2V4dGVybiB2b2lkIG1jaF9yZXN0b3JlX3RpdGxlIF9fQVJHUygoaW50IHdoaWNoKSk7CitleHRlcm4gaW50IG1jaF9nZXRfdXNlcl9uYW1lIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7CitleHRlcm4gdm9pZCBtY2hfZ2V0X2hvc3RfbmFtZSBfX0FSR1MoKGNoYXJfdSAqcywgaW50IGxlbikpOworZXh0ZXJuIGxvbmcgbWNoX2dldF9waWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9kaXJuYW1lIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgbWNoX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOworZXh0ZXJuIGludCBtY2hfaXNGdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKK2V4dGVybiBsb25nIG1jaF9nZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9zZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIHBlcm0pKTsKK2V4dGVybiB2b2lkIG1jaF9oaWRlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9pc2RpciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBtY2hfY2FuX2V4ZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBtY2hfbm9kZXR5cGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIG1jaF9lYXJseV9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2V4aXQgX19BUkdTKChpbnQgcikpOworZXh0ZXJuIHZvaWQgbWNoX3NldHRtb2RlIF9fQVJHUygoaW50IHRtb2RlKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0bW91c2UgX19BUkdTKChpbnQgb24pKTsKK2V4dGVybiBpbnQgbWNoX3NjcmVlbm1vZGUgX19BUkdTKChjaGFyX3UgKmFyZykpOworZXh0ZXJuIGludCBtY2hfZ2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX25ld19zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9jYWxsX3NoZWxsIF9fQVJHUygoY2hhcl91ICpjbWQsIGludCBvcHRpb25zKSk7CitleHRlcm4gdm9pZCBtY2hfYnJlYWtjaGVjayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2V4cGFuZHBhdGggX19BUkdTKChnYXJyYXlfVCAqZ2FwLCBjaGFyX3UgKnBhdGgsIGludCBmbGFncykpOworZXh0ZXJuIGludCBleHBhbmRfc2VjdGlvbiBfX0FSR1MoKGdhcnJheV9UICpnYXAsIGNoYXJfdSAqcm9vdCwgY2hhcl91ICpyZXN0LCBpbnQgZmxhZ3MpKTsKK2V4dGVybiBpbnQgbWNoX2V4cGFuZF93aWxkY2FyZHMgX19BUkdTKChpbnQgbnVtX3BhdCwgY2hhcl91ICoqcGF0LCBpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IG1jaF9oYXNfZXhwX3dpbGRjYXJkIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgbWNoX3JlbW92ZSBfX0FSR1MoKGNoYXJfdSAqZmlsZSkpOworZXh0ZXJuIGNoYXJfdSAqbWNoX211bmdlX2ZuYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOworZXh0ZXJuIGludCByb19idWZsaXN0X2FkZCBfX0FSR1MoKGNoYXJfdSAqb2xkX25hbWUpKTsKK2V4dGVybiBpbnQgbWNoX2NoZGlyIF9fQVJHUygoY2hhcl91ICpkaXIpKTsKK2V4dGVybiB2b2lkIG1jaF9yZWFkX2ZpbGV0eXBlIF9fQVJHUygoY2hhcl91ICpmaWxlKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X2ZpbGV0eXBlIF9fQVJHUygoY2hhcl91ICpmaWxlLCBjaGFyX3UgKnR5cGUpKTsKK2V4dGVybiBpbnQgbWNoX2NoZWNrX2ZpbGV0eXBlIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICp0eXBlKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9vc192bXMucHJvIGIvc3JjL3Byb3RvL29zX3Ztcy5wcm8KaW5kZXggMmVkNjM5NC4uNjY3ZjdhYiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL29zX3Ztcy5wcm8KKysrIGIvc3JjL3Byb3RvL29zX3Ztcy5wcm8KQEAgLTEsMTQgKzEsMTQgQEAKIC8qIG9zX3Ztcy5jICovCi12b2lkIG1jaF9zZXR0bW9kZSBfX0FSR1MoKGludCB0bW9kZSkpOwotaW50IG1jaF9nZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqbWNoX2dldGVudiBfX0FSR1MoKGNoYXJfdSAqbG9nbmFtKSk7Ci1pbnQgbWNoX3NldGVudiBfX0FSR1MoKGNoYXIgKnZhciwgY2hhciAqdmFsdWUsIGludCB4KSk7Ci1pbnQgdm1zX3N5cyBfX0FSR1MoKGNoYXIgKmNtZCwgY2hhciAqb3V0LCBjaGFyICppbnApKTsKLWludCB2bXNfc3lzX3N0YXR1cyBfX0FSR1MoKGludCBzdGF0dXMpKTsKLWludCB2bXNfcmVhZCBfX0FSR1MoKGNoYXIgKmluYnVmLCBzaXplX3QgbmJ5dGVzKSk7Ci1pbnQgbWNoX2V4cGFuZF93aWxkY2FyZHMgX19BUkdTKChpbnQgbnVtX3BhdCwgY2hhcl91ICoqcGF0LCBpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSwgaW50IGZsYWdzKSk7Ci1pbnQgbWNoX2V4cGFuZHBhdGggX19BUkdTKChnYXJyYXlfVCAqZ2FwLCBjaGFyX3UgKnBhdGgsIGludCBmbGFncykpOwotdm9pZCAqdm1zX2ZpeGZpbGVuYW1lIF9fQVJHUygodm9pZCAqaW5zdHJpbmcpKTsKLXZvaWQgdm1zX3JlbW92ZV92ZXJzaW9uIF9fQVJHUygodm9pZCAqZm5hbWUpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXR0bW9kZSBfX0FSR1MoKGludCB0bW9kZSkpOworZXh0ZXJuIGludCBtY2hfZ2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqbWNoX2dldGVudiBfX0FSR1MoKGNoYXJfdSAqbG9nbmFtKSk7CitleHRlcm4gaW50IG1jaF9zZXRlbnYgX19BUkdTKChjaGFyICp2YXIsIGNoYXIgKnZhbHVlLCBpbnQgeCkpOworZXh0ZXJuIGludCB2bXNfc3lzIF9fQVJHUygoY2hhciAqY21kLCBjaGFyICpvdXQsIGNoYXIgKmlucCkpOworZXh0ZXJuIGludCB2bXNfc3lzX3N0YXR1cyBfX0FSR1MoKGludCBzdGF0dXMpKTsKK2V4dGVybiBpbnQgdm1zX3JlYWQgX19BUkdTKChjaGFyICppbmJ1Ziwgc2l6ZV90IG5ieXRlcykpOworZXh0ZXJuIGludCBtY2hfZXhwYW5kX3dpbGRjYXJkcyBfX0FSR1MoKGludCBudW1fcGF0LCBjaGFyX3UgKipwYXQsIGludCAqbnVtX2ZpbGUsIGNoYXJfdSAqKipmaWxlLCBpbnQgZmxhZ3MpKTsKK2V4dGVybiBpbnQgbWNoX2V4cGFuZHBhdGggX19BUkdTKChnYXJyYXlfVCAqZ2FwLCBjaGFyX3UgKnBhdGgsIGludCBmbGFncykpOworZXh0ZXJuIHZvaWQgKnZtc19maXhmaWxlbmFtZSBfX0FSR1MoKHZvaWQgKmluc3RyaW5nKSk7CitleHRlcm4gdm9pZCB2bXNfcmVtb3ZlX3ZlcnNpb24gX19BUkdTKCh2b2lkICpmbmFtZSkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vb3Nfd2luMTYucHJvIGIvc3JjL3Byb3RvL29zX3dpbjE2LnBybwppbmRleCAzMWZhNzJjLi40YmZkOWIzIDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vb3Nfd2luMTYucHJvCisrKyBiL3NyYy9wcm90by9vc193aW4xNi5wcm8KQEAgLTEsMTIgKzEsMTIgQEAKIC8qIG9zX3dpbjE2LmMgKi8KLXZvaWQgbWNoX3NldG1vdXNlIF9fQVJHUygoaW50IG9uKSk7Ci12b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jaGVja193aW4gX19BUkdTKChpbnQgYXJnYywgY2hhciAqKmFyZ3YpKTsKLWxvbmcgbWNoX2dldF9waWQgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX2NhbGxfc2hlbGwgX19BUkdTKChjaGFyX3UgKmNtZCwgaW50IG9wdGlvbnMpKTsKLXZvaWQgbWNoX2RlbGF5IF9fQVJHUygobG9uZyBtc2VjLCBpbnQgaWdub3JlaW5wdXQpKTsKLXZvaWQgbWNoX2JyZWFrY2hlY2sgX19BUkdTKCh2b2lkKSk7Ci1sb25nX3UgbWNoX2F2YWlsX21lbSBfX0FSR1MoKGludCBzcGVjaWFsKSk7Ci1pbnQgbWNoX3JlbmFtZSBfX0FSR1MoKGNvbnN0IGNoYXIgKnBzek9sZEZpbGUsIGNvbnN0IGNoYXIgKnBzek5ld0ZpbGUpKTsKLWNoYXIgKmRlZmF1bHRfc2hlbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0bW91c2UgX19BUkdTKChpbnQgb24pKTsKK2V4dGVybiB2b2lkIG1jaF9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfY2hlY2tfd2luIF9fQVJHUygoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSk7CitleHRlcm4gbG9uZyBtY2hfZ2V0X3BpZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWNoX2NhbGxfc2hlbGwgX19BUkdTKChjaGFyX3UgKmNtZCwgaW50IG9wdGlvbnMpKTsKK2V4dGVybiB2b2lkIG1jaF9kZWxheSBfX0FSR1MoKGxvbmcgbXNlYywgaW50IGlnbm9yZWlucHV0KSk7CitleHRlcm4gdm9pZCBtY2hfYnJlYWtjaGVjayBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBsb25nX3UgbWNoX2F2YWlsX21lbSBfX0FSR1MoKGludCBzcGVjaWFsKSk7CitleHRlcm4gaW50IG1jaF9yZW5hbWUgX19BUkdTKChjb25zdCBjaGFyICpwc3pPbGRGaWxlLCBjb25zdCBjaGFyICpwc3pOZXdGaWxlKSk7CitleHRlcm4gY2hhciAqZGVmYXVsdF9zaGVsbCBfX0FSR1MoKHZvaWQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL3BvcHVwbW51LnBybyBiL3NyYy9wcm90by9wb3B1cG1udS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyN2RhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wcm90by9wb3B1cG1udS5wcm8KQEAgLTAsMCArMSw4IEBACisvKiBwb3B1cG1udS5jICovCitleHRlcm4gdm9pZCBwdW1fZGlzcGxheSBfX0FSR1MoKHB1bWl0ZW1fVCAqYXJyYXksIGludCBzaXplLCBpbnQgc2VsZWN0ZWQpKTsKK2V4dGVybiB2b2lkIHB1bV9yZWRyYXcgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBwdW1fdW5kaXNwbGF5IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgcHVtX2NsZWFyIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBwdW1fdmlzaWJsZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgcHVtX2dldF9oZWlnaHQgX19BUkdTKCh2b2lkKSk7CisvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9yZWdleHAucHJvIGIvc3JjL3Byb3RvL3JlZ2V4cC5wcm8KaW5kZXggZGYyZmRlNC4uMjc1OTdiMiAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL3JlZ2V4cC5wcm8KKysrIGIvc3JjL3Byb3RvL3JlZ2V4cC5wcm8KQEAgLTEsMTcgKzEsMTcgQEAKIC8qIHJlZ2V4cC5jICovCi12b2lkIGZyZWVfcmVnZXhwX3N0dWZmIF9fQVJHUygodm9pZCkpOwotaW50IHJlX211bHRpbGluZSBfX0FSR1MoKHJlZ3Byb2dfVCAqcHJvZykpOwotaW50IHJlX2xvb2tiZWhpbmQgX19BUkdTKChyZWdwcm9nX1QgKnByb2cpKTsKLWNoYXJfdSAqc2tpcF9yZWdleHAgX19BUkdTKChjaGFyX3UgKnN0YXJ0cCwgaW50IGRpcmMsIGludCBtYWdpYywgY2hhcl91ICoqbmV3cCkpOwotcmVncHJvZ19UICp2aW1fcmVnY29tcCBfX0FSR1MoKGNoYXJfdSAqZXhwciwgaW50IHJlX2ZsYWdzKSk7Ci1pbnQgdmltX3JlZ2NvbXBfaGFkX2VvbCBfX0FSR1MoKHZvaWQpKTsKLWludCB2aW1fcmVnZXhlYyBfX0FSR1MoKHJlZ21hdGNoX1QgKnJtcCwgY2hhcl91ICpsaW5lLCBjb2xucl9UIGNvbCkpOwotaW50IHZpbV9yZWdleGVjX25sIF9fQVJHUygocmVnbWF0Y2hfVCAqcm1wLCBjaGFyX3UgKmxpbmUsIGNvbG5yX1QgY29sKSk7Ci1sb25nIHZpbV9yZWdleGVjX211bHRpIF9fQVJHUygocmVnbW1hdGNoX1QgKnJtcCwgd2luX1QgKndpbiwgYnVmX1QgKmJ1ZiwgbGluZW5yX1QgbG51bSwgY29sbnJfVCBjb2wpKTsKLXJlZ19leHRtYXRjaF9UICpyZWZfZXh0bWF0Y2ggX19BUkdTKChyZWdfZXh0bWF0Y2hfVCAqZW0pKTsKLXZvaWQgdW5yZWZfZXh0bWF0Y2ggX19BUkdTKChyZWdfZXh0bWF0Y2hfVCAqZW0pKTsKLWNoYXJfdSAqcmVndGlsZGUgX19BUkdTKChjaGFyX3UgKnNvdXJjZSwgaW50IG1hZ2ljKSk7Ci1pbnQgdmltX3JlZ3N1YiBfX0FSR1MoKHJlZ21hdGNoX1QgKnJtcCwgY2hhcl91ICpzb3VyY2UsIGNoYXJfdSAqZGVzdCwgaW50IGNvcHksIGludCBtYWdpYywgaW50IGJhY2tzbGFzaCkpOwotaW50IHZpbV9yZWdzdWJfbXVsdGkgX19BUkdTKChyZWdtbWF0Y2hfVCAqcm1wLCBsaW5lbnJfVCBsbnVtLCBjaGFyX3UgKnNvdXJjZSwgY2hhcl91ICpkZXN0LCBpbnQgY29weSwgaW50IG1hZ2ljLCBpbnQgYmFja3NsYXNoKSk7Ci1jaGFyX3UgKnJlZ19zdWJtYXRjaCBfX0FSR1MoKGludCBubykpOworZXh0ZXJuIHZvaWQgZnJlZV9yZWdleHBfc3R1ZmYgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHJlX211bHRpbGluZSBfX0FSR1MoKHJlZ3Byb2dfVCAqcHJvZykpOworZXh0ZXJuIGludCByZV9sb29rYmVoaW5kIF9fQVJHUygocmVncHJvZ19UICpwcm9nKSk7CitleHRlcm4gY2hhcl91ICpza2lwX3JlZ2V4cCBfX0FSR1MoKGNoYXJfdSAqc3RhcnRwLCBpbnQgZGlyYywgaW50IG1hZ2ljLCBjaGFyX3UgKipuZXdwKSk7CitleHRlcm4gcmVncHJvZ19UICp2aW1fcmVnY29tcCBfX0FSR1MoKGNoYXJfdSAqZXhwciwgaW50IHJlX2ZsYWdzKSk7CitleHRlcm4gaW50IHZpbV9yZWdjb21wX2hhZF9lb2wgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHZpbV9yZWdleGVjIF9fQVJHUygocmVnbWF0Y2hfVCAqcm1wLCBjaGFyX3UgKmxpbmUsIGNvbG5yX1QgY29sKSk7CitleHRlcm4gaW50IHZpbV9yZWdleGVjX25sIF9fQVJHUygocmVnbWF0Y2hfVCAqcm1wLCBjaGFyX3UgKmxpbmUsIGNvbG5yX1QgY29sKSk7CitleHRlcm4gbG9uZyB2aW1fcmVnZXhlY19tdWx0aSBfX0FSR1MoKHJlZ21tYXRjaF9UICpybXAsIHdpbl9UICp3aW4sIGJ1Zl9UICpidWYsIGxpbmVucl9UIGxudW0sIGNvbG5yX1QgY29sKSk7CitleHRlcm4gcmVnX2V4dG1hdGNoX1QgKnJlZl9leHRtYXRjaCBfX0FSR1MoKHJlZ19leHRtYXRjaF9UICplbSkpOworZXh0ZXJuIHZvaWQgdW5yZWZfZXh0bWF0Y2ggX19BUkdTKChyZWdfZXh0bWF0Y2hfVCAqZW0pKTsKK2V4dGVybiBjaGFyX3UgKnJlZ3RpbGRlIF9fQVJHUygoY2hhcl91ICpzb3VyY2UsIGludCBtYWdpYykpOworZXh0ZXJuIGludCB2aW1fcmVnc3ViIF9fQVJHUygocmVnbWF0Y2hfVCAqcm1wLCBjaGFyX3UgKnNvdXJjZSwgY2hhcl91ICpkZXN0LCBpbnQgY29weSwgaW50IG1hZ2ljLCBpbnQgYmFja3NsYXNoKSk7CitleHRlcm4gaW50IHZpbV9yZWdzdWJfbXVsdGkgX19BUkdTKChyZWdtbWF0Y2hfVCAqcm1wLCBsaW5lbnJfVCBsbnVtLCBjaGFyX3UgKnNvdXJjZSwgY2hhcl91ICpkZXN0LCBpbnQgY29weSwgaW50IG1hZ2ljLCBpbnQgYmFja3NsYXNoKSk7CitleHRlcm4gY2hhcl91ICpyZWdfc3VibWF0Y2ggX19BUkdTKChpbnQgbm8pKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL3N5bnRheC5wcm8gYi9zcmMvcHJvdG8vc3ludGF4LnBybwppbmRleCAxMjA0Yjg5Li4zMTU3MTA4IDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vc3ludGF4LnBybworKysgYi9zcmMvcHJvdG8vc3ludGF4LnBybwpAQCAtMSw0NiArMSw0NiBAQAogLyogc3ludGF4LmMgKi8KLXZvaWQgc3ludGF4X3N0YXJ0IF9fQVJHUygod2luX1QgKndwLCBsaW5lbnJfVCBsbnVtKSk7Ci12b2lkIHN5bl9zdGFja19mcmVlX2FsbCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgc3luX3N0YWNrX2FwcGx5X2NoYW5nZXMgX19BUkdTKChidWZfVCAqYnVmKSk7Ci12b2lkIHN5bnRheF9lbmRfcGFyc2luZyBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKLWludCBzeW50YXhfY2hlY2tfY2hhbmdlZCBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKLWludCBnZXRfc3ludGF4X2F0dHIgX19BUkdTKChjb2xucl9UIGNvbCwgaW50ICpjYW5fc3BlbGwpKTsKLXZvaWQgc3ludGF4X2NsZWFyIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotdm9pZCBleF9zeW50YXggX19BUkdTKChleGFyZ19UICplYXApKTsKLWludCBzeW50YXhfcHJlc2VudCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgc2V0X2NvbnRleHRfaW5fc3ludGF4X2NtZCBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICphcmcpKTsKLWNoYXJfdSAqZ2V0X3N5bnRheF9uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7Ci1pbnQgc3luX2dldF9pZCBfX0FSR1MoKHdpbl9UICp3cCwgbG9uZyBsbnVtLCBjb2xucl9UIGNvbCwgaW50IHRyYW5zLCBpbnQgKnNwZWxscCkpOwotaW50IHN5bl9nZXRfZm9sZGxldmVsIF9fQVJHUygod2luX1QgKndwLCBsb25nIGxudW0pKTsKLXZvaWQgaW5pdF9oaWdobGlnaHQgX19BUkdTKChpbnQgYm90aCwgaW50IHJlc2V0KSk7Ci1pbnQgbG9hZF9jb2xvcnMgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLXZvaWQgZG9faGlnaGxpZ2h0IF9fQVJHUygoY2hhcl91ICpsaW5lLCBpbnQgZm9yY2VpdCwgaW50IGluaXQpKTsKLXZvaWQgZnJlZV9oaWdobGlnaHQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHJlc3RvcmVfY3Rlcm1fY29sb3JzIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfbm9ybWFsX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqaGxfZ2V0X2ZvbnRfbmFtZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgaGxfc2V0X2ZvbnRfbmFtZSBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lKSk7Ci12b2lkIGhsX3NldF9iZ19jb2xvcl9uYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGhsX3NldF9mZ19jb2xvcl9uYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci12b2lkIGNsZWFyX2hsX3RhYmxlcyBfX0FSR1MoKHZvaWQpKTsKLWludCBobF9jb21iaW5lX2F0dHIgX19BUkdTKChpbnQgY2hhcl9hdHRyLCBpbnQgcHJpbV9hdHRyKSk7Ci1hdHRyZW50cnlfVCAqc3luX2d1aV9hdHRyMmVudHJ5IF9fQVJHUygoaW50IGF0dHIpKTsKLWludCBzeW5fYXR0cjJhdHRyIF9fQVJHUygoaW50IGF0dHIpKTsKLWF0dHJlbnRyeV9UICpzeW5fdGVybV9hdHRyMmVudHJ5IF9fQVJHUygoaW50IGF0dHIpKTsKLWF0dHJlbnRyeV9UICpzeW5fY3Rlcm1fYXR0cjJlbnRyeSBfX0FSR1MoKGludCBhdHRyKSk7Ci1jaGFyX3UgKmhpZ2hsaWdodF9oYXNfYXR0ciBfX0FSR1MoKGludCBpZCwgaW50IGZsYWcsIGludCBtb2RlYykpOwotY2hhcl91ICpoaWdobGlnaHRfY29sb3IgX19BUkdTKChpbnQgaWQsIGNoYXJfdSAqd2hhdCwgaW50IG1vZGVjKSk7Ci1sb25nX3UgaGlnaGxpZ2h0X2d1aV9jb2xvcl9yZ2IgX19BUkdTKChpbnQgaWQsIGludCBmZykpOwotaW50IHN5bl9uYW1lMmlkIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgaGlnaGxpZ2h0X2V4aXN0cyBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IHN5bl9uYW1lbjJpZCBfX0FSR1MoKGNoYXJfdSAqbGluZXAsIGludCBsZW4pKTsKLWludCBzeW5fY2hlY2tfZ3JvdXAgX19BUkdTKChjaGFyX3UgKnBwLCBpbnQgbGVuKSk7Ci1pbnQgc3luX2lkMmF0dHIgX19BUkdTKChpbnQgaGxfaWQpKTsKLWludCBzeW5faWQyY29sb3JzIF9fQVJHUygoaW50IGhsX2lkLCBndWljb2xvcl9UICpmZ3AsIGd1aWNvbG9yX1QgKmJncCkpOwotaW50IHN5bl9nZXRfZmluYWxfaWQgX19BUkdTKChpbnQgaGxfaWQpKTsKLXZvaWQgaGlnaGxpZ2h0X2d1aV9zdGFydGVkIF9fQVJHUygodm9pZCkpOwotaW50IGhpZ2hsaWdodF9jaGFuZ2VkIF9fQVJHUygodm9pZCkpOwotdm9pZCBzZXRfY29udGV4dF9pbl9oaWdobGlnaHRfY21kIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKmFyZykpOwotY2hhcl91ICpnZXRfaGlnaGxpZ2h0X25hbWUgX19BUkdTKChleHBhbmRfVCAqeHAsIGludCBpZHgpKTsKLXZvaWQgZnJlZV9oaWdobGlnaHRfZm9udHMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzeW50YXhfc3RhcnQgX19BUkdTKCh3aW5fVCAqd3AsIGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiB2b2lkIHN5bl9zdGFja19mcmVlX2FsbCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiB2b2lkIHN5bl9zdGFja19hcHBseV9jaGFuZ2VzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgc3ludGF4X2VuZF9wYXJzaW5nIF9fQVJHUygobGluZW5yX1QgbG51bSkpOworZXh0ZXJuIGludCBzeW50YXhfY2hlY2tfY2hhbmdlZCBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiBpbnQgZ2V0X3N5bnRheF9hdHRyIF9fQVJHUygoY29sbnJfVCBjb2wsIGludCAqY2FuX3NwZWxsKSk7CitleHRlcm4gdm9pZCBzeW50YXhfY2xlYXIgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCBleF9zeW50YXggX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiBpbnQgc3ludGF4X3ByZXNlbnQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCBzZXRfY29udGV4dF9pbl9zeW50YXhfY21kIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBjaGFyX3UgKmFyZykpOworZXh0ZXJuIGNoYXJfdSAqZ2V0X3N5bnRheF9uYW1lIF9fQVJHUygoZXhwYW5kX1QgKnhwLCBpbnQgaWR4KSk7CitleHRlcm4gaW50IHN5bl9nZXRfaWQgX19BUkdTKCh3aW5fVCAqd3AsIGxvbmcgbG51bSwgY29sbnJfVCBjb2wsIGludCB0cmFucywgaW50ICpzcGVsbHApKTsKK2V4dGVybiBpbnQgc3luX2dldF9mb2xkbGV2ZWwgX19BUkdTKCh3aW5fVCAqd3AsIGxvbmcgbG51bSkpOworZXh0ZXJuIHZvaWQgaW5pdF9oaWdobGlnaHQgX19BUkdTKChpbnQgYm90aCwgaW50IHJlc2V0KSk7CitleHRlcm4gaW50IGxvYWRfY29sb3JzIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBkb19oaWdobGlnaHQgX19BUkdTKChjaGFyX3UgKmxpbmUsIGludCBmb3JjZWl0LCBpbnQgaW5pdCkpOworZXh0ZXJuIHZvaWQgZnJlZV9oaWdobGlnaHQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXN0b3JlX2N0ZXJtX2NvbG9ycyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHNldF9ub3JtYWxfY29sb3JzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXJfdSAqaGxfZ2V0X2ZvbnRfbmFtZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGhsX3NldF9mb250X25hbWUgX19BUkdTKChjaGFyX3UgKmZvbnRfbmFtZSkpOworZXh0ZXJuIHZvaWQgaGxfc2V0X2JnX2NvbG9yX25hbWUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIGhsX3NldF9mZ19jb2xvcl9uYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gdm9pZCBjbGVhcl9obF90YWJsZXMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGhsX2NvbWJpbmVfYXR0ciBfX0FSR1MoKGludCBjaGFyX2F0dHIsIGludCBwcmltX2F0dHIpKTsKK2V4dGVybiBhdHRyZW50cnlfVCAqc3luX2d1aV9hdHRyMmVudHJ5IF9fQVJHUygoaW50IGF0dHIpKTsKK2V4dGVybiBpbnQgc3luX2F0dHIyYXR0ciBfX0FSR1MoKGludCBhdHRyKSk7CitleHRlcm4gYXR0cmVudHJ5X1QgKnN5bl90ZXJtX2F0dHIyZW50cnkgX19BUkdTKChpbnQgYXR0cikpOworZXh0ZXJuIGF0dHJlbnRyeV9UICpzeW5fY3Rlcm1fYXR0cjJlbnRyeSBfX0FSR1MoKGludCBhdHRyKSk7CitleHRlcm4gY2hhcl91ICpoaWdobGlnaHRfaGFzX2F0dHIgX19BUkdTKChpbnQgaWQsIGludCBmbGFnLCBpbnQgbW9kZWMpKTsKK2V4dGVybiBjaGFyX3UgKmhpZ2hsaWdodF9jb2xvciBfX0FSR1MoKGludCBpZCwgY2hhcl91ICp3aGF0LCBpbnQgbW9kZWMpKTsKK2V4dGVybiBsb25nX3UgaGlnaGxpZ2h0X2d1aV9jb2xvcl9yZ2IgX19BUkdTKChpbnQgaWQsIGludCBmZykpOworZXh0ZXJuIGludCBzeW5fbmFtZTJpZCBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBoaWdobGlnaHRfZXhpc3RzIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IHN5bl9uYW1lbjJpZCBfX0FSR1MoKGNoYXJfdSAqbGluZXAsIGludCBsZW4pKTsKK2V4dGVybiBpbnQgc3luX2NoZWNrX2dyb3VwIF9fQVJHUygoY2hhcl91ICpwcCwgaW50IGxlbikpOworZXh0ZXJuIGludCBzeW5faWQyYXR0ciBfX0FSR1MoKGludCBobF9pZCkpOworZXh0ZXJuIGludCBzeW5faWQyY29sb3JzIF9fQVJHUygoaW50IGhsX2lkLCBndWljb2xvcl9UICpmZ3AsIGd1aWNvbG9yX1QgKmJncCkpOworZXh0ZXJuIGludCBzeW5fZ2V0X2ZpbmFsX2lkIF9fQVJHUygoaW50IGhsX2lkKSk7CitleHRlcm4gdm9pZCBoaWdobGlnaHRfZ3VpX3N0YXJ0ZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGhpZ2hsaWdodF9jaGFuZ2VkIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgc2V0X2NvbnRleHRfaW5faGlnaGxpZ2h0X2NtZCBfX0FSR1MoKGV4cGFuZF9UICp4cCwgY2hhcl91ICphcmcpKTsKK2V4dGVybiBjaGFyX3UgKmdldF9oaWdobGlnaHRfbmFtZSBfX0FSR1MoKGV4cGFuZF9UICp4cCwgaW50IGlkeCkpOworZXh0ZXJuIHZvaWQgZnJlZV9oaWdobGlnaHRfZm9udHMgX19BUkdTKCh2b2lkKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by91bmRvLnBybyBiL3NyYy9wcm90by91bmRvLnBybwppbmRleCA1OGM2ZGI4Li5hYjcwNzM1IDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vdW5kby5wcm8KKysrIGIvc3JjL3Byb3RvL3VuZG8ucHJvCkBAIC0xLDIxICsxLDIxIEBACiAvKiB1bmRvLmMgKi8KLWludCB1X3NhdmVfY3Vyc29yIF9fQVJHUygodm9pZCkpOwotaW50IHVfc2F2ZSBfX0FSR1MoKGxpbmVucl9UIHRvcCwgbGluZW5yX1QgYm90KSk7Ci1pbnQgdV9zYXZlc3ViIF9fQVJHUygobGluZW5yX1QgbG51bSkpOwotaW50IHVfaW5zc3ViIF9fQVJHUygobGluZW5yX1QgbG51bSkpOwotaW50IHVfc2F2ZWRlbCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgbmxpbmVzKSk7Ci12b2lkIHVfdW5kbyBfX0FSR1MoKGludCBjb3VudCkpOwotdm9pZCB1X3JlZG8gX19BUkdTKChpbnQgY291bnQpKTsKLXZvaWQgdW5kb190aW1lIF9fQVJHUygobG9uZyBzdGVwLCBpbnQgc2VjLCBpbnQgYWJzb2x1dGUpKTsKLXZvaWQgdV9zeW5jIF9fQVJHUygodm9pZCkpOwotdm9pZCBleF91bmRvbGlzdCBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBleF91bmRvam9pbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCB1X3VuY2hhbmdlZCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgdV9jbGVhcmFsbCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLXZvaWQgdV9zYXZlbGluZSBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKLXZvaWQgdV9jbGVhcmxpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHVfdW5kb2xpbmUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHVfYmxvY2tmcmVlIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwotaW50IGJ1ZklzQ2hhbmdlZCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLWludCBjdXJidWZJc0NoYW5nZWQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHVfc2F2ZV9jdXJzb3IgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IHVfc2F2ZSBfX0FSR1MoKGxpbmVucl9UIHRvcCwgbGluZW5yX1QgYm90KSk7CitleHRlcm4gaW50IHVfc2F2ZXN1YiBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiBpbnQgdV9pbnNzdWIgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7CitleHRlcm4gaW50IHVfc2F2ZWRlbCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGxvbmcgbmxpbmVzKSk7CitleHRlcm4gdm9pZCB1X3VuZG8gX19BUkdTKChpbnQgY291bnQpKTsKK2V4dGVybiB2b2lkIHVfcmVkbyBfX0FSR1MoKGludCBjb3VudCkpOworZXh0ZXJuIHZvaWQgdW5kb190aW1lIF9fQVJHUygobG9uZyBzdGVwLCBpbnQgc2VjLCBpbnQgYWJzb2x1dGUpKTsKK2V4dGVybiB2b2lkIHVfc3luYyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X3VuZG9saXN0IF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CitleHRlcm4gdm9pZCBleF91bmRvam9pbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIHZvaWQgdV91bmNoYW5nZWQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gdm9pZCB1X2NsZWFyYWxsIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIHZvaWQgdV9zYXZlbGluZSBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKK2V4dGVybiB2b2lkIHVfY2xlYXJsaW5lIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgdV91bmRvbGluZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHVfYmxvY2tmcmVlIF9fQVJHUygoYnVmX1QgKmJ1ZikpOworZXh0ZXJuIGludCBidWZJc0NoYW5nZWQgX19BUkdTKChidWZfVCAqYnVmKSk7CitleHRlcm4gaW50IGN1cmJ1ZklzQ2hhbmdlZCBfX0FSR1MoKHZvaWQpKTsKIC8qIHZpbTogc2V0IGZ0PWMgOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL3ZlcnNpb24ucHJvIGIvc3JjL3Byb3RvL3ZlcnNpb24ucHJvCmluZGV4IDNmMzcxZjkuLjAwY2E5MTYgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by92ZXJzaW9uLnBybworKysgYi9zcmMvcHJvdG8vdmVyc2lvbi5wcm8KQEAgLTEsOSArMSw5IEBACiAvKiB2ZXJzaW9uLmMgKi8KLXZvaWQgbWFrZV92ZXJzaW9uIF9fQVJHUygodm9pZCkpOwotaW50IGhpZ2hlc3RfcGF0Y2ggX19BUkdTKCh2b2lkKSk7Ci1pbnQgaGFzX3BhdGNoIF9fQVJHUygoaW50IG4pKTsKLXZvaWQgZXhfdmVyc2lvbiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotdm9pZCBsaXN0X3ZlcnNpb24gX19BUkdTKCh2b2lkKSk7Ci12b2lkIGludHJvX21lc3NhZ2UgX19BUkdTKChpbnQgY29sb24pKTsKLXZvaWQgZXhfaW50cm8gX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIG1ha2VfdmVyc2lvbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgaGlnaGVzdF9wYXRjaCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgaGFzX3BhdGNoIF9fQVJHUygoaW50IG4pKTsKK2V4dGVybiB2b2lkIGV4X3ZlcnNpb24gX19BUkdTKChleGFyZ19UICplYXApKTsKK2V4dGVybiB2b2lkIGxpc3RfdmVyc2lvbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGludHJvX21lc3NhZ2UgX19BUkdTKChpbnQgY29sb24pKTsKK2V4dGVybiB2b2lkIGV4X2ludHJvIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CiAvKiB2aW06IHNldCBmdD1jIDogKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by93aW5kb3cucHJvIGIvc3JjL3Byb3RvL3dpbmRvdy5wcm8KaW5kZXggNjI5Y2VkMy4uMzYyZjAwYSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL3dpbmRvdy5wcm8KKysrIGIvc3JjL3Byb3RvL3dpbmRvdy5wcm8KQEAgLTEsNTkgKzEsNTkgQEAKIC8qIHdpbmRvdy5jICovCi12b2lkIGRvX3dpbmRvdyBfX0FSR1MoKGludCBuY2hhciwgbG9uZyBQcmVudW0sIGludCB4Y2hhcikpOwotaW50IHdpbl9zcGxpdCBfX0FSR1MoKGludCBzaXplLCBpbnQgZmxhZ3MpKTsKLWludCB3aW5fdmFsaWQgX19BUkdTKCh3aW5fVCAqd2luKSk7Ci1pbnQgd2luX2NvdW50IF9fQVJHUygodm9pZCkpOwotaW50IG1ha2Vfd2luZG93cyBfX0FSR1MoKGludCBjb3VudCwgaW50IHZlcnRpY2FsKSk7Ci12b2lkIHdpbl9tb3ZlX2FmdGVyIF9fQVJHUygod2luX1QgKndpbjEsIHdpbl9UICp3aW4yKSk7Ci12b2lkIHdpbl9lcXVhbCBfX0FSR1MoKHdpbl9UICpuZXh0X2N1cndpbiwgaW50IGN1cnJlbnQsIGludCBkaXIpKTsKLXZvaWQgY2xvc2Vfd2luZG93cyBfX0FSR1MoKGJ1Zl9UICpidWYsIGludCBrZWVwX2N1cndpbikpOwotdm9pZCB3aW5fY2xvc2UgX19BUkdTKCh3aW5fVCAqd2luLCBpbnQgZnJlZV9idWYpKTsKLXZvaWQgd2luX2Nsb3NlX290aGVydGFiIF9fQVJHUygod2luX1QgKndpbiwgaW50IGZyZWVfYnVmLCB0YWJwYWdlX1QgKnRwKSk7Ci12b2lkIHdpbl9mcmVlX2FsbCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY2xvc2Vfb3RoZXJzIF9fQVJHUygoaW50IG1lc3NhZ2UsIGludCBmb3JjZWl0KSk7Ci12b2lkIGN1cndpbl9pbml0IF9fQVJHUygodm9pZCkpOwotaW50IHdpbl9hbGxvY19maXJzdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd2luX2luaXRfc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLWludCB3aW5fbmV3X3RhYnBhZ2UgX19BUkdTKChpbnQgYWZ0ZXIpKTsKLWludCBtYXlfb3Blbl90YWJwYWdlIF9fQVJHUygodm9pZCkpOwotaW50IG1ha2VfdGFicGFnZXMgX19BUkdTKChpbnQgbWF4Y291bnQpKTsKLWludCB2YWxpZF90YWJwYWdlIF9fQVJHUygodGFicGFnZV9UICp0cGMpKTsKLXRhYnBhZ2VfVCAqZmluZF90YWJwYWdlIF9fQVJHUygoaW50IG4pKTsKLWludCB0YWJwYWdlX2luZGV4IF9fQVJHUygodGFicGFnZV9UICpmdHApKTsKLXZvaWQgZ290b190YWJwYWdlIF9fQVJHUygoaW50IG4pKTsKLXZvaWQgZ290b190YWJwYWdlX3RwIF9fQVJHUygodGFicGFnZV9UICp0cCkpOwotdm9pZCB0YWJwYWdlX21vdmUgX19BUkdTKChpbnQgbnIpKTsKLXZvaWQgd2luX2dvdG8gX19BUkdTKCh3aW5fVCAqd3ApKTsKLXdpbl9UICp3aW5fZmluZF9uciBfX0FSR1MoKGludCB3aW5ucikpOwotdm9pZCB3aW5fZW50ZXIgX19BUkdTKCh3aW5fVCAqd3AsIGludCB1bmRvX3N5bmMpKTsKLXdpbl9UICpidWZfanVtcF9vcGVuX3dpbiBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKLWludCB3aW5fYWxsb2NfbGluZXMgX19BUkdTKCh3aW5fVCAqd3ApKTsKLXZvaWQgd2luX2ZyZWVfbHNpemUgX19BUkdTKCh3aW5fVCAqd3ApKTsKLXZvaWQgc2hlbGxfbmV3X3Jvd3MgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHNoZWxsX25ld19jb2x1bW5zIF9fQVJHUygodm9pZCkpOwotdm9pZCB3aW5fc2l6ZV9zYXZlIF9fQVJHUygoZ2FycmF5X1QgKmdhcCkpOwotdm9pZCB3aW5fc2l6ZV9yZXN0b3JlIF9fQVJHUygoZ2FycmF5X1QgKmdhcCkpOwotaW50IHdpbl9jb21wX3BvcyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd2luX3NldGhlaWdodCBfX0FSR1MoKGludCBoZWlnaHQpKTsKLXZvaWQgd2luX3NldGhlaWdodF93aW4gX19BUkdTKChpbnQgaGVpZ2h0LCB3aW5fVCAqd2luKSk7Ci12b2lkIHdpbl9zZXR3aWR0aCBfX0FSR1MoKGludCB3aWR0aCkpOwotdm9pZCB3aW5fc2V0d2lkdGhfd2luIF9fQVJHUygoaW50IHdpZHRoLCB3aW5fVCAqd3ApKTsKLXZvaWQgd2luX3NldG1pbmhlaWdodCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd2luX2RyYWdfc3RhdHVzX2xpbmUgX19BUkdTKCh3aW5fVCAqZHJhZ3dpbiwgaW50IG9mZnNldCkpOwotdm9pZCB3aW5fZHJhZ192c2VwX2xpbmUgX19BUkdTKCh3aW5fVCAqZHJhZ3dpbiwgaW50IG9mZnNldCkpOwotdm9pZCB3aW5fY29tcF9zY3JvbGwgX19BUkdTKCh3aW5fVCAqd3ApKTsKLXZvaWQgY29tbWFuZF9oZWlnaHQgX19BUkdTKChsb25nIG9sZF9wX2NoKSk7Ci12b2lkIGxhc3Rfc3RhdHVzIF9fQVJHUygoaW50IG1vcmV3aW4pKTsKLWludCB0YWJsaW5lX2hlaWdodCBfX0FSR1MoKHZvaWQpKTsKLWNoYXJfdSAqZ3JhYl9maWxlX25hbWUgX19BUkdTKChsb25nIGNvdW50LCBsaW5lbnJfVCAqZmlsZV9sbnVtKSk7Ci1jaGFyX3UgKmZpbGVfbmFtZV9hdF9jdXJzb3IgX19BUkdTKChpbnQgb3B0aW9ucywgbG9uZyBjb3VudCwgbGluZW5yX1QgKmZpbGVfbG51bSkpOwotY2hhcl91ICpmaWxlX25hbWVfaW5fbGluZSBfX0FSR1MoKGNoYXJfdSAqbGluZSwgaW50IGNvbCwgaW50IG9wdGlvbnMsIGxvbmcgY291bnQsIGNoYXJfdSAqcmVsX2ZuYW1lLCBsaW5lbnJfVCAqZmlsZV9sbnVtKSk7Ci1jaGFyX3UgKmZpbmRfZmlsZV9uYW1lX2luX3BhdGggX19BUkdTKChjaGFyX3UgKnB0ciwgaW50IGxlbiwgaW50IG9wdGlvbnMsIGxvbmcgY291bnQsIGNoYXJfdSAqcmVsX2ZuYW1lKSk7Ci1pbnQgcGF0aF93aXRoX3VybCBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKLWludCB2aW1faXNBYnNOYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7Ci1pbnQgdmltX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOwotaW50IG1pbl9yb3dzIF9fQVJHUygodm9pZCkpOwotaW50IG9ubHlfb25lX3dpbmRvdyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgY2hlY2tfbG51bXMgX19BUkdTKChpbnQgZG9fY3Vyd2luKSk7Ci1pbnQgd2luX2hhc3ZlcnRzcGxpdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGRvX3dpbmRvdyBfX0FSR1MoKGludCBuY2hhciwgbG9uZyBQcmVudW0sIGludCB4Y2hhcikpOworZXh0ZXJuIGludCB3aW5fc3BsaXQgX19BUkdTKChpbnQgc2l6ZSwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IHdpbl92YWxpZCBfX0FSR1MoKHdpbl9UICp3aW4pKTsKK2V4dGVybiBpbnQgd2luX2NvdW50IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtYWtlX3dpbmRvd3MgX19BUkdTKChpbnQgY291bnQsIGludCB2ZXJ0aWNhbCkpOworZXh0ZXJuIHZvaWQgd2luX21vdmVfYWZ0ZXIgX19BUkdTKCh3aW5fVCAqd2luMSwgd2luX1QgKndpbjIpKTsKK2V4dGVybiB2b2lkIHdpbl9lcXVhbCBfX0FSR1MoKHdpbl9UICpuZXh0X2N1cndpbiwgaW50IGN1cnJlbnQsIGludCBkaXIpKTsKK2V4dGVybiB2b2lkIGNsb3NlX3dpbmRvd3MgX19BUkdTKChidWZfVCAqYnVmLCBpbnQga2VlcF9jdXJ3aW4pKTsKK2V4dGVybiB2b2lkIHdpbl9jbG9zZSBfX0FSR1MoKHdpbl9UICp3aW4sIGludCBmcmVlX2J1ZikpOworZXh0ZXJuIHZvaWQgd2luX2Nsb3NlX290aGVydGFiIF9fQVJHUygod2luX1QgKndpbiwgaW50IGZyZWVfYnVmLCB0YWJwYWdlX1QgKnRwKSk7CitleHRlcm4gdm9pZCB3aW5fZnJlZV9hbGwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBjbG9zZV9vdGhlcnMgX19BUkdTKChpbnQgbWVzc2FnZSwgaW50IGZvcmNlaXQpKTsKK2V4dGVybiB2b2lkIGN1cndpbl9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB3aW5fYWxsb2NfZmlyc3QgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3aW5faW5pdF9zaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB3aW5fbmV3X3RhYnBhZ2UgX19BUkdTKChpbnQgYWZ0ZXIpKTsKK2V4dGVybiBpbnQgbWF5X29wZW5fdGFicGFnZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgbWFrZV90YWJwYWdlcyBfX0FSR1MoKGludCBtYXhjb3VudCkpOworZXh0ZXJuIGludCB2YWxpZF90YWJwYWdlIF9fQVJHUygodGFicGFnZV9UICp0cGMpKTsKK2V4dGVybiB0YWJwYWdlX1QgKmZpbmRfdGFicGFnZSBfX0FSR1MoKGludCBuKSk7CitleHRlcm4gaW50IHRhYnBhZ2VfaW5kZXggX19BUkdTKCh0YWJwYWdlX1QgKmZ0cCkpOworZXh0ZXJuIHZvaWQgZ290b190YWJwYWdlIF9fQVJHUygoaW50IG4pKTsKK2V4dGVybiB2b2lkIGdvdG9fdGFicGFnZV90cCBfX0FSR1MoKHRhYnBhZ2VfVCAqdHApKTsKK2V4dGVybiB2b2lkIHRhYnBhZ2VfbW92ZSBfX0FSR1MoKGludCBucikpOworZXh0ZXJuIHZvaWQgd2luX2dvdG8gX19BUkdTKCh3aW5fVCAqd3ApKTsKK2V4dGVybiB3aW5fVCAqd2luX2ZpbmRfbnIgX19BUkdTKChpbnQgd2lubnIpKTsKK2V4dGVybiB2b2lkIHdpbl9lbnRlciBfX0FSR1MoKHdpbl9UICp3cCwgaW50IHVuZG9fc3luYykpOworZXh0ZXJuIHdpbl9UICpidWZfanVtcF9vcGVuX3dpbiBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKK2V4dGVybiBpbnQgd2luX2FsbG9jX2xpbmVzIF9fQVJHUygod2luX1QgKndwKSk7CitleHRlcm4gdm9pZCB3aW5fZnJlZV9sc2l6ZSBfX0FSR1MoKHdpbl9UICp3cCkpOworZXh0ZXJuIHZvaWQgc2hlbGxfbmV3X3Jvd3MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBzaGVsbF9uZXdfY29sdW1ucyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdpbl9zaXplX3NhdmUgX19BUkdTKChnYXJyYXlfVCAqZ2FwKSk7CitleHRlcm4gdm9pZCB3aW5fc2l6ZV9yZXN0b3JlIF9fQVJHUygoZ2FycmF5X1QgKmdhcCkpOworZXh0ZXJuIGludCB3aW5fY29tcF9wb3MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3aW5fc2V0aGVpZ2h0IF9fQVJHUygoaW50IGhlaWdodCkpOworZXh0ZXJuIHZvaWQgd2luX3NldGhlaWdodF93aW4gX19BUkdTKChpbnQgaGVpZ2h0LCB3aW5fVCAqd2luKSk7CitleHRlcm4gdm9pZCB3aW5fc2V0d2lkdGggX19BUkdTKChpbnQgd2lkdGgpKTsKK2V4dGVybiB2b2lkIHdpbl9zZXR3aWR0aF93aW4gX19BUkdTKChpbnQgd2lkdGgsIHdpbl9UICp3cCkpOworZXh0ZXJuIHZvaWQgd2luX3NldG1pbmhlaWdodCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdpbl9kcmFnX3N0YXR1c19saW5lIF9fQVJHUygod2luX1QgKmRyYWd3aW4sIGludCBvZmZzZXQpKTsKK2V4dGVybiB2b2lkIHdpbl9kcmFnX3ZzZXBfbGluZSBfX0FSR1MoKHdpbl9UICpkcmFnd2luLCBpbnQgb2Zmc2V0KSk7CitleHRlcm4gdm9pZCB3aW5fY29tcF9zY3JvbGwgX19BUkdTKCh3aW5fVCAqd3ApKTsKK2V4dGVybiB2b2lkIGNvbW1hbmRfaGVpZ2h0IF9fQVJHUygobG9uZyBvbGRfcF9jaCkpOworZXh0ZXJuIHZvaWQgbGFzdF9zdGF0dXMgX19BUkdTKChpbnQgbW9yZXdpbikpOworZXh0ZXJuIGludCB0YWJsaW5lX2hlaWdodCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyX3UgKmdyYWJfZmlsZV9uYW1lIF9fQVJHUygobG9uZyBjb3VudCwgbGluZW5yX1QgKmZpbGVfbG51bSkpOworZXh0ZXJuIGNoYXJfdSAqZmlsZV9uYW1lX2F0X2N1cnNvciBfX0FSR1MoKGludCBvcHRpb25zLCBsb25nIGNvdW50LCBsaW5lbnJfVCAqZmlsZV9sbnVtKSk7CitleHRlcm4gY2hhcl91ICpmaWxlX25hbWVfaW5fbGluZSBfX0FSR1MoKGNoYXJfdSAqbGluZSwgaW50IGNvbCwgaW50IG9wdGlvbnMsIGxvbmcgY291bnQsIGNoYXJfdSAqcmVsX2ZuYW1lLCBsaW5lbnJfVCAqZmlsZV9sbnVtKSk7CitleHRlcm4gY2hhcl91ICpmaW5kX2ZpbGVfbmFtZV9pbl9wYXRoIF9fQVJHUygoY2hhcl91ICpwdHIsIGludCBsZW4sIGludCBvcHRpb25zLCBsb25nIGNvdW50LCBjaGFyX3UgKnJlbF9mbmFtZSkpOworZXh0ZXJuIGludCBwYXRoX3dpdGhfdXJsIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOworZXh0ZXJuIGludCB2aW1faXNBYnNOYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IHZpbV9GdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIGNoYXJfdSAqYnVmLCBpbnQgbGVuLCBpbnQgZm9yY2UpKTsKK2V4dGVybiBpbnQgbWluX3Jvd3MgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG9ubHlfb25lX3dpbmRvdyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNoZWNrX2xudW1zIF9fQVJHUygoaW50IGRvX2N1cndpbikpOworZXh0ZXJuIGludCB3aW5faGFzdmVydHNwbGl0IF9fQVJHUygodm9pZCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vd29ya3Nob3AucHJvIGIvc3JjL3Byb3RvL3dvcmtzaG9wLnBybwppbmRleCA0MjZmZGVkLi5jNzJlMjE1IDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vd29ya3Nob3AucHJvCisrKyBiL3NyYy9wcm90by93b3Jrc2hvcC5wcm8KQEAgLTEsNDkgKzEsNDkgQEAKIC8qIHdvcmtzaG9wLmMgKi8KLXZvaWQgd29ya3Nob3BfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfcG9zdGluaXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIGV4X3dzdmVyYiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwotY2hhciAqd29ya3Nob3BfZ2V0X2VkaXRvcl9uYW1lIF9fQVJHUygodm9pZCkpOwotY2hhciAqd29ya3Nob3BfZ2V0X2VkaXRvcl92ZXJzaW9uIF9fQVJHUygodm9pZCkpOwotdm9pZCB3b3Jrc2hvcF9sb2FkX2ZpbGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IGxpbmUsIGNoYXIgKmZyYW1laWQpKTsKLXZvaWQgd29ya3Nob3BfcmVsb2FkX2ZpbGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IGxpbmUpKTsKLXZvaWQgd29ya3Nob3Bfc2hvd19maWxlIF9fQVJHUygoY2hhciAqZmlsZW5hbWUpKTsKLXZvaWQgd29ya3Nob3BfZ290b19saW5lIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8pKTsKLXZvaWQgd29ya3Nob3BfZnJvbnRfZmlsZSBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lKSk7Ci12b2lkIHdvcmtzaG9wX3NhdmVfZmlsZSBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lKSk7Ci12b2lkIHdvcmtzaG9wX3NhdmVfZmlsZXMgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHdvcmtzaG9wX3F1aXQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHdvcmtzaG9wX21pbmltaXplIF9fQVJHUygodm9pZCkpOwotdm9pZCB3b3Jrc2hvcF9tYXhpbWl6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfYWRkX21hcmtfdHlwZSBfX0FSR1MoKGludCBpZHgsIGNoYXIgKmNvbG9yc3BlYywgY2hhciAqc2lnbikpOwotdm9pZCB3b3Jrc2hvcF9zZXRfbWFyayBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lLCBpbnQgbGluZW5vLCBpbnQgbWFya0lkLCBpbnQgaWR4KSk7Ci12b2lkIHdvcmtzaG9wX2NoYW5nZV9tYXJrX3R5cGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IG1hcmtJZCwgaW50IGlkeCkpOwotdm9pZCB3b3Jrc2hvcF9nb3RvX21hcmsgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IG1hcmtJZCwgY2hhciAqbWVzc2FnZSkpOwotdm9pZCB3b3Jrc2hvcF9kZWxldGVfbWFyayBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lLCBpbnQgbWFya0lkKSk7Ci1pbnQgd29ya3Nob3BfZ2V0X21hcmtfbGluZW5vIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBtYXJrSWQpKTsKLXZvaWQgd29ya3Nob3BfbW92ZWRfbWFya3MgX19BUkdTKChjaGFyICpmaWxlbmFtZSkpOwotaW50IHdvcmtzaG9wX2dldF9mb250X2hlaWdodCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfZm9vdGVyX21lc3NhZ2UgX19BUkdTKChjaGFyICptZXNzYWdlLCBpbnQgc2V2ZXJpdHkpKTsKLXZvaWQgd29ya3Nob3BfbWVudV9iZWdpbiBfX0FSR1MoKGNoYXIgKmxhYmVsKSk7Ci12b2lkIHdvcmtzaG9wX3N1Ym1lbnVfYmVnaW4gX19BUkdTKChjaGFyICpsYWJlbCkpOwotdm9pZCB3b3Jrc2hvcF9zdWJtZW51X2VuZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfbWVudV9pdGVtIF9fQVJHUygoY2hhciAqbGFiZWwsIGNoYXIgKnZlcmIsIGNoYXIgKmFjY2VsZXJhdG9yLCBjaGFyICphY2NlbGVyYXRvclRleHQsIGNoYXIgKm5hbWUsIGNoYXIgKmZpbGVwb3MsIGNoYXIgKnNlbnNpdGl2ZSkpOwotdm9pZCB3b3Jrc2hvcF9tZW51X2VuZCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfdG9vbGJhcl9iZWdpbiBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3BfdG9vbGJhcl9lbmQgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHdvcmtzaG9wX3Rvb2xiYXJfYnV0dG9uIF9fQVJHUygoY2hhciAqbGFiZWwsIGNoYXIgKnZlcmIsIGNoYXIgKnNlbnNlVmVyYiwgY2hhciAqZmlsZXBvcywgY2hhciAqaGVscCwgY2hhciAqc2Vuc2UsIGNoYXIgKmZpbGUsIGNoYXIgKmxlZnQpKTsKLXZvaWQgd29ya3Nob3BfZnJhbWVfc2Vuc2l0aXZpdGllcyBfX0FSR1MoKFZlcmJTZW5zZSAqdnMpKTsKLXZvaWQgd29ya3Nob3Bfc2V0X29wdGlvbiBfX0FSR1MoKGNoYXIgKm9wdGlvbiwgY2hhciAqdmFsdWUpKTsKLXZvaWQgd29ya3Nob3BfYmFsbG9vbl9tb2RlIF9fQVJHUygoQm9vbGVhbiBvbikpOwotdm9pZCB3b3Jrc2hvcF9iYWxsb29uX2RlbGF5IF9fQVJHUygoaW50IGRlbGF5KSk7Ci12b2lkIHdvcmtzaG9wX3Nob3dfYmFsbG9vbl90aXAgX19BUkdTKChjaGFyICp0aXApKTsKLXZvaWQgd29ya3Nob3BfaG90a2V5cyBfX0FSR1MoKEJvb2xlYW4gb24pKTsKLWludCB3b3Jrc2hvcF9nZXRfcG9zaXRpb25zIF9fQVJHUygodm9pZCAqY2xpZW50RGF0YSwgY2hhciAqKmZpbGVuYW1lLCBpbnQgKmN1ckxpbmUsIGludCAqY3VyQ29sLCBpbnQgKnNlbFN0YXJ0TGluZSwgaW50ICpzZWxTdGFydENvbCwgaW50ICpzZWxFbmRMaW5lLCBpbnQgKnNlbEVuZENvbCwgaW50ICpzZWxMZW5ndGgsIGNoYXIgKipzZWxlY3Rpb24pKTsKLWNoYXIgKndvcmtzaG9wX3Rlc3RfZ2V0Y3VycmVudGZpbGUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgd29ya3Nob3BfdGVzdF9nZXRjdXJzb3Jyb3cgX19BUkdTKCh2b2lkKSk7Ci1pbnQgd29ya3Nob3BfdGVzdF9nZXRjdXJzb3Jjb2wgX19BUkdTKCh2b2lkKSk7Ci1jaGFyICp3b3Jrc2hvcF90ZXN0X2dldGN1cnNvcnJvd3RleHQgX19BUkdTKCh2b2lkKSk7Ci1jaGFyICp3b3Jrc2hvcF90ZXN0X2dldHNlbGVjdGVkdGV4dCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgd29ya3Nob3Bfc2F2ZV9zZW5zaXRpdml0eSBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lKSk7Ci12b2lkIHdvcmtzaG9wX2JldmFsX2NiIF9fQVJHUygoQmFsbG9vbkV2YWwgKmJldmFsLCBpbnQgc3RhdGUpKTsKLXZvaWQgZmluZFlvdXJzZWxmIF9fQVJHUygoY2hhciAqYXJndjApKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9wb3N0aW5pdCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGV4X3dzdmVyYiBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOworZXh0ZXJuIGNoYXIgKndvcmtzaG9wX2dldF9lZGl0b3JfbmFtZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBjaGFyICp3b3Jrc2hvcF9nZXRfZWRpdG9yX3ZlcnNpb24gX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9sb2FkX2ZpbGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IGxpbmUsIGNoYXIgKmZyYW1laWQpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX3JlbG9hZF9maWxlIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBsaW5lKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9zaG93X2ZpbGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfZ290b19saW5lIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8pKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX2Zyb250X2ZpbGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3Bfc2F2ZV9maWxlIF9fQVJHUygoY2hhciAqZmlsZW5hbWUpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX3NhdmVfZmlsZXMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9xdWl0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfbWluaW1pemUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9tYXhpbWl6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX2FkZF9tYXJrX3R5cGUgX19BUkdTKChpbnQgaWR4LCBjaGFyICpjb2xvcnNwZWMsIGNoYXIgKnNpZ24pKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX3NldF9tYXJrIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8sIGludCBtYXJrSWQsIGludCBpZHgpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX2NoYW5nZV9tYXJrX3R5cGUgX19BUkdTKChjaGFyICpmaWxlbmFtZSwgaW50IG1hcmtJZCwgaW50IGlkeCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfZ290b19tYXJrIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBtYXJrSWQsIGNoYXIgKm1lc3NhZ2UpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX2RlbGV0ZV9tYXJrIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBtYXJrSWQpKTsKK2V4dGVybiBpbnQgd29ya3Nob3BfZ2V0X21hcmtfbGluZW5vIF9fQVJHUygoY2hhciAqZmlsZW5hbWUsIGludCBtYXJrSWQpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX21vdmVkX21hcmtzIF9fQVJHUygoY2hhciAqZmlsZW5hbWUpKTsKK2V4dGVybiBpbnQgd29ya3Nob3BfZ2V0X2ZvbnRfaGVpZ2h0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfZm9vdGVyX21lc3NhZ2UgX19BUkdTKChjaGFyICptZXNzYWdlLCBpbnQgc2V2ZXJpdHkpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX21lbnVfYmVnaW4gX19BUkdTKChjaGFyICpsYWJlbCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3Bfc3VibWVudV9iZWdpbiBfX0FSR1MoKGNoYXIgKmxhYmVsKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9zdWJtZW51X2VuZCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX21lbnVfaXRlbSBfX0FSR1MoKGNoYXIgKmxhYmVsLCBjaGFyICp2ZXJiLCBjaGFyICphY2NlbGVyYXRvciwgY2hhciAqYWNjZWxlcmF0b3JUZXh0LCBjaGFyICpuYW1lLCBjaGFyICpmaWxlcG9zLCBjaGFyICpzZW5zaXRpdmUpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX21lbnVfZW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfdG9vbGJhcl9iZWdpbiBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX3Rvb2xiYXJfZW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfdG9vbGJhcl9idXR0b24gX19BUkdTKChjaGFyICpsYWJlbCwgY2hhciAqdmVyYiwgY2hhciAqc2Vuc2VWZXJiLCBjaGFyICpmaWxlcG9zLCBjaGFyICpoZWxwLCBjaGFyICpzZW5zZSwgY2hhciAqZmlsZSwgY2hhciAqbGVmdCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3BfZnJhbWVfc2Vuc2l0aXZpdGllcyBfX0FSR1MoKFZlcmJTZW5zZSAqdnMpKTsKK2V4dGVybiB2b2lkIHdvcmtzaG9wX3NldF9vcHRpb24gX19BUkdTKChjaGFyICpvcHRpb24sIGNoYXIgKnZhbHVlKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9iYWxsb29uX21vZGUgX19BUkdTKChCb29sZWFuIG9uKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9iYWxsb29uX2RlbGF5IF9fQVJHUygoaW50IGRlbGF5KSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9zaG93X2JhbGxvb25fdGlwIF9fQVJHUygoY2hhciAqdGlwKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9ob3RrZXlzIF9fQVJHUygoQm9vbGVhbiBvbikpOworZXh0ZXJuIGludCB3b3Jrc2hvcF9nZXRfcG9zaXRpb25zIF9fQVJHUygodm9pZCAqY2xpZW50RGF0YSwgY2hhciAqKmZpbGVuYW1lLCBpbnQgKmN1ckxpbmUsIGludCAqY3VyQ29sLCBpbnQgKnNlbFN0YXJ0TGluZSwgaW50ICpzZWxTdGFydENvbCwgaW50ICpzZWxFbmRMaW5lLCBpbnQgKnNlbEVuZENvbCwgaW50ICpzZWxMZW5ndGgsIGNoYXIgKipzZWxlY3Rpb24pKTsKK2V4dGVybiBjaGFyICp3b3Jrc2hvcF90ZXN0X2dldGN1cnJlbnRmaWxlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB3b3Jrc2hvcF90ZXN0X2dldGN1cnNvcnJvdyBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiBpbnQgd29ya3Nob3BfdGVzdF9nZXRjdXJzb3Jjb2wgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gY2hhciAqd29ya3Nob3BfdGVzdF9nZXRjdXJzb3Jyb3d0ZXh0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGNoYXIgKndvcmtzaG9wX3Rlc3RfZ2V0c2VsZWN0ZWR0ZXh0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgd29ya3Nob3Bfc2F2ZV9zZW5zaXRpdml0eSBfX0FSR1MoKGNoYXIgKmZpbGVuYW1lKSk7CitleHRlcm4gdm9pZCB3b3Jrc2hvcF9iZXZhbF9jYiBfX0FSR1MoKEJhbGxvb25FdmFsICpiZXZhbCwgaW50IHN0YXRlKSk7CitleHRlcm4gdm9pZCBmaW5kWW91cnNlbGYgX19BUkdTKChjaGFyICphcmd2MCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvdGFnLmMgYi9zcmMvdGFnLmMKaW5kZXggOThhMmM5Yi4uNmM4ODg4YyAxMDA2NDQKLS0tIGEvc3JjL3RhZy5jCisrKyBiL3NyYy90YWcuYwpAQCAtMzgzNSwxNSArMzgzNSwxNiBAQAogCQkJY2hhcl91CSpzLCAqbjsKIAkJCWludAlsZW47CiAKLQkJCS8qIEFkZCBleHRyYSBmaWVsZCBhcyBhIGRpY3QgZW50cnkuICovCisJCQkvKiBBZGQgZXh0cmEgZmllbGQgYXMgYSBkaWN0IGVudHJ5LiAgRmllbGRzIGFyZQorCQkJICogc2VwYXJhdGVkIGJ5IFRhYnMuICovCiAJCQluID0gcDsKLQkJCXdoaWxlICgqcCAhPSBOVUwgJiYgKnAgPiAnICcgJiYgKnAgPCAxMjcgJiYgKnAgIT0gJzonKQorCQkJd2hpbGUgKCpwICE9IE5VTCAmJiAqcCA+PSAnICcgJiYgKnAgPCAxMjcgJiYgKnAgIT0gJzonKQogCQkJICAgICsrcDsKIAkJCWxlbiA9IHAgLSBuOwogCQkJaWYgKCpwID09ICc6JyAmJiBsZW4gPiAwKQogCQkJewogCQkJICAgIHMgPSArK3A7Ci0JCQkgICAgd2hpbGUgKCpwICE9IE5VTCAmJiAqcCA+ICcgJyAmJiAqcCA8IDEyNykKKwkJCSAgICB3aGlsZSAoKnAgIT0gTlVMICYmICpwID49ICcgJyAmJiAqcCA8IDEyNykKIAkJCQkrK3A7CiAJCQkgICAgbltsZW5dID0gTlVMOwogCQkJICAgIGlmIChhZGRfdGFnX2ZpZWxkKGRpY3QsIChjaGFyICopbiwgcywgcCkgPT0gRkFJTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL01ha2VfZG9zLm1hayBiL3NyYy90ZXN0ZGlyL01ha2VfZG9zLm1hawppbmRleCA2NmM5ZjlmLi5lZWMxZjliIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci9NYWtlX2Rvcy5tYWsKKysrIGIvc3JjL3Rlc3RkaXIvTWFrZV9kb3MubWFrCkBAIC0zNyw3ICszNyw3IEBACiBub25ndWk6CWZpeGZmICQoU0NSSVBUUzE2KSAkKFNDUklQVFMpCiAJZWNobyBBTEwgRE9ORQogCi1zbWFsbDoJZml4ZmYgJChTQ1JJUFRTMTYpCitzbWFsbDoKIAllY2hvIEFMTCBET05FCiAKIGd1aToJZml4ZmYgJChTQ1JJUFRTMTYpICQoU0NSSVBUUykgJChTQ1JJUFRTX0dVSSkKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmggYi9zcmMvdmVyc2lvbi5oCmluZGV4IGYzYTg3ZjcuLmNlZjA4NTEgMTAwNjQ0Ci0tLSBhL3NyYy92ZXJzaW9uLmgKKysrIGIvc3JjL3ZlcnNpb24uaApAQCAtMTksMTMgKzE5LDEzIEBACiAjZGVmaW5lIFZJTV9WRVJTSU9OX01JTk9SX1NUUgkJIjAiCiAjZGVmaW5lIFZJTV9WRVJTSU9OXzEwMAkgICAgKFZJTV9WRVJTSU9OX01BSk9SICogMTAwICsgVklNX1ZFUlNJT05fTUlOT1IpCiAKLSNkZWZpbmUgVklNX1ZFUlNJT05fQlVJTEQJCSAyNTYKLSNkZWZpbmUgVklNX1ZFUlNJT05fQlVJTERfQkNECQkweDEwMAotI2RlZmluZSBWSU1fVkVSU0lPTl9CVUlMRF9TVFIJCSIyNTYiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0JVSUxECQkgMjU3CisjZGVmaW5lIFZJTV9WRVJTSU9OX0JVSUxEX0JDRAkJMHgxMDEKKyNkZWZpbmUgVklNX1ZFUlNJT05fQlVJTERfU1RSCQkiMjU3IgogI2RlZmluZSBWSU1fVkVSU0lPTl9QQVRDSExFVkVMCQkgMAogI2RlZmluZSBWSU1fVkVSU0lPTl9QQVRDSExFVkVMX1NUUgkiMCIKIC8qIFVzZWQgYnkgTWFjT1MgcG9ydCBzaG91bGQgYmUgb25lIG9mOiBkZXZlbG9wbWVudCwgYWxwaGEsIGJldGEsIGZpbmFsICovCi0jZGVmaW5lIFZJTV9WRVJTSU9OX1JFTEVBU0UJCWFscGhhCisjZGVmaW5lIFZJTV9WRVJTSU9OX1JFTEVBU0UJCWJldGEKIAogLyoKICAqIFZJTV9WRVJTSU9OX05PRE9UIGlzIHVzZWQgZm9yIHRoZSBydW50aW1lIGRpcmVjdG9yeSBuYW1lLgpAQCAtMzMsOCArMzMsOCBAQAogICogVklNX1ZFUlNJT05fTUVESVVNIGlzIHVzZWQgZm9yIHRoZSBzdGFydHVwLXNjcmVlbi4KICAqIFZJTV9WRVJTSU9OX0xPTkcgaXMgdXNlZCBmb3IgdGhlICI6dmVyc2lvbiIgY29tbWFuZCBhbmQgIlZpbSAtaCIuCiAgKi8KLSNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYWEiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX1NIT1JUCSI3LjBhYSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBhYSBBTFBIQSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDYgTWFyIDIzKSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNiBNYXIgMjMsIGNvbXBpbGVkICIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYiIKKyNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGIiCisjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wYiBCRVRBIgorI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBiIEJFVEEgKDIwMDYgTWFyIDI0KSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBiIEJFVEEgKDIwMDYgTWFyIDI0LCBjb21waWxlZCAiCmRpZmYgLS1naXQgYS9zcmMvdmltLmggYi9zcmMvdmltLmgKaW5kZXggMWU0YWU0Mi4uMjM3MzgzZiAxMDA2NDQKLS0tIGEvc3JjL3ZpbS5oCisrKyBiL3NyYy92aW0uaApAQCAtMTcyMyw3ICsxNzIzLDcgQEAKICMgZGVmaW5lIHN0YXQoYSxiKSAoYWNjZXNzKGEsMCkgPyAtMSA6IHN0YXQoYSxiKSkKICNlbmRpZgogCi0jaWYgZGVmaW5lZChGRUFUX1BST0ZJTEUpIHx8IGRlZmluZWQoRkVBVF9SRUxUSU1FKQorI2lmIChkZWZpbmVkKEZFQVRfUFJPRklMRSkgfHwgZGVmaW5lZChGRUFUX1JFTFRJTUUpKSAmJiAhZGVmaW5lZChQUk9UTykKICMgaWZkZWYgV0lOMzI2NAogdHlwZWRlZiBMQVJHRV9JTlRFR0VSIHByb2Z0aW1lX1Q7CiAjIGVsc2UK